diff --git a/.github/workflows/generate_foreign_keys.yml b/.github/workflows/generate_foreign_keys.yml
index 9e95e53d6..af23fa477 100644
--- a/.github/workflows/generate_foreign_keys.yml
+++ b/.github/workflows/generate_foreign_keys.yml
@@ -3,8 +3,8 @@ on:
push:
paths:
- '**-foreign-keys.yml'
- branches:
- - '!master'
+ branches-ignore:
+ - 'master'
jobs:
generate-foreign-keys:
@@ -23,6 +23,7 @@ jobs:
with:
packages: |
pyyaml
+ pandas
- name: Generate foreign keys
run: python generate_foreign_keys.py
@@ -38,5 +39,5 @@ jobs:
git add -A
git config --global user.email "github-actions@github.com"
git config --global user.name 'github-actions'
- git commit -am "Automated commit: Generate JSON schemas"
+ git commit -am "Automated commit: Generate foreign keys"
git push
diff --git a/.github/workflows/get_json_schema_from_catalog.yml b/.github/workflows/get_json_schema_from_catalog.yml
index d3f694627..54e397227 100644
--- a/.github/workflows/get_json_schema_from_catalog.yml
+++ b/.github/workflows/get_json_schema_from_catalog.yml
@@ -24,7 +24,7 @@ on:
required: true
jobs:
- generate-changelog:
+ get-json-schemas:
runs-on: ubuntu-latest
steps:
- name: Get current date
@@ -51,7 +51,7 @@ jobs:
pyyaml
- name: Get JSON files
- run: python manual_json_import.py ${{ secrets.GITHUB_TOKEN }} ${{ github.event.inputs.tap }} ${{ github.event.inputs.version }} ${{ github.event.inputs.file }}
+ run: python manual_json_import.py ${{ github.event.inputs.tap }} ${{ github.event.inputs.version }} ${{ github.event.inputs.file }}
working-directory: ./scripts/json
- name: Check for changes
@@ -74,11 +74,11 @@ jobs:
branch: ${{ github.event.inputs.branch }}
- name: Create pull request
- if: steps.get_changes.outputs.changed != 0 && ${{ github.event.inputs.pr }} == true
+ if: steps.get_changes.outputs.changed != 0 && github.event.inputs.pr == 'true'
uses: repo-sync/pull-request@v2
with:
source_branch: ${{ github.event.inputs.branch }}
- destination_branch: "master"
+ destination_branch: "TDL-23186-json-schema"
github_token: ${{ secrets.GITHUB_TOKEN }}
pr_label: "json-schemas-update"
pr_title: ${{ github.event.inputs.tap }} JSON schema updates ${{ env.date }}
diff --git a/.github/workflows/import_json_schemas.yml b/.github/workflows/import_json_schemas.yml
index a84418836..7c9117af7 100644
--- a/.github/workflows/import_json_schemas.yml
+++ b/.github/workflows/import_json_schemas.yml
@@ -12,7 +12,7 @@ on:
required: false
jobs:
- generate-changelog:
+ import-schemas:
runs-on: ubuntu-latest
steps:
- name: Get current date
@@ -47,6 +47,7 @@ jobs:
with:
packages: |
requests
+ pyyaml
- name: Get JSON files
run: python get_json_files.py ${{ secrets.GITHUB_TOKEN }} ${{ github.event.inputs.repo }} ${{ github.event.inputs.branch }}
@@ -62,7 +63,7 @@ jobs:
git add -A
git config --global user.email "github-actions@github.com"
git config --global user.name 'github-actions'
- git commit -am "Automated commit: Add JSON schemas"
+ git commit -am "Automated commit: Import JSON schemas"
- name: Push changes
if: steps.get_changes.outputs.changed != 0
@@ -76,7 +77,7 @@ jobs:
uses: repo-sync/pull-request@v2
with:
source_branch: ${{ env.branch }}
- destination_branch: "master"
+ destination_branch: "TDL-23186-json-schema"
github_token: ${{ secrets.GITHUB_TOKEN }}
pr_label: "json-schemas-update"
pr_title: ${{ github.event.inputs.repo }} JSON schema updates ${{ env.date }}
diff --git a/.gitignore b/.gitignore
index c93c2dbff..8955fc172 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,3 +13,5 @@ Thumbs.db
*~
*.scssc
.cache_ggshield
+__pycache__
+*.pyc
\ No newline at end of file
diff --git a/_data/taps/integrations.yml b/_data/taps/integrations.yml
new file mode 100644
index 000000000..329247093
--- /dev/null
+++ b/_data/taps/integrations.yml
@@ -0,0 +1,721 @@
+integrations:
+ 3plcentral:
+ display_name: 3PL Central
+ id: 3plcentral
+ tap: tap-3plcentral
+ type: saas
+ activecampaign:
+ display_name: ActiveCampaign
+ id: activecampaign
+ tap: tap-activecampaign
+ type: saas
+ adroll:
+ display_name: AdRoll
+ id: adroll
+ tap: tap-adroll
+ type: saas
+ amazon-dsp:
+ display_name: Amazon DSP
+ id: amazon-dsp
+ tap: tap-amazon-ads-dsp
+ type: saas
+ amazon-dynamodb:
+ display_name: Amazon DynamoDB
+ id: amazon-dynamodb
+ tap: tap-dynamodb
+ type: database
+ amazon-s3-csv:
+ display_name: Amazon S3 CSV
+ id: amazon-s3-csv
+ tap: tap-s3-csv
+ type: database
+ amplitude:
+ display_name: Amplitude
+ id: amplitude
+ tap: tap-amplitude
+ type: saas
+ any-database:
+ display_name: Any database
+ id: any-database
+ tap: ''
+ type: database
+ appsflyer:
+ display_name: AppsFlyer
+ id: appsflyer
+ tap: tap-appsflyer
+ type: saas
+ asana:
+ display_name: Asana
+ id: asana
+ tap: tap-asana
+ type: saas
+ aurora-postgresql-rds:
+ display_name: Amazon Aurora PostgreSQL RDS
+ id: aurora-postgresql-rds
+ tap: tap-postgres
+ type: database
+ aurora-rds:
+ display_name: Amazon Aurora MySQL RDS
+ id: aurora-rds
+ tap: tap-mysql
+ type: database
+ autopilot:
+ display_name: Autopilot
+ id: autopilot
+ tap: tap-autopilot
+ type: saas
+ bigcommerce:
+ display_name: BigCommerce
+ id: bigcommerce
+ tap: tap-bigcommerce
+ type: saas
+ bing-ads:
+ display_name: Microsoft Advertising
+ id: bing-ads
+ tap: tap-bing-ads
+ type: saas
+ braintree:
+ display_name: Braintree
+ id: braintree
+ tap: tap-braintree
+ type: saas
+ bronto:
+ display_name: Bronto
+ id: bronto
+ tap: tap-bronto
+ type: saas
+ campaign-manager:
+ display_name: Campaign Manager
+ id: campaign-manager
+ tap: tap-doubleclick-campaign-manager
+ type: saas
+ campaign-monitor:
+ display_name: Campaign Monitor
+ id: campaign-monitor
+ tap: tap-campaign-monitor
+ type: saas
+ chargebee:
+ display_name: Chargebee
+ id: chargebee
+ tap: tap-chargebee
+ type: saas
+ chargify:
+ display_name: Chargify
+ id: chargify
+ tap: tap-chargify
+ type: saas
+ circle-ci:
+ display_name: CircleCI
+ id: circle-ci
+ tap: tap-circle-ci
+ type: saas
+ closeio:
+ display_name: Close.io
+ id: closeio
+ tap: tap-closeio
+ type: saas
+ cloudsql-mysql:
+ display_name: Google CloudSQL MySQL
+ id: cloudsql-mysql
+ tap: tap-mysql
+ type: database
+ cloudsql-postgres:
+ display_name: Google CloudSQL PostgreSQL
+ id: cloudsql-postgres
+ tap: tap-postgres
+ type: database
+ clubspeed:
+ display_name: Club Speed
+ id: clubspeed
+ tap: tap-clubspeed
+ type: saas
+ codat:
+ display_name: Codat
+ id: codat
+ tap: tap-codat
+ type: saas
+ covid-19:
+ display_name: COVID-19 Public Data
+ id: covid-19
+ tap: tap-covid-19
+ type: saas
+ crossbeam:
+ display_name: Crossbeam
+ id: crossbeam
+ tap: tap-crossbeam
+ type: saas
+ darksky:
+ display_name: Darksky
+ id: darksky
+ tap: tap-darksky
+ type: saas
+ deputy:
+ display_name: Deputy
+ id: deputy
+ tap: tap-deputy
+ type: saas
+ desk:
+ display_name: Desk
+ id: desk
+ tap: ''
+ type: saas
+ dixa:
+ display_name: Dixa
+ id: dixa
+ tap: tap-dixa
+ type: saas
+ doorbell-io:
+ display_name: Doorbell.io
+ id: doorbell-io
+ tap: ''
+ type: saas
+ dynamodb:
+ display_name: DynamoDB
+ id: dynamodb
+ tap: ''
+ type: database
+ ebay:
+ display_name: eBay
+ id: ebay
+ tap: tap-ebay
+ type: saas
+ eloqua:
+ display_name: Eloqua
+ id: eloqua
+ tap: tap-eloqua
+ type: saas
+ facebook-ads:
+ display_name: Facebook Ads
+ id: facebook-ads
+ tap: tap-facebook
+ type: saas
+ freshdesk:
+ display_name: Freshdesk
+ id: freshdesk
+ tap: tap-freshdesk
+ type: saas
+ frontapp:
+ display_name: Front
+ id: frontapp
+ tap: tap-frontapp
+ type: saas
+ fullstory:
+ display_name: FullStory
+ id: fullstory
+ tap: tap-fullstory
+ type: saas
+ github:
+ display_name: GitHub
+ id: github
+ tap: tap-github
+ type: saas
+ gitlab:
+ display_name: GitLab
+ id: gitlab
+ tap: tap-gitlab
+ type: saas
+ google-ads:
+ display_name: Google Ads
+ id: google-ads
+ tap: tap-google-ads
+ type: saas
+ google-ads-adwords:
+ display_name: Google Ads (AdWords)
+ id: google-ads-adwords
+ tap: tap-adwords
+ type: saas
+ google-analytics:
+ display_name: Google Analytics
+ id: google-analytics
+ tap: tap-google-analytics
+ type: saas
+ google-analytics-360:
+ display_name: Google Analytics 360
+ id: google-analytics-360
+ tap: tap-ga360
+ type: saas
+ google-analytics-4:
+ display_name: Google Analytics 4
+ id: google-analytics-4
+ tap: tap-ga4
+ type: saas
+ google-analytics-adwords:
+ display_name: Google Analytics (AdWords)
+ id: google-analytics-adwords
+ tap: ''
+ type: saas
+ google-ecommerce:
+ display_name: Google ECommerce
+ id: google-ecommerce
+ tap: ''
+ type: saas
+ google-search-console:
+ display_name: Google Search Console
+ id: google-search-console
+ tap: tap-google-search-console
+ type: saas
+ google-sheets:
+ display_name: Google Sheets
+ id: google-sheets
+ tap: tap-google-sheets
+ type: saas
+ harvest:
+ display_name: Harvest
+ id: harvest
+ tap: tap-harvest
+ type: saas
+ harvest-forecast:
+ display_name: Harvest Forecast
+ id: harvest-forecast
+ tap: tap-harvest-forecast
+ type: saas
+ heap:
+ display_name: Heap
+ id: heap
+ tap: tap-heap
+ type: saas
+ helpscout:
+ display_name: Help Scout
+ id: helpscout
+ tap: tap-helpscout
+ type: saas
+ heroku:
+ display_name: Heroku
+ id: heroku
+ tap: tap-postgres
+ type: database
+ hubspot:
+ display_name: HubSpot
+ id: hubspot
+ tap: tap-hubspot
+ type: saas
+ ilevel:
+ display_name: iLEVEL
+ id: ilevel
+ tap: tap-ilevel
+ type: saas
+ impact:
+ display_name: Impact
+ id: impact
+ tap: tap-impact
+ type: saas
+ insided:
+ display_name: inSided
+ id: insided
+ tap: tap-insided
+ type: saas
+ intacct:
+ display_name: Intacct
+ id: intacct
+ tap: tap-intacct
+ type: saas
+ intercom:
+ display_name: Intercom
+ id: intercom
+ tap: tap-intercom
+ type: saas
+ invoiced:
+ display_name: Invoiced
+ id: invoiced
+ tap: tap-invoiced
+ type: saas
+ iterable-core:
+ display_name: Iterable
+ id: iterable-core
+ tap: tap-iterable
+ type: saas
+ jira:
+ display_name: JIRA
+ id: jira
+ tap: tap-jira
+ type: saas
+ klaviyo:
+ display_name: Klaviyo
+ id: klaviyo
+ tap: tap-klaviyo
+ type: saas
+ kustomer:
+ display_name: Kustomer
+ id: kustomer
+ tap: tap-kustomer
+ type: saas
+ lever:
+ display_name: Lever
+ id: lever
+ tap: tap-lever
+ type: saas
+ linkedin-ads:
+ display_name: LinkedIn Ads
+ id: linkedin-ads
+ tap: tap-linkedin-ads
+ type: saas
+ listrak:
+ display_name: Listrak
+ id: listrak
+ tap: tap-listrak
+ type: saas
+ liveperson:
+ display_name: LivePerson
+ id: liveperson
+ tap: tap-liveperson
+ type: saas
+ looker:
+ display_name: Looker
+ id: looker
+ tap: tap-looker
+ type: saas
+ lookml:
+ display_name: LookML
+ id: lookml
+ tap: tap-lookml
+ type: saas
+ magento:
+ display_name: Magento
+ id: magento
+ tap: tap-mysql
+ type: database
+ mailchimp:
+ display_name: MailChimp
+ id: mailchimp
+ tap: tap-mailchimp
+ type: saas
+ mailshake:
+ display_name: Mailshake
+ id: mailshake
+ tap: tap-mailshake
+ type: saas
+ mambu:
+ display_name: Mambu
+ id: mambu
+ tap: tap-mambu
+ type: saas
+ mariadb:
+ display_name: MariaDB
+ id: mariadb
+ tap: tap-mysql
+ type: database
+ marketo:
+ display_name: Marketo
+ id: marketo
+ tap: tap-marketo
+ type: saas
+ microsoft-azure:
+ display_name: Microsoft Azure
+ id: microsoft-azure
+ tap: ''
+ type: database
+ microsoft-azure-mysql:
+ display_name: Microsoft Azure MySQL
+ id: microsoft-azure-mysql
+ tap: tap-mysql
+ type: database
+ mixpanel:
+ display_name: Mixpanel
+ id: mixpanel
+ tap: tap-mixpanel
+ type: saas
+ mongodb:
+ display_name: MongoDB
+ id: mongodb
+ tap: tap-mongodb
+ type: database
+ mongodb-atlas:
+ display_name: MongoDB Atlas
+ id: mongodb-atlas
+ tap: tap-mongodb
+ type: database
+ ms-teams:
+ display_name: Microsoft Teams
+ id: ms-teams
+ tap: tap-ms-teams
+ type: saas
+ mssql:
+ display_name: Microsoft SQL Server
+ id: mssql
+ tap: tap-mssql
+ type: database
+ mysql:
+ display_name: MySQL
+ id: mysql
+ tap: tap-mysql
+ type: database
+ mysql-rds:
+ display_name: Amazon MySQL RDS
+ id: mysql-rds
+ tap: tap-mysql
+ type: database
+ netsuite:
+ display_name: NetSuite
+ id: netsuite
+ tap: ''
+ type: saas
+ netsuite-suite-analytics:
+ display_name: NetSuite Suite Analytics
+ id: netsuite-suite-analytics
+ tap: ''
+ type: saas
+ onfleet:
+ display_name: Onfleet
+ id: onfleet
+ tap: tap-onfleet
+ type: saas
+ oracle:
+ display_name: Oracle
+ id: oracle
+ tap: tap-oracle
+ type: database
+ oracle-rds:
+ display_name: Amazon Oracle RDS
+ id: oracle-rds
+ tap: tap-oracle
+ type: database
+ outbrain:
+ display_name: Outbrain
+ id: outbrain
+ tap: tap-outbrain
+ type: saas
+ outreach:
+ display_name: Outreach
+ id: outreach
+ tap: tap-outreach
+ type: saas
+ pardot:
+ display_name: Pardot
+ id: pardot
+ tap: tap-pardot
+ type: saas
+ pendo:
+ display_name: Pendo
+ id: pendo
+ tap: tap-pendo
+ type: saas
+ pepperjam:
+ display_name: Pepperjam
+ id: pepperjam
+ tap: tap-pepperjam
+ type: saas
+ pipedrive:
+ display_name: Pipedrive
+ id: pipedrive
+ tap: tap-pipedrive
+ type: saas
+ postgres:
+ display_name: PostgreSQL
+ id: postgres
+ tap: tap-postgres
+ type: database
+ postgresql-rds:
+ display_name: Amazon PostgreSQL RDS
+ id: postgresql-rds
+ tap: tap-postgres
+ type: database
+ quick-base:
+ display_name: Quick Base
+ id: quick-base
+ tap: tap-quickbase
+ type: saas
+ quickbooks:
+ display_name: QuickBooks
+ id: quickbooks
+ tap: tap-quickbooks
+ type: saas
+ recharge:
+ display_name: Recharge
+ id: recharge
+ tap: tap-recharge
+ type: saas
+ recurly:
+ display_name: Recurly
+ id: recurly
+ tap: tap-recurly
+ type: saas
+ referral-saasquatch:
+ display_name: Referral SaaSquatch
+ id: referral-saasquatch
+ tap: tap-referral-saasquatch
+ type: saas
+ responsys:
+ display_name: Responsys
+ id: responsys
+ tap: tap-responsys
+ type: database
+ revinate:
+ display_name: Revinate
+ id: revinate
+ tap: tap-revinate
+ type: saas
+ ringcentral:
+ display_name: RingCentral
+ id: ringcentral
+ tap: tap-ringcentral
+ type: saas
+ saasoptics:
+ display_name: SaaSOptics
+ id: saasoptics
+ tap: tap-saasoptics
+ type: saas
+ sailthru:
+ display_name: Sailthru
+ id: sailthru
+ tap: tap-sailthru
+ type: saas
+ salesforce:
+ display_name: Salesforce
+ id: salesforce
+ tap: tap-salesforce
+ type: saas
+ salesforce-marketing-cloud:
+ display_name: Salesforce Marketing Cloud
+ id: salesforce-marketing-cloud
+ tap: tap-exacttarget
+ type: saas
+ selligent:
+ display_name: Selligent
+ id: selligent
+ tap: tap-selligent
+ type: saas
+ sendgrid-core:
+ display_name: SendGrid Core
+ id: sendgrid-core
+ tap: tap-sendgrid
+ type: saas
+ sftp:
+ display_name: SFTP
+ id: sftp
+ tap: tap-sftp
+ type: database
+ shiphero:
+ display_name: ShipHero
+ id: shiphero
+ tap: tap-shiphero
+ type: saas
+ shippo:
+ display_name: Shippo
+ id: shippo
+ tap: tap-shippo
+ type: saas
+ shopify:
+ display_name: Shopify
+ id: shopify
+ tap: tap-shopify
+ type: saas
+ slack:
+ display_name: Slack
+ id: slack
+ tap: tap-slack
+ type: saas
+ snapchat-ads:
+ display_name: Snapchat Ads
+ id: snapchat-ads
+ tap: tap-snapchat-ads
+ type: saas
+ sql-server-rds:
+ display_name: Amazon Microsoft SQL Server RDS
+ id: sql-server-rds
+ tap: tap-mssql
+ type: database
+ square:
+ display_name: Square
+ id: square
+ tap: tap-square
+ type: saas
+ stripe:
+ display_name: Stripe
+ id: stripe
+ tap: tap-stripe
+ type: saas
+ surveymonkey:
+ display_name: SurveyMonkey
+ id: surveymonkey
+ tap: tap-surveymonkey
+ type: saas
+ taboola:
+ display_name: Taboola
+ id: taboola
+ tap: tap-taboola
+ type: saas
+ tiktok-ads:
+ display_name: TikTok Ads
+ id: tiktok-ads
+ tap: tap-tiktok-ads
+ type: saas
+ toggl:
+ display_name: Toggl
+ id: toggl
+ tap: tap-toggl
+ type: saas
+ trello:
+ display_name: Trello
+ id: trello
+ tap: tap-trello
+ type: saas
+ twilio:
+ display_name: Twilio
+ id: twilio
+ tap: tap-twilio
+ type: saas
+ twitter-ads:
+ display_name: Twitter Ads
+ id: twitter-ads
+ tap: tap-twitter-ads
+ type: saas
+ typeform:
+ display_name: Typeform
+ id: typeform
+ tap: tap-typeform
+ type: saas
+ ujet:
+ display_name: UJET
+ id: ujet
+ tap: tap-ujet
+ type: saas
+ urban-airship:
+ display_name: Urban Airship
+ id: urban-airship
+ tap: tap-urban-airship
+ type: saas
+ uservoice:
+ display_name: UserVoice
+ id: uservoice
+ tap: tap-uservoice
+ type: saas
+ wootric:
+ display_name: Wootric
+ id: wootric
+ tap: tap-wootric
+ type: saas
+ workday-raas:
+ display_name: Workday RaaS
+ id: workday-raas
+ tap: tap-workday-raas
+ type: saas
+ xero:
+ display_name: Xero
+ id: xero
+ tap: tap-xero
+ type: saas
+ yotpo:
+ display_name: Yotpo
+ id: yotpo
+ tap: tap-yotpo
+ type: saas
+ zendesk:
+ display_name: Zendesk Support
+ id: zendesk
+ tap: tap-zendesk
+ type: saas
+ zendesk-chat:
+ display_name: Zendesk Chat
+ id: zendesk-chat
+ tap: tap-zendesk-chat
+ type: saas
+ zoom:
+ display_name: Zoom
+ id: zoom
+ tap: tap-zoom
+ type: saas
+ zuora:
+ display_name: Zuora
+ id: zuora
+ tap: tap-zuora
+ type: saas
diff --git a/_data/taps/schemas/3plcentral/v1/3plcentral-v1-foreign-keys.yml b/_data/taps/schemas/3plcentral/v1/3plcentral-v1-foreign-keys.yml
new file mode 100644
index 000000000..0abc67295
--- /dev/null
+++ b/_data/taps/schemas/3plcentral/v1/3plcentral-v1-foreign-keys.yml
@@ -0,0 +1,722 @@
+tap: 3plcentral
+version: '1'
+keys:
+ customers_customer_id:
+ - table: customers
+ keys:
+ - customer_id
+ - table: sku_items
+ keys:
+ - customer_id
+ - customer_identifier.id
+ - table: stock_details
+ keys:
+ - customer_id
+ - table: inventory
+ keys:
+ - customer_identifier.id
+ - table: locations
+ keys:
+ - customer_identifier.id
+ - table: orders
+ keys:
+ - customer_identifier.id
+ - batch_identifier.name_key.customer_identifier.id
+ - ship_to.retailer_info.name_key.customer_identifier.id
+ facilities_facility_id:
+ - table: customers
+ keys:
+ - facilities.id
+ - primary_facility_identifier.id
+ - table: inventory
+ keys:
+ - facility_identifier.id
+ - location_identifier.name_key.facility_identifier.id
+ - pallet_identifier.name_key.facility_identifier.id
+ - table: locations
+ keys:
+ - facility_id
+ - item_traits.pallet_identifier.name_key.facility_identifier.id
+ - location_identifier.name_key.facility_identifier.id
+ - table: orders
+ keys:
+ - facility_identifier.id
+ - table: sku_items
+ keys:
+ - options.directed_put_away.preferred_location_identifier.name_key.facility_identifier.id
+ - table: stock_details
+ keys:
+ - location_identifier.name_key.facility_identifier.id
+ - pallet_identifier.name_key.facility_identifier.id
+ - table: stock_summaries
+ keys:
+ - facility_id
+ sku_items_item_identifier:
+ - table: inventory
+ keys:
+ - item_identifier.id
+ - table: sku_items
+ keys:
+ - item_id
+ - kit.components.item_identifier.id
+ - table: stock_details
+ keys:
+ - item_identifier.id
+ sku_items_item_id:
+ - table: locations
+ keys:
+ - item_traits.item_identifier.id
+ - table: sku_items
+ keys:
+ - item_id
+ - table: stock_summaries
+ keys:
+ - item_id
+ locations_location_id:
+ - table: inventory
+ keys:
+ - location_identifier.id
+ - table: locations
+ keys:
+ - location_id
+ - location_identifier.id
+ - table: sku_items
+ keys:
+ - options.directed_put_away.preferred_location_identifier.id
+ - table: stock_details
+ keys:
+ - location_identifier.id
+ orders_order_id:
+ - table: orders
+ keys:
+ - order_id
+ pallets_id:
+ - table: inventory
+ keys:
+ - pallet_identifier.id
+ - table: locations
+ keys:
+ - item_traits.pallet_identifier.id
+ - table: stock_details
+ keys:
+ - pallet_identifier.id
+ receivers_id:
+ - table: inventory
+ keys:
+ - receiver_id
+ - table: stock_details
+ keys:
+ - receiver_id
+ stock_details_receive_item_id:
+ - table: stock_details
+ keys:
+ - receive_item_id
+ - table: inventory
+ keys:
+ - receive_item_id
+ suppliers_id:
+ - table: inventory
+ keys:
+ - supplier_identifier.id
+ - table: stock_details
+ keys:
+ - supplier_identifier.id
+tables:
+- table-name: customers
+ join:
+ - table-name: sku_items
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: customer_id
+ foreign-key: customer_identifier.id
+ - key: facilities.id
+ foreign-key: options.directed_put_away.preferred_location_identifier.name_key.facility_identifier.id
+ - key: primary_facility_identifier.id
+ foreign-key: options.directed_put_away.preferred_location_identifier.name_key.facility_identifier.id
+ - table-name: stock_details
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: facilities.id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - key: primary_facility_identifier.id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - key: facilities.id
+ foreign-key: pallet_identifier.name_key.facility_identifier.id
+ - key: primary_facility_identifier.id
+ foreign-key: pallet_identifier.name_key.facility_identifier.id
+ - table-name: inventory
+ keys:
+ - key: customer_id
+ foreign-key: customer_identifier.id
+ - key: facilities.id
+ foreign-key: facility_identifier.id
+ - key: primary_facility_identifier.id
+ foreign-key: facility_identifier.id
+ - key: facilities.id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - key: primary_facility_identifier.id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - key: facilities.id
+ foreign-key: pallet_identifier.name_key.facility_identifier.id
+ - key: primary_facility_identifier.id
+ foreign-key: pallet_identifier.name_key.facility_identifier.id
+ - table-name: locations
+ keys:
+ - key: customer_id
+ foreign-key: customer_identifier.id
+ - key: facilities.id
+ foreign-key: facility_id
+ - key: primary_facility_identifier.id
+ foreign-key: facility_id
+ - key: facilities.id
+ foreign-key: item_traits.pallet_identifier.name_key.facility_identifier.id
+ - key: primary_facility_identifier.id
+ foreign-key: item_traits.pallet_identifier.name_key.facility_identifier.id
+ - key: facilities.id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - key: primary_facility_identifier.id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - table-name: orders
+ keys:
+ - key: customer_id
+ foreign-key: customer_identifier.id
+ - key: customer_id
+ foreign-key: batch_identifier.name_key.customer_identifier.id
+ - key: customer_id
+ foreign-key: ship_to.retailer_info.name_key.customer_identifier.id
+ - key: facilities.id
+ foreign-key: facility_identifier.id
+ - key: primary_facility_identifier.id
+ foreign-key: facility_identifier.id
+ - table-name: stock_summaries
+ keys:
+ - key: facilities.id
+ foreign-key: facility_id
+ - key: primary_facility_identifier.id
+ foreign-key: facility_id
+- table-name: sku_items
+ join:
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: customer_identifier.id
+ foreign-key: customer_id
+ - key: options.directed_put_away.preferred_location_identifier.name_key.facility_identifier.id
+ foreign-key: facilities.id
+ - key: options.directed_put_away.preferred_location_identifier.name_key.facility_identifier.id
+ foreign-key: primary_facility_identifier.id
+ - table-name: stock_details
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: customer_identifier.id
+ foreign-key: customer_id
+ - key: options.directed_put_away.preferred_location_identifier.name_key.facility_identifier.id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - key: options.directed_put_away.preferred_location_identifier.name_key.facility_identifier.id
+ foreign-key: pallet_identifier.name_key.facility_identifier.id
+ - key: item_id
+ foreign-key: item_identifier.id
+ - key: kit.components.item_identifier.id
+ foreign-key: item_identifier.id
+ - key: options.directed_put_away.preferred_location_identifier.id
+ foreign-key: location_identifier.id
+ - table-name: inventory
+ keys:
+ - key: customer_id
+ foreign-key: customer_identifier.id
+ - key: customer_identifier.id
+ foreign-key: customer_identifier.id
+ - key: options.directed_put_away.preferred_location_identifier.name_key.facility_identifier.id
+ foreign-key: facility_identifier.id
+ - key: options.directed_put_away.preferred_location_identifier.name_key.facility_identifier.id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - key: options.directed_put_away.preferred_location_identifier.name_key.facility_identifier.id
+ foreign-key: pallet_identifier.name_key.facility_identifier.id
+ - key: item_id
+ foreign-key: item_identifier.id
+ - key: kit.components.item_identifier.id
+ foreign-key: item_identifier.id
+ - key: options.directed_put_away.preferred_location_identifier.id
+ foreign-key: location_identifier.id
+ - table-name: locations
+ keys:
+ - key: customer_id
+ foreign-key: customer_identifier.id
+ - key: customer_identifier.id
+ foreign-key: customer_identifier.id
+ - key: options.directed_put_away.preferred_location_identifier.name_key.facility_identifier.id
+ foreign-key: facility_id
+ - key: options.directed_put_away.preferred_location_identifier.name_key.facility_identifier.id
+ foreign-key: item_traits.pallet_identifier.name_key.facility_identifier.id
+ - key: options.directed_put_away.preferred_location_identifier.name_key.facility_identifier.id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - key: item_id
+ foreign-key: item_traits.item_identifier.id
+ - key: options.directed_put_away.preferred_location_identifier.id
+ foreign-key: location_id
+ - key: options.directed_put_away.preferred_location_identifier.id
+ foreign-key: location_identifier.id
+ - table-name: orders
+ keys:
+ - key: customer_id
+ foreign-key: customer_identifier.id
+ - key: customer_identifier.id
+ foreign-key: customer_identifier.id
+ - key: customer_id
+ foreign-key: batch_identifier.name_key.customer_identifier.id
+ - key: customer_identifier.id
+ foreign-key: batch_identifier.name_key.customer_identifier.id
+ - key: customer_id
+ foreign-key: ship_to.retailer_info.name_key.customer_identifier.id
+ - key: customer_identifier.id
+ foreign-key: ship_to.retailer_info.name_key.customer_identifier.id
+ - key: options.directed_put_away.preferred_location_identifier.name_key.facility_identifier.id
+ foreign-key: facility_identifier.id
+ - table-name: stock_summaries
+ keys:
+ - key: options.directed_put_away.preferred_location_identifier.name_key.facility_identifier.id
+ foreign-key: facility_id
+ - key: item_id
+ foreign-key: item_id
+- table-name: stock_details
+ join:
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: facilities.id
+ - key: pallet_identifier.name_key.facility_identifier.id
+ foreign-key: facilities.id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: primary_facility_identifier.id
+ - key: pallet_identifier.name_key.facility_identifier.id
+ foreign-key: primary_facility_identifier.id
+ - table-name: sku_items
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: customer_id
+ foreign-key: customer_identifier.id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: options.directed_put_away.preferred_location_identifier.name_key.facility_identifier.id
+ - key: pallet_identifier.name_key.facility_identifier.id
+ foreign-key: options.directed_put_away.preferred_location_identifier.name_key.facility_identifier.id
+ - key: item_identifier.id
+ foreign-key: item_id
+ - key: item_identifier.id
+ foreign-key: kit.components.item_identifier.id
+ - key: location_identifier.id
+ foreign-key: options.directed_put_away.preferred_location_identifier.id
+ - table-name: inventory
+ keys:
+ - key: customer_id
+ foreign-key: customer_identifier.id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: facility_identifier.id
+ - key: pallet_identifier.name_key.facility_identifier.id
+ foreign-key: facility_identifier.id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - key: pallet_identifier.name_key.facility_identifier.id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: pallet_identifier.name_key.facility_identifier.id
+ - key: pallet_identifier.name_key.facility_identifier.id
+ foreign-key: pallet_identifier.name_key.facility_identifier.id
+ - key: item_identifier.id
+ foreign-key: item_identifier.id
+ - key: location_identifier.id
+ foreign-key: location_identifier.id
+ - key: pallet_identifier.id
+ foreign-key: pallet_identifier.id
+ - key: receiver_id
+ foreign-key: receiver_id
+ - key: receive_item_id
+ foreign-key: receive_item_id
+ - key: supplier_identifier.id
+ foreign-key: supplier_identifier.id
+ - table-name: locations
+ keys:
+ - key: customer_id
+ foreign-key: customer_identifier.id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: facility_id
+ - key: pallet_identifier.name_key.facility_identifier.id
+ foreign-key: facility_id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: item_traits.pallet_identifier.name_key.facility_identifier.id
+ - key: pallet_identifier.name_key.facility_identifier.id
+ foreign-key: item_traits.pallet_identifier.name_key.facility_identifier.id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - key: pallet_identifier.name_key.facility_identifier.id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - key: location_identifier.id
+ foreign-key: location_id
+ - key: location_identifier.id
+ foreign-key: location_identifier.id
+ - key: pallet_identifier.id
+ foreign-key: item_traits.pallet_identifier.id
+ - table-name: orders
+ keys:
+ - key: customer_id
+ foreign-key: customer_identifier.id
+ - key: customer_id
+ foreign-key: batch_identifier.name_key.customer_identifier.id
+ - key: customer_id
+ foreign-key: ship_to.retailer_info.name_key.customer_identifier.id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: facility_identifier.id
+ - key: pallet_identifier.name_key.facility_identifier.id
+ foreign-key: facility_identifier.id
+ - table-name: stock_summaries
+ keys:
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: facility_id
+ - key: pallet_identifier.name_key.facility_identifier.id
+ foreign-key: facility_id
+- table-name: inventory
+ join:
+ - table-name: customers
+ keys:
+ - key: customer_identifier.id
+ foreign-key: customer_id
+ - key: facility_identifier.id
+ foreign-key: facilities.id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: facilities.id
+ - key: pallet_identifier.name_key.facility_identifier.id
+ foreign-key: facilities.id
+ - key: facility_identifier.id
+ foreign-key: primary_facility_identifier.id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: primary_facility_identifier.id
+ - key: pallet_identifier.name_key.facility_identifier.id
+ foreign-key: primary_facility_identifier.id
+ - table-name: sku_items
+ keys:
+ - key: customer_identifier.id
+ foreign-key: customer_id
+ - key: customer_identifier.id
+ foreign-key: customer_identifier.id
+ - key: facility_identifier.id
+ foreign-key: options.directed_put_away.preferred_location_identifier.name_key.facility_identifier.id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: options.directed_put_away.preferred_location_identifier.name_key.facility_identifier.id
+ - key: pallet_identifier.name_key.facility_identifier.id
+ foreign-key: options.directed_put_away.preferred_location_identifier.name_key.facility_identifier.id
+ - key: item_identifier.id
+ foreign-key: item_id
+ - key: item_identifier.id
+ foreign-key: kit.components.item_identifier.id
+ - key: location_identifier.id
+ foreign-key: options.directed_put_away.preferred_location_identifier.id
+ - table-name: stock_details
+ keys:
+ - key: customer_identifier.id
+ foreign-key: customer_id
+ - key: facility_identifier.id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - key: pallet_identifier.name_key.facility_identifier.id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - key: facility_identifier.id
+ foreign-key: pallet_identifier.name_key.facility_identifier.id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: pallet_identifier.name_key.facility_identifier.id
+ - key: pallet_identifier.name_key.facility_identifier.id
+ foreign-key: pallet_identifier.name_key.facility_identifier.id
+ - key: item_identifier.id
+ foreign-key: item_identifier.id
+ - key: location_identifier.id
+ foreign-key: location_identifier.id
+ - key: pallet_identifier.id
+ foreign-key: pallet_identifier.id
+ - key: receiver_id
+ foreign-key: receiver_id
+ - key: receive_item_id
+ foreign-key: receive_item_id
+ - key: supplier_identifier.id
+ foreign-key: supplier_identifier.id
+ - table-name: locations
+ keys:
+ - key: customer_identifier.id
+ foreign-key: customer_identifier.id
+ - key: facility_identifier.id
+ foreign-key: facility_id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: facility_id
+ - key: pallet_identifier.name_key.facility_identifier.id
+ foreign-key: facility_id
+ - key: facility_identifier.id
+ foreign-key: item_traits.pallet_identifier.name_key.facility_identifier.id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: item_traits.pallet_identifier.name_key.facility_identifier.id
+ - key: pallet_identifier.name_key.facility_identifier.id
+ foreign-key: item_traits.pallet_identifier.name_key.facility_identifier.id
+ - key: facility_identifier.id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - key: pallet_identifier.name_key.facility_identifier.id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - key: location_identifier.id
+ foreign-key: location_id
+ - key: location_identifier.id
+ foreign-key: location_identifier.id
+ - key: pallet_identifier.id
+ foreign-key: item_traits.pallet_identifier.id
+ - table-name: orders
+ keys:
+ - key: customer_identifier.id
+ foreign-key: customer_identifier.id
+ - key: customer_identifier.id
+ foreign-key: batch_identifier.name_key.customer_identifier.id
+ - key: customer_identifier.id
+ foreign-key: ship_to.retailer_info.name_key.customer_identifier.id
+ - key: facility_identifier.id
+ foreign-key: facility_identifier.id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: facility_identifier.id
+ - key: pallet_identifier.name_key.facility_identifier.id
+ foreign-key: facility_identifier.id
+ - table-name: stock_summaries
+ keys:
+ - key: facility_identifier.id
+ foreign-key: facility_id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: facility_id
+ - key: pallet_identifier.name_key.facility_identifier.id
+ foreign-key: facility_id
+- table-name: locations
+ join:
+ - table-name: customers
+ keys:
+ - key: customer_identifier.id
+ foreign-key: customer_id
+ - key: facility_id
+ foreign-key: facilities.id
+ - key: item_traits.pallet_identifier.name_key.facility_identifier.id
+ foreign-key: facilities.id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: facilities.id
+ - key: facility_id
+ foreign-key: primary_facility_identifier.id
+ - key: item_traits.pallet_identifier.name_key.facility_identifier.id
+ foreign-key: primary_facility_identifier.id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: primary_facility_identifier.id
+ - table-name: sku_items
+ keys:
+ - key: customer_identifier.id
+ foreign-key: customer_id
+ - key: customer_identifier.id
+ foreign-key: customer_identifier.id
+ - key: facility_id
+ foreign-key: options.directed_put_away.preferred_location_identifier.name_key.facility_identifier.id
+ - key: item_traits.pallet_identifier.name_key.facility_identifier.id
+ foreign-key: options.directed_put_away.preferred_location_identifier.name_key.facility_identifier.id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: options.directed_put_away.preferred_location_identifier.name_key.facility_identifier.id
+ - key: item_traits.item_identifier.id
+ foreign-key: item_id
+ - key: location_id
+ foreign-key: options.directed_put_away.preferred_location_identifier.id
+ - key: location_identifier.id
+ foreign-key: options.directed_put_away.preferred_location_identifier.id
+ - table-name: stock_details
+ keys:
+ - key: customer_identifier.id
+ foreign-key: customer_id
+ - key: facility_id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - key: item_traits.pallet_identifier.name_key.facility_identifier.id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - key: facility_id
+ foreign-key: pallet_identifier.name_key.facility_identifier.id
+ - key: item_traits.pallet_identifier.name_key.facility_identifier.id
+ foreign-key: pallet_identifier.name_key.facility_identifier.id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: pallet_identifier.name_key.facility_identifier.id
+ - key: location_id
+ foreign-key: location_identifier.id
+ - key: location_identifier.id
+ foreign-key: location_identifier.id
+ - key: item_traits.pallet_identifier.id
+ foreign-key: pallet_identifier.id
+ - table-name: inventory
+ keys:
+ - key: customer_identifier.id
+ foreign-key: customer_identifier.id
+ - key: facility_id
+ foreign-key: facility_identifier.id
+ - key: item_traits.pallet_identifier.name_key.facility_identifier.id
+ foreign-key: facility_identifier.id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: facility_identifier.id
+ - key: facility_id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - key: item_traits.pallet_identifier.name_key.facility_identifier.id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - key: facility_id
+ foreign-key: pallet_identifier.name_key.facility_identifier.id
+ - key: item_traits.pallet_identifier.name_key.facility_identifier.id
+ foreign-key: pallet_identifier.name_key.facility_identifier.id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: pallet_identifier.name_key.facility_identifier.id
+ - key: location_id
+ foreign-key: location_identifier.id
+ - key: location_identifier.id
+ foreign-key: location_identifier.id
+ - key: item_traits.pallet_identifier.id
+ foreign-key: pallet_identifier.id
+ - table-name: orders
+ keys:
+ - key: customer_identifier.id
+ foreign-key: customer_identifier.id
+ - key: customer_identifier.id
+ foreign-key: batch_identifier.name_key.customer_identifier.id
+ - key: customer_identifier.id
+ foreign-key: ship_to.retailer_info.name_key.customer_identifier.id
+ - key: facility_id
+ foreign-key: facility_identifier.id
+ - key: item_traits.pallet_identifier.name_key.facility_identifier.id
+ foreign-key: facility_identifier.id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: facility_identifier.id
+ - table-name: stock_summaries
+ keys:
+ - key: facility_id
+ foreign-key: facility_id
+ - key: item_traits.pallet_identifier.name_key.facility_identifier.id
+ foreign-key: facility_id
+ - key: location_identifier.name_key.facility_identifier.id
+ foreign-key: facility_id
+ - key: item_traits.item_identifier.id
+ foreign-key: item_id
+- table-name: orders
+ join:
+ - table-name: customers
+ keys:
+ - key: customer_identifier.id
+ foreign-key: customer_id
+ - key: batch_identifier.name_key.customer_identifier.id
+ foreign-key: customer_id
+ - key: ship_to.retailer_info.name_key.customer_identifier.id
+ foreign-key: customer_id
+ - key: facility_identifier.id
+ foreign-key: facilities.id
+ - key: facility_identifier.id
+ foreign-key: primary_facility_identifier.id
+ - table-name: sku_items
+ keys:
+ - key: customer_identifier.id
+ foreign-key: customer_id
+ - key: batch_identifier.name_key.customer_identifier.id
+ foreign-key: customer_id
+ - key: ship_to.retailer_info.name_key.customer_identifier.id
+ foreign-key: customer_id
+ - key: customer_identifier.id
+ foreign-key: customer_identifier.id
+ - key: batch_identifier.name_key.customer_identifier.id
+ foreign-key: customer_identifier.id
+ - key: ship_to.retailer_info.name_key.customer_identifier.id
+ foreign-key: customer_identifier.id
+ - key: facility_identifier.id
+ foreign-key: options.directed_put_away.preferred_location_identifier.name_key.facility_identifier.id
+ - table-name: stock_details
+ keys:
+ - key: customer_identifier.id
+ foreign-key: customer_id
+ - key: batch_identifier.name_key.customer_identifier.id
+ foreign-key: customer_id
+ - key: ship_to.retailer_info.name_key.customer_identifier.id
+ foreign-key: customer_id
+ - key: facility_identifier.id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - key: facility_identifier.id
+ foreign-key: pallet_identifier.name_key.facility_identifier.id
+ - table-name: inventory
+ keys:
+ - key: customer_identifier.id
+ foreign-key: customer_identifier.id
+ - key: batch_identifier.name_key.customer_identifier.id
+ foreign-key: customer_identifier.id
+ - key: ship_to.retailer_info.name_key.customer_identifier.id
+ foreign-key: customer_identifier.id
+ - key: facility_identifier.id
+ foreign-key: facility_identifier.id
+ - key: facility_identifier.id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - key: facility_identifier.id
+ foreign-key: pallet_identifier.name_key.facility_identifier.id
+ - table-name: locations
+ keys:
+ - key: customer_identifier.id
+ foreign-key: customer_identifier.id
+ - key: batch_identifier.name_key.customer_identifier.id
+ foreign-key: customer_identifier.id
+ - key: ship_to.retailer_info.name_key.customer_identifier.id
+ foreign-key: customer_identifier.id
+ - key: facility_identifier.id
+ foreign-key: facility_id
+ - key: facility_identifier.id
+ foreign-key: item_traits.pallet_identifier.name_key.facility_identifier.id
+ - key: facility_identifier.id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - table-name: stock_summaries
+ keys:
+ - key: facility_identifier.id
+ foreign-key: facility_id
+- table-name: stock_summaries
+ join:
+ - table-name: customers
+ keys:
+ - key: facility_id
+ foreign-key: facilities.id
+ - key: facility_id
+ foreign-key: primary_facility_identifier.id
+ - table-name: inventory
+ keys:
+ - key: facility_id
+ foreign-key: facility_identifier.id
+ - key: facility_id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - key: facility_id
+ foreign-key: pallet_identifier.name_key.facility_identifier.id
+ - table-name: locations
+ keys:
+ - key: facility_id
+ foreign-key: facility_id
+ - key: facility_id
+ foreign-key: item_traits.pallet_identifier.name_key.facility_identifier.id
+ - key: facility_id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - key: item_id
+ foreign-key: item_traits.item_identifier.id
+ - table-name: orders
+ keys:
+ - key: facility_id
+ foreign-key: facility_identifier.id
+ - table-name: sku_items
+ keys:
+ - key: facility_id
+ foreign-key: options.directed_put_away.preferred_location_identifier.name_key.facility_identifier.id
+ - key: item_id
+ foreign-key: item_id
+ - table-name: stock_details
+ keys:
+ - key: facility_id
+ foreign-key: location_identifier.name_key.facility_identifier.id
+ - key: facility_id
+ foreign-key: pallet_identifier.name_key.facility_identifier.id
diff --git a/_data/taps/schemas/3plcentral/v1/3plcentral-v1-tables.yml b/_data/taps/schemas/3plcentral/v1/3plcentral-v1-tables.yml
new file mode 100644
index 000000000..74adc2c47
--- /dev/null
+++ b/_data/taps/schemas/3plcentral/v1/3plcentral-v1-tables.yml
@@ -0,0 +1,72 @@
+tap: 3plcentral
+version: '1'
+tables:
+- name: customers
+ description: This table contains information about customers.
+ links:
+ doc-link: http://api.3plcentral.com/rels/
+ singer-schema: https://github.com/singer-io/tap-3plcentral/blob/master/tap_3plcentral/schemas/customers.json
+ api-method: http://api.3plcentral.com/rels/customers/customers
+ table-details:
+ replication-method: Full Table
+ primary-key: customer_id
+- name: inventory
+ description: This table contains information about inventory resources.
+ links:
+ doc-link: http://api.3plcentral.com/rels/
+ singer-schema: https://github.com/singer-io/tap-3plcentral/blob/master/tap_3plcentral/schemas/inventory.json
+ api-method: http://api.3plcentral.com/rels/inventory/inventory
+ table-details:
+ replication-method: Full Table
+ primary-key: receive_item_id
+- name: locations
+ description: This table contains information about inventory facility locations.
+ links:
+ doc-link: http://api.3plcentral.com/rels/
+ singer-schema: https://github.com/singer-io/tap-3plcentral/blob/master/tap_3plcentral/schemas/locations.json
+ api-method: http://api.3plcentral.com/rels/inventory/locations
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - location_id
+ - facility_id
+- name: orders
+ description: This table contains information about orders.
+ links:
+ doc-link: http://api.3plcentral.com/rels/
+ singer-schema: https://github.com/singer-io/tap-3plcentral/blob/master/tap_3plcentral/schemas/orders.json
+ api-method: http://api.3plcentral.com/rels/orders/orders
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: order_id
+ replication-key: last_modified_date
+- name: sku_items
+ description: This table contains information about SKU items.
+ links:
+ doc-link: http://api.3plcentral.com/rels/
+ singer-schema: https://github.com/singer-io/tap-3plcentral/blob/master/tap_3plcentral/schemas/sku_items.json
+ api-method: http://api.3plcentral.com/rels/customers/items
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: item_id
+ replication-key: last_modified_date
+- name: stock_details
+ description: This table contains information about stock details.
+ links:
+ doc-link: http://api.3plcentral.com/rels/
+ singer-schema: https://github.com/singer-io/tap-3plcentral/blob/master/tap_3plcentral/schemas/stock_details.json
+ api-method: http://api.3plcentral.com/rels/inventory/stockdetails
+ table-details:
+ replication-method: Full Table
+ primary-key: receive_item_id
+- name: stock_summaries
+ description: This table contains information about stock summaries.
+ links:
+ doc-link: http://api.3plcentral.com/rels/
+ singer-schema: https://github.com/singer-io/tap-3plcentral/blob/master/tap_3plcentral/schemas/stock_summaries.json
+ api-method: http://api.3plcentral.com/rels/inventory/stocksummaries
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - facility_id
+ - item_id
diff --git a/_data/taps/schemas/3plcentral/v1/json/customers.json b/_data/taps/schemas/3plcentral/v1/json/customers.json
new file mode 100644
index 000000000..04ad6dfe4
--- /dev/null
+++ b/_data/taps/schemas/3plcentral/v1/json/customers.json
@@ -0,0 +1,1031 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "company_info": {
+ "additionalProperties": false,
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_status": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contact_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dept": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "deactivated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "facilities": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "groups": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "options": {
+ "additionalProperties": false,
+ "properties": {
+ "alerts": {
+ "additionalProperties": false,
+ "properties": {
+ "expiration_notification_threshold": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "from_email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notify_ship_to": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "edi": {
+ "additionalProperties": false,
+ "properties": {
+ "customer_interchange_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_interchange_id_qual": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "threepl_interchange_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "threepl_interchange_id_qual": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trading_partner_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "other_system_behaviors": {
+ "additionalProperties": false,
+ "properties": {
+ "flex_fields": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "require_attached_documents": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "packaging": {
+ "additionalProperties": false,
+ "properties": {
+ "small_parcel_create_packages_on_find": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "small_parcel_customize_duties": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "small_parcel_duties_and_taxes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "small_parcel_duty_billing_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "small_parcel_high_volume_default_checked": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "small_parcel_high_volume_zpl_batched": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "small_parcel_rate_shopping_carrier_ids": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "small_parcel_rate_shopping_logic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "small_parcel_references": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "small_parcel_return_default_checked": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "small_parcel_return_fed_ex_service": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "small_parcel_return_shipping_cost": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "small_parcel_return_ups_service": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "small_parcel_usps_3rd_party": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "small_parcel_usps_return_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sps_close_on_update": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ucc128_manufacturers_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "use_vendor_id_on_bol": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "receivers": {
+ "additionalProperties": false,
+ "properties": {
+ "defs": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "item_defs": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "receiving": {
+ "additionalProperties": false,
+ "properties": {
+ "autofill_track_bys": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "create_multiple_mus": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "inherit_original_receipt_date_on_transfer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "purchase_orders": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "receive_against_asns": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "require_scac_for_asn": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "suggest_put_away_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "track_location": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "track_pallets": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "track_supplier": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "saved_elements": {
+ "additionalProperties": false,
+ "properties": {
+ "orders": {
+ "additionalProperties": false,
+ "properties": {
+ "defs": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "item_defs": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shipping": {
+ "additionalProperties": false,
+ "properties": {
+ "auto_confirm_order_on_tracking_update": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "bol_num_as_trans_num": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "fed_ex_account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fulfillment_invoicing": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "next_master_bol_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "next_master_bol_id_override": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "order_queue": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "packing_list_footer_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "packing_list_logo_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prepopulate_carrier_info": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "require_tracking_number": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "roundupto_full_mu": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ups_account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ups_account_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "storage": {
+ "additionalProperties": false,
+ "properties": {
+ "accounting_customer_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "autofill_charges_on_confirm": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "fuel_surcharge": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "set_invoice_date_to_xaction_confirm_date": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "user_interface": {
+ "additionalProperties": false,
+ "properties": {
+ "auto_check_auto_reallocate_on_receive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "branding_image_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "dashboard": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "exclude_location_with_zero_inventory": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "hide_location_selected_list": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mobile_receipt_quantity_one_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "reallocate_at_pick_time": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "transaction_confirm_invoice_create_default": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "other_contacts": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_status": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contact_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dept": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "primary_contact": {
+ "additionalProperties": false,
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_status": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contact_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dept": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "primary_facility_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/3plcentral/v1/json/inventory.json b/_data/taps/schemas/3plcentral/v1/json/inventory.json
new file mode 100644
index 000000000..65d7144fe
--- /dev/null
+++ b/_data/taps/schemas/3plcentral/v1/json/inventory.json
@@ -0,0 +1,445 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "available_qty": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "customer_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "external_d": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "expiration_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "facility_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "inventory_unit_of_measure_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "inventory_units_per_secondary_unity": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "item_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "item_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "location_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name_key": {
+ "additionalProperties": false,
+ "properties": {
+ "facility_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "lot_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "on_hand_qty": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "on_hold": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "on_hold_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "on_hold_qty": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "on_hold_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "on_hold_user_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "pallet_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name_key": {
+ "additionalProperties": false,
+ "properties": {
+ "facility_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "qualifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quarantined": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "receive_item_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "receive_qty": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "received_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "receiver_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "secondary_available_qty": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "secondary_on_hand_qty": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "secondary_on_hold_qty": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "secondary_received_qty": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "secondary_unit_of_measure_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "serial_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "supplier_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "weight_imperial": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "weight_imperial_available": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "weight_imperial_on_hand": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "weight_metric": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "weight_metric_available": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "weight_metric_on_hand": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/3plcentral/v1/json/locations.json b/_data/taps/schemas/3plcentral/v1/json/locations.json
new file mode 100644
index 000000000..e008f4bf0
--- /dev/null
+++ b/_data/taps/schemas/3plcentral/v1/json/locations.json
@@ -0,0 +1,235 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "customer_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "facility_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "item_traits": {
+ "additionalProperties": false,
+ "properties": {
+ "expiration_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "item_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "lot_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pallet_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name_key": {
+ "additionalProperties": false,
+ "properties": {
+ "facility_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "qualifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "serial_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "location_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name_key": {
+ "additionalProperties": false,
+ "properties": {
+ "facility_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "location_type_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "on_hand": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/3plcentral/v1/json/orders.json b/_data/taps/schemas/3plcentral/v1/json/orders.json
new file mode 100644
index 000000000..59aba62c2
--- /dev/null
+++ b/_data/taps/schemas/3plcentral/v1/json/orders.json
@@ -0,0 +1,2098 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "add_freight_to_cod": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "asn_candidate": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "asn_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "asn_sent": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "asn_sent_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "batch_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name_key": {
+ "additionalProperties": false,
+ "properties": {
+ "customer_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "bill_to": {
+ "additionalProperties": false,
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contact_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dept": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_quick_lookup": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "retailer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "same_as": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "billing": {
+ "additionalProperties": false,
+ "properties": {
+ "billing_charges": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "charge_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "details": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "charge_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "charge_per_unit": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "gl_acct_num": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "num_units": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "pt_ar_acct": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pt_item": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pt_item_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "system_generated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "unit_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "warehouse_transaction_price_calc_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "subtotal": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "billing_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "defer_notification": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "earliest_ship_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "export_channel_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "export_module_ids": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "facility_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "fulfill_inv_info": {
+ "additionalProperties": false,
+ "properties": {
+ "fulfill_inv_amount": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fulfill_inv_discount_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fulfill_inv_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fulfill_inv_shipping_and_handling": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fulfill_inv_tax": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "fully_allocated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "import_channel_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "invoice_delivered_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "invoice_exported_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "invoice_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_closed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "labels_exported": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_modified_by_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "load_out_done_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "loaded_state": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "master_billing_of_lading_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "num_units": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "order_items": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "expiration_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fulfill_inv_discount_amt": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fulfill_inv_discount_pct": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fulfill_inv_note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fulfill_inv_sale_price": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "item_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "lot_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_item_packages": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "package_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "proposed_allocations": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "qty": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "receive_item_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "qty": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "qualifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "read_only": {
+ "additionalProperties": false,
+ "properties": {
+ "allocations": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "detail": {
+ "additionalProperties": false,
+ "properties": {
+ "expiration_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "item_traits": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "location_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name_key": {
+ "additionalProperties": false,
+ "properties": {
+ "facility_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "lot_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pallet_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name_key": {
+ "additionalProperties": false,
+ "properties": {
+ "facility_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "qualifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "serial_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "loaded_out": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "properly_picked_primary": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "properly_picked_secondary": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "qty": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "receive_item_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "estimated_qty": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "estimated_secondary_qty": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "full_allocated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_order_qty_secondary": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "order_item_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pick_exceptions": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "expiration_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lot_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "order_item_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "order_item_pick_exception_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "picked_primary_qty": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "picked_secondary_qty": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receive_item_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "serial_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "secondary_unit_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "unit_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "saved_elements": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "secondary_qty": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "serial_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "weight_imperial": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "weight_metric": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "outbound_serial_numbers": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "item_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "qualifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "serial_numbers": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "pack_done_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "packages": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "cod": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "cod_amount": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "create_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "height": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "insured_amount": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "length": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "oversize": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "package_contents": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "create_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "expiration_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "lot_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_item_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "order_item_pick_exception_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "package_content_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "package_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "qty": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "receive_item_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "serial_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "serial_numbers": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "package_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "package_type_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tracking_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ucc128": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "weight": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "width": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "parcel_label_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pick_done_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "pick_ticket_print_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "pkgs_exported": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "po_num": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "process_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "reallocated_after_pick_ticket_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "reference_num": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "route_candidate": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "route_pickup_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "route_sent": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "routing_info": {
+ "additionalProperties": false,
+ "properties": {
+ "account": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bill_of_lading": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "capacity_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "carrier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "door_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_cod": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_insurance": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "load_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pickup_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "required_delivery_conf": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "required_return_receipt": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "scac_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "seal_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ship_point_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trailer_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "saved_elements": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "ship_cancel_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ship_to": {
+ "additionalProperties": false,
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contact_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dept": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_quick_lookup": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "retailer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "retailer_info": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name_key": {
+ "additionalProperties": false,
+ "properties": {
+ "customer_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "same_as": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shipping_notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sold_to": {
+ "additionalProperties": false,
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contact_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dept": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_quick_lookup": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "retailer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "same_as": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_volume": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_weight": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transaction_entry_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit2_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "up_service_option_charge": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "up_transportation_charge": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ups_is_residential": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "warehouse_transaction_source_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/3plcentral/v1/json/sku_items.json b/_data/taps/schemas/3plcentral/v1/json/sku_items.json
new file mode 100644
index 000000000..baa87ee70
--- /dev/null
+++ b/_data/taps/schemas/3plcentral/v1/json/sku_items.json
@@ -0,0 +1,873 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_ref": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "classification_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "cost": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "country_of_manufacture": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "customer_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "external_d": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "deactivated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "harmonized_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inventory_category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "item": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "qualifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "item_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "kit": {
+ "additionalProperties": false,
+ "properties": {
+ "components": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "item_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "non_sku_material": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "qty": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "qualifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "material_notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_price_change": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "nmfc": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "options": {
+ "additionalProperties": false,
+ "properties": {
+ "auto_hold_on_receive": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "days_between_counts": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "directed_put_away": {
+ "additionalProperties": false,
+ "properties": {
+ "allow_mixed_item_storage": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_mixed_lot_storage": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "force_into_preferred_location": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "location_zones": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mixed_expiration_days_threshold": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "over_alloc_location_zones": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pallet_location_zones": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preferred_location_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name_key": {
+ "additionalProperties": false,
+ "properties": {
+ "facility_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "haz_mat": {
+ "additionalProperties": false,
+ "properties": {
+ "flag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "flash_point": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hazard_class": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_haz_mat": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "label_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "packing_group": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "inventory_unit": {
+ "additionalProperties": false,
+ "properties": {
+ "inventory_method": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "maximum_stock": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "minimum_stock": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "reorder_quantity": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unit_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "package_unit": {
+ "additionalProperties": false,
+ "properties": {
+ "imperial": {
+ "additionalProperties": false,
+ "properties": {
+ "height": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "length": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "net_weight": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "weight": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "width": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "metric": {
+ "additionalProperties": false,
+ "properties": {
+ "height": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "length": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "net_weight": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "weight": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "width": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "unit_identifier": {
+ "additionalProperties": false,
+ "inventory_units_per_unit": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "upc": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "pallets": {
+ "additionalProperties": false,
+ "properties": {
+ "high": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "imperial": {
+ "additionalProperties": false,
+ "properties": {
+ "height": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "length": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "weight": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "width": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "metric": {
+ "additionalProperties": false,
+ "properties": {
+ "height": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "length": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "weight": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "width": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "qyt": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tie": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "type_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "upc": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "secondary_unit": {
+ "additionalProperties": false,
+ "properties": {
+ "inventory_also": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "inventory_units_per_unit": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unit_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "track_by": {
+ "additionalProperties": false,
+ "properties": {
+ "auto_hold_expiration_days_threshold": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "outbound_mobile_serialization": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "track_cost": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "track_expiration_date": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "track_lot_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "track_serial_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "price": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "qualifier_renamers": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "qualifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rename": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "temperature": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "upc": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/3plcentral/v1/json/stock_details.json b/_data/taps/schemas/3plcentral/v1/json/stock_details.json
new file mode 100644
index 000000000..8e0f82e29
--- /dev/null
+++ b/_data/taps/schemas/3plcentral/v1/json/stock_details.json
@@ -0,0 +1,311 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "available": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expiration_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "inventory_unit_of_measure_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "is_on_hold": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "item_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "location_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name_key": {
+ "additionalProperties": false,
+ "properties": {
+ "facility_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "lot_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "on_hand": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "pallet_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name_key": {
+ "additionalProperties": false,
+ "properties": {
+ "facility_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "po_num": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "qualifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quarantined": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "receive_item_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "received": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "received_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "receiver_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reference_num": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "saved_elements": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "serial_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "supplier_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trailer_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/3plcentral/v1/json/stock_summaries.json b/_data/taps/schemas/3plcentral/v1/json/stock_summaries.json
new file mode 100644
index 000000000..d1ea90be4
--- /dev/null
+++ b/_data/taps/schemas/3plcentral/v1/json/stock_summaries.json
@@ -0,0 +1,80 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "allocated": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "available": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "facility_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "item_identifier": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "on_hand": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "on_hold": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "qualifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_received": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/activecampaign-v1-foreign-keys.yml b/_data/taps/schemas/activecampaign/v1/activecampaign-v1-foreign-keys.yml
new file mode 100644
index 000000000..197b2f636
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/activecampaign-v1-foreign-keys.yml
@@ -0,0 +1,3385 @@
+tap: activecampaign
+version: '1'
+keys:
+ account_custom_fields_id:
+ - table: account_custom_fields
+ keys:
+ - id
+ - table: account_custom_field_values
+ keys:
+ - custom_field_id
+ addresses_id:
+ - table: addresses
+ keys:
+ - id
+ - table: campaigns
+ keys:
+ - addressid
+ - table: forms
+ keys:
+ - addressid
+ campaigns_id:
+ - table: campaigns
+ keys:
+ - id
+ - table: campaign_links
+ keys:
+ - campaignid
+ - table: bounce_logs
+ keys:
+ - campaignid
+ - table: campaign_lists
+ keys:
+ - campaignid
+ - table: campaign_messages
+ keys:
+ - campaignid
+ - table: contact_lists
+ keys:
+ - campaign
+ deal_custom_fields_id:
+ - table: deal_custom_fields
+ keys:
+ - id
+ - table: deal_custom_field_values
+ keys:
+ - custom_field_id
+ deals_id:
+ - table: deals
+ keys:
+ - id
+ - table: deal_custom_field_values
+ keys:
+ - deal_id
+ - table: contact_deals
+ keys:
+ - deal
+ - table: forms
+ keys:
+ - deals
+ - table: deal_activities
+ keys:
+ - deal
+ - table: email_activities
+ keys:
+ - deal
+ - table: contact_emails
+ keys:
+ - deal
+ deal_stages_id:
+ - table: deal_stages
+ keys:
+ - id
+ - table: deals
+ keys:
+ - stage
+ - table: deal_groups
+ keys:
+ - stages
+ - table: deal_activities
+ keys:
+ - stage
+ deal_groups_id:
+ - table: deal_groups
+ keys:
+ - id
+ - table: deals
+ keys:
+ - group
+ - table: deal_stages
+ keys:
+ - group
+ - table: deal_group_users
+ keys:
+ - deal_group
+ accounts_id:
+ - table: accounts
+ keys:
+ - id
+ - table: deals
+ keys:
+ - account
+ - table: contact_emails
+ keys:
+ - account
+ - table: email_activities
+ keys:
+ - account
+ - table: account_contacts
+ keys:
+ - account
+ - table: account_custom_field_values
+ keys:
+ - account_id
+ contacts_id:
+ - table: contacts
+ keys:
+ - id
+ - table: deals
+ keys:
+ - contact
+ - table: forms
+ keys:
+ - contacts
+ - table: bounce_logs
+ keys:
+ - contact
+ - table: contact_data
+ keys:
+ - contact
+ - table: contact_emails
+ keys:
+ - contact
+ - table: contact_lists
+ keys:
+ - contact
+ - table: contact_tags
+ keys:
+ - contact
+ - table: contact_conversions
+ keys:
+ - contact
+ - table: email_activities
+ keys:
+ - contact
+ - table: account_contacts
+ keys:
+ - contact
+ - table: contact_automations
+ keys:
+ - contact
+ - table: contact_custom_field_values
+ keys:
+ - contact
+ - table: contact_deals
+ keys:
+ - contact
+ ecommerce_connections_id:
+ - table: ecommerce_connections
+ keys:
+ - id
+ - table: ecommerce_customers
+ keys:
+ - connectionid
+ - table: ecommerce_orders
+ keys:
+ - connectionid
+ - connectionid
+ - table: ecommerce_order_products
+ keys:
+ - connectionid
+ - table: ecommerce_order_activities
+ keys:
+ - connectionid
+ ecommerce_customers_id:
+ - table: ecommerce_customers
+ keys:
+ - id
+ - table: ecommerce_orders
+ keys:
+ - customer
+ - table: ecommerce_order_activities
+ keys:
+ - customerid
+ ecommerce_orders_id:
+ - table: ecommerce_orders
+ keys:
+ - id
+ - table: ecommerce_order_products
+ keys:
+ - orderid
+ - table: ecommerce_order_activities
+ keys:
+ - orderid
+ - table: contact_custom_field_options
+ keys:
+ - orderid
+ - table: deal_stages
+ keys:
+ - order
+ users_id:
+ - table: users
+ keys:
+ - id
+ - table: forms
+ keys:
+ - userid
+ - table: lists
+ keys:
+ - userid
+ - table: messages
+ keys:
+ - userid
+ - table: saved_responses
+ keys:
+ - last_sent_user_id
+ - table: tasks
+ keys:
+ - user
+ - table: templates
+ keys:
+ - userid
+ - table: activities
+ keys:
+ - userid
+ - table: campaign_lists
+ keys:
+ - userid
+ - table: configs
+ keys:
+ - userid
+ - table: contact_emails
+ keys:
+ - userid
+ - table: deal_activities
+ keys:
+ - userid
+ - table: deal_group_users
+ keys:
+ - user
+ - table: email_activities
+ keys:
+ - userid
+ - table: sms
+ keys:
+ - userid
+ - table: automations
+ keys:
+ - userid
+ - table: calendars
+ keys:
+ - userid
+ - table: campaigns
+ keys:
+ - userid
+ task_types_id:
+ - table: task_types
+ keys:
+ - id
+ - table: tasks
+ keys:
+ - deal_tasktype
+ lists_id:
+ - table: lists
+ keys:
+ - id
+ - table: webhooks
+ keys:
+ - listid
+ - table: campaign_lists
+ keys:
+ - listid
+ - table: contact_lists
+ keys:
+ - list
+ messages_id:
+ - table: messages
+ keys:
+ - id
+ - table: bounce_logs
+ keys:
+ - messageid
+ - table: campaign_messages
+ keys:
+ - messageid
+ - table: contact_emails
+ keys:
+ - messageid
+ - table: contact_lists
+ keys:
+ - message
+ - table: campaign_links
+ keys:
+ - messageid
+ tags_id:
+ - table: tags
+ keys:
+ - id
+ - table: contact_tags
+ keys:
+ - tag
+ conversions_id:
+ - table: conversions
+ keys:
+ - id
+ - table: contact_conversions
+ keys:
+ - conversion
+ - table: conversion_triggers
+ keys:
+ - conversion
+ conversion_triggers_id:
+ - table: conversion_triggers
+ keys:
+ - id
+ - table: contact_conversions
+ keys:
+ - conversiontrigger
+ automations_id:
+ - table: automations
+ keys:
+ - id
+ - table: deal_activities
+ keys:
+ - automation
+ - table: goals
+ keys:
+ - automation
+ - table: site_messages
+ keys:
+ - automation
+ - table: sms
+ keys:
+ - automation
+ - table: automation_blocks
+ keys:
+ - automation
+ - table: campaigns
+ keys:
+ - automation
+ - table: contact_automations
+ keys:
+ - automation
+ segments_id:
+ - table: segments
+ keys:
+ - id
+ - table: campaigns
+ keys:
+ - segmentid
+ forms_id:
+ - table: forms
+ keys:
+ - id
+ - table: contact_lists
+ keys:
+ - form
+tables:
+- table-name: account_custom_fields
+ join:
+ - table-name: account_custom_field_values
+ keys:
+ - key: id
+ foreign-key: custom_field_id
+- table-name: account_custom_field_values
+ join:
+ - table-name: account_custom_fields
+ keys:
+ - key: custom_field_id
+ foreign-key: id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: id
+ - table-name: deals
+ keys:
+ - key: account_id
+ foreign-key: account
+ - table-name: contact_emails
+ keys:
+ - key: account_id
+ foreign-key: account
+ - table-name: email_activities
+ keys:
+ - key: account_id
+ foreign-key: account
+ - table-name: account_contacts
+ keys:
+ - key: account_id
+ foreign-key: account
+- table-name: addresses
+ join:
+ - table-name: campaigns
+ keys:
+ - key: id
+ foreign-key: addressid
+ - table-name: forms
+ keys:
+ - key: id
+ foreign-key: addressid
+- table-name: campaigns
+ join:
+ - table-name: addresses
+ keys:
+ - key: addressid
+ foreign-key: id
+ - table-name: forms
+ keys:
+ - key: addressid
+ foreign-key: addressid
+ - key: userid
+ foreign-key: userid
+ - table-name: campaign_links
+ keys:
+ - key: id
+ foreign-key: campaignid
+ - table-name: bounce_logs
+ keys:
+ - key: id
+ foreign-key: campaignid
+ - table-name: campaign_lists
+ keys:
+ - key: id
+ foreign-key: campaignid
+ - key: userid
+ foreign-key: userid
+ - table-name: campaign_messages
+ keys:
+ - key: id
+ foreign-key: campaignid
+ - table-name: contact_lists
+ keys:
+ - key: id
+ foreign-key: campaign
+ - table-name: users
+ keys:
+ - key: userid
+ foreign-key: id
+ - table-name: lists
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: messages
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: saved_responses
+ keys:
+ - key: userid
+ foreign-key: last_sent_user_id
+ - table-name: tasks
+ keys:
+ - key: userid
+ foreign-key: user
+ - table-name: templates
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: configs
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: contact_emails
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: deal_activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - key: automation
+ foreign-key: automation
+ - table-name: deal_group_users
+ keys:
+ - key: userid
+ foreign-key: user
+ - table-name: email_activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: sms
+ keys:
+ - key: userid
+ foreign-key: userid
+ - key: automation
+ foreign-key: automation
+ - table-name: automations
+ keys:
+ - key: userid
+ foreign-key: userid
+ - key: automation
+ foreign-key: id
+ - table-name: calendars
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: goals
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: site_messages
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: automation_blocks
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: contact_automations
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: segments
+ keys:
+ - key: segmentid
+ foreign-key: id
+- table-name: forms
+ join:
+ - table-name: addresses
+ keys:
+ - key: addressid
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: addressid
+ foreign-key: addressid
+ - key: userid
+ foreign-key: userid
+ - table-name: deals
+ keys:
+ - key: deals
+ foreign-key: id
+ - key: contacts
+ foreign-key: contact
+ - table-name: deal_custom_field_values
+ keys:
+ - key: deals
+ foreign-key: deal_id
+ - table-name: contact_deals
+ keys:
+ - key: deals
+ foreign-key: deal
+ - key: contacts
+ foreign-key: contact
+ - table-name: deal_activities
+ keys:
+ - key: deals
+ foreign-key: deal
+ - key: userid
+ foreign-key: userid
+ - table-name: email_activities
+ keys:
+ - key: deals
+ foreign-key: deal
+ - key: contacts
+ foreign-key: contact
+ - key: userid
+ foreign-key: userid
+ - table-name: contact_emails
+ keys:
+ - key: deals
+ foreign-key: deal
+ - key: contacts
+ foreign-key: contact
+ - key: userid
+ foreign-key: userid
+ - table-name: contacts
+ keys:
+ - key: contacts
+ foreign-key: id
+ - table-name: bounce_logs
+ keys:
+ - key: contacts
+ foreign-key: contact
+ - table-name: contact_data
+ keys:
+ - key: contacts
+ foreign-key: contact
+ - table-name: contact_lists
+ keys:
+ - key: contacts
+ foreign-key: contact
+ - key: id
+ foreign-key: form
+ - table-name: contact_tags
+ keys:
+ - key: contacts
+ foreign-key: contact
+ - table-name: contact_conversions
+ keys:
+ - key: contacts
+ foreign-key: contact
+ - table-name: account_contacts
+ keys:
+ - key: contacts
+ foreign-key: contact
+ - table-name: contact_automations
+ keys:
+ - key: contacts
+ foreign-key: contact
+ - table-name: contact_custom_field_values
+ keys:
+ - key: contacts
+ foreign-key: contact
+ - table-name: users
+ keys:
+ - key: userid
+ foreign-key: id
+ - table-name: lists
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: messages
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: saved_responses
+ keys:
+ - key: userid
+ foreign-key: last_sent_user_id
+ - table-name: tasks
+ keys:
+ - key: userid
+ foreign-key: user
+ - table-name: templates
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: campaign_lists
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: configs
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: deal_group_users
+ keys:
+ - key: userid
+ foreign-key: user
+ - table-name: sms
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: automations
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: calendars
+ keys:
+ - key: userid
+ foreign-key: userid
+- table-name: campaign_links
+ join:
+ - table-name: campaigns
+ keys:
+ - key: campaignid
+ foreign-key: id
+ - table-name: bounce_logs
+ keys:
+ - key: campaignid
+ foreign-key: campaignid
+ - key: messageid
+ foreign-key: messageid
+ - table-name: campaign_lists
+ keys:
+ - key: campaignid
+ foreign-key: campaignid
+ - table-name: campaign_messages
+ keys:
+ - key: campaignid
+ foreign-key: campaignid
+ - key: messageid
+ foreign-key: messageid
+ - table-name: contact_lists
+ keys:
+ - key: campaignid
+ foreign-key: campaign
+ - key: messageid
+ foreign-key: message
+ - table-name: messages
+ keys:
+ - key: messageid
+ foreign-key: id
+ - table-name: contact_emails
+ keys:
+ - key: messageid
+ foreign-key: messageid
+- table-name: bounce_logs
+ join:
+ - table-name: campaigns
+ keys:
+ - key: campaignid
+ foreign-key: id
+ - table-name: campaign_links
+ keys:
+ - key: campaignid
+ foreign-key: campaignid
+ - key: messageid
+ foreign-key: messageid
+ - table-name: campaign_lists
+ keys:
+ - key: campaignid
+ foreign-key: campaignid
+ - table-name: campaign_messages
+ keys:
+ - key: campaignid
+ foreign-key: campaignid
+ - key: messageid
+ foreign-key: messageid
+ - table-name: contact_lists
+ keys:
+ - key: campaignid
+ foreign-key: campaign
+ - key: contact
+ foreign-key: contact
+ - key: messageid
+ foreign-key: message
+ - table-name: contacts
+ keys:
+ - key: contact
+ foreign-key: id
+ - table-name: deals
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: forms
+ keys:
+ - key: contact
+ foreign-key: contacts
+ - table-name: contact_data
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_emails
+ keys:
+ - key: contact
+ foreign-key: contact
+ - key: messageid
+ foreign-key: messageid
+ - table-name: contact_tags
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_conversions
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: email_activities
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: account_contacts
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_automations
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_custom_field_values
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_deals
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: messages
+ keys:
+ - key: messageid
+ foreign-key: id
+- table-name: campaign_lists
+ join:
+ - table-name: campaigns
+ keys:
+ - key: campaignid
+ foreign-key: id
+ - key: userid
+ foreign-key: userid
+ - table-name: campaign_links
+ keys:
+ - key: campaignid
+ foreign-key: campaignid
+ - table-name: bounce_logs
+ keys:
+ - key: campaignid
+ foreign-key: campaignid
+ - table-name: campaign_messages
+ keys:
+ - key: campaignid
+ foreign-key: campaignid
+ - table-name: contact_lists
+ keys:
+ - key: campaignid
+ foreign-key: campaign
+ - key: listid
+ foreign-key: list
+ - table-name: users
+ keys:
+ - key: userid
+ foreign-key: id
+ - table-name: forms
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: lists
+ keys:
+ - key: userid
+ foreign-key: userid
+ - key: listid
+ foreign-key: id
+ - table-name: messages
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: saved_responses
+ keys:
+ - key: userid
+ foreign-key: last_sent_user_id
+ - table-name: tasks
+ keys:
+ - key: userid
+ foreign-key: user
+ - table-name: templates
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: configs
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: contact_emails
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: deal_activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: deal_group_users
+ keys:
+ - key: userid
+ foreign-key: user
+ - table-name: email_activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: sms
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: automations
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: calendars
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: webhooks
+ keys:
+ - key: listid
+ foreign-key: listid
+- table-name: campaign_messages
+ join:
+ - table-name: campaigns
+ keys:
+ - key: campaignid
+ foreign-key: id
+ - table-name: campaign_links
+ keys:
+ - key: campaignid
+ foreign-key: campaignid
+ - key: messageid
+ foreign-key: messageid
+ - table-name: bounce_logs
+ keys:
+ - key: campaignid
+ foreign-key: campaignid
+ - key: messageid
+ foreign-key: messageid
+ - table-name: campaign_lists
+ keys:
+ - key: campaignid
+ foreign-key: campaignid
+ - table-name: contact_lists
+ keys:
+ - key: campaignid
+ foreign-key: campaign
+ - key: messageid
+ foreign-key: message
+ - table-name: messages
+ keys:
+ - key: messageid
+ foreign-key: id
+ - table-name: contact_emails
+ keys:
+ - key: messageid
+ foreign-key: messageid
+- table-name: contact_lists
+ join:
+ - table-name: campaigns
+ keys:
+ - key: campaign
+ foreign-key: id
+ - table-name: campaign_links
+ keys:
+ - key: campaign
+ foreign-key: campaignid
+ - key: message
+ foreign-key: messageid
+ - table-name: bounce_logs
+ keys:
+ - key: campaign
+ foreign-key: campaignid
+ - key: contact
+ foreign-key: contact
+ - key: message
+ foreign-key: messageid
+ - table-name: campaign_lists
+ keys:
+ - key: campaign
+ foreign-key: campaignid
+ - key: list
+ foreign-key: listid
+ - table-name: campaign_messages
+ keys:
+ - key: campaign
+ foreign-key: campaignid
+ - key: message
+ foreign-key: messageid
+ - table-name: contacts
+ keys:
+ - key: contact
+ foreign-key: id
+ - table-name: deals
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: forms
+ keys:
+ - key: contact
+ foreign-key: contacts
+ - key: form
+ foreign-key: id
+ - table-name: contact_data
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_emails
+ keys:
+ - key: contact
+ foreign-key: contact
+ - key: message
+ foreign-key: messageid
+ - table-name: contact_tags
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_conversions
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: email_activities
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: account_contacts
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_automations
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_custom_field_values
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_deals
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: lists
+ keys:
+ - key: list
+ foreign-key: id
+ - table-name: webhooks
+ keys:
+ - key: list
+ foreign-key: listid
+ - table-name: messages
+ keys:
+ - key: message
+ foreign-key: id
+- table-name: deal_custom_fields
+ join:
+ - table-name: deal_custom_field_values
+ keys:
+ - key: id
+ foreign-key: custom_field_id
+- table-name: deal_custom_field_values
+ join:
+ - table-name: deal_custom_fields
+ keys:
+ - key: custom_field_id
+ foreign-key: id
+ - table-name: deals
+ keys:
+ - key: deal_id
+ foreign-key: id
+ - table-name: contact_deals
+ keys:
+ - key: deal_id
+ foreign-key: deal
+ - table-name: forms
+ keys:
+ - key: deal_id
+ foreign-key: deals
+ - table-name: deal_activities
+ keys:
+ - key: deal_id
+ foreign-key: deal
+ - table-name: email_activities
+ keys:
+ - key: deal_id
+ foreign-key: deal
+ - table-name: contact_emails
+ keys:
+ - key: deal_id
+ foreign-key: deal
+- table-name: deals
+ join:
+ - table-name: deal_custom_field_values
+ keys:
+ - key: id
+ foreign-key: deal_id
+ - table-name: contact_deals
+ keys:
+ - key: id
+ foreign-key: deal
+ - key: contact
+ foreign-key: contact
+ - table-name: forms
+ keys:
+ - key: id
+ foreign-key: deals
+ - key: contact
+ foreign-key: contacts
+ - table-name: deal_activities
+ keys:
+ - key: id
+ foreign-key: deal
+ - key: stage
+ foreign-key: stage
+ - table-name: email_activities
+ keys:
+ - key: id
+ foreign-key: deal
+ - key: account
+ foreign-key: account
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_emails
+ keys:
+ - key: id
+ foreign-key: deal
+ - key: account
+ foreign-key: account
+ - key: contact
+ foreign-key: contact
+ - table-name: deal_stages
+ keys:
+ - key: stage
+ foreign-key: id
+ - key: group
+ foreign-key: group
+ - table-name: deal_groups
+ keys:
+ - key: stage
+ foreign-key: stages
+ - key: group
+ foreign-key: id
+ - table-name: deal_group_users
+ keys:
+ - key: group
+ foreign-key: deal_group
+ - table-name: accounts
+ keys:
+ - key: account
+ foreign-key: id
+ - table-name: account_contacts
+ keys:
+ - key: account
+ foreign-key: account
+ - key: contact
+ foreign-key: contact
+ - table-name: account_custom_field_values
+ keys:
+ - key: account
+ foreign-key: account_id
+ - table-name: contacts
+ keys:
+ - key: contact
+ foreign-key: id
+ - table-name: bounce_logs
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_data
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_lists
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_tags
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_conversions
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_automations
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_custom_field_values
+ keys:
+ - key: contact
+ foreign-key: contact
+- table-name: contact_deals
+ join:
+ - table-name: deals
+ keys:
+ - key: deal
+ foreign-key: id
+ - key: contact
+ foreign-key: contact
+ - table-name: deal_custom_field_values
+ keys:
+ - key: deal
+ foreign-key: deal_id
+ - table-name: forms
+ keys:
+ - key: deal
+ foreign-key: deals
+ - key: contact
+ foreign-key: contacts
+ - table-name: deal_activities
+ keys:
+ - key: deal
+ foreign-key: deal
+ - table-name: email_activities
+ keys:
+ - key: deal
+ foreign-key: deal
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_emails
+ keys:
+ - key: deal
+ foreign-key: deal
+ - key: contact
+ foreign-key: contact
+ - table-name: contacts
+ keys:
+ - key: contact
+ foreign-key: id
+ - table-name: bounce_logs
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_data
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_lists
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_tags
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_conversions
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: account_contacts
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_automations
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_custom_field_values
+ keys:
+ - key: contact
+ foreign-key: contact
+- table-name: deal_activities
+ join:
+ - table-name: deals
+ keys:
+ - key: deal
+ foreign-key: id
+ - key: stage
+ foreign-key: stage
+ - table-name: deal_custom_field_values
+ keys:
+ - key: deal
+ foreign-key: deal_id
+ - table-name: contact_deals
+ keys:
+ - key: deal
+ foreign-key: deal
+ - table-name: forms
+ keys:
+ - key: deal
+ foreign-key: deals
+ - key: userid
+ foreign-key: userid
+ - table-name: email_activities
+ keys:
+ - key: deal
+ foreign-key: deal
+ - key: userid
+ foreign-key: userid
+ - table-name: contact_emails
+ keys:
+ - key: deal
+ foreign-key: deal
+ - key: userid
+ foreign-key: userid
+ - table-name: deal_stages
+ keys:
+ - key: stage
+ foreign-key: id
+ - table-name: deal_groups
+ keys:
+ - key: stage
+ foreign-key: stages
+ - table-name: users
+ keys:
+ - key: userid
+ foreign-key: id
+ - table-name: lists
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: messages
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: saved_responses
+ keys:
+ - key: userid
+ foreign-key: last_sent_user_id
+ - table-name: tasks
+ keys:
+ - key: userid
+ foreign-key: user
+ - table-name: templates
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: campaign_lists
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: configs
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: deal_group_users
+ keys:
+ - key: userid
+ foreign-key: user
+ - table-name: sms
+ keys:
+ - key: userid
+ foreign-key: userid
+ - key: automation
+ foreign-key: automation
+ - table-name: automations
+ keys:
+ - key: userid
+ foreign-key: userid
+ - key: automation
+ foreign-key: id
+ - table-name: calendars
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: campaigns
+ keys:
+ - key: userid
+ foreign-key: userid
+ - key: automation
+ foreign-key: automation
+ - table-name: goals
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: site_messages
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: automation_blocks
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: contact_automations
+ keys:
+ - key: automation
+ foreign-key: automation
+- table-name: email_activities
+ join:
+ - table-name: deals
+ keys:
+ - key: deal
+ foreign-key: id
+ - key: account
+ foreign-key: account
+ - key: contact
+ foreign-key: contact
+ - table-name: deal_custom_field_values
+ keys:
+ - key: deal
+ foreign-key: deal_id
+ - table-name: contact_deals
+ keys:
+ - key: deal
+ foreign-key: deal
+ - key: contact
+ foreign-key: contact
+ - table-name: forms
+ keys:
+ - key: deal
+ foreign-key: deals
+ - key: contact
+ foreign-key: contacts
+ - key: userid
+ foreign-key: userid
+ - table-name: deal_activities
+ keys:
+ - key: deal
+ foreign-key: deal
+ - key: userid
+ foreign-key: userid
+ - table-name: contact_emails
+ keys:
+ - key: deal
+ foreign-key: deal
+ - key: account
+ foreign-key: account
+ - key: contact
+ foreign-key: contact
+ - key: userid
+ foreign-key: userid
+ - table-name: accounts
+ keys:
+ - key: account
+ foreign-key: id
+ - table-name: account_contacts
+ keys:
+ - key: account
+ foreign-key: account
+ - key: contact
+ foreign-key: contact
+ - table-name: account_custom_field_values
+ keys:
+ - key: account
+ foreign-key: account_id
+ - table-name: contacts
+ keys:
+ - key: contact
+ foreign-key: id
+ - table-name: bounce_logs
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_data
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_lists
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_tags
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_conversions
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_automations
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_custom_field_values
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: users
+ keys:
+ - key: userid
+ foreign-key: id
+ - table-name: lists
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: messages
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: saved_responses
+ keys:
+ - key: userid
+ foreign-key: last_sent_user_id
+ - table-name: tasks
+ keys:
+ - key: userid
+ foreign-key: user
+ - table-name: templates
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: campaign_lists
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: configs
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: deal_group_users
+ keys:
+ - key: userid
+ foreign-key: user
+ - table-name: sms
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: automations
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: calendars
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: campaigns
+ keys:
+ - key: userid
+ foreign-key: userid
+- table-name: contact_emails
+ join:
+ - table-name: deals
+ keys:
+ - key: deal
+ foreign-key: id
+ - key: account
+ foreign-key: account
+ - key: contact
+ foreign-key: contact
+ - table-name: deal_custom_field_values
+ keys:
+ - key: deal
+ foreign-key: deal_id
+ - table-name: contact_deals
+ keys:
+ - key: deal
+ foreign-key: deal
+ - key: contact
+ foreign-key: contact
+ - table-name: forms
+ keys:
+ - key: deal
+ foreign-key: deals
+ - key: contact
+ foreign-key: contacts
+ - key: userid
+ foreign-key: userid
+ - table-name: deal_activities
+ keys:
+ - key: deal
+ foreign-key: deal
+ - key: userid
+ foreign-key: userid
+ - table-name: email_activities
+ keys:
+ - key: deal
+ foreign-key: deal
+ - key: account
+ foreign-key: account
+ - key: contact
+ foreign-key: contact
+ - key: userid
+ foreign-key: userid
+ - table-name: accounts
+ keys:
+ - key: account
+ foreign-key: id
+ - table-name: account_contacts
+ keys:
+ - key: account
+ foreign-key: account
+ - key: contact
+ foreign-key: contact
+ - table-name: account_custom_field_values
+ keys:
+ - key: account
+ foreign-key: account_id
+ - table-name: contacts
+ keys:
+ - key: contact
+ foreign-key: id
+ - table-name: bounce_logs
+ keys:
+ - key: contact
+ foreign-key: contact
+ - key: messageid
+ foreign-key: messageid
+ - table-name: contact_data
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_lists
+ keys:
+ - key: contact
+ foreign-key: contact
+ - key: messageid
+ foreign-key: message
+ - table-name: contact_tags
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_conversions
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_automations
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_custom_field_values
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: users
+ keys:
+ - key: userid
+ foreign-key: id
+ - table-name: lists
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: messages
+ keys:
+ - key: userid
+ foreign-key: userid
+ - key: messageid
+ foreign-key: id
+ - table-name: saved_responses
+ keys:
+ - key: userid
+ foreign-key: last_sent_user_id
+ - table-name: tasks
+ keys:
+ - key: userid
+ foreign-key: user
+ - table-name: templates
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: campaign_lists
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: configs
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: deal_group_users
+ keys:
+ - key: userid
+ foreign-key: user
+ - table-name: sms
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: automations
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: calendars
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: campaigns
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: campaign_messages
+ keys:
+ - key: messageid
+ foreign-key: messageid
+ - table-name: campaign_links
+ keys:
+ - key: messageid
+ foreign-key: messageid
+- table-name: deal_stages
+ join:
+ - table-name: deals
+ keys:
+ - key: id
+ foreign-key: stage
+ - key: group
+ foreign-key: group
+ - table-name: deal_groups
+ keys:
+ - key: id
+ foreign-key: stages
+ - key: group
+ foreign-key: id
+ - table-name: deal_activities
+ keys:
+ - key: id
+ foreign-key: stage
+ - table-name: deal_group_users
+ keys:
+ - key: group
+ foreign-key: deal_group
+ - table-name: ecommerce_orders
+ keys:
+ - key: order
+ foreign-key: id
+ - table-name: ecommerce_order_products
+ keys:
+ - key: order
+ foreign-key: orderid
+ - table-name: ecommerce_order_activities
+ keys:
+ - key: order
+ foreign-key: orderid
+ - table-name: contact_custom_field_options
+ keys:
+ - key: order
+ foreign-key: orderid
+- table-name: deal_groups
+ join:
+ - table-name: deal_stages
+ keys:
+ - key: stages
+ foreign-key: id
+ - key: id
+ foreign-key: group
+ - table-name: deals
+ keys:
+ - key: stages
+ foreign-key: stage
+ - key: id
+ foreign-key: group
+ - table-name: deal_activities
+ keys:
+ - key: stages
+ foreign-key: stage
+ - table-name: deal_group_users
+ keys:
+ - key: id
+ foreign-key: deal_group
+- table-name: deal_group_users
+ join:
+ - table-name: deal_groups
+ keys:
+ - key: deal_group
+ foreign-key: id
+ - table-name: deals
+ keys:
+ - key: deal_group
+ foreign-key: group
+ - table-name: deal_stages
+ keys:
+ - key: deal_group
+ foreign-key: group
+ - table-name: users
+ keys:
+ - key: user
+ foreign-key: id
+ - table-name: forms
+ keys:
+ - key: user
+ foreign-key: userid
+ - table-name: lists
+ keys:
+ - key: user
+ foreign-key: userid
+ - table-name: messages
+ keys:
+ - key: user
+ foreign-key: userid
+ - table-name: saved_responses
+ keys:
+ - key: user
+ foreign-key: last_sent_user_id
+ - table-name: tasks
+ keys:
+ - key: user
+ foreign-key: user
+ - table-name: templates
+ keys:
+ - key: user
+ foreign-key: userid
+ - table-name: activities
+ keys:
+ - key: user
+ foreign-key: userid
+ - table-name: campaign_lists
+ keys:
+ - key: user
+ foreign-key: userid
+ - table-name: configs
+ keys:
+ - key: user
+ foreign-key: userid
+ - table-name: contact_emails
+ keys:
+ - key: user
+ foreign-key: userid
+ - table-name: deal_activities
+ keys:
+ - key: user
+ foreign-key: userid
+ - table-name: email_activities
+ keys:
+ - key: user
+ foreign-key: userid
+ - table-name: sms
+ keys:
+ - key: user
+ foreign-key: userid
+ - table-name: automations
+ keys:
+ - key: user
+ foreign-key: userid
+ - table-name: calendars
+ keys:
+ - key: user
+ foreign-key: userid
+ - table-name: campaigns
+ keys:
+ - key: user
+ foreign-key: userid
+- table-name: accounts
+ join:
+ - table-name: deals
+ keys:
+ - key: id
+ foreign-key: account
+ - table-name: contact_emails
+ keys:
+ - key: id
+ foreign-key: account
+ - table-name: email_activities
+ keys:
+ - key: id
+ foreign-key: account
+ - table-name: account_contacts
+ keys:
+ - key: id
+ foreign-key: account
+ - table-name: account_custom_field_values
+ keys:
+ - key: id
+ foreign-key: account_id
+- table-name: account_contacts
+ join:
+ - table-name: accounts
+ keys:
+ - key: account
+ foreign-key: id
+ - table-name: deals
+ keys:
+ - key: account
+ foreign-key: account
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_emails
+ keys:
+ - key: account
+ foreign-key: account
+ - key: contact
+ foreign-key: contact
+ - table-name: email_activities
+ keys:
+ - key: account
+ foreign-key: account
+ - key: contact
+ foreign-key: contact
+ - table-name: account_custom_field_values
+ keys:
+ - key: account
+ foreign-key: account_id
+ - table-name: contacts
+ keys:
+ - key: contact
+ foreign-key: id
+ - table-name: forms
+ keys:
+ - key: contact
+ foreign-key: contacts
+ - table-name: bounce_logs
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_data
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_lists
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_tags
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_conversions
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_automations
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_custom_field_values
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_deals
+ keys:
+ - key: contact
+ foreign-key: contact
+- table-name: contacts
+ join:
+ - table-name: deals
+ keys:
+ - key: id
+ foreign-key: contact
+ - table-name: forms
+ keys:
+ - key: id
+ foreign-key: contacts
+ - table-name: bounce_logs
+ keys:
+ - key: id
+ foreign-key: contact
+ - table-name: contact_data
+ keys:
+ - key: id
+ foreign-key: contact
+ - table-name: contact_emails
+ keys:
+ - key: id
+ foreign-key: contact
+ - table-name: contact_lists
+ keys:
+ - key: id
+ foreign-key: contact
+ - table-name: contact_tags
+ keys:
+ - key: id
+ foreign-key: contact
+ - table-name: contact_conversions
+ keys:
+ - key: id
+ foreign-key: contact
+ - table-name: email_activities
+ keys:
+ - key: id
+ foreign-key: contact
+ - table-name: account_contacts
+ keys:
+ - key: id
+ foreign-key: contact
+ - table-name: contact_automations
+ keys:
+ - key: id
+ foreign-key: contact
+ - table-name: contact_custom_field_values
+ keys:
+ - key: id
+ foreign-key: contact
+ - table-name: contact_deals
+ keys:
+ - key: id
+ foreign-key: contact
+- table-name: contact_data
+ join:
+ - table-name: contacts
+ keys:
+ - key: contact
+ foreign-key: id
+ - table-name: deals
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: forms
+ keys:
+ - key: contact
+ foreign-key: contacts
+ - table-name: bounce_logs
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_emails
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_lists
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_tags
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_conversions
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: email_activities
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: account_contacts
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_automations
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_custom_field_values
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_deals
+ keys:
+ - key: contact
+ foreign-key: contact
+- table-name: contact_tags
+ join:
+ - table-name: contacts
+ keys:
+ - key: contact
+ foreign-key: id
+ - table-name: deals
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: forms
+ keys:
+ - key: contact
+ foreign-key: contacts
+ - table-name: bounce_logs
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_data
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_emails
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_lists
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_conversions
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: email_activities
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: account_contacts
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_automations
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_custom_field_values
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_deals
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: tags
+ keys:
+ - key: tag
+ foreign-key: id
+- table-name: contact_conversions
+ join:
+ - table-name: contacts
+ keys:
+ - key: contact
+ foreign-key: id
+ - table-name: deals
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: forms
+ keys:
+ - key: contact
+ foreign-key: contacts
+ - table-name: bounce_logs
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_data
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_emails
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_lists
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_tags
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: email_activities
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: account_contacts
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_automations
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_custom_field_values
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_deals
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: conversions
+ keys:
+ - key: conversion
+ foreign-key: id
+ - table-name: conversion_triggers
+ keys:
+ - key: conversion
+ foreign-key: conversion
+ - key: conversiontrigger
+ foreign-key: id
+- table-name: contact_automations
+ join:
+ - table-name: contacts
+ keys:
+ - key: contact
+ foreign-key: id
+ - table-name: deals
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: forms
+ keys:
+ - key: contact
+ foreign-key: contacts
+ - table-name: bounce_logs
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_data
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_emails
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_lists
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_tags
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_conversions
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: email_activities
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: account_contacts
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_custom_field_values
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_deals
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: automations
+ keys:
+ - key: automation
+ foreign-key: id
+ - table-name: deal_activities
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: goals
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: site_messages
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: sms
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: automation_blocks
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: campaigns
+ keys:
+ - key: automation
+ foreign-key: automation
+- table-name: contact_custom_field_values
+ join:
+ - table-name: contacts
+ keys:
+ - key: contact
+ foreign-key: id
+ - table-name: deals
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: forms
+ keys:
+ - key: contact
+ foreign-key: contacts
+ - table-name: bounce_logs
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_data
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_emails
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_lists
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_tags
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_conversions
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: email_activities
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: account_contacts
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_automations
+ keys:
+ - key: contact
+ foreign-key: contact
+ - table-name: contact_deals
+ keys:
+ - key: contact
+ foreign-key: contact
+- table-name: ecommerce_connections
+ join:
+ - table-name: ecommerce_customers
+ keys:
+ - key: id
+ foreign-key: connectionid
+ - table-name: ecommerce_orders
+ keys:
+ - key: id
+ foreign-key: connectionid
+ - table-name: ecommerce_order_products
+ keys:
+ - key: id
+ foreign-key: connectionid
+ - table-name: ecommerce_order_activities
+ keys:
+ - key: id
+ foreign-key: connectionid
+- table-name: ecommerce_customers
+ join:
+ - table-name: ecommerce_connections
+ keys:
+ - key: connectionid
+ foreign-key: id
+ - table-name: ecommerce_orders
+ keys:
+ - key: connectionid
+ foreign-key: connectionid
+ - key: id
+ foreign-key: customer
+ - table-name: ecommerce_order_products
+ keys:
+ - key: connectionid
+ foreign-key: connectionid
+ - table-name: ecommerce_order_activities
+ keys:
+ - key: connectionid
+ foreign-key: connectionid
+ - key: id
+ foreign-key: customerid
+- table-name: ecommerce_orders
+ join:
+ - table-name: ecommerce_connections
+ keys:
+ - key: connectionid
+ foreign-key: id
+ - table-name: ecommerce_customers
+ keys:
+ - key: connectionid
+ foreign-key: connectionid
+ - key: customer
+ foreign-key: id
+ - table-name: ecommerce_order_products
+ keys:
+ - key: connectionid
+ foreign-key: connectionid
+ - key: id
+ foreign-key: orderid
+ - table-name: ecommerce_order_activities
+ keys:
+ - key: connectionid
+ foreign-key: connectionid
+ - key: customer
+ foreign-key: customerid
+ - key: id
+ foreign-key: orderid
+ - table-name: contact_custom_field_options
+ keys:
+ - key: id
+ foreign-key: orderid
+ - table-name: deal_stages
+ keys:
+ - key: id
+ foreign-key: order
+- table-name: ecommerce_order_products
+ join:
+ - table-name: ecommerce_connections
+ keys:
+ - key: connectionid
+ foreign-key: id
+ - table-name: ecommerce_customers
+ keys:
+ - key: connectionid
+ foreign-key: connectionid
+ - table-name: ecommerce_orders
+ keys:
+ - key: connectionid
+ foreign-key: connectionid
+ - key: orderid
+ foreign-key: id
+ - table-name: ecommerce_order_activities
+ keys:
+ - key: connectionid
+ foreign-key: connectionid
+ - key: orderid
+ foreign-key: orderid
+ - table-name: contact_custom_field_options
+ keys:
+ - key: orderid
+ foreign-key: orderid
+ - table-name: deal_stages
+ keys:
+ - key: orderid
+ foreign-key: order
+- table-name: ecommerce_order_activities
+ join:
+ - table-name: ecommerce_connections
+ keys:
+ - key: connectionid
+ foreign-key: id
+ - table-name: ecommerce_customers
+ keys:
+ - key: connectionid
+ foreign-key: connectionid
+ - key: customerid
+ foreign-key: id
+ - table-name: ecommerce_orders
+ keys:
+ - key: connectionid
+ foreign-key: connectionid
+ - key: customerid
+ foreign-key: customer
+ - key: orderid
+ foreign-key: id
+ - table-name: ecommerce_order_products
+ keys:
+ - key: connectionid
+ foreign-key: connectionid
+ - key: orderid
+ foreign-key: orderid
+ - table-name: contact_custom_field_options
+ keys:
+ - key: orderid
+ foreign-key: orderid
+ - table-name: deal_stages
+ keys:
+ - key: orderid
+ foreign-key: order
+- table-name: contact_custom_field_options
+ join:
+ - table-name: ecommerce_orders
+ keys:
+ - key: orderid
+ foreign-key: id
+ - table-name: ecommerce_order_products
+ keys:
+ - key: orderid
+ foreign-key: orderid
+ - table-name: ecommerce_order_activities
+ keys:
+ - key: orderid
+ foreign-key: orderid
+ - table-name: deal_stages
+ keys:
+ - key: orderid
+ foreign-key: order
+- table-name: users
+ join:
+ - table-name: forms
+ keys:
+ - key: id
+ foreign-key: userid
+ - table-name: lists
+ keys:
+ - key: id
+ foreign-key: userid
+ - table-name: messages
+ keys:
+ - key: id
+ foreign-key: userid
+ - table-name: saved_responses
+ keys:
+ - key: id
+ foreign-key: last_sent_user_id
+ - table-name: tasks
+ keys:
+ - key: id
+ foreign-key: user
+ - table-name: templates
+ keys:
+ - key: id
+ foreign-key: userid
+ - table-name: activities
+ keys:
+ - key: id
+ foreign-key: userid
+ - table-name: campaign_lists
+ keys:
+ - key: id
+ foreign-key: userid
+ - table-name: configs
+ keys:
+ - key: id
+ foreign-key: userid
+ - table-name: contact_emails
+ keys:
+ - key: id
+ foreign-key: userid
+ - table-name: deal_activities
+ keys:
+ - key: id
+ foreign-key: userid
+ - table-name: deal_group_users
+ keys:
+ - key: id
+ foreign-key: user
+ - table-name: email_activities
+ keys:
+ - key: id
+ foreign-key: userid
+ - table-name: sms
+ keys:
+ - key: id
+ foreign-key: userid
+ - table-name: automations
+ keys:
+ - key: id
+ foreign-key: userid
+ - table-name: calendars
+ keys:
+ - key: id
+ foreign-key: userid
+ - table-name: campaigns
+ keys:
+ - key: id
+ foreign-key: userid
+- table-name: lists
+ join:
+ - table-name: users
+ keys:
+ - key: userid
+ foreign-key: id
+ - table-name: forms
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: messages
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: saved_responses
+ keys:
+ - key: userid
+ foreign-key: last_sent_user_id
+ - table-name: tasks
+ keys:
+ - key: userid
+ foreign-key: user
+ - table-name: templates
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: campaign_lists
+ keys:
+ - key: userid
+ foreign-key: userid
+ - key: id
+ foreign-key: listid
+ - table-name: configs
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: contact_emails
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: deal_activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: deal_group_users
+ keys:
+ - key: userid
+ foreign-key: user
+ - table-name: email_activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: sms
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: automations
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: calendars
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: campaigns
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: webhooks
+ keys:
+ - key: id
+ foreign-key: listid
+ - table-name: contact_lists
+ keys:
+ - key: id
+ foreign-key: list
+- table-name: messages
+ join:
+ - table-name: users
+ keys:
+ - key: userid
+ foreign-key: id
+ - table-name: forms
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: lists
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: saved_responses
+ keys:
+ - key: userid
+ foreign-key: last_sent_user_id
+ - table-name: tasks
+ keys:
+ - key: userid
+ foreign-key: user
+ - table-name: templates
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: campaign_lists
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: configs
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: contact_emails
+ keys:
+ - key: userid
+ foreign-key: userid
+ - key: id
+ foreign-key: messageid
+ - table-name: deal_activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: deal_group_users
+ keys:
+ - key: userid
+ foreign-key: user
+ - table-name: email_activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: sms
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: automations
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: calendars
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: campaigns
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: bounce_logs
+ keys:
+ - key: id
+ foreign-key: messageid
+ - table-name: campaign_messages
+ keys:
+ - key: id
+ foreign-key: messageid
+ - table-name: contact_lists
+ keys:
+ - key: id
+ foreign-key: message
+ - table-name: campaign_links
+ keys:
+ - key: id
+ foreign-key: messageid
+- table-name: saved_responses
+ join:
+ - table-name: users
+ keys:
+ - key: last_sent_user_id
+ foreign-key: id
+ - table-name: forms
+ keys:
+ - key: last_sent_user_id
+ foreign-key: userid
+ - table-name: lists
+ keys:
+ - key: last_sent_user_id
+ foreign-key: userid
+ - table-name: messages
+ keys:
+ - key: last_sent_user_id
+ foreign-key: userid
+ - table-name: tasks
+ keys:
+ - key: last_sent_user_id
+ foreign-key: user
+ - table-name: templates
+ keys:
+ - key: last_sent_user_id
+ foreign-key: userid
+ - table-name: activities
+ keys:
+ - key: last_sent_user_id
+ foreign-key: userid
+ - table-name: campaign_lists
+ keys:
+ - key: last_sent_user_id
+ foreign-key: userid
+ - table-name: configs
+ keys:
+ - key: last_sent_user_id
+ foreign-key: userid
+ - table-name: contact_emails
+ keys:
+ - key: last_sent_user_id
+ foreign-key: userid
+ - table-name: deal_activities
+ keys:
+ - key: last_sent_user_id
+ foreign-key: userid
+ - table-name: deal_group_users
+ keys:
+ - key: last_sent_user_id
+ foreign-key: user
+ - table-name: email_activities
+ keys:
+ - key: last_sent_user_id
+ foreign-key: userid
+ - table-name: sms
+ keys:
+ - key: last_sent_user_id
+ foreign-key: userid
+ - table-name: automations
+ keys:
+ - key: last_sent_user_id
+ foreign-key: userid
+ - table-name: calendars
+ keys:
+ - key: last_sent_user_id
+ foreign-key: userid
+ - table-name: campaigns
+ keys:
+ - key: last_sent_user_id
+ foreign-key: userid
+- table-name: tasks
+ join:
+ - table-name: users
+ keys:
+ - key: user
+ foreign-key: id
+ - table-name: forms
+ keys:
+ - key: user
+ foreign-key: userid
+ - table-name: lists
+ keys:
+ - key: user
+ foreign-key: userid
+ - table-name: messages
+ keys:
+ - key: user
+ foreign-key: userid
+ - table-name: saved_responses
+ keys:
+ - key: user
+ foreign-key: last_sent_user_id
+ - table-name: templates
+ keys:
+ - key: user
+ foreign-key: userid
+ - table-name: activities
+ keys:
+ - key: user
+ foreign-key: userid
+ - table-name: campaign_lists
+ keys:
+ - key: user
+ foreign-key: userid
+ - table-name: configs
+ keys:
+ - key: user
+ foreign-key: userid
+ - table-name: contact_emails
+ keys:
+ - key: user
+ foreign-key: userid
+ - table-name: deal_activities
+ keys:
+ - key: user
+ foreign-key: userid
+ - table-name: deal_group_users
+ keys:
+ - key: user
+ foreign-key: user
+ - table-name: email_activities
+ keys:
+ - key: user
+ foreign-key: userid
+ - table-name: sms
+ keys:
+ - key: user
+ foreign-key: userid
+ - table-name: automations
+ keys:
+ - key: user
+ foreign-key: userid
+ - table-name: calendars
+ keys:
+ - key: user
+ foreign-key: userid
+ - table-name: campaigns
+ keys:
+ - key: user
+ foreign-key: userid
+ - table-name: task_types
+ keys:
+ - key: deal_tasktype
+ foreign-key: id
+- table-name: templates
+ join:
+ - table-name: users
+ keys:
+ - key: userid
+ foreign-key: id
+ - table-name: forms
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: lists
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: messages
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: saved_responses
+ keys:
+ - key: userid
+ foreign-key: last_sent_user_id
+ - table-name: tasks
+ keys:
+ - key: userid
+ foreign-key: user
+ - table-name: activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: campaign_lists
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: configs
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: contact_emails
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: deal_activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: deal_group_users
+ keys:
+ - key: userid
+ foreign-key: user
+ - table-name: email_activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: sms
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: automations
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: calendars
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: campaigns
+ keys:
+ - key: userid
+ foreign-key: userid
+- table-name: activities
+ join:
+ - table-name: users
+ keys:
+ - key: userid
+ foreign-key: id
+ - table-name: forms
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: lists
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: messages
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: saved_responses
+ keys:
+ - key: userid
+ foreign-key: last_sent_user_id
+ - table-name: tasks
+ keys:
+ - key: userid
+ foreign-key: user
+ - table-name: templates
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: campaign_lists
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: configs
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: contact_emails
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: deal_activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: deal_group_users
+ keys:
+ - key: userid
+ foreign-key: user
+ - table-name: email_activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: sms
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: automations
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: calendars
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: campaigns
+ keys:
+ - key: userid
+ foreign-key: userid
+- table-name: configs
+ join:
+ - table-name: users
+ keys:
+ - key: userid
+ foreign-key: id
+ - table-name: forms
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: lists
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: messages
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: saved_responses
+ keys:
+ - key: userid
+ foreign-key: last_sent_user_id
+ - table-name: tasks
+ keys:
+ - key: userid
+ foreign-key: user
+ - table-name: templates
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: campaign_lists
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: contact_emails
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: deal_activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: deal_group_users
+ keys:
+ - key: userid
+ foreign-key: user
+ - table-name: email_activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: sms
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: automations
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: calendars
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: campaigns
+ keys:
+ - key: userid
+ foreign-key: userid
+- table-name: sms
+ join:
+ - table-name: users
+ keys:
+ - key: userid
+ foreign-key: id
+ - table-name: forms
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: lists
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: messages
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: saved_responses
+ keys:
+ - key: userid
+ foreign-key: last_sent_user_id
+ - table-name: tasks
+ keys:
+ - key: userid
+ foreign-key: user
+ - table-name: templates
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: campaign_lists
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: configs
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: contact_emails
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: deal_activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - key: automation
+ foreign-key: automation
+ - table-name: deal_group_users
+ keys:
+ - key: userid
+ foreign-key: user
+ - table-name: email_activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: automations
+ keys:
+ - key: userid
+ foreign-key: userid
+ - key: automation
+ foreign-key: id
+ - table-name: calendars
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: campaigns
+ keys:
+ - key: userid
+ foreign-key: userid
+ - key: automation
+ foreign-key: automation
+ - table-name: goals
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: site_messages
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: automation_blocks
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: contact_automations
+ keys:
+ - key: automation
+ foreign-key: automation
+- table-name: automations
+ join:
+ - table-name: users
+ keys:
+ - key: userid
+ foreign-key: id
+ - table-name: forms
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: lists
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: messages
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: saved_responses
+ keys:
+ - key: userid
+ foreign-key: last_sent_user_id
+ - table-name: tasks
+ keys:
+ - key: userid
+ foreign-key: user
+ - table-name: templates
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: campaign_lists
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: configs
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: contact_emails
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: deal_activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - key: id
+ foreign-key: automation
+ - table-name: deal_group_users
+ keys:
+ - key: userid
+ foreign-key: user
+ - table-name: email_activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: sms
+ keys:
+ - key: userid
+ foreign-key: userid
+ - key: id
+ foreign-key: automation
+ - table-name: calendars
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: campaigns
+ keys:
+ - key: userid
+ foreign-key: userid
+ - key: id
+ foreign-key: automation
+ - table-name: goals
+ keys:
+ - key: id
+ foreign-key: automation
+ - table-name: site_messages
+ keys:
+ - key: id
+ foreign-key: automation
+ - table-name: automation_blocks
+ keys:
+ - key: id
+ foreign-key: automation
+ - table-name: contact_automations
+ keys:
+ - key: id
+ foreign-key: automation
+- table-name: calendars
+ join:
+ - table-name: users
+ keys:
+ - key: userid
+ foreign-key: id
+ - table-name: forms
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: lists
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: messages
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: saved_responses
+ keys:
+ - key: userid
+ foreign-key: last_sent_user_id
+ - table-name: tasks
+ keys:
+ - key: userid
+ foreign-key: user
+ - table-name: templates
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: campaign_lists
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: configs
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: contact_emails
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: deal_activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: deal_group_users
+ keys:
+ - key: userid
+ foreign-key: user
+ - table-name: email_activities
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: sms
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: automations
+ keys:
+ - key: userid
+ foreign-key: userid
+ - table-name: campaigns
+ keys:
+ - key: userid
+ foreign-key: userid
+- table-name: task_types
+ join:
+ - table-name: tasks
+ keys:
+ - key: id
+ foreign-key: deal_tasktype
+- table-name: webhooks
+ join:
+ - table-name: lists
+ keys:
+ - key: listid
+ foreign-key: id
+ - table-name: campaign_lists
+ keys:
+ - key: listid
+ foreign-key: listid
+ - table-name: contact_lists
+ keys:
+ - key: listid
+ foreign-key: list
+- table-name: tags
+ join:
+ - table-name: contact_tags
+ keys:
+ - key: id
+ foreign-key: tag
+- table-name: conversions
+ join:
+ - table-name: contact_conversions
+ keys:
+ - key: id
+ foreign-key: conversion
+ - table-name: conversion_triggers
+ keys:
+ - key: id
+ foreign-key: conversion
+- table-name: conversion_triggers
+ join:
+ - table-name: conversions
+ keys:
+ - key: conversion
+ foreign-key: id
+ - table-name: contact_conversions
+ keys:
+ - key: conversion
+ foreign-key: conversion
+ - key: id
+ foreign-key: conversiontrigger
+- table-name: goals
+ join:
+ - table-name: automations
+ keys:
+ - key: automation
+ foreign-key: id
+ - table-name: deal_activities
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: site_messages
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: sms
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: automation_blocks
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: campaigns
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: contact_automations
+ keys:
+ - key: automation
+ foreign-key: automation
+- table-name: site_messages
+ join:
+ - table-name: automations
+ keys:
+ - key: automation
+ foreign-key: id
+ - table-name: deal_activities
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: goals
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: sms
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: automation_blocks
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: campaigns
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: contact_automations
+ keys:
+ - key: automation
+ foreign-key: automation
+- table-name: automation_blocks
+ join:
+ - table-name: automations
+ keys:
+ - key: automation
+ foreign-key: id
+ - table-name: deal_activities
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: goals
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: site_messages
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: sms
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: campaigns
+ keys:
+ - key: automation
+ foreign-key: automation
+ - table-name: contact_automations
+ keys:
+ - key: automation
+ foreign-key: automation
+- table-name: segments
+ join:
+ - table-name: campaigns
+ keys:
+ - key: id
+ foreign-key: segmentid
diff --git a/_data/taps/schemas/activecampaign/v1/activecampaign-v1-tables.yml b/_data/taps/schemas/activecampaign/v1/activecampaign-v1-tables.yml
new file mode 100644
index 000000000..32e54b419
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/activecampaign-v1-tables.yml
@@ -0,0 +1,652 @@
+tap: activecampaign
+version: '1'
+tables:
+- name: accounts
+ description: 'The `{{ table.name }}` table contains information about accounts in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#accounts
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/accounts.json
+ api-method: https://developers.activecampaign.com/reference#list-all-accounts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_timestamp
+- name: account_contacts
+ description: 'The `{{ table.name }}` table contains information about contacts in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#account-contacts
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/account_contacts.json
+ api-method: https://developers.activecampaign.com/reference#list-all-associations-1
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_timestamp
+- name: account_custom_fields
+ description: 'The `{{ table.name }}` table contains information about account custom
+ fields in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#custom-account-fields-1
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/account_custom_fields.json
+ api-method: https://developers.activecampaign.com/reference#list-all-custom-fields
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_timestamp
+- name: account_custom_field_values
+ description: 'The `{{ table.name }}` table contains information about your account
+ custom fields'' values in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#custom-account-field-values
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/account_custom_field_values.json
+ api-method: https://developers.activecampaign.com/reference#list-all-custom-field-values-2
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_timestamp
+- name: activities
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/activities.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: tstamp
+- name: addresses
+ description: 'The `{{ table.name }}` table contains information about addresses
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#address
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/addresses.json
+ api-method: https://developers.activecampaign.com/reference#list-all-addresses
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: automations
+ description: 'The `{{ table.name }}` table contains information about automations
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#automation
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/automations.json
+ api-method: https://developers.activecampaign.com/reference#list-all-automations
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: mdate
+- name: automation_blocks
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/automation_blocks.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: bounce_logs
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/bounce_logs.json
+ table-details:
+ replication-method: Key-based Incremental
+ replication-key: updated_timestamp
+- name: brandings
+ description: 'The `{{ table.name }}` table contains information about existing branding
+ resources in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#branding
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/brandings.json
+ api-method: https://developers.activecampaign.com/reference#brandings
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: calendars
+ description: 'The `{{ table.name }}` table contains information about calendar feeds
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#calendar-feeds
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/calendars.json
+ api-method: https://developers.activecampaign.com/reference#list-all-calendar-feeds
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: mdate
+- name: campaigns
+ description: 'The `{{ table.name }}` table contains information about your campaigns
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#test-1
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/campaigns.json
+ api-method: https://developers.activecampaign.com/reference#list-all-campaigns
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_timestamp
+- name: campaign_links
+ description: 'The `{{ table.name }}` table contains information about the links
+ attached to your campaigns in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#test-1
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/campaign_links.json
+ api-method: https://developers.activecampaign.com/reference#retrieve-links-associated-campaign
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_timestamp
+- name: campaign_lists
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/campaign_lists.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: campaign_messages
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/campaign_messages.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: configs
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/configs.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_timestamp
+- name: contacts
+ description: 'The `{{ table.name }}` table contains information about the people
+ that you market or sell to in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#contact
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/contacts.json
+ api-method: https://developers.activecampaign.com/reference#list-all-contacts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_timestamp
+- name: contact_automations
+ description: 'The `{{ table.name }}` table contains information about automations
+ in your {{ integration.display_name }} account that you can add contacts to.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#automations
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/contact_automations.json
+ api-method: https://developers.activecampaign.com/reference#list-all-contact-automations
+ table-details:
+ replication-method: Key-based Incremental
+- name: contact_conversions
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/contact_conversions.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: cdate
+- name: contact_custom_fields
+ description: 'The `{{ table.name }}` table contains information about custom fields
+ for your contacts in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#fields
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/contact_custom_fields.json
+ api-method: https://developers.activecampaign.com/reference#retrieve-fields-1
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: contact_custom_field_options
+ description: 'The `{{ table.name }}` table contains information about custom field
+ options for your contacts in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#fields
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/contact_custom_fields.json
+ api-method: https://developers.activecampaign.com/reference#retrieve-fields-1
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: contact_custom_field_rels
+ description: 'The `{{ table.name }}` table contains information about custom field
+ relationships for your contacts in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#fields
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/contact_custom_fields.json
+ api-method: https://developers.activecampaign.com/reference#retrieve-fields-1
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: contact_custom_field_values
+ description: 'The `{{ table.name }}` table contains information about custom field
+ values for your contacts in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#fieldvalues
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/contact_custom_field_values.json
+ api-method: https://developers.activecampaign.com/reference#list-all-custom-field-values-1
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: udate
+- name: contact_data
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/contact_data.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: tstamp
+- name: contact_deals
+ description: 'The `{{ table.name }}` contains information about secondary contacts
+ associated with a deal in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#secondary-contacts
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/contact_deals.json
+ api-method: https://developers.activecampaign.com/reference#list-all-secondary-contacts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_timestamp
+- name: contact_emails
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/contact_emails.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: sdate
+- name: contact_lists
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/contact_lists.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_timestamp
+- name: contact_tags
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/contact_tags.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_timestamp
+- name: conversions
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/conversions.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: udate
+- name: conversion_triggers
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/conversion_triggers.json
+ table-details:
+ replication-method: null
+ primary-key: id
+ replication-key: udate
+- name: deals
+ description: 'The `{{ table.name }}` table contains information about deals in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#deal
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/deals.json
+ api-method: https://developers.activecampaign.com/reference#list-all-deals
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: mdate
+- name: deal_activities
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/deal_activities.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: cdate
+- name: deal_custom_fields
+ description: 'The `{{ table.name }}` table contains information about custom fields
+ for deals in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#dealcustomfieldmeta
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/deal_custom_fields.json
+ api-method: https://developers.activecampaign.com/reference#retrieve-all-dealcustomfielddata-resources
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_timestamp
+- name: deal_custom_field_values
+ description: 'The `{{ table.name }}` table contains information about custom field
+ values for deals in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#dealcustomfielddata
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/deal_custom_field_values.json
+ api-method: https://developers.activecampaign.com/reference#list-all-custom-field-values
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_timestamp
+- name: deal_groups
+ description: 'The `{{ table.name }}` table contains information about deal pipelines
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#pipelines
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/deal_groups.json
+ api-method: https://developers.activecampaign.com/reference#list-all-pipelines
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: udate
+- name: deal_group_users
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/deal_group_users.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: deal_stages
+ description: 'The `{{ table.name }}` table contains information about grouped deals
+ within a pipeline in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#deal-stages
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/deal_stages.json
+ api-method: https://developers.activecampaign.com/reference#list-all-deal-stages
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: udate
+- name: ecommerce_connections
+ description: 'The `{{ table.name }}` table contains information about accounts within
+ your {{ integration.display_name }} account that are linked to an external e-commerce
+ service.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#connections
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/ecommerce_connections.json
+ api-method: https://developers.activecampaign.com/reference#list-all-connections
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: udate
+- name: ecommerce_customers
+ description: 'The `{{ table.name }}` table contains the aggregated e-commerce data
+ from customers in your {{ integration.display_name }} account who are using an
+ external e-commerce service.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#customers
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/ecommerce_customers.json
+ api-method: https://developers.activecampaign.com/reference#list-all-customers
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: tstamp
+- name: ecommerce_orders
+ description: 'The `{{ table.name }}` table contains information about your {{ integration.display_name
+ }} account''s customer orders using an external e-commerce service.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#orders
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/ecommerce_orders.json
+ api-method: https://developers.activecampaign.com/reference#list-all-orders
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_date
+- name: ecommerce_order_activities
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/ecommerce_order_activities.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_date
+- name: ecommerce_order_products
+ description: 'The `{{ table.name }}` table contains lists of products for e-commerce
+ orders in your {{ integration.display_name }} account that come from external
+ services. This is a child table of `ecommerce_order_products`.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#e-commerce-order-products
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/ecommerce_order_products.json
+ api-method: https://developers.activecampaign.com/reference#list-products-for-order
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: email_activities
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/email_activities.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: tstamp
+- name: forms
+ description: 'The `{{ table.name }}` table contains information about forms in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#forms
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/forms.json
+ api-method: https://developers.activecampaign.com/reference#forms-1
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: udate
+- name: goals
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/goals.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: groups
+ description: 'The `{{ table.name }}` table contains information about user groups
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#groups
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/groups.json
+ api-method: https://developers.activecampaign.com/reference#list-all-groups
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: lists
+ description: 'The `{{ table.name }}` table contains information about groups of
+ contacts that campaigns can be sent to in your {{ integration.display_name }}
+ account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#lists
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/lists.json
+ api-method: https://developers.activecampaign.com/reference#retrieve-all-lists
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_timestamp
+- name: messages
+ description: 'The `{{ table.name }}` table contains information about messages for
+ campaigns in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#messages
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/messages.json
+ api-method: https://developers.activecampaign.com/reference#list-all-messages
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: mdate
+- name: saved_responses
+ description: 'The `{{ table.name }}` table contains information about email response
+ templates in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#saved-responses-1
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/saved_responses.json
+ api-method: https://developers.activecampaign.com/reference#list-all-saved-responses
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: mdate
+- name: scores
+ description: 'The `{{ table.name }}` table contains information about prioritization
+ scores on leads in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/scores.json
+ api-method: https://developers.activecampaign.com/reference#list-all-scores
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: mdate
+- name: segments
+ description: 'The `{{ table.name }}` table contains information about targeted groups
+ of contacts that meet specified criteria in your {{ integration.display_name }}
+ account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#segments
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/segments.json
+ api-method: https://developers.activecampaign.com/reference#list-all-segments
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: site_messages
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/site_messages.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: ldate
+- name: sms
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/sms.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: ldate
+- name: tags
+ description: 'The `{{ table.name }}` table contains information about labels that
+ you can apply to contacts in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/tags.json
+ api-method: https://developers.activecampaign.com/reference#retrieve-all-tags
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: tasks
+ description: 'The `{{ table.name }}` table contains information about tasks to do
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#tasks
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/tasks.json
+ api-method: https://developers.activecampaign.com/reference#list-all-tasks
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: udate
+- name: task_types
+ description: 'The `{{ table.name }}` table contains information about task types
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#deal-task-types
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/task_types.json
+ api-method: https://developers.activecampaign.com/reference#list-all-deal-task-types
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: templates
+ description: 'The `{{ table.name }}` table contains information about templates
+ used for campaign emails in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/templates.json
+ api-method: https://developers.activecampaign.com/reference#templates
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: mdate
+- name: users
+ description: 'The `{{ table.name }}` table contains information about users who
+ can login to your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.activecampaign.com/reference#users
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/users.json
+ api-method: https://developers.activecampaign.com/reference#list-all-users
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: webhooks
+ description: 'The `{{ table.name }}` table contains information about real-time
+ updates about your contact and campaign activity in your {{ integration.display_name
+ }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-activecampaign/blob/master/tap_activecampaign/schemas/webhooks.json
+ api-method: https://developers.activecampaign.com/reference#get-a-list-of-webhook-events
+ table-details:
+ replication-method: Full Table
+ primary-key: id
diff --git a/_data/taps/schemas/activecampaign/v1/json/account_contacts.json b/_data/taps/schemas/activecampaign/v1/json/account_contacts.json
new file mode 100644
index 000000000..7aacaa7d4
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/account_contacts.json
@@ -0,0 +1,42 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "contact": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "job_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/account_custom_field_values.json b/_data/taps/schemas/activecampaign/v1/json/account_custom_field_values.json
new file mode 100644
index 000000000..dd74403de
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/account_custom_field_values.json
@@ -0,0 +1,48 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_custom_field_metum_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "account_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_field_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "field_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/account_custom_fields.json b/_data/taps/schemas/activecampaign/v1/json/account_custom_fields.json
new file mode 100644
index 000000000..2010d087f
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/account_custom_fields.json
@@ -0,0 +1,100 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "display_order": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "field_default": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field_default_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field_options": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ }
+ ]
+ },
+ "field_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hide_field_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_form_visible": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "known_field_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "personalization": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/accounts.json b/_data/taps/schemas/activecampaign/v1/json/accounts.json
new file mode 100644
index 000000000..7de5ca3b4
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/accounts.json
@@ -0,0 +1,48 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contact_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deal_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/activities.json b/_data/taps/schemas/activecampaign/v1/json/activities.json
new file mode 100644
index 000000000..5e5a67983
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/activities.json
@@ -0,0 +1,93 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "json_data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "permission": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "reference_action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reference_model_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriberid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tstamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "userid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/addresses.json b/_data/taps/schemas/activecampaign/v1/json/addresses.json
new file mode 100644
index 000000000..23816aae1
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/addresses.json
@@ -0,0 +1,72 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "allgroup": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "district": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/automation_blocks.json b/_data/taps/schemas/activecampaign/v1/json/automation_blocks.json
new file mode 100644
index 000000000..f98e7b6b0
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/automation_blocks.json
@@ -0,0 +1,71 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "automation": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "mdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ordernum": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "params": {
+ "anyOf": [
+ {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ }
+ ]
+ },
+ "parent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/automations.json b/_data/taps/schemas/activecampaign/v1/json/automations.json
new file mode 100644
index 000000000..28e2a3fdd
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/automations.json
@@ -0,0 +1,72 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "defaultscreenshot": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entered": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exited": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "mdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "screenshot": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "userid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/bounce_logs.json b/_data/taps/schemas/activecampaign/v1/json/bounce_logs.json
new file mode 100644
index 000000000..365f9ca5d
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/bounce_logs.json
@@ -0,0 +1,120 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "bounce": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "bounceid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaignid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "codeid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "contact": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "error": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "messageid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriberid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tstamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/brandings.json b/_data/taps/schemas/activecampaign/v1/json/brandings.json
new file mode 100644
index 000000000..065bd95ff
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/brandings.json
@@ -0,0 +1,114 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "admin_template_css": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "admin_template_htm": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "copyright": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "favicon": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "footer_html_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "footer_text_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "groupid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "header_html_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "header_text_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "help": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "license": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "public_template_css": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "public_template_htm": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_logo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_logo_small": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/calendars.json b/_data/taps/schemas/activecampaign/v1/json/calendars.json
new file mode 100644
index 000000000..3ffd4ac5b
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/calendars.json
@@ -0,0 +1,54 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "mdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "notification": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "userid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/campaign_links.json b/_data/taps/schemas/activecampaign/v1/json/campaign_links.json
new file mode 100644
index 000000000..508454c91
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/campaign_links.json
@@ -0,0 +1,96 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "campaign": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaignid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "linkclicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "messageid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ref": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracked": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uniquelinkclicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/campaign_lists.json b/_data/taps/schemas/activecampaign/v1/json/campaign_lists.json
new file mode 100644
index 000000000..46826339b
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/campaign_lists.json
@@ -0,0 +1,72 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "campaign": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaignid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "list_amt": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "listid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "udate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "userid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/campaign_messages.json b/_data/taps/schemas/activecampaign/v1/json/campaign_messages.json
new file mode 100644
index 000000000..975f9f202
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/campaign_messages.json
@@ -0,0 +1,190 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "campaign": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaignid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "forwards": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "hardbounces": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "initial_split_percentage": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "linkclicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "messageid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "opens": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "percentage": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "replies": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "screenshot": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "send_amt": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "socialshares": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "softbounces": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sourcesize": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "spamcheck_max": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "spamcheck_score": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriberclicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_amt": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uniqueforwards": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uniquelinkclicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uniqueopens": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uniquereplies": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unsubreasons": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unsubscribes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updates": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/campaigns.json b/_data/taps/schemas/activecampaign/v1/json/campaigns.json
new file mode 100644
index 000000000..bda422605
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/campaigns.json
@@ -0,0 +1,534 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "activerss_interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "activerss_items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "activerss_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "addressid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "analytics_campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "automation": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "basemessageid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "basetemplateid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bounceid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deletestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "embed_images": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "facebook": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "formid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "forwards": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "hardbounces": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "htmlunsub": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "htmlunsubdata": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ip4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "laststep": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ldate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "linkclicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "mail_cleanup": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "mail_send": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "mail_transfer": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "mailer_log_file": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "managetext": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "mdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "opens": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "public": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "realcid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "recurring": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reminder_field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reminder_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reminder_last_cron_run": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reminder_offset": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reminder_offset_sign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reminder_offset_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reminder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "replies": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "replysys": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "responder_existing": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "responder_offset": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "responder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "schedule": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "scheduleddate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "segmentid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "send_amt": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sendid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "seriesid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "socialshares": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "softbounces": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "split_content": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "split_offset": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "split_offset_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "split_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "split_winner_awaiting": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "split_winner_messageid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscriberclicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "survey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textunsub": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "textunsubdata": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "threadid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_amt": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tracklinks": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracklinksanalytics": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "trackreads": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "trackreadsanalytics": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tweet": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uniqueforwards": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uniquelinkclicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uniqueopens": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uniquereplies": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unsubreasons": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unsubscribes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updates": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "user": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "userid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "waitpreview": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "willrecur": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/configs.json b/_data/taps/schemas/activecampaign/v1/json/configs.json
new file mode 100644
index 000000000..b0d286989
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/configs.json
@@ -0,0 +1,84 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "item": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "keyname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "section": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "udate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "userid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "val": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/contact_automations.json b/_data/taps/schemas/activecampaign/v1/json/contact_automations.json
new file mode 100644
index 000000000..f595a0ff9
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/contact_automations.json
@@ -0,0 +1,108 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "adddate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "automation": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "batchid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "complete_value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "completed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "completed_elements": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "contact": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastblock": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "lastlogid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "remdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "seriesid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "startid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "timespan": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_elements": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/contact_conversions.json b/_data/taps/schemas/activecampaign/v1/json/contact_conversions.json
new file mode 100644
index 000000000..da980bc7e
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/contact_conversions.json
@@ -0,0 +1,90 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "contact": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversion": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversion_trigger": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversiontrigger": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "converted_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "converted_by_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "converted_by_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "modifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trigger_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/contact_custom_field_options.json b/_data/taps/schemas/activecampaign/v1/json/contact_custom_field_options.json
new file mode 100644
index 000000000..29d5c1811
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/contact_custom_field_options.json
@@ -0,0 +1,54 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "field": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "isdefault": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "orderid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "udate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/contact_custom_field_rels.json b/_data/taps/schemas/activecampaign/v1/json/contact_custom_field_rels.json
new file mode 100644
index 000000000..3ac9d5e57
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/contact_custom_field_rels.json
@@ -0,0 +1,36 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "dorder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "field": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "relid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/contact_custom_field_values.json b/_data/taps/schemas/activecampaign/v1/json/contact_custom_field_values.json
new file mode 100644
index 000000000..e5962118c
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/contact_custom_field_values.json
@@ -0,0 +1,60 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "contact": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "field": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "owner": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "udate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/contact_custom_fields.json b/_data/taps/schemas/activecampaign/v1/json/contact_custom_fields.json
new file mode 100644
index 000000000..968fe3640
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/contact_custom_fields.json
@@ -0,0 +1,96 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cols": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "defval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "descript": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "isrequired": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ordernum": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "perstag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rows": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "service": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "show_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "udate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "visible": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/contact_data.json b/_data/taps/schemas/activecampaign/v1/json/contact_data.json
new file mode 100644
index 000000000..ba1d8b37a
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/contact_data.json
@@ -0,0 +1,186 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "contact": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "fb_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fb_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ga_campaign_content": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ga_campaign_customsegment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ga_campaign_medium": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ga_campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ga_campaign_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ga_campaign_term": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ga_first_visit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ga_times_visited": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "geo_area": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "geo_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "geo_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "geo_country2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "geo_ip4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "geo_lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "geo_lon": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "geo_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "geo_tstamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "geo_tz": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "geo_tz_offset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "geo_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tstamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "tw_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/contact_deals.json b/_data/taps/schemas/activecampaign/v1/json/contact_deals.json
new file mode 100644
index 000000000..ccbe060f0
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/contact_deals.json
@@ -0,0 +1,60 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "contact": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deal": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "role": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/contact_emails.json b/_data/taps/schemas/activecampaign/v1/json/contact_emails.json
new file mode 100644
index 000000000..fc592ff7a
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/contact_emails.json
@@ -0,0 +1,96 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "contact": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "d_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "deal": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "messageheader": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "messageid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "seriesid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriberid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "user": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "userid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/contact_lists.json b/_data/taps/schemas/activecampaign/v1/json/contact_lists.json
new file mode 100644
index 000000000..e3b55cc4c
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/contact_lists.json
@@ -0,0 +1,162 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "automation": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "autosync_log": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "contact": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "form": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ip4_last": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ip_4sub": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ip_4unsub": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "responder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "seriesid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sourceid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sync": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "udate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "unsubreason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unsubscribe_automation": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/contact_tags.json b/_data/taps/schemas/activecampaign/v1/json/contact_tags.json
new file mode 100644
index 000000000..94cf285e7
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/contact_tags.json
@@ -0,0 +1,54 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "contact": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tag": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/contacts.json b/_data/taps/schemas/activecampaign/v1/json/contacts.json
new file mode 100644
index 000000000..29f072d35
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/contacts.json
@@ -0,0 +1,242 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_contacts": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": "array"
+ }
+ ]
+ },
+ "adate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "anonymized": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "bounced_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bounced_hard": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "bounced_soft": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_utc_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "deleted_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "edate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_empty": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "email_local": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "hash": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organization": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "orgid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rating_tstamp": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "score_values": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": "array"
+ }
+ ]
+ },
+ "segmentio_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sentcnt": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "socialdata_lastcheck": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ua": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "udate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_utc_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/conversion_triggers.json b/_data/taps/schemas/activecampaign/v1/json/conversion_triggers.json
new file mode 100644
index 000000000..cc422442a
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/conversion_triggers.json
@@ -0,0 +1,66 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "automation_block": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "conversion": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "dynamic": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "modifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "retroactive": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "trigger_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "udate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/conversions.json b/_data/taps/schemas/activecampaign/v1/json/conversions.json
new file mode 100644
index 000000000..fcedd1e46
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/conversions.json
@@ -0,0 +1,54 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enforcelimit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "limit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "udate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/deal_activities.json b/_data/taps/schemas/activecampaign/v1/json/deal_activities.json
new file mode 100644
index 000000000..4c213f16b
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/deal_activities.json
@@ -0,0 +1,108 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "automation": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "d_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "d_stageid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "data_action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "data_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "data_oldval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "data_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_addtask": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "seriesid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sortdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "stage": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "user": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "userid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/deal_custom_field_values.json b/_data/taps/schemas/activecampaign/v1/json/deal_custom_field_values.json
new file mode 100644
index 000000000..31d59e332
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/deal_custom_field_values.json
@@ -0,0 +1,48 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_field_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "deal_custom_field_metum_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "deal_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "field_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/deal_custom_fields.json b/_data/taps/schemas/activecampaign/v1/json/deal_custom_fields.json
new file mode 100644
index 000000000..2010d087f
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/deal_custom_fields.json
@@ -0,0 +1,100 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "display_order": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "field_default": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field_default_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field_options": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ }
+ ]
+ },
+ "field_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hide_field_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_form_visible": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "known_field_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "personalization": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/deal_group_users.json b/_data/taps/schemas/activecampaign/v1/json/deal_group_users.json
new file mode 100644
index 000000000..b99ee04fe
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/deal_group_users.json
@@ -0,0 +1,30 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deal_group": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "user": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/deal_groups.json b/_data/taps/schemas/activecampaign/v1/json/deal_groups.json
new file mode 100644
index 000000000..815abed41
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/deal_groups.json
@@ -0,0 +1,70 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "allgroups": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "allusers": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "autoassign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "stages": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": "array"
+ }
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "udate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/deal_stages.json b/_data/taps/schemas/activecampaign/v1/json/deal_stages.json
new file mode 100644
index 000000000..f236fd9d6
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/deal_stages.json
@@ -0,0 +1,90 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "card_region1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_region2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_region3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_region4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_region5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_order": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "order": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "udate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/deals.json b/_data/taps/schemas/activecampaign/v1/json/deals.json
new file mode 100644
index 000000000..b0e50bb1f
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/deals.json
@@ -0,0 +1,177 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "activitycount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "contact": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_account": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "edate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "group": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "hash": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_disabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "next_task": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "nextdate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nextdealid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "nexttaskid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "organization": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "owner": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "percent": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "stage": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "win_probability": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "win_probability_mdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/ecommerce_connections.json b/_data/taps/schemas/activecampaign/v1/json/ecommerce_connections.json
new file mode 100644
index 000000000..f2e40689e
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/ecommerce_connections.json
@@ -0,0 +1,78 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "externalid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_internal": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_sync": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "link_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "logo_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "service": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sync_status": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "udate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/ecommerce_customers.json b/_data/taps/schemas/activecampaign/v1/json/ecommerce_customers.json
new file mode 100644
index 000000000..9274d4520
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/ecommerce_customers.json
@@ -0,0 +1,82 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "avg_product_category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avg_revenue_per_order": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "connection": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "connectionid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "externalid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_orders": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_products": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_revenue": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "tstamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/ecommerce_order_activities.json b/_data/taps/schemas/activecampaign/v1/json/ecommerce_order_activities.json
new file mode 100644
index 000000000..729cc03b3
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/ecommerce_order_activities.json
@@ -0,0 +1,188 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "abandoned_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "connection": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "connectionid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customerid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_amount": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_created_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "external_updated_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "externalcheckoutid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "externalid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "logo_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "order_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "orderid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shipping_amount": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "shipping_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "store_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_amount": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "total_price": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "total_products": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/ecommerce_order_products.json b/_data/taps/schemas/activecampaign/v1/json/ecommerce_order_products.json
new file mode 100644
index 000000000..399f37de3
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/ecommerce_order_products.json
@@ -0,0 +1,107 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "connectionid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ecom_order": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "externalid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "orderid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "product_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tstamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/ecommerce_orders.json b/_data/taps/schemas/activecampaign/v1/json/ecommerce_orders.json
new file mode 100644
index 000000000..46dfd7c96
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/ecommerce_orders.json
@@ -0,0 +1,174 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "connection": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "connectionid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_amount": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_created_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "external_updated_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "externalid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "order_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "order_products": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": "array"
+ }
+ ]
+ },
+ "order_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_amount": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "shipping_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_amount": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "total_price": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "total_products": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tstamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/email_activities.json b/_data/taps/schemas/activecampaign/v1/json/email_activities.json
new file mode 100644
index 000000000..52d72e33d
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/email_activities.json
@@ -0,0 +1,135 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cc_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contact": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "d_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "deal": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "from_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "from_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message_html": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "relid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reltype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriberid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "to_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tstamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "userid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/forms.json b/_data/taps/schemas/activecampaign/v1/json/forms.json
new file mode 100644
index 000000000..c5da7a878
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/forms.json
@@ -0,0 +1,455 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "actiondata": {
+ "additionalProperties": false,
+ "properties": {
+ "actions": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "address": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "addressid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "aid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "button": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cfields": {
+ "anyOf": [
+ {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "class": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "header": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ }
+ ]
+ },
+ "contacts": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "deals": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "defaultscreenshot": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "layout": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "options": {
+ "additionalProperties": false,
+ "properties": {
+ "blank_overwrite": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "confaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "confform": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "optin_created": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "optin_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sendoptin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "parentformid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "recent": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "id": {}
+ },
+ "type": [
+ "null",
+ "object",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "style": {
+ "additionalProperties": false,
+ "properties": {
+ "ac_branding": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "background": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "border": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "radius": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "style": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "button": {
+ "additionalProperties": false,
+ "properties": {
+ "background": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "border": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "radius": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "style": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "fontcolor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "padding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "dark": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "fontcolor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "layout": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "submit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "submitdata": {
+ "additionalProperties": true,
+ "properties": {
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "thanks": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "udate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "userid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/goals.json b/_data/taps/schemas/activecampaign/v1/json/goals.json
new file mode 100644
index 000000000..ec1f7260c
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/goals.json
@@ -0,0 +1,54 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "automation": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "automation_block": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "blockid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "dirty_stats": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "seriesid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/groups.json b/_data/taps/schemas/activecampaign/v1/json/groups.json
new file mode 100644
index 000000000..e0564fcd9
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/groups.json
@@ -0,0 +1,360 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "descript": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "optinconfirm": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "p_admin": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_automation_manage": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_contact_actions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_contact_add": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_contact_approve": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_contact_delete": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_contact_edit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_contact_export": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_contact_fields": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_contact_filters": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_contact_import": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_contact_merge": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_contact_sync": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_deal": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_deal_delete": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_deal_group_add": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_deal_group_delete": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_deal_group_edit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_deal_reassign": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_form_edit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_group_add": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_group_delete": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_group_edit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_list_add": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_list_bounce": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_list_delete": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_list_edit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_list_emailaccount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_list_headers": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_message_add": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_message_delete": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_message_edit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_message_send": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_personalization_add": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_personalization_delete": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_personalization_edit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_reports_campaign": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_reports_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_reports_trend": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_reports_user": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_saved_responses_manage": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_startup_gettingstarted": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_startup_reports": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_template_add": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_template_delete": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_template_edit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_user_add": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_user_delete": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pg_user_edit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "req_approval": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "req_approval1st": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "req_approval_notify": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "socialdata": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unsubscribelink": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/lists.json b/_data/taps/schemas/activecampaign/v1/json/lists.json
new file mode 100644
index 000000000..c7ae1500b
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/lists.json
@@ -0,0 +1,288 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "analytics_domains": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "analytics_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "analytics_ua": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "carboncopy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deletestamp": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "facebook_session": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fulladdress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "get_unsubscribe_reason": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "optinmessageid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "optinoptout": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "optoutconf": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "p_embed_image": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "p_use_analytics_link": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "p_use_analytics_read": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "p_use_captcha": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "p_use_facebook": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "p_use_tracking": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "p_use_twitter": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "private": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "require_name": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "send_last_broadcast": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sender_addr1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sender_addr2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sender_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sender_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sender_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sender_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sender_reminder": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sender_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sender_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sender_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stringid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_notify": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "twitter_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "twitter_token_secret": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "udate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "unsubscription_notify": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "userid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/messages.json b/_data/taps/schemas/activecampaign/v1/json/messages.json
new file mode 100644
index 000000000..cca56879d
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/messages.json
@@ -0,0 +1,150 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "charset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ed_instanceid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ed_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "encoding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fromemail": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fromname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "html": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "htmlfetch": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "mdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preheader_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preview_data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preview_mime": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "priority": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reply2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textfetch": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "userid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/saved_responses.json b/_data/taps/schemas/activecampaign/v1/json/saved_responses.json
new file mode 100644
index 000000000..dc045d830
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/saved_responses.json
@@ -0,0 +1,54 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_sent_user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ldate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "mdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/scores.json b/_data/taps/schemas/activecampaign/v1/json/scores.json
new file mode 100644
index 000000000..de531a8da
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/scores.json
@@ -0,0 +1,48 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "descript": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "mdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reltype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/segments.json b/_data/taps/schemas/activecampaign/v1/json/segments.json
new file mode 100644
index 000000000..c930a7d0f
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/segments.json
@@ -0,0 +1,60 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "logic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "seriesid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/site_messages.json b/_data/taps/schemas/activecampaign/v1/json/site_messages.json
new file mode 100644
index 000000000..808f24123
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/site_messages.json
@@ -0,0 +1,55 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "automation": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ldate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "template": {
+ "additionalProperties": false,
+ "properties": {
+ "detailed": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "initial": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/sms.json b/_data/taps/schemas/activecampaign/v1/json/sms.json
new file mode 100644
index 000000000..3f733dd83
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/sms.json
@@ -0,0 +1,108 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "automation": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "failed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ldate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "msg": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "replies": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "sent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "seriesid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tf_day": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tf_hr_from": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tf_hr_to": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tstamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "uniquereplies": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unsubscribes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "user": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "userid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/tags.json b/_data/taps/schemas/activecampaign/v1/json/tags.json
new file mode 100644
index 000000000..9b8578fd7
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/tags.json
@@ -0,0 +1,60 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tag_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/task_types.json b/_data/taps/schemas/activecampaign/v1/json/task_types.json
new file mode 100644
index 000000000..ad944e1af
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/task_types.json
@@ -0,0 +1,42 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "defduration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "udate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/tasks.json b/_data/taps/schemas/activecampaign/v1/json/tasks.json
new file mode 100644
index 000000000..3cd312be1
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/tasks.json
@@ -0,0 +1,117 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "assignee": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "automation": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deal_tasktype": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "done_automation": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "duedate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "edate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "relid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reltype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "udate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/templates.json b/_data/taps/schemas/activecampaign/v1/json/templates.json
new file mode 100644
index 000000000..34475b06d
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/templates.json
@@ -0,0 +1,102 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "categoryid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "content": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ed_instanceid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ed_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "importnum": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "mdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "modified": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preview_content": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "screenshot": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "used": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "userid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "waitpreview": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/users.json b/_data/taps/schemas/activecampaign/v1/json/users.json
new file mode 100644
index 000000000..6bf42b685
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/users.json
@@ -0,0 +1,78 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "local_zoneid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mfa_enabled": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "password_updated_utc_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "signature": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "udate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/activecampaign/v1/json/webhooks.json b/_data/taps/schemas/activecampaign/v1/json/webhooks.json
new file mode 100644
index 000000000..f8a2907be
--- /dev/null
+++ b/_data/taps/schemas/activecampaign/v1/json/webhooks.json
@@ -0,0 +1,68 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "cdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "events": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ }
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "listid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sources": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ }
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/adroll/v1/adroll-v1-foreign-keys.yml b/_data/taps/schemas/adroll/v1/adroll-v1-foreign-keys.yml
new file mode 100644
index 000000000..cf2296108
--- /dev/null
+++ b/_data/taps/schemas/adroll/v1/adroll-v1-foreign-keys.yml
@@ -0,0 +1,146 @@
+tap: adroll
+version: '1'
+keys:
+ ad_groups_eid:
+ - table: ad_groups
+ keys:
+ - eid
+ - table: ads
+ keys:
+ - adgroups.id
+ - table: campaigns
+ keys:
+ - adgroups.items
+ ad_reports_eid:
+ - table: ad_reports
+ keys:
+ - eid
+ ads_id:
+ - table: ad_groups
+ keys:
+ - ads.id
+ - table: ad_reports
+ keys:
+ - ad
+ - table: ads
+ keys:
+ - eid
+ - original_ad
+ advertisables_eid:
+ - table: advertisables
+ keys:
+ - eid
+ - table: campaigns
+ keys:
+ - advertisable
+ - table: segments
+ keys:
+ - advertisable_eid
+ campaigns_eid:
+ - table: campaigns
+ keys:
+ - eid
+ segments_eid:
+ - table: ad_groups
+ keys:
+ - segments.id
+ - table: segments
+ keys:
+ - eid
+tables:
+- table-name: ad_groups
+ join:
+ - table-name: ads
+ keys:
+ - key: eid
+ foreign-key: adgroups.id
+ - key: ads.id
+ foreign-key: eid
+ - key: ads.id
+ foreign-key: original_ad
+ - table-name: campaigns
+ keys:
+ - key: eid
+ foreign-key: adgroups.items
+ - table-name: ad_reports
+ keys:
+ - key: ads.id
+ foreign-key: ad
+ - table-name: segments
+ keys:
+ - key: segments.id
+ foreign-key: eid
+- table-name: ads
+ join:
+ - table-name: ad_groups
+ keys:
+ - key: adgroups.id
+ foreign-key: eid
+ - key: eid
+ foreign-key: ads.id
+ - key: original_ad
+ foreign-key: ads.id
+ - table-name: campaigns
+ keys:
+ - key: adgroups.id
+ foreign-key: adgroups.items
+ - table-name: ad_reports
+ keys:
+ - key: eid
+ foreign-key: ad
+ - key: original_ad
+ foreign-key: ad
+- table-name: campaigns
+ join:
+ - table-name: ad_groups
+ keys:
+ - key: adgroups.items
+ foreign-key: eid
+ - table-name: ads
+ keys:
+ - key: adgroups.items
+ foreign-key: adgroups.id
+ - table-name: advertisables
+ keys:
+ - key: advertisable
+ foreign-key: eid
+ - table-name: segments
+ keys:
+ - key: advertisable
+ foreign-key: advertisable_eid
+- table-name: ad_reports
+ join:
+ - table-name: ad_groups
+ keys:
+ - key: ad
+ foreign-key: ads.id
+ - table-name: ads
+ keys:
+ - key: ad
+ foreign-key: eid
+ - key: ad
+ foreign-key: original_ad
+- table-name: advertisables
+ join:
+ - table-name: campaigns
+ keys:
+ - key: eid
+ foreign-key: advertisable
+ - table-name: segments
+ keys:
+ - key: eid
+ foreign-key: advertisable_eid
+- table-name: segments
+ join:
+ - table-name: advertisables
+ keys:
+ - key: advertisable_eid
+ foreign-key: eid
+ - table-name: campaigns
+ keys:
+ - key: advertisable_eid
+ foreign-key: advertisable
+ - table-name: ad_groups
+ keys:
+ - key: eid
+ foreign-key: segments.id
diff --git a/_data/taps/schemas/adroll/v1/adroll-v1-tables.yml b/_data/taps/schemas/adroll/v1/adroll-v1-tables.yml
new file mode 100644
index 000000000..8d6462228
--- /dev/null
+++ b/_data/taps/schemas/adroll/v1/adroll-v1-tables.yml
@@ -0,0 +1,78 @@
+tap: adroll
+version: '1'
+tables:
+- name: ads
+ description: 'The `{{ table.name }}` table contains information about the ads and
+ creatives associated with the advertisables in your {{ integration.display_name
+ }} account.
+
+ '
+ links:
+ doc-link: https://developers.nextroll.com/docs/crud-api/reference.html#get--api-v1-ad-get
+ singer-schema: https://github.com/singer-io/tap-adroll/blob/master/tap_adroll/schemas/ads.json
+ api-method: https://developers.nextroll.com/docs/crud-api/reference.html#get--api-v1-advertisable-get_ads
+ table-details:
+ replication-method: Full Table
+ primary-key: eid
+- name: advertisables
+ description: 'The `{{ table.name }}` table contains information about the advertisables
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.nextroll.com/docs/crud-api/reference.html#get--api-v1-advertisable-get
+ singer-schema: https://github.com/singer-io/tap-adroll/blob/master/tap_adroll/schemas/advertisables.json
+ api-method: https://developers.nextroll.com/docs/crud-api/reference.html#get--api-v1-organization-get_advertisables
+ table-details:
+ replication-method: Full Table
+ primary-key: eid
+- name: ad_groups
+ description: 'The `{{ table.name }}` table contains info about the adgroups contained
+ within the campaigns of your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.nextroll.com/docs/crud-api/reference.html#get--api-v1-adgroup-get
+ singer-schema: https://github.com/singer-io/tap-adroll/blob/master/tap_adroll/schemas/ad_groups.json
+ api-method: https://developers.nextroll.com/docs/crud-api/reference.html#get--api-v1-advertisable-get_adgroups
+ table-details:
+ replication-method: Full Table
+ primary-key: eid
+- name: ad_reports
+ description: 'The `{{ table.name }}` table contains ad-level reporting data from
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-adroll/blob/master/tap_adroll/schemas/ad_reports.json
+ api-method: https://developers.nextroll.com/docs/crud-api/reference.html#get--api-v1-report-ad
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - eid
+ - date
+ replication-key: date
+- name: campaigns
+ description: 'The `{{ table.name }}` table contains information about the advertising
+ campaigns in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.nextroll.com/docs/crud-api/reference.html#get--api-v1-campaign-get
+ singer-schema: https://github.com/singer-io/tap-adroll/blob/master/tap_adroll/schemas/campaigns.json
+ api-method: https://developers.nextroll.com/docs/crud-api/reference.html#get--api-v1-advertisable-get_campaigns
+ table-details:
+ replication-method: Full Table
+ primary-key: eid
+- name: segments
+ description: 'The `{{ table.name }}` table contains information about segments,
+ or the lists of users that visit your {{ integration.display_name }} site.
+
+ '
+ links:
+ doc-link: https://developers.nextroll.com/docs/crud-api/reference.html#get--api-v1-segment-get
+ singer-schema: https://github.com/singer-io/tap-adroll/blob/master/tap_adroll/schemas/segments.json
+ api-method: https://developers.nextroll.com/docs/crud-api/reference.html#get--api-v1-advertisable-get_segments
+ table-details:
+ replication-method: Full Table
+ primary-key: eid
diff --git a/_data/taps/schemas/adroll/v1/json/ad_groups.json b/_data/taps/schemas/adroll/v1/json/ad_groups.json
new file mode 100644
index 000000000..c0abb488c
--- /dev/null
+++ b/_data/taps/schemas/adroll/v1/json/ad_groups.json
@@ -0,0 +1,198 @@
+{
+ "properties": {
+ "ad_optimization": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ads": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "campaign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "coops": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "created_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "demographic_targets": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "eid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "flight_timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "geo_targets": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "is_cats4gold": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "placement_targets": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "platform_targets": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "segments": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_negative": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "site_exclusions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "space_optimization": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/adroll/v1/json/ad_reports.json b/_data/taps/schemas/adroll/v1/json/ad_reports.json
new file mode 100644
index 000000000..0c6c31607
--- /dev/null
+++ b/_data/taps/schemas/adroll/v1/json/ad_reports.json
@@ -0,0 +1,236 @@
+{
+ "properties": {
+ "ad": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_size": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adjusted_click_through_ratio": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adjusted_cpa": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adjusted_ctc": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "adjusted_total_conversion_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adjusted_total_conversions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "adjusted_view_through_ratio": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adjusted_vtc": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "advertiser": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "attributed_click_through_rev": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "attributed_rev": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "attributed_view_through_rev": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "billing_cost": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "click_cpa": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "click_through_conversions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "click_through_ratio": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cost": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpa": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpc": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpm": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "created_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "eid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "paid_impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "prospects": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "roi": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_conversion_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_conversions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view_through_conversions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "view_through_ratio": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/adroll/v1/json/ads.json b/_data/taps/schemas/adroll/v1/json/ads.json
new file mode 100644
index 000000000..a27ee2718
--- /dev/null
+++ b/_data/taps/schemas/adroll/v1/json/ads.json
@@ -0,0 +1,280 @@
+{
+ "properties": {
+ "ad_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_format_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ad_format_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_parameters": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "adgroups": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "advertisable": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body_dynamic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "call_to_action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "destination_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_url_override": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_edits": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_future_campaigns": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_pending_edits": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "headline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "headline_dynamic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inventory_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_fb_dynamic": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_liquid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_outlined": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "lead_gen_form_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message_dynamic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "multi_share_optimized": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "multiple_products": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_ad": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "outline_color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "replacement_ad": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "src": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "valid_clicktag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/adroll/v1/json/advertisables.json b/_data/taps/schemas/adroll/v1/json/advertisables.json
new file mode 100644
index 000000000..f615fc9f8
--- /dev/null
+++ b/_data/taps/schemas/adroll/v1/json/advertisables.json
@@ -0,0 +1,608 @@
+{
+ "properties": {
+ "abm_onboarding_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_is_autobilled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "account_is_prepaid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "account_is_suspended": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "account_suspension_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "admin_page_permission": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "am_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "approval_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "attached_users": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "blacklisted_sites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "business_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_monitor_client_api_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_monitor_client_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "click_through_conversion_window": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cm_networks": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "constant_contact_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "constant_contact_oauth_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "csm_admin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_homepage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_utm": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enable_customer_multi_dur_segs": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "fb_offsite_pixels_tos_accepted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "fbx_account_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fbx_page_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fbx_page_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_approved_consent_solution": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_approved_safari_add_on": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_created_campaign": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_offsite_pixels": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_privacy_policy": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_sales_and_leads_automation": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "hide_optins_page": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "homepage_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "iab1_category_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "iab1_category_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iab2_category_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "iab2_category_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iab_content_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "instagram_actor_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ip_address_exclusions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "is_abm_customer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_b2b": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_campaign_monitor_syncing": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_constant_contact_syncing": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_coop_approved": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_kpi_eligible": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_managed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_marketo_syncing": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_salesforce_system_owned": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_suspended": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_trusted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_twitter_syncing": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "liquidads": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "logo_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "magellan_legacy": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "magellan_query": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "marketo_api_endpoint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "marketo_client_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "marketo_secret_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nbam_admin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ops": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "optimizer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "optimizer_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organization": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "page_access_request_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "path_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recent_theme_color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reskin_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "revshare_click_percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "revshare_view_percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "rollcrawl_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "rollworks_self_serve_ads": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "safari_add_on_theme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "saleser": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self_serve_prospecting_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "show_dpa": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "show_web_dynamic_ads": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "twitter_handle": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uhura_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "updated_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "use_universal_campaigns": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "view_through_conversion_window": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "zvelo_category_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "zvelo_category_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/adroll/v1/json/campaigns.json b/_data/taps/schemas/adroll/v1/json/campaigns.json
new file mode 100644
index 000000000..85b6c7c0d
--- /dev/null
+++ b/_data/taps/schemas/adroll/v1/json/campaigns.json
@@ -0,0 +1,242 @@
+{
+ "properties": {
+ "abm_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adgroups": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "advertisable": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bid_strategy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bid_strategy_target": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bid_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "budget": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "campaign_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cpc": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpm": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "created_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "eid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "facebook_campaign_objective": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "frequency_cap": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_apple": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_cats4gold": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_coop": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_facebook": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_fb_lookalike": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_fb_wca": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_fbx_newsfeed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_pubgraph": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_retargeting": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_rtb": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "max_cpm": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pa_sales_stage_eid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pricing_strategies": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "spend_limit_until": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ui_budget_daily": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "updated_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "use_case": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/adroll/v1/json/segments.json b/_data/taps/schemas/adroll/v1/json/segments.json
new file mode 100644
index 000000000..0d23bfee7
--- /dev/null
+++ b/_data/taps/schemas/adroll/v1/json/segments.json
@@ -0,0 +1,134 @@
+{
+ "properties": {
+ "advertisable_eid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversion_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "duration_sec": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "eid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "has_default_rule": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "match_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pattern": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recent_first_match": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "rule": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rule_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "threshold": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/amplitude/v1/amplitude-v1-tables.yml b/_data/taps/schemas/amplitude/v1/amplitude-v1-tables.yml
new file mode 100644
index 000000000..2ffc0f3a2
--- /dev/null
+++ b/_data/taps/schemas/amplitude/v1/amplitude-v1-tables.yml
@@ -0,0 +1,49 @@
+tap: amplitude
+version: '1'
+tables:
+- name: events
+ description: '`{{ table.name }}_[project_id]` tables contain info about the events
+ logged in your {{ integration.display_name }} projects.
+
+
+ **Note**: Each event table will have the project ID appended. For example: If
+ a project has an ID of `168342`, the events table for the project will be named
+ `events_168432`.
+
+ '
+ links:
+ doc-link: https://amplitude.zendesk.com/hc/en-us/articles/115001902492-Query-Snowflake#column-schema
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: uuid
+ replication-key: event_time
+- name: merge_ids
+ description: '`{{ table.name }}_[project_id]` tables contain info about merged users.
+ These are users whose records have been merged with other user records to eliminate
+ duplicates.
+
+
+ For example: If an anonymous user logs events anonymously before signing in, they
+ will go from being anonymous to a recognized user. Without merging the user''s
+ records, it''ll look like two users with two sets of events, rather than one user
+ completing a series of events.
+
+
+ For more info on how {{ integration.display_name }} handles merging users, [refer
+ to their documentation](https://amplitude.zendesk.com/hc/en-us/articles/115003135607){:target="new"}.
+
+
+ **Note**: Each table will have the project ID appended. For example: If a project
+ has an ID of `168342`, the merged ID table for the project will be named `merge_ids_168432`.
+
+ '
+ links:
+ doc-link: https://amplitude.zendesk.com/hc/en-us/articles/115001902492-Query-Snowflake#column-schema
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - amplitude_id
+ - merge_server_time
+ - merged_amplitude_id
+ - merge_event_time
+ replication-key: merge_event_time
diff --git a/_data/taps/schemas/amplitude/v1/json/events.json b/_data/taps/schemas/amplitude/v1/json/events.json
new file mode 100644
index 000000000..2aced16ef
--- /dev/null
+++ b/_data/taps/schemas/amplitude/v1/json/events.json
@@ -0,0 +1,199 @@
+{
+ "properties": {
+ "adid": {
+ "type": [
+ "string"
+ ]
+ },
+ "amplitude_event_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "amplitude_id": {
+ "type": [
+ "number"
+ ]
+ },
+ "app": {
+ "type": [
+ "number"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "client_event_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "client_upload_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "data": {
+ "type": [
+ "string"
+ ]
+ },
+ "device_brand": {
+ "type": [
+ "string"
+ ]
+ },
+ "device_carrier": {
+ "type": [
+ "string"
+ ]
+ },
+ "device_family": {
+ "type": [
+ "string"
+ ]
+ },
+ "device_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "device_manufacturer": {
+ "type": [
+ "string"
+ ]
+ },
+ "device_model": {
+ "type": [
+ "string"
+ ]
+ },
+ "device_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "dma": {
+ "type": [
+ "string"
+ ]
+ },
+ "event_id": {
+ "type": [
+ "number"
+ ]
+ },
+ "event_properties": {
+ "type": [
+ "string"
+ ]
+ },
+ "event_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "event_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "followed_an_identity": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "groups": {
+ "type": [
+ "string"
+ ]
+ },
+ "idfa": {
+ "type": [
+ "string"
+ ]
+ },
+ "ip_address": {
+ "type": [
+ "string"
+ ]
+ },
+ "location_lat": {
+ "type": [
+ "number"
+ ]
+ },
+ "location_lng": {
+ "type": [
+ "number"
+ ]
+ },
+ "os_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "os_version": {
+ "type": [
+ "string"
+ ]
+ },
+ "paying": {
+ "type": [
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "string"
+ ]
+ },
+ "server_upload_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "session_id": {
+ "type": [
+ "number"
+ ]
+ },
+ "start_version": {
+ "type": [
+ "string"
+ ]
+ },
+ "user_creation_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "user_properties": {
+ "type": [
+ "string"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "string"
+ ]
+ },
+ "version_name": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/amplitude/v1/json/merge_ids.json b/_data/taps/schemas/amplitude/v1/json/merge_ids.json
new file mode 100644
index 000000000..78d0a5b32
--- /dev/null
+++ b/_data/taps/schemas/amplitude/v1/json/merge_ids.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "amplitude_id": {
+ "type": [
+ "number"
+ ]
+ },
+ "merge_event_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "merge_server_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "merged_amplitude_id": {
+ "type": [
+ "number"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/appsflyer/v1/appsflyer-v1-tables.yml b/_data/taps/schemas/appsflyer/v1/appsflyer-v1-tables.yml
new file mode 100644
index 000000000..643841059
--- /dev/null
+++ b/_data/taps/schemas/appsflyer/v1/appsflyer-v1-tables.yml
@@ -0,0 +1,44 @@
+tap: appsflyer
+version: '1'
+tables:
+- name: installations
+ description: The `{{ table.name }}` table contains information about iOS and Android
+ app installations.
+ links:
+ doc-link: https://support.appsflyer.com/hc/en-us/articles/208387843-Raw-Data-Reports-V5-
+ singer-schema: https://github.com/singer-io/tap-appsflyer/blob/master/tap_appsflyer/schemas/raw_data/installations.json
+ api-method: https://dev.appsflyer.com/hc/reference/get_app-id-installs-report-v5
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - appsflyer_id
+ - event_name
+ - event_time
+ replication-key: event_time
+- name: in_app_events
+ description: The `{{ table.name }}` table contains information about in-app events
+ for iOS and Android apps.
+ links:
+ doc-link: https://support.appsflyer.com/hc/en-us/articles/208387843-Raw-Data-Reports-V5-
+ singer-schema: https://github.com/singer-io/tap-appsflyer/blob/master/tap_appsflyer/schemas/raw_data/in_app_events.json
+ api-method: https://dev.appsflyer.com/hc/reference/get_app-id-in-app-events-report-v5
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - appsflyer_id
+ - event_name
+ - event_time
+ replication-key: event_time
+- name: organic_installs
+ description: The `{{ table.name }}` table contains information about organic installs.
+ links:
+ doc-link: https://support.appsflyer.com/hc/en-us/articles/208387843-Raw-Data-Reports-V5-
+ singer-schema: https://github.com/singer-io/tap-appsflyer/blob/master/tap_appsflyer/schemas/raw_data/organic_installs.json
+ api-method: https://dev.appsflyer.com/hc/reference/get_app-id-organic-installs-report-v5
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - appsflyer_id
+ - event_name
+ - event_time
+ replication-key: event_time
diff --git a/_data/taps/schemas/appsflyer/v1/json/in_app_events.json b/_data/taps/schemas/appsflyer/v1/json/in_app_events.json
new file mode 100644
index 000000000..e32dc3c49
--- /dev/null
+++ b/_data/taps/schemas/appsflyer/v1/json/in_app_events.json
@@ -0,0 +1,492 @@
+{
+ "properties": {
+ "advertising_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_ad": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_ad_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_ad_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_adset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_adset_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_attribution_lookback": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_c_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_cost_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_cost_model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_cost_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_keywords": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_prt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_reengagement_window": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_siteid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_sub1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_sub2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_sub3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_sub4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_sub5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_sub_siteid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "android_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "appsflyer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "attributed_touch_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "attributed_touch_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bundle_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "carrier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor1_af_prt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor1_campaign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor1_media_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor1_touch_time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor1_touch_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor2_af_prt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor2_campaign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor2_media_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor2_touch_time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor2_touch_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor3_af_prt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor3_campaign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor3_media_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor3_touch_time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor3_touch_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_user_id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "device_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dma": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_revenue": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_revenue_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_revenue_usd": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "event_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "http_referrer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idfa": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idfv": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "imei": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "install_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_primary_attribution": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_receipt_validated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_retargeting": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "media_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "os_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "platform": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "retargeting_conversion_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sdk_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_agent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "wifi": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/appsflyer/v1/json/installations.json b/_data/taps/schemas/appsflyer/v1/json/installations.json
new file mode 100644
index 000000000..e32dc3c49
--- /dev/null
+++ b/_data/taps/schemas/appsflyer/v1/json/installations.json
@@ -0,0 +1,492 @@
+{
+ "properties": {
+ "advertising_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_ad": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_ad_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_ad_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_adset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_adset_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_attribution_lookback": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_c_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_cost_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_cost_model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_cost_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_keywords": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_prt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_reengagement_window": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_siteid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_sub1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_sub2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_sub3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_sub4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_sub5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_sub_siteid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "android_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "appsflyer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "attributed_touch_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "attributed_touch_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bundle_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "carrier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor1_af_prt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor1_campaign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor1_media_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor1_touch_time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor1_touch_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor2_af_prt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor2_campaign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor2_media_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor2_touch_time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor2_touch_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor3_af_prt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor3_campaign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor3_media_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor3_touch_time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor3_touch_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_user_id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "device_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dma": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_revenue": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_revenue_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_revenue_usd": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "event_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "http_referrer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idfa": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idfv": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "imei": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "install_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_primary_attribution": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_receipt_validated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_retargeting": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "media_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "os_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "platform": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "retargeting_conversion_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sdk_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_agent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "wifi": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/appsflyer/v1/json/organic_installs.json b/_data/taps/schemas/appsflyer/v1/json/organic_installs.json
new file mode 100644
index 000000000..e32dc3c49
--- /dev/null
+++ b/_data/taps/schemas/appsflyer/v1/json/organic_installs.json
@@ -0,0 +1,492 @@
+{
+ "properties": {
+ "advertising_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_ad": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_ad_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_ad_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_adset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_adset_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_attribution_lookback": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_c_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_cost_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_cost_model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_cost_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_keywords": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_prt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_reengagement_window": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_siteid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_sub1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_sub2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_sub3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_sub4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_sub5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "af_sub_siteid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "android_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "appsflyer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "attributed_touch_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "attributed_touch_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bundle_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "carrier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor1_af_prt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor1_campaign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor1_media_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor1_touch_time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor1_touch_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor2_af_prt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor2_campaign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor2_media_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor2_touch_time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor2_touch_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor3_af_prt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor3_campaign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor3_media_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor3_touch_time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributor3_touch_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_user_id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "device_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dma": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_revenue": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_revenue_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_revenue_usd": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "event_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "http_referrer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idfa": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idfv": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "imei": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "install_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_primary_attribution": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_receipt_validated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_retargeting": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "media_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "os_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "platform": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "retargeting_conversion_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sdk_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_agent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "wifi": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/asana/v1/asana-v1-foreign-keys.yml b/_data/taps/schemas/asana/v1/asana-v1-foreign-keys.yml
new file mode 100644
index 000000000..247ee75f8
--- /dev/null
+++ b/_data/taps/schemas/asana/v1/asana-v1-foreign-keys.yml
@@ -0,0 +1,213 @@
+tap: asana
+version: '1'
+keys:
+ projects_id:
+ - table: projects
+ keys:
+ - id
+ - table: tasks
+ keys:
+ - projects.id
+ tags_id:
+ - table: tags
+ keys:
+ - id
+ tasks_id:
+ - table: tasks
+ keys:
+ - id
+ users_id:
+ - table: projects
+ keys:
+ - followers.id
+ - members.id
+ - owner.id
+ - table: tags
+ keys:
+ - followers.id
+ - table: tasks
+ keys:
+ - assignee.id
+ - followers.id
+ - table: users
+ keys:
+ - id
+ workspace_id:
+ - table: projects
+ keys:
+ - workspace.id
+ - table: tags
+ keys:
+ - workspace.id
+ - table: tasks
+ keys:
+ - workspace.id
+ - table: users
+ keys:
+ - workspaces.id
+ - table: workspaces
+ keys:
+ - id
+tables:
+- table-name: projects
+ join:
+ - table-name: tasks
+ keys:
+ - key: id
+ foreign-key: projects.id
+ - key: followers.id
+ foreign-key: assignee.id
+ - key: members.id
+ foreign-key: assignee.id
+ - key: owner.id
+ foreign-key: assignee.id
+ - key: followers.id
+ foreign-key: followers.id
+ - key: members.id
+ foreign-key: followers.id
+ - key: owner.id
+ foreign-key: followers.id
+ - key: workspace.id
+ foreign-key: workspace.id
+ - table-name: tags
+ keys:
+ - key: followers.id
+ foreign-key: followers.id
+ - key: members.id
+ foreign-key: followers.id
+ - key: owner.id
+ foreign-key: followers.id
+ - key: workspace.id
+ foreign-key: workspace.id
+ - table-name: users
+ keys:
+ - key: followers.id
+ foreign-key: id
+ - key: members.id
+ foreign-key: id
+ - key: owner.id
+ foreign-key: id
+ - key: workspace.id
+ foreign-key: workspaces.id
+ - table-name: workspaces
+ keys:
+ - key: workspace.id
+ foreign-key: id
+- table-name: tasks
+ join:
+ - table-name: projects
+ keys:
+ - key: projects.id
+ foreign-key: id
+ - key: assignee.id
+ foreign-key: followers.id
+ - key: followers.id
+ foreign-key: followers.id
+ - key: assignee.id
+ foreign-key: members.id
+ - key: followers.id
+ foreign-key: members.id
+ - key: assignee.id
+ foreign-key: owner.id
+ - key: followers.id
+ foreign-key: owner.id
+ - key: workspace.id
+ foreign-key: workspace.id
+ - table-name: tags
+ keys:
+ - key: assignee.id
+ foreign-key: followers.id
+ - key: followers.id
+ foreign-key: followers.id
+ - key: workspace.id
+ foreign-key: workspace.id
+ - table-name: users
+ keys:
+ - key: assignee.id
+ foreign-key: id
+ - key: followers.id
+ foreign-key: id
+ - key: workspace.id
+ foreign-key: workspaces.id
+ - table-name: workspaces
+ keys:
+ - key: workspace.id
+ foreign-key: id
+- table-name: tags
+ join:
+ - table-name: projects
+ keys:
+ - key: followers.id
+ foreign-key: followers.id
+ - key: followers.id
+ foreign-key: members.id
+ - key: followers.id
+ foreign-key: owner.id
+ - key: workspace.id
+ foreign-key: workspace.id
+ - table-name: tasks
+ keys:
+ - key: followers.id
+ foreign-key: assignee.id
+ - key: followers.id
+ foreign-key: followers.id
+ - key: workspace.id
+ foreign-key: workspace.id
+ - table-name: users
+ keys:
+ - key: followers.id
+ foreign-key: id
+ - key: workspace.id
+ foreign-key: workspaces.id
+ - table-name: workspaces
+ keys:
+ - key: workspace.id
+ foreign-key: id
+- table-name: users
+ join:
+ - table-name: projects
+ keys:
+ - key: id
+ foreign-key: followers.id
+ - key: id
+ foreign-key: members.id
+ - key: id
+ foreign-key: owner.id
+ - key: workspaces.id
+ foreign-key: workspace.id
+ - table-name: tags
+ keys:
+ - key: id
+ foreign-key: followers.id
+ - key: workspaces.id
+ foreign-key: workspace.id
+ - table-name: tasks
+ keys:
+ - key: id
+ foreign-key: assignee.id
+ - key: id
+ foreign-key: followers.id
+ - key: workspaces.id
+ foreign-key: workspace.id
+ - table-name: workspaces
+ keys:
+ - key: workspaces.id
+ foreign-key: id
+- table-name: workspaces
+ join:
+ - table-name: projects
+ keys:
+ - key: id
+ foreign-key: workspace.id
+ - table-name: tags
+ keys:
+ - key: id
+ foreign-key: workspace.id
+ - table-name: tasks
+ keys:
+ - key: id
+ foreign-key: workspace.id
+ - table-name: users
+ keys:
+ - key: id
+ foreign-key: workspaces.id
diff --git a/_data/taps/schemas/asana/v1/asana-v1-tables.yml b/_data/taps/schemas/asana/v1/asana-v1-tables.yml
new file mode 100644
index 000000000..bed042bbc
--- /dev/null
+++ b/_data/taps/schemas/asana/v1/asana-v1-tables.yml
@@ -0,0 +1,71 @@
+tap: asana
+version: '1'
+tables:
+- name: projects
+ description: 'The `{{ table.name }}` table contains info about the projects the
+ user who authorized the {{ integration.display_name }} integration in Stitch has
+ access to.
+
+ '
+ links:
+ doc-link: https://asana.com/developers/api-reference/projects
+ singer-schema: https://github.com/singer-io/tap-asana/blob/cb441655c57734e0cf1f61c933b7905c8868b594/tap_asana/schemas/projects.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: modified_at
+- name: tags
+ description: 'The `{{ table.name }}` table contains info about the tags in your
+ {{ integration.display_name }} account. A tag is a label that can be attached
+ to any task in Asana.
+
+ '
+ links:
+ doc-link: https://asana.com/developers/api-reference/tags
+ singer-schema: https://github.com/singer-io/tap-asana/blob/cb441655c57734e0cf1f61c933b7905c8868b594/tap_asana/schemas/tags.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created_at
+- name: tasks
+ description: 'The `{{ table.name }}` table contains info about the tasks in your
+ {{ integration.display_name }} account.
+
+
+ #### Custom fields
+
+
+ To replicate task custom fields, select the `custom_fields` attribute in Stitch.
+ If your destination doesn''t natively support nested data structures, two subtables
+ (`tasks__custom_fields`, `tasks__custom_fields__enum_options`) will be created.
+
+ '
+ links:
+ doc-link: https://asana.com/developers/api-reference/tasks
+ singer-schema: https://github.com/singer-io/tap-asana/blob/cb441655c57734e0cf1f61c933b7905c8868b594/tap_asana/schemas/tasks.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: modified_at
+- name: users
+ description: 'The `{{ table.name }}` table contains info about the users in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://asana.com/developers/api-reference/users
+ singer-schema: https://github.com/singer-io/tap-asana/blob/cb441655c57734e0cf1f61c933b7905c8868b594/tap_asana/schemas/users.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: workspaces
+ description: 'The `{{ table.name }}` table contains info about the workspaces associated
+ with your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://asana.com/developers/api-reference/workspaces
+ singer-schema: https://github.com/singer-io/tap-asana/blob/cb441655c57734e0cf1f61c933b7905c8868b594/tap_asana/schemas/workspaces.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
diff --git a/_data/taps/schemas/asana/v1/json/projects.json b/_data/taps/schemas/asana/v1/json/projects.json
new file mode 100644
index 000000000..cb7776fb8
--- /dev/null
+++ b/_data/taps/schemas/asana/v1/json/projects.json
@@ -0,0 +1,222 @@
+{
+ "properties": {
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "current_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "due_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "followers": {
+ "items": {
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "members": {
+ "items": {
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "modified_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner": {
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "public": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "team": {
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "workspace": {
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/asana/v1/json/tags.json b/_data/taps/schemas/asana/v1/json/tags.json
new file mode 100644
index 000000000..73e4d9e6c
--- /dev/null
+++ b/_data/taps/schemas/asana/v1/json/tags.json
@@ -0,0 +1,99 @@
+{
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "followers": {
+ "items": {
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "workspace": {
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/asana/v1/json/tasks.json b/_data/taps/schemas/asana/v1/json/tasks.json
new file mode 100644
index 000000000..68144894b
--- /dev/null
+++ b/_data/taps/schemas/asana/v1/json/tasks.json
@@ -0,0 +1,453 @@
+{
+ "properties": {
+ "assignee": {
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "assignee_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "completed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "completed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enum_options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "enum_value": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_notifications_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "is_global_to_workspace": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "precision": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "resource_subtype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "due_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "due_on": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "external": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers": {
+ "items": {
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hearted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "hearts": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "memberships": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modified_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "num_hearts": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "parent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "projects": {
+ "items": {
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tags": {
+ "items": {
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "workspace": {
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/asana/v1/json/users.json b/_data/taps/schemas/asana/v1/json/users.json
new file mode 100644
index 000000000..d137d8948
--- /dev/null
+++ b/_data/taps/schemas/asana/v1/json/users.json
@@ -0,0 +1,104 @@
+{
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "photo": {
+ "properties": {
+ "image_1024x1024": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_128x128": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_21x21": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_27x27": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_36x36": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_60x60": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "workspaces": {
+ "items": {
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/asana/v1/json/workspaces.json b/_data/taps/schemas/asana/v1/json/workspaces.json
new file mode 100644
index 000000000..5dd39bfa6
--- /dev/null
+++ b/_data/taps/schemas/asana/v1/json/workspaces.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "is_organization": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/asana/v2/asana-v2-foreign-keys.yml b/_data/taps/schemas/asana/v2/asana-v2-foreign-keys.yml
new file mode 100644
index 000000000..07dc1a86f
--- /dev/null
+++ b/_data/taps/schemas/asana/v2/asana-v2-foreign-keys.yml
@@ -0,0 +1,701 @@
+tap: asana
+version: '2'
+keys:
+ projects_gid:
+ - table: projects
+ keys:
+ - gid
+ - table: tasks
+ keys:
+ - projects.gid
+ - table: stories
+ keys:
+ - project.gid
+ - table: sections
+ keys:
+ - project.gid
+ - projects.gid
+ tags_gid:
+ - table: tags
+ keys:
+ - gid
+ - table: stories
+ keys:
+ - tag.gid
+ tasks_gid:
+ - table: tasks
+ keys:
+ - gid
+ - table: stories
+ keys:
+ - task.gid
+ users_gid:
+ - table: projects
+ keys:
+ - followers.gid
+ - members.gid
+ - owner.gid
+ - table: tags
+ keys:
+ - followers.gid
+ - table: tasks
+ keys:
+ - assignee.gid
+ - followers.gid
+ - table: users
+ keys:
+ - gid
+ - table: stories
+ keys:
+ - assignee.gid
+ - created_by.gid
+ - dependency.gid
+ - table: portfolios
+ keys:
+ - created_by.gid
+ - members.gid
+ - table: portfolios
+ keys:
+ - owner.gid
+ - table: teams
+ keys:
+ - users.gid
+ workspace_gid:
+ - table: projects
+ keys:
+ - workspace.gid
+ - table: tags
+ keys:
+ - workspace.gid
+ - table: tasks
+ keys:
+ - workspace.gid
+ - table: users
+ keys:
+ - workspaces.gid
+ - table: workspaces
+ keys:
+ - gid
+ - table: portfolios
+ keys:
+ - workspace.gid
+ - table: teams
+ keys:
+ - organization.gid
+ sections_gid:
+ - table: sections
+ keys:
+ - gid
+ - table: stories
+ keys:
+ - new_section.gid
+ - old_section.gid
+ stories_gid:
+ - table: stories
+ keys:
+ - gid
+ - story.gid
+ porfolios_gid:
+ - table: portfolios
+ keys:
+ - gid
+ - portfolio_items.gid
+tables:
+- table-name: projects
+ join:
+ - table-name: tasks
+ keys:
+ - key: gid
+ foreign-key: projects.gid
+ - key: followers.gid
+ foreign-key: assignee.gid
+ - key: members.gid
+ foreign-key: assignee.gid
+ - key: owner.gid
+ foreign-key: assignee.gid
+ - key: followers.gid
+ foreign-key: followers.gid
+ - key: members.gid
+ foreign-key: followers.gid
+ - key: owner.gid
+ foreign-key: followers.gid
+ - key: workspace.gid
+ foreign-key: workspace.gid
+ - table-name: stories
+ keys:
+ - key: gid
+ foreign-key: project.gid
+ - key: followers.gid
+ foreign-key: assignee.gid
+ - key: members.gid
+ foreign-key: assignee.gid
+ - key: owner.gid
+ foreign-key: assignee.gid
+ - key: followers.gid
+ foreign-key: created_by.gid
+ - key: members.gid
+ foreign-key: created_by.gid
+ - key: owner.gid
+ foreign-key: created_by.gid
+ - key: followers.gid
+ foreign-key: dependency.gid
+ - key: members.gid
+ foreign-key: dependency.gid
+ - key: owner.gid
+ foreign-key: dependency.gid
+ - table-name: sections
+ keys:
+ - key: gid
+ foreign-key: project.gid
+ - key: gid
+ foreign-key: projects.gid
+ - table-name: tags
+ keys:
+ - key: followers.gid
+ foreign-key: followers.gid
+ - key: members.gid
+ foreign-key: followers.gid
+ - key: owner.gid
+ foreign-key: followers.gid
+ - key: workspace.gid
+ foreign-key: workspace.gid
+ - table-name: users
+ keys:
+ - key: followers.gid
+ foreign-key: gid
+ - key: members.gid
+ foreign-key: gid
+ - key: owner.gid
+ foreign-key: gid
+ - key: workspace.gid
+ foreign-key: workspaces.gid
+ - table-name: portfolios
+ keys:
+ - key: followers.gid
+ foreign-key: created_by.gid
+ - key: members.gid
+ foreign-key: created_by.gid
+ - key: owner.gid
+ foreign-key: created_by.gid
+ - key: followers.gid
+ foreign-key: members.gid
+ - key: members.gid
+ foreign-key: members.gid
+ - key: owner.gid
+ foreign-key: members.gid
+ - key: followers.gid
+ foreign-key: owner.gid
+ - key: members.gid
+ foreign-key: owner.gid
+ - key: owner.gid
+ foreign-key: owner.gid
+ - key: workspace.gid
+ foreign-key: workspace.gid
+ - table-name: teams
+ keys:
+ - key: followers.gid
+ foreign-key: users.gid
+ - key: members.gid
+ foreign-key: users.gid
+ - key: owner.gid
+ foreign-key: users.gid
+ - key: workspace.gid
+ foreign-key: organization.gid
+ - table-name: workspaces
+ keys:
+ - key: workspace.gid
+ foreign-key: gid
+- table-name: tasks
+ join:
+ - table-name: projects
+ keys:
+ - key: projects.gid
+ foreign-key: gid
+ - key: assignee.gid
+ foreign-key: followers.gid
+ - key: followers.gid
+ foreign-key: followers.gid
+ - key: assignee.gid
+ foreign-key: members.gid
+ - key: followers.gid
+ foreign-key: members.gid
+ - key: assignee.gid
+ foreign-key: owner.gid
+ - key: followers.gid
+ foreign-key: owner.gid
+ - key: workspace.gid
+ foreign-key: workspace.gid
+ - table-name: stories
+ keys:
+ - key: projects.gid
+ foreign-key: project.gid
+ - key: gid
+ foreign-key: task.gid
+ - key: assignee.gid
+ foreign-key: assignee.gid
+ - key: followers.gid
+ foreign-key: assignee.gid
+ - key: assignee.gid
+ foreign-key: created_by.gid
+ - key: followers.gid
+ foreign-key: created_by.gid
+ - key: assignee.gid
+ foreign-key: dependency.gid
+ - key: followers.gid
+ foreign-key: dependency.gid
+ - table-name: sections
+ keys:
+ - key: projects.gid
+ foreign-key: project.gid
+ - key: projects.gid
+ foreign-key: projects.gid
+ - table-name: tags
+ keys:
+ - key: assignee.gid
+ foreign-key: followers.gid
+ - key: followers.gid
+ foreign-key: followers.gid
+ - key: workspace.gid
+ foreign-key: workspace.gid
+ - table-name: users
+ keys:
+ - key: assignee.gid
+ foreign-key: gid
+ - key: followers.gid
+ foreign-key: gid
+ - key: workspace.gid
+ foreign-key: workspaces.gid
+ - table-name: portfolios
+ keys:
+ - key: assignee.gid
+ foreign-key: created_by.gid
+ - key: followers.gid
+ foreign-key: created_by.gid
+ - key: assignee.gid
+ foreign-key: members.gid
+ - key: followers.gid
+ foreign-key: members.gid
+ - key: assignee.gid
+ foreign-key: owner.gid
+ - key: followers.gid
+ foreign-key: owner.gid
+ - key: workspace.gid
+ foreign-key: workspace.gid
+ - table-name: teams
+ keys:
+ - key: assignee.gid
+ foreign-key: users.gid
+ - key: followers.gid
+ foreign-key: users.gid
+ - key: workspace.gid
+ foreign-key: organization.gid
+ - table-name: workspaces
+ keys:
+ - key: workspace.gid
+ foreign-key: gid
+- table-name: stories
+ join:
+ - table-name: projects
+ keys:
+ - key: project.gid
+ foreign-key: gid
+ - key: assignee.gid
+ foreign-key: followers.gid
+ - key: created_by.gid
+ foreign-key: followers.gid
+ - key: dependency.gid
+ foreign-key: followers.gid
+ - key: assignee.gid
+ foreign-key: members.gid
+ - key: created_by.gid
+ foreign-key: members.gid
+ - key: dependency.gid
+ foreign-key: members.gid
+ - key: assignee.gid
+ foreign-key: owner.gid
+ - key: created_by.gid
+ foreign-key: owner.gid
+ - key: dependency.gid
+ foreign-key: owner.gid
+ - table-name: tasks
+ keys:
+ - key: project.gid
+ foreign-key: projects.gid
+ - key: task.gid
+ foreign-key: gid
+ - key: assignee.gid
+ foreign-key: assignee.gid
+ - key: created_by.gid
+ foreign-key: assignee.gid
+ - key: dependency.gid
+ foreign-key: assignee.gid
+ - key: assignee.gid
+ foreign-key: followers.gid
+ - key: created_by.gid
+ foreign-key: followers.gid
+ - key: dependency.gid
+ foreign-key: followers.gid
+ - table-name: sections
+ keys:
+ - key: project.gid
+ foreign-key: project.gid
+ - key: project.gid
+ foreign-key: projects.gid
+ - key: new_section.gid
+ foreign-key: gid
+ - key: old_section.gid
+ foreign-key: gid
+ - table-name: tags
+ keys:
+ - key: tag.gid
+ foreign-key: gid
+ - key: assignee.gid
+ foreign-key: followers.gid
+ - key: created_by.gid
+ foreign-key: followers.gid
+ - key: dependency.gid
+ foreign-key: followers.gid
+ - table-name: users
+ keys:
+ - key: assignee.gid
+ foreign-key: gid
+ - key: created_by.gid
+ foreign-key: gid
+ - key: dependency.gid
+ foreign-key: gid
+ - table-name: portfolios
+ keys:
+ - key: assignee.gid
+ foreign-key: created_by.gid
+ - key: created_by.gid
+ foreign-key: created_by.gid
+ - key: dependency.gid
+ foreign-key: created_by.gid
+ - key: assignee.gid
+ foreign-key: members.gid
+ - key: created_by.gid
+ foreign-key: members.gid
+ - key: dependency.gid
+ foreign-key: members.gid
+ - key: assignee.gid
+ foreign-key: owner.gid
+ - key: created_by.gid
+ foreign-key: owner.gid
+ - key: dependency.gid
+ foreign-key: owner.gid
+ - table-name: teams
+ keys:
+ - key: assignee.gid
+ foreign-key: users.gid
+ - key: created_by.gid
+ foreign-key: users.gid
+ - key: dependency.gid
+ foreign-key: users.gid
+- table-name: sections
+ join:
+ - table-name: projects
+ keys:
+ - key: project.gid
+ foreign-key: gid
+ - key: projects.gid
+ foreign-key: gid
+ - table-name: tasks
+ keys:
+ - key: project.gid
+ foreign-key: projects.gid
+ - key: projects.gid
+ foreign-key: projects.gid
+ - table-name: stories
+ keys:
+ - key: project.gid
+ foreign-key: project.gid
+ - key: projects.gid
+ foreign-key: project.gid
+ - key: gid
+ foreign-key: new_section.gid
+ - key: gid
+ foreign-key: old_section.gid
+- table-name: tags
+ join:
+ - table-name: stories
+ keys:
+ - key: gid
+ foreign-key: tag.gid
+ - key: followers.gid
+ foreign-key: assignee.gid
+ - key: followers.gid
+ foreign-key: created_by.gid
+ - key: followers.gid
+ foreign-key: dependency.gid
+ - table-name: projects
+ keys:
+ - key: followers.gid
+ foreign-key: followers.gid
+ - key: followers.gid
+ foreign-key: members.gid
+ - key: followers.gid
+ foreign-key: owner.gid
+ - key: workspace.gid
+ foreign-key: workspace.gid
+ - table-name: tasks
+ keys:
+ - key: followers.gid
+ foreign-key: assignee.gid
+ - key: followers.gid
+ foreign-key: followers.gid
+ - key: workspace.gid
+ foreign-key: workspace.gid
+ - table-name: users
+ keys:
+ - key: followers.gid
+ foreign-key: gid
+ - key: workspace.gid
+ foreign-key: workspaces.gid
+ - table-name: portfolios
+ keys:
+ - key: followers.gid
+ foreign-key: created_by.gid
+ - key: followers.gid
+ foreign-key: members.gid
+ - key: followers.gid
+ foreign-key: owner.gid
+ - key: workspace.gid
+ foreign-key: workspace.gid
+ - table-name: teams
+ keys:
+ - key: followers.gid
+ foreign-key: users.gid
+ - key: workspace.gid
+ foreign-key: organization.gid
+ - table-name: workspaces
+ keys:
+ - key: workspace.gid
+ foreign-key: gid
+- table-name: users
+ join:
+ - table-name: projects
+ keys:
+ - key: gid
+ foreign-key: followers.gid
+ - key: gid
+ foreign-key: members.gid
+ - key: gid
+ foreign-key: owner.gid
+ - key: workspaces.gid
+ foreign-key: workspace.gid
+ - table-name: tags
+ keys:
+ - key: gid
+ foreign-key: followers.gid
+ - key: workspaces.gid
+ foreign-key: workspace.gid
+ - table-name: tasks
+ keys:
+ - key: gid
+ foreign-key: assignee.gid
+ - key: gid
+ foreign-key: followers.gid
+ - key: workspaces.gid
+ foreign-key: workspace.gid
+ - table-name: stories
+ keys:
+ - key: gid
+ foreign-key: assignee.gid
+ - key: gid
+ foreign-key: created_by.gid
+ - key: gid
+ foreign-key: dependency.gid
+ - table-name: portfolios
+ keys:
+ - key: gid
+ foreign-key: created_by.gid
+ - key: gid
+ foreign-key: members.gid
+ - key: gid
+ foreign-key: owner.gid
+ - key: workspaces.gid
+ foreign-key: workspace.gid
+ - table-name: teams
+ keys:
+ - key: gid
+ foreign-key: users.gid
+ - key: workspaces.gid
+ foreign-key: organization.gid
+ - table-name: workspaces
+ keys:
+ - key: workspaces.gid
+ foreign-key: gid
+- table-name: portfolios
+ join:
+ - table-name: projects
+ keys:
+ - key: created_by.gid
+ foreign-key: followers.gid
+ - key: members.gid
+ foreign-key: followers.gid
+ - key: owner.gid
+ foreign-key: followers.gid
+ - key: created_by.gid
+ foreign-key: members.gid
+ - key: members.gid
+ foreign-key: members.gid
+ - key: owner.gid
+ foreign-key: members.gid
+ - key: created_by.gid
+ foreign-key: owner.gid
+ - key: members.gid
+ foreign-key: owner.gid
+ - key: owner.gid
+ foreign-key: owner.gid
+ - key: workspace.gid
+ foreign-key: workspace.gid
+ - table-name: tags
+ keys:
+ - key: created_by.gid
+ foreign-key: followers.gid
+ - key: members.gid
+ foreign-key: followers.gid
+ - key: owner.gid
+ foreign-key: followers.gid
+ - key: workspace.gid
+ foreign-key: workspace.gid
+ - table-name: tasks
+ keys:
+ - key: created_by.gid
+ foreign-key: assignee.gid
+ - key: members.gid
+ foreign-key: assignee.gid
+ - key: owner.gid
+ foreign-key: assignee.gid
+ - key: created_by.gid
+ foreign-key: followers.gid
+ - key: members.gid
+ foreign-key: followers.gid
+ - key: owner.gid
+ foreign-key: followers.gid
+ - key: workspace.gid
+ foreign-key: workspace.gid
+ - table-name: users
+ keys:
+ - key: created_by.gid
+ foreign-key: gid
+ - key: members.gid
+ foreign-key: gid
+ - key: owner.gid
+ foreign-key: gid
+ - key: workspace.gid
+ foreign-key: workspaces.gid
+ - table-name: stories
+ keys:
+ - key: created_by.gid
+ foreign-key: assignee.gid
+ - key: members.gid
+ foreign-key: assignee.gid
+ - key: owner.gid
+ foreign-key: assignee.gid
+ - key: created_by.gid
+ foreign-key: created_by.gid
+ - key: members.gid
+ foreign-key: created_by.gid
+ - key: owner.gid
+ foreign-key: created_by.gid
+ - key: created_by.gid
+ foreign-key: dependency.gid
+ - key: members.gid
+ foreign-key: dependency.gid
+ - key: owner.gid
+ foreign-key: dependency.gid
+ - table-name: teams
+ keys:
+ - key: created_by.gid
+ foreign-key: users.gid
+ - key: members.gid
+ foreign-key: users.gid
+ - key: owner.gid
+ foreign-key: users.gid
+ - key: workspace.gid
+ foreign-key: organization.gid
+ - table-name: workspaces
+ keys:
+ - key: workspace.gid
+ foreign-key: gid
+- table-name: teams
+ join:
+ - table-name: projects
+ keys:
+ - key: users.gid
+ foreign-key: followers.gid
+ - key: users.gid
+ foreign-key: members.gid
+ - key: users.gid
+ foreign-key: owner.gid
+ - key: organization.gid
+ foreign-key: workspace.gid
+ - table-name: tags
+ keys:
+ - key: users.gid
+ foreign-key: followers.gid
+ - key: organization.gid
+ foreign-key: workspace.gid
+ - table-name: tasks
+ keys:
+ - key: users.gid
+ foreign-key: assignee.gid
+ - key: users.gid
+ foreign-key: followers.gid
+ - key: organization.gid
+ foreign-key: workspace.gid
+ - table-name: users
+ keys:
+ - key: users.gid
+ foreign-key: gid
+ - key: organization.gid
+ foreign-key: workspaces.gid
+ - table-name: stories
+ keys:
+ - key: users.gid
+ foreign-key: assignee.gid
+ - key: users.gid
+ foreign-key: created_by.gid
+ - key: users.gid
+ foreign-key: dependency.gid
+ - table-name: portfolios
+ keys:
+ - key: users.gid
+ foreign-key: created_by.gid
+ - key: users.gid
+ foreign-key: members.gid
+ - key: users.gid
+ foreign-key: owner.gid
+ - key: organization.gid
+ foreign-key: workspace.gid
+ - table-name: workspaces
+ keys:
+ - key: organization.gid
+ foreign-key: gid
+- table-name: workspaces
+ join:
+ - table-name: projects
+ keys:
+ - key: gid
+ foreign-key: workspace.gid
+ - table-name: tags
+ keys:
+ - key: gid
+ foreign-key: workspace.gid
+ - table-name: tasks
+ keys:
+ - key: gid
+ foreign-key: workspace.gid
+ - table-name: users
+ keys:
+ - key: gid
+ foreign-key: workspaces.gid
+ - table-name: portfolios
+ keys:
+ - key: gid
+ foreign-key: workspace.gid
+ - table-name: teams
+ keys:
+ - key: gid
+ foreign-key: organization.gid
diff --git a/_data/taps/schemas/asana/v2/asana-v2-tables.yml b/_data/taps/schemas/asana/v2/asana-v2-tables.yml
new file mode 100644
index 000000000..a74b47afa
--- /dev/null
+++ b/_data/taps/schemas/asana/v2/asana-v2-tables.yml
@@ -0,0 +1,128 @@
+tap: asana
+version: '2'
+tables:
+- name: portfolios
+ description: 'The `{{ table.name }}` table contains info about the portfolios in
+ your {{ integration.display_name }} account.
+
+
+ #### Custom fields
+
+
+ To replicate task custom fields, select the `custom_fields` attribute in Stitch.
+ If your destination doesn''t natively support nested data structures, two subtables
+ (`tasks__custom_fields`, `tasks__custom_fields__enum_options`) will be created.
+
+ '
+ links:
+ doc-link: https://developers.asana.com/docs/portfolios
+ singer-schema: https://github.com/singer-io/tap-asana/blob/master/tap_asana/schemas/portfolios.json
+ api-method: https://developers.asana.com/docs/get-multiple-portfolios
+ table-details:
+ replication-method: Full Table
+ primary-key: gid
+- name: projects
+ description: 'The `{{ table.name }}` table contains info about the projects the
+ user who authorized the {{ integration.display_name }} integration in Stitch has
+ access to.
+
+ '
+ links:
+ doc-link: https://asana.com/developers/api-reference/projects
+ singer-schema: https://github.com/singer-io/tap-asana/blob/master/tap_asana/schemas/projects.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: gid
+ replication-key: modified_at
+- name: sections
+ description: 'The `{{ table.name }}` table contains info about sections within specified
+ projects in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.asana.com/docs/sections
+ singer-schema: https://github.com/singer-io/tap-asana/blob/master/tap_asana/schemas/sections.json
+ api-method: https://developers.asana.com/docs/get-sections-in-a-project
+ table-details:
+ replication-method: Full Table
+ primary-key: gid
+- name: stories
+ description: 'The `{{ table.name }}` table contains info about all stories within
+ specified tasks in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.asana.com/docs/stories
+ singer-schema: https://github.com/singer-io/tap-asana/blob/master/tap_asana/schemas/stories.json
+ api-method: https://developers.asana.com/docs/get-stories-from-a-task
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: gid
+ replication-key: created_at
+- name: tags
+ description: 'The `{{ table.name }}` table contains info about the tags in your
+ {{ integration.display_name }} account. A tag is a label that can be attached
+ to any task in Asana.
+
+ '
+ links:
+ doc-link: https://asana.com/developers/api-reference/tags
+ singer-schema: https://github.com/singer-io/tap-asana/blob/master/tap_asana/schemas/tags.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: gid
+ replication-key: created_at
+- name: tasks
+ description: 'The `{{ table.name }}` table contains info about the tasks in your
+ {{ integration.display_name }} account.
+
+
+ #### Custom fields
+
+
+ To replicate task custom fields, select the `custom_fields` attribute in Stitch.
+ If your destination doesn''t natively support nested data structures, two subtables
+ (`tasks__custom_fields`, `tasks__custom_fields__enum_options`) will be created.
+
+ '
+ links:
+ doc-link: https://asana.com/developers/api-reference/tasks
+ singer-schema: https://github.com/singer-io/tap-asana/blob/master/tap_asana/schemas/tasks.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: gid
+ replication-key: modified_at
+- name: teams
+ description: 'The `{{ table.name }}` table contains info about teams that belong
+ to a specified user in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.asana.com/docs/teams
+ singer-schema: https://github.com/singer-io/tap-asana/blob/master/tap_asana/schemas/teams.json
+ api-method: https://developers.asana.com/docs/get-teams-for-a-user
+ table-details:
+ replication-method: Full Table
+ primary-key: gid
+- name: users
+ description: 'The `{{ table.name }}` table contains info about the users in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://asana.com/developers/api-reference/users
+ singer-schema: https://github.com/singer-io/tap-asana/blob/master/tap_asana/schemas/users.json
+ table-details:
+ replication-method: Full Table
+ primary-key: gid
+- name: workspaces
+ description: 'The `{{ table.name }}` table contains info about the workspaces associated
+ with your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://asana.com/developers/api-reference/workspaces
+ singer-schema: https://github.com/singer-io/tap-asana/blob/master/tap_asana/schemas/workspaces.json
+ table-details:
+ replication-method: Full Table
+ primary-key: gid
diff --git a/_data/taps/schemas/asana/v2/json/portfolios.json b/_data/taps/schemas/asana/v2/json/portfolios.json
new file mode 100644
index 000000000..c102108ae
--- /dev/null
+++ b/_data/taps/schemas/asana/v2/json/portfolios.json
@@ -0,0 +1,874 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_by": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "current_status_update": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_subtype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "custom_field_settings": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "custom_field": {
+ "additionalProperties": false,
+ "properties": {
+ "created_by": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_label_position": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_value": {
+ "additionalProperties": false,
+ "properties": {
+ "date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enum_options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "enum_value": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_notifications_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_global_to_workspace": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "multi_enum_values": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "people_value": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "precision": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "resource_subtype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_important": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "parent": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "project": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "date_value": {
+ "additionalProperties": false,
+ "properties": {
+ "date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "display_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enum_options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "enum_value": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "multi_enum_values": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "resource_subtype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "due_on": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_template": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "members": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "permalink_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "portfolio_items": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "public": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_on": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "workspace": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/asana/v2/json/projects.json b/_data/taps/schemas/asana/v2/json/projects.json
new file mode 100644
index 000000000..202b593a4
--- /dev/null
+++ b/_data/taps/schemas/asana/v2/json/projects.json
@@ -0,0 +1,1031 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "completed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "completed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "completed_by": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_from_template": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "current_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "current_status_update": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_subtype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "custom_field_settings": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "custom_field": {
+ "additionalProperties": false,
+ "properties": {
+ "created_by": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_label_position": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_value": {
+ "additionalProperties": false,
+ "properties": {
+ "date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enum_options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "enum_value": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_notifications_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_global_to_workspace": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "multi_enum_values": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "people_value": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "precision": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "resource_subtype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_important": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "parent": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "project": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "date_value": {
+ "additionalProperties": false,
+ "properties": {
+ "date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enum_options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "enum_value": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_notifications_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_global_to_workspace": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "multi_enum_values": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "precision": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "resource_subtype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "default_view": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "due_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "due_on": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "icon": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_template": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "members": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "modified_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "permalink_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "project_brief": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "public": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_on": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "team": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "workspace": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/asana/v2/json/sections.json b/_data/taps/schemas/asana/v2/json/sections.json
new file mode 100644
index 000000000..34f4324d8
--- /dev/null
+++ b/_data/taps/schemas/asana/v2/json/sections.json
@@ -0,0 +1,93 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "project": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "projects": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/asana/v2/json/stories.json b/_data/taps/schemas/asana/v2/json/stories.json
new file mode 100644
index 000000000..3279855f4
--- /dev/null
+++ b/_data/taps/schemas/asana/v2/json/stories.json
@@ -0,0 +1,1317 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "assignee": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_by": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "custom_field": {
+ "additionalProperties": false,
+ "properties": {
+ "date_value": {
+ "additionalProperties": false,
+ "properties": {
+ "date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "display_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enum_options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "enum_value": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "multi_enum_values": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "resource_subtype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "dependency": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_subtype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "duplicate_of": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_subtype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "duplicated_from": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_subtype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "follower": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hearted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "hearts": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "html_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_editable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_edited": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_pinned": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "liked": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "likes": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "new_approval_status": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "new_date_value": {
+ "additionalProperties": false,
+ "properties": {
+ "due_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "due_on": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_on": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "new_dates": {
+ "additionalProperties": false,
+ "properties": {
+ "due_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "due_on": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "start_on": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "new_enum_value": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "new_multi_enum_values": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "new_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "new_number_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "new_people_value": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "new_resource_subtype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "new_section": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "new_text_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "num_hearts": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "num_likes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "old_approval_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "old_date_value": {
+ "additionalProperties": false,
+ "properties": {
+ "due_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "due_on": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_on": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "old_dates": {
+ "additionalProperties": false,
+ "properties": {
+ "due_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "due_on": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "start_on": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "old_enum_value": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "old_multi_enum_values": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "old_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "old_number_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "old_people_value": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "old_resource_subtype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "old_section": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "old_text_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "previews": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "fallback": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "footer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "header": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "header_link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title_link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "project": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resource_subtype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sticker_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "story": {
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_by": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_subtype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tag": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "target": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_subtype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "task": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_subtype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/asana/v2/json/tags.json b/_data/taps/schemas/asana/v2/json/tags.json
new file mode 100644
index 000000000..99648c043
--- /dev/null
+++ b/_data/taps/schemas/asana/v2/json/tags.json
@@ -0,0 +1,111 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "followers": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "permalink_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "workspace": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/asana/v2/json/tasks.json b/_data/taps/schemas/asana/v2/json/tasks.json
new file mode 100644
index 000000000..b35502adb
--- /dev/null
+++ b/_data/taps/schemas/asana/v2/json/tasks.json
@@ -0,0 +1,978 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "approval_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assignee": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "assignee_section": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "assignee_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "completed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "completed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "completed_by": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "created_by": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_label_position": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_value": {
+ "additionalProperties": false,
+ "properties": {
+ "date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enum_options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "enum_value": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_notifications_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_global_to_workspace": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "multi_enum_values": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "people_value": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "precision": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "resource_subtype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "dependencies": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "dependents": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "due_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "due_on": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "external": {
+ "additionalProperties": false,
+ "properties": {
+ "data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "followers": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hearted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "hearts": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "html_notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_rendered_as_seperator": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "liked": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "likes": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "memberships": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "project": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "section": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "modified_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "num_hearts": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "num_likes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "num_subtasks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "parent": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_subtype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "permalink_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "projects": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "resource_subtype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "start_on": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "workspace": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/asana/v2/json/teams.json b/_data/taps/schemas/asana/v2/json/teams.json
new file mode 100644
index 000000000..46d41f88f
--- /dev/null
+++ b/_data/taps/schemas/asana/v2/json/teams.json
@@ -0,0 +1,111 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organization": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "permalink_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "users": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "visibility": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/asana/v2/json/users.json b/_data/taps/schemas/asana/v2/json/users.json
new file mode 100644
index 000000000..48e33cefb
--- /dev/null
+++ b/_data/taps/schemas/asana/v2/json/users.json
@@ -0,0 +1,111 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "photo": {
+ "additionalProperties": false,
+ "properties": {
+ "image_1024x1024": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_128x128": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_21x21": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_27x27": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_36x36": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_60x60": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "workspaces": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/asana/v2/json/workspaces.json b/_data/taps/schemas/asana/v2/json/workspaces.json
new file mode 100644
index 000000000..cb1c527f4
--- /dev/null
+++ b/_data/taps/schemas/asana/v2/json/workspaces.json
@@ -0,0 +1,45 @@
+{
+ "properties": {
+ "email_domains": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "gid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_organization": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/autopilot/v1/autopilot-v1-foreign-keys.yml b/_data/taps/schemas/autopilot/v1/autopilot-v1-foreign-keys.yml
new file mode 100644
index 000000000..6ad0c23c0
--- /dev/null
+++ b/_data/taps/schemas/autopilot/v1/autopilot-v1-foreign-keys.yml
@@ -0,0 +1,93 @@
+tap: autopilot
+version: '1'
+keys:
+ contacts_contact_id:
+ - table: contacts
+ keys:
+ - contact_id
+ - table: lists_contacts
+ keys:
+ - contact_id
+ - table: smart_segments_contacts
+ keys:
+ - contact_id
+ smart_segments_segment_id:
+ - table: smart_segments
+ keys:
+ - segment_id
+ - table: smart_segments_contacts
+ keys:
+ - segment_id
+ lists_list_id:
+ - table: contacts
+ keys:
+ - lists
+ - table: lists
+ keys:
+ - list_id
+ - table: lists_contacts
+ keys:
+ - list_id
+tables:
+- table-name: contacts
+ join:
+ - table-name: lists_contacts
+ keys:
+ - key: contact_id
+ foreign-key: contact_id
+ - key: lists
+ foreign-key: list_id
+ - table-name: smart_segments_contacts
+ keys:
+ - key: contact_id
+ foreign-key: contact_id
+ - table-name: lists
+ keys:
+ - key: lists
+ foreign-key: list_id
+- table-name: lists_contacts
+ join:
+ - table-name: contacts
+ keys:
+ - key: contact_id
+ foreign-key: contact_id
+ - key: list_id
+ foreign-key: lists
+ - table-name: smart_segments_contacts
+ keys:
+ - key: contact_id
+ foreign-key: contact_id
+ - table-name: lists
+ keys:
+ - key: list_id
+ foreign-key: list_id
+- table-name: smart_segments_contacts
+ join:
+ - table-name: contacts
+ keys:
+ - key: contact_id
+ foreign-key: contact_id
+ - table-name: lists_contacts
+ keys:
+ - key: contact_id
+ foreign-key: contact_id
+ - table-name: smart_segments
+ keys:
+ - key: segment_id
+ foreign-key: segment_id
+- table-name: smart_segments
+ join:
+ - table-name: smart_segments_contacts
+ keys:
+ - key: segment_id
+ foreign-key: segment_id
+- table-name: lists
+ join:
+ - table-name: contacts
+ keys:
+ - key: list_id
+ foreign-key: lists
+ - table-name: lists_contacts
+ keys:
+ - key: list_id
+ foreign-key: list_id
diff --git a/_data/taps/schemas/autopilot/v1/autopilot-v1-tables.yml b/_data/taps/schemas/autopilot/v1/autopilot-v1-tables.yml
new file mode 100644
index 000000000..aaee332bd
--- /dev/null
+++ b/_data/taps/schemas/autopilot/v1/autopilot-v1-tables.yml
@@ -0,0 +1,67 @@
+tap: autopilot
+version: '1'
+tables:
+- name: contacts
+ description: 'The `contacts` table contains info about the contacts in your Autopilot
+ account.
+
+
+ Any custom fields associated with contacts will also be replicated.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-autopilot/blob/master/tap_autopilot/schemas/contacts.json
+ api-method: http://docs.autopilot.apiary.io/#reference/api-methods/get-all-contacts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: contact_id
+ replication-key: updated_at
+- name: lists
+ description: 'The `lists` table contains info about the available lists in your
+ Autopilot account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-autopilot/blob/master/tap_autopilot/schemas/lists.json
+ api-method: http://docs.autopilot.apiary.io/#reference/api-methods/lists/get-list-of-lists
+ table-details:
+ replication-method: Full Table
+ primary-key: list_id
+- name: lists_contacts
+ description: 'The `lists_contacts` table contains list and contact ID pairs, allowing
+ you to create a list of all the contacts that belong to a given {{ integration.display_name
+ }} list.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-autopilot/blob/master/tap_autopilot/schemas/lists_contacts.json
+ api-method: http://docs.autopilot.apiary.io/#reference/api-methods/get-contacts-on-list/get-contacts-on-list
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - list_id
+ - contact_id
+- name: smart_segments
+ description: 'The `smart_segments` table contains info about the smart segments
+ in your Autopilot account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-autopilot/blob/master/tap_autopilot/schemas/smart_segments.json
+ api-method: http://docs.autopilot.apiary.io/#reference/api-methods/smart-segments/get-list-of-smart-segments
+ table-details:
+ replication-method: Full Table
+ primary-key: segment_id
+- name: smart_segments_contacts
+ description: 'The `smart_segments_contacts` table contains segment and contact pairs,
+ or the segments your contacts are associated with.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-autopilot/blob/master/tap_autopilot/schemas/smart_segments_contacts.json
+ api-method: http://docs.autopilot.apiary.io/#reference/api-methods/get-contacts-on-smart-segment/get-contacts-on-smart-segment
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - segment_id
+ - contact_id
diff --git a/_data/taps/schemas/autopilot/v1/json/contacts.json b/_data/taps/schemas/autopilot/v1/json/contacts.json
new file mode 100644
index 000000000..01f1e4076
--- /dev/null
+++ b/_data/taps/schemas/autopilot/v1/json/contacts.json
@@ -0,0 +1,379 @@
+{
+ "properties": {
+ "anywhere_form_submits": {
+ "items": {
+ "properties": {
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "anywhere_page_visits": {
+ "items": {
+ "properties": {
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "anywhere_utm": {
+ "items": {
+ "properties": {
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company_priority": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "contact_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_conversion_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_visit_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lead_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lists": {
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "mail_bounced": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "mail_clicked": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "mail_complained": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "mail_hardbounced": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "mail_opened": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "mail_received": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "mail_unsubscribed": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "mailing_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mailing_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "salutation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "twitter": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/autopilot/v1/json/lists.json b/_data/taps/schemas/autopilot/v1/json/lists.json
new file mode 100644
index 000000000..93cfd6d94
--- /dev/null
+++ b/_data/taps/schemas/autopilot/v1/json/lists.json
@@ -0,0 +1,17 @@
+{
+ "properties": {
+ "list_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/autopilot/v1/json/lists_contacts.json b/_data/taps/schemas/autopilot/v1/json/lists_contacts.json
new file mode 100644
index 000000000..a4e7d6574
--- /dev/null
+++ b/_data/taps/schemas/autopilot/v1/json/lists_contacts.json
@@ -0,0 +1,17 @@
+{
+ "properties": {
+ "contact_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "list_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/autopilot/v1/json/smart_segments.json b/_data/taps/schemas/autopilot/v1/json/smart_segments.json
new file mode 100644
index 000000000..09e8cca51
--- /dev/null
+++ b/_data/taps/schemas/autopilot/v1/json/smart_segments.json
@@ -0,0 +1,17 @@
+{
+ "properties": {
+ "segment_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/autopilot/v1/json/smart_segments_contacts.json b/_data/taps/schemas/autopilot/v1/json/smart_segments_contacts.json
new file mode 100644
index 000000000..5749a3ce7
--- /dev/null
+++ b/_data/taps/schemas/autopilot/v1/json/smart_segments_contacts.json
@@ -0,0 +1,17 @@
+{
+ "properties": {
+ "contact_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "segment_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bigcommerce/v1/bigcommerce-v1-foreign-keys.yml b/_data/taps/schemas/bigcommerce/v1/bigcommerce-v1-foreign-keys.yml
new file mode 100644
index 000000000..2515be03b
--- /dev/null
+++ b/_data/taps/schemas/bigcommerce/v1/bigcommerce-v1-foreign-keys.yml
@@ -0,0 +1,94 @@
+tap: bigcommerce
+version: '1'
+keys:
+ coupons_:
+ - table: coupons
+ keys:
+ - id
+ - table: orders
+ keys:
+ - coupons.coupon_id
+ - products.applied_discounts.id
+ customers_customer_id:
+ - table: customers
+ keys:
+ - id
+ - table: orders
+ keys:
+ - customer_id
+ products_product_id:
+ - table: products
+ keys:
+ - id
+ - images.product_id
+ - related_products.items
+ - variants.product_id
+ - table: orders
+ keys:
+ - products.product_id
+ - products.parent_order_product_id
+tables:
+- table-name: coupons
+ join:
+ - table-name: orders
+ keys:
+ - key: id
+ foreign-key: coupons.coupon_id
+ - key: id
+ foreign-key: products.applied_discounts.id
+- table-name: orders
+ join:
+ - table-name: coupons
+ keys:
+ - key: coupons.coupon_id
+ foreign-key: id
+ - key: products.applied_discounts.id
+ foreign-key: id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: id
+ - table-name: products
+ keys:
+ - key: products.product_id
+ foreign-key: id
+ - key: products.parent_order_product_id
+ foreign-key: id
+ - key: products.product_id
+ foreign-key: images.product_id
+ - key: products.parent_order_product_id
+ foreign-key: images.product_id
+ - key: products.product_id
+ foreign-key: related_products.items
+ - key: products.parent_order_product_id
+ foreign-key: related_products.items
+ - key: products.product_id
+ foreign-key: variants.product_id
+ - key: products.parent_order_product_id
+ foreign-key: variants.product_id
+- table-name: customers
+ join:
+ - table-name: orders
+ keys:
+ - key: id
+ foreign-key: customer_id
+- table-name: products
+ join:
+ - table-name: orders
+ keys:
+ - key: id
+ foreign-key: products.product_id
+ - key: images.product_id
+ foreign-key: products.product_id
+ - key: related_products.items
+ foreign-key: products.product_id
+ - key: variants.product_id
+ foreign-key: products.product_id
+ - key: id
+ foreign-key: products.parent_order_product_id
+ - key: images.product_id
+ foreign-key: products.parent_order_product_id
+ - key: related_products.items
+ foreign-key: products.parent_order_product_id
+ - key: variants.product_id
+ foreign-key: products.parent_order_product_id
diff --git a/_data/taps/schemas/bigcommerce/v1/bigcommerce-v1-tables.yml b/_data/taps/schemas/bigcommerce/v1/bigcommerce-v1-tables.yml
new file mode 100644
index 000000000..0f095909a
--- /dev/null
+++ b/_data/taps/schemas/bigcommerce/v1/bigcommerce-v1-tables.yml
@@ -0,0 +1,69 @@
+tap: bigcommerce
+version: '1'
+tables:
+- name: coupons
+ description: 'The `{{ table.name }}` table contains info about the coupons in your
+ {{ integration.display_name }} store.
+
+
+ {% capture replication-tip %}
+
+ This table uses Full Table Replication, which means all records will be replicated
+ during every replication job.
+
+
+ To avoid re-replicating unnecessary data, create a second {{ integration.display_name
+ }} integration in your Stitch account (you can even use the same {{ integration.display_name
+ }} API credentials) and set the integration to replicate every 12 or 24 hours.
+
+ {% endcapture %}
+
+
+ {% include tip.html content=replication-tip %}
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-bigcommerce/blob/master/tap_bigcommerce/schemas/coupons.json
+ api-method: https://developer.bigcommerce.com/api-reference/marketing/marketing-api/coupons/getallcoupons
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: customers
+ description: 'The `{{ table.name }}` table contains info about the customers in
+ your {{ integration.display_name }} store.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-bigcommerce/blob/master/tap_bigcommerce/schemas/customers.json
+ api-method: https://developer.bigcommerce.com/api-reference/customer-subscribers/customers-api/customers/getallcustomers
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: date_modified
+- name: products
+ description: 'The `{{ table.name }}` table contains info about the products in your
+ {{ integration.display_name }} store.
+
+
+ **Note**: During the initial replication job for a {{ integration.display_name
+ }} integration, all products will be replicated. On subsequent replication jobs,
+ only new and updated product records will be replicated.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-bigcommerce/blob/master/tap_bigcommerce/schemas/products.json
+ api-method: https://developer.bigcommerce.com/api-reference/catalog/catalog-api/products/getproducts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: date_modified
+- name: orders
+ description: The `{{ table.name }}` table contains info about the orders in your
+ {{ integration.display_name }} store.
+ links:
+ singer-schema: https://github.com/singer-io/tap-bigcommerce/blob/master/tap_bigcommerce/schemas/orders.json
+ api-method: https://developer.bigcommerce.com/docs/rest-management/orders#get-all-orders
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: date_modified
diff --git a/_data/taps/schemas/bigcommerce/v1/json/coupons.json b/_data/taps/schemas/bigcommerce/v1/json/coupons.json
new file mode 100644
index 000000000..c1e071413
--- /dev/null
+++ b/_data/taps/schemas/bigcommerce/v1/json/coupons.json
@@ -0,0 +1,141 @@
+{
+ "additionalProperties": false,
+ "name": "coupons",
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "applies_to": {
+ "additionalProperties": false,
+ "properties": {
+ "entity": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "ids": {
+ "items": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "code": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "expires": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "max_uses": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "max_uses_per_customer": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "min_purchase": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "num_uses": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "restricted_to": {
+ "items": {
+ "properties": {
+ "countries": {
+ "items": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "shipping_methods": {
+ "items": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "type": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bigcommerce/v1/json/customers.json b/_data/taps/schemas/bigcommerce/v1/json/customers.json
new file mode 100644
index 000000000..8534fd2dd
--- /dev/null
+++ b/_data/taps/schemas/bigcommerce/v1/json/customers.json
@@ -0,0 +1,121 @@
+{
+ "additionalProperties": false,
+ "name": "customers",
+ "properties": {
+ "accepts_marketing": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "company": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "customer_group_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "date_modified": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "email": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "form_fields": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "notes": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "registration_ip_address": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "reset_pass_on_login": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "store_credit": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_exempt_category": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bigcommerce/v1/json/orders.json b/_data/taps/schemas/bigcommerce/v1/json/orders.json
new file mode 100644
index 000000000..9ed560577
--- /dev/null
+++ b/_data/taps/schemas/bigcommerce/v1/json/orders.json
@@ -0,0 +1,1166 @@
+{
+ "additionalProperties": false,
+ "name": "orders",
+ "properties": {
+ "base_handling_cost": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "base_shipping_cost": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "base_wrapping_cost": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "billing_address": {
+ "additionalProperties": false,
+ "properties": {
+ "city": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "company": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "country": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "country_iso2": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "email": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "form_fields": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "state": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "street_1": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "street_2": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "zip": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "cart_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "channel_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "coupon_discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "coupons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "code": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "coupon_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "type": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "currency_exchange_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "currency_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "custom_status": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "customer_message": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "date_modified": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "date_shipped": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "default_currency_code": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "default_currency_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "ebay_order_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "external_merchant_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "external_source": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "form_fields": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "geoip_country": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "geoip_country_iso2": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "gift_certificate_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "handling_cost_ex_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "handling_cost_inc_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "handling_cost_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "handling_cost_tax_class_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "ip_address": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "is_email_opt_in": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "items_shipped": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "items_total": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "order_is_digital": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "order_source": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "payment_method": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "payment_provider_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "payment_status": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "products": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "applied_discounts": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "code": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "base_cost_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "base_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "base_total": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "base_wrapping_cost": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "bin_picking_number": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "cost_price_ex_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_price_inc_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_price_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "depth": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "ebay_item_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "ebay_transaction_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "event_date": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "event_name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "integer",
+ "string",
+ "null"
+ ]
+ },
+ "fixed_shipping_cost": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "height": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "is_bundled_product": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "is_refunded": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "option_set_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "order_address_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "parent_order_product_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "price_ex_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "price_inc_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "price_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "product_options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "display_name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "display_style": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "display_value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "option_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "order_product_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "product_option_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "type": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "quantity_refunded": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "quantity_shipped": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "refund_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "return_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "sku": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "total_ex_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_inc_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "type": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "weight": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "width": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "wrapping_cost_ex_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "wrapping_cost_inc_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "wrapping_cost_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "wrapping_message": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "wrapping_name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "refunded_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "shipping_address_count": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "shipping_addresses": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "base_cost": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "base_handling_cost": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "city": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "company": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "cost_ex_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_inc_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_tax_class_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "country": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "country_iso2": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "email": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "form_fields": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "handling_cost_ex_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "handling_cost_inc_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "handling_cost_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "handling_cost_tax_class_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "items_shipped": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "items_total": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "shipping_method": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "shipping_zone_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "shipping_zone_name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "state": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "street_1": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "street_2": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "zip": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "shipping_cost_ex_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "shipping_cost_inc_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "shipping_cost_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "shipping_cost_tax_class_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "staff_notes": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "status": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "status_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "store_credit_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "subtotal_ex_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "subtotal_inc_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "subtotal_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_provider_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "total_ex_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_inc_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "wrapping_cost_ex_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "wrapping_cost_inc_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "wrapping_cost_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "wrapping_cost_tax_class_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bigcommerce/v1/json/products.json b/_data/taps/schemas/bigcommerce/v1/json/products.json
new file mode 100644
index 000000000..8eb4147ed
--- /dev/null
+++ b/_data/taps/schemas/bigcommerce/v1/json/products.json
@@ -0,0 +1,815 @@
+{
+ "name": "products",
+ "properties": {
+ "availability": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "availability_description": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "base_variant_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "bin_picking_number": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "brand_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "brand_name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "bulk_pricing_rules": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "quantity_max": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "quantity_min": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "type": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "calculated_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "categories": {
+ "items": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "type": "array"
+ },
+ "condition": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "cost_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "custom_fields": {
+ "properties": {
+ "id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "custom_url": {
+ "properties": {
+ "is_customized": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "url": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "date_modified": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "depth": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "description": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "fixed_cost_shipping_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "gift_wrapping_options_list": {
+ "items": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "gift_wrapping_options_type": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "gtin": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "images": {
+ "items": {
+ "properties": {
+ "date_modified": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "description": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "image_file": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "is_thumbnail": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "sort_order": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "url_standard": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "url_thumbnail": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "url_tiny": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "url_zoom": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "inventory_level": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "inventory_tracking": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "inventory_warning_level": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "is_condition_shown": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "is_featured": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "is_free_shipping": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "is_preorder_only": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "is_price_hidden": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "is_visible": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "layout_file": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "map_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "meta_description": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "meta_keywords": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "mpn": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "open_graph_description": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "open_graph_title": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "open_graph_type": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "open_graph_use_image": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "open_graph_use_meta_description": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "open_graph_use_product_name": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "option_set_display": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "option_set_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "order_quantity_maximum": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "order_quantity_minimum": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "page_title": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "preorder_message": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "preorder_release_date": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "price_hidden_label": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "product_tax_code": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "related_products": {
+ "items": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "type": "array"
+ },
+ "retail_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "reviews_count": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "reviews_rating_sum": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "sale_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "search_keywords": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "sku": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "sort_order": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "tax_class_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "total_sold": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "type": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "upc": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "variants": {
+ "items": {
+ "properties": {
+ "bin_picking_number": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "calculated_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "depth": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fixed_cost_shipping_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "image_url": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "inventory_level": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "inventory_warning_level": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "is_free_shipping": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "map_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "option_values": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "label": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "option_display_name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "option_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "purchasing_disabled": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "purchasing_disabled_message": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "sale_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "sku": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "sku_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "upc": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "weight": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "videos": {
+ "items": {
+ "properties": {
+ "description": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "length": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "sort_order": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "title": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "video_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "view_count": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "warranty": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "weight": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bing-ads/v1/bing-ads-v1-foreign-keys.yml b/_data/taps/schemas/bing-ads/v1/bing-ads-v1-foreign-keys.yml
new file mode 100644
index 000000000..4f173a789
--- /dev/null
+++ b/_data/taps/schemas/bing-ads/v1/bing-ads-v1-foreign-keys.yml
@@ -0,0 +1,513 @@
+tap: bing-ads
+version: '1'
+keys:
+ accounts_accountId:
+ - table: accounts
+ keys:
+ - id
+ - table: ad_performance_report
+ keys:
+ - accountId
+ - table: adgroup_performance_report
+ keys:
+ - accountId
+ - table: age_gender_performance_report
+ keys:
+ - accountId
+ - table: campaign_performance_report
+ keys:
+ - accountId
+ - table: geographic_performance_report
+ keys:
+ - accountId
+ - table: goals_and_funnels_report
+ keys:
+ - accountId
+ - table: keyword_performance_report
+ keys:
+ - accountId
+ - table: search_query_performance_report
+ keys:
+ - accountId
+ ads_adId:
+ - table: ads
+ keys:
+ - id
+ ad_groups_adGroupId:
+ - table: ad_groups
+ keys:
+ - id
+ - table: ad_performance_report
+ keys:
+ - adGroupId
+ - table: adgroup_performance_report
+ keys:
+ - adGroupId
+ - table: age_gender_performance_report
+ keys:
+ - adGroupId
+ - table: geographic_performance_report
+ keys:
+ - adGroupId
+ - table: goals_and_funnels_report
+ keys:
+ - adGroupId
+ - table: keyword_performance_report
+ keys:
+ - adGroupId
+ - table: search_query_performance_report
+ keys:
+ - adGroupId
+ campaigns_campaignId:
+ - table: campaigns
+ keys:
+ - id
+tables:
+- table-name: accounts
+ join:
+ - table-name: ad_performance_report
+ keys:
+ - key: id
+ foreign-key: accountId
+ - table-name: adgroup_performance_report
+ keys:
+ - key: id
+ foreign-key: accountId
+ - table-name: age_gender_performance_report
+ keys:
+ - key: id
+ foreign-key: accountId
+ - table-name: campaign_performance_report
+ keys:
+ - key: id
+ foreign-key: accountId
+ - table-name: geographic_performance_report
+ keys:
+ - key: id
+ foreign-key: accountId
+ - table-name: goals_and_funnels_report
+ keys:
+ - key: id
+ foreign-key: accountId
+ - table-name: keyword_performance_report
+ keys:
+ - key: id
+ foreign-key: accountId
+ - table-name: search_query_performance_report
+ keys:
+ - key: id
+ foreign-key: accountId
+- table-name: ad_performance_report
+ join:
+ - table-name: accounts
+ keys:
+ - key: accountId
+ foreign-key: id
+ - table-name: adgroup_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: age_gender_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: campaign_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - table-name: geographic_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: goals_and_funnels_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: keyword_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: search_query_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: ad_groups
+ keys:
+ - key: adGroupId
+ foreign-key: id
+- table-name: adgroup_performance_report
+ join:
+ - table-name: accounts
+ keys:
+ - key: accountId
+ foreign-key: id
+ - table-name: ad_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: age_gender_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: campaign_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - table-name: geographic_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: goals_and_funnels_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: keyword_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: search_query_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: ad_groups
+ keys:
+ - key: adGroupId
+ foreign-key: id
+- table-name: age_gender_performance_report
+ join:
+ - table-name: accounts
+ keys:
+ - key: accountId
+ foreign-key: id
+ - table-name: ad_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: adgroup_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: campaign_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - table-name: geographic_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: goals_and_funnels_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: keyword_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: search_query_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: ad_groups
+ keys:
+ - key: adGroupId
+ foreign-key: id
+- table-name: campaign_performance_report
+ join:
+ - table-name: accounts
+ keys:
+ - key: accountId
+ foreign-key: id
+ - table-name: ad_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - table-name: adgroup_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - table-name: age_gender_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - table-name: geographic_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - table-name: goals_and_funnels_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - table-name: keyword_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - table-name: search_query_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+- table-name: geographic_performance_report
+ join:
+ - table-name: accounts
+ keys:
+ - key: accountId
+ foreign-key: id
+ - table-name: ad_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: adgroup_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: age_gender_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: campaign_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - table-name: goals_and_funnels_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: keyword_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: search_query_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: ad_groups
+ keys:
+ - key: adGroupId
+ foreign-key: id
+- table-name: goals_and_funnels_report
+ join:
+ - table-name: accounts
+ keys:
+ - key: accountId
+ foreign-key: id
+ - table-name: ad_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: adgroup_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: age_gender_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: campaign_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - table-name: geographic_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: keyword_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: search_query_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: ad_groups
+ keys:
+ - key: adGroupId
+ foreign-key: id
+- table-name: keyword_performance_report
+ join:
+ - table-name: accounts
+ keys:
+ - key: accountId
+ foreign-key: id
+ - table-name: ad_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: adgroup_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: age_gender_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: campaign_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - table-name: geographic_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: goals_and_funnels_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: search_query_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: ad_groups
+ keys:
+ - key: adGroupId
+ foreign-key: id
+- table-name: search_query_performance_report
+ join:
+ - table-name: accounts
+ keys:
+ - key: accountId
+ foreign-key: id
+ - table-name: ad_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: adgroup_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: age_gender_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: campaign_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - table-name: geographic_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: goals_and_funnels_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: keyword_performance_report
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: adGroupId
+ foreign-key: adGroupId
+ - table-name: ad_groups
+ keys:
+ - key: adGroupId
+ foreign-key: id
+- table-name: ad_groups
+ join:
+ - table-name: ad_performance_report
+ keys:
+ - key: id
+ foreign-key: adGroupId
+ - table-name: adgroup_performance_report
+ keys:
+ - key: id
+ foreign-key: adGroupId
+ - table-name: age_gender_performance_report
+ keys:
+ - key: id
+ foreign-key: adGroupId
+ - table-name: geographic_performance_report
+ keys:
+ - key: id
+ foreign-key: adGroupId
+ - table-name: goals_and_funnels_report
+ keys:
+ - key: id
+ foreign-key: adGroupId
+ - table-name: keyword_performance_report
+ keys:
+ - key: id
+ foreign-key: adGroupId
+ - table-name: search_query_performance_report
+ keys:
+ - key: id
+ foreign-key: adGroupId
diff --git a/_data/taps/schemas/bing-ads/v1/bing-ads-v1-tables.yml b/_data/taps/schemas/bing-ads/v1/bing-ads-v1-tables.yml
new file mode 100644
index 000000000..4f16aaf55
--- /dev/null
+++ b/_data/taps/schemas/bing-ads/v1/bing-ads-v1-tables.yml
@@ -0,0 +1,228 @@
+tap: bing-ads
+version: '1'
+tap-repo-schemas: false
+tables:
+- name: accounts
+ description: 'The `accounts` table contains high-level information about each of
+ the ad accounts you selected during setup. Each row in this table corresponds
+ to a single account.
+
+
+ [This is a **Core Object** table](#replication).
+
+ '
+ links:
+ api-method: https://docs.microsoft.com/en-us/bingads/customer-management-service/account
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - id
+ - lastModifiedTime
+ replication-key: lastModifiedTime
+- name: adgroup_performance_report
+ description: 'The `adgroup_performance_report` table contains performance data for
+ ad groups, aggregated by day.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://docs.microsoft.com/en-us/bingads/reporting-service/adgroupperformancereportcolumn#values
+ table-details:
+ replication-method: Append-Only (Incremental)
+ primary-keys:
+ - accountId
+ - _sdc_report_datetime
+ - gregorianDate
+ replication-key: gregorianDate
+- name: ads
+ description: 'The `ads` table contains info about the following ad types:
+
+
+ - `AppInstall`
+
+ - `DynamicSearch`
+
+ - `ExpandedText`
+
+ - `Product`
+
+ - `Text`
+
+ - `Image`
+
+
+ [This is a **Core Object** table](#replication).
+
+ '
+ links:
+ doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/ad
+ api-method: https://docs.microsoft.com/en-us/bingads/campaign-management-service/getadsbyadgroupid
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: ad_groups
+ description: 'The `ad_groups` table contains info about the ad groups associated
+ with the campaigns in your Bing Ads account.
+
+
+ [This is a **Core Object** table](#replication).
+
+ '
+ links:
+ doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/adgroup
+ api-method: https://docs.microsoft.com/en-us/bingads/campaign-management-service/getadgroupsbycampaignid
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: ad_performance_report
+ description: 'The `ad_performance_report` table contains performance info about
+ ads, including clicks and conversions. This data can be used to identify and improve
+ under-performing ads.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://docs.microsoft.com/en-us/bingads/reporting-service/adperformancereportcolumn#values
+ table-details:
+ replication-method: Append-Only (Incremental)
+ primary-keys:
+ - accountId
+ - _sdc_report_datetime
+ - gregorianDate
+ replication-key: gregorianDate
+- name: age_gender_performance_report
+ description: 'The `age_gender_performance_report` table contains info about the
+ age and gender demographics of people interacting with your campaigns and ad groups.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://docs.microsoft.com/en-us/bingads/reporting-service/agegenderdemographicreportcolumn#values
+ table-details:
+ replication-method: Append-Only (Incremental)
+ primary-keys:
+ - accountId
+ - _sdc_report_datetime
+ - gregorianDate
+ replication-key: gregorianDate
+- name: campaigns
+ description: 'The `campaigns` table contains info about the campaigns in your Bing
+ Ads account.
+
+
+ [This is a **Core Object** table](#replication).
+
+ '
+ links:
+ doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/campaign
+ api-method: https://docs.microsoft.com/en-us/bingads/campaign-management-service/getcampaignsbyaccountid
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: campaign_performance_report
+ description: 'The `campaign_performance_report` table contains performance data
+ for campaigns, aggregated by day..
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://docs.microsoft.com/en-us/bingads/reporting-service/campaignperformancereportcolumn#values
+ table-details:
+ replication-method: Append-Only (Incremental)
+ primary-keys:
+ - accountId
+ - _sdc_report_datetime
+ - gregorianDate
+ replication-key: gregorianDate
+- name: geographic_performance_report
+ description: 'The `geographic_performance_report` table contains info about the
+ physical locations of people searching for an ad or the locations people are searching
+ for. This data can be used to validate or improve location targeting strategies.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://docs.microsoft.com/en-us/bingads/reporting-service/geographicperformancereportcolumn#values
+ table-details:
+ replication-method: Append-Only (Incremental)
+ primary-keys:
+ - accountId
+ - _sdc_report_datetime
+ - gregorianDate
+ replication-key: gregorianDate
+- name: goals_and_funnels_report
+ description: 'The `goals_and_funnels_report` table contains information about your
+ audience''s progression through your conversion funnel. Use this report to determine
+ the point at which users leave the funnel, thereby allowing you to improve and
+ increase conversion.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://docs.microsoft.com/en-us/bingads/reporting-service/goalsandfunnelsreportcolumn
+ table-details:
+ replication-method: Append-Only (Incremental)
+ primary-keys:
+ - accountId
+ - _sdc_report_datetime
+ - gregorianDate
+ replication-key: gregorianDate
+- name: keyword_performance_report
+ description: 'The `keyword_performance_report` table contains performance data about
+ keywords.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://docs.microsoft.com/en-us/bingads/reporting-service/keywordperformancereportcolumn#values
+ table-details:
+ replication-method: Append-Only (Incremental)
+ primary-keys:
+ - accountId
+ - _sdc_report_datetime
+ - gregorianDate
+ replication-key: gregorianDate
+- name: search_query_performance_report
+ description: 'The `search_query_performance_report` table contains performance data
+ for search terms that resulted in a significant number of clicks in the last 30
+ days. As this data may change over time, use the `keyword_performance_report`
+ table to analyze the overall performance of keywords.
+
+
+ **Note**: This data in this table is not applicable to Bing Shopping campaigns.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://docs.microsoft.com/en-us/bingads/reporting-service/searchqueryperformancereportcolumn#values
+ table-details:
+ replication-method: Append-Only (Incremental)
+ primary-keys:
+ - accountId
+ - _sdc_report_datetime
+ - gregorianDate
+ replication-key: gregorianDate
diff --git a/_data/taps/schemas/bing-ads/v1/json/accounts.json b/_data/taps/schemas/bing-ads/v1/json/accounts.json
new file mode 100644
index 000000000..d921f65e0
--- /dev/null
+++ b/_data/taps/schemas/bing-ads/v1/json/accounts.json
@@ -0,0 +1,123 @@
+{
+ "properties": {
+ "accountFinancialStatus": {
+ "type": [
+ "string"
+ ]
+ },
+ "accountLifeCycleStatus": {
+ "type": [
+ "string"
+ ]
+ },
+ "accountType": {
+ "type": [
+ "string"
+ ]
+ },
+ "billToCustomerId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "countryCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "currencyType": {
+ "type": [
+ "string"
+ ]
+ },
+ "forwardCompatibilityMap": {
+ "properties": {
+ "keyValuePairOfStringString": {
+ "properties": {
+ "key": {
+ "type": [
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "language": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastModifiedByUserId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lastModifiedTime": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "string"
+ ]
+ },
+ "parentCustomerId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "pauseReason": {
+ "type": [
+ "integer"
+ ]
+ },
+ "paymentMethodId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "paymentMethodtype": {
+ "type": [
+ "string"
+ ]
+ },
+ "primaryUserId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "timestamp"
+ ]
+ },
+ "timezone": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bing-ads/v1/json/ad_groups.json b/_data/taps/schemas/bing-ads/v1/json/ad_groups.json
new file mode 100644
index 000000000..48958f685
--- /dev/null
+++ b/_data/taps/schemas/bing-ads/v1/json/ad_groups.json
@@ -0,0 +1,125 @@
+{
+ "properties": {
+ "adDistribution": {
+ "type": [
+ "string"
+ ]
+ },
+ "adRotation": {
+ "type": [
+ "string"
+ ]
+ },
+ "biddingScheme": {
+ "type": [
+ "string"
+ ]
+ },
+ "contentMatchBid": {
+ "type": [
+ "number"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "forwardCompatibilityMap": {
+ "properties": {
+ "keyValuePairOfStringString": {
+ "properties": {
+ "key": {
+ "type": [
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "language": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nativeBidAdjustment": {
+ "type": [
+ "integer"
+ ]
+ },
+ "network": {
+ "type": [
+ "string"
+ ]
+ },
+ "pricingModel": {
+ "type": [
+ "string"
+ ]
+ },
+ "remarketingTargetingSetting": {
+ "type": [
+ "string"
+ ]
+ },
+ "searchBid": {
+ "type": [
+ "number"
+ ]
+ },
+ "settings": {
+ "properties": {
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "trackingUrlTemplate": {
+ "type": [
+ "string"
+ ]
+ },
+ "urlCustomParameters": {
+ "type": [
+ "array"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bing-ads/v1/json/ad_performance_report.json b/_data/taps/schemas/bing-ads/v1/json/ad_performance_report.json
new file mode 100644
index 000000000..38292cbea
--- /dev/null
+++ b/_data/taps/schemas/bing-ads/v1/json/ad_performance_report.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "adGroupId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "adId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaignId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gregorianDate": {
+ "type": [
+ "date"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bing-ads/v1/json/adgroup_performance_report.json b/_data/taps/schemas/bing-ads/v1/json/adgroup_performance_report.json
new file mode 100644
index 000000000..e2e1fa050
--- /dev/null
+++ b/_data/taps/schemas/bing-ads/v1/json/adgroup_performance_report.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "adGroupId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaignId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gregorianDate": {
+ "type": [
+ "date"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bing-ads/v1/json/ads.json b/_data/taps/schemas/bing-ads/v1/json/ads.json
new file mode 100644
index 000000000..cfe951257
--- /dev/null
+++ b/_data/taps/schemas/bing-ads/v1/json/ads.json
@@ -0,0 +1,125 @@
+{
+ "properties": {
+ "adFormatPreference": {
+ "type": [
+ "string"
+ ]
+ },
+ "devicePreference": {
+ "type": [
+ "integer"
+ ]
+ },
+ "editorialStatus": {
+ "type": [
+ "string"
+ ]
+ },
+ "finalAppUrls": {
+ "properties": {
+ "string": {
+ "properties": {
+ "value": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "string"
+ ]
+ },
+ "finalMobileUrls": {
+ "properties": {
+ "string": {
+ "properties": {
+ "value": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "finalUrls": {
+ "properties": {
+ "string": {
+ "properties": {
+ "value": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "string"
+ ]
+ },
+ "forwardCompatibilityMap": {
+ "properties": {
+ "keyValuePairOfStringString": {
+ "properties": {
+ "key": {
+ "type": [
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "trackingUrlTemplate": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "urlCustomParameters": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bing-ads/v1/json/age_gender_performance_report.json b/_data/taps/schemas/bing-ads/v1/json/age_gender_performance_report.json
new file mode 100644
index 000000000..e2e1fa050
--- /dev/null
+++ b/_data/taps/schemas/bing-ads/v1/json/age_gender_performance_report.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "adGroupId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaignId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gregorianDate": {
+ "type": [
+ "date"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bing-ads/v1/json/campaign_performance_report.json b/_data/taps/schemas/bing-ads/v1/json/campaign_performance_report.json
new file mode 100644
index 000000000..d51ad7eb2
--- /dev/null
+++ b/_data/taps/schemas/bing-ads/v1/json/campaign_performance_report.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaignId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gregorianDate": {
+ "type": [
+ "date"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bing-ads/v1/json/campaigns.json b/_data/taps/schemas/bing-ads/v1/json/campaigns.json
new file mode 100644
index 000000000..cd1bf88ce
--- /dev/null
+++ b/_data/taps/schemas/bing-ads/v1/json/campaigns.json
@@ -0,0 +1,117 @@
+{
+ "properties": {
+ "biddingScheme": {
+ "properties": {
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "budgetId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "budgetType": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaignType": {
+ "type": [
+ "string"
+ ]
+ },
+ "dailyBudget": {
+ "type": [
+ "number"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "forwardCompatibilityMap": {
+ "properties": {
+ "keyValuePairOfStringString": {
+ "properties": {
+ "key": {
+ "type": [
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "languages": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nativeBidAdjustment": {
+ "type": [
+ "integer"
+ ]
+ },
+ "settings": {
+ "properties": {
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "string"
+ ]
+ },
+ "trackingUrlTemplate": {
+ "type": [
+ "string"
+ ]
+ },
+ "urlCustomParameters": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bing-ads/v1/json/geographic_performance_report.json b/_data/taps/schemas/bing-ads/v1/json/geographic_performance_report.json
new file mode 100644
index 000000000..e2e1fa050
--- /dev/null
+++ b/_data/taps/schemas/bing-ads/v1/json/geographic_performance_report.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "adGroupId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaignId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gregorianDate": {
+ "type": [
+ "date"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bing-ads/v1/json/goals_and_funnels_report.json b/_data/taps/schemas/bing-ads/v1/json/goals_and_funnels_report.json
new file mode 100644
index 000000000..e2e1fa050
--- /dev/null
+++ b/_data/taps/schemas/bing-ads/v1/json/goals_and_funnels_report.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "adGroupId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaignId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gregorianDate": {
+ "type": [
+ "date"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bing-ads/v1/json/keyword_performance_report.json b/_data/taps/schemas/bing-ads/v1/json/keyword_performance_report.json
new file mode 100644
index 000000000..e2e1fa050
--- /dev/null
+++ b/_data/taps/schemas/bing-ads/v1/json/keyword_performance_report.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "adGroupId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaignId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gregorianDate": {
+ "type": [
+ "date"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bing-ads/v1/json/search_query_performance_report.json b/_data/taps/schemas/bing-ads/v1/json/search_query_performance_report.json
new file mode 100644
index 000000000..e2e1fa050
--- /dev/null
+++ b/_data/taps/schemas/bing-ads/v1/json/search_query_performance_report.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "adGroupId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaignId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gregorianDate": {
+ "type": [
+ "date"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bing-ads/v2/bing-ads-v2-foreign-keys.yml b/_data/taps/schemas/bing-ads/v2/bing-ads-v2-foreign-keys.yml
new file mode 100644
index 000000000..97d10b50c
--- /dev/null
+++ b/_data/taps/schemas/bing-ads/v2/bing-ads-v2-foreign-keys.yml
@@ -0,0 +1,887 @@
+tap: bing-ads
+version: '2'
+keys:
+ accounts_AccountId:
+ - table: accounts
+ keys:
+ - Id
+ - table: ad_performance_report
+ keys:
+ - AccountId
+ - table: ad_group_performance_report
+ keys:
+ - AccountId
+ - table: age_gender_audience_report
+ keys:
+ - AccountId
+ - table: audience_performance_report
+ keys:
+ - AccountId
+ - table: campaign_performance_report
+ keys:
+ - AccountId
+ - table: geographic_performance_report
+ keys:
+ - AccountId
+ - table: goals_and_funnels_report
+ keys:
+ - AccountId
+ - table: keyword_performance_report
+ keys:
+ - AccountId
+ - table: search_query_performance_report
+ keys:
+ - AccountId
+ ads_AdId:
+ - table: ads
+ keys:
+ - Id
+ - table: ad_performance_report
+ keys:
+ - AdId
+ ad_groups_AdGroupId:
+ - table: ad_groups
+ keys:
+ - id
+ - table: ad_performance_report
+ keys:
+ - AdGroupId
+ - table: ad_group_performance_report
+ keys:
+ - adGroupId
+ - table: age_gender_audience_report
+ keys:
+ - AdGroupId
+ - table: audience_performance_report
+ keys:
+ - AdGroupId
+ - table: geographic_performance_report
+ keys:
+ - AdGroupId
+ - table: goals_and_funnels_report
+ keys:
+ - AdGroupId
+ - table: keyword_performance_report
+ keys:
+ - AdGroupId
+ - table: search_query_performance_report
+ keys:
+ - AdGroupId
+ campaigns_CampaignId:
+ - table: campaigns
+ keys:
+ - Id
+ - table: ad_performance_report
+ keys:
+ - CampaignId
+ - table: ad_group_performance_report
+ keys:
+ - campaignId
+ - table: age_gender_audience_report
+ keys:
+ - CampaignId
+ - table: audience_performance_report
+ keys:
+ - CampaignId
+ - table: campaign_performance_report
+ keys:
+ - CampaignId
+ - table: geographic_performance_report
+ keys:
+ - CampaignId
+ - table: goals_and_funnels_report
+ keys:
+ - CampaignId
+ - table: keyword_performance_report
+ keys:
+ - CampaignId
+ - table: search_query_performance_report
+ keys:
+ - CampaignId
+tables:
+- table-name: accounts
+ join:
+ - table-name: ad_performance_report
+ keys:
+ - key: Id
+ foreign-key: AccountId
+ - table-name: ad_group_performance_report
+ keys:
+ - key: Id
+ foreign-key: AccountId
+ - table-name: age_gender_audience_report
+ keys:
+ - key: Id
+ foreign-key: AccountId
+ - table-name: audience_performance_report
+ keys:
+ - key: Id
+ foreign-key: AccountId
+ - table-name: campaign_performance_report
+ keys:
+ - key: Id
+ foreign-key: AccountId
+ - table-name: geographic_performance_report
+ keys:
+ - key: Id
+ foreign-key: AccountId
+ - table-name: goals_and_funnels_report
+ keys:
+ - key: Id
+ foreign-key: AccountId
+ - table-name: keyword_performance_report
+ keys:
+ - key: Id
+ foreign-key: AccountId
+ - table-name: search_query_performance_report
+ keys:
+ - key: Id
+ foreign-key: AccountId
+- table-name: ad_performance_report
+ join:
+ - table-name: accounts
+ keys:
+ - key: AccountId
+ foreign-key: Id
+ - table-name: ad_group_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: adGroupId
+ - key: CampaignId
+ foreign-key: campaignId
+ - table-name: age_gender_audience_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: audience_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: campaign_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: geographic_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: goals_and_funnels_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: keyword_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: search_query_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: ads
+ keys:
+ - key: AdId
+ foreign-key: Id
+ - table-name: ad_groups
+ keys:
+ - key: AdGroupId
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: CampaignId
+ foreign-key: Id
+- table-name: ad_group_performance_report
+ join:
+ - table-name: accounts
+ keys:
+ - key: AccountId
+ foreign-key: Id
+ - table-name: ad_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: adGroupId
+ foreign-key: AdGroupId
+ - key: campaignId
+ foreign-key: CampaignId
+ - table-name: age_gender_audience_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: adGroupId
+ foreign-key: AdGroupId
+ - key: campaignId
+ foreign-key: CampaignId
+ - table-name: audience_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: adGroupId
+ foreign-key: AdGroupId
+ - key: campaignId
+ foreign-key: CampaignId
+ - table-name: campaign_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: campaignId
+ foreign-key: CampaignId
+ - table-name: geographic_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: adGroupId
+ foreign-key: AdGroupId
+ - key: campaignId
+ foreign-key: CampaignId
+ - table-name: goals_and_funnels_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: adGroupId
+ foreign-key: AdGroupId
+ - key: campaignId
+ foreign-key: CampaignId
+ - table-name: keyword_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: adGroupId
+ foreign-key: AdGroupId
+ - key: campaignId
+ foreign-key: CampaignId
+ - table-name: search_query_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: adGroupId
+ foreign-key: AdGroupId
+ - key: campaignId
+ foreign-key: CampaignId
+ - table-name: ad_groups
+ keys:
+ - key: adGroupId
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: campaignId
+ foreign-key: Id
+- table-name: age_gender_audience_report
+ join:
+ - table-name: accounts
+ keys:
+ - key: AccountId
+ foreign-key: Id
+ - table-name: ad_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: ad_group_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: adGroupId
+ - key: CampaignId
+ foreign-key: campaignId
+ - table-name: audience_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: campaign_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: geographic_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: goals_and_funnels_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: keyword_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: search_query_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: ad_groups
+ keys:
+ - key: AdGroupId
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: CampaignId
+ foreign-key: Id
+- table-name: audience_performance_report
+ join:
+ - table-name: accounts
+ keys:
+ - key: AccountId
+ foreign-key: Id
+ - table-name: ad_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: ad_group_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: adGroupId
+ - key: CampaignId
+ foreign-key: campaignId
+ - table-name: age_gender_audience_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: campaign_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: geographic_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: goals_and_funnels_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: keyword_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: search_query_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: ad_groups
+ keys:
+ - key: AdGroupId
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: CampaignId
+ foreign-key: Id
+- table-name: campaign_performance_report
+ join:
+ - table-name: accounts
+ keys:
+ - key: AccountId
+ foreign-key: Id
+ - table-name: ad_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: ad_group_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: CampaignId
+ foreign-key: campaignId
+ - table-name: age_gender_audience_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: audience_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: geographic_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: goals_and_funnels_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: keyword_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: search_query_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: campaigns
+ keys:
+ - key: CampaignId
+ foreign-key: Id
+- table-name: geographic_performance_report
+ join:
+ - table-name: accounts
+ keys:
+ - key: AccountId
+ foreign-key: Id
+ - table-name: ad_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: ad_group_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: adGroupId
+ - key: CampaignId
+ foreign-key: campaignId
+ - table-name: age_gender_audience_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: audience_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: campaign_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: goals_and_funnels_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: keyword_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: search_query_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: ad_groups
+ keys:
+ - key: AdGroupId
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: CampaignId
+ foreign-key: Id
+- table-name: goals_and_funnels_report
+ join:
+ - table-name: accounts
+ keys:
+ - key: AccountId
+ foreign-key: Id
+ - table-name: ad_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: ad_group_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: adGroupId
+ - key: CampaignId
+ foreign-key: campaignId
+ - table-name: age_gender_audience_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: audience_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: campaign_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: geographic_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: keyword_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: search_query_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: ad_groups
+ keys:
+ - key: AdGroupId
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: CampaignId
+ foreign-key: Id
+- table-name: keyword_performance_report
+ join:
+ - table-name: accounts
+ keys:
+ - key: AccountId
+ foreign-key: Id
+ - table-name: ad_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: ad_group_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: adGroupId
+ - key: CampaignId
+ foreign-key: campaignId
+ - table-name: age_gender_audience_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: audience_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: campaign_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: geographic_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: goals_and_funnels_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: search_query_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: ad_groups
+ keys:
+ - key: AdGroupId
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: CampaignId
+ foreign-key: Id
+- table-name: search_query_performance_report
+ join:
+ - table-name: accounts
+ keys:
+ - key: AccountId
+ foreign-key: Id
+ - table-name: ad_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: ad_group_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: adGroupId
+ - key: CampaignId
+ foreign-key: campaignId
+ - table-name: age_gender_audience_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: audience_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: campaign_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: geographic_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: goals_and_funnels_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: keyword_performance_report
+ keys:
+ - key: AccountId
+ foreign-key: AccountId
+ - key: AdGroupId
+ foreign-key: AdGroupId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - table-name: ad_groups
+ keys:
+ - key: AdGroupId
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: CampaignId
+ foreign-key: Id
+- table-name: ads
+ join:
+ - table-name: ad_performance_report
+ keys:
+ - key: Id
+ foreign-key: AdId
+- table-name: ad_groups
+ join:
+ - table-name: ad_performance_report
+ keys:
+ - key: id
+ foreign-key: AdGroupId
+ - table-name: ad_group_performance_report
+ keys:
+ - key: id
+ foreign-key: adGroupId
+ - table-name: age_gender_audience_report
+ keys:
+ - key: id
+ foreign-key: AdGroupId
+ - table-name: audience_performance_report
+ keys:
+ - key: id
+ foreign-key: AdGroupId
+ - table-name: geographic_performance_report
+ keys:
+ - key: id
+ foreign-key: AdGroupId
+ - table-name: goals_and_funnels_report
+ keys:
+ - key: id
+ foreign-key: AdGroupId
+ - table-name: keyword_performance_report
+ keys:
+ - key: id
+ foreign-key: AdGroupId
+ - table-name: search_query_performance_report
+ keys:
+ - key: id
+ foreign-key: AdGroupId
+- table-name: campaigns
+ join:
+ - table-name: ad_performance_report
+ keys:
+ - key: Id
+ foreign-key: CampaignId
+ - table-name: ad_group_performance_report
+ keys:
+ - key: Id
+ foreign-key: campaignId
+ - table-name: age_gender_audience_report
+ keys:
+ - key: Id
+ foreign-key: CampaignId
+ - table-name: audience_performance_report
+ keys:
+ - key: Id
+ foreign-key: CampaignId
+ - table-name: campaign_performance_report
+ keys:
+ - key: Id
+ foreign-key: CampaignId
+ - table-name: geographic_performance_report
+ keys:
+ - key: Id
+ foreign-key: CampaignId
+ - table-name: goals_and_funnels_report
+ keys:
+ - key: Id
+ foreign-key: CampaignId
+ - table-name: keyword_performance_report
+ keys:
+ - key: Id
+ foreign-key: CampaignId
+ - table-name: search_query_performance_report
+ keys:
+ - key: Id
+ foreign-key: CampaignId
diff --git a/_data/taps/schemas/bing-ads/v2/bing-ads-v2-tables.yml b/_data/taps/schemas/bing-ads/v2/bing-ads-v2-tables.yml
new file mode 100644
index 000000000..2b9f734b4
--- /dev/null
+++ b/_data/taps/schemas/bing-ads/v2/bing-ads-v2-tables.yml
@@ -0,0 +1,432 @@
+tap: bing-ads
+version: '2'
+tap-repo-schemas: false
+tables:
+- name: accounts
+ description: 'The `{{ table.name }}` table contains high-level information about
+ each of the ad accounts you selected during setup. Each row in this table corresponds
+ to a single account.
+
+
+ [This is a **Core Object** table](#replication).
+
+
+ #### Schema changes from Bing Ads v1 {#renamed-v1-columns}
+
+
+ In this version of Stitch''s {{ integration.display_name }} integration, the schema
+ of this table has changed. This was done to ensure consistency between the fields
+ in our integration and [the changes made by Microsoft to the Bing Ads API](https://docs.microsoft.com/en-us/bingads/guides/migration-guide?view=bingads-12#reporting-downloadedcolumns){:target="new}.
+
+
+ - `CurrencyType` is now `CurrencyCode`
+
+ - `AccountType` has been removed
+
+ - `CountryCode` has been removed
+
+ - `AutoTagType` has been added
+
+ - `BusinessAddress` has been added
+
+ - `SoldToPaymentInstrumentId` has been added
+
+ '
+ links:
+ doc-link: https://docs.microsoft.com/en-us/advertising/customer-management-service/getaccount?view=bingads-13
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - Id
+ - LastModifiedTime
+ replication-key: LastModifiedTime
+- name: ads
+ description: 'The `{{ table.name }}` table contains info about the following ad
+ types:
+
+
+ - `AppInstall`
+
+ - `DynamicSearch`
+
+ - `ExpandedText`
+
+ - `Product`
+
+ - `Text`
+
+ - `Image`
+
+
+ [This is a **Core Object** table](#replication).
+
+
+ #### Schema changes from Bing Ads v1 {#renamed-v1-columns}
+
+
+ In this version of Stitch''s {{ integration.display_name }} integration, the schema
+ of this table has changed. This was done to ensure consistency between the fields
+ in our integration and [the changes made by Microsoft to the Bing Ads API](https://docs.microsoft.com/en-us/bingads/guides/migration-guide?view=bingads-12#reporting-downloadedcolumns){:target="new}.
+
+
+ - `Domain` has been added
+
+ - `TextPart2` has been added
+
+ - `TitlePart3` has been added
+
+ '
+ links:
+ doc-link: https://docs.microsoft.com/en-us/advertising/campaign-management-service/getadsbyids?view=bingads-13
+ api-method: https://docs.microsoft.com/en-us/bingads/campaign-management-service/getadsbyadgroupid
+ table-details:
+ replication-method: Full Table
+ primary-key: Id
+- name: ad_groups
+ description: 'The `{{ table.name }}` table contains info about the ad groups associated
+ with the campaigns in your Bing Ads account.
+
+
+ [This is a **Core Object** table](#replication).
+
+
+ #### Schema changes from Bing Ads v1 {#renamed-v1-columns}
+
+
+ In this version of Stitch''s {{ integration.display_name }} integration, the schema
+ of this table has changed. This was done to ensure consistency between the fields
+ in our integration and [the changes made by Microsoft to the Bing Ads API](https://docs.microsoft.com/en-us/bingads/guides/migration-guide?view=bingads-12#reporting-downloadedcolumns){:target="new}.
+
+
+ - `AdDistribution` has been removed
+
+ - `ContentMatchBid` has been removed
+
+ - `NativeBidAdjustment` has been removed
+
+ - `PricingModel` has been removed
+
+ - `RemarketingTargetingSetting` has been removed
+
+ - `SearchBid` has been removed
+
+ - `AudienceAdsBidAdjustment` has been added
+
+ - `CpcBid` has been added
+
+ - Additional fields have been added to `BiddingScheme` and `Settings`
+
+ '
+ links:
+ doc-link: https://docs.microsoft.com/en-us/advertising/campaign-management-service/getadgroupsbyids?view=bingads-13
+ api-method: https://docs.microsoft.com/en-us/bingads/campaign-management-service/getadgroupsbycampaignid
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: ad_group_performance_report
+ description: 'The `{{ table.name }}` table contains performance data for ad groups,
+ aggregated by day.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+
+ #### Column compatibility
+
+
+ As per Microsoft''s attribute selection rules, some columns may be incompatible.
+ This means that you won''t be able to select certain combinations of columns in
+ Stitch. Refer to [Microsoft''s documentation](https://docs.microsoft.com/en-us/bingads/guides/reports?view=bingads-12#columnrestrictions){:target="new"}
+ for more info, and the specific column combinations for this table.
+
+
+ #### Columns renamed from Bing Ads v1 {#renamed-v1-columns}
+
+
+ In this version of Stitch''s {{ integration.display_name }} integration, some
+ columns have been re-named. This was done to ensure consistency between the fields
+ in our integration and [the changes made by Microsoft to the Bing Ads API](https://docs.microsoft.com/en-us/bingads/guides/migration-guide?view=bingads-12#reporting-downloadedcolumns){:target="new}.
+
+
+ - `HistoricQualityScore` is now `HistoricalQualityScore`
+
+ - `HistoricExpectedCtr` is now `HistoricalExpectedCtr`
+
+ - `HistoricAdRelevance` is now `HistoricalAdRelevance`
+
+ - `HistoricLandingPageExperience` is now `HistoricalLandingPageExperience`
+
+ - `Status` is now `CampaignStatus`
+
+ '
+ links:
+ doc-link: https://docs.microsoft.com/en-us/advertising/reporting-service/adgroupperformancereportfilter?view=bingads-13
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-keys:
+ - AccountId
+ - '_sdc_report_datetime'
+ - TimePeriod
+ replication-key: TimePeriod
+- name: ad_performance_report
+ description: 'The `{{ table.name }}` table contains performance info about ads,
+ including clicks and conversions. This data can be used to identify and improve
+ under-performing ads.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+
+ #### Columns renamed from Bing Ads v1 {#renamed-v1-columns}
+
+
+ In this version of Stitch''s {{ integration.display_name }} integration, some
+ columns have been re-named. This was done to ensure consistency between the fields
+ in our integration and [the changes made by Microsoft to the Bing Ads API](https://docs.microsoft.com/en-us/bingads/guides/migration-guide?view=bingads-12#reporting-downloadedcolumns){:target="new}.
+
+
+ - `FinalAppURL` is now `FinalAppUrl`
+
+ - `FinalURL` is now `FinalUrl`
+
+ - `FinalMobileURL` is now `FinalMobileUrl`
+
+ '
+ links:
+ doc-link: https://docs.microsoft.com/en-us/advertising/reporting-service/adperformancereportfilter?view=bingads-13
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-keys:
+ - AccountId
+ - '_sdc_report_datetime'
+ - TimePeriod
+ replication-key: TimePeriod
+- name: age_gender_audience_report
+ description: 'The `{{ table.name }}` table contains info about the age and gender
+ demographics of people interacting with your campaigns and ad groups.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://docs.microsoft.com/en-us/advertising/reporting-service/agegenderaudiencereportfilter?view=bingads-13
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-keys:
+ - AccountId
+ - '_sdc_report_datetime'
+ - TimePeriod
+ replication-key: TimePeriod
+- name: audience_performance_report
+ description: 'The `{{ table.name }}` table contains info about performance statistics
+ for various audiences.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://docs.microsoft.com/en-us/advertising/reporting-service/audienceperformancereportfilter?view=bingads-13
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-keys:
+ - AccountId
+ - AudienceId
+ - '_sdc_report_datetime'
+ - TimePeriod
+ replication-key: TimePeriod
+- name: campaigns
+ description: 'The `{{ table.name }}` table contains info about the campaigns in
+ your Bing Ads account.
+
+
+ [This is a **Core Object** table](#replication).
+
+
+ #### Schema changes from Bing Ads v1 {#renamed-v1-columns}
+
+
+ In this version of Stitch''s {{ integration.display_name }} integration, the schema
+ of this table has changed. This was done to ensure consistency between the fields
+ in our integration and [the changes made by Microsoft to the Bing Ads API](https://docs.microsoft.com/en-us/bingads/guides/migration-guide?view=bingads-12#reporting-downloadedcolumns){:target="new}.
+
+
+ - `NativeBidAdjustment` has been removed
+
+ - `AudienceAdsBidAdjustment` has been added
+
+ - Additional fields have been added to `BiddingScheme` and `Settings`
+
+ '
+ links:
+ doc-link: https://docs.microsoft.com/en-us/advertising/campaign-management-service/getcampaignsbyids?view=bingads-13
+ api-method: https://docs.microsoft.com/en-us/bingads/campaign-management-service/getcampaignsbyaccountid
+ table-details:
+ replication-method: Full Table
+ primary-key: Id
+- name: campaign_performance_report
+ description: 'The `{{ table.name }}` table contains performance data for campaigns,
+ aggregated by day..
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+
+ #### Column compatibility
+
+
+ As per Microsoft''s attribute selection rules, some columns may be incompatible.
+ This means that you won''t be able to select certain combinations of columns in
+ Stitch. Refer to [Microsoft''s documentation](https://docs.microsoft.com/en-us/bingads/guides/reports?view=bingads-12#columnrestrictions){:target="new"}
+ for more info, and the specific column combinations for this table.
+
+
+ #### Columns renamed from Bing Ads v1 {#renamed-v1-columns}
+
+
+ In this version of Stitch''s {{ integration.display_name }} integration, some
+ columns have been re-named. This was done to ensure consistency between the fields
+ in our integration and [the changes made by Microsoft to the Bing Ads API](https://docs.microsoft.com/en-us/bingads/guides/migration-guide?view=bingads-12#reporting-downloadedcolumns){:target="new}.
+
+
+ - `HistoricQualityScore` is now `HistoricalQualityScore`
+
+ - `HistoricExpectedCtr` is now `HistoricalExpectedCtr`
+
+ - `HistoricAdRelevance` is now `HistoricalAdRelevance`
+
+ - `HistoricLandingPageExperience` is now `HistoricalLandingPageExperience`
+
+ - `Status` is now `CampaignStatus`
+
+ '
+ links:
+ doc-link: https://docs.microsoft.com/en-us/advertising/reporting-service/dsacategoryperformancereportfilter?view=bingads-13
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-keys:
+ - AccountId
+ - '_sdc_report_datetime'
+ - TimePeriod
+ replication-key: TimePeriod
+- name: geographic_performance_report
+ description: 'The `{{ table.name }}` table contains info about the physical locations
+ of people searching for an ad or the locations people are searching for. This
+ data can be used to validate or improve location targeting strategies.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://docs.microsoft.com/en-us/advertising/reporting-service/geographicperformancereportfilter?view=bingads-13
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-keys:
+ - AccountId
+ - '_sdc_report_datetime'
+ - TimePeriod
+ replication-key: TimePeriod
+- name: goals_and_funnels_report
+ description: 'The `{{ table.name }}` table contains information about your audience''s
+ progression through your conversion funnel. Use this report to determine the point
+ at which users leave the funnel, thereby allowing you to improve and increase
+ conversion.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://docs.microsoft.com/en-us/advertising/reporting-service/goalsandfunnelsreportfilter?view=bingads-13
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-keys:
+ - AccountId
+ - '_sdc_report_datetime'
+ - TimePeriod
+ replication-key: TimePeriod
+- name: keyword_performance_report
+ description: 'The `{{ table.name }}` table contains performance data about keywords.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+
+ #### Columns renamed from Bing Ads v1 {#renamed-v1-columns}
+
+
+ In this version of Stitch''s {{ integration.display_name }} integration, some
+ columns have been re-named. This was done to ensure consistency between the fields
+ in our integration and [the changes made by Microsoft to the Bing Ads API](https://docs.microsoft.com/en-us/bingads/guides/migration-guide?view=bingads-12#reporting-downloadedcolumns){:target="new}.
+
+
+ - `FinalAppURL` is now `FinalAppUrl`
+
+ - `FinalURL` is now `FinalUrl`
+
+ - `FinalMobileURL` is now `FinalMobileUrl`
+
+ - `HistoricQualityScore` is now `HistoricalQualityScore`
+
+ - `HistoricExpectedCtr` is now `HistoricalExpectedCtr`
+
+ - `HistoricAdRelevance` is now `HistoricalAdRelevance`
+
+ - `HistoricLandingPageExperience` is now `HistoricalLandingPageExperience`
+
+ - `Status` is now `CampaignStatus`
+
+ - `SidebarBid` is now `FirstPageBid`
+
+ '
+ links:
+ doc-link: https://docs.microsoft.com/en-us/advertising/reporting-service/keywordperformancereportfilter?view=bingads-13
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-keys:
+ - AccountId
+ - '_sdc_report_datetime'
+ - TimePeriod
+ replication-key: TimePeriod
+- name: search_query_performance_report
+ description: 'The `{{ table.name }} ` table contains performance data for search
+ terms that resulted in a significant number of clicks in the last 30 days. As
+ this data may change over time, use the `keyword_performance_report` table to
+ analyze the overall performance of keywords.
+
+
+ **Note**: This data in this table is not applicable to Bing Shopping campaigns.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://docs.microsoft.com/en-us/advertising/reporting-service/searchqueryperformancereportfilter?view=bingads-13
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-keys:
+ - AccountId
+ - '_sdc_report_datetime'
+ - TimePeriod
+ replication-key: TimePeriod
diff --git a/_data/taps/schemas/bing-ads/v2/json/accounts.json b/_data/taps/schemas/bing-ads/v2/json/accounts.json
new file mode 100644
index 000000000..97c92b57a
--- /dev/null
+++ b/_data/taps/schemas/bing-ads/v2/json/accounts.json
@@ -0,0 +1,185 @@
+{
+ "properties": {
+ "AccountFinancialStatus": {
+ "type": [
+ "string"
+ ]
+ },
+ "AccountLifeCycleStatus": {
+ "type": [
+ "string"
+ ]
+ },
+ "AutoTagType": {
+ "type": [
+ "string"
+ ]
+ },
+ "BillToCustomerId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "BusinessAddress": {
+ "properties": {
+ "BusinessName": {
+ "type": [
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "string"
+ ]
+ },
+ "CountryCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "StateOrProvince": {
+ "type": [
+ "string"
+ ]
+ },
+ "TimeStamp": {
+ "type": [
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "ForwardCompatibilityMap": {
+ "properties": {
+ "KeyValuePairOfStringString": {
+ "properties": {
+ "key": {
+ "type": [
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Language": {
+ "type": [
+ "string"
+ ]
+ },
+ "LastModifiedByUserId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "LastModifiedTime": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "string"
+ ]
+ },
+ "Number": {
+ "type": [
+ "string"
+ ]
+ },
+ "ParentCustomerId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "PauseReason": {
+ "type": [
+ "integer"
+ ]
+ },
+ "PaymentMethodId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "PaymentMethodType": {
+ "type": [
+ "string"
+ ]
+ },
+ "PrimaryUserId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "SoldToPaymentInstrumentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "Timestamp": {
+ "type": [
+ "timestamp"
+ ]
+ },
+ "Timezone": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bing-ads/v2/json/ad_group_performance_report.json b/_data/taps/schemas/bing-ads/v2/json/ad_group_performance_report.json
new file mode 100644
index 000000000..d13cb373b
--- /dev/null
+++ b/_data/taps/schemas/bing-ads/v2/json/ad_group_performance_report.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "AccountId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "TimePeriod": {
+ "type": [
+ "date"
+ ]
+ },
+ "adGroupId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaignId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bing-ads/v2/json/ad_groups.json b/_data/taps/schemas/bing-ads/v2/json/ad_groups.json
new file mode 100644
index 000000000..4d6ab16ce
--- /dev/null
+++ b/_data/taps/schemas/bing-ads/v2/json/ad_groups.json
@@ -0,0 +1,179 @@
+{
+ "properties": {
+ "AdRotation": {
+ "type": [
+ "string"
+ ]
+ },
+ "AudienceAdsBidAdjustment": {
+ "type": [
+ "integer"
+ ]
+ },
+ "BiddingScheme": {
+ "properties": {
+ "InheritedBidStrategyType": {
+ "type": [
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CpcBid": {
+ "type": [
+ "string"
+ ]
+ },
+ "EndDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "ForwardCompatibilityMap": {
+ "properties": {
+ "KeyValuePairOfStringString": {
+ "properties": {
+ "key": {
+ "type": [
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "Language": {
+ "type": [
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "string"
+ ]
+ },
+ "Network": {
+ "type": [
+ "string"
+ ]
+ },
+ "Settings": {
+ "properties": {
+ "BidBoostValue": {
+ "type": [
+ "number"
+ ]
+ },
+ "BidMaxValue": {
+ "type": [
+ "number"
+ ]
+ },
+ "BidOption": {
+ "type": [
+ "string"
+ ]
+ },
+ "DomainName": {
+ "type": [
+ "string"
+ ]
+ },
+ "Language": {
+ "type": [
+ "string"
+ ]
+ },
+ "LocalInventoryAdsEnabled": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "PageFeedIds": {
+ "properties": {
+ "value": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "Priority": {
+ "type": [
+ "integer"
+ ]
+ },
+ "SalesCountryCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "Source": {
+ "type": [
+ "string"
+ ]
+ },
+ "StoreId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "StartDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Status": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingUrlTemplate": {
+ "type": [
+ "string"
+ ]
+ },
+ "UrlCustomParameters": {
+ "type": [
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bing-ads/v2/json/ad_performance_report.json b/_data/taps/schemas/bing-ads/v2/json/ad_performance_report.json
new file mode 100644
index 000000000..046495818
--- /dev/null
+++ b/_data/taps/schemas/bing-ads/v2/json/ad_performance_report.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "AccountId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "AdGroupId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "AdId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "CampaignId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "TimePeriod": {
+ "type": [
+ "date"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bing-ads/v2/json/ads.json b/_data/taps/schemas/bing-ads/v2/json/ads.json
new file mode 100644
index 000000000..a4ed3a2e1
--- /dev/null
+++ b/_data/taps/schemas/bing-ads/v2/json/ads.json
@@ -0,0 +1,150 @@
+{
+ "properties": {
+ "AdFormatPreference": {
+ "type": [
+ "string"
+ ]
+ },
+ "DevicePreference": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Domain": {
+ "type": [
+ "string"
+ ]
+ },
+ "EditorialStatus": {
+ "type": [
+ "string"
+ ]
+ },
+ "FinalAppUrls": {
+ "properties": {
+ "string": {
+ "properties": {
+ "value": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "string"
+ ]
+ },
+ "FinalMobileUrls": {
+ "properties": {
+ "string": {
+ "properties": {
+ "value": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "FinalUrls": {
+ "properties": {
+ "string": {
+ "properties": {
+ "value": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "string"
+ ]
+ },
+ "ForwardCompatibilityMap": {
+ "properties": {
+ "KeyValuePairOfStringString": {
+ "properties": {
+ "key": {
+ "type": [
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Status": {
+ "type": [
+ "string"
+ ]
+ },
+ "TextPart2": {
+ "type": [
+ "string"
+ ]
+ },
+ "TitlePart1": {
+ "type": [
+ "string"
+ ]
+ },
+ "TitlePart2": {
+ "type": [
+ "string"
+ ]
+ },
+ "TitlePart3": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingUrlTemplate": {
+ "type": [
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "string"
+ ]
+ },
+ "UrlCustomParameters": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bing-ads/v2/json/age_gender_audience_report.json b/_data/taps/schemas/bing-ads/v2/json/age_gender_audience_report.json
new file mode 100644
index 000000000..d7d7502cf
--- /dev/null
+++ b/_data/taps/schemas/bing-ads/v2/json/age_gender_audience_report.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "AccountId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "AccountName": {
+ "type": [
+ "string"
+ ]
+ },
+ "AdGroupId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "AdGroupName": {
+ "type": [
+ "string"
+ ]
+ },
+ "AgeGroup": {
+ "type": [
+ "string"
+ ]
+ },
+ "CampaignId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Gender": {
+ "type": [
+ "string"
+ ]
+ },
+ "TimePeriod": {
+ "type": [
+ "date"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bing-ads/v2/json/audience_performance_report.json b/_data/taps/schemas/bing-ads/v2/json/audience_performance_report.json
new file mode 100644
index 000000000..243a90383
--- /dev/null
+++ b/_data/taps/schemas/bing-ads/v2/json/audience_performance_report.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "AccountId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "AdGroupId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "AudienceId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "CampaignId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "TimePeriod": {
+ "type": [
+ "date"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bing-ads/v2/json/campaign_performance_report.json b/_data/taps/schemas/bing-ads/v2/json/campaign_performance_report.json
new file mode 100644
index 000000000..20b0a098a
--- /dev/null
+++ b/_data/taps/schemas/bing-ads/v2/json/campaign_performance_report.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "AccountId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "CampaignId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "TimePeriod": {
+ "type": [
+ "date"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bing-ads/v2/json/campaigns.json b/_data/taps/schemas/bing-ads/v2/json/campaigns.json
new file mode 100644
index 000000000..93cf79121
--- /dev/null
+++ b/_data/taps/schemas/bing-ads/v2/json/campaigns.json
@@ -0,0 +1,184 @@
+{
+ "properties": {
+ "AudienceAdsBidAdjustment": {
+ "type": [
+ "integer"
+ ]
+ },
+ "BiddingScheme": {
+ "properties": {
+ "InheritedBidStrategyType": {
+ "type": [
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "BudgetId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "BudgetType": {
+ "type": [
+ "string"
+ ]
+ },
+ "CampaignType": {
+ "type": [
+ "string"
+ ]
+ },
+ "DailyBudget": {
+ "type": [
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "string"
+ ]
+ },
+ "ForwardCompatibilityMap": {
+ "properties": {
+ "keyValuePairOfStringString": {
+ "properties": {
+ "key": {
+ "type": [
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Languages": {
+ "type": [
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "string"
+ ]
+ },
+ "Settings": {
+ "properties": {
+ "BidBoostValue": {
+ "type": [
+ "number"
+ ]
+ },
+ "BidMaxValue": {
+ "type": [
+ "number"
+ ]
+ },
+ "BidOption": {
+ "type": [
+ "string"
+ ]
+ },
+ "DomainName": {
+ "type": [
+ "string"
+ ]
+ },
+ "Language": {
+ "type": [
+ "string"
+ ]
+ },
+ "LocalInventoryAdsEnabled": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "PageFeedIds": {
+ "properties": {
+ "value": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "Priority": {
+ "type": [
+ "integer"
+ ]
+ },
+ "SalesCountryCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "Source": {
+ "type": [
+ "string"
+ ]
+ },
+ "StoreId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "string"
+ ]
+ },
+ "TimeZone": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingUrlTemplate": {
+ "type": [
+ "string"
+ ]
+ },
+ "UrlCustomParameters": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bing-ads/v2/json/geographic_performance_report.json b/_data/taps/schemas/bing-ads/v2/json/geographic_performance_report.json
new file mode 100644
index 000000000..92b128c35
--- /dev/null
+++ b/_data/taps/schemas/bing-ads/v2/json/geographic_performance_report.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "AccountId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "AdGroupId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "CampaignId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "TimePeriod": {
+ "type": [
+ "date"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bing-ads/v2/json/goals_and_funnels_report.json b/_data/taps/schemas/bing-ads/v2/json/goals_and_funnels_report.json
new file mode 100644
index 000000000..7658dd0b4
--- /dev/null
+++ b/_data/taps/schemas/bing-ads/v2/json/goals_and_funnels_report.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "AccountId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "AdGroupId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "CampaignId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Goal": {
+ "type": [
+ "string"
+ ]
+ },
+ "TimePeriod": {
+ "type": [
+ "date"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bing-ads/v2/json/keyword_performance_report.json b/_data/taps/schemas/bing-ads/v2/json/keyword_performance_report.json
new file mode 100644
index 000000000..92b128c35
--- /dev/null
+++ b/_data/taps/schemas/bing-ads/v2/json/keyword_performance_report.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "AccountId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "AdGroupId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "CampaignId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "TimePeriod": {
+ "type": [
+ "date"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bing-ads/v2/json/search_query_performance_report.json b/_data/taps/schemas/bing-ads/v2/json/search_query_performance_report.json
new file mode 100644
index 000000000..92b128c35
--- /dev/null
+++ b/_data/taps/schemas/bing-ads/v2/json/search_query_performance_report.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "AccountId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "AdGroupId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "CampaignId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "TimePeriod": {
+ "type": [
+ "date"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/braintree/v1/braintree-v1-tables.yml b/_data/taps/schemas/braintree/v1/braintree-v1-tables.yml
new file mode 100644
index 000000000..b528131c0
--- /dev/null
+++ b/_data/taps/schemas/braintree/v1/braintree-v1-tables.yml
@@ -0,0 +1,22 @@
+tap: braintree
+version: '1'
+tables:
+- name: transactions
+ description: 'The `transactions` table contains info about the transactions in your
+ Braintree account, including the transaction''s status.
+
+
+ **Note**: Our Braintree integration will only replicate transactions for the **default
+ merchant account** in your Braintree instance. You can verify the merchant account
+ set as the default by going to **Settings > Processing > Merchant Accounts** when
+ signed into Braintree.
+
+ '
+ links:
+ doc-link: https://developers.braintreepayments.com/reference/request/transaction/search/java
+ singer-schema: https://github.com/singer-io/tap-braintree/blob/master/tap_braintree/schemas/transactions.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created_at
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/braintree/v1/json/transactions.json b/_data/taps/schemas/braintree/v1/json/transactions.json
new file mode 100644
index 000000000..b9cca585f
--- /dev/null
+++ b/_data/taps/schemas/braintree/v1/json/transactions.json
@@ -0,0 +1,287 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "created_at": {
+ "type": "date-time"
+ },
+ "credit_card_details": {
+ "properties": {
+ "card_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_location": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "currency_iso_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_details": {
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "disbursement_details": {
+ "anyOf": [
+ {
+ "properties": {
+ "disbursement_date": {
+ "anyOf": [
+ {
+ "type": "date-time"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "success": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "gateway_rejection_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": "string"
+ },
+ "merchant_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_instrument_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "paypal_details": {
+ "anyOf": [
+ {
+ "properties": {
+ "authorization_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "capture_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payer_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payer_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "seller_protection_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_id_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_fee_amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_fee_currency_iso_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "plan_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "processor_authorization_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "processor_response_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "processor_response_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recurring": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "refunded_transaction_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "service_fee_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "settlement_batch_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_details": {
+ "properties": {
+ "billing_period_end_date": {
+ "anyOf": [
+ {
+ "type": "date-time"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "billing_period_start_date": {
+ "anyOf": [
+ {
+ "type": "date-time"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": "date-time"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bronto/v1/bronto-v1-foreign-keys.yml b/_data/taps/schemas/bronto/v1/bronto-v1-foreign-keys.yml
new file mode 100644
index 000000000..9c074ab70
--- /dev/null
+++ b/_data/taps/schemas/bronto/v1/bronto-v1-foreign-keys.yml
@@ -0,0 +1,150 @@
+tap: bronto
+version: '1'
+keys:
+ contact_contactId:
+ - table: contact
+ keys:
+ - id
+ - table: inbound_activity
+ keys:
+ - contactId
+ - table: outbound_activity
+ keys:
+ - contactId
+ _deliveryId:
+ - table: inbound_activity
+ keys:
+ - deliveryId
+ - table: outbound_activity
+ keys:
+ - deliveryId
+ list_listId:
+ - table: list
+ keys:
+ - id
+ - table: inbound_activity
+ keys:
+ - listId
+ - table: outbound_activity
+ keys:
+ - listId
+ inbound_activity_:
+ - table: inbound_activity
+ keys:
+ - id
+ _keywordId:
+ - table: inbound_activity
+ keys:
+ - keywordId
+ - table: outbound_activity
+ keys:
+ - keywordId
+ _messageId:
+ - table: inbound_activity
+ keys:
+ - messageId
+ - table: outbound_activity
+ keys:
+ - messageId
+ _orderId:
+ - table: inbound_activity
+ keys:
+ - orderId
+ - table: outbound_activity
+ keys:
+ - orderId
+ outbound_activity_:
+ - table: outbound_activity
+ keys:
+ - id
+ _segmentId:
+ - table: inbound_activity
+ keys:
+ - segmentId
+ - table: outbound_activity
+ keys:
+ - segmentId
+ _workflowId:
+ - table: inbound_activity
+ keys:
+ - workflowId
+ - table: outbound_activity
+ keys:
+ - workflowId
+tables:
+- table-name: contact
+ join:
+ - table-name: inbound_activity
+ keys:
+ - key: id
+ foreign-key: contactId
+ - table-name: outbound_activity
+ keys:
+ - key: id
+ foreign-key: contactId
+- table-name: inbound_activity
+ join:
+ - table-name: contact
+ keys:
+ - key: contactId
+ foreign-key: id
+ - table-name: outbound_activity
+ keys:
+ - key: contactId
+ foreign-key: contactId
+ - key: deliveryId
+ foreign-key: deliveryId
+ - key: listId
+ foreign-key: listId
+ - key: keywordId
+ foreign-key: keywordId
+ - key: messageId
+ foreign-key: messageId
+ - key: orderId
+ foreign-key: orderId
+ - key: segmentId
+ foreign-key: segmentId
+ - key: workflowId
+ foreign-key: workflowId
+ - table-name: list
+ keys:
+ - key: listId
+ foreign-key: id
+- table-name: outbound_activity
+ join:
+ - table-name: contact
+ keys:
+ - key: contactId
+ foreign-key: id
+ - table-name: inbound_activity
+ keys:
+ - key: contactId
+ foreign-key: contactId
+ - key: deliveryId
+ foreign-key: deliveryId
+ - key: listId
+ foreign-key: listId
+ - key: keywordId
+ foreign-key: keywordId
+ - key: messageId
+ foreign-key: messageId
+ - key: orderId
+ foreign-key: orderId
+ - key: segmentId
+ foreign-key: segmentId
+ - key: workflowId
+ foreign-key: workflowId
+ - table-name: list
+ keys:
+ - key: listId
+ foreign-key: id
+- table-name: list
+ join:
+ - table-name: inbound_activity
+ keys:
+ - key: id
+ foreign-key: listId
+ - table-name: outbound_activity
+ keys:
+ - key: id
+ foreign-key: listId
diff --git a/_data/taps/schemas/bronto/v1/bronto-v1-tables.yml b/_data/taps/schemas/bronto/v1/bronto-v1-tables.yml
new file mode 100644
index 000000000..c3967df85
--- /dev/null
+++ b/_data/taps/schemas/bronto/v1/bronto-v1-tables.yml
@@ -0,0 +1,65 @@
+tap: bronto
+version: '1'
+tables:
+- name: contact
+ description: 'The `contacts` table contains information about your contacts. A contact
+ describes an individual email address and/or SMS number in Bronto, along with
+ associated statistics and field data that you have provided.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-bronto/blob/master/tap_bronto/schemas.py#L291
+ api-method: http://dev.bronto.com/api/soap/objects/general/contactobject/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: modified
+- name: inbound_activity
+ description: 'The `inbound_activity` object contains activity info regarding contacts,
+ messages, and deliveries.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-bronto/blob/master/tap_bronto/schemas.py#L60
+ api-method: http://dev.bronto.com/api/soap/objects/general/activityobject/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: createdDate
+- name: list
+ description: "The `lists` table contains info about the contact lists in your Bronto\
+ \ account. \n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-bronto/blob/master/tap_bronto/endpoints/list.py#L16
+ api-method: http://dev.bronto.com/api/soap/objects/general/maillistobject/
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: outbound_activity
+ description: 'The `outbound_activity` table contains activity info regarding contacts,
+ messages, and deliveries.
+
+ '
+ links:
+ doc-link: http://dev.bronto.com/api/soap/objects/general/activityobject/
+ singer-schema: https://github.com/singer-io/tap-bronto/blob/master/tap_bronto/schemas.py#L60
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: createdDate
+- name: unsubscribe
+ description: 'The `unsubscribe` table contains info about unsubscribe events. Contacts
+ may be unsubscribed by you, or they can unsubscribe themselves via an Unsubscribe
+ or Manage Preferences Webform.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-bronto/blob/master/tap_bronto/endpoints/unsubscribe.py#L20
+ api-method: http://dev.bronto.com/api/soap/objects/general/unsubscribeobject/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - contactId
+ - deliveryId
+ - created
+ replication-key: created
diff --git a/_data/taps/schemas/bronto/v1/json/contact.json b/_data/taps/schemas/bronto/v1/json/contact.json
new file mode 100644
index 000000000..291ac7df3
--- /dev/null
+++ b/_data/taps/schemas/bronto/v1/json/contact.json
@@ -0,0 +1,203 @@
+{
+ "properties": {
+ "SMSKeywordIDs": {
+ "properties": {
+ "SMSKeywordID": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "averageOrderValue": {
+ "type": [
+ "number"
+ ]
+ },
+ "conversionAmount": {
+ "type": [
+ "number"
+ ]
+ },
+ "created": {
+ "type": [
+ "string"
+ ]
+ },
+ "customSource": {
+ "type": [
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "firstOrderDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "geoIPCity": {
+ "type": [
+ "string"
+ ]
+ },
+ "geoIPCountry": {
+ "type": [
+ "string"
+ ]
+ },
+ "geoIPCountryCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "geoIPStateRegion": {
+ "type": [
+ "string"
+ ]
+ },
+ "geoIPZip": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastClickDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastDeliveryDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastOpenDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastOrderDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastOrderTotal": {
+ "type": [
+ "number"
+ ]
+ },
+ "listIds": {
+ "properties": {
+ "value": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "mobileBrowser": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobileEmailClient": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobileNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "msgPref": {
+ "type": [
+ "string"
+ ]
+ },
+ "numBounces": {
+ "type": [
+ "number"
+ ]
+ },
+ "numClicks": {
+ "type": [
+ "number"
+ ]
+ },
+ "numConversions": {
+ "type": [
+ "number"
+ ]
+ },
+ "numOpens": {
+ "type": [
+ "number"
+ ]
+ },
+ "numSends": {
+ "type": [
+ "number"
+ ]
+ },
+ "operatingSystem": {
+ "type": [
+ "string"
+ ]
+ },
+ "primaryBrowser": {
+ "type": [
+ "string"
+ ]
+ },
+ "primaryEmailClient": {
+ "type": [
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "totalOrders": {
+ "type": [
+ "number"
+ ]
+ },
+ "totalRevenue": {
+ "type": [
+ "number"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bronto/v1/json/inbound_activity.json b/_data/taps/schemas/bronto/v1/json/inbound_activity.json
new file mode 100644
index 000000000..44c2d7f09
--- /dev/null
+++ b/_data/taps/schemas/bronto/v1/json/inbound_activity.json
@@ -0,0 +1,179 @@
+{
+ "properties": {
+ "activityType": {
+ "type": [
+ "string"
+ ]
+ },
+ "automatorName": {
+ "type": [
+ "string"
+ ]
+ },
+ "bounceReason": {
+ "type": [
+ "string"
+ ]
+ },
+ "bounceType": {
+ "type": [
+ "string"
+ ]
+ },
+ "contactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "contactStatus": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deliveryId": {
+ "type": [
+ "string"
+ ]
+ },
+ "deliveryStart": {
+ "type": [
+ "string"
+ ]
+ },
+ "deliveryType": {
+ "type": [
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "ftafEmails": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "keywordId": {
+ "type": [
+ "string"
+ ]
+ },
+ "linkName": {
+ "type": [
+ "string"
+ ]
+ },
+ "linkUrl": {
+ "type": [
+ "string"
+ ]
+ },
+ "listId": {
+ "type": [
+ "string"
+ ]
+ },
+ "listLabel": {
+ "type": [
+ "string"
+ ]
+ },
+ "listName": {
+ "type": [
+ "string"
+ ]
+ },
+ "messageId": {
+ "type": [
+ "string"
+ ]
+ },
+ "messageName": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobileNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "orderId": {
+ "type": [
+ "string"
+ ]
+ },
+ "segmentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "segmentName": {
+ "type": [
+ "string"
+ ]
+ },
+ "skipReason": {
+ "type": [
+ "string"
+ ]
+ },
+ "smsKeywordName": {
+ "type": [
+ "string"
+ ]
+ },
+ "socialActivity": {
+ "type": [
+ "string"
+ ]
+ },
+ "socialNetwork": {
+ "type": [
+ "string"
+ ]
+ },
+ "unsubscribeMethod": {
+ "type": [
+ "string"
+ ]
+ },
+ "webformAction": {
+ "type": [
+ "string"
+ ]
+ },
+ "webformId": {
+ "type": [
+ "string"
+ ]
+ },
+ "webformName": {
+ "type": [
+ "string"
+ ]
+ },
+ "workflowId": {
+ "type": [
+ "string"
+ ]
+ },
+ "workflowName": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bronto/v1/json/list.json b/_data/taps/schemas/bronto/v1/json/list.json
new file mode 100644
index 000000000..c30320d3d
--- /dev/null
+++ b/_data/taps/schemas/bronto/v1/json/list.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "activeCount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bronto/v1/json/outbound_activity.json b/_data/taps/schemas/bronto/v1/json/outbound_activity.json
new file mode 100644
index 000000000..44c2d7f09
--- /dev/null
+++ b/_data/taps/schemas/bronto/v1/json/outbound_activity.json
@@ -0,0 +1,179 @@
+{
+ "properties": {
+ "activityType": {
+ "type": [
+ "string"
+ ]
+ },
+ "automatorName": {
+ "type": [
+ "string"
+ ]
+ },
+ "bounceReason": {
+ "type": [
+ "string"
+ ]
+ },
+ "bounceType": {
+ "type": [
+ "string"
+ ]
+ },
+ "contactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "contactStatus": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deliveryId": {
+ "type": [
+ "string"
+ ]
+ },
+ "deliveryStart": {
+ "type": [
+ "string"
+ ]
+ },
+ "deliveryType": {
+ "type": [
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "ftafEmails": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "keywordId": {
+ "type": [
+ "string"
+ ]
+ },
+ "linkName": {
+ "type": [
+ "string"
+ ]
+ },
+ "linkUrl": {
+ "type": [
+ "string"
+ ]
+ },
+ "listId": {
+ "type": [
+ "string"
+ ]
+ },
+ "listLabel": {
+ "type": [
+ "string"
+ ]
+ },
+ "listName": {
+ "type": [
+ "string"
+ ]
+ },
+ "messageId": {
+ "type": [
+ "string"
+ ]
+ },
+ "messageName": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobileNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "orderId": {
+ "type": [
+ "string"
+ ]
+ },
+ "segmentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "segmentName": {
+ "type": [
+ "string"
+ ]
+ },
+ "skipReason": {
+ "type": [
+ "string"
+ ]
+ },
+ "smsKeywordName": {
+ "type": [
+ "string"
+ ]
+ },
+ "socialActivity": {
+ "type": [
+ "string"
+ ]
+ },
+ "socialNetwork": {
+ "type": [
+ "string"
+ ]
+ },
+ "unsubscribeMethod": {
+ "type": [
+ "string"
+ ]
+ },
+ "webformAction": {
+ "type": [
+ "string"
+ ]
+ },
+ "webformId": {
+ "type": [
+ "string"
+ ]
+ },
+ "webformName": {
+ "type": [
+ "string"
+ ]
+ },
+ "workflowId": {
+ "type": [
+ "string"
+ ]
+ },
+ "workflowName": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/bronto/v1/json/unsubscribe.json b/_data/taps/schemas/bronto/v1/json/unsubscribe.json
new file mode 100644
index 000000000..6badbd2e7
--- /dev/null
+++ b/_data/taps/schemas/bronto/v1/json/unsubscribe.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "complaint": {
+ "type": [
+ "string"
+ ]
+ },
+ "contactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "string"
+ ]
+ },
+ "deliveryId": {
+ "type": [
+ "string"
+ ]
+ },
+ "method": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/campaign-manager/v1/campaign-manager-v1-tables.yml b/_data/taps/schemas/campaign-manager/v1/campaign-manager-v1-tables.yml
new file mode 100644
index 000000000..f62b58186
--- /dev/null
+++ b/_data/taps/schemas/campaign-manager/v1/campaign-manager-v1-tables.yml
@@ -0,0 +1,3 @@
+tap: campaign-manager
+version: '1'
+tables: []
diff --git a/_data/taps/schemas/campaign-manager/v1/json/sample_report_table.json b/_data/taps/schemas/campaign-manager/v1/json/sample_report_table.json
new file mode 100644
index 000000000..d4381a878
--- /dev/null
+++ b/_data/taps/schemas/campaign-manager/v1/json/sample_report_table.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "__sdc_primary_key": {
+ "type": [
+ "string"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/campaign-monitor/v1/campaign-monitor-v1-tables.yml b/_data/taps/schemas/campaign-monitor/v1/campaign-monitor-v1-tables.yml
new file mode 100644
index 000000000..749a83287
--- /dev/null
+++ b/_data/taps/schemas/campaign-monitor/v1/campaign-monitor-v1-tables.yml
@@ -0,0 +1,229 @@
+tap: campaign-monitor
+version: '1'
+tables:
+- name: campaigns
+ description: 'The `{{ table.name }}` table contains info about the the campaigns
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://www.campaignmonitor.com/api/campaigns/
+ singer-schema: https://github.com/singer-io/tap-campaign-monitor/blob/master/tap_campaign_monitor/schemas/campaigns.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: CampaignID
+- name: campaign_bounces
+ description: 'The `{{ table.name }}` table contains info about the subscribers who
+ bounced for a given campaign.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-campaign-monitor/blob/master/tap_campaign_monitor/schemas/campaign_bounces.json
+ api-method: https://www.campaignmonitor.com/api/campaigns/#campaign-bounces
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - CampaignID
+ - EmailAddress
+ - Date
+ - ListID
+ replication-key: Date
+- name: campaign_clicks
+ description: 'The `{{ table.name }}` table contains info about subscribers who clicked
+ a link in a given campaign.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-campaign-monitor/blob/master/tap_campaign_monitor/schemas/campaign_clicks.json
+ api-method: https://www.campaignmonitor.com/api/campaigns/#campaign-clicks
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - CampaignID
+ - EmailAddress
+ - ListID
+ - Date
+ replication-key: Date
+- name: campaign_email_client_usage
+ description: 'The `{{ table.name }}` table contains info about the email clients
+ subscribers use to open campaigns.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-campaign-monitor/blob/master/tap_campaign_monitor/schemas/campaign_email_client_usage.json
+ api-method: https://www.campaignmonitor.com/api/campaigns/#campaign-email-client-usage
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - CampaignID
+ - Client
+ - Version
+- name: campaign_opens
+ description: 'The `{{ table.name }}` table contains info about subscribers who opened
+ a campaign.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-campaign-monitor/blob/master/tap_campaign_monitor/schemas/campaign_opens.json
+ api-method: https://www.campaignmonitor.com/api/campaigns/#campaign-opens
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - CampaignID
+ - EmailAddress
+ - ListID
+ - Date
+ replication-key: Date
+- name: campaign_recipients
+ description: 'The `{{ table.name }}` table contains info about the subscribers that
+ a campaign was sent to.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-campaign-monitor/blob/master/tap_campaign_monitor/schemas/campaign_recipients.json
+ api-method: https://www.campaignmonitor.com/api/campaigns/#campaign-recipients
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - CampaignID
+ - EmailAddress
+ - ListID
+- name: campaign_spam_complaints
+ description: 'The `{{ table.name }}` table contains info about subscribers who marked
+ a campaign as spam.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-campaign-monitor/blob/master/tap_campaign_monitor/schemas/campaign_spam_complaints.json
+ api-method: https://www.campaignmonitor.com/api/campaigns/#campaign-spam-complaints
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - CampaignID
+ - EmailAddress
+ - ListID
+ - Date
+ replication-key: Date
+- name: campaign_summary
+ description: 'The `{{ table.name }}` table contains summary info about sent campaigns.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-campaign-monitor/blob/master/tap_campaign_monitor/schemas/campaign_summary.json
+ api-method: https://www.campaignmonitor.com/api/campaigns/#campaign-summary
+ table-details:
+ replication-method: Full Table
+ primary-key: CampaignID
+- name: campaign_unsubscribes
+ description: 'The `{{ table.name }}` table contains info about the subscribers who
+ unsubscribed from the email for a campaign.
+
+ '
+ links:
+ singer-schema: https://github.com/fsinger-io/tap-campaign-monitor/blob/master/tap_campaign_monitor/schemas/campaign_unsubscribes.json
+ api-method: https://www.campaignmonitor.com/api/campaigns/#campaign-unsubscribes
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - CampaignID
+ - EmailAddress
+ - ListID
+ - Date
+ replication-key: Date
+- name: lists
+ description: 'The `{{ table.name }}` table contains info about the lists in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://www.campaignmonitor.com/api/lists/
+ singer-schema: https://github.com/singer-io/tap-campaign-monitor/blob/master/tap_campaign_monitor/schemas/lists.json
+ table-details:
+ replication-method: Full Table
+ primary-key: ListID
+- name: list_active_subscribers
+ description: 'The `{{ table.name }}` table contains info about the active subscribers
+ for lists.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-campaign-monitor/blob/master/tap_campaign_monitor/schemas/list_active_subscribers.json
+ api-method: https://www.campaignmonitor.com/api/lists/#active-subscribers
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - ListID
+ - EmailAddress
+ - Date
+ replication-key: Date
+- name: list_bounced_subscribers
+ description: 'The `{{ table.name }}` table contains info about the bounced subscribers
+ for lists.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-campaign-monitor/blob/master/tap_campaign_monitor/schemas/list_bounced_subscribers.json
+ api-method: https://www.campaignmonitor.com/api/lists/#bounced-subscribers
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - ListID
+ - EmailAddress
+ - Date
+ replication-key: Date
+- name: list_deleted_subscribers
+ description: 'The `{{ table.name }}` table contains info about the deleted subscribers
+ for lists.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-campaign-monitor/blob/master/tap_campaign_monitor/schemas/list_deleted_subscribers.json
+ api-method: https://www.campaignmonitor.com/api/lists/#deleted-subscribers
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - ListID
+ - EmailAddress
+ - Date
+ replication-key: Date
+- name: list_details
+ description: 'The `{{ table.name }}` table contains summary info about lists in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-campaign-monitor/blob/master/tap_campaign_monitor/schemas/list_details.json
+ api-method: https://www.campaignmonitor.com/api/lists/#list-details
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: ListID
+- name: list_unconfirmed_subscribers
+ description: 'The `{{ table.name }}` table contains info about the unconfirmed subscribers
+ for lists.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-campaign-monitor/blob/master/tap_campaign_monitor/schemas/list_unconfirmed_subscribers.json
+ api-method: https://www.campaignmonitor.com/api/lists/#unconfirmed-subscribers
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - ListID
+ - EmailAddress
+ - Date
+ replication-key: Date
+- name: list_unsubscribed_subscribers
+ description: 'The `{{ table.name }}` table contains info about the unsubscribed
+ subscribers for lists.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-campaign-monitor/blob/master/tap_campaign_monitor/schemas/list_unsubscribed_subscribers.json
+ api-method: https://www.campaignmonitor.com/api/lists/#unsubscribed-subscribers
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - ListID
+ - EmailAddress
+ - Date
+ replication-key: Date
diff --git a/_data/taps/schemas/campaign-monitor/v1/json/campaign_bounces.json b/_data/taps/schemas/campaign-monitor/v1/json/campaign_bounces.json
new file mode 100644
index 000000000..164149dd8
--- /dev/null
+++ b/_data/taps/schemas/campaign-monitor/v1/json/campaign_bounces.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "BounceType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CampaignID": {
+ "type": "string"
+ },
+ "Date": {
+ "type": "date-time"
+ },
+ "EmailAddress": {
+ "type": "string"
+ },
+ "ListID": {
+ "type": "string"
+ },
+ "Reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/campaign-monitor/v1/json/campaign_clicks.json b/_data/taps/schemas/campaign-monitor/v1/json/campaign_clicks.json
new file mode 100644
index 000000000..81945a90e
--- /dev/null
+++ b/_data/taps/schemas/campaign-monitor/v1/json/campaign_clicks.json
@@ -0,0 +1,65 @@
+{
+ "properties": {
+ "CampaignID": {
+ "type": "string"
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Date": {
+ "type": "date-time"
+ },
+ "EmailAddress": {
+ "type": "string"
+ },
+ "IPAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ListID": {
+ "type": "string"
+ },
+ "Longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "URL": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/campaign-monitor/v1/json/campaign_email_client_usage.json b/_data/taps/schemas/campaign-monitor/v1/json/campaign_email_client_usage.json
new file mode 100644
index 000000000..eb474be4f
--- /dev/null
+++ b/_data/taps/schemas/campaign-monitor/v1/json/campaign_email_client_usage.json
@@ -0,0 +1,26 @@
+{
+ "properties": {
+ "CampaignID": {
+ "type": "string"
+ },
+ "Client": {
+ "type": "string"
+ },
+ "Percentage": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Subscribers": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Version": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/campaign-monitor/v1/json/campaign_opens.json b/_data/taps/schemas/campaign-monitor/v1/json/campaign_opens.json
new file mode 100644
index 000000000..b037c8086
--- /dev/null
+++ b/_data/taps/schemas/campaign-monitor/v1/json/campaign_opens.json
@@ -0,0 +1,59 @@
+{
+ "properties": {
+ "CampaignID": {
+ "type": "string"
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Date": {
+ "type": "date-time"
+ },
+ "EmailAddress": {
+ "type": "string"
+ },
+ "IPAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ListID": {
+ "type": "string"
+ },
+ "Longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/campaign-monitor/v1/json/campaign_recipients.json b/_data/taps/schemas/campaign-monitor/v1/json/campaign_recipients.json
new file mode 100644
index 000000000..88b0bef4a
--- /dev/null
+++ b/_data/taps/schemas/campaign-monitor/v1/json/campaign_recipients.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "CampaignID": {
+ "type": "string"
+ },
+ "EmailAddress": {
+ "type": "string"
+ },
+ "ListID": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/campaign-monitor/v1/json/campaign_spam_complaints.json b/_data/taps/schemas/campaign-monitor/v1/json/campaign_spam_complaints.json
new file mode 100644
index 000000000..c1e0ca9c9
--- /dev/null
+++ b/_data/taps/schemas/campaign-monitor/v1/json/campaign_spam_complaints.json
@@ -0,0 +1,17 @@
+{
+ "properties": {
+ "CampaignID": {
+ "type": "string"
+ },
+ "Date": {
+ "type": "date-time"
+ },
+ "EmailAddress": {
+ "type": "string"
+ },
+ "ListID": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/campaign-monitor/v1/json/campaign_summary.json b/_data/taps/schemas/campaign-monitor/v1/json/campaign_summary.json
new file mode 100644
index 000000000..335cae759
--- /dev/null
+++ b/_data/taps/schemas/campaign-monitor/v1/json/campaign_summary.json
@@ -0,0 +1,86 @@
+{
+ "properties": {
+ "Bounced": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "CampaignID": {
+ "type": "string"
+ },
+ "Clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Forwards": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Likes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Mentions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Recipients": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "SpamComplaints": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "TotalOpened": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "UniqueOpened": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Unsubscribed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "WebVersionTextURL": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "WebVersionURL": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "WorldviewURL": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/campaign-monitor/v1/json/campaign_unsubscribes.json b/_data/taps/schemas/campaign-monitor/v1/json/campaign_unsubscribes.json
new file mode 100644
index 000000000..c73a50290
--- /dev/null
+++ b/_data/taps/schemas/campaign-monitor/v1/json/campaign_unsubscribes.json
@@ -0,0 +1,23 @@
+{
+ "properties": {
+ "CampaignID": {
+ "type": "string"
+ },
+ "Date": {
+ "type": "date-time"
+ },
+ "EmailAddress": {
+ "type": "string"
+ },
+ "IPAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ListID": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/campaign-monitor/v1/json/campaigns.json b/_data/taps/schemas/campaign-monitor/v1/json/campaigns.json
new file mode 100644
index 000000000..1f73ea7cc
--- /dev/null
+++ b/_data/taps/schemas/campaign-monitor/v1/json/campaigns.json
@@ -0,0 +1,62 @@
+{
+ "properties": {
+ "CampaignID": {
+ "type": "string"
+ },
+ "FromEmail": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "FromName": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "Name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "ReplyTo": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "SentDate": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "Subject": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "TotalRecipients": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "WebVersionTextURL": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "WebVersionURL": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/campaign-monitor/v1/json/list_active_subscribers.json b/_data/taps/schemas/campaign-monitor/v1/json/list_active_subscribers.json
new file mode 100644
index 000000000..723bae517
--- /dev/null
+++ b/_data/taps/schemas/campaign-monitor/v1/json/list_active_subscribers.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "ConsentToTrack": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CustomFields": {
+ "items": {
+ "properties": {
+ "Key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Date": {
+ "type": "date-time"
+ },
+ "EmailAddress": {
+ "type": "string"
+ },
+ "ListID": {
+ "type": "string"
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReadsEmailWith": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "State": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/campaign-monitor/v1/json/list_bounced_subscribers.json b/_data/taps/schemas/campaign-monitor/v1/json/list_bounced_subscribers.json
new file mode 100644
index 000000000..723bae517
--- /dev/null
+++ b/_data/taps/schemas/campaign-monitor/v1/json/list_bounced_subscribers.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "ConsentToTrack": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CustomFields": {
+ "items": {
+ "properties": {
+ "Key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Date": {
+ "type": "date-time"
+ },
+ "EmailAddress": {
+ "type": "string"
+ },
+ "ListID": {
+ "type": "string"
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReadsEmailWith": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "State": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/campaign-monitor/v1/json/list_deleted_subscribers.json b/_data/taps/schemas/campaign-monitor/v1/json/list_deleted_subscribers.json
new file mode 100644
index 000000000..723bae517
--- /dev/null
+++ b/_data/taps/schemas/campaign-monitor/v1/json/list_deleted_subscribers.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "ConsentToTrack": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CustomFields": {
+ "items": {
+ "properties": {
+ "Key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Date": {
+ "type": "date-time"
+ },
+ "EmailAddress": {
+ "type": "string"
+ },
+ "ListID": {
+ "type": "string"
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReadsEmailWith": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "State": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/campaign-monitor/v1/json/list_details.json b/_data/taps/schemas/campaign-monitor/v1/json/list_details.json
new file mode 100644
index 000000000..a1c4579e3
--- /dev/null
+++ b/_data/taps/schemas/campaign-monitor/v1/json/list_details.json
@@ -0,0 +1,38 @@
+{
+ "properties": {
+ "ConfirmationSuccessPage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ConfirmedOptIn": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ListID": {
+ "type": "string"
+ },
+ "Title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UnsubscribePage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UnsubscribeSetting": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/campaign-monitor/v1/json/list_unconfirmed_subscribers.json b/_data/taps/schemas/campaign-monitor/v1/json/list_unconfirmed_subscribers.json
new file mode 100644
index 000000000..723bae517
--- /dev/null
+++ b/_data/taps/schemas/campaign-monitor/v1/json/list_unconfirmed_subscribers.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "ConsentToTrack": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CustomFields": {
+ "items": {
+ "properties": {
+ "Key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Date": {
+ "type": "date-time"
+ },
+ "EmailAddress": {
+ "type": "string"
+ },
+ "ListID": {
+ "type": "string"
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReadsEmailWith": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "State": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/campaign-monitor/v1/json/list_unsubscribed_subscribers.json b/_data/taps/schemas/campaign-monitor/v1/json/list_unsubscribed_subscribers.json
new file mode 100644
index 000000000..723bae517
--- /dev/null
+++ b/_data/taps/schemas/campaign-monitor/v1/json/list_unsubscribed_subscribers.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "ConsentToTrack": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CustomFields": {
+ "items": {
+ "properties": {
+ "Key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Date": {
+ "type": "date-time"
+ },
+ "EmailAddress": {
+ "type": "string"
+ },
+ "ListID": {
+ "type": "string"
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReadsEmailWith": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "State": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/campaign-monitor/v1/json/lists.json b/_data/taps/schemas/campaign-monitor/v1/json/lists.json
new file mode 100644
index 000000000..b433414fc
--- /dev/null
+++ b/_data/taps/schemas/campaign-monitor/v1/json/lists.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "ListID": {
+ "type": "string"
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v1/chargebee-v1-foreign-keys.yml b/_data/taps/schemas/chargebee/v1/chargebee-v1-foreign-keys.yml
new file mode 100644
index 000000000..0096ed04e
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v1/chargebee-v1-foreign-keys.yml
@@ -0,0 +1,2401 @@
+tap: chargebee
+version: '1'
+keys:
+ addons_:
+ - table: addons
+ keys:
+ - id
+ - table: coupons
+ keys:
+ - addon_ids
+ - table: events
+ keys:
+ - content.subscription.addons.id
+ - content.subscription.charged_event_based_addons.id
+ - content.subscription.event_based_addons.id
+ - table: invoices
+ keys:
+ - notes.entity_id
+ - table: plans
+ keys:
+ - applicable_addons.id
+ - table: subscriptions
+ keys:
+ - addons.id
+ - charged_event_based_addons.id
+ - event_based_addons.id
+ cards_:
+ - table: cards
+ keys:
+ - id
+ coupons_coupon_id:
+ - table: coupons
+ keys:
+ - id
+ - table: credit_notes
+ keys:
+ - discounts.entity_id
+ - line_item_discounts.coupon_id
+ - table: events
+ keys:
+ - content.coupon.id
+ - content.invoice.discounts.entity_id
+ - content.invoice.line_item_discounts.coupon_id
+ - content.subscription.coupons.coupon_id
+ - table: invoices
+ keys:
+ - discounts.entity_id
+ - line_item_discounts.coupon_id
+ - notes.entity_id
+ - table: subscriptions
+ keys:
+ - coupons.coupon_id
+ - table: orders
+ keys:
+ - line_item_discounts.coupon_id
+ credit_notes_cn_id:
+ - table: credit_notes
+ keys:
+ - id
+ - table: events
+ keys:
+ - content.invoice.adjustment_credit_notes.cn_id
+ - content.invoice.applied_credits.cn_id
+ - content.invoice.issued_credit_notes.cn_id
+ - table: invoices
+ keys:
+ - adjustment_credit_notes.cn_id
+ - applied_credits.cn_id
+ - issued_credit_notes.cn_id
+ - table: orders
+ keys:
+ - linked_credit_notes.id
+ customers_customer_id:
+ - table: credit_notes
+ keys:
+ - customer_id
+ - table: customers
+ keys:
+ - id
+ - table: events
+ keys:
+ - content.customer.id
+ - content.invoice.customer_id
+ - content.subscription.customer_id
+ - content.transaction.customer_id
+ - table: invoices
+ keys:
+ - customer_id
+ - notes.entity_id
+ - table: payment_sources
+ keys:
+ - customer_id
+ - table: promotional_credits
+ keys:
+ - customer_id
+ - table: subscriptions
+ keys:
+ - customer_id
+ - table: transactions
+ keys:
+ - customer_id
+ - table: virtual_bank_accounts
+ keys:
+ - customer_id
+ - table: gifts
+ keys:
+ - gift_receiver.customer_id
+ - gifter.customer_id
+ - table: orders
+ keys:
+ - customer_id
+ gifts_id:
+ - table: gifts
+ keys:
+ - id
+ - table: orders
+ keys:
+ - gift_id
+ - table: subscriptions
+ keys:
+ - gift_id
+ invoices_invoice_id:
+ - table: credit_notes
+ keys:
+ - allocations.invoice_id
+ - reference_invoice_id
+ - table: events
+ keys:
+ - content.invoice.id
+ - content.transaction.linked_credit_notes.cn_reference_invoice_id
+ - table: invoices
+ keys:
+ - id
+ - table: transactions
+ keys:
+ - linked_credit_notes.cn_reference_invoice_id
+ - table: gifts
+ keys:
+ - gifter.invoice_id
+ - table: orders
+ keys:
+ - invoice_id
+ item_families_item_family_id:
+ - table: item_families
+ keys:
+ - id
+ - table: item_prices
+ keys:
+ - item_family_id
+ - table: items
+ keys:
+ - item_family_id
+ item_prices_item_price_id:
+ - table: item_prices
+ keys:
+ - id
+ items_item_id:
+ - table: items
+ keys:
+ - id
+ - table: item_prices
+ keys:
+ - item_id
+ _line_item_id:
+ - table: credit_notes
+ keys:
+ - line_item_discounts.line_item_id
+ - line_item_taxes.line_item_id
+ - line_item_tiers.line_item_id
+ - line_items.id
+ - table: events
+ keys:
+ - content.invoice.line_item_discounts.line_item_id
+ - content.invoice.line_item_taxes.line_item_id
+ - content.invoice.line_items.id
+ - table: invoices
+ keys:
+ - line_item_discounts.line_item_id
+ - line_item_taxes.line_item_id
+ - line_item_tiers.line_item_id
+ - line_items.id
+ - table: orders
+ keys:
+ - line_item_discounts.line_item_id
+ - line_item_taxes.line_item_id
+ plans_plan_id:
+ - table: coupons
+ keys:
+ - plan_ids
+ - table: events
+ keys:
+ - content.coupon.plan_ids
+ - content.subscription.plan_id
+ - table: plans
+ keys:
+ - id
+ - table: invoices
+ keys:
+ - notes.entity_id
+ - table: subscriptions
+ keys:
+ - plan_id
+ payment_sources_payment_source_id:
+ - table: customers
+ keys:
+ - primary_payment_source_id
+ - table: events
+ keys:
+ - content.subscription.payment_source_id
+ - content.transaction.payment_source_id
+ - table: payment_sources
+ keys:
+ - id
+ - table: subscriptions
+ keys:
+ - payment_source_id
+ - table: transactions
+ keys:
+ - payment_source_id
+ subscriptions_subscription_id:
+ - table: credit_notes
+ keys:
+ - subscription_id
+ - line_items.subscription_id
+ - table: events
+ keys:
+ - content.subscription.id
+ - content.invoice.subscription_id
+ - content.transaction.subscription_id
+ - table: invoices
+ keys:
+ - line_items.subscription_id
+ - notes.entity_id
+ - subscription_id
+ - table: subscriptions
+ keys:
+ - id
+ - table: transactions
+ keys:
+ - subscription_id
+ - table: gifts
+ keys:
+ - gift_receiver.subscription_id
+ - table: orders
+ keys:
+ - subscription_id
+ transactions_txn_id:
+ - table: credit_notes
+ keys:
+ - linked_refunds.txn_id
+ - table: events
+ keys:
+ - content.invoice.linked_payments.txn_id
+ - content.transaction.id
+ - content.transaction.id
+ - content.transaction.linked_refunds.txn_id
+ - content.transaction.reference_transaction_id
+ - content.transaction.refunded_txn_id
+ - table: invoices
+ keys:
+ - linked_payments.txn_id
+ - table: transactions
+ keys:
+ - id
+ - linked_refunds.txn_id
+ - reference_transaction_id
+ - refunded_txn_id
+ orders_id:
+ - table: invoices
+ keys:
+ - linked_orders.id
+ - table: orders
+ keys:
+ - id
+tables:
+- table-name: addons
+ join:
+ - table-name: coupons
+ keys:
+ - key: id
+ foreign-key: addon_ids
+ - table-name: events
+ keys:
+ - key: id
+ foreign-key: content.subscription.addons.id
+ - key: id
+ foreign-key: content.subscription.charged_event_based_addons.id
+ - key: id
+ foreign-key: content.subscription.event_based_addons.id
+ - table-name: invoices
+ keys:
+ - key: id
+ foreign-key: notes.entity_id
+ - table-name: plans
+ keys:
+ - key: id
+ foreign-key: applicable_addons.id
+ - table-name: subscriptions
+ keys:
+ - key: id
+ foreign-key: addons.id
+ - key: id
+ foreign-key: charged_event_based_addons.id
+ - key: id
+ foreign-key: event_based_addons.id
+- table-name: coupons
+ join:
+ - table-name: addons
+ keys:
+ - key: addon_ids
+ foreign-key: id
+ - table-name: events
+ keys:
+ - key: addon_ids
+ foreign-key: content.subscription.addons.id
+ - key: addon_ids
+ foreign-key: content.subscription.charged_event_based_addons.id
+ - key: addon_ids
+ foreign-key: content.subscription.event_based_addons.id
+ - key: id
+ foreign-key: content.coupon.id
+ - key: id
+ foreign-key: content.invoice.discounts.entity_id
+ - key: id
+ foreign-key: content.invoice.line_item_discounts.coupon_id
+ - key: id
+ foreign-key: content.subscription.coupons.coupon_id
+ - key: plan_ids
+ foreign-key: content.coupon.plan_ids
+ - key: plan_ids
+ foreign-key: content.subscription.plan_id
+ - table-name: invoices
+ keys:
+ - key: addon_ids
+ foreign-key: notes.entity_id
+ - key: id
+ foreign-key: discounts.entity_id
+ - key: id
+ foreign-key: line_item_discounts.coupon_id
+ - key: id
+ foreign-key: notes.entity_id
+ - key: plan_ids
+ foreign-key: notes.entity_id
+ - table-name: plans
+ keys:
+ - key: addon_ids
+ foreign-key: applicable_addons.id
+ - key: plan_ids
+ foreign-key: id
+ - table-name: subscriptions
+ keys:
+ - key: addon_ids
+ foreign-key: addons.id
+ - key: addon_ids
+ foreign-key: charged_event_based_addons.id
+ - key: addon_ids
+ foreign-key: event_based_addons.id
+ - key: id
+ foreign-key: coupons.coupon_id
+ - key: plan_ids
+ foreign-key: plan_id
+ - table-name: credit_notes
+ keys:
+ - key: id
+ foreign-key: discounts.entity_id
+ - key: id
+ foreign-key: line_item_discounts.coupon_id
+ - table-name: orders
+ keys:
+ - key: id
+ foreign-key: line_item_discounts.coupon_id
+- table-name: events
+ join:
+ - table-name: addons
+ keys:
+ - key: content.subscription.addons.id
+ foreign-key: id
+ - key: content.subscription.charged_event_based_addons.id
+ foreign-key: id
+ - key: content.subscription.event_based_addons.id
+ foreign-key: id
+ - table-name: coupons
+ keys:
+ - key: content.subscription.addons.id
+ foreign-key: addon_ids
+ - key: content.subscription.charged_event_based_addons.id
+ foreign-key: addon_ids
+ - key: content.subscription.event_based_addons.id
+ foreign-key: addon_ids
+ - key: content.coupon.id
+ foreign-key: id
+ - key: content.invoice.discounts.entity_id
+ foreign-key: id
+ - key: content.invoice.line_item_discounts.coupon_id
+ foreign-key: id
+ - key: content.subscription.coupons.coupon_id
+ foreign-key: id
+ - key: content.coupon.plan_ids
+ foreign-key: plan_ids
+ - key: content.subscription.plan_id
+ foreign-key: plan_ids
+ - table-name: invoices
+ keys:
+ - key: content.subscription.addons.id
+ foreign-key: notes.entity_id
+ - key: content.subscription.charged_event_based_addons.id
+ foreign-key: notes.entity_id
+ - key: content.subscription.event_based_addons.id
+ foreign-key: notes.entity_id
+ - key: content.coupon.id
+ foreign-key: discounts.entity_id
+ - key: content.invoice.discounts.entity_id
+ foreign-key: discounts.entity_id
+ - key: content.invoice.line_item_discounts.coupon_id
+ foreign-key: discounts.entity_id
+ - key: content.subscription.coupons.coupon_id
+ foreign-key: discounts.entity_id
+ - key: content.coupon.id
+ foreign-key: line_item_discounts.coupon_id
+ - key: content.invoice.discounts.entity_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: content.invoice.line_item_discounts.coupon_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: content.subscription.coupons.coupon_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: content.coupon.id
+ foreign-key: notes.entity_id
+ - key: content.invoice.discounts.entity_id
+ foreign-key: notes.entity_id
+ - key: content.invoice.line_item_discounts.coupon_id
+ foreign-key: notes.entity_id
+ - key: content.subscription.coupons.coupon_id
+ foreign-key: notes.entity_id
+ - key: content.invoice.adjustment_credit_notes.cn_id
+ foreign-key: adjustment_credit_notes.cn_id
+ - key: content.invoice.applied_credits.cn_id
+ foreign-key: adjustment_credit_notes.cn_id
+ - key: content.invoice.issued_credit_notes.cn_id
+ foreign-key: adjustment_credit_notes.cn_id
+ - key: content.invoice.adjustment_credit_notes.cn_id
+ foreign-key: applied_credits.cn_id
+ - key: content.invoice.applied_credits.cn_id
+ foreign-key: applied_credits.cn_id
+ - key: content.invoice.issued_credit_notes.cn_id
+ foreign-key: applied_credits.cn_id
+ - key: content.invoice.adjustment_credit_notes.cn_id
+ foreign-key: issued_credit_notes.cn_id
+ - key: content.invoice.applied_credits.cn_id
+ foreign-key: issued_credit_notes.cn_id
+ - key: content.invoice.issued_credit_notes.cn_id
+ foreign-key: issued_credit_notes.cn_id
+ - key: content.customer.id
+ foreign-key: customer_id
+ - key: content.invoice.customer_id
+ foreign-key: customer_id
+ - key: content.subscription.customer_id
+ foreign-key: customer_id
+ - key: content.transaction.customer_id
+ foreign-key: customer_id
+ - key: content.customer.id
+ foreign-key: notes.entity_id
+ - key: content.invoice.customer_id
+ foreign-key: notes.entity_id
+ - key: content.subscription.customer_id
+ foreign-key: notes.entity_id
+ - key: content.transaction.customer_id
+ foreign-key: notes.entity_id
+ - key: content.invoice.id
+ foreign-key: id
+ - key: content.transaction.linked_credit_notes.cn_reference_invoice_id
+ foreign-key: id
+ - key: content.invoice.line_item_discounts.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: content.invoice.line_item_taxes.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: content.invoice.line_items.id
+ foreign-key: line_item_discounts.line_item_id
+ - key: content.invoice.line_item_discounts.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: content.invoice.line_item_taxes.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: content.invoice.line_items.id
+ foreign-key: line_item_taxes.line_item_id
+ - key: content.invoice.line_item_discounts.line_item_id
+ foreign-key: line_item_tiers.line_item_id
+ - key: content.invoice.line_item_taxes.line_item_id
+ foreign-key: line_item_tiers.line_item_id
+ - key: content.invoice.line_items.id
+ foreign-key: line_item_tiers.line_item_id
+ - key: content.invoice.line_item_discounts.line_item_id
+ foreign-key: line_items.id
+ - key: content.invoice.line_item_taxes.line_item_id
+ foreign-key: line_items.id
+ - key: content.invoice.line_items.id
+ foreign-key: line_items.id
+ - key: content.coupon.plan_ids
+ foreign-key: notes.entity_id
+ - key: content.subscription.plan_id
+ foreign-key: notes.entity_id
+ - key: content.subscription.id
+ foreign-key: line_items.subscription_id
+ - key: content.invoice.subscription_id
+ foreign-key: line_items.subscription_id
+ - key: content.transaction.subscription_id
+ foreign-key: line_items.subscription_id
+ - key: content.subscription.id
+ foreign-key: notes.entity_id
+ - key: content.invoice.subscription_id
+ foreign-key: notes.entity_id
+ - key: content.transaction.subscription_id
+ foreign-key: notes.entity_id
+ - key: content.subscription.id
+ foreign-key: subscription_id
+ - key: content.invoice.subscription_id
+ foreign-key: subscription_id
+ - key: content.transaction.subscription_id
+ foreign-key: subscription_id
+ - key: content.invoice.linked_payments.txn_id
+ foreign-key: linked_payments.txn_id
+ - key: content.transaction.id
+ foreign-key: linked_payments.txn_id
+ - key: content.transaction.linked_refunds.txn_id
+ foreign-key: linked_payments.txn_id
+ - key: content.transaction.reference_transaction_id
+ foreign-key: linked_payments.txn_id
+ - key: content.transaction.refunded_txn_id
+ foreign-key: linked_payments.txn_id
+ - table-name: plans
+ keys:
+ - key: content.subscription.addons.id
+ foreign-key: applicable_addons.id
+ - key: content.subscription.charged_event_based_addons.id
+ foreign-key: applicable_addons.id
+ - key: content.subscription.event_based_addons.id
+ foreign-key: applicable_addons.id
+ - key: content.coupon.plan_ids
+ foreign-key: id
+ - key: content.subscription.plan_id
+ foreign-key: id
+ - table-name: subscriptions
+ keys:
+ - key: content.subscription.addons.id
+ foreign-key: addons.id
+ - key: content.subscription.charged_event_based_addons.id
+ foreign-key: addons.id
+ - key: content.subscription.event_based_addons.id
+ foreign-key: addons.id
+ - key: content.subscription.addons.id
+ foreign-key: charged_event_based_addons.id
+ - key: content.subscription.charged_event_based_addons.id
+ foreign-key: charged_event_based_addons.id
+ - key: content.subscription.event_based_addons.id
+ foreign-key: charged_event_based_addons.id
+ - key: content.subscription.addons.id
+ foreign-key: event_based_addons.id
+ - key: content.subscription.charged_event_based_addons.id
+ foreign-key: event_based_addons.id
+ - key: content.subscription.event_based_addons.id
+ foreign-key: event_based_addons.id
+ - key: content.coupon.id
+ foreign-key: coupons.coupon_id
+ - key: content.invoice.discounts.entity_id
+ foreign-key: coupons.coupon_id
+ - key: content.invoice.line_item_discounts.coupon_id
+ foreign-key: coupons.coupon_id
+ - key: content.subscription.coupons.coupon_id
+ foreign-key: coupons.coupon_id
+ - key: content.customer.id
+ foreign-key: customer_id
+ - key: content.invoice.customer_id
+ foreign-key: customer_id
+ - key: content.subscription.customer_id
+ foreign-key: customer_id
+ - key: content.transaction.customer_id
+ foreign-key: customer_id
+ - key: content.coupon.plan_ids
+ foreign-key: plan_id
+ - key: content.subscription.plan_id
+ foreign-key: plan_id
+ - key: content.subscription.payment_source_id
+ foreign-key: payment_source_id
+ - key: content.transaction.payment_source_id
+ foreign-key: payment_source_id
+ - key: content.subscription.id
+ foreign-key: id
+ - key: content.invoice.subscription_id
+ foreign-key: id
+ - key: content.transaction.subscription_id
+ foreign-key: id
+ - table-name: credit_notes
+ keys:
+ - key: content.coupon.id
+ foreign-key: discounts.entity_id
+ - key: content.invoice.discounts.entity_id
+ foreign-key: discounts.entity_id
+ - key: content.invoice.line_item_discounts.coupon_id
+ foreign-key: discounts.entity_id
+ - key: content.subscription.coupons.coupon_id
+ foreign-key: discounts.entity_id
+ - key: content.coupon.id
+ foreign-key: line_item_discounts.coupon_id
+ - key: content.invoice.discounts.entity_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: content.invoice.line_item_discounts.coupon_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: content.subscription.coupons.coupon_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: content.invoice.adjustment_credit_notes.cn_id
+ foreign-key: id
+ - key: content.invoice.applied_credits.cn_id
+ foreign-key: id
+ - key: content.invoice.issued_credit_notes.cn_id
+ foreign-key: id
+ - key: content.customer.id
+ foreign-key: customer_id
+ - key: content.invoice.customer_id
+ foreign-key: customer_id
+ - key: content.subscription.customer_id
+ foreign-key: customer_id
+ - key: content.transaction.customer_id
+ foreign-key: customer_id
+ - key: content.invoice.id
+ foreign-key: allocations.invoice_id
+ - key: content.transaction.linked_credit_notes.cn_reference_invoice_id
+ foreign-key: allocations.invoice_id
+ - key: content.invoice.id
+ foreign-key: reference_invoice_id
+ - key: content.transaction.linked_credit_notes.cn_reference_invoice_id
+ foreign-key: reference_invoice_id
+ - key: content.invoice.line_item_discounts.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: content.invoice.line_item_taxes.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: content.invoice.line_items.id
+ foreign-key: line_item_discounts.line_item_id
+ - key: content.invoice.line_item_discounts.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: content.invoice.line_item_taxes.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: content.invoice.line_items.id
+ foreign-key: line_item_taxes.line_item_id
+ - key: content.invoice.line_item_discounts.line_item_id
+ foreign-key: line_item_tiers.line_item_id
+ - key: content.invoice.line_item_taxes.line_item_id
+ foreign-key: line_item_tiers.line_item_id
+ - key: content.invoice.line_items.id
+ foreign-key: line_item_tiers.line_item_id
+ - key: content.invoice.line_item_discounts.line_item_id
+ foreign-key: line_items.id
+ - key: content.invoice.line_item_taxes.line_item_id
+ foreign-key: line_items.id
+ - key: content.invoice.line_items.id
+ foreign-key: line_items.id
+ - key: content.subscription.id
+ foreign-key: subscription_id
+ - key: content.invoice.subscription_id
+ foreign-key: subscription_id
+ - key: content.transaction.subscription_id
+ foreign-key: subscription_id
+ - key: content.subscription.id
+ foreign-key: line_items.subscription_id
+ - key: content.invoice.subscription_id
+ foreign-key: line_items.subscription_id
+ - key: content.transaction.subscription_id
+ foreign-key: line_items.subscription_id
+ - key: content.invoice.linked_payments.txn_id
+ foreign-key: linked_refunds.txn_id
+ - key: content.transaction.id
+ foreign-key: linked_refunds.txn_id
+ - key: content.transaction.linked_refunds.txn_id
+ foreign-key: linked_refunds.txn_id
+ - key: content.transaction.reference_transaction_id
+ foreign-key: linked_refunds.txn_id
+ - key: content.transaction.refunded_txn_id
+ foreign-key: linked_refunds.txn_id
+ - table-name: orders
+ keys:
+ - key: content.coupon.id
+ foreign-key: line_item_discounts.coupon_id
+ - key: content.invoice.discounts.entity_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: content.invoice.line_item_discounts.coupon_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: content.subscription.coupons.coupon_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: content.invoice.adjustment_credit_notes.cn_id
+ foreign-key: linked_credit_notes.id
+ - key: content.invoice.applied_credits.cn_id
+ foreign-key: linked_credit_notes.id
+ - key: content.invoice.issued_credit_notes.cn_id
+ foreign-key: linked_credit_notes.id
+ - key: content.customer.id
+ foreign-key: customer_id
+ - key: content.invoice.customer_id
+ foreign-key: customer_id
+ - key: content.subscription.customer_id
+ foreign-key: customer_id
+ - key: content.transaction.customer_id
+ foreign-key: customer_id
+ - key: content.invoice.id
+ foreign-key: invoice_id
+ - key: content.transaction.linked_credit_notes.cn_reference_invoice_id
+ foreign-key: invoice_id
+ - key: content.invoice.line_item_discounts.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: content.invoice.line_item_taxes.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: content.invoice.line_items.id
+ foreign-key: line_item_discounts.line_item_id
+ - key: content.invoice.line_item_discounts.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: content.invoice.line_item_taxes.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: content.invoice.line_items.id
+ foreign-key: line_item_taxes.line_item_id
+ - key: content.subscription.id
+ foreign-key: subscription_id
+ - key: content.invoice.subscription_id
+ foreign-key: subscription_id
+ - key: content.transaction.subscription_id
+ foreign-key: subscription_id
+ - table-name: customers
+ keys:
+ - key: content.customer.id
+ foreign-key: id
+ - key: content.invoice.customer_id
+ foreign-key: id
+ - key: content.subscription.customer_id
+ foreign-key: id
+ - key: content.transaction.customer_id
+ foreign-key: id
+ - key: content.subscription.payment_source_id
+ foreign-key: primary_payment_source_id
+ - key: content.transaction.payment_source_id
+ foreign-key: primary_payment_source_id
+ - table-name: payment_sources
+ keys:
+ - key: content.customer.id
+ foreign-key: customer_id
+ - key: content.invoice.customer_id
+ foreign-key: customer_id
+ - key: content.subscription.customer_id
+ foreign-key: customer_id
+ - key: content.transaction.customer_id
+ foreign-key: customer_id
+ - key: content.subscription.payment_source_id
+ foreign-key: id
+ - key: content.transaction.payment_source_id
+ foreign-key: id
+ - table-name: promotional_credits
+ keys:
+ - key: content.customer.id
+ foreign-key: customer_id
+ - key: content.invoice.customer_id
+ foreign-key: customer_id
+ - key: content.subscription.customer_id
+ foreign-key: customer_id
+ - key: content.transaction.customer_id
+ foreign-key: customer_id
+ - table-name: transactions
+ keys:
+ - key: content.customer.id
+ foreign-key: customer_id
+ - key: content.invoice.customer_id
+ foreign-key: customer_id
+ - key: content.subscription.customer_id
+ foreign-key: customer_id
+ - key: content.transaction.customer_id
+ foreign-key: customer_id
+ - key: content.invoice.id
+ foreign-key: linked_credit_notes.cn_reference_invoice_id
+ - key: content.transaction.linked_credit_notes.cn_reference_invoice_id
+ foreign-key: linked_credit_notes.cn_reference_invoice_id
+ - key: content.subscription.payment_source_id
+ foreign-key: payment_source_id
+ - key: content.transaction.payment_source_id
+ foreign-key: payment_source_id
+ - key: content.subscription.id
+ foreign-key: subscription_id
+ - key: content.invoice.subscription_id
+ foreign-key: subscription_id
+ - key: content.transaction.subscription_id
+ foreign-key: subscription_id
+ - key: content.invoice.linked_payments.txn_id
+ foreign-key: id
+ - key: content.transaction.id
+ foreign-key: id
+ - key: content.transaction.linked_refunds.txn_id
+ foreign-key: id
+ - key: content.transaction.reference_transaction_id
+ foreign-key: id
+ - key: content.transaction.refunded_txn_id
+ foreign-key: id
+ - key: content.invoice.linked_payments.txn_id
+ foreign-key: linked_refunds.txn_id
+ - key: content.transaction.id
+ foreign-key: linked_refunds.txn_id
+ - key: content.transaction.linked_refunds.txn_id
+ foreign-key: linked_refunds.txn_id
+ - key: content.transaction.reference_transaction_id
+ foreign-key: linked_refunds.txn_id
+ - key: content.transaction.refunded_txn_id
+ foreign-key: linked_refunds.txn_id
+ - key: content.invoice.linked_payments.txn_id
+ foreign-key: reference_transaction_id
+ - key: content.transaction.id
+ foreign-key: reference_transaction_id
+ - key: content.transaction.linked_refunds.txn_id
+ foreign-key: reference_transaction_id
+ - key: content.transaction.reference_transaction_id
+ foreign-key: reference_transaction_id
+ - key: content.transaction.refunded_txn_id
+ foreign-key: reference_transaction_id
+ - key: content.invoice.linked_payments.txn_id
+ foreign-key: refunded_txn_id
+ - key: content.transaction.id
+ foreign-key: refunded_txn_id
+ - key: content.transaction.linked_refunds.txn_id
+ foreign-key: refunded_txn_id
+ - key: content.transaction.reference_transaction_id
+ foreign-key: refunded_txn_id
+ - key: content.transaction.refunded_txn_id
+ foreign-key: refunded_txn_id
+ - table-name: virtual_bank_accounts
+ keys:
+ - key: content.customer.id
+ foreign-key: customer_id
+ - key: content.invoice.customer_id
+ foreign-key: customer_id
+ - key: content.subscription.customer_id
+ foreign-key: customer_id
+ - key: content.transaction.customer_id
+ foreign-key: customer_id
+ - table-name: gifts
+ keys:
+ - key: content.customer.id
+ foreign-key: gift_receiver.customer_id
+ - key: content.invoice.customer_id
+ foreign-key: gift_receiver.customer_id
+ - key: content.subscription.customer_id
+ foreign-key: gift_receiver.customer_id
+ - key: content.transaction.customer_id
+ foreign-key: gift_receiver.customer_id
+ - key: content.customer.id
+ foreign-key: gifter.customer_id
+ - key: content.invoice.customer_id
+ foreign-key: gifter.customer_id
+ - key: content.subscription.customer_id
+ foreign-key: gifter.customer_id
+ - key: content.transaction.customer_id
+ foreign-key: gifter.customer_id
+ - key: content.invoice.id
+ foreign-key: gifter.invoice_id
+ - key: content.transaction.linked_credit_notes.cn_reference_invoice_id
+ foreign-key: gifter.invoice_id
+ - key: content.subscription.id
+ foreign-key: gift_receiver.subscription_id
+ - key: content.invoice.subscription_id
+ foreign-key: gift_receiver.subscription_id
+ - key: content.transaction.subscription_id
+ foreign-key: gift_receiver.subscription_id
+- table-name: invoices
+ join:
+ - table-name: addons
+ keys:
+ - key: notes.entity_id
+ foreign-key: id
+ - table-name: coupons
+ keys:
+ - key: notes.entity_id
+ foreign-key: addon_ids
+ - key: discounts.entity_id
+ foreign-key: id
+ - key: line_item_discounts.coupon_id
+ foreign-key: id
+ - key: notes.entity_id
+ foreign-key: id
+ - key: notes.entity_id
+ foreign-key: plan_ids
+ - table-name: events
+ keys:
+ - key: notes.entity_id
+ foreign-key: content.subscription.addons.id
+ - key: notes.entity_id
+ foreign-key: content.subscription.charged_event_based_addons.id
+ - key: notes.entity_id
+ foreign-key: content.subscription.event_based_addons.id
+ - key: discounts.entity_id
+ foreign-key: content.coupon.id
+ - key: line_item_discounts.coupon_id
+ foreign-key: content.coupon.id
+ - key: notes.entity_id
+ foreign-key: content.coupon.id
+ - key: discounts.entity_id
+ foreign-key: content.invoice.discounts.entity_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: content.invoice.discounts.entity_id
+ - key: notes.entity_id
+ foreign-key: content.invoice.discounts.entity_id
+ - key: discounts.entity_id
+ foreign-key: content.invoice.line_item_discounts.coupon_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: content.invoice.line_item_discounts.coupon_id
+ - key: notes.entity_id
+ foreign-key: content.invoice.line_item_discounts.coupon_id
+ - key: discounts.entity_id
+ foreign-key: content.subscription.coupons.coupon_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: content.subscription.coupons.coupon_id
+ - key: notes.entity_id
+ foreign-key: content.subscription.coupons.coupon_id
+ - key: adjustment_credit_notes.cn_id
+ foreign-key: content.invoice.adjustment_credit_notes.cn_id
+ - key: applied_credits.cn_id
+ foreign-key: content.invoice.adjustment_credit_notes.cn_id
+ - key: issued_credit_notes.cn_id
+ foreign-key: content.invoice.adjustment_credit_notes.cn_id
+ - key: adjustment_credit_notes.cn_id
+ foreign-key: content.invoice.applied_credits.cn_id
+ - key: applied_credits.cn_id
+ foreign-key: content.invoice.applied_credits.cn_id
+ - key: issued_credit_notes.cn_id
+ foreign-key: content.invoice.applied_credits.cn_id
+ - key: adjustment_credit_notes.cn_id
+ foreign-key: content.invoice.issued_credit_notes.cn_id
+ - key: applied_credits.cn_id
+ foreign-key: content.invoice.issued_credit_notes.cn_id
+ - key: issued_credit_notes.cn_id
+ foreign-key: content.invoice.issued_credit_notes.cn_id
+ - key: customer_id
+ foreign-key: content.customer.id
+ - key: notes.entity_id
+ foreign-key: content.customer.id
+ - key: customer_id
+ foreign-key: content.invoice.customer_id
+ - key: notes.entity_id
+ foreign-key: content.invoice.customer_id
+ - key: customer_id
+ foreign-key: content.subscription.customer_id
+ - key: notes.entity_id
+ foreign-key: content.subscription.customer_id
+ - key: customer_id
+ foreign-key: content.transaction.customer_id
+ - key: notes.entity_id
+ foreign-key: content.transaction.customer_id
+ - key: id
+ foreign-key: content.invoice.id
+ - key: id
+ foreign-key: content.transaction.linked_credit_notes.cn_reference_invoice_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: content.invoice.line_item_discounts.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: content.invoice.line_item_discounts.line_item_id
+ - key: line_item_tiers.line_item_id
+ foreign-key: content.invoice.line_item_discounts.line_item_id
+ - key: line_items.id
+ foreign-key: content.invoice.line_item_discounts.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: content.invoice.line_item_taxes.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: content.invoice.line_item_taxes.line_item_id
+ - key: line_item_tiers.line_item_id
+ foreign-key: content.invoice.line_item_taxes.line_item_id
+ - key: line_items.id
+ foreign-key: content.invoice.line_item_taxes.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: content.invoice.line_items.id
+ - key: line_item_taxes.line_item_id
+ foreign-key: content.invoice.line_items.id
+ - key: line_item_tiers.line_item_id
+ foreign-key: content.invoice.line_items.id
+ - key: line_items.id
+ foreign-key: content.invoice.line_items.id
+ - key: notes.entity_id
+ foreign-key: content.coupon.plan_ids
+ - key: notes.entity_id
+ foreign-key: content.subscription.plan_id
+ - key: line_items.subscription_id
+ foreign-key: content.subscription.id
+ - key: notes.entity_id
+ foreign-key: content.subscription.id
+ - key: subscription_id
+ foreign-key: content.subscription.id
+ - key: line_items.subscription_id
+ foreign-key: content.invoice.subscription_id
+ - key: notes.entity_id
+ foreign-key: content.invoice.subscription_id
+ - key: subscription_id
+ foreign-key: content.invoice.subscription_id
+ - key: line_items.subscription_id
+ foreign-key: content.transaction.subscription_id
+ - key: notes.entity_id
+ foreign-key: content.transaction.subscription_id
+ - key: subscription_id
+ foreign-key: content.transaction.subscription_id
+ - key: linked_payments.txn_id
+ foreign-key: content.invoice.linked_payments.txn_id
+ - key: linked_payments.txn_id
+ foreign-key: content.transaction.id
+ - key: linked_payments.txn_id
+ foreign-key: content.transaction.linked_refunds.txn_id
+ - key: linked_payments.txn_id
+ foreign-key: content.transaction.reference_transaction_id
+ - key: linked_payments.txn_id
+ foreign-key: content.transaction.refunded_txn_id
+ - table-name: plans
+ keys:
+ - key: notes.entity_id
+ foreign-key: applicable_addons.id
+ - key: notes.entity_id
+ foreign-key: id
+ - table-name: subscriptions
+ keys:
+ - key: notes.entity_id
+ foreign-key: addons.id
+ - key: notes.entity_id
+ foreign-key: charged_event_based_addons.id
+ - key: notes.entity_id
+ foreign-key: event_based_addons.id
+ - key: discounts.entity_id
+ foreign-key: coupons.coupon_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: coupons.coupon_id
+ - key: notes.entity_id
+ foreign-key: coupons.coupon_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: notes.entity_id
+ foreign-key: customer_id
+ - key: notes.entity_id
+ foreign-key: plan_id
+ - key: line_items.subscription_id
+ foreign-key: id
+ - key: notes.entity_id
+ foreign-key: id
+ - key: subscription_id
+ foreign-key: id
+ - table-name: credit_notes
+ keys:
+ - key: discounts.entity_id
+ foreign-key: discounts.entity_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: discounts.entity_id
+ - key: notes.entity_id
+ foreign-key: discounts.entity_id
+ - key: discounts.entity_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: notes.entity_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: adjustment_credit_notes.cn_id
+ foreign-key: id
+ - key: applied_credits.cn_id
+ foreign-key: id
+ - key: issued_credit_notes.cn_id
+ foreign-key: id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: notes.entity_id
+ foreign-key: customer_id
+ - key: id
+ foreign-key: allocations.invoice_id
+ - key: id
+ foreign-key: reference_invoice_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: line_item_tiers.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: line_items.id
+ foreign-key: line_item_discounts.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: line_item_tiers.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: line_items.id
+ foreign-key: line_item_taxes.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: line_item_tiers.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: line_item_tiers.line_item_id
+ - key: line_item_tiers.line_item_id
+ foreign-key: line_item_tiers.line_item_id
+ - key: line_items.id
+ foreign-key: line_item_tiers.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: line_items.id
+ - key: line_item_taxes.line_item_id
+ foreign-key: line_items.id
+ - key: line_item_tiers.line_item_id
+ foreign-key: line_items.id
+ - key: line_items.id
+ foreign-key: line_items.id
+ - key: line_items.subscription_id
+ foreign-key: subscription_id
+ - key: notes.entity_id
+ foreign-key: subscription_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: line_items.subscription_id
+ foreign-key: line_items.subscription_id
+ - key: notes.entity_id
+ foreign-key: line_items.subscription_id
+ - key: subscription_id
+ foreign-key: line_items.subscription_id
+ - key: linked_payments.txn_id
+ foreign-key: linked_refunds.txn_id
+ - table-name: orders
+ keys:
+ - key: discounts.entity_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: notes.entity_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: adjustment_credit_notes.cn_id
+ foreign-key: linked_credit_notes.id
+ - key: applied_credits.cn_id
+ foreign-key: linked_credit_notes.id
+ - key: issued_credit_notes.cn_id
+ foreign-key: linked_credit_notes.id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: notes.entity_id
+ foreign-key: customer_id
+ - key: id
+ foreign-key: invoice_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: line_item_tiers.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: line_items.id
+ foreign-key: line_item_discounts.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: line_item_tiers.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: line_items.id
+ foreign-key: line_item_taxes.line_item_id
+ - key: line_items.subscription_id
+ foreign-key: subscription_id
+ - key: notes.entity_id
+ foreign-key: subscription_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: linked_orders.id
+ foreign-key: id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: id
+ - key: notes.entity_id
+ foreign-key: id
+ - table-name: payment_sources
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: notes.entity_id
+ foreign-key: customer_id
+ - table-name: promotional_credits
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: notes.entity_id
+ foreign-key: customer_id
+ - table-name: transactions
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: notes.entity_id
+ foreign-key: customer_id
+ - key: id
+ foreign-key: linked_credit_notes.cn_reference_invoice_id
+ - key: line_items.subscription_id
+ foreign-key: subscription_id
+ - key: notes.entity_id
+ foreign-key: subscription_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: linked_payments.txn_id
+ foreign-key: id
+ - key: linked_payments.txn_id
+ foreign-key: linked_refunds.txn_id
+ - key: linked_payments.txn_id
+ foreign-key: reference_transaction_id
+ - key: linked_payments.txn_id
+ foreign-key: refunded_txn_id
+ - table-name: virtual_bank_accounts
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: notes.entity_id
+ foreign-key: customer_id
+ - table-name: gifts
+ keys:
+ - key: customer_id
+ foreign-key: gift_receiver.customer_id
+ - key: notes.entity_id
+ foreign-key: gift_receiver.customer_id
+ - key: customer_id
+ foreign-key: gifter.customer_id
+ - key: notes.entity_id
+ foreign-key: gifter.customer_id
+ - key: id
+ foreign-key: gifter.invoice_id
+ - key: line_items.subscription_id
+ foreign-key: gift_receiver.subscription_id
+ - key: notes.entity_id
+ foreign-key: gift_receiver.subscription_id
+ - key: subscription_id
+ foreign-key: gift_receiver.subscription_id
+- table-name: plans
+ join:
+ - table-name: addons
+ keys:
+ - key: applicable_addons.id
+ foreign-key: id
+ - table-name: coupons
+ keys:
+ - key: applicable_addons.id
+ foreign-key: addon_ids
+ - key: id
+ foreign-key: plan_ids
+ - table-name: events
+ keys:
+ - key: applicable_addons.id
+ foreign-key: content.subscription.addons.id
+ - key: applicable_addons.id
+ foreign-key: content.subscription.charged_event_based_addons.id
+ - key: applicable_addons.id
+ foreign-key: content.subscription.event_based_addons.id
+ - key: id
+ foreign-key: content.coupon.plan_ids
+ - key: id
+ foreign-key: content.subscription.plan_id
+ - table-name: invoices
+ keys:
+ - key: applicable_addons.id
+ foreign-key: notes.entity_id
+ - key: id
+ foreign-key: notes.entity_id
+ - table-name: subscriptions
+ keys:
+ - key: applicable_addons.id
+ foreign-key: addons.id
+ - key: applicable_addons.id
+ foreign-key: charged_event_based_addons.id
+ - key: applicable_addons.id
+ foreign-key: event_based_addons.id
+ - key: id
+ foreign-key: plan_id
+- table-name: subscriptions
+ join:
+ - table-name: addons
+ keys:
+ - key: addons.id
+ foreign-key: id
+ - key: charged_event_based_addons.id
+ foreign-key: id
+ - key: event_based_addons.id
+ foreign-key: id
+ - table-name: coupons
+ keys:
+ - key: addons.id
+ foreign-key: addon_ids
+ - key: charged_event_based_addons.id
+ foreign-key: addon_ids
+ - key: event_based_addons.id
+ foreign-key: addon_ids
+ - key: coupons.coupon_id
+ foreign-key: id
+ - key: plan_id
+ foreign-key: plan_ids
+ - table-name: events
+ keys:
+ - key: addons.id
+ foreign-key: content.subscription.addons.id
+ - key: charged_event_based_addons.id
+ foreign-key: content.subscription.addons.id
+ - key: event_based_addons.id
+ foreign-key: content.subscription.addons.id
+ - key: addons.id
+ foreign-key: content.subscription.charged_event_based_addons.id
+ - key: charged_event_based_addons.id
+ foreign-key: content.subscription.charged_event_based_addons.id
+ - key: event_based_addons.id
+ foreign-key: content.subscription.charged_event_based_addons.id
+ - key: addons.id
+ foreign-key: content.subscription.event_based_addons.id
+ - key: charged_event_based_addons.id
+ foreign-key: content.subscription.event_based_addons.id
+ - key: event_based_addons.id
+ foreign-key: content.subscription.event_based_addons.id
+ - key: coupons.coupon_id
+ foreign-key: content.coupon.id
+ - key: coupons.coupon_id
+ foreign-key: content.invoice.discounts.entity_id
+ - key: coupons.coupon_id
+ foreign-key: content.invoice.line_item_discounts.coupon_id
+ - key: coupons.coupon_id
+ foreign-key: content.subscription.coupons.coupon_id
+ - key: customer_id
+ foreign-key: content.customer.id
+ - key: customer_id
+ foreign-key: content.invoice.customer_id
+ - key: customer_id
+ foreign-key: content.subscription.customer_id
+ - key: customer_id
+ foreign-key: content.transaction.customer_id
+ - key: plan_id
+ foreign-key: content.coupon.plan_ids
+ - key: plan_id
+ foreign-key: content.subscription.plan_id
+ - key: payment_source_id
+ foreign-key: content.subscription.payment_source_id
+ - key: payment_source_id
+ foreign-key: content.transaction.payment_source_id
+ - key: id
+ foreign-key: content.subscription.id
+ - key: id
+ foreign-key: content.invoice.subscription_id
+ - key: id
+ foreign-key: content.transaction.subscription_id
+ - table-name: invoices
+ keys:
+ - key: addons.id
+ foreign-key: notes.entity_id
+ - key: charged_event_based_addons.id
+ foreign-key: notes.entity_id
+ - key: event_based_addons.id
+ foreign-key: notes.entity_id
+ - key: coupons.coupon_id
+ foreign-key: discounts.entity_id
+ - key: coupons.coupon_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: coupons.coupon_id
+ foreign-key: notes.entity_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: customer_id
+ foreign-key: notes.entity_id
+ - key: plan_id
+ foreign-key: notes.entity_id
+ - key: id
+ foreign-key: line_items.subscription_id
+ - key: id
+ foreign-key: notes.entity_id
+ - key: id
+ foreign-key: subscription_id
+ - table-name: plans
+ keys:
+ - key: addons.id
+ foreign-key: applicable_addons.id
+ - key: charged_event_based_addons.id
+ foreign-key: applicable_addons.id
+ - key: event_based_addons.id
+ foreign-key: applicable_addons.id
+ - key: plan_id
+ foreign-key: id
+ - table-name: credit_notes
+ keys:
+ - key: coupons.coupon_id
+ foreign-key: discounts.entity_id
+ - key: coupons.coupon_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: id
+ foreign-key: subscription_id
+ - key: id
+ foreign-key: line_items.subscription_id
+ - table-name: orders
+ keys:
+ - key: coupons.coupon_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: gift_id
+ foreign-key: gift_id
+ - key: id
+ foreign-key: subscription_id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: id
+ - key: payment_source_id
+ foreign-key: primary_payment_source_id
+ - table-name: payment_sources
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: payment_source_id
+ foreign-key: id
+ - table-name: promotional_credits
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: transactions
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: payment_source_id
+ foreign-key: payment_source_id
+ - key: id
+ foreign-key: subscription_id
+ - table-name: virtual_bank_accounts
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: gifts
+ keys:
+ - key: customer_id
+ foreign-key: gift_receiver.customer_id
+ - key: customer_id
+ foreign-key: gifter.customer_id
+ - key: gift_id
+ foreign-key: id
+ - key: id
+ foreign-key: gift_receiver.subscription_id
+- table-name: credit_notes
+ join:
+ - table-name: coupons
+ keys:
+ - key: discounts.entity_id
+ foreign-key: id
+ - key: line_item_discounts.coupon_id
+ foreign-key: id
+ - table-name: events
+ keys:
+ - key: discounts.entity_id
+ foreign-key: content.coupon.id
+ - key: line_item_discounts.coupon_id
+ foreign-key: content.coupon.id
+ - key: discounts.entity_id
+ foreign-key: content.invoice.discounts.entity_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: content.invoice.discounts.entity_id
+ - key: discounts.entity_id
+ foreign-key: content.invoice.line_item_discounts.coupon_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: content.invoice.line_item_discounts.coupon_id
+ - key: discounts.entity_id
+ foreign-key: content.subscription.coupons.coupon_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: content.subscription.coupons.coupon_id
+ - key: id
+ foreign-key: content.invoice.adjustment_credit_notes.cn_id
+ - key: id
+ foreign-key: content.invoice.applied_credits.cn_id
+ - key: id
+ foreign-key: content.invoice.issued_credit_notes.cn_id
+ - key: customer_id
+ foreign-key: content.customer.id
+ - key: customer_id
+ foreign-key: content.invoice.customer_id
+ - key: customer_id
+ foreign-key: content.subscription.customer_id
+ - key: customer_id
+ foreign-key: content.transaction.customer_id
+ - key: allocations.invoice_id
+ foreign-key: content.invoice.id
+ - key: reference_invoice_id
+ foreign-key: content.invoice.id
+ - key: allocations.invoice_id
+ foreign-key: content.transaction.linked_credit_notes.cn_reference_invoice_id
+ - key: reference_invoice_id
+ foreign-key: content.transaction.linked_credit_notes.cn_reference_invoice_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: content.invoice.line_item_discounts.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: content.invoice.line_item_discounts.line_item_id
+ - key: line_item_tiers.line_item_id
+ foreign-key: content.invoice.line_item_discounts.line_item_id
+ - key: line_items.id
+ foreign-key: content.invoice.line_item_discounts.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: content.invoice.line_item_taxes.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: content.invoice.line_item_taxes.line_item_id
+ - key: line_item_tiers.line_item_id
+ foreign-key: content.invoice.line_item_taxes.line_item_id
+ - key: line_items.id
+ foreign-key: content.invoice.line_item_taxes.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: content.invoice.line_items.id
+ - key: line_item_taxes.line_item_id
+ foreign-key: content.invoice.line_items.id
+ - key: line_item_tiers.line_item_id
+ foreign-key: content.invoice.line_items.id
+ - key: line_items.id
+ foreign-key: content.invoice.line_items.id
+ - key: subscription_id
+ foreign-key: content.subscription.id
+ - key: line_items.subscription_id
+ foreign-key: content.subscription.id
+ - key: subscription_id
+ foreign-key: content.invoice.subscription_id
+ - key: line_items.subscription_id
+ foreign-key: content.invoice.subscription_id
+ - key: subscription_id
+ foreign-key: content.transaction.subscription_id
+ - key: line_items.subscription_id
+ foreign-key: content.transaction.subscription_id
+ - key: linked_refunds.txn_id
+ foreign-key: content.invoice.linked_payments.txn_id
+ - key: linked_refunds.txn_id
+ foreign-key: content.transaction.id
+ - key: linked_refunds.txn_id
+ foreign-key: content.transaction.linked_refunds.txn_id
+ - key: linked_refunds.txn_id
+ foreign-key: content.transaction.reference_transaction_id
+ - key: linked_refunds.txn_id
+ foreign-key: content.transaction.refunded_txn_id
+ - table-name: invoices
+ keys:
+ - key: discounts.entity_id
+ foreign-key: discounts.entity_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: discounts.entity_id
+ - key: discounts.entity_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: discounts.entity_id
+ foreign-key: notes.entity_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: notes.entity_id
+ - key: id
+ foreign-key: adjustment_credit_notes.cn_id
+ - key: id
+ foreign-key: applied_credits.cn_id
+ - key: id
+ foreign-key: issued_credit_notes.cn_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: customer_id
+ foreign-key: notes.entity_id
+ - key: allocations.invoice_id
+ foreign-key: id
+ - key: reference_invoice_id
+ foreign-key: id
+ - key: line_item_discounts.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: line_item_tiers.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: line_items.id
+ foreign-key: line_item_discounts.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: line_item_tiers.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: line_items.id
+ foreign-key: line_item_taxes.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: line_item_tiers.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: line_item_tiers.line_item_id
+ - key: line_item_tiers.line_item_id
+ foreign-key: line_item_tiers.line_item_id
+ - key: line_items.id
+ foreign-key: line_item_tiers.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: line_items.id
+ - key: line_item_taxes.line_item_id
+ foreign-key: line_items.id
+ - key: line_item_tiers.line_item_id
+ foreign-key: line_items.id
+ - key: line_items.id
+ foreign-key: line_items.id
+ - key: subscription_id
+ foreign-key: line_items.subscription_id
+ - key: line_items.subscription_id
+ foreign-key: line_items.subscription_id
+ - key: subscription_id
+ foreign-key: notes.entity_id
+ - key: line_items.subscription_id
+ foreign-key: notes.entity_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: line_items.subscription_id
+ foreign-key: subscription_id
+ - key: linked_refunds.txn_id
+ foreign-key: linked_payments.txn_id
+ - table-name: subscriptions
+ keys:
+ - key: discounts.entity_id
+ foreign-key: coupons.coupon_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: coupons.coupon_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: subscription_id
+ foreign-key: id
+ - key: line_items.subscription_id
+ foreign-key: id
+ - table-name: orders
+ keys:
+ - key: discounts.entity_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: id
+ foreign-key: linked_credit_notes.id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: allocations.invoice_id
+ foreign-key: invoice_id
+ - key: reference_invoice_id
+ foreign-key: invoice_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: line_item_tiers.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: line_items.id
+ foreign-key: line_item_discounts.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: line_item_tiers.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: line_items.id
+ foreign-key: line_item_taxes.line_item_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: line_items.subscription_id
+ foreign-key: subscription_id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: id
+ - table-name: payment_sources
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: promotional_credits
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: transactions
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: allocations.invoice_id
+ foreign-key: linked_credit_notes.cn_reference_invoice_id
+ - key: reference_invoice_id
+ foreign-key: linked_credit_notes.cn_reference_invoice_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: line_items.subscription_id
+ foreign-key: subscription_id
+ - key: linked_refunds.txn_id
+ foreign-key: id
+ - key: linked_refunds.txn_id
+ foreign-key: linked_refunds.txn_id
+ - key: linked_refunds.txn_id
+ foreign-key: reference_transaction_id
+ - key: linked_refunds.txn_id
+ foreign-key: refunded_txn_id
+ - table-name: virtual_bank_accounts
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: gifts
+ keys:
+ - key: customer_id
+ foreign-key: gift_receiver.customer_id
+ - key: customer_id
+ foreign-key: gifter.customer_id
+ - key: allocations.invoice_id
+ foreign-key: gifter.invoice_id
+ - key: reference_invoice_id
+ foreign-key: gifter.invoice_id
+ - key: subscription_id
+ foreign-key: gift_receiver.subscription_id
+ - key: line_items.subscription_id
+ foreign-key: gift_receiver.subscription_id
+- table-name: orders
+ join:
+ - table-name: coupons
+ keys:
+ - key: line_item_discounts.coupon_id
+ foreign-key: id
+ - table-name: credit_notes
+ keys:
+ - key: line_item_discounts.coupon_id
+ foreign-key: discounts.entity_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: linked_credit_notes.id
+ foreign-key: id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: invoice_id
+ foreign-key: allocations.invoice_id
+ - key: invoice_id
+ foreign-key: reference_invoice_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: line_item_tiers.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: line_item_tiers.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: line_items.id
+ - key: line_item_taxes.line_item_id
+ foreign-key: line_items.id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: subscription_id
+ foreign-key: line_items.subscription_id
+ - table-name: events
+ keys:
+ - key: line_item_discounts.coupon_id
+ foreign-key: content.coupon.id
+ - key: line_item_discounts.coupon_id
+ foreign-key: content.invoice.discounts.entity_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: content.invoice.line_item_discounts.coupon_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: content.subscription.coupons.coupon_id
+ - key: linked_credit_notes.id
+ foreign-key: content.invoice.adjustment_credit_notes.cn_id
+ - key: linked_credit_notes.id
+ foreign-key: content.invoice.applied_credits.cn_id
+ - key: linked_credit_notes.id
+ foreign-key: content.invoice.issued_credit_notes.cn_id
+ - key: customer_id
+ foreign-key: content.customer.id
+ - key: customer_id
+ foreign-key: content.invoice.customer_id
+ - key: customer_id
+ foreign-key: content.subscription.customer_id
+ - key: customer_id
+ foreign-key: content.transaction.customer_id
+ - key: invoice_id
+ foreign-key: content.invoice.id
+ - key: invoice_id
+ foreign-key: content.transaction.linked_credit_notes.cn_reference_invoice_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: content.invoice.line_item_discounts.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: content.invoice.line_item_discounts.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: content.invoice.line_item_taxes.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: content.invoice.line_item_taxes.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: content.invoice.line_items.id
+ - key: line_item_taxes.line_item_id
+ foreign-key: content.invoice.line_items.id
+ - key: subscription_id
+ foreign-key: content.subscription.id
+ - key: subscription_id
+ foreign-key: content.invoice.subscription_id
+ - key: subscription_id
+ foreign-key: content.transaction.subscription_id
+ - table-name: invoices
+ keys:
+ - key: line_item_discounts.coupon_id
+ foreign-key: discounts.entity_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: notes.entity_id
+ - key: linked_credit_notes.id
+ foreign-key: adjustment_credit_notes.cn_id
+ - key: linked_credit_notes.id
+ foreign-key: applied_credits.cn_id
+ - key: linked_credit_notes.id
+ foreign-key: issued_credit_notes.cn_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: customer_id
+ foreign-key: notes.entity_id
+ - key: invoice_id
+ foreign-key: id
+ - key: line_item_discounts.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: line_item_tiers.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: line_item_tiers.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: line_items.id
+ - key: line_item_taxes.line_item_id
+ foreign-key: line_items.id
+ - key: subscription_id
+ foreign-key: line_items.subscription_id
+ - key: subscription_id
+ foreign-key: notes.entity_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: id
+ foreign-key: linked_orders.id
+ - table-name: subscriptions
+ keys:
+ - key: line_item_discounts.coupon_id
+ foreign-key: coupons.coupon_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: gift_id
+ foreign-key: gift_id
+ - key: subscription_id
+ foreign-key: id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: id
+ - table-name: payment_sources
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: promotional_credits
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: transactions
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: invoice_id
+ foreign-key: linked_credit_notes.cn_reference_invoice_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - table-name: virtual_bank_accounts
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: gifts
+ keys:
+ - key: customer_id
+ foreign-key: gift_receiver.customer_id
+ - key: customer_id
+ foreign-key: gifter.customer_id
+ - key: gift_id
+ foreign-key: id
+ - key: invoice_id
+ foreign-key: gifter.invoice_id
+ - key: subscription_id
+ foreign-key: gift_receiver.subscription_id
+- table-name: customers
+ join:
+ - table-name: credit_notes
+ keys:
+ - key: id
+ foreign-key: customer_id
+ - table-name: events
+ keys:
+ - key: id
+ foreign-key: content.customer.id
+ - key: id
+ foreign-key: content.invoice.customer_id
+ - key: id
+ foreign-key: content.subscription.customer_id
+ - key: id
+ foreign-key: content.transaction.customer_id
+ - key: primary_payment_source_id
+ foreign-key: content.subscription.payment_source_id
+ - key: primary_payment_source_id
+ foreign-key: content.transaction.payment_source_id
+ - table-name: invoices
+ keys:
+ - key: id
+ foreign-key: customer_id
+ - key: id
+ foreign-key: notes.entity_id
+ - table-name: payment_sources
+ keys:
+ - key: id
+ foreign-key: customer_id
+ - key: primary_payment_source_id
+ foreign-key: id
+ - table-name: promotional_credits
+ keys:
+ - key: id
+ foreign-key: customer_id
+ - table-name: subscriptions
+ keys:
+ - key: id
+ foreign-key: customer_id
+ - key: primary_payment_source_id
+ foreign-key: payment_source_id
+ - table-name: transactions
+ keys:
+ - key: id
+ foreign-key: customer_id
+ - key: primary_payment_source_id
+ foreign-key: payment_source_id
+ - table-name: virtual_bank_accounts
+ keys:
+ - key: id
+ foreign-key: customer_id
+ - table-name: gifts
+ keys:
+ - key: id
+ foreign-key: gift_receiver.customer_id
+ - key: id
+ foreign-key: gifter.customer_id
+ - table-name: orders
+ keys:
+ - key: id
+ foreign-key: customer_id
+- table-name: payment_sources
+ join:
+ - table-name: credit_notes
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: id
+ - key: id
+ foreign-key: primary_payment_source_id
+ - table-name: events
+ keys:
+ - key: customer_id
+ foreign-key: content.customer.id
+ - key: customer_id
+ foreign-key: content.invoice.customer_id
+ - key: customer_id
+ foreign-key: content.subscription.customer_id
+ - key: customer_id
+ foreign-key: content.transaction.customer_id
+ - key: id
+ foreign-key: content.subscription.payment_source_id
+ - key: id
+ foreign-key: content.transaction.payment_source_id
+ - table-name: invoices
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: customer_id
+ foreign-key: notes.entity_id
+ - table-name: promotional_credits
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: subscriptions
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: id
+ foreign-key: payment_source_id
+ - table-name: transactions
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: id
+ foreign-key: payment_source_id
+ - table-name: virtual_bank_accounts
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: gifts
+ keys:
+ - key: customer_id
+ foreign-key: gift_receiver.customer_id
+ - key: customer_id
+ foreign-key: gifter.customer_id
+ - table-name: orders
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+- table-name: promotional_credits
+ join:
+ - table-name: credit_notes
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: id
+ - table-name: events
+ keys:
+ - key: customer_id
+ foreign-key: content.customer.id
+ - key: customer_id
+ foreign-key: content.invoice.customer_id
+ - key: customer_id
+ foreign-key: content.subscription.customer_id
+ - key: customer_id
+ foreign-key: content.transaction.customer_id
+ - table-name: invoices
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: customer_id
+ foreign-key: notes.entity_id
+ - table-name: payment_sources
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: subscriptions
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: transactions
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: virtual_bank_accounts
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: gifts
+ keys:
+ - key: customer_id
+ foreign-key: gift_receiver.customer_id
+ - key: customer_id
+ foreign-key: gifter.customer_id
+ - table-name: orders
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+- table-name: transactions
+ join:
+ - table-name: credit_notes
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: linked_credit_notes.cn_reference_invoice_id
+ foreign-key: allocations.invoice_id
+ - key: linked_credit_notes.cn_reference_invoice_id
+ foreign-key: reference_invoice_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: subscription_id
+ foreign-key: line_items.subscription_id
+ - key: id
+ foreign-key: linked_refunds.txn_id
+ - key: linked_refunds.txn_id
+ foreign-key: linked_refunds.txn_id
+ - key: reference_transaction_id
+ foreign-key: linked_refunds.txn_id
+ - key: refunded_txn_id
+ foreign-key: linked_refunds.txn_id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: id
+ - key: payment_source_id
+ foreign-key: primary_payment_source_id
+ - table-name: events
+ keys:
+ - key: customer_id
+ foreign-key: content.customer.id
+ - key: customer_id
+ foreign-key: content.invoice.customer_id
+ - key: customer_id
+ foreign-key: content.subscription.customer_id
+ - key: customer_id
+ foreign-key: content.transaction.customer_id
+ - key: linked_credit_notes.cn_reference_invoice_id
+ foreign-key: content.invoice.id
+ - key: linked_credit_notes.cn_reference_invoice_id
+ foreign-key: content.transaction.linked_credit_notes.cn_reference_invoice_id
+ - key: payment_source_id
+ foreign-key: content.subscription.payment_source_id
+ - key: payment_source_id
+ foreign-key: content.transaction.payment_source_id
+ - key: subscription_id
+ foreign-key: content.subscription.id
+ - key: subscription_id
+ foreign-key: content.invoice.subscription_id
+ - key: subscription_id
+ foreign-key: content.transaction.subscription_id
+ - key: id
+ foreign-key: content.invoice.linked_payments.txn_id
+ - key: linked_refunds.txn_id
+ foreign-key: content.invoice.linked_payments.txn_id
+ - key: reference_transaction_id
+ foreign-key: content.invoice.linked_payments.txn_id
+ - key: refunded_txn_id
+ foreign-key: content.invoice.linked_payments.txn_id
+ - key: id
+ foreign-key: content.transaction.id
+ - key: linked_refunds.txn_id
+ foreign-key: content.transaction.id
+ - key: reference_transaction_id
+ foreign-key: content.transaction.id
+ - key: refunded_txn_id
+ foreign-key: content.transaction.id
+ - key: id
+ foreign-key: content.transaction.linked_refunds.txn_id
+ - key: linked_refunds.txn_id
+ foreign-key: content.transaction.linked_refunds.txn_id
+ - key: reference_transaction_id
+ foreign-key: content.transaction.linked_refunds.txn_id
+ - key: refunded_txn_id
+ foreign-key: content.transaction.linked_refunds.txn_id
+ - key: id
+ foreign-key: content.transaction.reference_transaction_id
+ - key: linked_refunds.txn_id
+ foreign-key: content.transaction.reference_transaction_id
+ - key: reference_transaction_id
+ foreign-key: content.transaction.reference_transaction_id
+ - key: refunded_txn_id
+ foreign-key: content.transaction.reference_transaction_id
+ - key: id
+ foreign-key: content.transaction.refunded_txn_id
+ - key: linked_refunds.txn_id
+ foreign-key: content.transaction.refunded_txn_id
+ - key: reference_transaction_id
+ foreign-key: content.transaction.refunded_txn_id
+ - key: refunded_txn_id
+ foreign-key: content.transaction.refunded_txn_id
+ - table-name: invoices
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: customer_id
+ foreign-key: notes.entity_id
+ - key: linked_credit_notes.cn_reference_invoice_id
+ foreign-key: id
+ - key: subscription_id
+ foreign-key: line_items.subscription_id
+ - key: subscription_id
+ foreign-key: notes.entity_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: id
+ foreign-key: linked_payments.txn_id
+ - key: linked_refunds.txn_id
+ foreign-key: linked_payments.txn_id
+ - key: reference_transaction_id
+ foreign-key: linked_payments.txn_id
+ - key: refunded_txn_id
+ foreign-key: linked_payments.txn_id
+ - table-name: payment_sources
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: payment_source_id
+ foreign-key: id
+ - table-name: promotional_credits
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: subscriptions
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: payment_source_id
+ foreign-key: payment_source_id
+ - key: subscription_id
+ foreign-key: id
+ - table-name: virtual_bank_accounts
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: gifts
+ keys:
+ - key: customer_id
+ foreign-key: gift_receiver.customer_id
+ - key: customer_id
+ foreign-key: gifter.customer_id
+ - key: linked_credit_notes.cn_reference_invoice_id
+ foreign-key: gifter.invoice_id
+ - key: subscription_id
+ foreign-key: gift_receiver.subscription_id
+ - table-name: orders
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: linked_credit_notes.cn_reference_invoice_id
+ foreign-key: invoice_id
+ - key: subscription_id
+ foreign-key: subscription_id
+- table-name: virtual_bank_accounts
+ join:
+ - table-name: credit_notes
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: id
+ - table-name: events
+ keys:
+ - key: customer_id
+ foreign-key: content.customer.id
+ - key: customer_id
+ foreign-key: content.invoice.customer_id
+ - key: customer_id
+ foreign-key: content.subscription.customer_id
+ - key: customer_id
+ foreign-key: content.transaction.customer_id
+ - table-name: invoices
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: customer_id
+ foreign-key: notes.entity_id
+ - table-name: payment_sources
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: promotional_credits
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: subscriptions
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: transactions
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: gifts
+ keys:
+ - key: customer_id
+ foreign-key: gift_receiver.customer_id
+ - key: customer_id
+ foreign-key: gifter.customer_id
+ - table-name: orders
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+- table-name: gifts
+ join:
+ - table-name: credit_notes
+ keys:
+ - key: gift_receiver.customer_id
+ foreign-key: customer_id
+ - key: gifter.customer_id
+ foreign-key: customer_id
+ - key: gifter.invoice_id
+ foreign-key: allocations.invoice_id
+ - key: gifter.invoice_id
+ foreign-key: reference_invoice_id
+ - key: gift_receiver.subscription_id
+ foreign-key: subscription_id
+ - key: gift_receiver.subscription_id
+ foreign-key: line_items.subscription_id
+ - table-name: customers
+ keys:
+ - key: gift_receiver.customer_id
+ foreign-key: id
+ - key: gifter.customer_id
+ foreign-key: id
+ - table-name: events
+ keys:
+ - key: gift_receiver.customer_id
+ foreign-key: content.customer.id
+ - key: gifter.customer_id
+ foreign-key: content.customer.id
+ - key: gift_receiver.customer_id
+ foreign-key: content.invoice.customer_id
+ - key: gifter.customer_id
+ foreign-key: content.invoice.customer_id
+ - key: gift_receiver.customer_id
+ foreign-key: content.subscription.customer_id
+ - key: gifter.customer_id
+ foreign-key: content.subscription.customer_id
+ - key: gift_receiver.customer_id
+ foreign-key: content.transaction.customer_id
+ - key: gifter.customer_id
+ foreign-key: content.transaction.customer_id
+ - key: gifter.invoice_id
+ foreign-key: content.invoice.id
+ - key: gifter.invoice_id
+ foreign-key: content.transaction.linked_credit_notes.cn_reference_invoice_id
+ - key: gift_receiver.subscription_id
+ foreign-key: content.subscription.id
+ - key: gift_receiver.subscription_id
+ foreign-key: content.invoice.subscription_id
+ - key: gift_receiver.subscription_id
+ foreign-key: content.transaction.subscription_id
+ - table-name: invoices
+ keys:
+ - key: gift_receiver.customer_id
+ foreign-key: customer_id
+ - key: gifter.customer_id
+ foreign-key: customer_id
+ - key: gift_receiver.customer_id
+ foreign-key: notes.entity_id
+ - key: gifter.customer_id
+ foreign-key: notes.entity_id
+ - key: gifter.invoice_id
+ foreign-key: id
+ - key: gift_receiver.subscription_id
+ foreign-key: line_items.subscription_id
+ - key: gift_receiver.subscription_id
+ foreign-key: notes.entity_id
+ - key: gift_receiver.subscription_id
+ foreign-key: subscription_id
+ - table-name: payment_sources
+ keys:
+ - key: gift_receiver.customer_id
+ foreign-key: customer_id
+ - key: gifter.customer_id
+ foreign-key: customer_id
+ - table-name: promotional_credits
+ keys:
+ - key: gift_receiver.customer_id
+ foreign-key: customer_id
+ - key: gifter.customer_id
+ foreign-key: customer_id
+ - table-name: subscriptions
+ keys:
+ - key: gift_receiver.customer_id
+ foreign-key: customer_id
+ - key: gifter.customer_id
+ foreign-key: customer_id
+ - key: id
+ foreign-key: gift_id
+ - key: gift_receiver.subscription_id
+ foreign-key: id
+ - table-name: transactions
+ keys:
+ - key: gift_receiver.customer_id
+ foreign-key: customer_id
+ - key: gifter.customer_id
+ foreign-key: customer_id
+ - key: gifter.invoice_id
+ foreign-key: linked_credit_notes.cn_reference_invoice_id
+ - key: gift_receiver.subscription_id
+ foreign-key: subscription_id
+ - table-name: virtual_bank_accounts
+ keys:
+ - key: gift_receiver.customer_id
+ foreign-key: customer_id
+ - key: gifter.customer_id
+ foreign-key: customer_id
+ - table-name: orders
+ keys:
+ - key: gift_receiver.customer_id
+ foreign-key: customer_id
+ - key: gifter.customer_id
+ foreign-key: customer_id
+ - key: id
+ foreign-key: gift_id
+ - key: gifter.invoice_id
+ foreign-key: invoice_id
+ - key: gift_receiver.subscription_id
+ foreign-key: subscription_id
+- table-name: item_families
+ join:
+ - table-name: item_prices
+ keys:
+ - key: id
+ foreign-key: item_family_id
+ - table-name: items
+ keys:
+ - key: id
+ foreign-key: item_family_id
+- table-name: item_prices
+ join:
+ - table-name: item_families
+ keys:
+ - key: item_family_id
+ foreign-key: id
+ - table-name: items
+ keys:
+ - key: item_family_id
+ foreign-key: item_family_id
+ - key: item_id
+ foreign-key: id
+- table-name: items
+ join:
+ - table-name: item_families
+ keys:
+ - key: item_family_id
+ foreign-key: id
+ - table-name: item_prices
+ keys:
+ - key: item_family_id
+ foreign-key: item_family_id
+ - key: id
+ foreign-key: item_id
diff --git a/_data/taps/schemas/chargebee/v1/chargebee-v1-tables.yml b/_data/taps/schemas/chargebee/v1/chargebee-v1-tables.yml
new file mode 100644
index 000000000..41963b3e1
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v1/chargebee-v1-tables.yml
@@ -0,0 +1,320 @@
+tap: chargebee
+version: '1'
+tables:
+- name: addons
+ description: 'The `{{ table.name }}` table contains info about the addons in your
+ {{ integration.display_name }} account. Addons are additional charges applied
+ to subscriptions apart from base charges.
+
+
+ {{ integration.table-type | flatify }}
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/plan_model/addons.json
+ api-method: https://apidocs.chargebee.com/docs/api/addons?prod_cat_ver=1#list_addons
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: coupons
+ description: 'The `{{ table.name }}` table contains info about the coupons in your
+ {{ integration.display_name }} account.
+
+
+ {{ integration.table-type | flatify }}
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/item_model/coupons.json
+ api-method: https://apidocs.chargebee.com/docs/api/coupons#list_coupons
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: credit_notes
+ description: 'The `{{ table.name }}` table contains info about the credit notes
+ in your {{ integration.display_name }} account. A credit note is a document that
+ specifies the money owed by a business to a customer.
+
+
+ {{ integration.table-type | flatify }}
+
+ '
+ links:
+ doc-link: https://apidocs.chargebee.com/docs/api/credit_notes
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/common/credit_notes.json
+ api-method: https://apidocs.chargebee.com/docs/api/credit_notes#list_credit_notes
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: customers
+ description: 'The `{{ table.name }}` table contains info about the customers in
+ your {{ integration.display_name }} account.
+
+
+ {{ integration.table-type | flatify }}
+
+ '
+ links:
+ doc-link: https://apidocs.chargebee.com/docs/api/customers
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/customers.json
+ api-method: https://apidocs.chargebee.com/docs/api/customers#list_customers
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: events
+ description: 'The `{{ table.name }}` table contains info about the events that have
+ occurred on your {{ integration.display_name }} site. Event records contain data
+ about affected resources and additional details, such as when the change occurred.
+ This can be used to create a log of events for a record and analyze how it has
+ changed over time.
+
+
+ {{ integration.table-type | flatify }}
+
+ '
+ links:
+ doc-link: https://apidocs.chargebee.com/docs/api/events
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/events.json
+ api-method: https://apidocs.chargebee.com/docs/api/events#list_events
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: occurred_at
+- name: gifts
+ description: 'The `{{ table.name }}` table contains info about the gifts in your
+ {{ integration.display_name }} account.
+
+
+ {{ integration.table-type | flatify }}
+
+ '
+ links:
+ doc-link: https://apidocs.chargebee.com/docs/api/gifts
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/gifts.json
+ api-method: https://apidocs.chargebee.com/docs/api/gifts#list_gifts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: invoices
+ description: 'The `{{ table.name }}` table contains info about the invoices in your
+ {{ integration.display_name }} account. Invoices are statements containing charges,
+ adjustments, and any discounts for a subscription specific to a term.
+
+
+ {{ integration.table-type | flatify }}
+
+ '
+ links:
+ doc-link: https://apidocs.chargebee.com/docs/api/invoices
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/item_model/invoices.json
+ api-method: https://apidocs.chargebee.com/docs/api/invoices#list_invoices
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: items
+ description: 'The `{{ table.name }}` table contains info about the items in your
+ {{ integration.display_name }} account.
+
+
+ {{ integration.table-type | flatify }}
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/item_model/items.json
+ api-method: https://apidocs.chargebee.com/docs/api/items?prod_cat_ver=2#list_items
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: item_families
+ description: 'The `{{ table.name }}` table contains info about item families.
+
+
+ {{ integration.table-type | flatify }}
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/item_model/item_families.json
+ api-method: https://apidocs.chargebee.com/docs/api/item_families?prod_cat_ver=2#list_item_families
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: item_prices
+ description: 'The `{{ table.name }}` table contains info about item prices.
+
+
+ {{ integration.table-type | flatify }}
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/item_model/item_prices.json
+ api-method: https://apidocs.chargebee.com/docs/api/item_prices?prod_cat_ver=2#list_item_prices
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: orders
+ description: 'The `{{ table.name }}` table contains info about the orders in your
+ {{ integration.display_name }} account. The **Order Management** feature must
+ be enabled to replicate this table. For more information, refer to the [{{ integration.display_name
+ }} docs](https://www.chargebee.com/docs/orders.html).
+
+
+ {{ integration.table-type | flatify }}
+
+ '
+ links:
+ doc-link: https://apidocs.chargebee.com/docs/api/orders
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/orders.json
+ api-method: https://apidocs.chargebee.com/docs/api/orders#list_orders
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: payment_sources
+ description: 'The `{{ table.name }}` table contains info about customer payment
+ sources.
+
+
+ {{ integration.table-type | flatify }}
+
+ '
+ links:
+ doc-link: https://apidocs.chargebee.com/docs/api/payment_sources
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/payment_sources.json
+ api-method: https://apidocs.chargebee.com/docs/api/payment_sources#list_payment_sources
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: plans
+ description: 'The `{{ table.name }}` table contains info about the plans in your
+ {{ integration.display_name }} account. Plans are used to specify prices and billing
+ frequencies for [`subscriptions`](#subscriptions).
+
+
+ {{ integration.table-type | flatify }}
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/plan_model/plans.json
+ api-method: https://apidocs.chargebee.com/docs/api/plans?prod_cat_ver=1#list_plans
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: promotional_credits
+ description: 'The `{{ table.name }}` table contains info about the promotional_credits
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.table-type | flatify }}
+
+ '
+ links:
+ doc-link: https://apidocs.chargebee.com/docs/api/promotional_credits
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/item_model/promotional_credits.json
+ api-method: https://apidocs.chargebee.com/docs/api/promotional_credits#list_promotional_credits
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created_at
+- name: subscriptions
+ description: 'The `{{ table.name }}` table contains info about the subscriptions
+ your customers have subscribed to. A subscription is a recurring item that customers
+ are billed for, such as a plan or addon. It may also contain discount items.
+
+
+ **Note**: {{ integration.display_name }} [does not update the `updated_at`](https://apidocs.chargebee.com/docs/api/subscriptions#subscription_updated_at){:target="new"}
+ value when the following attributes on a subscription are modified:
+
+
+ - `due_invoices_count`
+
+ - `due_since`
+
+ - `total_dues`
+
+
+ Because of this functionality and Stitch''s use of this value as a [Replication
+ Key]({{ link.replication.rep-keys | prepend: site.baseurl }}), updates made to
+ subscriptions where only these attributes are modified may not be detected. You
+ should ensure that another attribute on the subscription is also modified to ensure
+ that the `updated_at` value is updated, which will allow Stitch to detect and
+ replicate the record.
+
+
+ {{ integration.table-type | flatify }}
+
+ '
+ links:
+ doc-link: https://apidocs.chargebee.com/docs/api/subscriptions
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/item_model/subscriptions.json
+ api-method: https://apidocs.chargebee.com/docs/api/subscriptions#list_subscriptions
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: transactions
+ description: 'The `{{ table.name }}` table contains info about the transactions
+ that have occurred in your {{ integration.display_name }} account.
+
+
+ {{ integration.table-type | flatify }}
+
+ '
+ links:
+ doc-link: https://apidocs.chargebee.com/docs/api/transactions
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/transactions.json
+ api-method: https://apidocs.chargebee.com/docs/api/transactions#list_transactions
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: virtual_bank_accounts
+ description: 'The `{{ table.name }}` table contains info about the virtual bank
+ accounts in your {{ integration.display_name }} account. A virtual bank account
+ is a unique account number that can be shared with your users while still protecting
+ your sensitive bank account details.
+
+
+ {{ integration.table-type | flatify }}
+
+ '
+ links:
+ doc-link: https://apidocs.chargebee.com/docs/api/virtual_bank_accounts
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/virtual_bank_accounts.json
+ api-method: https://apidocs.chargebee.com/docs/api/virtual_bank_accounts#list_virtual_bank_accounts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: comments
+ description: The `{{ table.name }}` table contains info about comments in your {{
+ integration.display_name }} account.
+ links:
+ doc-link: https://apidocs.chargebee.com/docs/api/comments
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/common/comments.json
+ api-method: https://apidocs.chargebee.com/docs/api/comments#list_comments
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created_at
+- name: quotes
+ description: The `{{ table.name }}` table contains info about quotes in your {{
+ integration.display_name }} account.
+ links:
+ doc-link: https://apidocs.chargebee.com/docs/api/quotes
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/common/quotes.json
+ api-method: https://apidocs.chargebee.com/docs/api/quotes#list_quotes
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
diff --git a/_data/taps/schemas/chargebee/v1/json/addons.json b/_data/taps/schemas/chargebee/v1/json/addons.json
new file mode 100644
index 000000000..ebb97990e
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v1/json/addons.json
@@ -0,0 +1,317 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "accounting_category1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accounting_category2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accounting_category3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accounting_category4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accounting_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "archived_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "avalara_sale_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avalara_service_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "avalara_transaction_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "charge_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_fields": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled_in_portal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "included_in_mrr": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "invoice_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_shippable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "meta_data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "period_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pricing_model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shipping_frequency_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shipping_frequency_period_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "show_description_in_invoices": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "show_description_in_quotes": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_profile_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "taxjar_product_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tiers": {
+ "items": {
+ "properties": {
+ "ending_unit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ending_unit_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starting_unit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "starting_unit_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v1/json/comments.json b/_data/taps/schemas/chargebee/v1/json/comments.json
new file mode 100644
index 000000000..4eddfae77
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v1/json/comments.json
@@ -0,0 +1,56 @@
+{
+ "properties": {
+ "added_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v1/json/coupons.json b/_data/taps/schemas/chargebee/v1/json/coupons.json
new file mode 100644
index 000000000..f3bceea22
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v1/json/coupons.json
@@ -0,0 +1,195 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "addon_constraint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "addon_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "apply_discount_on": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "apply_on": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "archived_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "discount_percentage": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "duration_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "included_in_mrr": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "invoice_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_redemptions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "meta_data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "period_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan_constraint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "redemptions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "valid_till": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v1/json/credit_notes.json b/_data/taps/schemas/chargebee/v1/json/credit_notes.json
new file mode 100644
index 000000000..7340a8e19
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v1/json/credit_notes.json
@@ -0,0 +1,765 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "allocations": {
+ "items": {
+ "properties": {
+ "allocated_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "allocated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "invoice_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "invoice_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "amount_allocated": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_available": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_refunded": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "base_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "create_reason_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "discounts": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "einvoice": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "exchange_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fractional_correction": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "generated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_item_discounts": {
+ "items": {
+ "properties": {
+ "coupon_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "line_item_taxes": {
+ "items": {
+ "properties": {
+ "is_non_compliance_tax": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_partial_tax_applied": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "local_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_amount_in_local_currency": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_juris_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_juris_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_juris_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "taxable_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "line_item_tiers": {
+ "items": {
+ "properties": {
+ "ending_unit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ending_unit_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity_used": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity_used_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starting_unit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "starting_unit_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "line_items": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_from": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_to": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "entity_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_taxed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "item_level_discount_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pricing_model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_exempt_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "linked_refunds": {
+ "items": {
+ "properties": {
+ "applied_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "applied_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "refund_reason_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "txn_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "txn_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "txn_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "txn_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "local_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reason_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_invoice_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refunded_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "round_off_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sub_total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sub_total_in_local_currency": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxes": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_in_local_currency": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "vat_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vat_number_prefix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voided_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v1/json/customers.json b/_data/taps/schemas/chargebee/v1/json/customers.json
new file mode 100644
index 000000000..fe3a6c227
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v1/json/customers.json
@@ -0,0 +1,826 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "allow_direct_debit": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "auto_close_invoices": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "auto_collection": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "backup_payment_source_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "balances": {
+ "items": {
+ "properties": {
+ "balance_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "excess_payments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promotional_credits": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "refundable_credits": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unbilled_charges": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "billing_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "validation_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "billing_date": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "billing_date_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_day_of_week": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "billing_day_of_week_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "business_customer_without_vat_number": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "card_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cf_company_id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "child_account_access": {
+ "properties": {
+ "portal_download_invoices": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "portal_edit_subscriptions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "send_invoice_emails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "send_payment_emails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "send_subscription_emails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "client_profile_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "consolidated_invoicing": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "contacts": {
+ "items": {
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "send_account_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "send_billing_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_from_ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_fields": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_identifier_scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_identifier_standard": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_identifiers": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "standard": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "excess_payments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exempt_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exemption_details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fraud_flag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_einvoice_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_location_valid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "meta_data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mrr": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "net_term_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "offline_payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_account_access": {
+ "properties": {
+ "portal_download_child_invoices": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "portal_edit_child_subscriptions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "send_invoice_emails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "send_payment_emails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "send_subscription_emails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "payment_method": {
+ "properties": {
+ "gateway": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pii_cleared": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preferred_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "primary_payment_source_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promotional_credits": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "referral_urls": {
+ "items": {
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "external_customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referral_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referral_campaign_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referral_external_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referral_sharing_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referral_system": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "refundable_credits": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "registered_for_gst": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "relationship": {
+ "properties": {
+ "invoice_owner_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_owner_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "root_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "taxability": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unbilled_charges": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "use_default_hierarchy_settings": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "vat_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vat_number_prefix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vat_number_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vat_number_validated_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v1/json/events.json b/_data/taps/schemas/chargebee/v1/json/events.json
new file mode 100644
index 000000000..34e56d282
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v1/json/events.json
@@ -0,0 +1,7838 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "api_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content": {
+ "properties": {
+ "addon": {
+ "properties": {
+ "accounting_category1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accounting_category2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accounting_category3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accounting_category4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accounting_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "archived_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "avalara_sale_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avalara_service_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "avalara_transaction_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "charge_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_fields": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled_in_portal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "included_in_mrr": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "invoice_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_shippable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "meta_data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "period_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pricing_model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shipping_frequency_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shipping_frequency_period_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "show_description_in_invoices": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "show_description_in_quotes": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_profile_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "taxjar_product_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tiers": {
+ "items": {
+ "properties": {
+ "ending_unit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ending_unit_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starting_unit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "starting_unit_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "coupon": {
+ "properties": {
+ "addon_constraint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "addon_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "apply_discount_on": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "apply_on": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "archived_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "discount_percentage": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "duration_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "included_in_mrr": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "invoice_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_redemptions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "meta_data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "period_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan_constraint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "redemptions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "valid_till": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "coupon_code": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "coupon_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "coupon_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "coupon_set_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "coupon_site_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "coupon_set": {
+ "additionalProperties": false,
+ "properties": {
+ "archived_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "coupon_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "meta_data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "redeemed_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "credit_note": {
+ "properties": {
+ "allocations": {
+ "items": {
+ "properties": {
+ "allocated_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "allocated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "invoice_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "invoice_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "amount_allocated": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_available": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_refunded": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "base_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "create_reason_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "discounts": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "einvoice": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "exchange_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fractional_correction": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "generated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_item_discounts": {
+ "items": {
+ "properties": {
+ "coupon_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "line_item_taxes": {
+ "items": {
+ "properties": {
+ "is_non_compliance_tax": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_partial_tax_applied": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "local_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_amount_in_local_currency": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_juris_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_juris_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_juris_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "taxable_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "line_item_tiers": {
+ "items": {
+ "properties": {
+ "ending_unit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ending_unit_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity_used": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity_used_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starting_unit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "starting_unit_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "line_items": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_from": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_to": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "entity_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_taxed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "item_level_discount_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pricing_model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_exempt_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "linked_refunds": {
+ "items": {
+ "properties": {
+ "applied_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "applied_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "refund_reason_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "txn_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "txn_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "txn_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "txn_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "local_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reason_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_invoice_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refunded_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "round_off_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sub_total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sub_total_in_local_currency": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxes": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_in_local_currency": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "vat_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vat_number_prefix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voided_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "customer": {
+ "properties": {
+ "allow_direct_debit": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "auto_close_invoices": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "auto_collection": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "backup_payment_source_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "balances": {
+ "items": {
+ "properties": {
+ "balance_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "excess_payments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promotional_credits": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "refundable_credits": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unbilled_charges": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "billing_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "validation_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "billing_date": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "billing_date_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_day_of_week": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "billing_day_of_week_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "business_customer_without_vat_number": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "card_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cf_company_id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "child_account_access": {
+ "properties": {
+ "portal_download_invoices": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "portal_edit_subscriptions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "send_invoice_emails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "send_payment_emails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "send_subscription_emails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "client_profile_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "consolidated_invoicing": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "contacts": {
+ "items": {
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "send_account_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "send_billing_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_from_ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_fields": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_identifier_scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_identifier_standard": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_identifiers": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "standard": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "excess_payments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exempt_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exemption_details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fraud_flag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_einvoice_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_location_valid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "meta_data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mrr": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "net_term_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "offline_payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_account_access": {
+ "properties": {
+ "portal_download_child_invoices": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "portal_edit_child_subscriptions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "send_invoice_emails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "send_payment_emails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "send_subscription_emails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "payment_method": {
+ "properties": {
+ "gateway": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pii_cleared": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preferred_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "primary_payment_source_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promotional_credits": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "referral_urls": {
+ "items": {
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "external_customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referral_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referral_campaign_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referral_external_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referral_sharing_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referral_system": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "refundable_credits": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "registered_for_gst": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "relationship": {
+ "properties": {
+ "invoice_owner_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_owner_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "root_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "taxability": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unbilled_charges": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "use_default_hierarchy_settings": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "vat_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vat_number_prefix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vat_number_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vat_number_validated_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "gift": {
+ "properties": {
+ "auto_claim": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "claim_expiry_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "gift_receiver": {
+ "properties": {
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "gift_timelines": {
+ "items": {
+ "properties": {
+ "occurred_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "gifter": {
+ "properties": {
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "signature": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "no_expiry": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "scheduled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "invoice": {
+ "properties": {
+ "adjustment_credit_notes": {
+ "items": {
+ "properties": {
+ "cn_create_reason_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cn_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_reason_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "amount_adjusted": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_due": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_paid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_to_collect": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "applied_credits": {
+ "items": {
+ "properties": {
+ "applied_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "applied_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cn_create_reason_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cn_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_reason_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "base_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "validation_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "credits_applied": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "discounts": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "due_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "dunning_attempts": {
+ "items": {
+ "properties": {
+ "attempt": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "dunning_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "txn_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "txn_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "dunning_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "einvoice": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "exchange_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expected_payment_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "first_invoice": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "generated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "has_advance_charges": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_gifted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "issued_credit_notes": {
+ "items": {
+ "properties": {
+ "cn_create_reason_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cn_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_reason_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "line_item_discounts": {
+ "items": {
+ "properties": {
+ "coupon_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "line_item_taxes": {
+ "items": {
+ "properties": {
+ "is_non_compliance_tax": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_partial_tax_applied": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "local_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_amount_in_local_currency": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_juris_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_juris_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_juris_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_rate": {
+ "type": [
+ "null",
+ "integer",
+ "number"
+ ]
+ },
+ "taxable_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "line_item_tiers": {
+ "items": {
+ "properties": {
+ "ending_unit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ending_unit_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity_used": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity_used_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starting_unit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "starting_unit_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "line_items": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_from": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_to": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "entity_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_taxed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "item_level_discount_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pricing_model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_exempt_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_rate": {
+ "type": [
+ "null",
+ "integer",
+ "number"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "linked_orders": {
+ "items": {
+ "properties": {
+ "batch_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "document_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fulfillment_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "linked_payments": {
+ "items": {
+ "properties": {
+ "applied_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "applied_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "txn_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "txn_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "txn_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "txn_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "local_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "net_term_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "new_sales_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "next_retry_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "notes": {
+ "items": {
+ "properties": {
+ "entity_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "paid_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "payment_owner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "po_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recurring": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "round_off_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shipping_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "validation_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sub_total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sub_total_in_local_currency": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "taxes": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "term_finalized": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_in_local_currency": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "vat_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vat_number_prefix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "void_reason_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voided_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "write_off_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "order": {
+ "properties": {
+ "amount_adjusted": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_paid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "batch_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "validation_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "cancellation_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cancelled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "delivered_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "discount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "document_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fulfillment_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gift_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gift_note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_round_off_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_gifted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_resent": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "line_item_discounts": {
+ "items": {
+ "properties": {
+ "coupon_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "line_item_taxes": {
+ "items": {
+ "properties": {
+ "is_non_compliance_tax": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_partial_tax_applied": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "local_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_amount_in_local_currency": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_juris_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_juris_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_juris_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_rate": {
+ "type": [
+ "null",
+ "integer",
+ "number"
+ ]
+ },
+ "taxable_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "linked_credit_notes": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_adjusted": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_refunded": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "order_line_items": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_adjusted": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_paid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fulfillment_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fulfillment_quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_shippable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "item_level_discount_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "refundable_credits": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "refundable_credits_issued": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_price": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "order_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "paid_on": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "payment_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refundable_credits": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "refundable_credits_issued": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "resend_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resent_orders": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "resent_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "rounding_adjustement": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shipment_carrier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipped_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "shipping_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "validation_status,": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shipping_cut_off_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "shipping_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status_update_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "sub_total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tracking_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "payment_source": {
+ "properties": {
+ "amazon_payment": {
+ "properties": {
+ "agreement_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "bank_account": {
+ "properties": {
+ "account_holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "echeck_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mandate_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name_on_account": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card": {
+ "properties": {
+ "billing_addr1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_addr2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_state_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expiry_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "expiry_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "masked_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gateway": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ip_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issuing_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mandates": {
+ "items": {
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "paypal": {
+ "properties": {
+ "agremeent_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "upi": {
+ "properties": {
+ "vpa": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "plan": {
+ "properties": {
+ "account_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accounting_category1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accounting_category2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accounting_category3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accounting_category4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accounting_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "addon_applicability": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "applicable_addons": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "archived_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "attached_addons": {
+ "items": {
+ "properties": {
+ "billing_cycles": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "avalara_sale_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avalara_service_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "avalara_transaction_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "billing_cycles": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "charge_model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "claim_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_fields": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled_in_hosted_pages": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enabled_in_portal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "event_based_addons": {
+ "items": {
+ "properties": {
+ "charge_once": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "on_event": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "free_quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "free_quantity_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "giftable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_shippable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "meta_data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "period_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pricing_model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "redirect_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "setup_cost": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shipping_frequency_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shipping_frequency_period_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "show_description_in_invoices": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "show_description_in_quotes": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_profile_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "taxjar_product_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tiers": {
+ "items": {
+ "properties": {
+ "ending_unit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ending_unit_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starting_unit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "starting_unit_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "trial_end_action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trial_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "trial_period_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "promotional_credit": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "closing_balance": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "credit_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "done_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "quote": {
+ "additionalProperties": false,
+ "properties": {
+ "amount_due": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_paid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "billing_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "validation_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "charge_on_acceptance": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "contract_term_end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "contract_term_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "contract_term_termination_fee": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "credits_applied": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "discounts": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_item_discounts": {
+ "items": {
+ "properties": {
+ "coupon_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "line_item_taxes": {
+ "items": {
+ "properties": {
+ "is_non_compliance_tax": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_partial_tax_applied": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "local_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_amount_in_local_currency": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_juris_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_juris_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_juris_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "taxable_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "line_item_tiers": {
+ "items": {
+ "properties": {
+ "ending_unit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ending_unit_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity_used": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity_used_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starting_unit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "starting_unit_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "line_items": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_from": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_to": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "entity_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_taxed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "item_level_discount_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pricing_model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_exempt_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operation_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "po_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shipping_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "validation_status,": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sub_total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxes": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_payable": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "valid_till": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "vat_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vat_number_prefix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "subscription": {
+ "properties": {
+ "activated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "addons": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "remaining_billing_cycles": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "trial_end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "unit_price": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_price_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "affiliate_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "auto_close_invoices": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "auto_collection": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "base_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "billing_period_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cancel_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cancel_reason_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cancel_schedule_created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cancelled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "changes_scheduled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "charged_event_based_addons": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_charged_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "contract_term": {
+ "properties": {
+ "action_at_term_end": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_cycle": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cancellation_cutoff_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "contract_end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "contract_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "remaining_billing_cycles": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_contract_value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "contract_term_billing_cycle_on_renewal": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "coupon": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "coupons": {
+ "items": {
+ "properties": {
+ "applied_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "apply_till": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "coupon_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "coupon_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "create_pending_invoices": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_from_ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "current_term_end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "current_term_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "due_invoices_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "due_since": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "event_based_addons": {
+ "items": {
+ "properties": {
+ "charge_once": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "on_event": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_price": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_price_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "exchange_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "free_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "free_period_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gift_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_scheduled_advance_invoices": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_scheduled_changes": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "meta_data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mrr": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "next_billing_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "offline_payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "override_relationship": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "pause_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "payment_source_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "plan_amount_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan_free_quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "plan_free_quantity_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan_quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "plan_quantity_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan_unit_price": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "plan_unit_price_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "po_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referral_info": {
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "coupon_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "destination_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_campaign_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "friend_offer_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notify_referral_system": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "post_purchase_widget_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "referral_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referral_system": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referrer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referrer_reward_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reward_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "remaining_billing_cycles": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "resume_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "setup_fee": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shipping_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "validation_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "started_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_dues": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "trial_end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "trial_end_action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trial_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "transaction": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_capturable": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount_unused": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "authorization_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "base_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "error_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "error_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exchange_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fraud_flag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fraud_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id_at_gateway": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "initiator_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "linked_credit_notes": {
+ "items": {
+ "properties": {
+ "applied_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "applied_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cn_create_reason_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cn_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_reason_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_reference_invoice_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "linked_invoices": {
+ "items": {
+ "properties": {
+ "applied_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "applied_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "invoice_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "invoice_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "linked_payments": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "linked_refunds": {
+ "items": {
+ "properties": {
+ "txn_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "txn_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "txn_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "txn_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "masked_card_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "merchant_reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_source_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_authorization_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_transaction_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refunded_txn_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reversal_transaction_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reversal_txn_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "settled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "three_d_secure": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "validated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "voided_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "unbilled_charges": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_from": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_to": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_voided": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "pricing_model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tiers": {
+ "items": {
+ "properties": {
+ "ending_unit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ending_unit_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity_used": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity_used_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starting_unit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "starting_unit_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_amount ": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voided_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "virtual_bank_account": {
+ "properties": {
+ "account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "swift_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "occurred_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "webhook_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v1/json/gifts.json b/_data/taps/schemas/chargebee/v1/json/gifts.json
new file mode 100644
index 000000000..8eb18f977
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v1/json/gifts.json
@@ -0,0 +1,152 @@
+{
+ "properties": {
+ "auto_claim": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "claim_expiry_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "gift_receiver": {
+ "properties": {
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "gift_timelines": {
+ "items": {
+ "properties": {
+ "occurred_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "gifter": {
+ "properties": {
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "signature": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "no_expiry": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "scheduled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v1/json/invoices.json b/_data/taps/schemas/chargebee/v1/json/invoices.json
new file mode 100644
index 000000000..9c017fe54
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v1/json/invoices.json
@@ -0,0 +1,1291 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "adjustment_credit_notes": {
+ "items": {
+ "properties": {
+ "cn_create_reason_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cn_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_reason_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "amount_adjusted": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_due": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_paid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_to_collect": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "applied_credits": {
+ "items": {
+ "properties": {
+ "applied_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "applied_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cn_create_reason_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cn_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_reason_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "base_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "validation_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "credits_applied": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "discounts": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "due_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "dunning_attempts": {
+ "items": {
+ "properties": {
+ "attempt": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "dunning_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "txn_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "txn_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "dunning_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "einvoice": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "exchange_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expected_payment_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "first_invoice": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "generated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "has_advance_charges": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_gifted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "issued_credit_notes": {
+ "items": {
+ "properties": {
+ "cn_create_reason_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cn_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_reason_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "line_item_discounts": {
+ "items": {
+ "properties": {
+ "coupon_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "line_item_taxes": {
+ "items": {
+ "properties": {
+ "is_non_compliance_tax": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_partial_tax_applied": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "local_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_amount_in_local_currency": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_juris_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_juris_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_juris_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_rate": {
+ "type": [
+ "null",
+ "integer",
+ "number"
+ ]
+ },
+ "taxable_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "line_item_tiers": {
+ "items": {
+ "properties": {
+ "ending_unit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ending_unit_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity_used": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity_used_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starting_unit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "starting_unit_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "line_items": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_from": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_to": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "entity_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_taxed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "item_level_discount_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pricing_model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_exempt_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_rate": {
+ "type": [
+ "null",
+ "integer",
+ "number"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "linked_orders": {
+ "items": {
+ "properties": {
+ "batch_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "document_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fulfillment_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "linked_payments": {
+ "items": {
+ "properties": {
+ "applied_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "applied_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "txn_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "txn_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "txn_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "txn_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "local_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "net_term_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "new_sales_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "next_retry_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "notes": {
+ "items": {
+ "properties": {
+ "entity_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "paid_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "payment_owner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "po_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recurring": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "round_off_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shipping_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "validation_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sub_total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sub_total_in_local_currency": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "taxes": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "term_finalized": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_in_local_currency": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "vat_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vat_number_prefix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "void_reason_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voided_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "write_off_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v1/json/item_families.json b/_data/taps/schemas/chargebee/v1/json/item_families.json
new file mode 100644
index 000000000..86e5c3194
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v1/json/item_families.json
@@ -0,0 +1,62 @@
+{
+ "properties": {
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_fields": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v1/json/item_prices.json b/_data/taps/schemas/chargebee/v1/json/item_prices.json
new file mode 100644
index 000000000..34f1aca03
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v1/json/item_prices.json
@@ -0,0 +1,339 @@
+{
+ "properties": {
+ "accounting_detail": {
+ "properties": {
+ "accounting_category1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accounting_category2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accounting_category3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accounting_category4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accounting_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "archivable": {
+ "type": [
+ "null",
+ "boolean",
+ "string"
+ ]
+ },
+ "archived_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "billing_cycles": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_fields": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "free_quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "free_quantity_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "item_family_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "item_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "period_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pricing_model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shipping_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shipping_period_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "show_description_in_invoices": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "show_description_in_quotes": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_detail": {
+ "properties": {
+ "avalara_sale_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avalara_service_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "avalara_tax_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avalara_transaction_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_profile_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxjar_product_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tiers": {
+ "items": {
+ "properties": {
+ "ending_unit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "starting_unit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "trial_end_action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trial_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "trial_period_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v1/json/items.json b/_data/taps/schemas/chargebee/v1/json/items.json
new file mode 100644
index 000000000..113a47be8
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v1/json/items.json
@@ -0,0 +1,185 @@
+{
+ "properties": {
+ "applicable_items": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "archivable": {
+ "type": [
+ "null",
+ "boolean",
+ "string"
+ ]
+ },
+ "archived_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_fields": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled_for_checkout": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enabled_in_portal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "external_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gift_claim_redirect_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "included_in_mrr": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_giftable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_shippable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "item_applicability": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "item_family_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metered": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "redirect_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "usage_calculation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v1/json/orders.json b/_data/taps/schemas/chargebee/v1/json/orders.json
new file mode 100644
index 000000000..faedcedc1
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v1/json/orders.json
@@ -0,0 +1,827 @@
+{
+ "properties": {
+ "amount_adjusted": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_paid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "batch_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "validation_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "cancellation_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cancelled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "delivered_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "discount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "document_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fulfillment_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gift_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gift_note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_round_off_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_gifted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_resent": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "line_item_discounts": {
+ "items": {
+ "properties": {
+ "coupon_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "line_item_taxes": {
+ "items": {
+ "properties": {
+ "is_non_compliance_tax": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_partial_tax_applied": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "local_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_amount_in_local_currency": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_juris_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_juris_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_juris_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_rate": {
+ "type": [
+ "null",
+ "integer",
+ "number"
+ ]
+ },
+ "taxable_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "linked_credit_notes": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_adjusted": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_refunded": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "order_line_items": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_adjusted": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_paid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fulfillment_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fulfillment_quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_shippable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "item_level_discount_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "refundable_credits": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "refundable_credits_issued": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_price": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "order_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "paid_on": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "payment_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refundable_credits": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "refundable_credits_issued": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "resend_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resent_orders": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "resent_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "rounding_adjustement": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shipment_carrier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipped_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "shipping_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "validation_status,": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shipping_cut_off_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "shipping_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status_update_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "sub_total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tracking_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v1/json/payment_sources.json b/_data/taps/schemas/chargebee/v1/json/payment_sources.json
new file mode 100644
index 000000000..58376f8ec
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v1/json/payment_sources.json
@@ -0,0 +1,338 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "amazon_payment": {
+ "properties": {
+ "agreement_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "bank_account": {
+ "properties": {
+ "account_holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "echeck_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mandate_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name_on_account": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card": {
+ "properties": {
+ "billing_addr1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_addr2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_state_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expiry_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "expiry_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "masked_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gateway": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ip_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issuing_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mandates": {
+ "items": {
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "paypal": {
+ "properties": {
+ "agremeent_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "upi": {
+ "properties": {
+ "vpa": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v1/json/plans.json b/_data/taps/schemas/chargebee/v1/json/plans.json
new file mode 100644
index 000000000..39e92c2bb
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v1/json/plans.json
@@ -0,0 +1,485 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accounting_category1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accounting_category2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accounting_category3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accounting_category4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accounting_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "addon_applicability": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "applicable_addons": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "archived_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "attached_addons": {
+ "items": {
+ "properties": {
+ "billing_cycles": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "avalara_sale_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avalara_service_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "avalara_transaction_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "billing_cycles": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "charge_model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "claim_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_fields": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled_in_hosted_pages": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enabled_in_portal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "event_based_addons": {
+ "items": {
+ "properties": {
+ "charge_once": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "on_event": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "free_quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "free_quantity_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "giftable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_shippable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "meta_data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "period_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pricing_model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "redirect_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "setup_cost": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shipping_frequency_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shipping_frequency_period_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "show_description_in_invoices": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "show_description_in_quotes": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_profile_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "taxjar_product_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tiers": {
+ "items": {
+ "properties": {
+ "ending_unit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ending_unit_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starting_unit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "starting_unit_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "trial_end_action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trial_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "trial_period_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v1/json/promotional_credit.json b/_data/taps/schemas/chargebee/v1/json/promotional_credit.json
new file mode 100644
index 000000000..04833c87d
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v1/json/promotional_credit.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "string"
+ ]
+ },
+ "amount_in_decimal": {
+ "type": [
+ "string"
+ ]
+ },
+ "closing_balance": {
+ "type": [
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "credit_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "done_by": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "reference": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v1/json/promotional_credits.json b/_data/taps/schemas/chargebee/v1/json/promotional_credits.json
new file mode 100644
index 000000000..44642bdef
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v1/json/promotional_credits.json
@@ -0,0 +1,87 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "closing_balance": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "credit_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "done_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v1/json/quotes.json b/_data/taps/schemas/chargebee/v1/json/quotes.json
new file mode 100644
index 000000000..3d0db22a0
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v1/json/quotes.json
@@ -0,0 +1,727 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "amount_due": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_paid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "billing_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "validation_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "charge_on_acceptance": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "contract_term_end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "contract_term_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "contract_term_termination_fee": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "credits_applied": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "discounts": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_item_discounts": {
+ "items": {
+ "properties": {
+ "coupon_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "line_item_taxes": {
+ "items": {
+ "properties": {
+ "is_non_compliance_tax": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_partial_tax_applied": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_juris_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_juris_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_juris_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_rate": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "taxable_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "line_item_tiers": {
+ "items": {
+ "properties": {
+ "ending_unit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity_used": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "starting_unit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "line_items": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "date_from": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_to": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_taxed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "item_level_discount_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pricing_model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_exempt_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_rate": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operation_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "po_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shipping_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "validation_status,": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sub_total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxes": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_payable": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "valid_till": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "vat_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vat_number_prefix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v1/json/subscriptions.json b/_data/taps/schemas/chargebee/v1/json/subscriptions.json
new file mode 100644
index 000000000..07beb8bbf
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v1/json/subscriptions.json
@@ -0,0 +1,869 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "activated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "addons": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "remaining_billing_cycles": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "trial_end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "unit_price": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_price_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "affiliate_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "auto_close_invoices": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "auto_collection": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "base_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "billing_period_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cancel_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cancel_reason_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cancel_schedule_created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cancelled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "changes_scheduled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "charged_event_based_addons": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_charged_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "contract_term": {
+ "properties": {
+ "action_at_term_end": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_cycle": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cancellation_cutoff_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "contract_end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "contract_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "remaining_billing_cycles": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_contract_value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "contract_term_billing_cycle_on_renewal": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "coupon": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "coupons": {
+ "items": {
+ "properties": {
+ "applied_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "apply_till": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "coupon_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "coupon_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "create_pending_invoices": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_from_ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "current_term_end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "current_term_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "due_invoices_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "due_since": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "event_based_addons": {
+ "items": {
+ "properties": {
+ "charge_once": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "on_event": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_price": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_price_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "exchange_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "free_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "free_period_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gift_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_scheduled_advance_invoices": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_scheduled_changes": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "meta_data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mrr": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "next_billing_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "offline_payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "override_relationship": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "pause_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "payment_source_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "plan_amount_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan_free_quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "plan_free_quantity_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan_quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "plan_quantity_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan_unit_price": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "plan_unit_price_in_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "po_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referral_info": {
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "coupon_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "destination_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_campaign_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "friend_offer_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notify_referral_system": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "post_purchase_widget_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "referral_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referral_system": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referrer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referrer_reward_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reward_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "remaining_billing_cycles": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "resume_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "setup_fee": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shipping_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "validation_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "started_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_dues": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "trial_end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "trial_end_action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trial_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v1/json/transactions.json b/_data/taps/schemas/chargebee/v1/json/transactions.json
new file mode 100644
index 000000000..efeb113ef
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v1/json/transactions.json
@@ -0,0 +1,449 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_capturable": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount_unused": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "authorization_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "base_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "error_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "error_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exchange_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fraud_flag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fraud_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id_at_gateway": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "initiator_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "linked_credit_notes": {
+ "items": {
+ "properties": {
+ "applied_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "applied_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cn_create_reason_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cn_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_reason_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_reference_invoice_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cn_total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "linked_invoices": {
+ "items": {
+ "properties": {
+ "applied_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "applied_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "invoice_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "invoice_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "linked_payments": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "linked_refunds": {
+ "items": {
+ "properties": {
+ "txn_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "txn_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "txn_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "txn_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "masked_card_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "merchant_reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_source_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_authorization_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_transaction_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refunded_txn_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reversal_transaction_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reversal_txn_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "settled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "three_d_secure": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "validated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "voided_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v1/json/virtual_bank_accounts.json b/_data/taps/schemas/chargebee/v1/json/virtual_bank_accounts.json
new file mode 100644
index 000000000..86b6170d5
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v1/json/virtual_bank_accounts.json
@@ -0,0 +1,105 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "swift_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v20-05-2019/chargebee-v20-05-2019-foreign-keys.yml b/_data/taps/schemas/chargebee/v20-05-2019/chargebee-v20-05-2019-foreign-keys.yml
new file mode 100644
index 000000000..c5be99ada
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v20-05-2019/chargebee-v20-05-2019-foreign-keys.yml
@@ -0,0 +1,1698 @@
+tap: chargebee
+version: 20-05-2019
+keys:
+ addons_:
+ - table: addon
+ keys:
+ - id
+ - table: events
+ keys:
+ - content.subscription.addons.id
+ - content.subscription.charged_event_based_addons.id
+ - content.subscription.event_based_addons.id
+ - table: invoices
+ keys:
+ - notes.entity_id
+ - table: subscriptions
+ keys:
+ - addons.id
+ - charged_event_based_addons.id
+ - event_based_addons.id
+ coupons_coupon_id:
+ - table: coupons
+ keys:
+ - id
+ - table: credit_notes
+ keys:
+ - discounts.entity_id
+ - line_item_discounts.coupon_id
+ - table: events
+ keys:
+ - content.coupon.id
+ - content.invoice.discounts.entity_id
+ - content.invoice.line_item_discounts.coupon_id
+ - content.subscription.coupons.coupon_id
+ - table: invoices
+ keys:
+ - discounts.entity_id
+ - line_item_discounts.coupon_id
+ - notes.entity_id
+ - table: subscriptions
+ keys:
+ - coupons.coupon_id
+ credit_notes_cn_id:
+ - table: credit_notes
+ keys:
+ - id
+ - table: events
+ keys:
+ - content.invoice.adjustment_credit_notes.cn_id
+ - content.invoice.applied_credits.cn_id
+ - content.invoice.issued_credit_notes.cn_id
+ - table: invoices
+ keys:
+ - adjustment_credit_notes.cn_id
+ - adjustment_applied_credits.cn_id
+ - linked_credit_notes.cn_id
+ customers_customer_id:
+ - table: credit_notes
+ keys:
+ - customer_id
+ - table: customers
+ keys:
+ - id
+ - table: events
+ keys:
+ - content.customer.id
+ - content.invoice.customer_id
+ - content.subscription.customer_id
+ - content.transaction.customer_id
+ - table: invoices
+ keys:
+ - customer_id
+ - notes.entity_id
+ - table: payment_sources
+ keys:
+ - customer_id
+ - table: subscriptions
+ keys:
+ - customer_id
+ - table: transactions
+ keys:
+ - customer_id
+ - table: virtual_bank_accounts
+ keys:
+ - customer_id
+ - table: gifts
+ keys:
+ - gift_receiver.customer_id
+ _line_item_id:
+ - table: credit_notes
+ keys:
+ - line_item_discounts.line_item_id
+ - line_item_taxes.line_item_id
+ - line_item_tiers.line_item_id
+ - line_items.line_item_id
+ - table: events
+ keys:
+ - content.invoice.line_item_discounts.line_item_id
+ - content.invoice.line_item_taxes.line_item_id
+ - content.invoice.line_items.id
+ - table: invoices
+ keys:
+ - line_item_discounts.line_item_id
+ - line_item_taxes.line_item_id
+ - line_item_tiers.line_item_id
+ - line_items.line_item_id
+ invoices_invoice_id:
+ - table: credit_notes
+ keys:
+ - allocations.invoice_id
+ - reference_invoice_id
+ - table: events
+ keys:
+ - content.invoice.id
+ - content.transaction.linked_credit_notes.cn_reference_invoice_id
+ - content.transaction.linked_payments.invoice_id
+ - table: invoices
+ keys:
+ - id
+ - table: transactions
+ keys:
+ - linked_credit_notes.cn_reference_invoice_id
+ - linked_payments.invoice_id
+ plans_plan_id:
+ - table: events
+ keys:
+ - content.plan.id
+ - content.subscription.plan_id
+ - table: plans
+ keys:
+ - id
+ - table: invoices
+ keys:
+ - notes.entity_id
+ - table: subscriptions
+ keys:
+ - plan_id
+ payment_sources_payment_source_id:
+ - table: customers
+ keys:
+ - primary_payment_sources_id
+ - table: events
+ keys:
+ - content.subscription.payment_source_id
+ - content.transaction.payment_source_id
+ - table: payment_sources
+ keys:
+ - id
+ - table: subscriptions
+ keys:
+ - payment_source_id
+ - table: transactions
+ keys:
+ - payment_source_id
+ subscriptions_subscription_id:
+ - table: credit_notes
+ keys:
+ - subscription_id
+ - line_items.subscription_id
+ - table: events
+ keys:
+ - content.invoice.linked_payments.subscription_id
+ - content.subscription.id
+ - content.invoice.subscription_id
+ - content.transaction.subscription_id
+ - table: invoices
+ keys:
+ - line_items.subscription_id
+ - notes.entity_id
+ - subscription_id
+ - table: subscriptions
+ keys:
+ - id
+ - table: transactions
+ keys:
+ - subscription_id
+ transactions_txn_id:
+ - table: credit_notes
+ keys:
+ - linked_refunds.txn_id
+ - table: events
+ keys:
+ - content.invoice.linked_payments.txn_id
+ - content.transaction.id
+ - content.transaction.id
+ - content.transaction.linked_refunds.txn_id
+ - content.transaction.reference_transaction_id
+ - content.transaction.refunded_txn_id
+ - table: invoices
+ keys:
+ - linked_payments.txn_id
+ - table: transactions
+ keys:
+ - id
+ - linked_refunds.txn_id
+ - reference_transaction_id
+ - refunded_txn_id
+tables:
+- table-name: addon
+ join:
+ - table-name: events
+ keys:
+ - key: id
+ foreign-key: content.subscription.addons.id
+ - key: id
+ foreign-key: content.subscription.charged_event_based_addons.id
+ - key: id
+ foreign-key: content.subscription.event_based_addons.id
+ - table-name: invoices
+ keys:
+ - key: id
+ foreign-key: notes.entity_id
+ - table-name: subscriptions
+ keys:
+ - key: id
+ foreign-key: addons.id
+ - key: id
+ foreign-key: charged_event_based_addons.id
+ - key: id
+ foreign-key: event_based_addons.id
+- table-name: events
+ join:
+ - table-name: addon
+ keys:
+ - key: content.subscription.addons.id
+ foreign-key: id
+ - key: content.subscription.charged_event_based_addons.id
+ foreign-key: id
+ - key: content.subscription.event_based_addons.id
+ foreign-key: id
+ - table-name: invoices
+ keys:
+ - key: content.subscription.addons.id
+ foreign-key: notes.entity_id
+ - key: content.subscription.charged_event_based_addons.id
+ foreign-key: notes.entity_id
+ - key: content.subscription.event_based_addons.id
+ foreign-key: notes.entity_id
+ - key: content.coupon.id
+ foreign-key: discounts.entity_id
+ - key: content.invoice.discounts.entity_id
+ foreign-key: discounts.entity_id
+ - key: content.invoice.line_item_discounts.coupon_id
+ foreign-key: discounts.entity_id
+ - key: content.subscription.coupons.coupon_id
+ foreign-key: discounts.entity_id
+ - key: content.coupon.id
+ foreign-key: line_item_discounts.coupon_id
+ - key: content.invoice.discounts.entity_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: content.invoice.line_item_discounts.coupon_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: content.subscription.coupons.coupon_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: content.coupon.id
+ foreign-key: notes.entity_id
+ - key: content.invoice.discounts.entity_id
+ foreign-key: notes.entity_id
+ - key: content.invoice.line_item_discounts.coupon_id
+ foreign-key: notes.entity_id
+ - key: content.subscription.coupons.coupon_id
+ foreign-key: notes.entity_id
+ - key: content.invoice.adjustment_credit_notes.cn_id
+ foreign-key: adjustment_credit_notes.cn_id
+ - key: content.invoice.applied_credits.cn_id
+ foreign-key: adjustment_credit_notes.cn_id
+ - key: content.invoice.issued_credit_notes.cn_id
+ foreign-key: adjustment_credit_notes.cn_id
+ - key: content.invoice.adjustment_credit_notes.cn_id
+ foreign-key: adjustment_applied_credits.cn_id
+ - key: content.invoice.applied_credits.cn_id
+ foreign-key: adjustment_applied_credits.cn_id
+ - key: content.invoice.issued_credit_notes.cn_id
+ foreign-key: adjustment_applied_credits.cn_id
+ - key: content.invoice.adjustment_credit_notes.cn_id
+ foreign-key: linked_credit_notes.cn_id
+ - key: content.invoice.applied_credits.cn_id
+ foreign-key: linked_credit_notes.cn_id
+ - key: content.invoice.issued_credit_notes.cn_id
+ foreign-key: linked_credit_notes.cn_id
+ - key: content.customer.id
+ foreign-key: customer_id
+ - key: content.invoice.customer_id
+ foreign-key: customer_id
+ - key: content.subscription.customer_id
+ foreign-key: customer_id
+ - key: content.transaction.customer_id
+ foreign-key: customer_id
+ - key: content.customer.id
+ foreign-key: notes.entity_id
+ - key: content.invoice.customer_id
+ foreign-key: notes.entity_id
+ - key: content.subscription.customer_id
+ foreign-key: notes.entity_id
+ - key: content.transaction.customer_id
+ foreign-key: notes.entity_id
+ - key: content.invoice.line_item_discounts.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: content.invoice.line_item_taxes.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: content.invoice.line_items.id
+ foreign-key: line_item_discounts.line_item_id
+ - key: content.invoice.line_item_discounts.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: content.invoice.line_item_taxes.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: content.invoice.line_items.id
+ foreign-key: line_item_taxes.line_item_id
+ - key: content.invoice.line_item_discounts.line_item_id
+ foreign-key: line_item_tiers.line_item_id
+ - key: content.invoice.line_item_taxes.line_item_id
+ foreign-key: line_item_tiers.line_item_id
+ - key: content.invoice.line_items.id
+ foreign-key: line_item_tiers.line_item_id
+ - key: content.invoice.line_item_discounts.line_item_id
+ foreign-key: line_items.line_item_id
+ - key: content.invoice.line_item_taxes.line_item_id
+ foreign-key: line_items.line_item_id
+ - key: content.invoice.line_items.id
+ foreign-key: line_items.line_item_id
+ - key: content.invoice.id
+ foreign-key: id
+ - key: content.transaction.linked_credit_notes.cn_reference_invoice_id
+ foreign-key: id
+ - key: content.transaction.linked_payments.invoice_id
+ foreign-key: id
+ - key: content.plan.id
+ foreign-key: notes.entity_id
+ - key: content.subscription.plan_id
+ foreign-key: notes.entity_id
+ - key: content.invoice.linked_payments.subscription_id
+ foreign-key: line_items.subscription_id
+ - key: content.subscription.id
+ foreign-key: line_items.subscription_id
+ - key: content.invoice.subscription_id
+ foreign-key: line_items.subscription_id
+ - key: content.transaction.subscription_id
+ foreign-key: line_items.subscription_id
+ - key: content.invoice.linked_payments.subscription_id
+ foreign-key: notes.entity_id
+ - key: content.subscription.id
+ foreign-key: notes.entity_id
+ - key: content.invoice.subscription_id
+ foreign-key: notes.entity_id
+ - key: content.transaction.subscription_id
+ foreign-key: notes.entity_id
+ - key: content.invoice.linked_payments.subscription_id
+ foreign-key: subscription_id
+ - key: content.subscription.id
+ foreign-key: subscription_id
+ - key: content.invoice.subscription_id
+ foreign-key: subscription_id
+ - key: content.transaction.subscription_id
+ foreign-key: subscription_id
+ - key: content.invoice.linked_payments.txn_id
+ foreign-key: linked_payments.txn_id
+ - key: content.transaction.id
+ foreign-key: linked_payments.txn_id
+ - key: content.transaction.linked_refunds.txn_id
+ foreign-key: linked_payments.txn_id
+ - key: content.transaction.reference_transaction_id
+ foreign-key: linked_payments.txn_id
+ - key: content.transaction.refunded_txn_id
+ foreign-key: linked_payments.txn_id
+ - table-name: subscriptions
+ keys:
+ - key: content.subscription.addons.id
+ foreign-key: addons.id
+ - key: content.subscription.charged_event_based_addons.id
+ foreign-key: addons.id
+ - key: content.subscription.event_based_addons.id
+ foreign-key: addons.id
+ - key: content.subscription.addons.id
+ foreign-key: charged_event_based_addons.id
+ - key: content.subscription.charged_event_based_addons.id
+ foreign-key: charged_event_based_addons.id
+ - key: content.subscription.event_based_addons.id
+ foreign-key: charged_event_based_addons.id
+ - key: content.subscription.addons.id
+ foreign-key: event_based_addons.id
+ - key: content.subscription.charged_event_based_addons.id
+ foreign-key: event_based_addons.id
+ - key: content.subscription.event_based_addons.id
+ foreign-key: event_based_addons.id
+ - key: content.coupon.id
+ foreign-key: coupons.coupon_id
+ - key: content.invoice.discounts.entity_id
+ foreign-key: coupons.coupon_id
+ - key: content.invoice.line_item_discounts.coupon_id
+ foreign-key: coupons.coupon_id
+ - key: content.subscription.coupons.coupon_id
+ foreign-key: coupons.coupon_id
+ - key: content.customer.id
+ foreign-key: customer_id
+ - key: content.invoice.customer_id
+ foreign-key: customer_id
+ - key: content.subscription.customer_id
+ foreign-key: customer_id
+ - key: content.transaction.customer_id
+ foreign-key: customer_id
+ - key: content.plan.id
+ foreign-key: plan_id
+ - key: content.subscription.plan_id
+ foreign-key: plan_id
+ - key: content.subscription.payment_source_id
+ foreign-key: payment_source_id
+ - key: content.transaction.payment_source_id
+ foreign-key: payment_source_id
+ - key: content.invoice.linked_payments.subscription_id
+ foreign-key: id
+ - key: content.subscription.id
+ foreign-key: id
+ - key: content.invoice.subscription_id
+ foreign-key: id
+ - key: content.transaction.subscription_id
+ foreign-key: id
+ - table-name: coupons
+ keys:
+ - key: content.coupon.id
+ foreign-key: id
+ - key: content.invoice.discounts.entity_id
+ foreign-key: id
+ - key: content.invoice.line_item_discounts.coupon_id
+ foreign-key: id
+ - key: content.subscription.coupons.coupon_id
+ foreign-key: id
+ - table-name: credit_notes
+ keys:
+ - key: content.coupon.id
+ foreign-key: discounts.entity_id
+ - key: content.invoice.discounts.entity_id
+ foreign-key: discounts.entity_id
+ - key: content.invoice.line_item_discounts.coupon_id
+ foreign-key: discounts.entity_id
+ - key: content.subscription.coupons.coupon_id
+ foreign-key: discounts.entity_id
+ - key: content.coupon.id
+ foreign-key: line_item_discounts.coupon_id
+ - key: content.invoice.discounts.entity_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: content.invoice.line_item_discounts.coupon_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: content.subscription.coupons.coupon_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: content.invoice.adjustment_credit_notes.cn_id
+ foreign-key: id
+ - key: content.invoice.applied_credits.cn_id
+ foreign-key: id
+ - key: content.invoice.issued_credit_notes.cn_id
+ foreign-key: id
+ - key: content.customer.id
+ foreign-key: customer_id
+ - key: content.invoice.customer_id
+ foreign-key: customer_id
+ - key: content.subscription.customer_id
+ foreign-key: customer_id
+ - key: content.transaction.customer_id
+ foreign-key: customer_id
+ - key: content.invoice.line_item_discounts.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: content.invoice.line_item_taxes.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: content.invoice.line_items.id
+ foreign-key: line_item_discounts.line_item_id
+ - key: content.invoice.line_item_discounts.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: content.invoice.line_item_taxes.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: content.invoice.line_items.id
+ foreign-key: line_item_taxes.line_item_id
+ - key: content.invoice.line_item_discounts.line_item_id
+ foreign-key: line_item_tiers.line_item_id
+ - key: content.invoice.line_item_taxes.line_item_id
+ foreign-key: line_item_tiers.line_item_id
+ - key: content.invoice.line_items.id
+ foreign-key: line_item_tiers.line_item_id
+ - key: content.invoice.line_item_discounts.line_item_id
+ foreign-key: line_items.line_item_id
+ - key: content.invoice.line_item_taxes.line_item_id
+ foreign-key: line_items.line_item_id
+ - key: content.invoice.line_items.id
+ foreign-key: line_items.line_item_id
+ - key: content.invoice.id
+ foreign-key: allocations.invoice_id
+ - key: content.transaction.linked_credit_notes.cn_reference_invoice_id
+ foreign-key: allocations.invoice_id
+ - key: content.transaction.linked_payments.invoice_id
+ foreign-key: allocations.invoice_id
+ - key: content.invoice.id
+ foreign-key: reference_invoice_id
+ - key: content.transaction.linked_credit_notes.cn_reference_invoice_id
+ foreign-key: reference_invoice_id
+ - key: content.transaction.linked_payments.invoice_id
+ foreign-key: reference_invoice_id
+ - key: content.invoice.linked_payments.subscription_id
+ foreign-key: subscription_id
+ - key: content.subscription.id
+ foreign-key: subscription_id
+ - key: content.invoice.subscription_id
+ foreign-key: subscription_id
+ - key: content.transaction.subscription_id
+ foreign-key: subscription_id
+ - key: content.invoice.linked_payments.subscription_id
+ foreign-key: line_items.subscription_id
+ - key: content.subscription.id
+ foreign-key: line_items.subscription_id
+ - key: content.invoice.subscription_id
+ foreign-key: line_items.subscription_id
+ - key: content.transaction.subscription_id
+ foreign-key: line_items.subscription_id
+ - key: content.invoice.linked_payments.txn_id
+ foreign-key: linked_refunds.txn_id
+ - key: content.transaction.id
+ foreign-key: linked_refunds.txn_id
+ - key: content.transaction.linked_refunds.txn_id
+ foreign-key: linked_refunds.txn_id
+ - key: content.transaction.reference_transaction_id
+ foreign-key: linked_refunds.txn_id
+ - key: content.transaction.refunded_txn_id
+ foreign-key: linked_refunds.txn_id
+ - table-name: customers
+ keys:
+ - key: content.customer.id
+ foreign-key: id
+ - key: content.invoice.customer_id
+ foreign-key: id
+ - key: content.subscription.customer_id
+ foreign-key: id
+ - key: content.transaction.customer_id
+ foreign-key: id
+ - key: content.subscription.payment_source_id
+ foreign-key: primary_payment_sources_id
+ - key: content.transaction.payment_source_id
+ foreign-key: primary_payment_sources_id
+ - table-name: payment_sources
+ keys:
+ - key: content.customer.id
+ foreign-key: customer_id
+ - key: content.invoice.customer_id
+ foreign-key: customer_id
+ - key: content.subscription.customer_id
+ foreign-key: customer_id
+ - key: content.transaction.customer_id
+ foreign-key: customer_id
+ - key: content.subscription.payment_source_id
+ foreign-key: id
+ - key: content.transaction.payment_source_id
+ foreign-key: id
+ - table-name: transactions
+ keys:
+ - key: content.customer.id
+ foreign-key: customer_id
+ - key: content.invoice.customer_id
+ foreign-key: customer_id
+ - key: content.subscription.customer_id
+ foreign-key: customer_id
+ - key: content.transaction.customer_id
+ foreign-key: customer_id
+ - key: content.invoice.id
+ foreign-key: linked_credit_notes.cn_reference_invoice_id
+ - key: content.transaction.linked_credit_notes.cn_reference_invoice_id
+ foreign-key: linked_credit_notes.cn_reference_invoice_id
+ - key: content.transaction.linked_payments.invoice_id
+ foreign-key: linked_credit_notes.cn_reference_invoice_id
+ - key: content.invoice.id
+ foreign-key: linked_payments.invoice_id
+ - key: content.transaction.linked_credit_notes.cn_reference_invoice_id
+ foreign-key: linked_payments.invoice_id
+ - key: content.transaction.linked_payments.invoice_id
+ foreign-key: linked_payments.invoice_id
+ - key: content.subscription.payment_source_id
+ foreign-key: payment_source_id
+ - key: content.transaction.payment_source_id
+ foreign-key: payment_source_id
+ - key: content.invoice.linked_payments.subscription_id
+ foreign-key: subscription_id
+ - key: content.subscription.id
+ foreign-key: subscription_id
+ - key: content.invoice.subscription_id
+ foreign-key: subscription_id
+ - key: content.transaction.subscription_id
+ foreign-key: subscription_id
+ - key: content.invoice.linked_payments.txn_id
+ foreign-key: id
+ - key: content.transaction.id
+ foreign-key: id
+ - key: content.transaction.linked_refunds.txn_id
+ foreign-key: id
+ - key: content.transaction.reference_transaction_id
+ foreign-key: id
+ - key: content.transaction.refunded_txn_id
+ foreign-key: id
+ - key: content.invoice.linked_payments.txn_id
+ foreign-key: linked_refunds.txn_id
+ - key: content.transaction.id
+ foreign-key: linked_refunds.txn_id
+ - key: content.transaction.linked_refunds.txn_id
+ foreign-key: linked_refunds.txn_id
+ - key: content.transaction.reference_transaction_id
+ foreign-key: linked_refunds.txn_id
+ - key: content.transaction.refunded_txn_id
+ foreign-key: linked_refunds.txn_id
+ - key: content.invoice.linked_payments.txn_id
+ foreign-key: reference_transaction_id
+ - key: content.transaction.id
+ foreign-key: reference_transaction_id
+ - key: content.transaction.linked_refunds.txn_id
+ foreign-key: reference_transaction_id
+ - key: content.transaction.reference_transaction_id
+ foreign-key: reference_transaction_id
+ - key: content.transaction.refunded_txn_id
+ foreign-key: reference_transaction_id
+ - key: content.invoice.linked_payments.txn_id
+ foreign-key: refunded_txn_id
+ - key: content.transaction.id
+ foreign-key: refunded_txn_id
+ - key: content.transaction.linked_refunds.txn_id
+ foreign-key: refunded_txn_id
+ - key: content.transaction.reference_transaction_id
+ foreign-key: refunded_txn_id
+ - key: content.transaction.refunded_txn_id
+ foreign-key: refunded_txn_id
+ - table-name: virtual_bank_accounts
+ keys:
+ - key: content.customer.id
+ foreign-key: customer_id
+ - key: content.invoice.customer_id
+ foreign-key: customer_id
+ - key: content.subscription.customer_id
+ foreign-key: customer_id
+ - key: content.transaction.customer_id
+ foreign-key: customer_id
+ - table-name: gifts
+ keys:
+ - key: content.customer.id
+ foreign-key: gift_receiver.customer_id
+ - key: content.invoice.customer_id
+ foreign-key: gift_receiver.customer_id
+ - key: content.subscription.customer_id
+ foreign-key: gift_receiver.customer_id
+ - key: content.transaction.customer_id
+ foreign-key: gift_receiver.customer_id
+ - table-name: plans
+ keys:
+ - key: content.plan.id
+ foreign-key: id
+ - key: content.subscription.plan_id
+ foreign-key: id
+- table-name: invoices
+ join:
+ - table-name: addon
+ keys:
+ - key: notes.entity_id
+ foreign-key: id
+ - table-name: events
+ keys:
+ - key: notes.entity_id
+ foreign-key: content.subscription.addons.id
+ - key: notes.entity_id
+ foreign-key: content.subscription.charged_event_based_addons.id
+ - key: notes.entity_id
+ foreign-key: content.subscription.event_based_addons.id
+ - key: discounts.entity_id
+ foreign-key: content.coupon.id
+ - key: line_item_discounts.coupon_id
+ foreign-key: content.coupon.id
+ - key: notes.entity_id
+ foreign-key: content.coupon.id
+ - key: discounts.entity_id
+ foreign-key: content.invoice.discounts.entity_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: content.invoice.discounts.entity_id
+ - key: notes.entity_id
+ foreign-key: content.invoice.discounts.entity_id
+ - key: discounts.entity_id
+ foreign-key: content.invoice.line_item_discounts.coupon_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: content.invoice.line_item_discounts.coupon_id
+ - key: notes.entity_id
+ foreign-key: content.invoice.line_item_discounts.coupon_id
+ - key: discounts.entity_id
+ foreign-key: content.subscription.coupons.coupon_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: content.subscription.coupons.coupon_id
+ - key: notes.entity_id
+ foreign-key: content.subscription.coupons.coupon_id
+ - key: adjustment_credit_notes.cn_id
+ foreign-key: content.invoice.adjustment_credit_notes.cn_id
+ - key: adjustment_applied_credits.cn_id
+ foreign-key: content.invoice.adjustment_credit_notes.cn_id
+ - key: linked_credit_notes.cn_id
+ foreign-key: content.invoice.adjustment_credit_notes.cn_id
+ - key: adjustment_credit_notes.cn_id
+ foreign-key: content.invoice.applied_credits.cn_id
+ - key: adjustment_applied_credits.cn_id
+ foreign-key: content.invoice.applied_credits.cn_id
+ - key: linked_credit_notes.cn_id
+ foreign-key: content.invoice.applied_credits.cn_id
+ - key: adjustment_credit_notes.cn_id
+ foreign-key: content.invoice.issued_credit_notes.cn_id
+ - key: adjustment_applied_credits.cn_id
+ foreign-key: content.invoice.issued_credit_notes.cn_id
+ - key: linked_credit_notes.cn_id
+ foreign-key: content.invoice.issued_credit_notes.cn_id
+ - key: customer_id
+ foreign-key: content.customer.id
+ - key: notes.entity_id
+ foreign-key: content.customer.id
+ - key: customer_id
+ foreign-key: content.invoice.customer_id
+ - key: notes.entity_id
+ foreign-key: content.invoice.customer_id
+ - key: customer_id
+ foreign-key: content.subscription.customer_id
+ - key: notes.entity_id
+ foreign-key: content.subscription.customer_id
+ - key: customer_id
+ foreign-key: content.transaction.customer_id
+ - key: notes.entity_id
+ foreign-key: content.transaction.customer_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: content.invoice.line_item_discounts.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: content.invoice.line_item_discounts.line_item_id
+ - key: line_item_tiers.line_item_id
+ foreign-key: content.invoice.line_item_discounts.line_item_id
+ - key: line_items.line_item_id
+ foreign-key: content.invoice.line_item_discounts.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: content.invoice.line_item_taxes.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: content.invoice.line_item_taxes.line_item_id
+ - key: line_item_tiers.line_item_id
+ foreign-key: content.invoice.line_item_taxes.line_item_id
+ - key: line_items.line_item_id
+ foreign-key: content.invoice.line_item_taxes.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: content.invoice.line_items.id
+ - key: line_item_taxes.line_item_id
+ foreign-key: content.invoice.line_items.id
+ - key: line_item_tiers.line_item_id
+ foreign-key: content.invoice.line_items.id
+ - key: line_items.line_item_id
+ foreign-key: content.invoice.line_items.id
+ - key: id
+ foreign-key: content.invoice.id
+ - key: id
+ foreign-key: content.transaction.linked_credit_notes.cn_reference_invoice_id
+ - key: id
+ foreign-key: content.transaction.linked_payments.invoice_id
+ - key: notes.entity_id
+ foreign-key: content.plan.id
+ - key: notes.entity_id
+ foreign-key: content.subscription.plan_id
+ - key: line_items.subscription_id
+ foreign-key: content.invoice.linked_payments.subscription_id
+ - key: notes.entity_id
+ foreign-key: content.invoice.linked_payments.subscription_id
+ - key: subscription_id
+ foreign-key: content.invoice.linked_payments.subscription_id
+ - key: line_items.subscription_id
+ foreign-key: content.subscription.id
+ - key: notes.entity_id
+ foreign-key: content.subscription.id
+ - key: subscription_id
+ foreign-key: content.subscription.id
+ - key: line_items.subscription_id
+ foreign-key: content.invoice.subscription_id
+ - key: notes.entity_id
+ foreign-key: content.invoice.subscription_id
+ - key: subscription_id
+ foreign-key: content.invoice.subscription_id
+ - key: line_items.subscription_id
+ foreign-key: content.transaction.subscription_id
+ - key: notes.entity_id
+ foreign-key: content.transaction.subscription_id
+ - key: subscription_id
+ foreign-key: content.transaction.subscription_id
+ - key: linked_payments.txn_id
+ foreign-key: content.invoice.linked_payments.txn_id
+ - key: linked_payments.txn_id
+ foreign-key: content.transaction.id
+ - key: linked_payments.txn_id
+ foreign-key: content.transaction.linked_refunds.txn_id
+ - key: linked_payments.txn_id
+ foreign-key: content.transaction.reference_transaction_id
+ - key: linked_payments.txn_id
+ foreign-key: content.transaction.refunded_txn_id
+ - table-name: subscriptions
+ keys:
+ - key: notes.entity_id
+ foreign-key: addons.id
+ - key: notes.entity_id
+ foreign-key: charged_event_based_addons.id
+ - key: notes.entity_id
+ foreign-key: event_based_addons.id
+ - key: discounts.entity_id
+ foreign-key: coupons.coupon_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: coupons.coupon_id
+ - key: notes.entity_id
+ foreign-key: coupons.coupon_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: notes.entity_id
+ foreign-key: customer_id
+ - key: notes.entity_id
+ foreign-key: plan_id
+ - key: line_items.subscription_id
+ foreign-key: id
+ - key: notes.entity_id
+ foreign-key: id
+ - key: subscription_id
+ foreign-key: id
+ - table-name: coupons
+ keys:
+ - key: discounts.entity_id
+ foreign-key: id
+ - key: line_item_discounts.coupon_id
+ foreign-key: id
+ - key: notes.entity_id
+ foreign-key: id
+ - table-name: credit_notes
+ keys:
+ - key: discounts.entity_id
+ foreign-key: discounts.entity_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: discounts.entity_id
+ - key: notes.entity_id
+ foreign-key: discounts.entity_id
+ - key: discounts.entity_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: notes.entity_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: adjustment_credit_notes.cn_id
+ foreign-key: id
+ - key: adjustment_applied_credits.cn_id
+ foreign-key: id
+ - key: linked_credit_notes.cn_id
+ foreign-key: id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: notes.entity_id
+ foreign-key: customer_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: line_item_tiers.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: line_items.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: line_item_tiers.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: line_items.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: line_item_tiers.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: line_item_tiers.line_item_id
+ - key: line_item_tiers.line_item_id
+ foreign-key: line_item_tiers.line_item_id
+ - key: line_items.line_item_id
+ foreign-key: line_item_tiers.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: line_items.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: line_items.line_item_id
+ - key: line_item_tiers.line_item_id
+ foreign-key: line_items.line_item_id
+ - key: line_items.line_item_id
+ foreign-key: line_items.line_item_id
+ - key: id
+ foreign-key: allocations.invoice_id
+ - key: id
+ foreign-key: reference_invoice_id
+ - key: line_items.subscription_id
+ foreign-key: subscription_id
+ - key: notes.entity_id
+ foreign-key: subscription_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: line_items.subscription_id
+ foreign-key: line_items.subscription_id
+ - key: notes.entity_id
+ foreign-key: line_items.subscription_id
+ - key: subscription_id
+ foreign-key: line_items.subscription_id
+ - key: linked_payments.txn_id
+ foreign-key: linked_refunds.txn_id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: id
+ - key: notes.entity_id
+ foreign-key: id
+ - table-name: payment_sources
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: notes.entity_id
+ foreign-key: customer_id
+ - table-name: transactions
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: notes.entity_id
+ foreign-key: customer_id
+ - key: id
+ foreign-key: linked_credit_notes.cn_reference_invoice_id
+ - key: id
+ foreign-key: linked_payments.invoice_id
+ - key: line_items.subscription_id
+ foreign-key: subscription_id
+ - key: notes.entity_id
+ foreign-key: subscription_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: linked_payments.txn_id
+ foreign-key: id
+ - key: linked_payments.txn_id
+ foreign-key: linked_refunds.txn_id
+ - key: linked_payments.txn_id
+ foreign-key: reference_transaction_id
+ - key: linked_payments.txn_id
+ foreign-key: refunded_txn_id
+ - table-name: virtual_bank_accounts
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: notes.entity_id
+ foreign-key: customer_id
+ - table-name: gifts
+ keys:
+ - key: customer_id
+ foreign-key: gift_receiver.customer_id
+ - key: notes.entity_id
+ foreign-key: gift_receiver.customer_id
+ - table-name: plans
+ keys:
+ - key: notes.entity_id
+ foreign-key: id
+- table-name: subscriptions
+ join:
+ - table-name: addon
+ keys:
+ - key: addons.id
+ foreign-key: id
+ - key: charged_event_based_addons.id
+ foreign-key: id
+ - key: event_based_addons.id
+ foreign-key: id
+ - table-name: events
+ keys:
+ - key: addons.id
+ foreign-key: content.subscription.addons.id
+ - key: charged_event_based_addons.id
+ foreign-key: content.subscription.addons.id
+ - key: event_based_addons.id
+ foreign-key: content.subscription.addons.id
+ - key: addons.id
+ foreign-key: content.subscription.charged_event_based_addons.id
+ - key: charged_event_based_addons.id
+ foreign-key: content.subscription.charged_event_based_addons.id
+ - key: event_based_addons.id
+ foreign-key: content.subscription.charged_event_based_addons.id
+ - key: addons.id
+ foreign-key: content.subscription.event_based_addons.id
+ - key: charged_event_based_addons.id
+ foreign-key: content.subscription.event_based_addons.id
+ - key: event_based_addons.id
+ foreign-key: content.subscription.event_based_addons.id
+ - key: coupons.coupon_id
+ foreign-key: content.coupon.id
+ - key: coupons.coupon_id
+ foreign-key: content.invoice.discounts.entity_id
+ - key: coupons.coupon_id
+ foreign-key: content.invoice.line_item_discounts.coupon_id
+ - key: coupons.coupon_id
+ foreign-key: content.subscription.coupons.coupon_id
+ - key: customer_id
+ foreign-key: content.customer.id
+ - key: customer_id
+ foreign-key: content.invoice.customer_id
+ - key: customer_id
+ foreign-key: content.subscription.customer_id
+ - key: customer_id
+ foreign-key: content.transaction.customer_id
+ - key: plan_id
+ foreign-key: content.plan.id
+ - key: plan_id
+ foreign-key: content.subscription.plan_id
+ - key: payment_source_id
+ foreign-key: content.subscription.payment_source_id
+ - key: payment_source_id
+ foreign-key: content.transaction.payment_source_id
+ - key: id
+ foreign-key: content.invoice.linked_payments.subscription_id
+ - key: id
+ foreign-key: content.subscription.id
+ - key: id
+ foreign-key: content.invoice.subscription_id
+ - key: id
+ foreign-key: content.transaction.subscription_id
+ - table-name: invoices
+ keys:
+ - key: addons.id
+ foreign-key: notes.entity_id
+ - key: charged_event_based_addons.id
+ foreign-key: notes.entity_id
+ - key: event_based_addons.id
+ foreign-key: notes.entity_id
+ - key: coupons.coupon_id
+ foreign-key: discounts.entity_id
+ - key: coupons.coupon_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: coupons.coupon_id
+ foreign-key: notes.entity_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: customer_id
+ foreign-key: notes.entity_id
+ - key: plan_id
+ foreign-key: notes.entity_id
+ - key: id
+ foreign-key: line_items.subscription_id
+ - key: id
+ foreign-key: notes.entity_id
+ - key: id
+ foreign-key: subscription_id
+ - table-name: coupons
+ keys:
+ - key: coupons.coupon_id
+ foreign-key: id
+ - table-name: credit_notes
+ keys:
+ - key: coupons.coupon_id
+ foreign-key: discounts.entity_id
+ - key: coupons.coupon_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: id
+ foreign-key: subscription_id
+ - key: id
+ foreign-key: line_items.subscription_id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: id
+ - key: payment_source_id
+ foreign-key: primary_payment_sources_id
+ - table-name: payment_sources
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: payment_source_id
+ foreign-key: id
+ - table-name: transactions
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: payment_source_id
+ foreign-key: payment_source_id
+ - key: id
+ foreign-key: subscription_id
+ - table-name: virtual_bank_accounts
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: gifts
+ keys:
+ - key: customer_id
+ foreign-key: gift_receiver.customer_id
+ - table-name: plans
+ keys:
+ - key: plan_id
+ foreign-key: id
+- table-name: coupons
+ join:
+ - table-name: credit_notes
+ keys:
+ - key: id
+ foreign-key: discounts.entity_id
+ - key: id
+ foreign-key: line_item_discounts.coupon_id
+ - table-name: events
+ keys:
+ - key: id
+ foreign-key: content.coupon.id
+ - key: id
+ foreign-key: content.invoice.discounts.entity_id
+ - key: id
+ foreign-key: content.invoice.line_item_discounts.coupon_id
+ - key: id
+ foreign-key: content.subscription.coupons.coupon_id
+ - table-name: invoices
+ keys:
+ - key: id
+ foreign-key: discounts.entity_id
+ - key: id
+ foreign-key: line_item_discounts.coupon_id
+ - key: id
+ foreign-key: notes.entity_id
+ - table-name: subscriptions
+ keys:
+ - key: id
+ foreign-key: coupons.coupon_id
+- table-name: credit_notes
+ join:
+ - table-name: coupons
+ keys:
+ - key: discounts.entity_id
+ foreign-key: id
+ - key: line_item_discounts.coupon_id
+ foreign-key: id
+ - table-name: events
+ keys:
+ - key: discounts.entity_id
+ foreign-key: content.coupon.id
+ - key: line_item_discounts.coupon_id
+ foreign-key: content.coupon.id
+ - key: discounts.entity_id
+ foreign-key: content.invoice.discounts.entity_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: content.invoice.discounts.entity_id
+ - key: discounts.entity_id
+ foreign-key: content.invoice.line_item_discounts.coupon_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: content.invoice.line_item_discounts.coupon_id
+ - key: discounts.entity_id
+ foreign-key: content.subscription.coupons.coupon_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: content.subscription.coupons.coupon_id
+ - key: id
+ foreign-key: content.invoice.adjustment_credit_notes.cn_id
+ - key: id
+ foreign-key: content.invoice.applied_credits.cn_id
+ - key: id
+ foreign-key: content.invoice.issued_credit_notes.cn_id
+ - key: customer_id
+ foreign-key: content.customer.id
+ - key: customer_id
+ foreign-key: content.invoice.customer_id
+ - key: customer_id
+ foreign-key: content.subscription.customer_id
+ - key: customer_id
+ foreign-key: content.transaction.customer_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: content.invoice.line_item_discounts.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: content.invoice.line_item_discounts.line_item_id
+ - key: line_item_tiers.line_item_id
+ foreign-key: content.invoice.line_item_discounts.line_item_id
+ - key: line_items.line_item_id
+ foreign-key: content.invoice.line_item_discounts.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: content.invoice.line_item_taxes.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: content.invoice.line_item_taxes.line_item_id
+ - key: line_item_tiers.line_item_id
+ foreign-key: content.invoice.line_item_taxes.line_item_id
+ - key: line_items.line_item_id
+ foreign-key: content.invoice.line_item_taxes.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: content.invoice.line_items.id
+ - key: line_item_taxes.line_item_id
+ foreign-key: content.invoice.line_items.id
+ - key: line_item_tiers.line_item_id
+ foreign-key: content.invoice.line_items.id
+ - key: line_items.line_item_id
+ foreign-key: content.invoice.line_items.id
+ - key: allocations.invoice_id
+ foreign-key: content.invoice.id
+ - key: reference_invoice_id
+ foreign-key: content.invoice.id
+ - key: allocations.invoice_id
+ foreign-key: content.transaction.linked_credit_notes.cn_reference_invoice_id
+ - key: reference_invoice_id
+ foreign-key: content.transaction.linked_credit_notes.cn_reference_invoice_id
+ - key: allocations.invoice_id
+ foreign-key: content.transaction.linked_payments.invoice_id
+ - key: reference_invoice_id
+ foreign-key: content.transaction.linked_payments.invoice_id
+ - key: subscription_id
+ foreign-key: content.invoice.linked_payments.subscription_id
+ - key: line_items.subscription_id
+ foreign-key: content.invoice.linked_payments.subscription_id
+ - key: subscription_id
+ foreign-key: content.subscription.id
+ - key: line_items.subscription_id
+ foreign-key: content.subscription.id
+ - key: subscription_id
+ foreign-key: content.invoice.subscription_id
+ - key: line_items.subscription_id
+ foreign-key: content.invoice.subscription_id
+ - key: subscription_id
+ foreign-key: content.transaction.subscription_id
+ - key: line_items.subscription_id
+ foreign-key: content.transaction.subscription_id
+ - key: linked_refunds.txn_id
+ foreign-key: content.invoice.linked_payments.txn_id
+ - key: linked_refunds.txn_id
+ foreign-key: content.transaction.id
+ - key: linked_refunds.txn_id
+ foreign-key: content.transaction.linked_refunds.txn_id
+ - key: linked_refunds.txn_id
+ foreign-key: content.transaction.reference_transaction_id
+ - key: linked_refunds.txn_id
+ foreign-key: content.transaction.refunded_txn_id
+ - table-name: invoices
+ keys:
+ - key: discounts.entity_id
+ foreign-key: discounts.entity_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: discounts.entity_id
+ - key: discounts.entity_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: line_item_discounts.coupon_id
+ - key: discounts.entity_id
+ foreign-key: notes.entity_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: notes.entity_id
+ - key: id
+ foreign-key: adjustment_credit_notes.cn_id
+ - key: id
+ foreign-key: adjustment_applied_credits.cn_id
+ - key: id
+ foreign-key: linked_credit_notes.cn_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: customer_id
+ foreign-key: notes.entity_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: line_item_tiers.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: line_items.line_item_id
+ foreign-key: line_item_discounts.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: line_item_tiers.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: line_items.line_item_id
+ foreign-key: line_item_taxes.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: line_item_tiers.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: line_item_tiers.line_item_id
+ - key: line_item_tiers.line_item_id
+ foreign-key: line_item_tiers.line_item_id
+ - key: line_items.line_item_id
+ foreign-key: line_item_tiers.line_item_id
+ - key: line_item_discounts.line_item_id
+ foreign-key: line_items.line_item_id
+ - key: line_item_taxes.line_item_id
+ foreign-key: line_items.line_item_id
+ - key: line_item_tiers.line_item_id
+ foreign-key: line_items.line_item_id
+ - key: line_items.line_item_id
+ foreign-key: line_items.line_item_id
+ - key: allocations.invoice_id
+ foreign-key: id
+ - key: reference_invoice_id
+ foreign-key: id
+ - key: subscription_id
+ foreign-key: line_items.subscription_id
+ - key: line_items.subscription_id
+ foreign-key: line_items.subscription_id
+ - key: subscription_id
+ foreign-key: notes.entity_id
+ - key: line_items.subscription_id
+ foreign-key: notes.entity_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: line_items.subscription_id
+ foreign-key: subscription_id
+ - key: linked_refunds.txn_id
+ foreign-key: linked_payments.txn_id
+ - table-name: subscriptions
+ keys:
+ - key: discounts.entity_id
+ foreign-key: coupons.coupon_id
+ - key: line_item_discounts.coupon_id
+ foreign-key: coupons.coupon_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: subscription_id
+ foreign-key: id
+ - key: line_items.subscription_id
+ foreign-key: id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: id
+ - table-name: payment_sources
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: transactions
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: allocations.invoice_id
+ foreign-key: linked_credit_notes.cn_reference_invoice_id
+ - key: reference_invoice_id
+ foreign-key: linked_credit_notes.cn_reference_invoice_id
+ - key: allocations.invoice_id
+ foreign-key: linked_payments.invoice_id
+ - key: reference_invoice_id
+ foreign-key: linked_payments.invoice_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: line_items.subscription_id
+ foreign-key: subscription_id
+ - key: linked_refunds.txn_id
+ foreign-key: id
+ - key: linked_refunds.txn_id
+ foreign-key: linked_refunds.txn_id
+ - key: linked_refunds.txn_id
+ foreign-key: reference_transaction_id
+ - key: linked_refunds.txn_id
+ foreign-key: refunded_txn_id
+ - table-name: virtual_bank_accounts
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: gifts
+ keys:
+ - key: customer_id
+ foreign-key: gift_receiver.customer_id
+- table-name: customers
+ join:
+ - table-name: credit_notes
+ keys:
+ - key: id
+ foreign-key: customer_id
+ - table-name: events
+ keys:
+ - key: id
+ foreign-key: content.customer.id
+ - key: id
+ foreign-key: content.invoice.customer_id
+ - key: id
+ foreign-key: content.subscription.customer_id
+ - key: id
+ foreign-key: content.transaction.customer_id
+ - key: primary_payment_sources_id
+ foreign-key: content.subscription.payment_source_id
+ - key: primary_payment_sources_id
+ foreign-key: content.transaction.payment_source_id
+ - table-name: invoices
+ keys:
+ - key: id
+ foreign-key: customer_id
+ - key: id
+ foreign-key: notes.entity_id
+ - table-name: payment_sources
+ keys:
+ - key: id
+ foreign-key: customer_id
+ - key: primary_payment_sources_id
+ foreign-key: id
+ - table-name: subscriptions
+ keys:
+ - key: id
+ foreign-key: customer_id
+ - key: primary_payment_sources_id
+ foreign-key: payment_source_id
+ - table-name: transactions
+ keys:
+ - key: id
+ foreign-key: customer_id
+ - key: primary_payment_sources_id
+ foreign-key: payment_source_id
+ - table-name: virtual_bank_accounts
+ keys:
+ - key: id
+ foreign-key: customer_id
+ - table-name: gifts
+ keys:
+ - key: id
+ foreign-key: gift_receiver.customer_id
+- table-name: payment_sources
+ join:
+ - table-name: credit_notes
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: id
+ - key: id
+ foreign-key: primary_payment_sources_id
+ - table-name: events
+ keys:
+ - key: customer_id
+ foreign-key: content.customer.id
+ - key: customer_id
+ foreign-key: content.invoice.customer_id
+ - key: customer_id
+ foreign-key: content.subscription.customer_id
+ - key: customer_id
+ foreign-key: content.transaction.customer_id
+ - key: id
+ foreign-key: content.subscription.payment_source_id
+ - key: id
+ foreign-key: content.transaction.payment_source_id
+ - table-name: invoices
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: customer_id
+ foreign-key: notes.entity_id
+ - table-name: subscriptions
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: id
+ foreign-key: payment_source_id
+ - table-name: transactions
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: id
+ foreign-key: payment_source_id
+ - table-name: virtual_bank_accounts
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: gifts
+ keys:
+ - key: customer_id
+ foreign-key: gift_receiver.customer_id
+- table-name: transactions
+ join:
+ - table-name: credit_notes
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: linked_credit_notes.cn_reference_invoice_id
+ foreign-key: allocations.invoice_id
+ - key: linked_payments.invoice_id
+ foreign-key: allocations.invoice_id
+ - key: linked_credit_notes.cn_reference_invoice_id
+ foreign-key: reference_invoice_id
+ - key: linked_payments.invoice_id
+ foreign-key: reference_invoice_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: subscription_id
+ foreign-key: line_items.subscription_id
+ - key: id
+ foreign-key: linked_refunds.txn_id
+ - key: linked_refunds.txn_id
+ foreign-key: linked_refunds.txn_id
+ - key: reference_transaction_id
+ foreign-key: linked_refunds.txn_id
+ - key: refunded_txn_id
+ foreign-key: linked_refunds.txn_id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: id
+ - key: payment_source_id
+ foreign-key: primary_payment_sources_id
+ - table-name: events
+ keys:
+ - key: customer_id
+ foreign-key: content.customer.id
+ - key: customer_id
+ foreign-key: content.invoice.customer_id
+ - key: customer_id
+ foreign-key: content.subscription.customer_id
+ - key: customer_id
+ foreign-key: content.transaction.customer_id
+ - key: linked_credit_notes.cn_reference_invoice_id
+ foreign-key: content.invoice.id
+ - key: linked_payments.invoice_id
+ foreign-key: content.invoice.id
+ - key: linked_credit_notes.cn_reference_invoice_id
+ foreign-key: content.transaction.linked_credit_notes.cn_reference_invoice_id
+ - key: linked_payments.invoice_id
+ foreign-key: content.transaction.linked_credit_notes.cn_reference_invoice_id
+ - key: linked_credit_notes.cn_reference_invoice_id
+ foreign-key: content.transaction.linked_payments.invoice_id
+ - key: linked_payments.invoice_id
+ foreign-key: content.transaction.linked_payments.invoice_id
+ - key: payment_source_id
+ foreign-key: content.subscription.payment_source_id
+ - key: payment_source_id
+ foreign-key: content.transaction.payment_source_id
+ - key: subscription_id
+ foreign-key: content.invoice.linked_payments.subscription_id
+ - key: subscription_id
+ foreign-key: content.subscription.id
+ - key: subscription_id
+ foreign-key: content.invoice.subscription_id
+ - key: subscription_id
+ foreign-key: content.transaction.subscription_id
+ - key: id
+ foreign-key: content.invoice.linked_payments.txn_id
+ - key: linked_refunds.txn_id
+ foreign-key: content.invoice.linked_payments.txn_id
+ - key: reference_transaction_id
+ foreign-key: content.invoice.linked_payments.txn_id
+ - key: refunded_txn_id
+ foreign-key: content.invoice.linked_payments.txn_id
+ - key: id
+ foreign-key: content.transaction.id
+ - key: linked_refunds.txn_id
+ foreign-key: content.transaction.id
+ - key: reference_transaction_id
+ foreign-key: content.transaction.id
+ - key: refunded_txn_id
+ foreign-key: content.transaction.id
+ - key: id
+ foreign-key: content.transaction.linked_refunds.txn_id
+ - key: linked_refunds.txn_id
+ foreign-key: content.transaction.linked_refunds.txn_id
+ - key: reference_transaction_id
+ foreign-key: content.transaction.linked_refunds.txn_id
+ - key: refunded_txn_id
+ foreign-key: content.transaction.linked_refunds.txn_id
+ - key: id
+ foreign-key: content.transaction.reference_transaction_id
+ - key: linked_refunds.txn_id
+ foreign-key: content.transaction.reference_transaction_id
+ - key: reference_transaction_id
+ foreign-key: content.transaction.reference_transaction_id
+ - key: refunded_txn_id
+ foreign-key: content.transaction.reference_transaction_id
+ - key: id
+ foreign-key: content.transaction.refunded_txn_id
+ - key: linked_refunds.txn_id
+ foreign-key: content.transaction.refunded_txn_id
+ - key: reference_transaction_id
+ foreign-key: content.transaction.refunded_txn_id
+ - key: refunded_txn_id
+ foreign-key: content.transaction.refunded_txn_id
+ - table-name: invoices
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: customer_id
+ foreign-key: notes.entity_id
+ - key: linked_credit_notes.cn_reference_invoice_id
+ foreign-key: id
+ - key: linked_payments.invoice_id
+ foreign-key: id
+ - key: subscription_id
+ foreign-key: line_items.subscription_id
+ - key: subscription_id
+ foreign-key: notes.entity_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: id
+ foreign-key: linked_payments.txn_id
+ - key: linked_refunds.txn_id
+ foreign-key: linked_payments.txn_id
+ - key: reference_transaction_id
+ foreign-key: linked_payments.txn_id
+ - key: refunded_txn_id
+ foreign-key: linked_payments.txn_id
+ - table-name: payment_sources
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: payment_source_id
+ foreign-key: id
+ - table-name: subscriptions
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: payment_source_id
+ foreign-key: payment_source_id
+ - key: subscription_id
+ foreign-key: id
+ - table-name: virtual_bank_accounts
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: gifts
+ keys:
+ - key: customer_id
+ foreign-key: gift_receiver.customer_id
+- table-name: virtual_bank_accounts
+ join:
+ - table-name: credit_notes
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: id
+ - table-name: events
+ keys:
+ - key: customer_id
+ foreign-key: content.customer.id
+ - key: customer_id
+ foreign-key: content.invoice.customer_id
+ - key: customer_id
+ foreign-key: content.subscription.customer_id
+ - key: customer_id
+ foreign-key: content.transaction.customer_id
+ - table-name: invoices
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: customer_id
+ foreign-key: notes.entity_id
+ - table-name: payment_sources
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: subscriptions
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: transactions
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: gifts
+ keys:
+ - key: customer_id
+ foreign-key: gift_receiver.customer_id
+- table-name: gifts
+ join:
+ - table-name: credit_notes
+ keys:
+ - key: gift_receiver.customer_id
+ foreign-key: customer_id
+ - table-name: customers
+ keys:
+ - key: gift_receiver.customer_id
+ foreign-key: id
+ - table-name: events
+ keys:
+ - key: gift_receiver.customer_id
+ foreign-key: content.customer.id
+ - key: gift_receiver.customer_id
+ foreign-key: content.invoice.customer_id
+ - key: gift_receiver.customer_id
+ foreign-key: content.subscription.customer_id
+ - key: gift_receiver.customer_id
+ foreign-key: content.transaction.customer_id
+ - table-name: invoices
+ keys:
+ - key: gift_receiver.customer_id
+ foreign-key: customer_id
+ - key: gift_receiver.customer_id
+ foreign-key: notes.entity_id
+ - table-name: payment_sources
+ keys:
+ - key: gift_receiver.customer_id
+ foreign-key: customer_id
+ - table-name: subscriptions
+ keys:
+ - key: gift_receiver.customer_id
+ foreign-key: customer_id
+ - table-name: transactions
+ keys:
+ - key: gift_receiver.customer_id
+ foreign-key: customer_id
+ - table-name: virtual_bank_accounts
+ keys:
+ - key: gift_receiver.customer_id
+ foreign-key: customer_id
+- table-name: plans
+ join:
+ - table-name: events
+ keys:
+ - key: id
+ foreign-key: content.plan.id
+ - key: id
+ foreign-key: content.subscription.plan_id
+ - table-name: invoices
+ keys:
+ - key: id
+ foreign-key: notes.entity_id
+ - table-name: subscriptions
+ keys:
+ - key: id
+ foreign-key: plan_id
diff --git a/_data/taps/schemas/chargebee/v20-05-2019/chargebee-v20-05-2019-tables.yml b/_data/taps/schemas/chargebee/v20-05-2019/chargebee-v20-05-2019-tables.yml
new file mode 100644
index 000000000..be1d9c240
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v20-05-2019/chargebee-v20-05-2019-tables.yml
@@ -0,0 +1,175 @@
+tap: chargebee
+version: 20-05-2019
+tables:
+- name: addons
+ description: 'The `{{ table.name }}` table contains info about the addons in your
+ {{ integration.display_name }} account. Addons are additional charges applied
+ to subscriptions apart from base charges.
+
+ '
+ links:
+ doc-link: https://apidocs.chargebee.com/docs/api/addons
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/addons.json
+ api-method: https://apidocs.chargebee.com/docs/api/addons#list_addons
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: coupons
+ description: 'The `{{ table.name }}` table contains info about the coupons in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://apidocs.chargebee.com/docs/api/coupons
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/coupons.json
+ api-method: https://apidocs.chargebee.com/docs/api/coupons#list_coupons
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: credit_notes
+ description: 'The `{{ table.name }}` table contains info about the credit notes
+ in your {{ integration.display_name }} account. A credit note is a document that
+ specifies the money owed by a business to a customer.
+
+ '
+ links:
+ doc-link: https://apidocs.chargebee.com/docs/api/credit_notes
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/credit_notes.json
+ api-method: https://apidocs.chargebee.com/docs/api/credit_notes#list_credit_notes
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: customers
+ description: 'The `{{ table.name }}` table contains info about the customers in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://apidocs.chargebee.com/docs/api/customers
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/customers.json
+ api-method: https://apidocs.chargebee.com/docs/api/customers#list_customers
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: events
+ description: 'The `{{ table.name }}` table contains info about the events that have
+ occurred on your {{ integration.display_name }} site. Event records contain data
+ about affected resources and additional details, such as when the change occurred.
+ This can be used to create a log of events for a record and analyze how it has
+ changed over time.
+
+ '
+ links:
+ doc-link: https://apidocs.chargebee.com/docs/api/events
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/events.json
+ api-method: https://apidocs.chargebee.com/docs/api/events#list_events
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: occurred_at
+- name: invoices
+ description: 'The `{{ table.name }}` table contains info about the invoices in your
+ {{ integration.display_name }} account. Invoices are statements containing charges,
+ adjustments, and any discounts for a subscription specific to a term.
+
+ '
+ links:
+ doc-link: https://apidocs.chargebee.com/docs/api/invoices
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/invoices.json
+ api-method: https://apidocs.chargebee.com/docs/api/invoices#list_invoices
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: payment_sources
+ description: 'The `{{ table.name }}` table contains info about customer payment
+ sources.
+
+ '
+ links:
+ doc-link: https://apidocs.chargebee.com/docs/api/payment_sources
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/payment_sources.json
+ api-method: https://apidocs.chargebee.com/docs/api/payment_sources#list_payment_sources
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: plans
+ description: 'The `{{ table.name }}` table contains info about the plans in your
+ {{ integration.display_name }} account. Plans are used to specify prices and billing
+ frequencies for [`subscriptions`](#subscriptions).
+
+ '
+ links:
+ doc-link: https://apidocs.chargebee.com/docs/api/plans
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/plans.json
+ api-method: https://apidocs.chargebee.com/docs/api/plans#list_plans
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: subscriptions
+ description: 'The `{{ table.name }}` table contains info about the subscriptions
+ your customers have subscribed to. A subscription is a recurring item that customers
+ are billed for, such as a plan or addon. It may also contain discount items.
+
+
+ **Note**: {{ integration.display_name }} [does not update the `updated_at`](https://apidocs.chargebee.com/docs/api/subscriptions#subscription_updated_at){:target="new"}
+ value when the following attributes on a subscription are modified:
+
+
+ - `due_invoices_count`
+
+ - `due_since`
+
+ - `total_dues`
+
+
+ Because of this functionality and Stitch''s use of this value as a [Replication
+ Key]({{ link.replication.rep-keys | prepend: site.baseurl }}), updates made to
+ subscriptions where only these attributes are modified may not be detected. You
+ should ensure that another attribute on the subscription is also modified to ensure
+ that the `updated_at` value is updated, which will allow Stitch to detect and
+ replicate the record.
+
+ '
+ links:
+ doc-link: https://apidocs.chargebee.com/docs/api/subscriptions
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/subscriptions.json
+ api-method: https://apidocs.chargebee.com/docs/api/subscriptions#list_subscriptions
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: transactions
+ description: 'The `{{ table.name }}` table contains info about the transactions
+ that have occurred in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://apidocs.chargebee.com/docs/api/transactions
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/transactions.json
+ api-method: https://apidocs.chargebee.com/docs/api/transactions#list_transactions
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: virtual_bank_accounts
+ description: 'The `{{ table.name }}` table contains info about the virtual bank
+ accounts in your {{ integration.display_name }} account. A virtual bank account
+ is a unique account number that can be shared with your users while still protecting
+ your sensitive bank account details.
+
+ '
+ links:
+ doc-link: https://apidocs.chargebee.com/docs/api/virtual_bank_accounts
+ singer-schema: https://github.com/singer-io/tap-chargebee/blob/master/tap_chargebee/schemas/virtual_bank_accounts.json
+ api-method: https://apidocs.chargebee.com/docs/api/virtual_bank_accounts#list_virtual_bank_accounts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
diff --git a/_data/taps/schemas/chargebee/v20-05-2019/json/addons.json b/_data/taps/schemas/chargebee/v20-05-2019/json/addons.json
new file mode 100644
index 000000000..16ffb6dbc
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v20-05-2019/json/addons.json
@@ -0,0 +1,176 @@
+{
+ "properties": {
+ "accounting_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "accouting_category1": {
+ "type": [
+ "string"
+ ]
+ },
+ "accouting_category2": {
+ "type": [
+ "string"
+ ]
+ },
+ "archived_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "charge_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "enabled_in_portal": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoice_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoice_notes": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_shippable": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "meta_data": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "string"
+ ]
+ },
+ "period": {
+ "type": [
+ "integer"
+ ]
+ },
+ "period_unit": {
+ "type": [
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "integer"
+ ]
+ },
+ "pricing_model": {
+ "type": [
+ "string"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "integer"
+ ]
+ },
+ "shipping_frequency_period": {
+ "type": [
+ "integer"
+ ]
+ },
+ "shipping_frequency_period_unit": {
+ "type": [
+ "string"
+ ]
+ },
+ "sku": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_profile_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "taxable": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "tiers": {
+ "properties": {
+ "ending_unit": {
+ "type": [
+ "integer"
+ ]
+ },
+ "price ": {
+ "type": [
+ "integer"
+ ]
+ },
+ "starting_unit": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "unit": {
+ "type": [
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v20-05-2019/json/coupons.json b/_data/taps/schemas/chargebee/v20-05-2019/json/coupons.json
new file mode 100644
index 000000000..80a04af56
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v20-05-2019/json/coupons.json
@@ -0,0 +1,99 @@
+{
+ "properties": {
+ "addon_constraint": {
+ "type": [
+ "string"
+ ]
+ },
+ "apply_discount_on": {
+ "type": [
+ "string"
+ ]
+ },
+ "apply_on": {
+ "type": [
+ "string"
+ ]
+ },
+ "archived_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "discount_percentage": {
+ "type": [
+ "number"
+ ]
+ },
+ "discount_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "duration_month": {
+ "type": [
+ "integer"
+ ]
+ },
+ "duration_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "max_redemptions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "string"
+ ]
+ },
+ "plan_constraint": {
+ "type": [
+ "string"
+ ]
+ },
+ "redemptions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v20-05-2019/json/credit_notes.json b/_data/taps/schemas/chargebee/v20-05-2019/json/credit_notes.json
new file mode 100644
index 000000000..53c65a21d
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v20-05-2019/json/credit_notes.json
@@ -0,0 +1,440 @@
+{
+ "properties": {
+ "allocations": {
+ "properties": {
+ "allocated_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "allocated_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "invoice_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "invoice_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoice_status": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "amount_allocated": {
+ "type": [
+ "integer"
+ ]
+ },
+ "amount_available": {
+ "type": [
+ "integer"
+ ]
+ },
+ "amount_refunded": {
+ "type": [
+ "integer"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "discounts": {
+ "properties": {
+ "amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "entity_type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "line_item_discounts": {
+ "properties": {
+ "coupon_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "discount_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "line_item_taxes": {
+ "properties": {
+ "is_non_compliance_tax": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "is_partial_tax_applied": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "tax_juris_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_juris_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_juris_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "taxable_amount": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "line_item_tiers": {
+ "properties": {
+ "ending_unit": {
+ "type": [
+ "integer"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "quantity_used": {
+ "type": [
+ "integer"
+ ]
+ },
+ "starting_unit": {
+ "type": [
+ "integer"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "line_items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_from": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_to": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "entity_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_taxed": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "item_level_discount_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "pricing_model": {
+ "type": [
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "tax_exempt_reason": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "linked_refunds": {
+ "properties": {
+ "applied_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "applied_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "txn_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "txn_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "txn_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "txn_status": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "price_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "reason_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "reference_invoice_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "refunded_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "integer"
+ ]
+ },
+ "round_off_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "sub_total": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "taxes": {
+ "properties": {
+ "amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "total": {
+ "type": [
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "vat_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "voided_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v20-05-2019/json/customers.json b/_data/taps/schemas/chargebee/v20-05-2019/json/customers.json
new file mode 100644
index 000000000..7ba7abb57
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v20-05-2019/json/customers.json
@@ -0,0 +1,414 @@
+{
+ "properties": {
+ "allow_direct_debit": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "auto_collection": {
+ "type": [
+ "string"
+ ]
+ },
+ "balances": {
+ "properties": {
+ "currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "excess_payments": {
+ "type": [
+ "integer"
+ ]
+ },
+ "promotional_credits": {
+ "type": [
+ "integer"
+ ]
+ },
+ "refundable_credits ": {
+ "type": [
+ "integer"
+ ]
+ },
+ "unbilled_charges": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "billing_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "string"
+ ]
+ },
+ "line3": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "state_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "validation_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "billing_date": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "billing_date_mode": {
+ "type": [
+ "string"
+ ]
+ },
+ "billing_day_of_week": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "billing_day_of_week_mode": {
+ "type": [
+ "string"
+ ]
+ },
+ "card_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "cf_company_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "company": {
+ "type": [
+ "string"
+ ]
+ },
+ "consolidated_invoicing": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "contacts": {
+ "properties": {
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "send_account_email": {
+ "type": [
+ "string"
+ ]
+ },
+ "send_billing_email": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "excess_payments": {
+ "type": [
+ "integer"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoice_notes": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "locale": {
+ "type": [
+ "string"
+ ]
+ },
+ "net_term_days": {
+ "type": [
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "string"
+ ]
+ },
+ "payment_method": {
+ "properties": {
+ "gateway": {
+ "type": [
+ "string"
+ ]
+ },
+ "gateway_account_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "string"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "pii_cleared": {
+ "type": [
+ "string"
+ ]
+ },
+ "preferred_currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "primary_payment_source_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "promotional_credits": {
+ "type": [
+ "integer"
+ ]
+ },
+ "referral_urls": {
+ "properties": {
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "external_customer_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "referral_account_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "referral_campaign_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "referral_external_account_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "referral_sharing_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "referral_system": {
+ "type": [
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "refundable_credits": {
+ "type": [
+ "integer"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "integer"
+ ]
+ },
+ "taxability": {
+ "type": [
+ "string"
+ ]
+ },
+ "unbilled_charges": {
+ "type": [
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "vat_number": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v20-05-2019/json/events.json b/_data/taps/schemas/chargebee/v20-05-2019/json/events.json
new file mode 100644
index 000000000..9c3d35d81
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v20-05-2019/json/events.json
@@ -0,0 +1,2182 @@
+{
+ "properties": {
+ "api_version": {
+ "type": [
+ "string"
+ ]
+ },
+ "content": {
+ "properties": {
+ "coupon": {
+ "properties": {
+ "addon_constraint": {
+ "type": [
+ "string"
+ ]
+ },
+ "apply_discount_on": {
+ "type": [
+ "string"
+ ]
+ },
+ "apply_on": {
+ "type": [
+ "string"
+ ]
+ },
+ "archived_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "discount_percentage": {
+ "type": [
+ "number"
+ ]
+ },
+ "discount_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "duration_month": {
+ "type": [
+ "integer"
+ ]
+ },
+ "duration_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "max_redemptions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "string"
+ ]
+ },
+ "plan_constraint": {
+ "type": [
+ "string"
+ ]
+ },
+ "redemptions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "customer": {
+ "properties": {
+ "allow_direct_debit": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "auto_collection": {
+ "type": [
+ "string"
+ ]
+ },
+ "balances": {
+ "properties": {
+ "currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "excess_payments": {
+ "type": [
+ "integer"
+ ]
+ },
+ "promotional_credits": {
+ "type": [
+ "integer"
+ ]
+ },
+ "refundable_credits ": {
+ "type": [
+ "integer"
+ ]
+ },
+ "unbilled_charges": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "billing_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "string"
+ ]
+ },
+ "line3": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "state_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "validation_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "billing_date": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "billing_date_mode": {
+ "type": [
+ "string"
+ ]
+ },
+ "billing_day_of_week": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "billing_day_of_week_mode": {
+ "type": [
+ "string"
+ ]
+ },
+ "card_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "cf_company_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "company": {
+ "type": [
+ "string"
+ ]
+ },
+ "consolidated_invoicing": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "contacts": {
+ "properties": {
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "send_account_email": {
+ "type": [
+ "string"
+ ]
+ },
+ "send_billing_email": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "excess_payments": {
+ "type": [
+ "integer"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoice_notes": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "locale": {
+ "type": [
+ "string"
+ ]
+ },
+ "net_term_days": {
+ "type": [
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "string"
+ ]
+ },
+ "payment_method": {
+ "properties": {
+ "gateway": {
+ "type": [
+ "string"
+ ]
+ },
+ "gateway_account_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "string"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "pii_cleared": {
+ "type": [
+ "string"
+ ]
+ },
+ "preferred_currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "primary_payment_source_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "promotional_credits": {
+ "type": [
+ "integer"
+ ]
+ },
+ "referral_urls": {
+ "properties": {
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "external_customer_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "referral_account_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "referral_campaign_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "referral_external_account_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "referral_sharing_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "referral_system": {
+ "type": [
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "refundable_credits": {
+ "type": [
+ "integer"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "integer"
+ ]
+ },
+ "taxability": {
+ "type": [
+ "string"
+ ]
+ },
+ "unbilled_charges": {
+ "type": [
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "vat_number": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "invoice": {
+ "properties": {
+ "adjustment_credit_notes": {
+ "properties": {
+ "cn_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "cn_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "cn_reason_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "cn_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "cn_total": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "amount_adjusted": {
+ "type": [
+ "integer"
+ ]
+ },
+ "amount_due": {
+ "type": [
+ "integer"
+ ]
+ },
+ "amount_paid": {
+ "type": [
+ "integer"
+ ]
+ },
+ "amount_to_collect": {
+ "type": [
+ "integer"
+ ]
+ },
+ "applied_credits": {
+ "properties": {
+ "applied_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "applied_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "cn_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "cn_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "cn_reason_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "cn_status": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "base_currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "billing_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "string"
+ ]
+ },
+ "line3": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "state_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "validation_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "credits_applied": {
+ "type": [
+ "integer"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "discounts": {
+ "properties": {
+ "amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "entity_type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "due_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "dunning_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "exchange_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "expected_payment_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "first_invoice": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "has_advance_charges": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_gifted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "issued_credit_notes": {
+ "properties": {
+ "cn_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "cn_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "cn_reason_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "cn_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "cn_total": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "line_item_discounts": {
+ "properties": {
+ "coupon_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "discount_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "line_item_taxes": {
+ "properties": {
+ "line_item_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "tax_juris_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_juris_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_juris_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_rate": {
+ "type": [
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "line_items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_from": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_to": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "entity_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_taxed": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "item_level_discount_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "pricing_model": {
+ "type": [
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "tax_exempt_reason": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "linked_orders": {
+ "properties": {
+ "batch_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "fulfillment_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "linked_payments": {
+ "properties": {
+ "applied_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "applied_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "txn_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "txn_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "txn_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "txn_status": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "net_term_days": {
+ "type": [
+ "integer"
+ ]
+ },
+ "new_sales_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "next_retry_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "notes": {
+ "properties": {
+ "entity_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "entity_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "object": {
+ "type": [
+ "string"
+ ]
+ },
+ "paid_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "po_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "price_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "recurring": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "integer"
+ ]
+ },
+ "round_off_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "shipping_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "string"
+ ]
+ },
+ "line3": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "state_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "validation_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "sub_total": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax": {
+ "type": [
+ "integer"
+ ]
+ },
+ "taxes": {
+ "properties": {
+ "amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "term_finalized": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "total": {
+ "type": [
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "vat_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "voided_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "write_off_amount": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "plan": {
+ "properties": {
+ "billing_cycles": {
+ "type": [
+ "integer"
+ ]
+ },
+ "charge_model": {
+ "type": [
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "free_quantity": {
+ "type": [
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoice_notes": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "period": {
+ "type": [
+ "integer"
+ ]
+ },
+ "period_unit": {
+ "type": [
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "integer"
+ ]
+ },
+ "redirect_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "setup_cost": {
+ "type": [
+ "integer"
+ ]
+ },
+ "sku": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_profile_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "taxable": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "trial_period": {
+ "type": [
+ "integer"
+ ]
+ },
+ "trial_period_unit": {
+ "type": [
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "subscription": {
+ "properties": {
+ "activated_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "addons": {
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "integer"
+ ]
+ },
+ "remaining_billing_cycles": {
+ "type": [
+ "integer"
+ ]
+ },
+ "trial_end": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "unit_price": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "affiliate_token": {
+ "type": [
+ "string"
+ ]
+ },
+ "auto_collection": {
+ "type": [
+ "string"
+ ]
+ },
+ "base_currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "billing_period": {
+ "type": [
+ "integer"
+ ]
+ },
+ "billing_period_unit": {
+ "type": [
+ "string"
+ ]
+ },
+ "cancel_reason": {
+ "type": [
+ "string"
+ ]
+ },
+ "cancelled_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "charged_event_based_addons": {
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_charged_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "object": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "coupon": {
+ "type": [
+ "string"
+ ]
+ },
+ "coupons": {
+ "properties": {
+ "applied_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "apply_till": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "coupon_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "coupon_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "current_term_end": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "current_term_start": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "due_invoices_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "event_based_addons": {
+ "properties": {
+ "charge_once": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "string"
+ ]
+ },
+ "on_event": {
+ "type": [
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "integer"
+ ]
+ },
+ "unit_price": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "exchange_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "has_scheduled_changes": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoice_notes": {
+ "type": [
+ "string"
+ ]
+ },
+ "mrr": {
+ "type": [
+ "integer"
+ ]
+ },
+ "next_billing_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "object": {
+ "type": [
+ "string"
+ ]
+ },
+ "payment_source_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "plan_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "plan_free_quantity": {
+ "type": [
+ "integer"
+ ]
+ },
+ "plan_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "plan_quantity": {
+ "type": [
+ "integer"
+ ]
+ },
+ "plan_unit_price": {
+ "type": [
+ "integer"
+ ]
+ },
+ "po_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "referral_info": {
+ "properties": {
+ "account_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "coupon_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "destination_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "external_campaign_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "external_reference_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "friend_offer_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "notify_referral_system": {
+ "type": [
+ "string"
+ ]
+ },
+ "post_purchase_widget_enabled": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "referral_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "referral_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "referrer_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "referrer_reward_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "reward_status": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "remaining_billing_cycles": {
+ "type": [
+ "integer"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "integer"
+ ]
+ },
+ "shipping_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "string"
+ ]
+ },
+ "line3": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "state_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "validation_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "started_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "trial_end": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "trial_start": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "transaction": {
+ "properties": {
+ "amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "amount_unused": {
+ "type": [
+ "integer"
+ ]
+ },
+ "base_currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "error_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "error_text": {
+ "type": [
+ "string"
+ ]
+ },
+ "exchange_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "fraud_flag": {
+ "type": [
+ "string"
+ ]
+ },
+ "fraud_reason": {
+ "type": [
+ "string"
+ ]
+ },
+ "gateway": {
+ "type": [
+ "string"
+ ]
+ },
+ "gateway_account_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "id_at_gateway": {
+ "type": [
+ "string"
+ ]
+ },
+ "linked_credit_notes": {
+ "properties": {
+ "applied_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "applied_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "cn_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "cn_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "cn_reason_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "cn_reference_invoice_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "cn_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "cn_total": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "linked_invoices": {
+ "properties": {
+ "applied_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "applied_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "invoice_date": {
+ "type": [
+ "date-times"
+ ]
+ },
+ "invoice_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoice_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoice_total": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "linked_refunds": {
+ "properties": {
+ "txn_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "txn_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "txn_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "txn_status": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "masked_card_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "string"
+ ]
+ },
+ "payment_method": {
+ "type": [
+ "string"
+ ]
+ },
+ "payment_source_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "reference_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "reference_transaction_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "refunded_txn_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "integer"
+ ]
+ },
+ "reversal_txn_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "settled_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "validated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "event_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "string"
+ ]
+ },
+ "occurred_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "user": {
+ "type": [
+ "string"
+ ]
+ },
+ "webhook_status": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v20-05-2019/json/invoices.json b/_data/taps/schemas/chargebee/v20-05-2019/json/invoices.json
new file mode 100644
index 000000000..4d55ec73d
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v20-05-2019/json/invoices.json
@@ -0,0 +1,755 @@
+{
+ "properties": {
+ "adjustment_credit_notes": {
+ "properties": {
+ "cn_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "cn_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "cn_reason_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "cn_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "cn_total": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "amount_adjusted": {
+ "type": [
+ "integer"
+ ]
+ },
+ "amount_due": {
+ "type": [
+ "integer"
+ ]
+ },
+ "amount_paid": {
+ "type": [
+ "integer"
+ ]
+ },
+ "amount_to_collect": {
+ "type": [
+ "integer"
+ ]
+ },
+ "applied_credits": {
+ "properties": {
+ "applied_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "applied_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "cn_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "cn_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "cn_reason_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "cn_status": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "base_currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "billing_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "string"
+ ]
+ },
+ "line3": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "state_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "validation_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "credits_applied": {
+ "type": [
+ "integer"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "discounts": {
+ "properties": {
+ "amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "entity_type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "due_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "dunning_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "exchange_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "expected_payment_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "first_invoice": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "has_advance_charges": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_gifted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "issued_credit_notes": {
+ "properties": {
+ "cn_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "cn_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "cn_reason_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "cn_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "cn_total": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "line_item_discounts": {
+ "properties": {
+ "coupon_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "discount_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "line_item_taxes": {
+ "properties": {
+ "line_item_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "tax_juris_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_juris_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_juris_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_rate": {
+ "type": [
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "line_items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_from": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_to": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "entity_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_taxed": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "item_level_discount_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "pricing_model": {
+ "type": [
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "tax_exempt_reason": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "linked_orders": {
+ "properties": {
+ "batch_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "fulfillment_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "linked_payments": {
+ "properties": {
+ "applied_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "applied_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "txn_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "txn_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "txn_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "txn_status": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "net_term_days": {
+ "type": [
+ "integer"
+ ]
+ },
+ "new_sales_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "next_retry_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "notes": {
+ "properties": {
+ "entity_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "entity_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "object": {
+ "type": [
+ "string"
+ ]
+ },
+ "paid_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "po_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "price_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "recurring": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "integer"
+ ]
+ },
+ "round_off_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "shipping_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "string"
+ ]
+ },
+ "line3": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "state_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "validation_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "sub_total": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax": {
+ "type": [
+ "integer"
+ ]
+ },
+ "taxes": {
+ "properties": {
+ "amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "term_finalized": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "total": {
+ "type": [
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "vat_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "voided_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "write_off_amount": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v20-05-2019/json/payment_sources.json b/_data/taps/schemas/chargebee/v20-05-2019/json/payment_sources.json
new file mode 100644
index 000000000..c5226da68
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v20-05-2019/json/payment_sources.json
@@ -0,0 +1,237 @@
+{
+ "properties": {
+ "amazon_payment": {
+ "properties": {
+ "agreement_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "bank_account": {
+ "properties": {
+ "account_holder_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "account_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "echeck_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "string"
+ ]
+ },
+ "mandate_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name_on_account": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "card": {
+ "properties": {
+ "billing_addr1": {
+ "type": [
+ "string"
+ ]
+ },
+ "billing_addr2": {
+ "type": [
+ "string"
+ ]
+ },
+ "billing_city": {
+ "type": [
+ "string"
+ ]
+ },
+ "billing_country": {
+ "type": [
+ "string"
+ ]
+ },
+ "billing_state": {
+ "type": [
+ "string"
+ ]
+ },
+ "billing_state_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "billing_zip": {
+ "type": [
+ "string"
+ ]
+ },
+ "brand": {
+ "type": [
+ "string"
+ ]
+ },
+ "expiry_month": {
+ "type": [
+ "integer"
+ ]
+ },
+ "expiry_year": {
+ "type": [
+ "integer"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "funding_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "iin": {
+ "type": [
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "masked_number": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "gateway": {
+ "type": [
+ "string"
+ ]
+ },
+ "gateway_account_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "ip_address": {
+ "type": [
+ "string"
+ ]
+ },
+ "issuing_country": {
+ "type": [
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "string"
+ ]
+ },
+ "paypal": {
+ "properties": {
+ "agremeent_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v20-05-2019/json/plans.json b/_data/taps/schemas/chargebee/v20-05-2019/json/plans.json
new file mode 100644
index 000000000..0bf5e2d9b
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v20-05-2019/json/plans.json
@@ -0,0 +1,99 @@
+{
+ "properties": {
+ "billing_cycles": {
+ "type": [
+ "integer"
+ ]
+ },
+ "charge_model": {
+ "type": [
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "free_quantity": {
+ "type": [
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoice_notes": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "period": {
+ "type": [
+ "integer"
+ ]
+ },
+ "period_unit": {
+ "type": [
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "integer"
+ ]
+ },
+ "redirect_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "setup_cost": {
+ "type": [
+ "integer"
+ ]
+ },
+ "sku": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_profile_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "taxable": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "trial_period": {
+ "type": [
+ "integer"
+ ]
+ },
+ "trial_period_unit": {
+ "type": [
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v20-05-2019/json/subscriptions.json b/_data/taps/schemas/chargebee/v20-05-2019/json/subscriptions.json
new file mode 100644
index 000000000..7de11ece9
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v20-05-2019/json/subscriptions.json
@@ -0,0 +1,476 @@
+{
+ "properties": {
+ "activated_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "addons": {
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "integer"
+ ]
+ },
+ "remaining_billing_cycles": {
+ "type": [
+ "integer"
+ ]
+ },
+ "trial_end": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "unit_price": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "affiliate_token": {
+ "type": [
+ "string"
+ ]
+ },
+ "auto_collection": {
+ "type": [
+ "string"
+ ]
+ },
+ "base_currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "billing_period": {
+ "type": [
+ "integer"
+ ]
+ },
+ "billing_period_unit": {
+ "type": [
+ "string"
+ ]
+ },
+ "cancel_reason": {
+ "type": [
+ "string"
+ ]
+ },
+ "cancelled_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "charged_event_based_addons": {
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_charged_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "object": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "coupon": {
+ "type": [
+ "string"
+ ]
+ },
+ "coupons": {
+ "properties": {
+ "applied_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "apply_till": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "coupon_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "coupon_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "current_term_end": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "current_term_start": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "due_invoices_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "event_based_addons": {
+ "properties": {
+ "charge_once": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "string"
+ ]
+ },
+ "on_event": {
+ "type": [
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "integer"
+ ]
+ },
+ "unit_price": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "exchange_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "has_scheduled_changes": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoice_notes": {
+ "type": [
+ "string"
+ ]
+ },
+ "mrr": {
+ "type": [
+ "integer"
+ ]
+ },
+ "next_billing_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "object": {
+ "type": [
+ "string"
+ ]
+ },
+ "payment_source_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "plan_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "plan_free_quantity": {
+ "type": [
+ "integer"
+ ]
+ },
+ "plan_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "plan_quantity": {
+ "type": [
+ "integer"
+ ]
+ },
+ "plan_unit_price": {
+ "type": [
+ "integer"
+ ]
+ },
+ "po_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "referral_info": {
+ "properties": {
+ "account_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "coupon_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "destination_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "external_campaign_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "external_reference_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "friend_offer_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "notify_referral_system": {
+ "type": [
+ "string"
+ ]
+ },
+ "post_purchase_widget_enabled": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "referral_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "referral_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "referrer_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "referrer_reward_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "reward_status": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "remaining_billing_cycles": {
+ "type": [
+ "integer"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "integer"
+ ]
+ },
+ "shipping_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "string"
+ ]
+ },
+ "line3": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "state_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "validation_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "started_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "trial_end": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "trial_start": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v20-05-2019/json/transactions.json b/_data/taps/schemas/chargebee/v20-05-2019/json/transactions.json
new file mode 100644
index 000000000..21d572379
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v20-05-2019/json/transactions.json
@@ -0,0 +1,270 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "amount_unused": {
+ "type": [
+ "integer"
+ ]
+ },
+ "base_currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "error_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "error_text": {
+ "type": [
+ "string"
+ ]
+ },
+ "exchange_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "fraud_flag": {
+ "type": [
+ "string"
+ ]
+ },
+ "fraud_reason": {
+ "type": [
+ "string"
+ ]
+ },
+ "gateway": {
+ "type": [
+ "string"
+ ]
+ },
+ "gateway_account_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "id_at_gateway": {
+ "type": [
+ "string"
+ ]
+ },
+ "linked_credit_notes": {
+ "properties": {
+ "applied_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "applied_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "cn_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "cn_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "cn_reason_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "cn_reference_invoice_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "cn_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "cn_total": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "linked_invoices": {
+ "properties": {
+ "applied_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "applied_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "invoice_date": {
+ "type": [
+ "date-times"
+ ]
+ },
+ "invoice_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoice_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoice_total": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "linked_refunds": {
+ "properties": {
+ "txn_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "txn_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "txn_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "txn_status": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "masked_card_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "string"
+ ]
+ },
+ "payment_method": {
+ "type": [
+ "string"
+ ]
+ },
+ "payment_source_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "reference_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "reference_transaction_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "refunded_txn_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "integer"
+ ]
+ },
+ "reversal_txn_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "settled_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "validated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargebee/v20-05-2019/json/virtual_bank_accounts.json b/_data/taps/schemas/chargebee/v20-05-2019/json/virtual_bank_accounts.json
new file mode 100644
index 000000000..b9700a3f8
--- /dev/null
+++ b/_data/taps/schemas/chargebee/v20-05-2019/json/virtual_bank_accounts.json
@@ -0,0 +1,79 @@
+{
+ "properties": {
+ "account_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "gateway": {
+ "type": [
+ "string"
+ ]
+ },
+ "gateway_account_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "string"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "resource_version": {
+ "type": [
+ "integer"
+ ]
+ },
+ "routing_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "swift_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargify/v1/chargify-v1-foreign-keys.yml b/_data/taps/schemas/chargify/v1/chargify-v1-foreign-keys.yml
new file mode 100644
index 000000000..13f11563c
--- /dev/null
+++ b/_data/taps/schemas/chargify/v1/chargify-v1-foreign-keys.yml
@@ -0,0 +1,964 @@
+tap: chargify
+version: '1'
+keys:
+ components_component_id:
+ - table: components
+ keys:
+ - id
+ - prices.id
+ - table: invoices
+ keys:
+ - charges.component_id
+ - payments_and_credits.component_id
+ - table: price_points
+ keys:
+ - component_id
+ - prices.component_id
+ - table: statements
+ keys:
+ - transactions.component_id
+ - table: transactions
+ keys:
+ - component_id
+ coupons_coupon_id:
+ - table: coupons
+ keys:
+ - id
+ customers_customer_id:
+ - table: customers
+ keys:
+ - id
+ - parent_id
+ - table: invoices
+ keys:
+ - charges.customer_id
+ - payments_and_credits.customer_id
+ - table: statements
+ keys:
+ - transactions.customer_id
+ - table: subscriptions
+ keys:
+ - credit_card.customer_id
+ - customer.id
+ - table: transactions
+ keys:
+ - customer_id
+ events_event_id:
+ - table: events
+ keys:
+ - id
+ - table: statements
+ keys:
+ - events.event.id
+ invoices_invoice_id:
+ - table: invoices
+ keys:
+ - id
+ price_points_price_point_id:
+ - table: components
+ keys:
+ - default_price_point_id
+ - prices.price_point_id
+ - table: price_points
+ keys:
+ - id
+ product_families_product_family_id:
+ - table: components
+ keys:
+ - product_family_id
+ - table: coupons
+ keys:
+ - product_family_id
+ - table: product_families
+ keys:
+ - id
+ - table: products
+ keys:
+ - product_family.id
+ - table: subscriptions
+ keys:
+ - product.product_family.id
+ products_product_id:
+ - table: events
+ keys:
+ - event_specific_data.product_id
+ - table: invoices
+ keys:
+ - charges.product_id
+ - payments_and_credits.product_id
+ - table: products
+ keys:
+ - id
+ - table: statements
+ keys:
+ - events.event.event_specific_data.product_id
+ - transactions.product_id
+ - table: subscriptions
+ keys:
+ - next_product_id
+ - product.id
+ - table: transactions
+ keys:
+ - product_id
+ statements_statement_id:
+ - table: invoices
+ keys:
+ - statement_id
+ - table: statements
+ keys:
+ - id
+ - transactions.statement_id
+ - table: transactions
+ keys:
+ - statement_id
+ subscriptions_subscription_id:
+ - table: events
+ keys:
+ - subscription_id
+ - table: invoices
+ keys:
+ - charges.subscription_id
+ - payments_and_credits.subscription_id
+ - subscription_id
+ - table: statements
+ keys:
+ - events.event.subscription_id
+ - subscription_id
+ - transactions.subscription_id
+ - table: subscriptions
+ keys:
+ - id
+ - table: transactions
+ keys:
+ - subscription_id
+ transactions_transaction-id:
+ - table: events
+ keys:
+ - event_specific_data.account_transaction_id
+ - table: invoices
+ keys:
+ - charges.payment_id
+ - payments_and_credits.payment_id
+ - table: statements
+ keys:
+ - transactions.id
+ - table: subscriptions
+ keys:
+ - signup_payment_id
+ - stored_credential_transaction_id
+ - table: transactions
+ keys:
+ - id
+ - parent_id
+ - payment_id
+tables:
+- table-name: components
+ join:
+ - table-name: invoices
+ keys:
+ - key: id
+ foreign-key: charges.component_id
+ - key: prices.id
+ foreign-key: charges.component_id
+ - key: id
+ foreign-key: payments_and_credits.component_id
+ - key: prices.id
+ foreign-key: payments_and_credits.component_id
+ - table-name: price_points
+ keys:
+ - key: id
+ foreign-key: component_id
+ - key: prices.id
+ foreign-key: component_id
+ - key: id
+ foreign-key: prices.component_id
+ - key: prices.id
+ foreign-key: prices.component_id
+ - key: default_price_point_id
+ foreign-key: id
+ - key: prices.price_point_id
+ foreign-key: id
+ - table-name: statements
+ keys:
+ - key: id
+ foreign-key: transactions.component_id
+ - key: prices.id
+ foreign-key: transactions.component_id
+ - table-name: transactions
+ keys:
+ - key: id
+ foreign-key: component_id
+ - key: prices.id
+ foreign-key: component_id
+ - table-name: coupons
+ keys:
+ - key: product_family_id
+ foreign-key: product_family_id
+ - table-name: product_families
+ keys:
+ - key: product_family_id
+ foreign-key: id
+ - table-name: products
+ keys:
+ - key: product_family_id
+ foreign-key: product_family.id
+ - table-name: subscriptions
+ keys:
+ - key: product_family_id
+ foreign-key: product.product_family.id
+- table-name: invoices
+ join:
+ - table-name: components
+ keys:
+ - key: charges.component_id
+ foreign-key: id
+ - key: payments_and_credits.component_id
+ foreign-key: id
+ - key: charges.component_id
+ foreign-key: prices.id
+ - key: payments_and_credits.component_id
+ foreign-key: prices.id
+ - table-name: price_points
+ keys:
+ - key: charges.component_id
+ foreign-key: component_id
+ - key: payments_and_credits.component_id
+ foreign-key: component_id
+ - key: charges.component_id
+ foreign-key: prices.component_id
+ - key: payments_and_credits.component_id
+ foreign-key: prices.component_id
+ - table-name: statements
+ keys:
+ - key: charges.component_id
+ foreign-key: transactions.component_id
+ - key: payments_and_credits.component_id
+ foreign-key: transactions.component_id
+ - key: charges.customer_id
+ foreign-key: transactions.customer_id
+ - key: payments_and_credits.customer_id
+ foreign-key: transactions.customer_id
+ - key: charges.product_id
+ foreign-key: events.event.event_specific_data.product_id
+ - key: payments_and_credits.product_id
+ foreign-key: events.event.event_specific_data.product_id
+ - key: charges.product_id
+ foreign-key: transactions.product_id
+ - key: payments_and_credits.product_id
+ foreign-key: transactions.product_id
+ - key: statement_id
+ foreign-key: id
+ - key: statement_id
+ foreign-key: transactions.statement_id
+ - key: charges.subscription_id
+ foreign-key: events.event.subscription_id
+ - key: payments_and_credits.subscription_id
+ foreign-key: events.event.subscription_id
+ - key: subscription_id
+ foreign-key: events.event.subscription_id
+ - key: charges.subscription_id
+ foreign-key: subscription_id
+ - key: payments_and_credits.subscription_id
+ foreign-key: subscription_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: charges.subscription_id
+ foreign-key: transactions.subscription_id
+ - key: payments_and_credits.subscription_id
+ foreign-key: transactions.subscription_id
+ - key: subscription_id
+ foreign-key: transactions.subscription_id
+ - key: charges.payment_id
+ foreign-key: transactions.id
+ - key: payments_and_credits.payment_id
+ foreign-key: transactions.id
+ - table-name: transactions
+ keys:
+ - key: charges.component_id
+ foreign-key: component_id
+ - key: payments_and_credits.component_id
+ foreign-key: component_id
+ - key: charges.customer_id
+ foreign-key: customer_id
+ - key: payments_and_credits.customer_id
+ foreign-key: customer_id
+ - key: charges.product_id
+ foreign-key: product_id
+ - key: payments_and_credits.product_id
+ foreign-key: product_id
+ - key: statement_id
+ foreign-key: statement_id
+ - key: charges.subscription_id
+ foreign-key: subscription_id
+ - key: payments_and_credits.subscription_id
+ foreign-key: subscription_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: charges.payment_id
+ foreign-key: id
+ - key: payments_and_credits.payment_id
+ foreign-key: id
+ - key: charges.payment_id
+ foreign-key: parent_id
+ - key: payments_and_credits.payment_id
+ foreign-key: parent_id
+ - key: charges.payment_id
+ foreign-key: payment_id
+ - key: payments_and_credits.payment_id
+ foreign-key: payment_id
+ - table-name: customers
+ keys:
+ - key: charges.customer_id
+ foreign-key: id
+ - key: payments_and_credits.customer_id
+ foreign-key: id
+ - key: charges.customer_id
+ foreign-key: parent_id
+ - key: payments_and_credits.customer_id
+ foreign-key: parent_id
+ - table-name: subscriptions
+ keys:
+ - key: charges.customer_id
+ foreign-key: credit_card.customer_id
+ - key: payments_and_credits.customer_id
+ foreign-key: credit_card.customer_id
+ - key: charges.customer_id
+ foreign-key: customer.id
+ - key: payments_and_credits.customer_id
+ foreign-key: customer.id
+ - key: charges.product_id
+ foreign-key: next_product_id
+ - key: payments_and_credits.product_id
+ foreign-key: next_product_id
+ - key: charges.product_id
+ foreign-key: product.id
+ - key: payments_and_credits.product_id
+ foreign-key: product.id
+ - key: charges.subscription_id
+ foreign-key: id
+ - key: payments_and_credits.subscription_id
+ foreign-key: id
+ - key: subscription_id
+ foreign-key: id
+ - key: charges.payment_id
+ foreign-key: signup_payment_id
+ - key: payments_and_credits.payment_id
+ foreign-key: signup_payment_id
+ - key: charges.payment_id
+ foreign-key: stored_credential_transaction_id
+ - key: payments_and_credits.payment_id
+ foreign-key: stored_credential_transaction_id
+ - table-name: events
+ keys:
+ - key: charges.product_id
+ foreign-key: event_specific_data.product_id
+ - key: payments_and_credits.product_id
+ foreign-key: event_specific_data.product_id
+ - key: charges.subscription_id
+ foreign-key: subscription_id
+ - key: payments_and_credits.subscription_id
+ foreign-key: subscription_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: charges.payment_id
+ foreign-key: event_specific_data.account_transaction_id
+ - key: payments_and_credits.payment_id
+ foreign-key: event_specific_data.account_transaction_id
+ - table-name: products
+ keys:
+ - key: charges.product_id
+ foreign-key: id
+ - key: payments_and_credits.product_id
+ foreign-key: id
+- table-name: price_points
+ join:
+ - table-name: components
+ keys:
+ - key: component_id
+ foreign-key: id
+ - key: prices.component_id
+ foreign-key: id
+ - key: component_id
+ foreign-key: prices.id
+ - key: prices.component_id
+ foreign-key: prices.id
+ - key: id
+ foreign-key: default_price_point_id
+ - key: id
+ foreign-key: prices.price_point_id
+ - table-name: invoices
+ keys:
+ - key: component_id
+ foreign-key: charges.component_id
+ - key: prices.component_id
+ foreign-key: charges.component_id
+ - key: component_id
+ foreign-key: payments_and_credits.component_id
+ - key: prices.component_id
+ foreign-key: payments_and_credits.component_id
+ - table-name: statements
+ keys:
+ - key: component_id
+ foreign-key: transactions.component_id
+ - key: prices.component_id
+ foreign-key: transactions.component_id
+ - table-name: transactions
+ keys:
+ - key: component_id
+ foreign-key: component_id
+ - key: prices.component_id
+ foreign-key: component_id
+- table-name: statements
+ join:
+ - table-name: components
+ keys:
+ - key: transactions.component_id
+ foreign-key: id
+ - key: transactions.component_id
+ foreign-key: prices.id
+ - table-name: invoices
+ keys:
+ - key: transactions.component_id
+ foreign-key: charges.component_id
+ - key: transactions.component_id
+ foreign-key: payments_and_credits.component_id
+ - key: transactions.customer_id
+ foreign-key: charges.customer_id
+ - key: transactions.customer_id
+ foreign-key: payments_and_credits.customer_id
+ - key: events.event.event_specific_data.product_id
+ foreign-key: charges.product_id
+ - key: transactions.product_id
+ foreign-key: charges.product_id
+ - key: events.event.event_specific_data.product_id
+ foreign-key: payments_and_credits.product_id
+ - key: transactions.product_id
+ foreign-key: payments_and_credits.product_id
+ - key: id
+ foreign-key: statement_id
+ - key: transactions.statement_id
+ foreign-key: statement_id
+ - key: events.event.subscription_id
+ foreign-key: charges.subscription_id
+ - key: subscription_id
+ foreign-key: charges.subscription_id
+ - key: transactions.subscription_id
+ foreign-key: charges.subscription_id
+ - key: events.event.subscription_id
+ foreign-key: payments_and_credits.subscription_id
+ - key: subscription_id
+ foreign-key: payments_and_credits.subscription_id
+ - key: transactions.subscription_id
+ foreign-key: payments_and_credits.subscription_id
+ - key: events.event.subscription_id
+ foreign-key: subscription_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: transactions.subscription_id
+ foreign-key: subscription_id
+ - key: transactions.id
+ foreign-key: charges.payment_id
+ - key: transactions.id
+ foreign-key: payments_and_credits.payment_id
+ - table-name: price_points
+ keys:
+ - key: transactions.component_id
+ foreign-key: component_id
+ - key: transactions.component_id
+ foreign-key: prices.component_id
+ - table-name: transactions
+ keys:
+ - key: transactions.component_id
+ foreign-key: component_id
+ - key: transactions.customer_id
+ foreign-key: customer_id
+ - key: events.event.event_specific_data.product_id
+ foreign-key: product_id
+ - key: transactions.product_id
+ foreign-key: product_id
+ - key: id
+ foreign-key: statement_id
+ - key: transactions.statement_id
+ foreign-key: statement_id
+ - key: events.event.subscription_id
+ foreign-key: subscription_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: transactions.subscription_id
+ foreign-key: subscription_id
+ - key: transactions.id
+ foreign-key: id
+ - key: transactions.id
+ foreign-key: parent_id
+ - key: transactions.id
+ foreign-key: payment_id
+ - table-name: customers
+ keys:
+ - key: transactions.customer_id
+ foreign-key: id
+ - key: transactions.customer_id
+ foreign-key: parent_id
+ - table-name: subscriptions
+ keys:
+ - key: transactions.customer_id
+ foreign-key: credit_card.customer_id
+ - key: transactions.customer_id
+ foreign-key: customer.id
+ - key: events.event.event_specific_data.product_id
+ foreign-key: next_product_id
+ - key: transactions.product_id
+ foreign-key: next_product_id
+ - key: events.event.event_specific_data.product_id
+ foreign-key: product.id
+ - key: transactions.product_id
+ foreign-key: product.id
+ - key: events.event.subscription_id
+ foreign-key: id
+ - key: subscription_id
+ foreign-key: id
+ - key: transactions.subscription_id
+ foreign-key: id
+ - key: transactions.id
+ foreign-key: signup_payment_id
+ - key: transactions.id
+ foreign-key: stored_credential_transaction_id
+ - table-name: events
+ keys:
+ - key: events.event.id
+ foreign-key: id
+ - key: events.event.event_specific_data.product_id
+ foreign-key: event_specific_data.product_id
+ - key: transactions.product_id
+ foreign-key: event_specific_data.product_id
+ - key: events.event.subscription_id
+ foreign-key: subscription_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: transactions.subscription_id
+ foreign-key: subscription_id
+ - key: transactions.id
+ foreign-key: event_specific_data.account_transaction_id
+ - table-name: products
+ keys:
+ - key: events.event.event_specific_data.product_id
+ foreign-key: id
+ - key: transactions.product_id
+ foreign-key: id
+- table-name: transactions
+ join:
+ - table-name: components
+ keys:
+ - key: component_id
+ foreign-key: id
+ - key: component_id
+ foreign-key: prices.id
+ - table-name: invoices
+ keys:
+ - key: component_id
+ foreign-key: charges.component_id
+ - key: component_id
+ foreign-key: payments_and_credits.component_id
+ - key: customer_id
+ foreign-key: charges.customer_id
+ - key: customer_id
+ foreign-key: payments_and_credits.customer_id
+ - key: product_id
+ foreign-key: charges.product_id
+ - key: product_id
+ foreign-key: payments_and_credits.product_id
+ - key: statement_id
+ foreign-key: statement_id
+ - key: subscription_id
+ foreign-key: charges.subscription_id
+ - key: subscription_id
+ foreign-key: payments_and_credits.subscription_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: id
+ foreign-key: charges.payment_id
+ - key: parent_id
+ foreign-key: charges.payment_id
+ - key: payment_id
+ foreign-key: charges.payment_id
+ - key: id
+ foreign-key: payments_and_credits.payment_id
+ - key: parent_id
+ foreign-key: payments_and_credits.payment_id
+ - key: payment_id
+ foreign-key: payments_and_credits.payment_id
+ - table-name: price_points
+ keys:
+ - key: component_id
+ foreign-key: component_id
+ - key: component_id
+ foreign-key: prices.component_id
+ - table-name: statements
+ keys:
+ - key: component_id
+ foreign-key: transactions.component_id
+ - key: customer_id
+ foreign-key: transactions.customer_id
+ - key: product_id
+ foreign-key: events.event.event_specific_data.product_id
+ - key: product_id
+ foreign-key: transactions.product_id
+ - key: statement_id
+ foreign-key: id
+ - key: statement_id
+ foreign-key: transactions.statement_id
+ - key: subscription_id
+ foreign-key: events.event.subscription_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: subscription_id
+ foreign-key: transactions.subscription_id
+ - key: id
+ foreign-key: transactions.id
+ - key: parent_id
+ foreign-key: transactions.id
+ - key: payment_id
+ foreign-key: transactions.id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: id
+ - key: customer_id
+ foreign-key: parent_id
+ - table-name: subscriptions
+ keys:
+ - key: customer_id
+ foreign-key: credit_card.customer_id
+ - key: customer_id
+ foreign-key: customer.id
+ - key: product_id
+ foreign-key: next_product_id
+ - key: product_id
+ foreign-key: product.id
+ - key: subscription_id
+ foreign-key: id
+ - key: id
+ foreign-key: signup_payment_id
+ - key: parent_id
+ foreign-key: signup_payment_id
+ - key: payment_id
+ foreign-key: signup_payment_id
+ - key: id
+ foreign-key: stored_credential_transaction_id
+ - key: parent_id
+ foreign-key: stored_credential_transaction_id
+ - key: payment_id
+ foreign-key: stored_credential_transaction_id
+ - table-name: events
+ keys:
+ - key: product_id
+ foreign-key: event_specific_data.product_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: id
+ foreign-key: event_specific_data.account_transaction_id
+ - key: parent_id
+ foreign-key: event_specific_data.account_transaction_id
+ - key: payment_id
+ foreign-key: event_specific_data.account_transaction_id
+ - table-name: products
+ keys:
+ - key: product_id
+ foreign-key: id
+- table-name: coupons
+ join:
+ - table-name: components
+ keys:
+ - key: product_family_id
+ foreign-key: product_family_id
+ - table-name: product_families
+ keys:
+ - key: product_family_id
+ foreign-key: id
+ - table-name: products
+ keys:
+ - key: product_family_id
+ foreign-key: product_family.id
+ - table-name: subscriptions
+ keys:
+ - key: product_family_id
+ foreign-key: product.product_family.id
+- table-name: customers
+ join:
+ - table-name: invoices
+ keys:
+ - key: id
+ foreign-key: charges.customer_id
+ - key: parent_id
+ foreign-key: charges.customer_id
+ - key: id
+ foreign-key: payments_and_credits.customer_id
+ - key: parent_id
+ foreign-key: payments_and_credits.customer_id
+ - table-name: statements
+ keys:
+ - key: id
+ foreign-key: transactions.customer_id
+ - key: parent_id
+ foreign-key: transactions.customer_id
+ - table-name: subscriptions
+ keys:
+ - key: id
+ foreign-key: credit_card.customer_id
+ - key: parent_id
+ foreign-key: credit_card.customer_id
+ - key: id
+ foreign-key: customer.id
+ - key: parent_id
+ foreign-key: customer.id
+ - table-name: transactions
+ keys:
+ - key: id
+ foreign-key: customer_id
+ - key: parent_id
+ foreign-key: customer_id
+- table-name: subscriptions
+ join:
+ - table-name: customers
+ keys:
+ - key: credit_card.customer_id
+ foreign-key: id
+ - key: customer.id
+ foreign-key: id
+ - key: credit_card.customer_id
+ foreign-key: parent_id
+ - key: customer.id
+ foreign-key: parent_id
+ - table-name: invoices
+ keys:
+ - key: credit_card.customer_id
+ foreign-key: charges.customer_id
+ - key: customer.id
+ foreign-key: charges.customer_id
+ - key: credit_card.customer_id
+ foreign-key: payments_and_credits.customer_id
+ - key: customer.id
+ foreign-key: payments_and_credits.customer_id
+ - key: next_product_id
+ foreign-key: charges.product_id
+ - key: product.id
+ foreign-key: charges.product_id
+ - key: next_product_id
+ foreign-key: payments_and_credits.product_id
+ - key: product.id
+ foreign-key: payments_and_credits.product_id
+ - key: id
+ foreign-key: charges.subscription_id
+ - key: id
+ foreign-key: payments_and_credits.subscription_id
+ - key: id
+ foreign-key: subscription_id
+ - key: signup_payment_id
+ foreign-key: charges.payment_id
+ - key: stored_credential_transaction_id
+ foreign-key: charges.payment_id
+ - key: signup_payment_id
+ foreign-key: payments_and_credits.payment_id
+ - key: stored_credential_transaction_id
+ foreign-key: payments_and_credits.payment_id
+ - table-name: statements
+ keys:
+ - key: credit_card.customer_id
+ foreign-key: transactions.customer_id
+ - key: customer.id
+ foreign-key: transactions.customer_id
+ - key: next_product_id
+ foreign-key: events.event.event_specific_data.product_id
+ - key: product.id
+ foreign-key: events.event.event_specific_data.product_id
+ - key: next_product_id
+ foreign-key: transactions.product_id
+ - key: product.id
+ foreign-key: transactions.product_id
+ - key: id
+ foreign-key: events.event.subscription_id
+ - key: id
+ foreign-key: subscription_id
+ - key: id
+ foreign-key: transactions.subscription_id
+ - key: signup_payment_id
+ foreign-key: transactions.id
+ - key: stored_credential_transaction_id
+ foreign-key: transactions.id
+ - table-name: transactions
+ keys:
+ - key: credit_card.customer_id
+ foreign-key: customer_id
+ - key: customer.id
+ foreign-key: customer_id
+ - key: next_product_id
+ foreign-key: product_id
+ - key: product.id
+ foreign-key: product_id
+ - key: id
+ foreign-key: subscription_id
+ - key: signup_payment_id
+ foreign-key: id
+ - key: stored_credential_transaction_id
+ foreign-key: id
+ - key: signup_payment_id
+ foreign-key: parent_id
+ - key: stored_credential_transaction_id
+ foreign-key: parent_id
+ - key: signup_payment_id
+ foreign-key: payment_id
+ - key: stored_credential_transaction_id
+ foreign-key: payment_id
+ - table-name: components
+ keys:
+ - key: product.product_family.id
+ foreign-key: product_family_id
+ - table-name: coupons
+ keys:
+ - key: product.product_family.id
+ foreign-key: product_family_id
+ - table-name: product_families
+ keys:
+ - key: product.product_family.id
+ foreign-key: id
+ - table-name: products
+ keys:
+ - key: product.product_family.id
+ foreign-key: product_family.id
+ - key: next_product_id
+ foreign-key: id
+ - key: product.id
+ foreign-key: id
+ - table-name: events
+ keys:
+ - key: next_product_id
+ foreign-key: event_specific_data.product_id
+ - key: product.id
+ foreign-key: event_specific_data.product_id
+ - key: id
+ foreign-key: subscription_id
+ - key: signup_payment_id
+ foreign-key: event_specific_data.account_transaction_id
+ - key: stored_credential_transaction_id
+ foreign-key: event_specific_data.account_transaction_id
+- table-name: events
+ join:
+ - table-name: statements
+ keys:
+ - key: id
+ foreign-key: events.event.id
+ - key: event_specific_data.product_id
+ foreign-key: events.event.event_specific_data.product_id
+ - key: event_specific_data.product_id
+ foreign-key: transactions.product_id
+ - key: subscription_id
+ foreign-key: events.event.subscription_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: subscription_id
+ foreign-key: transactions.subscription_id
+ - key: event_specific_data.account_transaction_id
+ foreign-key: transactions.id
+ - table-name: invoices
+ keys:
+ - key: event_specific_data.product_id
+ foreign-key: charges.product_id
+ - key: event_specific_data.product_id
+ foreign-key: payments_and_credits.product_id
+ - key: subscription_id
+ foreign-key: charges.subscription_id
+ - key: subscription_id
+ foreign-key: payments_and_credits.subscription_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: event_specific_data.account_transaction_id
+ foreign-key: charges.payment_id
+ - key: event_specific_data.account_transaction_id
+ foreign-key: payments_and_credits.payment_id
+ - table-name: products
+ keys:
+ - key: event_specific_data.product_id
+ foreign-key: id
+ - table-name: subscriptions
+ keys:
+ - key: event_specific_data.product_id
+ foreign-key: next_product_id
+ - key: event_specific_data.product_id
+ foreign-key: product.id
+ - key: subscription_id
+ foreign-key: id
+ - key: event_specific_data.account_transaction_id
+ foreign-key: signup_payment_id
+ - key: event_specific_data.account_transaction_id
+ foreign-key: stored_credential_transaction_id
+ - table-name: transactions
+ keys:
+ - key: event_specific_data.product_id
+ foreign-key: product_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: event_specific_data.account_transaction_id
+ foreign-key: id
+ - key: event_specific_data.account_transaction_id
+ foreign-key: parent_id
+ - key: event_specific_data.account_transaction_id
+ foreign-key: payment_id
+- table-name: product_families
+ join:
+ - table-name: components
+ keys:
+ - key: id
+ foreign-key: product_family_id
+ - table-name: coupons
+ keys:
+ - key: id
+ foreign-key: product_family_id
+ - table-name: products
+ keys:
+ - key: id
+ foreign-key: product_family.id
+ - table-name: subscriptions
+ keys:
+ - key: id
+ foreign-key: product.product_family.id
+- table-name: products
+ join:
+ - table-name: components
+ keys:
+ - key: product_family.id
+ foreign-key: product_family_id
+ - table-name: coupons
+ keys:
+ - key: product_family.id
+ foreign-key: product_family_id
+ - table-name: product_families
+ keys:
+ - key: product_family.id
+ foreign-key: id
+ - table-name: subscriptions
+ keys:
+ - key: product_family.id
+ foreign-key: product.product_family.id
+ - key: id
+ foreign-key: next_product_id
+ - key: id
+ foreign-key: product.id
+ - table-name: events
+ keys:
+ - key: id
+ foreign-key: event_specific_data.product_id
+ - table-name: invoices
+ keys:
+ - key: id
+ foreign-key: charges.product_id
+ - key: id
+ foreign-key: payments_and_credits.product_id
+ - table-name: statements
+ keys:
+ - key: id
+ foreign-key: events.event.event_specific_data.product_id
+ - key: id
+ foreign-key: transactions.product_id
+ - table-name: transactions
+ keys:
+ - key: id
+ foreign-key: product_id
diff --git a/_data/taps/schemas/chargify/v1/chargify-v1-tables.yml b/_data/taps/schemas/chargify/v1/chargify-v1-tables.yml
new file mode 100644
index 000000000..55d4c08b2
--- /dev/null
+++ b/_data/taps/schemas/chargify/v1/chargify-v1-tables.yml
@@ -0,0 +1,130 @@
+tap: chargify
+version: '1'
+tables:
+- name: components
+ description: 'The `{{ table.name }}` table contains info about components associated
+ with a product family in {{ integration.display_name }}.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-chargify/blob/master/tap_chargify/schemas/components.json
+ api-method: https://reference.chargify.com/v1/components/list-components-for-a-product-family
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: coupons
+ description: 'The `{{ table.name }}` table contains info about coupons associated
+ with a product family in {{ integration.display_name }}.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-chargify/blob/master/tap_chargify/schemas/coupons.json
+ api-method: https://reference.chargify.com/v1/coupons-editing/list-product-family-coupons
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: customers
+ description: 'The `{{ table.name }}` table contains info about customers associated
+ with your {{ integration.display_name }} site.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-chargify/blob/master/tap_chargify/schemas/customers.json
+ api-method: https://reference.chargify.com/v1/customers/list-customers-for-a-site
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: events
+ description: 'The `{{ table.name }}` table contains info about activity on your
+ {{ integration.display_name }} site.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-chargify/blob/master/tap_chargify/schemas/events.json
+ api-method: https://reference.chargify.com/v1/events/list-events-for-a-site
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: invoices
+ description: 'The `{{ table.name }}` table contains info about invoices in your
+ {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-chargify/blob/master/tap_chargify/schemas/invoices.json
+ api-method: https://reference.chargify.com/v1/invoices-legacy/list-all-invoices-by-subscription
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: price_points
+ description: 'The `{{ table.name }}` table contains info about product price points
+ in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-chargify/blob/master/tap_chargify/schemas/price_points.json
+ api-method: https://reference.chargify.com/v1/products-price-points/read-product-price-points
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: products
+ description: 'The `{{ table.name }}` table contains info about the prodcts in your
+ {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-chargify/blob/master/tap_chargify/schemas/products.json
+ api-method: https://reference.chargify.com/v1/products/list-products
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: product_families
+ description: 'The `{{ table.name }}` table contains info about product families
+ in your {{ integration.display_name }} instance. Product families house your products,
+ components, and coupons and are used to categorize products, product levels, or
+ service offerings to your subscribers.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-chargify/blob/master/tap_chargify/schemas/product_families.json
+ api-method: https://reference.chargify.com/v1/product-families/list-product-family-via-site
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: statements
+ description: 'The `{{ table.name }}` table contains info about the statements in
+ your {{ integration.display_name }} instance. Statements show all account activity
+ for a specific usage period and are similar to invoices, as they can be marked
+ as currently paid or unpaid.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-chargify/blob/master/tap_chargify/schemas/statements.json
+ api-method: https://reference.chargify.com/v1/statements/list-statements-for-a-site
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: subscriptions
+ description: 'The `{{ table.name }}` table contains info about the subscriptions
+ in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-chargify/blob/master/tap_chargify/schemas/subscriptions.json
+ api-method: https://reference.chargify.com/v1/subscriptions/list-subscriptions
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: transactions
+ description: 'The `{{ table.name }}` table contains info about the transactions
+ for your {{ integration.display_name }} site.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-chargify/blob/master/tap_chargify/schemas/transactions.json
+ api-method: https://reference.chargify.com/v1/transactions/list-transactions-for-the-site
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-key: id
+ replication-key: created_at
diff --git a/_data/taps/schemas/chargify/v1/json/components.json b/_data/taps/schemas/chargify/v1/json/components.json
new file mode 100644
index 000000000..a1e891fac
--- /dev/null
+++ b/_data/taps/schemas/chargify/v1/json/components.json
@@ -0,0 +1,193 @@
+{
+ "properties": {
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "default_price_point_id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "default_price_point_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "downgrade_credit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "handle": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "kind": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price_per_unit_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price_point_count": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "price_points_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prices": {
+ "items": {
+ "properties": {
+ "component_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ending_quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "formatted_unit_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price_point_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "starting_quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "pricing_scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_family_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "product_family_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recurring": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tax_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "unit_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "upgrade_charge": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargify/v1/json/coupons.json b/_data/taps/schemas/chargify/v1/json/coupons.json
new file mode 100644
index 000000000..6d69444b0
--- /dev/null
+++ b/_data/taps/schemas/chargify/v1/json/coupons.json
@@ -0,0 +1,169 @@
+{
+ "properties": {
+ "allow_negative_balance": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "amount_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "archived_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "compounding_strategy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversion_limit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "coupon_restrictions": {
+ "items": {
+ "properties": {
+ "handle": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "item_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration_interval": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "duration_interval_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration_period_count": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percentage": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "product_family_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "recurring": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "stackable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargify/v1/json/customers.json b/_data/taps/schemas/chargify/v1/json/customers.json
new file mode 100644
index 000000000..30b617f2f
--- /dev/null
+++ b/_data/taps/schemas/chargify/v1/json/customers.json
@@ -0,0 +1,140 @@
+{
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cc_emails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organization": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "portal_customer_created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "portal_invite_last_accepted_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "portal_invite_last_sent_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_exempt": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "vat_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargify/v1/json/events.json b/_data/taps/schemas/chargify/v1/json/events.json
new file mode 100644
index 000000000..ea67e887d
--- /dev/null
+++ b/_data/taps/schemas/chargify/v1/json/events.json
@@ -0,0 +1,190 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "event_specific_data": {
+ "properties": {
+ "account_transaction_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "current_step": {
+ "properties": {
+ "action": {
+ "type": "string"
+ },
+ "day_threshold": {
+ "type": "integer"
+ },
+ "email_body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "send_bcc_email": {
+ "type": "boolean"
+ },
+ "send_email": {
+ "type": "boolean"
+ },
+ "send_sms": {
+ "type": "boolean"
+ },
+ "sms_body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "dunner": {
+ "properties": {
+ "attempts": {
+ "type": "integer"
+ },
+ "created_at": {
+ "type": "string"
+ },
+ "last_attempted_at": {
+ "type": "string"
+ },
+ "revenue_at_risk_in_cents": {
+ "type": "integer"
+ },
+ "state": {
+ "type": "string"
+ },
+ "subscription_id": {
+ "type": "integer"
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "new_product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "new_subscription_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "next_step": {
+ "properties": {
+ "action": {
+ "type": "string"
+ },
+ "day_threshold": {
+ "type": "integer"
+ },
+ "email_body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "send_bcc_email": {
+ "type": "boolean"
+ },
+ "send_email": {
+ "type": "boolean"
+ },
+ "send_sms": {
+ "type": "boolean"
+ },
+ "sms_body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "previous_product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "previous_subscription_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargify/v1/json/invoices.json b/_data/taps/schemas/chargify/v1/json/invoices.json
new file mode 100644
index 000000000..ce550a5cb
--- /dev/null
+++ b/_data/taps/schemas/chargify/v1/json/invoices.json
@@ -0,0 +1,336 @@
+{
+ "properties": {
+ "amount_due_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "charges": {
+ "items": {
+ "properties": {
+ "amount_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "component_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ending_balance_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "gateway_order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway_transaction_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "kind": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "memo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "starting_balance_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "success": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tax_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "transaction_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "paid_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "payments_and_credits": {
+ "items": {
+ "properties": {
+ "amount_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "card_expiration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "component_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ending_balance_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "gateway_order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway_transaction_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "kind": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "memo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "starting_balance_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "success": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tax_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "transaction_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "site_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_amount_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargify/v1/json/price_points.json b/_data/taps/schemas/chargify/v1/json/price_points.json
new file mode 100644
index 000000000..dc7a370c8
--- /dev/null
+++ b/_data/taps/schemas/chargify/v1/json/price_points.json
@@ -0,0 +1,106 @@
+{
+ "properties": {
+ "archived_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "component_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "handle": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prices": {
+ "items": {
+ "properties": {
+ "component_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ending_quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "starting_quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "pricing_scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargify/v1/json/product_families.json b/_data/taps/schemas/chargify/v1/json/product_families.json
new file mode 100644
index 000000000..e642c1db7
--- /dev/null
+++ b/_data/taps/schemas/chargify/v1/json/product_families.json
@@ -0,0 +1,38 @@
+{
+ "properties": {
+ "accounting_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "handle": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargify/v1/json/products.json b/_data/taps/schemas/chargify/v1/json/products.json
new file mode 100644
index 000000000..b3c448e77
--- /dev/null
+++ b/_data/taps/schemas/chargify/v1/json/products.json
@@ -0,0 +1,234 @@
+{
+ "properties": {
+ "accounting_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "archived_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expiration_interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expiration_interval_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "handle": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "initial_charge_after_trial": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "initial_charge_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interval_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "product_family": {
+ "properties": {
+ "accounting_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "handle": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "public_signup_pages": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "return_params": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "return_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "request_credit_card": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "require_credit_card": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "return_params": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "trial_interval": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "trial_interval_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trial_price_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "update_return_params": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "update_return_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "version_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargify/v1/json/statements.json b/_data/taps/schemas/chargify/v1/json/statements.json
new file mode 100644
index 000000000..ca429eba1
--- /dev/null
+++ b/_data/taps/schemas/chargify/v1/json/statements.json
@@ -0,0 +1,584 @@
+{
+ "properties": {
+ "basic_html_view": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "closed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer_billing_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_billing_address_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_billing_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_billing_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_billing_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_billing_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_organization": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_shipping_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_shipping_address_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_shipping_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_shipping_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_shipping_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_shipping_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ending_balance_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "events": {
+ "items": {
+ "properties": {
+ "event": {
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "event_specific_data": {
+ "properties": {
+ "account_transaction_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "current_step": {
+ "properties": {
+ "action": {
+ "type": "string"
+ },
+ "day_threshold": {
+ "type": "integer"
+ },
+ "email_body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "send_bcc_email": {
+ "type": "boolean"
+ },
+ "send_email": {
+ "type": "boolean"
+ },
+ "send_sms": {
+ "type": "boolean"
+ },
+ "sms_body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "dunner": {
+ "properties": {
+ "attempts": {
+ "type": "integer"
+ },
+ "created_at": {
+ "type": "string"
+ },
+ "last_attempted_at": {
+ "type": "string"
+ },
+ "revenue_at_risk_in_cents": {
+ "type": "integer"
+ },
+ "state": {
+ "type": "string"
+ },
+ "subscription_id": {
+ "type": "integer"
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "new_product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "new_subscription_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "next_step": {
+ "properties": {
+ "action": {
+ "type": "string"
+ },
+ "day_threshold": {
+ "type": "integer"
+ },
+ "email_body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "send_bcc_email": {
+ "type": "boolean"
+ },
+ "send_email": {
+ "type": "boolean"
+ },
+ "send_sms": {
+ "type": "boolean"
+ },
+ "sms_body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "previous_product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "previous_subscription_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "future_payments": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "html_view": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "memo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "opened_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "settled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "starting_balance_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "text_view": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "transactions": {
+ "items": {
+ "properties": {
+ "amount_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "component_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_amount_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ending_balance_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "gateway_order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway_transaction_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway_used": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "item_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "kind": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "memo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_amount_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "payment_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "starting_balance_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "statement_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "success": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tax_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "taxable_amount_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "taxations": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "transaction_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargify/v1/json/subscriptions.json b/_data/taps/schemas/chargify/v1/json/subscriptions.json
new file mode 100644
index 000000000..63700d84e
--- /dev/null
+++ b/_data/taps/schemas/chargify/v1/json/subscriptions.json
@@ -0,0 +1,684 @@
+{
+ "properties": {
+ "activated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "balance_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cancel_at_end_of_period": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "canceled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cancellation_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cancellation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "coupon_codes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "credit_card": {
+ "properties": {
+ "billing_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_address_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "current_vault": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "customer_vault_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expiration_month": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expiration_year": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "masked_card_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vault_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "current_period_ends_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "current_period_started_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer": {
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cc_emails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organization": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "portal_customer_created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "portal_invite_last_accepted_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "portal_invite_last_sent_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_exempt": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "vat_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "delayed_cancel_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "expires_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "net_terms": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "next_assessment_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "next_product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "payment_collection_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "previous_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product": {
+ "properties": {
+ "accounting_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "archived_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expiration_interval": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "expiration_interval_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "handle": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "initial_charge_after_trial": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "initial_charge_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interval_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "product_family": {
+ "properties": {
+ "accounting_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "handle": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "public_signup_pages": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "request_credit_card": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "require_credit_card": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "return_params": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "trial_interval": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "trial_interval_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trial_price_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "update_return_params": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "update_return_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "version_number": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "product_price_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "product_version_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reason_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receives_invoice_emails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "referral_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "signup_payment_id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "signup_revenue": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "snap_day": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stored_credential_transaction_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_revenue_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "trial_ended_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "trial_started_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/chargify/v1/json/transactions.json b/_data/taps/schemas/chargify/v1/json/transactions.json
new file mode 100644
index 000000000..ee96a5830
--- /dev/null
+++ b/_data/taps/schemas/chargify/v1/json/transactions.json
@@ -0,0 +1,212 @@
+{
+ "properties": {
+ "amount_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "card_expiration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "component_handle": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "component_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "component_price_point_handle": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "component_price_point_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ending_balance_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "gateway_order_id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "gateway_transaction_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway_used": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "item_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "kind": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "memo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "payment_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "period_range_end": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "period_range_start": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price_point_handle": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price_point_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "refunded_amount_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "role": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starting_balance_in_cents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "statement_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "success": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tax_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "transaction_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/circle-ci/v1/circle-ci-v1-foreign-keys.yml b/_data/taps/schemas/circle-ci/v1/circle-ci-v1-foreign-keys.yml
new file mode 100644
index 000000000..0f85cf650
--- /dev/null
+++ b/_data/taps/schemas/circle-ci/v1/circle-ci-v1-foreign-keys.yml
@@ -0,0 +1,55 @@
+tap: circle-ci
+version: '1'
+keys:
+ pipelines_id:
+ - table: pipelines
+ keys:
+ - id
+ - table: jobs
+ keys:
+ - _pipeline_id
+ - table: workflows
+ keys:
+ - pipeline_id
+ workflows_id:
+ - table: workflows
+ keys:
+ - id
+ - table: jobs
+ keys:
+ - _workflow_id
+tables:
+- table-name: pipelines
+ join:
+ - table-name: jobs
+ keys:
+ - key: id
+ foreign-key: _pipeline_id
+ - table-name: workflows
+ keys:
+ - key: id
+ foreign-key: pipeline_id
+- table-name: jobs
+ join:
+ - table-name: pipelines
+ keys:
+ - key: _pipeline_id
+ foreign-key: id
+ - table-name: workflows
+ keys:
+ - key: _pipeline_id
+ foreign-key: pipeline_id
+ - key: _workflow_id
+ foreign-key: id
+- table-name: workflows
+ join:
+ - table-name: pipelines
+ keys:
+ - key: pipeline_id
+ foreign-key: id
+ - table-name: jobs
+ keys:
+ - key: pipeline_id
+ foreign-key: _pipeline_id
+ - key: id
+ foreign-key: _workflow_id
diff --git a/_data/taps/schemas/circle-ci/v1/circle-ci-v1-tables.yml b/_data/taps/schemas/circle-ci/v1/circle-ci-v1-tables.yml
new file mode 100644
index 000000000..2e1aaff62
--- /dev/null
+++ b/_data/taps/schemas/circle-ci/v1/circle-ci-v1-tables.yml
@@ -0,0 +1,40 @@
+tap: circle-ci
+version: '1'
+tables:
+- name: jobs
+ description: 'The **{{ table.name }}** table contains information about jobs from
+ your {{ integration.display_name }} workflows.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-circle-ci/tree/master/tap_circle_ci/schemas/jobs.json
+ api-method: https://circleci.com/docs/api/v2/index.html#operation/listWorkflowJobs
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - id
+ - _workflow_id
+- name: pipelines
+ description: 'The **{{ table.name }}** table contains information about piplines
+ from your {{ integration.display_name }} projects.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-circle-ci/tree/master/tap_circle_ci/schemas/pipelines.json
+ api-method: https://circleci.com/docs/api/v2/index.html#operation/listPipelinesForProject
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: workflows
+ description: 'The **{{ table.name }}** table contains a list of workflows from your
+ {{ integration.display_name }} projects, sorted by pipeline ID.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-circle-ci/tree/master/tap_circle_ci/schemas/workflows.json
+ api-method: https://circleci.com/docs/api/v2/index.html#operation/listWorkflowsByPipelineId
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created_at
diff --git a/_data/taps/schemas/circle-ci/v1/json/jobs.json b/_data/taps/schemas/circle-ci/v1/json/jobs.json
new file mode 100644
index 000000000..1588874fe
--- /dev/null
+++ b/_data/taps/schemas/circle-ci/v1/json/jobs.json
@@ -0,0 +1,99 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "_pipeline_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "_workflow_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "approval_request_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "approved_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "canceled_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dependencies": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "job_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "project_slug": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "started_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stopped_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/circle-ci/v1/json/pipelines.json b/_data/taps/schemas/circle-ci/v1/json/pipelines.json
new file mode 100644
index 000000000..9ef9a4447
--- /dev/null
+++ b/_data/taps/schemas/circle-ci/v1/json/pipelines.json
@@ -0,0 +1,203 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "errors": {
+ "items": {
+ "properties": {
+ "message": {
+ "description": "A human-readable error message.",
+ "type": "string"
+ },
+ "type": {
+ "description": "The type of error",
+ "type": "string"
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "project_slug": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trigger": {
+ "additionalProperties": false,
+ "properties": {
+ "actor": {
+ "additionalProperties": false,
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "received_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trigger_parameters": {
+ "additionalProperties": false,
+ "properties": {
+ "property_name": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "type": "string"
+ },
+ {
+ "type": "integer"
+ },
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "vcs": {
+ "additionalProperties": false,
+ "properties": {
+ "branch": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "commit": {
+ "additionalProperties": false,
+ "properties": {
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "origin_repository_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "provider_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "revision": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "target_repository_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/circle-ci/v1/json/workflows.json b/_data/taps/schemas/circle-ci/v1/json/workflows.json
new file mode 100644
index 000000000..470d61eda
--- /dev/null
+++ b/_data/taps/schemas/circle-ci/v1/json/workflows.json
@@ -0,0 +1,81 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "canceled_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "errored_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pipeline_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pipeline_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "project_slug": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "started_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stopped_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "tag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/closeio/v1/closeio-v1-foreign-keys.yml b/_data/taps/schemas/closeio/v1/closeio-v1-foreign-keys.yml
new file mode 100644
index 000000000..3e1e1f69f
--- /dev/null
+++ b/_data/taps/schemas/closeio/v1/closeio-v1-foreign-keys.yml
@@ -0,0 +1,1087 @@
+tap: closeio
+version: '1'
+keys:
+ activities_activity_id:
+ - table: activities
+ keys:
+ - id
+ _contact_id:
+ - table: activities
+ keys:
+ - contact_id
+ - table: leads
+ keys:
+ - contacts.id
+ - opportunities.contact_id
+ - tasks.contact_id
+ - table: tasks
+ keys:
+ - contact_id
+ event_log_event_id:
+ - table: event_log
+ keys:
+ - id
+ leads_lead_id:
+ - table: activities
+ keys:
+ - lead_id
+ - table: event_log
+ keys:
+ - lead_id
+ - table: leads
+ keys:
+ - id
+ - contacts.lead_id
+ - opportunities.lead_id
+ - tasks.lead_id
+ - table: tasks
+ keys:
+ - lead_id
+ _organization_id:
+ - table: activities
+ keys:
+ - organization_id
+ - table: custom_fields
+ keys:
+ - organization_id
+ - table: event_log
+ keys:
+ - organization_id
+ - table: leads
+ keys:
+ - contacts.organization_id
+ - opportunities.organization_id
+ - organization_id
+ - tasks.organization_id
+ - table: tasks
+ keys:
+ - organization_id
+ - table: users
+ keys:
+ - organizations
+ tasks_task_id:
+ - table: activities
+ keys:
+ - task_id
+ - table: leads
+ keys:
+ - tasks.id
+ - table: tasks
+ keys:
+ - id
+ users_user_id:
+ - table: activities
+ keys:
+ - created_by
+ - updated_by
+ - user_id
+ - task_assigned_to
+ - users
+ - table: custom_fields
+ keys:
+ - created_by
+ - updated_by
+ - table: event_log
+ keys:
+ - user_id
+ - table: leads
+ keys:
+ - contacts.created_by
+ - contacts.updated_by
+ - created_by
+ - opportunities.created_by
+ - opportunities.updated_by
+ - opportunities.user_id
+ - tasks.assigned_to
+ - tasks.created_by
+ - tasks.updated_by
+ - updated_by
+ - table: tasks
+ keys:
+ - assigned_to
+ - created_by
+ - updated_by
+ - table: users
+ keys:
+ - id
+tables:
+- table-name: activities
+ join:
+ - table-name: leads
+ keys:
+ - key: contact_id
+ foreign-key: contacts.id
+ - key: contact_id
+ foreign-key: opportunities.contact_id
+ - key: contact_id
+ foreign-key: tasks.contact_id
+ - key: lead_id
+ foreign-key: id
+ - key: lead_id
+ foreign-key: contacts.lead_id
+ - key: lead_id
+ foreign-key: opportunities.lead_id
+ - key: lead_id
+ foreign-key: tasks.lead_id
+ - key: organization_id
+ foreign-key: contacts.organization_id
+ - key: organization_id
+ foreign-key: opportunities.organization_id
+ - key: organization_id
+ foreign-key: organization_id
+ - key: organization_id
+ foreign-key: tasks.organization_id
+ - key: task_id
+ foreign-key: tasks.id
+ - key: created_by
+ foreign-key: contacts.created_by
+ - key: updated_by
+ foreign-key: contacts.created_by
+ - key: user_id
+ foreign-key: contacts.created_by
+ - key: task_assigned_to
+ foreign-key: contacts.created_by
+ - key: users
+ foreign-key: contacts.created_by
+ - key: created_by
+ foreign-key: contacts.updated_by
+ - key: updated_by
+ foreign-key: contacts.updated_by
+ - key: user_id
+ foreign-key: contacts.updated_by
+ - key: task_assigned_to
+ foreign-key: contacts.updated_by
+ - key: users
+ foreign-key: contacts.updated_by
+ - key: created_by
+ foreign-key: created_by
+ - key: updated_by
+ foreign-key: created_by
+ - key: user_id
+ foreign-key: created_by
+ - key: task_assigned_to
+ foreign-key: created_by
+ - key: users
+ foreign-key: created_by
+ - key: created_by
+ foreign-key: opportunities.created_by
+ - key: updated_by
+ foreign-key: opportunities.created_by
+ - key: user_id
+ foreign-key: opportunities.created_by
+ - key: task_assigned_to
+ foreign-key: opportunities.created_by
+ - key: users
+ foreign-key: opportunities.created_by
+ - key: created_by
+ foreign-key: opportunities.updated_by
+ - key: updated_by
+ foreign-key: opportunities.updated_by
+ - key: user_id
+ foreign-key: opportunities.updated_by
+ - key: task_assigned_to
+ foreign-key: opportunities.updated_by
+ - key: users
+ foreign-key: opportunities.updated_by
+ - key: created_by
+ foreign-key: opportunities.user_id
+ - key: updated_by
+ foreign-key: opportunities.user_id
+ - key: user_id
+ foreign-key: opportunities.user_id
+ - key: task_assigned_to
+ foreign-key: opportunities.user_id
+ - key: users
+ foreign-key: opportunities.user_id
+ - key: created_by
+ foreign-key: tasks.assigned_to
+ - key: updated_by
+ foreign-key: tasks.assigned_to
+ - key: user_id
+ foreign-key: tasks.assigned_to
+ - key: task_assigned_to
+ foreign-key: tasks.assigned_to
+ - key: users
+ foreign-key: tasks.assigned_to
+ - key: created_by
+ foreign-key: tasks.created_by
+ - key: updated_by
+ foreign-key: tasks.created_by
+ - key: user_id
+ foreign-key: tasks.created_by
+ - key: task_assigned_to
+ foreign-key: tasks.created_by
+ - key: users
+ foreign-key: tasks.created_by
+ - key: created_by
+ foreign-key: tasks.updated_by
+ - key: updated_by
+ foreign-key: tasks.updated_by
+ - key: user_id
+ foreign-key: tasks.updated_by
+ - key: task_assigned_to
+ foreign-key: tasks.updated_by
+ - key: users
+ foreign-key: tasks.updated_by
+ - key: created_by
+ foreign-key: updated_by
+ - key: updated_by
+ foreign-key: updated_by
+ - key: user_id
+ foreign-key: updated_by
+ - key: task_assigned_to
+ foreign-key: updated_by
+ - key: users
+ foreign-key: updated_by
+ - table-name: tasks
+ keys:
+ - key: contact_id
+ foreign-key: contact_id
+ - key: lead_id
+ foreign-key: lead_id
+ - key: organization_id
+ foreign-key: organization_id
+ - key: task_id
+ foreign-key: id
+ - key: created_by
+ foreign-key: assigned_to
+ - key: updated_by
+ foreign-key: assigned_to
+ - key: user_id
+ foreign-key: assigned_to
+ - key: task_assigned_to
+ foreign-key: assigned_to
+ - key: users
+ foreign-key: assigned_to
+ - key: created_by
+ foreign-key: created_by
+ - key: updated_by
+ foreign-key: created_by
+ - key: user_id
+ foreign-key: created_by
+ - key: task_assigned_to
+ foreign-key: created_by
+ - key: users
+ foreign-key: created_by
+ - key: created_by
+ foreign-key: updated_by
+ - key: updated_by
+ foreign-key: updated_by
+ - key: user_id
+ foreign-key: updated_by
+ - key: task_assigned_to
+ foreign-key: updated_by
+ - key: users
+ foreign-key: updated_by
+ - table-name: event_log
+ keys:
+ - key: lead_id
+ foreign-key: lead_id
+ - key: organization_id
+ foreign-key: organization_id
+ - key: created_by
+ foreign-key: user_id
+ - key: updated_by
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - key: task_assigned_to
+ foreign-key: user_id
+ - key: users
+ foreign-key: user_id
+ - table-name: custom_fields
+ keys:
+ - key: organization_id
+ foreign-key: organization_id
+ - key: created_by
+ foreign-key: created_by
+ - key: updated_by
+ foreign-key: created_by
+ - key: user_id
+ foreign-key: created_by
+ - key: task_assigned_to
+ foreign-key: created_by
+ - key: users
+ foreign-key: created_by
+ - key: created_by
+ foreign-key: updated_by
+ - key: updated_by
+ foreign-key: updated_by
+ - key: user_id
+ foreign-key: updated_by
+ - key: task_assigned_to
+ foreign-key: updated_by
+ - key: users
+ foreign-key: updated_by
+ - table-name: users
+ keys:
+ - key: organization_id
+ foreign-key: organizations
+ - key: created_by
+ foreign-key: id
+ - key: updated_by
+ foreign-key: id
+ - key: user_id
+ foreign-key: id
+ - key: task_assigned_to
+ foreign-key: id
+ - key: users
+ foreign-key: id
+- table-name: leads
+ join:
+ - table-name: activities
+ keys:
+ - key: contacts.id
+ foreign-key: contact_id
+ - key: opportunities.contact_id
+ foreign-key: contact_id
+ - key: tasks.contact_id
+ foreign-key: contact_id
+ - key: id
+ foreign-key: lead_id
+ - key: contacts.lead_id
+ foreign-key: lead_id
+ - key: opportunities.lead_id
+ foreign-key: lead_id
+ - key: tasks.lead_id
+ foreign-key: lead_id
+ - key: contacts.organization_id
+ foreign-key: organization_id
+ - key: opportunities.organization_id
+ foreign-key: organization_id
+ - key: organization_id
+ foreign-key: organization_id
+ - key: tasks.organization_id
+ foreign-key: organization_id
+ - key: tasks.id
+ foreign-key: task_id
+ - key: contacts.created_by
+ foreign-key: created_by
+ - key: contacts.updated_by
+ foreign-key: created_by
+ - key: created_by
+ foreign-key: created_by
+ - key: opportunities.created_by
+ foreign-key: created_by
+ - key: opportunities.updated_by
+ foreign-key: created_by
+ - key: opportunities.user_id
+ foreign-key: created_by
+ - key: tasks.assigned_to
+ foreign-key: created_by
+ - key: tasks.created_by
+ foreign-key: created_by
+ - key: tasks.updated_by
+ foreign-key: created_by
+ - key: updated_by
+ foreign-key: created_by
+ - key: contacts.created_by
+ foreign-key: updated_by
+ - key: contacts.updated_by
+ foreign-key: updated_by
+ - key: created_by
+ foreign-key: updated_by
+ - key: opportunities.created_by
+ foreign-key: updated_by
+ - key: opportunities.updated_by
+ foreign-key: updated_by
+ - key: opportunities.user_id
+ foreign-key: updated_by
+ - key: tasks.assigned_to
+ foreign-key: updated_by
+ - key: tasks.created_by
+ foreign-key: updated_by
+ - key: tasks.updated_by
+ foreign-key: updated_by
+ - key: updated_by
+ foreign-key: updated_by
+ - key: contacts.created_by
+ foreign-key: user_id
+ - key: contacts.updated_by
+ foreign-key: user_id
+ - key: created_by
+ foreign-key: user_id
+ - key: opportunities.created_by
+ foreign-key: user_id
+ - key: opportunities.updated_by
+ foreign-key: user_id
+ - key: opportunities.user_id
+ foreign-key: user_id
+ - key: tasks.assigned_to
+ foreign-key: user_id
+ - key: tasks.created_by
+ foreign-key: user_id
+ - key: tasks.updated_by
+ foreign-key: user_id
+ - key: updated_by
+ foreign-key: user_id
+ - key: contacts.created_by
+ foreign-key: task_assigned_to
+ - key: contacts.updated_by
+ foreign-key: task_assigned_to
+ - key: created_by
+ foreign-key: task_assigned_to
+ - key: opportunities.created_by
+ foreign-key: task_assigned_to
+ - key: opportunities.updated_by
+ foreign-key: task_assigned_to
+ - key: opportunities.user_id
+ foreign-key: task_assigned_to
+ - key: tasks.assigned_to
+ foreign-key: task_assigned_to
+ - key: tasks.created_by
+ foreign-key: task_assigned_to
+ - key: tasks.updated_by
+ foreign-key: task_assigned_to
+ - key: updated_by
+ foreign-key: task_assigned_to
+ - key: contacts.created_by
+ foreign-key: users
+ - key: contacts.updated_by
+ foreign-key: users
+ - key: created_by
+ foreign-key: users
+ - key: opportunities.created_by
+ foreign-key: users
+ - key: opportunities.updated_by
+ foreign-key: users
+ - key: opportunities.user_id
+ foreign-key: users
+ - key: tasks.assigned_to
+ foreign-key: users
+ - key: tasks.created_by
+ foreign-key: users
+ - key: tasks.updated_by
+ foreign-key: users
+ - key: updated_by
+ foreign-key: users
+ - table-name: tasks
+ keys:
+ - key: contacts.id
+ foreign-key: contact_id
+ - key: opportunities.contact_id
+ foreign-key: contact_id
+ - key: tasks.contact_id
+ foreign-key: contact_id
+ - key: id
+ foreign-key: lead_id
+ - key: contacts.lead_id
+ foreign-key: lead_id
+ - key: opportunities.lead_id
+ foreign-key: lead_id
+ - key: tasks.lead_id
+ foreign-key: lead_id
+ - key: contacts.organization_id
+ foreign-key: organization_id
+ - key: opportunities.organization_id
+ foreign-key: organization_id
+ - key: organization_id
+ foreign-key: organization_id
+ - key: tasks.organization_id
+ foreign-key: organization_id
+ - key: tasks.id
+ foreign-key: id
+ - key: contacts.created_by
+ foreign-key: assigned_to
+ - key: contacts.updated_by
+ foreign-key: assigned_to
+ - key: created_by
+ foreign-key: assigned_to
+ - key: opportunities.created_by
+ foreign-key: assigned_to
+ - key: opportunities.updated_by
+ foreign-key: assigned_to
+ - key: opportunities.user_id
+ foreign-key: assigned_to
+ - key: tasks.assigned_to
+ foreign-key: assigned_to
+ - key: tasks.created_by
+ foreign-key: assigned_to
+ - key: tasks.updated_by
+ foreign-key: assigned_to
+ - key: updated_by
+ foreign-key: assigned_to
+ - key: contacts.created_by
+ foreign-key: created_by
+ - key: contacts.updated_by
+ foreign-key: created_by
+ - key: created_by
+ foreign-key: created_by
+ - key: opportunities.created_by
+ foreign-key: created_by
+ - key: opportunities.updated_by
+ foreign-key: created_by
+ - key: opportunities.user_id
+ foreign-key: created_by
+ - key: tasks.assigned_to
+ foreign-key: created_by
+ - key: tasks.created_by
+ foreign-key: created_by
+ - key: tasks.updated_by
+ foreign-key: created_by
+ - key: updated_by
+ foreign-key: created_by
+ - key: contacts.created_by
+ foreign-key: updated_by
+ - key: contacts.updated_by
+ foreign-key: updated_by
+ - key: created_by
+ foreign-key: updated_by
+ - key: opportunities.created_by
+ foreign-key: updated_by
+ - key: opportunities.updated_by
+ foreign-key: updated_by
+ - key: opportunities.user_id
+ foreign-key: updated_by
+ - key: tasks.assigned_to
+ foreign-key: updated_by
+ - key: tasks.created_by
+ foreign-key: updated_by
+ - key: tasks.updated_by
+ foreign-key: updated_by
+ - key: updated_by
+ foreign-key: updated_by
+ - table-name: event_log
+ keys:
+ - key: id
+ foreign-key: lead_id
+ - key: contacts.lead_id
+ foreign-key: lead_id
+ - key: opportunities.lead_id
+ foreign-key: lead_id
+ - key: tasks.lead_id
+ foreign-key: lead_id
+ - key: contacts.organization_id
+ foreign-key: organization_id
+ - key: opportunities.organization_id
+ foreign-key: organization_id
+ - key: organization_id
+ foreign-key: organization_id
+ - key: tasks.organization_id
+ foreign-key: organization_id
+ - key: contacts.created_by
+ foreign-key: user_id
+ - key: contacts.updated_by
+ foreign-key: user_id
+ - key: created_by
+ foreign-key: user_id
+ - key: opportunities.created_by
+ foreign-key: user_id
+ - key: opportunities.updated_by
+ foreign-key: user_id
+ - key: opportunities.user_id
+ foreign-key: user_id
+ - key: tasks.assigned_to
+ foreign-key: user_id
+ - key: tasks.created_by
+ foreign-key: user_id
+ - key: tasks.updated_by
+ foreign-key: user_id
+ - key: updated_by
+ foreign-key: user_id
+ - table-name: custom_fields
+ keys:
+ - key: contacts.organization_id
+ foreign-key: organization_id
+ - key: opportunities.organization_id
+ foreign-key: organization_id
+ - key: organization_id
+ foreign-key: organization_id
+ - key: tasks.organization_id
+ foreign-key: organization_id
+ - key: contacts.created_by
+ foreign-key: created_by
+ - key: contacts.updated_by
+ foreign-key: created_by
+ - key: created_by
+ foreign-key: created_by
+ - key: opportunities.created_by
+ foreign-key: created_by
+ - key: opportunities.updated_by
+ foreign-key: created_by
+ - key: opportunities.user_id
+ foreign-key: created_by
+ - key: tasks.assigned_to
+ foreign-key: created_by
+ - key: tasks.created_by
+ foreign-key: created_by
+ - key: tasks.updated_by
+ foreign-key: created_by
+ - key: updated_by
+ foreign-key: created_by
+ - key: contacts.created_by
+ foreign-key: updated_by
+ - key: contacts.updated_by
+ foreign-key: updated_by
+ - key: created_by
+ foreign-key: updated_by
+ - key: opportunities.created_by
+ foreign-key: updated_by
+ - key: opportunities.updated_by
+ foreign-key: updated_by
+ - key: opportunities.user_id
+ foreign-key: updated_by
+ - key: tasks.assigned_to
+ foreign-key: updated_by
+ - key: tasks.created_by
+ foreign-key: updated_by
+ - key: tasks.updated_by
+ foreign-key: updated_by
+ - key: updated_by
+ foreign-key: updated_by
+ - table-name: users
+ keys:
+ - key: contacts.organization_id
+ foreign-key: organizations
+ - key: opportunities.organization_id
+ foreign-key: organizations
+ - key: organization_id
+ foreign-key: organizations
+ - key: tasks.organization_id
+ foreign-key: organizations
+ - key: contacts.created_by
+ foreign-key: id
+ - key: contacts.updated_by
+ foreign-key: id
+ - key: created_by
+ foreign-key: id
+ - key: opportunities.created_by
+ foreign-key: id
+ - key: opportunities.updated_by
+ foreign-key: id
+ - key: opportunities.user_id
+ foreign-key: id
+ - key: tasks.assigned_to
+ foreign-key: id
+ - key: tasks.created_by
+ foreign-key: id
+ - key: tasks.updated_by
+ foreign-key: id
+ - key: updated_by
+ foreign-key: id
+- table-name: tasks
+ join:
+ - table-name: activities
+ keys:
+ - key: contact_id
+ foreign-key: contact_id
+ - key: lead_id
+ foreign-key: lead_id
+ - key: organization_id
+ foreign-key: organization_id
+ - key: id
+ foreign-key: task_id
+ - key: assigned_to
+ foreign-key: created_by
+ - key: created_by
+ foreign-key: created_by
+ - key: updated_by
+ foreign-key: created_by
+ - key: assigned_to
+ foreign-key: updated_by
+ - key: created_by
+ foreign-key: updated_by
+ - key: updated_by
+ foreign-key: updated_by
+ - key: assigned_to
+ foreign-key: user_id
+ - key: created_by
+ foreign-key: user_id
+ - key: updated_by
+ foreign-key: user_id
+ - key: assigned_to
+ foreign-key: task_assigned_to
+ - key: created_by
+ foreign-key: task_assigned_to
+ - key: updated_by
+ foreign-key: task_assigned_to
+ - key: assigned_to
+ foreign-key: users
+ - key: created_by
+ foreign-key: users
+ - key: updated_by
+ foreign-key: users
+ - table-name: leads
+ keys:
+ - key: contact_id
+ foreign-key: contacts.id
+ - key: contact_id
+ foreign-key: opportunities.contact_id
+ - key: contact_id
+ foreign-key: tasks.contact_id
+ - key: lead_id
+ foreign-key: id
+ - key: lead_id
+ foreign-key: contacts.lead_id
+ - key: lead_id
+ foreign-key: opportunities.lead_id
+ - key: lead_id
+ foreign-key: tasks.lead_id
+ - key: organization_id
+ foreign-key: contacts.organization_id
+ - key: organization_id
+ foreign-key: opportunities.organization_id
+ - key: organization_id
+ foreign-key: organization_id
+ - key: organization_id
+ foreign-key: tasks.organization_id
+ - key: id
+ foreign-key: tasks.id
+ - key: assigned_to
+ foreign-key: contacts.created_by
+ - key: created_by
+ foreign-key: contacts.created_by
+ - key: updated_by
+ foreign-key: contacts.created_by
+ - key: assigned_to
+ foreign-key: contacts.updated_by
+ - key: created_by
+ foreign-key: contacts.updated_by
+ - key: updated_by
+ foreign-key: contacts.updated_by
+ - key: assigned_to
+ foreign-key: created_by
+ - key: created_by
+ foreign-key: created_by
+ - key: updated_by
+ foreign-key: created_by
+ - key: assigned_to
+ foreign-key: opportunities.created_by
+ - key: created_by
+ foreign-key: opportunities.created_by
+ - key: updated_by
+ foreign-key: opportunities.created_by
+ - key: assigned_to
+ foreign-key: opportunities.updated_by
+ - key: created_by
+ foreign-key: opportunities.updated_by
+ - key: updated_by
+ foreign-key: opportunities.updated_by
+ - key: assigned_to
+ foreign-key: opportunities.user_id
+ - key: created_by
+ foreign-key: opportunities.user_id
+ - key: updated_by
+ foreign-key: opportunities.user_id
+ - key: assigned_to
+ foreign-key: tasks.assigned_to
+ - key: created_by
+ foreign-key: tasks.assigned_to
+ - key: updated_by
+ foreign-key: tasks.assigned_to
+ - key: assigned_to
+ foreign-key: tasks.created_by
+ - key: created_by
+ foreign-key: tasks.created_by
+ - key: updated_by
+ foreign-key: tasks.created_by
+ - key: assigned_to
+ foreign-key: tasks.updated_by
+ - key: created_by
+ foreign-key: tasks.updated_by
+ - key: updated_by
+ foreign-key: tasks.updated_by
+ - key: assigned_to
+ foreign-key: updated_by
+ - key: created_by
+ foreign-key: updated_by
+ - key: updated_by
+ foreign-key: updated_by
+ - table-name: event_log
+ keys:
+ - key: lead_id
+ foreign-key: lead_id
+ - key: organization_id
+ foreign-key: organization_id
+ - key: assigned_to
+ foreign-key: user_id
+ - key: created_by
+ foreign-key: user_id
+ - key: updated_by
+ foreign-key: user_id
+ - table-name: custom_fields
+ keys:
+ - key: organization_id
+ foreign-key: organization_id
+ - key: assigned_to
+ foreign-key: created_by
+ - key: created_by
+ foreign-key: created_by
+ - key: updated_by
+ foreign-key: created_by
+ - key: assigned_to
+ foreign-key: updated_by
+ - key: created_by
+ foreign-key: updated_by
+ - key: updated_by
+ foreign-key: updated_by
+ - table-name: users
+ keys:
+ - key: organization_id
+ foreign-key: organizations
+ - key: assigned_to
+ foreign-key: id
+ - key: created_by
+ foreign-key: id
+ - key: updated_by
+ foreign-key: id
+- table-name: event_log
+ join:
+ - table-name: activities
+ keys:
+ - key: lead_id
+ foreign-key: lead_id
+ - key: organization_id
+ foreign-key: organization_id
+ - key: user_id
+ foreign-key: created_by
+ - key: user_id
+ foreign-key: updated_by
+ - key: user_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: task_assigned_to
+ - key: user_id
+ foreign-key: users
+ - table-name: leads
+ keys:
+ - key: lead_id
+ foreign-key: id
+ - key: lead_id
+ foreign-key: contacts.lead_id
+ - key: lead_id
+ foreign-key: opportunities.lead_id
+ - key: lead_id
+ foreign-key: tasks.lead_id
+ - key: organization_id
+ foreign-key: contacts.organization_id
+ - key: organization_id
+ foreign-key: opportunities.organization_id
+ - key: organization_id
+ foreign-key: organization_id
+ - key: organization_id
+ foreign-key: tasks.organization_id
+ - key: user_id
+ foreign-key: contacts.created_by
+ - key: user_id
+ foreign-key: contacts.updated_by
+ - key: user_id
+ foreign-key: created_by
+ - key: user_id
+ foreign-key: opportunities.created_by
+ - key: user_id
+ foreign-key: opportunities.updated_by
+ - key: user_id
+ foreign-key: opportunities.user_id
+ - key: user_id
+ foreign-key: tasks.assigned_to
+ - key: user_id
+ foreign-key: tasks.created_by
+ - key: user_id
+ foreign-key: tasks.updated_by
+ - key: user_id
+ foreign-key: updated_by
+ - table-name: tasks
+ keys:
+ - key: lead_id
+ foreign-key: lead_id
+ - key: organization_id
+ foreign-key: organization_id
+ - key: user_id
+ foreign-key: assigned_to
+ - key: user_id
+ foreign-key: created_by
+ - key: user_id
+ foreign-key: updated_by
+ - table-name: custom_fields
+ keys:
+ - key: organization_id
+ foreign-key: organization_id
+ - key: user_id
+ foreign-key: created_by
+ - key: user_id
+ foreign-key: updated_by
+ - table-name: users
+ keys:
+ - key: organization_id
+ foreign-key: organizations
+ - key: user_id
+ foreign-key: id
+- table-name: custom_fields
+ join:
+ - table-name: activities
+ keys:
+ - key: organization_id
+ foreign-key: organization_id
+ - key: created_by
+ foreign-key: created_by
+ - key: updated_by
+ foreign-key: created_by
+ - key: created_by
+ foreign-key: updated_by
+ - key: updated_by
+ foreign-key: updated_by
+ - key: created_by
+ foreign-key: user_id
+ - key: updated_by
+ foreign-key: user_id
+ - key: created_by
+ foreign-key: task_assigned_to
+ - key: updated_by
+ foreign-key: task_assigned_to
+ - key: created_by
+ foreign-key: users
+ - key: updated_by
+ foreign-key: users
+ - table-name: event_log
+ keys:
+ - key: organization_id
+ foreign-key: organization_id
+ - key: created_by
+ foreign-key: user_id
+ - key: updated_by
+ foreign-key: user_id
+ - table-name: leads
+ keys:
+ - key: organization_id
+ foreign-key: contacts.organization_id
+ - key: organization_id
+ foreign-key: opportunities.organization_id
+ - key: organization_id
+ foreign-key: organization_id
+ - key: organization_id
+ foreign-key: tasks.organization_id
+ - key: created_by
+ foreign-key: contacts.created_by
+ - key: updated_by
+ foreign-key: contacts.created_by
+ - key: created_by
+ foreign-key: contacts.updated_by
+ - key: updated_by
+ foreign-key: contacts.updated_by
+ - key: created_by
+ foreign-key: created_by
+ - key: updated_by
+ foreign-key: created_by
+ - key: created_by
+ foreign-key: opportunities.created_by
+ - key: updated_by
+ foreign-key: opportunities.created_by
+ - key: created_by
+ foreign-key: opportunities.updated_by
+ - key: updated_by
+ foreign-key: opportunities.updated_by
+ - key: created_by
+ foreign-key: opportunities.user_id
+ - key: updated_by
+ foreign-key: opportunities.user_id
+ - key: created_by
+ foreign-key: tasks.assigned_to
+ - key: updated_by
+ foreign-key: tasks.assigned_to
+ - key: created_by
+ foreign-key: tasks.created_by
+ - key: updated_by
+ foreign-key: tasks.created_by
+ - key: created_by
+ foreign-key: tasks.updated_by
+ - key: updated_by
+ foreign-key: tasks.updated_by
+ - key: created_by
+ foreign-key: updated_by
+ - key: updated_by
+ foreign-key: updated_by
+ - table-name: tasks
+ keys:
+ - key: organization_id
+ foreign-key: organization_id
+ - key: created_by
+ foreign-key: assigned_to
+ - key: updated_by
+ foreign-key: assigned_to
+ - key: created_by
+ foreign-key: created_by
+ - key: updated_by
+ foreign-key: created_by
+ - key: created_by
+ foreign-key: updated_by
+ - key: updated_by
+ foreign-key: updated_by
+ - table-name: users
+ keys:
+ - key: organization_id
+ foreign-key: organizations
+ - key: created_by
+ foreign-key: id
+ - key: updated_by
+ foreign-key: id
+- table-name: users
+ join:
+ - table-name: activities
+ keys:
+ - key: organizations
+ foreign-key: organization_id
+ - key: id
+ foreign-key: created_by
+ - key: id
+ foreign-key: updated_by
+ - key: id
+ foreign-key: user_id
+ - key: id
+ foreign-key: task_assigned_to
+ - key: id
+ foreign-key: users
+ - table-name: custom_fields
+ keys:
+ - key: organizations
+ foreign-key: organization_id
+ - key: id
+ foreign-key: created_by
+ - key: id
+ foreign-key: updated_by
+ - table-name: event_log
+ keys:
+ - key: organizations
+ foreign-key: organization_id
+ - key: id
+ foreign-key: user_id
+ - table-name: leads
+ keys:
+ - key: organizations
+ foreign-key: contacts.organization_id
+ - key: organizations
+ foreign-key: opportunities.organization_id
+ - key: organizations
+ foreign-key: organization_id
+ - key: organizations
+ foreign-key: tasks.organization_id
+ - key: id
+ foreign-key: contacts.created_by
+ - key: id
+ foreign-key: contacts.updated_by
+ - key: id
+ foreign-key: created_by
+ - key: id
+ foreign-key: opportunities.created_by
+ - key: id
+ foreign-key: opportunities.updated_by
+ - key: id
+ foreign-key: opportunities.user_id
+ - key: id
+ foreign-key: tasks.assigned_to
+ - key: id
+ foreign-key: tasks.created_by
+ - key: id
+ foreign-key: tasks.updated_by
+ - key: id
+ foreign-key: updated_by
+ - table-name: tasks
+ keys:
+ - key: organizations
+ foreign-key: organization_id
+ - key: id
+ foreign-key: assigned_to
+ - key: id
+ foreign-key: created_by
+ - key: id
+ foreign-key: updated_by
diff --git a/_data/taps/schemas/closeio/v1/closeio-v1-tables.yml b/_data/taps/schemas/closeio/v1/closeio-v1-tables.yml
new file mode 100644
index 000000000..4d1e23abf
--- /dev/null
+++ b/_data/taps/schemas/closeio/v1/closeio-v1-tables.yml
@@ -0,0 +1,112 @@
+tap: closeio
+version: '1'
+tables:
+- name: activities
+ description: "The `{{ table.name }}` table contains info about various activities\
+ \ in your {{ integration.display_name }} account.\n\nAn activity belongs to a\
+ \ lead and can represent any type of activity that was performed on a lead or\
+ \ its contact. This includes calls, emails, notes, and so on.\n\n#### Attribution\
+ \ window {#email-attribution-window}\n When Stitch replicates data for this table,\
+ \ it will use an attribution window of {{ integration.attribution-window }} to\
+ \ fetch updated activities.\n\n This means that every time a replication job runs,\
+ \ the last 24 hours' worth of data will be replicated for this table. This is\
+ \ because {{ integration.display_name }} doesn't provide a way to query for activites\
+ \ based on a modification time, only when activities are created. A list of available\
+ \ querying methods can be found in [{{ integration.display_name }}'s documentation](https://developer.close.io/#activities-list-or-filter-all-activity-types){:target=\"\
+ new\"}.\n \n Refer to the [Replication](#replication) section for more info and\
+ \ examples of how the attribution window is used to query for data.\n"
+ links:
+ doc-link: https://developer.close.io/#activities
+ singer-schema: https://github.com/singer-io/tap-closeio/blob/master/tap_closeio/schemas/activities.json
+ api-method: https://developer.close.io/#activities-list-or-filter-all-activity-types
+ table-details:
+ replication-method: Append-Only Incremental
+ primary-key: id
+ replication-key: date_created
+- name: custom_fields
+ description: 'The `{{ table.name }}` table contains info about the custom fields
+ in your {{ integration.display_name }} account.
+
+
+ Custom fields allow you to store arbitrary data on leads in {{ integration.display_name
+ }}. [Refer to {{ integration.display_name }}''s documentation](https://help.close.io/customer/portal/articles/1104820-custom-fields)
+ for more info.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-closeio/blob/master/tap_closeio/schemas/custom_fields.json
+ api-method: https://developer.close.io/#custom-fields-list-all-the-custom-fields-for-your-organization
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: date_updated
+- name: event_log
+ description: 'The `{{ table.name }}` table contains info about events generated
+ in your {{ integration.display_name }} account. This could include creating a
+ lead, sending an email, or deleting a note.
+
+
+ #### Historical data limitations
+
+
+ Due to how {{ integration.display_name }}''s API functions, [only 30 days of historical
+ data is available for this table](https://developer.close.io/#event-log){:target="new"}
+ from the initial connection date.
+
+
+ Refer to the [Replication section](#historical-event-log-data) for more info.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-closeio/blob/master/tap_closeio/schemas/event_log.json
+ api-method: https://developer.close.io/#event-log-retrieve-a-list-of-events
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: date_updated
+- name: leads
+ description: 'The `{{ table.name }}` table contains info about the leads in your
+ {{ integration.display_name }} account.
+
+
+ Leads represent a company or organization and may contain contacts, tasks, opportunities,
+ and activities. In {{ integration.display_name }}, a lead is synonymous with "account"
+ in other CRMs.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-closeio/blob/master/tap_closeio/schemas/leads.json
+ api-method: https://developer.close.io/#leads-list-or-search-for-leads
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: date_updated
+- name: tasks
+ description: 'The `{{ table.name }}` table contains info about the tasks in your
+ {{ integration.display_name }} account. Tasks are action items with a given date
+ that are assigned to a sales rep.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-closeio/blob/master/tap_closeio/schemas/tasks.json
+ api-method: https://developer.close.io/#tasks-list-or-filter-tasks
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: date_updated
+- name: users
+ description: 'The `{{ table.name }}` table contains info about the users in your
+ {{ integration.display_name }} account.
+
+
+ In {{ integration.display_name }}, users are typically your co-workers and sales
+ reps, or those inside your company.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-closeio/blob/master/tap_closeio/schemas/users.json
+ api-method: https://developer.close.io/#users-list-all-the-users-who-are-members-of-the-same-organizations-as-you-are
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: date_updated
diff --git a/_data/taps/schemas/closeio/v1/json/activities.json b/_data/taps/schemas/closeio/v1/json/activities.json
new file mode 100644
index 000000000..b298fb96d
--- /dev/null
+++ b/_data/taps/schemas/closeio/v1/json/activities.json
@@ -0,0 +1,821 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "attachments": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "content_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "filename": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "bcc": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "body_html": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body_html_quoted": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "expand": {
+ "type": [
+ "null",
+ "integer",
+ "boolean"
+ ]
+ },
+ "html": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "body_preview": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body_text_quoted": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "expand": {
+ "type": [
+ "null",
+ "integer",
+ "boolean"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "cc": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "contact_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_scheduled": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_sent": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "dialer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "direction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "email_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "envelope": {
+ "additionalProperties": true,
+ "properties": {
+ "bcc": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "cc": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "date": {
+ "anyOf": [
+ {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ ]
+ },
+ "from": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "in_reply_to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_autoreply": {
+ "type": [
+ "null",
+ "integer",
+ "boolean"
+ ]
+ },
+ "message_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reply_to": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "sender": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "import_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "in_reply_to_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lead_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "local_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "need_smtp_credentials": {
+ "type": [
+ "null",
+ "integer",
+ "boolean"
+ ]
+ },
+ "new_status_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "new_status_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "new_status_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "old_status_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "old_status_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "old_status_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "opens": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "ip_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "opened_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "opened_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_agent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "opens_summary": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "opportunity_confidence": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "opportunity_date_won": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "opportunity_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "opportunity_value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "opportunity_value_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "opportunity_value_formatted": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "opportunity_value_period": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organization_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recording_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "references": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "remote_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "send_attempts": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "error_class": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "error_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "sender": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "task_assigned_to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "task_assigned_to_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "task_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "task_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "template_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "template_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thread_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "transferred_from": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transferred_to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_by_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "users": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "voicemail_duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "voicemail_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "users"
+ ],
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/closeio/v1/json/custom_fields.json b/_data/taps/schemas/closeio/v1/json/custom_fields.json
new file mode 100644
index 000000000..2432268b4
--- /dev/null
+++ b/_data/taps/schemas/closeio/v1/json/custom_fields.json
@@ -0,0 +1,57 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "choices": {
+ "items": {
+ "type": "string"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "created_by": {
+ "type": "string"
+ },
+ "date_created": {
+ "type": "date-time"
+ },
+ "date_updated": {
+ "type": "date-time"
+ },
+ "editable_with_roles": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "organization_id": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "updated_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/closeio/v1/json/event_log.json b/_data/taps/schemas/closeio/v1/json/event_log.json
new file mode 100644
index 000000000..772adc737
--- /dev/null
+++ b/_data/taps/schemas/closeio/v1/json/event_log.json
@@ -0,0 +1,114 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "changed_fields": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lead_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "meta": {
+ "additionalProperties": true,
+ "properties": {
+ "request_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "request_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organization_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "previous_data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "request_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/closeio/v1/json/leads.json b/_data/taps/schemas/closeio/v1/json/leads.json
new file mode 100644
index 000000000..cf4ad7ad9
--- /dev/null
+++ b/_data/taps/schemas/closeio/v1/json/leads.json
@@ -0,0 +1,732 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "addresses": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "address_1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zipcode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "contacts": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "created_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emails": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "integration_links": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "lead_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organization_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phones": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_formatted": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "urls": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "type": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "created_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "value": {
+ "type": [
+ "null",
+ "string",
+ "number",
+ "boolean",
+ "object",
+ "array"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "integration_links": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "opportunities": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "confidence": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "contact_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contact_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_lost": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_won": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "integration_links": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "lead_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lead_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organization_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_by_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "value_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value_formatted": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value_period": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "organization_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tasks": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_to_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contact_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contact_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "due_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_complete": {
+ "type": [
+ "null",
+ "integer",
+ "boolean"
+ ]
+ },
+ "is_dateless": {
+ "type": [
+ "null",
+ "integer",
+ "boolean"
+ ]
+ },
+ "lead_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lead_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organization_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_by_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "updated_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_by_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "integration_links"
+ ],
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/closeio/v1/json/tasks.json b/_data/taps/schemas/closeio/v1/json/tasks.json
new file mode 100644
index 000000000..4d2d10751
--- /dev/null
+++ b/_data/taps/schemas/closeio/v1/json/tasks.json
@@ -0,0 +1,266 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_to_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body_preview": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contact_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contact_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "due_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emails": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_complete": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_dateless": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "lead_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lead_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "local_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "opportunity_note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "opportunity_value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "opportunity_value_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "opportunity_value_formatted": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "opportunity_value_period": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organization_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_formatted": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_number_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recording_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "remote_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "remote_phone_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "remote_phone_formatted": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_by_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voicemail_duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "voicemail_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/closeio/v1/json/users.json b/_data/taps/schemas/closeio/v1/json/users.json
new file mode 100644
index 000000000..922ea2627
--- /dev/null
+++ b/_data/taps/schemas/closeio/v1/json/users.json
@@ -0,0 +1,69 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_used_timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/clubspeed-v1-foreign-keys.yml b/_data/taps/schemas/clubspeed/v1/clubspeed-v1-foreign-keys.yml
new file mode 100644
index 000000000..f08a06520
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/clubspeed-v1-foreign-keys.yml
@@ -0,0 +1,1603 @@
+tap: clubspeed
+version: '1'
+keys:
+ booking_onlineBookingsId:
+ - table: booking
+ keys:
+ - onlineBookingsId
+ - table: booking_availability
+ keys:
+ - products.onlineBookingsId
+ - table: reservations
+ keys:
+ - onlineBookingsId
+ check_details_checkDetailId:
+ - table: check_details
+ keys:
+ - checkDetailId
+ - table: gift_card_history
+ keys:
+ - checkDetailId
+ checks_checkId:
+ - table: check_details
+ keys:
+ - checkId
+ - table: checks
+ keys:
+ - checkId
+ - table: event_reservation_links
+ keys:
+ - checkId
+ - table: gift_card_history
+ keys:
+ - checkId
+ - table: payments
+ keys:
+ - checkId
+ - table: payments_voided
+ keys:
+ - checkId
+ - table: reservations
+ keys:
+ - checkId
+ customers_customerId:
+ - table: check_details
+ keys:
+ - g_CustId
+ - p_CustId
+ - s_CustId
+ - table: checks
+ keys:
+ - customerId
+ - table: event_heat_details
+ keys:
+ - customerId
+ - table: gift_card_history
+ keys:
+ - customerId
+ - table: heat_main_details
+ keys:
+ - customerId
+ - table: memberships
+ keys:
+ - customerId
+ - table: payments
+ keys:
+ - customerId
+ - table: payments_voided
+ keys:
+ - customerId
+ - table: reservations
+ keys:
+ - customersId
+ discount_types_discountId:
+ - table: check_details
+ keys:
+ - discountId
+ - table: checks
+ keys:
+ - discountId
+ - table: discount_types
+ keys:
+ - discountId
+ event_heat_types_eventHeatTypeId:
+ - table: event_heat_types
+ keys:
+ - eventHeatTypeId
+ event_reservation_links_eventReservationLinkId:
+ - table: event_reservation_links
+ keys:
+ - eventReservationLinkId
+ event_reservation_types_eventReservationTypeId:
+ - table: event_reservation_types
+ keys:
+ - eventReservationTypeId
+ - table: event_reservations
+ keys:
+ - typeId
+ event_reservations_eventReservationId:
+ - table: event_reservations
+ keys:
+ - eventReservationId
+ - mainId
+ - table: event_tasks
+ keys:
+ - eventReservationId
+ event_rounds_eventRoundId:
+ - table: event_rounds
+ keys:
+ - eventRoundId
+ - table: heat_main
+ keys:
+ - eventRound
+ event_statuses_eventStatusId:
+ - table: event_statuses
+ keys:
+ - eventStatusId
+ event_task_types_eventTaskTypeId:
+ - table: event_task_types
+ keys:
+ - eventTaskTypeId
+ event_tasks_eventTaskId:
+ - table: event_tasks
+ keys:
+ - eventTaskId
+ event_types_eventTypeId:
+ - table: event_reservations
+ keys:
+ - eventTypeId
+ - table: event_types
+ keys:
+ - eventTypeId
+ - table: events
+ keys:
+ - eventTypeId
+ events_eventId:
+ - table: event_heat_details
+ keys:
+ - eventId
+ - table: event_rounds
+ keys:
+ - eventId
+ - table: events
+ keys:
+ - eventId
+ gift_card_history_giftCardHistoryId:
+ - table: gift_card_history
+ keys:
+ - giftCardHistoryId
+ heat_main_heatId:
+ - table: booking
+ keys:
+ - heatId
+ - table: booking_availability
+ keys:
+ - heatId
+ - heatSpotsAvailableCombined
+ - table: heat_main
+ keys:
+ - heatId
+ - table: heat_main_details
+ keys:
+ - heatId
+ heat_types_heatTypeId:
+ - table: booking_availability
+ keys:
+ - heatTypeId
+ - table: event_heat_types
+ keys:
+ - heatTypeId
+ - table: event_rounds
+ keys:
+ - heatTypeId
+ - table: heat_main
+ keys:
+ - type
+ - table: heat_types
+ keys:
+ - heatTypesId
+ membership_types_membershipTypeId:
+ - table: membership_types
+ keys:
+ - membershipTypeId
+ - table: memberships
+ keys:
+ - membershipTypeId
+ payments_paymentId:
+ - table: payments
+ keys:
+ - paymentId
+ - table: payments_voided
+ keys:
+ - paymentId
+ product_classes_productClassId:
+ - table: discount_types
+ keys:
+ - productClassId
+ - table: product_classes
+ keys:
+ - productClassId
+ - table: products
+ keys:
+ - productClassId
+ products_producstId:
+ - table: booking
+ keys:
+ - productsId
+ - table: booking_availability
+ keys:
+ - products.productsId
+ - table: check_details
+ keys:
+ - productId
+ - table: event_types
+ keys:
+ - onlineProductId
+ - table: products
+ keys:
+ - productId
+ reservations_reservationId:
+ - table: event_reservation_links
+ keys:
+ - reservationId
+ - table: events
+ keys:
+ - reservationId
+ - table: reservations
+ keys:
+ - onlineBookingReservationsId
+ sources_sourceId:
+ - table: sources
+ keys:
+ - sourceId
+ taxes_taxId:
+ - table: check_details
+ keys:
+ - taxId
+ - table: products
+ keys:
+ - taxId
+ - table: taxes
+ keys:
+ - taxId
+ _trackId:
+ - table: event_types
+ keys:
+ - trackId
+ - table: heat_types
+ keys:
+ - trackId
+ users_userId:
+ - table: check_details
+ keys:
+ - discountUserId
+ - table: checks
+ keys:
+ - discountUserId
+ - userId
+ - table: event_tasks
+ keys:
+ - completedBy
+ - table: gift_card_history
+ keys:
+ - userId
+ - table: users
+ keys:
+ - userId
+ - userId
+ - table: event_reservations
+ keys:
+ - userId
+ - table: heat_main_details
+ keys:
+ - userId
+ - table: memberships
+ keys:
+ - byUserId
+ - table: payments
+ keys:
+ - userId
+ - voidUser
+ - table: payments_voided
+ keys:
+ - userId
+ - voidUser
+tables:
+- table-name: booking
+ join:
+ - table-name: booking_availability
+ keys:
+ - key: onlineBookingsId
+ foreign-key: products.onlineBookingsId
+ - key: heatId
+ foreign-key: heatId
+ - key: heatId
+ foreign-key: heatSpotsAvailableCombined
+ - key: productsId
+ foreign-key: products.productsId
+ - table-name: reservations
+ keys:
+ - key: onlineBookingsId
+ foreign-key: onlineBookingsId
+ - table-name: heat_main
+ keys:
+ - key: heatId
+ foreign-key: heatId
+ - table-name: heat_main_details
+ keys:
+ - key: heatId
+ foreign-key: heatId
+ - table-name: check_details
+ keys:
+ - key: productsId
+ foreign-key: productId
+ - table-name: event_types
+ keys:
+ - key: productsId
+ foreign-key: onlineProductId
+ - table-name: products
+ keys:
+ - key: productsId
+ foreign-key: productId
+- table-name: booking_availability
+ join:
+ - table-name: booking
+ keys:
+ - key: products.onlineBookingsId
+ foreign-key: onlineBookingsId
+ - key: heatId
+ foreign-key: heatId
+ - key: heatSpotsAvailableCombined
+ foreign-key: heatId
+ - key: products.productsId
+ foreign-key: productsId
+ - table-name: reservations
+ keys:
+ - key: products.onlineBookingsId
+ foreign-key: onlineBookingsId
+ - table-name: heat_main
+ keys:
+ - key: heatId
+ foreign-key: heatId
+ - key: heatSpotsAvailableCombined
+ foreign-key: heatId
+ - key: heatTypeId
+ foreign-key: type
+ - table-name: heat_main_details
+ keys:
+ - key: heatId
+ foreign-key: heatId
+ - key: heatSpotsAvailableCombined
+ foreign-key: heatId
+ - table-name: event_heat_types
+ keys:
+ - key: heatTypeId
+ foreign-key: heatTypeId
+ - table-name: event_rounds
+ keys:
+ - key: heatTypeId
+ foreign-key: heatTypeId
+ - table-name: heat_types
+ keys:
+ - key: heatTypeId
+ foreign-key: heatTypesId
+ - table-name: check_details
+ keys:
+ - key: products.productsId
+ foreign-key: productId
+ - table-name: event_types
+ keys:
+ - key: products.productsId
+ foreign-key: onlineProductId
+ - table-name: products
+ keys:
+ - key: products.productsId
+ foreign-key: productId
+- table-name: reservations
+ join:
+ - table-name: booking
+ keys:
+ - key: onlineBookingsId
+ foreign-key: onlineBookingsId
+ - table-name: booking_availability
+ keys:
+ - key: onlineBookingsId
+ foreign-key: products.onlineBookingsId
+ - table-name: check_details
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: customersId
+ foreign-key: g_CustId
+ - key: customersId
+ foreign-key: p_CustId
+ - key: customersId
+ foreign-key: s_CustId
+ - table-name: checks
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: customersId
+ foreign-key: customerId
+ - table-name: event_reservation_links
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: onlineBookingReservationsId
+ foreign-key: reservationId
+ - table-name: gift_card_history
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: customersId
+ foreign-key: customerId
+ - table-name: payments
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: customersId
+ foreign-key: customerId
+ - table-name: payments_voided
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: customersId
+ foreign-key: customerId
+ - table-name: event_heat_details
+ keys:
+ - key: customersId
+ foreign-key: customerId
+ - table-name: heat_main_details
+ keys:
+ - key: customersId
+ foreign-key: customerId
+ - table-name: memberships
+ keys:
+ - key: customersId
+ foreign-key: customerId
+ - table-name: events
+ keys:
+ - key: onlineBookingReservationsId
+ foreign-key: reservationId
+- table-name: check_details
+ join:
+ - table-name: gift_card_history
+ keys:
+ - key: checkDetailId
+ foreign-key: checkDetailId
+ - key: checkId
+ foreign-key: checkId
+ - key: g_CustId
+ foreign-key: customerId
+ - key: p_CustId
+ foreign-key: customerId
+ - key: s_CustId
+ foreign-key: customerId
+ - key: discountUserId
+ foreign-key: userId
+ - table-name: checks
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: g_CustId
+ foreign-key: customerId
+ - key: p_CustId
+ foreign-key: customerId
+ - key: s_CustId
+ foreign-key: customerId
+ - key: discountId
+ foreign-key: discountId
+ - key: discountUserId
+ foreign-key: discountUserId
+ - key: discountUserId
+ foreign-key: userId
+ - table-name: event_reservation_links
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - table-name: payments
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: g_CustId
+ foreign-key: customerId
+ - key: p_CustId
+ foreign-key: customerId
+ - key: s_CustId
+ foreign-key: customerId
+ - key: discountUserId
+ foreign-key: userId
+ - key: discountUserId
+ foreign-key: voidUser
+ - table-name: payments_voided
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: g_CustId
+ foreign-key: customerId
+ - key: p_CustId
+ foreign-key: customerId
+ - key: s_CustId
+ foreign-key: customerId
+ - key: discountUserId
+ foreign-key: userId
+ - key: discountUserId
+ foreign-key: voidUser
+ - table-name: reservations
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: g_CustId
+ foreign-key: customersId
+ - key: p_CustId
+ foreign-key: customersId
+ - key: s_CustId
+ foreign-key: customersId
+ - table-name: event_heat_details
+ keys:
+ - key: g_CustId
+ foreign-key: customerId
+ - key: p_CustId
+ foreign-key: customerId
+ - key: s_CustId
+ foreign-key: customerId
+ - table-name: heat_main_details
+ keys:
+ - key: g_CustId
+ foreign-key: customerId
+ - key: p_CustId
+ foreign-key: customerId
+ - key: s_CustId
+ foreign-key: customerId
+ - key: discountUserId
+ foreign-key: userId
+ - table-name: memberships
+ keys:
+ - key: g_CustId
+ foreign-key: customerId
+ - key: p_CustId
+ foreign-key: customerId
+ - key: s_CustId
+ foreign-key: customerId
+ - key: discountUserId
+ foreign-key: byUserId
+ - table-name: discount_types
+ keys:
+ - key: discountId
+ foreign-key: discountId
+ - table-name: booking
+ keys:
+ - key: productId
+ foreign-key: productsId
+ - table-name: booking_availability
+ keys:
+ - key: productId
+ foreign-key: products.productsId
+ - table-name: event_types
+ keys:
+ - key: productId
+ foreign-key: onlineProductId
+ - table-name: products
+ keys:
+ - key: productId
+ foreign-key: productId
+ - key: taxId
+ foreign-key: taxId
+ - table-name: taxes
+ keys:
+ - key: taxId
+ foreign-key: taxId
+ - table-name: event_tasks
+ keys:
+ - key: discountUserId
+ foreign-key: completedBy
+ - table-name: users
+ keys:
+ - key: discountUserId
+ foreign-key: userId
+ - table-name: event_reservations
+ keys:
+ - key: discountUserId
+ foreign-key: userId
+- table-name: gift_card_history
+ join:
+ - table-name: check_details
+ keys:
+ - key: checkDetailId
+ foreign-key: checkDetailId
+ - key: checkId
+ foreign-key: checkId
+ - key: customerId
+ foreign-key: g_CustId
+ - key: customerId
+ foreign-key: p_CustId
+ - key: customerId
+ foreign-key: s_CustId
+ - key: userId
+ foreign-key: discountUserId
+ - table-name: checks
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: customerId
+ foreign-key: customerId
+ - key: userId
+ foreign-key: discountUserId
+ - key: userId
+ foreign-key: userId
+ - table-name: event_reservation_links
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - table-name: payments
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: customerId
+ foreign-key: customerId
+ - key: userId
+ foreign-key: userId
+ - key: userId
+ foreign-key: voidUser
+ - table-name: payments_voided
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: customerId
+ foreign-key: customerId
+ - key: userId
+ foreign-key: userId
+ - key: userId
+ foreign-key: voidUser
+ - table-name: reservations
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: customerId
+ foreign-key: customersId
+ - table-name: event_heat_details
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - table-name: heat_main_details
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - key: userId
+ foreign-key: userId
+ - table-name: memberships
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - key: userId
+ foreign-key: byUserId
+ - table-name: event_tasks
+ keys:
+ - key: userId
+ foreign-key: completedBy
+ - table-name: users
+ keys:
+ - key: userId
+ foreign-key: userId
+ - table-name: event_reservations
+ keys:
+ - key: userId
+ foreign-key: userId
+- table-name: checks
+ join:
+ - table-name: check_details
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: customerId
+ foreign-key: g_CustId
+ - key: customerId
+ foreign-key: p_CustId
+ - key: customerId
+ foreign-key: s_CustId
+ - key: discountId
+ foreign-key: discountId
+ - key: discountUserId
+ foreign-key: discountUserId
+ - key: userId
+ foreign-key: discountUserId
+ - table-name: event_reservation_links
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - table-name: gift_card_history
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: customerId
+ foreign-key: customerId
+ - key: discountUserId
+ foreign-key: userId
+ - key: userId
+ foreign-key: userId
+ - table-name: payments
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: customerId
+ foreign-key: customerId
+ - key: discountUserId
+ foreign-key: userId
+ - key: userId
+ foreign-key: userId
+ - key: discountUserId
+ foreign-key: voidUser
+ - key: userId
+ foreign-key: voidUser
+ - table-name: payments_voided
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: customerId
+ foreign-key: customerId
+ - key: discountUserId
+ foreign-key: userId
+ - key: userId
+ foreign-key: userId
+ - key: discountUserId
+ foreign-key: voidUser
+ - key: userId
+ foreign-key: voidUser
+ - table-name: reservations
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: customerId
+ foreign-key: customersId
+ - table-name: event_heat_details
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - table-name: heat_main_details
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - key: discountUserId
+ foreign-key: userId
+ - key: userId
+ foreign-key: userId
+ - table-name: memberships
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - key: discountUserId
+ foreign-key: byUserId
+ - key: userId
+ foreign-key: byUserId
+ - table-name: discount_types
+ keys:
+ - key: discountId
+ foreign-key: discountId
+ - table-name: event_tasks
+ keys:
+ - key: discountUserId
+ foreign-key: completedBy
+ - key: userId
+ foreign-key: completedBy
+ - table-name: users
+ keys:
+ - key: discountUserId
+ foreign-key: userId
+ - key: userId
+ foreign-key: userId
+ - table-name: event_reservations
+ keys:
+ - key: discountUserId
+ foreign-key: userId
+ - key: userId
+ foreign-key: userId
+- table-name: event_reservation_links
+ join:
+ - table-name: check_details
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - table-name: checks
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - table-name: gift_card_history
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - table-name: payments
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - table-name: payments_voided
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - table-name: reservations
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: reservationId
+ foreign-key: onlineBookingReservationsId
+ - table-name: events
+ keys:
+ - key: reservationId
+ foreign-key: reservationId
+- table-name: payments
+ join:
+ - table-name: check_details
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: customerId
+ foreign-key: g_CustId
+ - key: customerId
+ foreign-key: p_CustId
+ - key: customerId
+ foreign-key: s_CustId
+ - key: userId
+ foreign-key: discountUserId
+ - key: voidUser
+ foreign-key: discountUserId
+ - table-name: checks
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: customerId
+ foreign-key: customerId
+ - key: userId
+ foreign-key: discountUserId
+ - key: voidUser
+ foreign-key: discountUserId
+ - key: userId
+ foreign-key: userId
+ - key: voidUser
+ foreign-key: userId
+ - table-name: event_reservation_links
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - table-name: gift_card_history
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: customerId
+ foreign-key: customerId
+ - key: userId
+ foreign-key: userId
+ - key: voidUser
+ foreign-key: userId
+ - table-name: payments_voided
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: customerId
+ foreign-key: customerId
+ - key: paymentId
+ foreign-key: paymentId
+ - key: userId
+ foreign-key: userId
+ - key: voidUser
+ foreign-key: userId
+ - key: userId
+ foreign-key: voidUser
+ - key: voidUser
+ foreign-key: voidUser
+ - table-name: reservations
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: customerId
+ foreign-key: customersId
+ - table-name: event_heat_details
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - table-name: heat_main_details
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - key: userId
+ foreign-key: userId
+ - key: voidUser
+ foreign-key: userId
+ - table-name: memberships
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - key: userId
+ foreign-key: byUserId
+ - key: voidUser
+ foreign-key: byUserId
+ - table-name: event_tasks
+ keys:
+ - key: userId
+ foreign-key: completedBy
+ - key: voidUser
+ foreign-key: completedBy
+ - table-name: users
+ keys:
+ - key: userId
+ foreign-key: userId
+ - key: voidUser
+ foreign-key: userId
+ - table-name: event_reservations
+ keys:
+ - key: userId
+ foreign-key: userId
+ - key: voidUser
+ foreign-key: userId
+- table-name: payments_voided
+ join:
+ - table-name: check_details
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: customerId
+ foreign-key: g_CustId
+ - key: customerId
+ foreign-key: p_CustId
+ - key: customerId
+ foreign-key: s_CustId
+ - key: userId
+ foreign-key: discountUserId
+ - key: voidUser
+ foreign-key: discountUserId
+ - table-name: checks
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: customerId
+ foreign-key: customerId
+ - key: userId
+ foreign-key: discountUserId
+ - key: voidUser
+ foreign-key: discountUserId
+ - key: userId
+ foreign-key: userId
+ - key: voidUser
+ foreign-key: userId
+ - table-name: event_reservation_links
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - table-name: gift_card_history
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: customerId
+ foreign-key: customerId
+ - key: userId
+ foreign-key: userId
+ - key: voidUser
+ foreign-key: userId
+ - table-name: payments
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: customerId
+ foreign-key: customerId
+ - key: paymentId
+ foreign-key: paymentId
+ - key: userId
+ foreign-key: userId
+ - key: voidUser
+ foreign-key: userId
+ - key: userId
+ foreign-key: voidUser
+ - key: voidUser
+ foreign-key: voidUser
+ - table-name: reservations
+ keys:
+ - key: checkId
+ foreign-key: checkId
+ - key: customerId
+ foreign-key: customersId
+ - table-name: event_heat_details
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - table-name: heat_main_details
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - key: userId
+ foreign-key: userId
+ - key: voidUser
+ foreign-key: userId
+ - table-name: memberships
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - key: userId
+ foreign-key: byUserId
+ - key: voidUser
+ foreign-key: byUserId
+ - table-name: event_tasks
+ keys:
+ - key: userId
+ foreign-key: completedBy
+ - key: voidUser
+ foreign-key: completedBy
+ - table-name: users
+ keys:
+ - key: userId
+ foreign-key: userId
+ - key: voidUser
+ foreign-key: userId
+ - table-name: event_reservations
+ keys:
+ - key: userId
+ foreign-key: userId
+ - key: voidUser
+ foreign-key: userId
+- table-name: event_heat_details
+ join:
+ - table-name: check_details
+ keys:
+ - key: customerId
+ foreign-key: g_CustId
+ - key: customerId
+ foreign-key: p_CustId
+ - key: customerId
+ foreign-key: s_CustId
+ - table-name: checks
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - table-name: gift_card_history
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - table-name: heat_main_details
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - table-name: memberships
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - table-name: payments
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - table-name: payments_voided
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - table-name: reservations
+ keys:
+ - key: customerId
+ foreign-key: customersId
+ - table-name: event_rounds
+ keys:
+ - key: eventId
+ foreign-key: eventId
+ - table-name: events
+ keys:
+ - key: eventId
+ foreign-key: eventId
+- table-name: heat_main_details
+ join:
+ - table-name: check_details
+ keys:
+ - key: customerId
+ foreign-key: g_CustId
+ - key: customerId
+ foreign-key: p_CustId
+ - key: customerId
+ foreign-key: s_CustId
+ - key: userId
+ foreign-key: discountUserId
+ - table-name: checks
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - key: userId
+ foreign-key: discountUserId
+ - key: userId
+ foreign-key: userId
+ - table-name: event_heat_details
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - table-name: gift_card_history
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - key: userId
+ foreign-key: userId
+ - table-name: memberships
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - key: userId
+ foreign-key: byUserId
+ - table-name: payments
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - key: userId
+ foreign-key: userId
+ - key: userId
+ foreign-key: voidUser
+ - table-name: payments_voided
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - key: userId
+ foreign-key: userId
+ - key: userId
+ foreign-key: voidUser
+ - table-name: reservations
+ keys:
+ - key: customerId
+ foreign-key: customersId
+ - table-name: booking
+ keys:
+ - key: heatId
+ foreign-key: heatId
+ - table-name: booking_availability
+ keys:
+ - key: heatId
+ foreign-key: heatId
+ - key: heatId
+ foreign-key: heatSpotsAvailableCombined
+ - table-name: heat_main
+ keys:
+ - key: heatId
+ foreign-key: heatId
+ - table-name: event_tasks
+ keys:
+ - key: userId
+ foreign-key: completedBy
+ - table-name: users
+ keys:
+ - key: userId
+ foreign-key: userId
+ - table-name: event_reservations
+ keys:
+ - key: userId
+ foreign-key: userId
+- table-name: memberships
+ join:
+ - table-name: check_details
+ keys:
+ - key: customerId
+ foreign-key: g_CustId
+ - key: customerId
+ foreign-key: p_CustId
+ - key: customerId
+ foreign-key: s_CustId
+ - key: byUserId
+ foreign-key: discountUserId
+ - table-name: checks
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - key: byUserId
+ foreign-key: discountUserId
+ - key: byUserId
+ foreign-key: userId
+ - table-name: event_heat_details
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - table-name: gift_card_history
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - key: byUserId
+ foreign-key: userId
+ - table-name: heat_main_details
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - key: byUserId
+ foreign-key: userId
+ - table-name: payments
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - key: byUserId
+ foreign-key: userId
+ - key: byUserId
+ foreign-key: voidUser
+ - table-name: payments_voided
+ keys:
+ - key: customerId
+ foreign-key: customerId
+ - key: byUserId
+ foreign-key: userId
+ - key: byUserId
+ foreign-key: voidUser
+ - table-name: reservations
+ keys:
+ - key: customerId
+ foreign-key: customersId
+ - table-name: membership_types
+ keys:
+ - key: membershipTypeId
+ foreign-key: membershipTypeId
+ - table-name: event_tasks
+ keys:
+ - key: byUserId
+ foreign-key: completedBy
+ - table-name: users
+ keys:
+ - key: byUserId
+ foreign-key: userId
+ - table-name: event_reservations
+ keys:
+ - key: byUserId
+ foreign-key: userId
+- table-name: discount_types
+ join:
+ - table-name: check_details
+ keys:
+ - key: discountId
+ foreign-key: discountId
+ - table-name: checks
+ keys:
+ - key: discountId
+ foreign-key: discountId
+ - table-name: product_classes
+ keys:
+ - key: productClassId
+ foreign-key: productClassId
+ - table-name: products
+ keys:
+ - key: productClassId
+ foreign-key: productClassId
+- table-name: event_heat_types
+ join:
+ - table-name: booking_availability
+ keys:
+ - key: heatTypeId
+ foreign-key: heatTypeId
+ - table-name: event_rounds
+ keys:
+ - key: heatTypeId
+ foreign-key: heatTypeId
+ - table-name: heat_main
+ keys:
+ - key: heatTypeId
+ foreign-key: type
+ - table-name: heat_types
+ keys:
+ - key: heatTypeId
+ foreign-key: heatTypesId
+- table-name: event_reservation_types
+ join:
+ - table-name: event_reservations
+ keys:
+ - key: eventReservationTypeId
+ foreign-key: typeId
+- table-name: event_reservations
+ join:
+ - table-name: event_reservation_types
+ keys:
+ - key: typeId
+ foreign-key: eventReservationTypeId
+ - table-name: event_tasks
+ keys:
+ - key: eventReservationId
+ foreign-key: eventReservationId
+ - key: mainId
+ foreign-key: eventReservationId
+ - key: userId
+ foreign-key: completedBy
+ - table-name: event_types
+ keys:
+ - key: eventTypeId
+ foreign-key: eventTypeId
+ - table-name: events
+ keys:
+ - key: eventTypeId
+ foreign-key: eventTypeId
+ - table-name: check_details
+ keys:
+ - key: userId
+ foreign-key: discountUserId
+ - table-name: checks
+ keys:
+ - key: userId
+ foreign-key: discountUserId
+ - key: userId
+ foreign-key: userId
+ - table-name: gift_card_history
+ keys:
+ - key: userId
+ foreign-key: userId
+ - table-name: users
+ keys:
+ - key: userId
+ foreign-key: userId
+ - table-name: heat_main_details
+ keys:
+ - key: userId
+ foreign-key: userId
+ - table-name: memberships
+ keys:
+ - key: userId
+ foreign-key: byUserId
+ - table-name: payments
+ keys:
+ - key: userId
+ foreign-key: userId
+ - key: userId
+ foreign-key: voidUser
+ - table-name: payments_voided
+ keys:
+ - key: userId
+ foreign-key: userId
+ - key: userId
+ foreign-key: voidUser
+- table-name: event_tasks
+ join:
+ - table-name: event_reservations
+ keys:
+ - key: eventReservationId
+ foreign-key: eventReservationId
+ - key: eventReservationId
+ foreign-key: mainId
+ - key: completedBy
+ foreign-key: userId
+ - table-name: check_details
+ keys:
+ - key: completedBy
+ foreign-key: discountUserId
+ - table-name: checks
+ keys:
+ - key: completedBy
+ foreign-key: discountUserId
+ - key: completedBy
+ foreign-key: userId
+ - table-name: gift_card_history
+ keys:
+ - key: completedBy
+ foreign-key: userId
+ - table-name: users
+ keys:
+ - key: completedBy
+ foreign-key: userId
+ - table-name: heat_main_details
+ keys:
+ - key: completedBy
+ foreign-key: userId
+ - table-name: memberships
+ keys:
+ - key: completedBy
+ foreign-key: byUserId
+ - table-name: payments
+ keys:
+ - key: completedBy
+ foreign-key: userId
+ - key: completedBy
+ foreign-key: voidUser
+ - table-name: payments_voided
+ keys:
+ - key: completedBy
+ foreign-key: userId
+ - key: completedBy
+ foreign-key: voidUser
+- table-name: event_rounds
+ join:
+ - table-name: heat_main
+ keys:
+ - key: eventRoundId
+ foreign-key: eventRound
+ - key: heatTypeId
+ foreign-key: type
+ - table-name: event_heat_details
+ keys:
+ - key: eventId
+ foreign-key: eventId
+ - table-name: events
+ keys:
+ - key: eventId
+ foreign-key: eventId
+ - table-name: booking_availability
+ keys:
+ - key: heatTypeId
+ foreign-key: heatTypeId
+ - table-name: event_heat_types
+ keys:
+ - key: heatTypeId
+ foreign-key: heatTypeId
+ - table-name: heat_types
+ keys:
+ - key: heatTypeId
+ foreign-key: heatTypesId
+- table-name: heat_main
+ join:
+ - table-name: event_rounds
+ keys:
+ - key: eventRound
+ foreign-key: eventRoundId
+ - key: type
+ foreign-key: heatTypeId
+ - table-name: booking
+ keys:
+ - key: heatId
+ foreign-key: heatId
+ - table-name: booking_availability
+ keys:
+ - key: heatId
+ foreign-key: heatId
+ - key: heatId
+ foreign-key: heatSpotsAvailableCombined
+ - key: type
+ foreign-key: heatTypeId
+ - table-name: heat_main_details
+ keys:
+ - key: heatId
+ foreign-key: heatId
+ - table-name: event_heat_types
+ keys:
+ - key: type
+ foreign-key: heatTypeId
+ - table-name: heat_types
+ keys:
+ - key: type
+ foreign-key: heatTypesId
+- table-name: event_types
+ join:
+ - table-name: event_reservations
+ keys:
+ - key: eventTypeId
+ foreign-key: eventTypeId
+ - table-name: events
+ keys:
+ - key: eventTypeId
+ foreign-key: eventTypeId
+ - table-name: booking
+ keys:
+ - key: onlineProductId
+ foreign-key: productsId
+ - table-name: booking_availability
+ keys:
+ - key: onlineProductId
+ foreign-key: products.productsId
+ - table-name: check_details
+ keys:
+ - key: onlineProductId
+ foreign-key: productId
+ - table-name: products
+ keys:
+ - key: onlineProductId
+ foreign-key: productId
+ - table-name: heat_types
+ keys:
+ - key: trackId
+ foreign-key: trackId
+- table-name: events
+ join:
+ - table-name: event_reservations
+ keys:
+ - key: eventTypeId
+ foreign-key: eventTypeId
+ - table-name: event_types
+ keys:
+ - key: eventTypeId
+ foreign-key: eventTypeId
+ - table-name: event_heat_details
+ keys:
+ - key: eventId
+ foreign-key: eventId
+ - table-name: event_rounds
+ keys:
+ - key: eventId
+ foreign-key: eventId
+ - table-name: event_reservation_links
+ keys:
+ - key: reservationId
+ foreign-key: reservationId
+ - table-name: reservations
+ keys:
+ - key: reservationId
+ foreign-key: onlineBookingReservationsId
+- table-name: heat_types
+ join:
+ - table-name: booking_availability
+ keys:
+ - key: heatTypesId
+ foreign-key: heatTypeId
+ - table-name: event_heat_types
+ keys:
+ - key: heatTypesId
+ foreign-key: heatTypeId
+ - table-name: event_rounds
+ keys:
+ - key: heatTypesId
+ foreign-key: heatTypeId
+ - table-name: heat_main
+ keys:
+ - key: heatTypesId
+ foreign-key: type
+ - table-name: event_types
+ keys:
+ - key: trackId
+ foreign-key: trackId
+- table-name: membership_types
+ join:
+ - table-name: memberships
+ keys:
+ - key: membershipTypeId
+ foreign-key: membershipTypeId
+- table-name: product_classes
+ join:
+ - table-name: discount_types
+ keys:
+ - key: productClassId
+ foreign-key: productClassId
+ - table-name: products
+ keys:
+ - key: productClassId
+ foreign-key: productClassId
+- table-name: products
+ join:
+ - table-name: discount_types
+ keys:
+ - key: productClassId
+ foreign-key: productClassId
+ - table-name: product_classes
+ keys:
+ - key: productClassId
+ foreign-key: productClassId
+ - table-name: booking
+ keys:
+ - key: productId
+ foreign-key: productsId
+ - table-name: booking_availability
+ keys:
+ - key: productId
+ foreign-key: products.productsId
+ - table-name: check_details
+ keys:
+ - key: productId
+ foreign-key: productId
+ - key: taxId
+ foreign-key: taxId
+ - table-name: event_types
+ keys:
+ - key: productId
+ foreign-key: onlineProductId
+ - table-name: taxes
+ keys:
+ - key: taxId
+ foreign-key: taxId
+- table-name: taxes
+ join:
+ - table-name: check_details
+ keys:
+ - key: taxId
+ foreign-key: taxId
+ - table-name: products
+ keys:
+ - key: taxId
+ foreign-key: taxId
+- table-name: users
+ join:
+ - table-name: check_details
+ keys:
+ - key: userId
+ foreign-key: discountUserId
+ - table-name: checks
+ keys:
+ - key: userId
+ foreign-key: discountUserId
+ - key: userId
+ foreign-key: userId
+ - table-name: event_tasks
+ keys:
+ - key: userId
+ foreign-key: completedBy
+ - table-name: gift_card_history
+ keys:
+ - key: userId
+ foreign-key: userId
+ - table-name: event_reservations
+ keys:
+ - key: userId
+ foreign-key: userId
+ - table-name: heat_main_details
+ keys:
+ - key: userId
+ foreign-key: userId
+ - table-name: memberships
+ keys:
+ - key: userId
+ foreign-key: byUserId
+ - table-name: payments
+ keys:
+ - key: userId
+ foreign-key: userId
+ - key: userId
+ foreign-key: voidUser
+ - table-name: payments_voided
+ keys:
+ - key: userId
+ foreign-key: userId
+ - key: userId
+ foreign-key: voidUser
diff --git a/_data/taps/schemas/clubspeed/v1/clubspeed-v1-tables.yml b/_data/taps/schemas/clubspeed/v1/clubspeed-v1-tables.yml
new file mode 100644
index 000000000..45479a66d
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/clubspeed-v1-tables.yml
@@ -0,0 +1,437 @@
+tap: clubspeed
+version: '1'
+tables:
+- name: booking
+ description: 'The `{{ table.name }}` table contains info about bookings. A booking
+ record exposes a `heat` to the online booking interface in {{ integration.display_name
+ }}.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/booking.json
+ table-details:
+ replication-method: Full Table
+ primary-key: onlineBookingsId
+- name: booking_availability
+ description: 'The `{{ table.name }}` table contains info about the current availability
+ for online bookings. These take into account both online and local booking reservations.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/booking_availability.json
+ table-details:
+ replication-method: Full Table
+ primary-key: heatId
+- name: checks
+ description: 'The `{{ table.name }}` table contains info about checks, or financial
+ invoices, that have been closed.
+
+
+ {% capture replication-note %}
+
+ **Note**: This table uses `{{ replication-keys | strip }}` as the [Replication
+ Key]({{ link.replication.rep-keys | prepend: site.baseurl }}). This means that
+ checks will not be selected for replication until the record has a `{{ replication-keys
+ | strip }}` value, which should occur when the check has a `status` of `closed`.
+
+ {% endcapture %}
+
+
+ {% include note.html type="single-line" content=replication-note %}
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/checks.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: checkId
+ replication-key: closedDate
+- name: check_details
+ description: 'The `{{ table.name }}` table contains info about line items and quantity
+ info attached to [`checks`](#checks).
+
+
+ {% capture replication-tip %}
+
+ **Note**: This table uses `{{ replication-keys | strip }}` as the [Replication
+ Key]({{ link.replication.rep-keys | prepend: site.baseurl }}). This means that
+ check details will be selected for replication only when they are initially created.
+ Any subsequent updates made to the check detail will not be detected, as the `{{
+ replication-keys | strip }}` value will not be updated. Refer to the [Key-based
+ Incremental Replication documentation]({{ link.replication.key-based-incremental
+ | prepend: site.baseurl }}) for more info and examples.
+
+ {% endcapture %}
+
+
+ {% include note.html type="single-line" content=replication-tip %}
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/check_details.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: checkDetailId
+ replication-key: createdDate
+- name: customers
+ description: 'The `{{ table.name }}` table contains info about the customers for
+ a location.
+
+
+ {% capture replication-note %}
+
+ **Note**: This table uses `{{ replication-keys | strip }}` as the [Replication
+ Key]({{ link.replication.rep-keys | prepend: site.baseurl }}). This means updated
+ customer data will only be selected for replication when the `{{ replication-keys
+ | strip }}` value for the customer''s record is updated.
+
+ {% endcapture %}
+
+
+ {% include note.html type="single-line" content=replication-note %}
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/customers.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: customerId
+ replication-key: lastVisited
+- name: discount_types
+ description: 'The `{{ table.name }}` table contains info about discount types.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/discount_types.json
+ table-details:
+ replication-method: Full Table
+ primary-key: discountId
+- name: events
+ description: 'The `{{ table.name }}` table contains info about events.
+
+
+ {% capture replication-note %}
+
+ **Note**: This table uses `{{ replication-keys | strip }}` as the [Replication
+ Key]({{ link.replication.rep-keys | prepend: site.baseurl }}). This means that
+ unless an event''s `{{ replication-keys | strip }}` value is updated, changes
+ to event records will not be selected for replication.
+
+ {% endcapture %}
+
+
+ {% include note.html type="single-line" content=replication-note %}
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/events.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: eventId
+ replication-key: eventScheduledTime
+- name: event_heat_details
+ description: 'The `{{ table.name }}` table contains info about [`customers`](#customers)
+ who have been placed in a queue for a specific [`event`](#events).
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/event_heat_details.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - customerId
+ - eventId
+ replication-key: added
+- name: event_heat_types
+ description: 'The `{{ table.name }}` table contains info about event type classifications,
+ which are used to look up [`event_rounds`](#event_rounds) when creating [`events`](#events).
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/event_heat_types.json
+ table-details:
+ replication-method: Full Table
+ primary-key: eventHeatTypeId
+- name: event_reservations
+ description: 'The `{{ table.name }}` table contains info about event reservations,
+ which are linked to [`events`](#events).
+
+
+ {% capture replication-note %}
+
+ **Note**: This table uses `{{ replication-keys | strip }}` as the [Replication
+ Key]({{ link.replication.rep-keys | prepend: site.baseurl }}). This means that
+ unless an event reservation''s `startTime` is updated, changes to event reservation
+ records will not be selected for replication.
+
+ {% endcapture %}
+
+
+ {% include note.html type="single-line" content=replication-note %}
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/event_reservations.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: eventReservationId
+ replication-key: startTime
+- name: event_reservation_links
+ description: 'The `{{ table.name }}` table contains lists of [`check`](#checks)
+ and [`reservation`](#reservations) IDs, or checks that are linked to event reservations.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/event_reservation_links.json
+ table-details:
+ replication-method: Full Table
+ primary-key: eventReservationLinkId
+- name: event_reservation_types
+ description: 'The `{{ table.name }}` table contains info about the descriptions
+ for event reservation types.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/event_reservation_types.json
+ table-details:
+ replication-method: Full Table
+ primary-key: eventReservationTypeId
+- name: event_rounds
+ description: 'The `{{ table.name }}` table contains info about event rounds. This
+ table acts as a link between [`events`](#events) and their corresponding rounds
+ in the [`heat_main`](#heat_main).
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/event_rounds.json
+ table-details:
+ replication-method: Full Table
+ primary-key: eventRoundId
+- name: event_statuses
+ description: 'The `{{ table.name }}` table contains info about event statuses, which
+ are statuses assigned to [`event_reservations`](#event_reservations).
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/event_statuses.json
+ table-details:
+ replication-method: Full Table
+ primary-key: eventStatusId
+- name: event_tasks
+ description: 'The `{{ table.name }}` table contains info about the tasks to be completed
+ for a given [`event_reservation`](#event_reservations).
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/event_tasks.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: eventTaskId
+ replication-key: completedAt
+- name: event_task_types
+ description: 'The `{{ table.name }}` table contains info about event task types,
+ which are [`event_tasks`](#event_tasks) to be tracked for completion.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/event_task_types.json
+ table-details:
+ replication-method: Full Table
+ primary-key: eventTaskId
+- name: event_types
+ description: 'The `{{ table.name }}` table contains info about event types.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/event_types.json
+ table-details:
+ replication-method: Full Table
+ primary-key: eventTypeId
+- name: gift_card_history
+ description: 'The `{{ table.name }}` table acts as a transactional log for keeping
+ track of each change that occurs with gift cards.
+
+
+ {% capture replication-note %}
+
+ **Note**: In {{ integration.display_name }}, each gift card is registered as a
+ [`customer`](#customers). This means that each gift card identifier should be
+ considered a `customerId` in this table.
+
+ {% endcapture %}
+
+
+ {% include note.html type="single-line" content=replication-note %}
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/gift_card_history.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: giftCardHistoryId
+ replication-key: transactionDate
+- name: heat_main
+ description: 'The `{{ table.name }}` table contains info about finished heat mains,
+ which are instances of races on the standard venue calendar.
+
+
+ {% capture replication-note %}
+
+ **Note**: This table uses `{{ replication-keys | strip }}` as the [Replication
+ Key]({{ link.replication.rep-keys | prepend: site.baseurl }}). This means that
+ only finished heat mains will be selected for replication.
+
+ {% endcapture %}
+
+
+ {% include note.html type="single-line" content=replication-note %}
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/heat_main.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: heatId
+ replication-key: finish
+- name: heat_main_details
+ description: 'The `{{ table.name }}` table contains info about customers that were
+ entered into finished heats.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/heat_main_details.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - customerId
+ - heatId
+- name: heat_types
+ description: 'The `{{ table.name }}` table contains info about heat types.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/heat_types.json
+ table-details:
+ replication-method: Full Table
+ primary-key: heatTypesId
+- name: memberships
+ description: 'The `{{ table.name }}` table contains info about memberships, which
+ is a pairing of a [`customer`](#customers) and [`membership_type`](#membership_types).
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/memberships.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - customerId
+ - membershipTypeId
+ replication-key: changed
+- name: membership_types
+ description: 'The `{{ table.name }}` table contains info about memberships.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/membership_types.json
+ table-details:
+ replication-method: Full Table
+ primary-key: membershipTypeId
+- name: payments
+ description: 'The `{{ table.name }}` table contains info about collected payments.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/payments.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: paymentId
+ replication-key: payDate
+- name: payments_voided
+ description: 'The `{{ table.name }}` table contains info about voided [`payments`](#payments).
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/payments_voided.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: paymentId
+ replication-key: voidDate
+- name: products
+ description: 'The `{{ table.name }}` table contains info about products.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/products.json
+ table-details:
+ replication-method: Full Table
+ primary-key: productId
+- name: product_classes
+ description: 'The `{{ table.name }}` table contains info about classes applied to
+ [`products`](#products). Product classes determine how products are aggregated
+ in {{ integration.display_name }}''s reporting system.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/product_classes.json
+ table-details:
+ replication-method: Full Table
+ primary-key: productClassId
+- name: reservations
+ description: 'The `{{ table.name }}` table contains info about reservations. Reservations
+ are indications that a [`customer`](#customers) is looking to purchase a spot
+ in a [`booking`](#booking_availability) or has already purchased a spot.
+
+
+ {% capture replication-note %}
+
+ **Note**: This table uses `{{ replication-keys | strip }}` as the [Replication
+ Key]({{ link.replication.rep-keys | prepend: site.baseurl }}). This means that
+ reservations will be selected for replication only when they are initially created.
+ Any subsequent updates made to the reservation will not be detected, as the `{{
+ replication-keys | strip }}` value will not be updated. Refer to the [Key-based
+ Incremental Replication documentation]({{ link.replication.key-based-incremental
+ | prepend: site.baseurl }}) for more info and examples.
+
+ {% endcapture %}
+
+
+ {% include note.html type="single-line" content=replication-note %}
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/reservations.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: onlineBookingReservationsId
+ replication-key: createdAt
+- name: sources
+ description: 'The `{{ table.name }}` table contains info about how customers find
+ and register at venues.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/sources.json
+ table-details:
+ replication-method: Full Table
+ primary-key: sourceId
+- name: taxes
+ description: 'The `{{ table.name }}` table contains info about tax calculations,
+ which are typically applied to [`products`](#products).
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/taxes.json
+ table-details:
+ replication-method: Full Table
+ primary-key: taxId
+- name: users
+ description: 'The `{{ table.name }}` table contains info about employees and system
+ users. **Note**: While some employees may also be [`customers`](#customers), this
+ table does not contain customer information.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-clubspeed/blob/master/tap_clubspeed/schemas/users.json
+ table-details:
+ replication-method: Full Table
+ primary-key: userId
diff --git a/_data/taps/schemas/clubspeed/v1/json/booking.json b/_data/taps/schemas/clubspeed/v1/json/booking.json
new file mode 100644
index 000000000..c9b61e7e3
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/booking.json
@@ -0,0 +1,38 @@
+{
+ "properties": {
+ "heatId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "isPublic": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "onlineBookingsId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "productsId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantityTotal": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/booking_availability.json b/_data/taps/schemas/clubspeed/v1/json/booking_availability.json
new file mode 100644
index 000000000..ce81fa1bb
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/booking_availability.json
@@ -0,0 +1,112 @@
+{
+ "properties": {
+ "heatDescription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "heatId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "heatSpotsAvailableCombined": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "heatSpotsAvailableOnline": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "heatSpotsTotalActual": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "heatStartsAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "heatTypeId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "isPublic": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "products": {
+ "items": {
+ "properties": {
+ "onlineBookingsId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price1": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "productDescription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "productSpotsAvailableOnline": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "productSpotsTotal": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "productType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "productsId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/check_details.json b/_data/taps/schemas/clubspeed/v1/json/check_details.json
new file mode 100644
index 000000000..14221d010
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/check_details.json
@@ -0,0 +1,188 @@
+{
+ "properties": {
+ "calculateType": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "checkDetailId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "checkId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "discountApplied": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "discountDesc": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discountId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discountNotes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discountUserId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "g_CustId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "g_Points": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "gst": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "m_DaysAdded": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "p_CustId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "p_Points": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "productId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "productName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "qty": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "r_Points": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "s_CustId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "s_NoOfLapsOrSeconds": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "s_SaleBy": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "s_Vol": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "taxId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "taxPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unitPrice": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unitPrice2": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "voidNotes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/checks.json b/_data/taps/schemas/clubspeed/v1/json/checks.json
new file mode 100644
index 000000000..3d7a13176
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/checks.json
@@ -0,0 +1,122 @@
+{
+ "properties": {
+ "broker": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "checkId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "closedDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customerId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "discountId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discountNotes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discountUserId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fee": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "gratuity": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "invoiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "isTaxExempt": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "openedDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "userId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/customers.json b/_data/taps/schemas/clubspeed/v1/json/customers.json
new file mode 100644
index 000000000..5a86619ef
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/customers.json
@@ -0,0 +1,314 @@
+{
+ "properties": {
+ "Address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Custom1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Custom2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Custom3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Custom4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LicenseNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "State": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accountCreated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "birthdate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cardId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creditLimit": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "creditOnHold": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "customerId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "donotemail": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "firstname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gender": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "generalNotes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "howdidyouhearaboutus": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ignoreDOB": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "isEmployee": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "isGiftCard": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "lastVisited": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "lastname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "memberShipTextLong": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "membershipStatus": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "membershipText": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mobilephone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "originalId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "phoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phoneNumber2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "priceLevel": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "privacy1": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "proskill": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "racername": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status1": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status2": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status3": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status4": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "totalRaces": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "totalVisits": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "waiver": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "waiver2": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "webUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/discount_types.json b/_data/taps/schemas/clubspeed/v1/json/discount_types.json
new file mode 100644
index 000000000..de9600811
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/discount_types.json
@@ -0,0 +1,56 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "calculateType": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discountId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "needApproved": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "productClassId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/event_heat_details.json b/_data/taps/schemas/clubspeed/v1/json/event_heat_details.json
new file mode 100644
index 000000000..4fd1d5935
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/event_heat_details.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "added": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customerId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "eventId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "proskill": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "roundLoseNum": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "totalRaces": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/event_heat_types.json b/_data/taps/schemas/clubspeed/v1/json/event_heat_types.json
new file mode 100644
index 000000000..2ce073afc
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/event_heat_types.json
@@ -0,0 +1,56 @@
+{
+ "properties": {
+ "cadetsPerHeat": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eventHeatTypeId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "eventTypeId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "heatTypeId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "heatsPerRacer": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "racersPerHeat": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "roundNumber": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/event_reservation_links.json b/_data/taps/schemas/clubspeed/v1/json/event_reservation_links.json
new file mode 100644
index 000000000..3cf003ac4
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/event_reservation_links.json
@@ -0,0 +1,26 @@
+{
+ "properties": {
+ "checkId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "eventReservationLinkId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reservationId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/event_reservation_types.json b/_data/taps/schemas/clubspeed/v1/json/event_reservation_types.json
new file mode 100644
index 000000000..2b8c07a3a
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/event_reservation_types.json
@@ -0,0 +1,20 @@
+{
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eventReservationTypeId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/event_reservations.json b/_data/taps/schemas/clubspeed/v1/json/event_reservations.json
new file mode 100644
index 000000000..7d42763ff
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/event_reservations.json
@@ -0,0 +1,122 @@
+{
+ "properties": {
+ "allowOnlineReservation": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "endTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "eventReservationId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "eventTypeId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "externalSystemId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "isEventClosure": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mainId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "minNoOfAdultsPerBooking": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "noOfRacers": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ptsPerReservation": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "repId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "startTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "typeId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "userId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/event_rounds.json b/_data/taps/schemas/clubspeed/v1/json/event_rounds.json
new file mode 100644
index 000000000..2d990477a
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/event_rounds.json
@@ -0,0 +1,56 @@
+{
+ "properties": {
+ "cadetsPerHeat": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "eventId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "eventRoundId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "heatDescription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "heatTypeId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "heatsPerRacer": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "racersPerHeat": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "roundNumber": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/event_statuses.json b/_data/taps/schemas/clubspeed/v1/json/event_statuses.json
new file mode 100644
index 000000000..288f0c18e
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/event_statuses.json
@@ -0,0 +1,32 @@
+{
+ "properties": {
+ "colorId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "eventStatusId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "seq": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/event_task_types.json b/_data/taps/schemas/clubspeed/v1/json/event_task_types.json
new file mode 100644
index 000000000..283b411cd
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/event_task_types.json
@@ -0,0 +1,38 @@
+{
+ "properties": {
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eventTaskId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "seq": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/event_tasks.json b/_data/taps/schemas/clubspeed/v1/json/event_tasks.json
new file mode 100644
index 000000000..a35054760
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/event_tasks.json
@@ -0,0 +1,38 @@
+{
+ "properties": {
+ "completedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "completedBy": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "eventReservationId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "eventTaskId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "eventTaskTypeId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/event_types.json b/_data/taps/schemas/clubspeed/v1/json/event_types.json
new file mode 100644
index 000000000..746d11870
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/event_types.json
@@ -0,0 +1,74 @@
+{
+ "properties": {
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "displayAtRegistration": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "eventTypeId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "eventTypeName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eventTypeTheme": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "memberOnly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "onlineProductId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ptsPerReservation": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "trackId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/events.json b/_data/taps/schemas/clubspeed/v1/json/events.json
new file mode 100644
index 000000000..649fceeef
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/events.json
@@ -0,0 +1,92 @@
+{
+ "properties": {
+ "createdHeatSpots": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "createdHeatTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "eventDesc": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eventDuration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "eventId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "eventNotes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eventScheduledTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "eventTheme": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "eventTypeId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "eventTypeName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "memberOnly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "reservationId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "totalRacers": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "trackNo": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/gift_card_history.json b/_data/taps/schemas/clubspeed/v1/json/gift_card_history.json
new file mode 100644
index 000000000..7e84d3126
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/gift_card_history.json
@@ -0,0 +1,68 @@
+{
+ "properties": {
+ "checkDetailId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "checkId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "customerId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "giftCardHistoryId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ipAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "points": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transactionDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "userId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/heat_main.json b/_data/taps/schemas/clubspeed/v1/json/heat_main.json
new file mode 100644
index 000000000..df194be14
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/heat_main.json
@@ -0,0 +1,122 @@
+{
+ "properties": {
+ "beginning": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "eventRound": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "finish": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "heatColor": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "heatId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lapsOrMinutes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "memberOnly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "numberOfReservation": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pointsNeeded": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "raceBy": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "racersPerHeat": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "scheduleDuration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "scheduledTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "speedLevel": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "track": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "winBy": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/heat_main_details.json b/_data/taps/schemas/clubspeed/v1/json/heat_main_details.json
new file mode 100644
index 000000000..248dbac15
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/heat_main_details.json
@@ -0,0 +1,98 @@
+{
+ "properties": {
+ "autoNo": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "customerId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "finishPosition": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "firstTime": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "groupFinishPosition": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "groupId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "heatId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lineUpPosition": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pointHistoryId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "positionEditedDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "proskill": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "proskillDiff": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "scores": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "timeAdded": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "userId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/heat_types.json b/_data/taps/schemas/clubspeed/v1/json/heat_types.json
new file mode 100644
index 000000000..d7627cb96
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/heat_types.json
@@ -0,0 +1,110 @@
+{
+ "properties": {
+ "cannotBelow": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cannotExceed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cost": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "heatTypesId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "isEventHeatOnly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "isPracticeHeat": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "lapsOrMinutes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "memberOnly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "raceBy": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "racersPerHeat": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "scheduleDuration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "speedLevel": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "trackId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "winBy": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/membership_types.json b/_data/taps/schemas/clubspeed/v1/json/membership_types.json
new file mode 100644
index 000000000..982657447
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/membership_types.json
@@ -0,0 +1,50 @@
+{
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "expirationType": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "expires": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "membershipTypeId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "priceLevel": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "seq": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/memberships.json b/_data/taps/schemas/clubspeed/v1/json/memberships.json
new file mode 100644
index 000000000..f325fa3cb
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/memberships.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "byUserId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "changed": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customerId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "expiration": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "membershipTypeId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/payments.json b/_data/taps/schemas/clubspeed/v1/json/payments.json
new file mode 100644
index 000000000..5a81d66ef
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/payments.json
@@ -0,0 +1,110 @@
+{
+ "properties": {
+ "cardType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "checkId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "customerId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "extCardType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "payDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "payStatus": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "payTax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "payTerminal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payType": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "paymentId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "transaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "userId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "voidDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "voidNotes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voidTerminal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voidUser": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/payments_voided.json b/_data/taps/schemas/clubspeed/v1/json/payments_voided.json
new file mode 100644
index 000000000..5a81d66ef
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/payments_voided.json
@@ -0,0 +1,110 @@
+{
+ "properties": {
+ "cardType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "checkId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "customerId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "extCardType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "payDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "payStatus": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "payTax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "payTerminal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payType": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "paymentId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "transaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "userId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "voidDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "voidNotes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voidTerminal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voidUser": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/product_classes.json b/_data/taps/schemas/clubspeed/v1/json/product_classes.json
new file mode 100644
index 000000000..cd707dacb
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/product_classes.json
@@ -0,0 +1,32 @@
+{
+ "properties": {
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exportName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "productClassId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/products.json b/_data/taps/schemas/clubspeed/v1/json/products.json
new file mode 100644
index 000000000..cb42cf74f
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/products.json
@@ -0,0 +1,86 @@
+{
+ "properties": {
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "g_Points": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "p_Points": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "price1": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "price2": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "priceCadet": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "productClassId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "productId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "productType": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "r_Points": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "taxId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/reservations.json b/_data/taps/schemas/clubspeed/v1/json/reservations.json
new file mode 100644
index 000000000..5960d6e2c
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/reservations.json
@@ -0,0 +1,62 @@
+{
+ "properties": {
+ "checkId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customersId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "expiresAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "onlineBookingReservationStatusId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "onlineBookingReservationsId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "onlineBookingsId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sessionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/sources.json b/_data/taps/schemas/clubspeed/v1/json/sources.json
new file mode 100644
index 000000000..ffdf8144b
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/sources.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "locationId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "seq": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sourceId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/taxes.json b/_data/taps/schemas/clubspeed/v1/json/taxes.json
new file mode 100644
index 000000000..91adfd267
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/taxes.json
@@ -0,0 +1,38 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gst": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "taxId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/clubspeed/v1/json/users.json b/_data/taps/schemas/clubspeed/v1/json/users.json
new file mode 100644
index 000000000..8c6618847
--- /dev/null
+++ b/_data/taps/schemas/clubspeed/v1/json/users.json
@@ -0,0 +1,74 @@
+{
+ "properties": {
+ "cardId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "empStartDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "firstname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "isSystemUser": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "lastname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "userId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/codat/v1/codat-v1-foreign-keys.yml b/_data/taps/schemas/codat/v1/codat-v1-foreign-keys.yml
new file mode 100644
index 000000000..b7e6dcb52
--- /dev/null
+++ b/_data/taps/schemas/codat/v1/codat-v1-foreign-keys.yml
@@ -0,0 +1,2054 @@
+tap: codat
+version: '1'
+keys:
+ accounts_name:
+ - table: accounts
+ keys:
+ - name
+ - table: bank_accounts
+ keys:
+ - accountName
+ accounts_accountId:
+ - table: accounts
+ keys:
+ - id
+ - table: balance_sheets
+ keys:
+ - reports.assets.accountId
+ - reports.equity.accountId
+ - reports.liabilities.accountId
+ - table: profit_and_loss
+ keys:
+ - reports.costOfSales.accountId
+ - reports.expenses.accountId
+ - reports.income.accountId
+ - reports.otherExpenses.accountId
+ - reports.otherIncome.accountId
+ - table: bills
+ keys:
+ - lineItems.accountRef.id
+ - table: items
+ keys:
+ - billItem.accountRef.id
+ - invoiceItem.accountRef.id
+ - table: journal_entries
+ keys:
+ - journalLines.accountRef.id
+ accounts_accountName:
+ - table: accounts
+ keys:
+ - name
+ - table: bank_accounts
+ keys:
+ - accountName
+ - table: bank_statement_lines
+ keys:
+ - accountName
+ bank_accounts_id:
+ - table: bank_accounts
+ keys:
+ - id
+ - table: bank_account_transactions
+ keys:
+ - bankAccountId
+ bank_statements_:
+ - table: bank_statements
+ keys:
+ - id
+ bills_billId:
+ - table: bills
+ keys:
+ - id
+ bill_payments_id:
+ - table: bill_payments
+ keys:
+ - id
+ companies_companyId:
+ - table: companies
+ keys:
+ - id
+ - table: balance_sheets
+ keys:
+ - companyId
+ - table: bank_statements
+ keys:
+ - companyId
+ - table: bank_statement_lines
+ keys:
+ - companyId
+ - table: bill_payments
+ keys:
+ - supplierRef.companyId
+ - table: bills
+ keys:
+ - companyId
+ - table: company_info
+ keys:
+ - companyId
+ - table: customers
+ keys:
+ - companyId
+ - table: invoices
+ keys:
+ - companyId
+ - table: payments
+ keys:
+ - companyId
+ - table: profit_and_loss
+ keys:
+ - companyId
+ - table: suppliers
+ keys:
+ - companyId
+ - table: connections
+ keys:
+ - companyId
+ - table: events
+ keys:
+ - companyId
+ - table: items
+ keys:
+ - companyId
+ - table: journal_entries
+ keys:
+ - companyId
+ - table: tax_rates
+ keys:
+ - companyId
+ - table: bill_payments
+ keys:
+ - companyId
+ - table: bank_account_transactions
+ keys:
+ - companyId
+ - table: bank_accounts
+ keys:
+ - companyId
+ connections_connectionId:
+ - table: bank_accounts
+ keys:
+ - connectionId
+ - table: connections
+ keys:
+ - id
+ credit_notes_creditNoteId:
+ - table: credit_notes
+ keys:
+ - id
+ - table: payments
+ keys:
+ - lines.links.id
+ customers_customerId:
+ - table: credit_notes
+ keys:
+ - customerRef.id
+ - customerRef.id
+ - table: customers
+ keys:
+ - id
+ - table: payments
+ keys:
+ - customerRef.id
+ invoices_invoiceId:
+ - table: invoices
+ keys:
+ - id
+ - table: payments
+ keys:
+ - lines.links.id
+ items_id:
+ - table: bills
+ keys:
+ - lineItems.itemRef.id
+ - table: items
+ keys:
+ - id
+ journal_entries_id:
+ - table: journal_entries
+ keys:
+ - id
+ payments_paymentId:
+ - table: payments
+ keys:
+ - id
+ - lines.links.id
+ suppliers_supplierId:
+ - table: bills
+ keys:
+ - supplierRef
+ - table: suppliers
+ keys:
+ - id
+ events_eventTimeUtc:
+ - table: events
+ keys:
+ - eventTimeUtc
+ suppliers_supplierRef:
+ - table: bill_payments
+ keys:
+ - supplierRef.id
+ - table: bills
+ keys:
+ - supplierRef
+ tax_rates_id:
+ - table: bills
+ keys:
+ - lineItems.taxRateRef.id
+ - table: items
+ keys:
+ - billItem.taxRateRef.id
+ - invoiceItem.taxRateRef.id
+ - table: tax_rates
+ keys:
+ - id
+ bank_account_transactions_transactionIndex:
+ - table: bank_account_transactions
+ keys:
+ - _transactionIndex
+tables:
+- table-name: accounts
+ join:
+ - table-name: bank_accounts
+ keys:
+ - key: name
+ foreign-key: accountName
+ - table-name: balance_sheets
+ keys:
+ - key: id
+ foreign-key: reports.assets.accountId
+ - key: id
+ foreign-key: reports.equity.accountId
+ - key: id
+ foreign-key: reports.liabilities.accountId
+ - table-name: profit_and_loss
+ keys:
+ - key: id
+ foreign-key: reports.costOfSales.accountId
+ - key: id
+ foreign-key: reports.expenses.accountId
+ - key: id
+ foreign-key: reports.income.accountId
+ - key: id
+ foreign-key: reports.otherExpenses.accountId
+ - key: id
+ foreign-key: reports.otherIncome.accountId
+ - table-name: bills
+ keys:
+ - key: id
+ foreign-key: lineItems.accountRef.id
+ - table-name: items
+ keys:
+ - key: id
+ foreign-key: billItem.accountRef.id
+ - key: id
+ foreign-key: invoiceItem.accountRef.id
+ - table-name: journal_entries
+ keys:
+ - key: id
+ foreign-key: journalLines.accountRef.id
+ - table-name: bank_statement_lines
+ keys:
+ - key: name
+ foreign-key: accountName
+- table-name: bank_accounts
+ join:
+ - table-name: accounts
+ keys:
+ - key: accountName
+ foreign-key: name
+ - table-name: bank_statement_lines
+ keys:
+ - key: accountName
+ foreign-key: accountName
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_account_transactions
+ keys:
+ - key: id
+ foreign-key: bankAccountId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: companies
+ keys:
+ - key: companyId
+ foreign-key: id
+ - table-name: balance_sheets
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_statements
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bill_payments
+ keys:
+ - key: companyId
+ foreign-key: supplierRef.companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bills
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: company_info
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: customers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: invoices
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: payments
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: profit_and_loss
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: suppliers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: connections
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - key: connectionId
+ foreign-key: id
+ - table-name: events
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: items
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: journal_entries
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: tax_rates
+ keys:
+ - key: companyId
+ foreign-key: companyId
+- table-name: balance_sheets
+ join:
+ - table-name: accounts
+ keys:
+ - key: reports.assets.accountId
+ foreign-key: id
+ - key: reports.equity.accountId
+ foreign-key: id
+ - key: reports.liabilities.accountId
+ foreign-key: id
+ - table-name: profit_and_loss
+ keys:
+ - key: reports.assets.accountId
+ foreign-key: reports.costOfSales.accountId
+ - key: reports.equity.accountId
+ foreign-key: reports.costOfSales.accountId
+ - key: reports.liabilities.accountId
+ foreign-key: reports.costOfSales.accountId
+ - key: reports.assets.accountId
+ foreign-key: reports.expenses.accountId
+ - key: reports.equity.accountId
+ foreign-key: reports.expenses.accountId
+ - key: reports.liabilities.accountId
+ foreign-key: reports.expenses.accountId
+ - key: reports.assets.accountId
+ foreign-key: reports.income.accountId
+ - key: reports.equity.accountId
+ foreign-key: reports.income.accountId
+ - key: reports.liabilities.accountId
+ foreign-key: reports.income.accountId
+ - key: reports.assets.accountId
+ foreign-key: reports.otherExpenses.accountId
+ - key: reports.equity.accountId
+ foreign-key: reports.otherExpenses.accountId
+ - key: reports.liabilities.accountId
+ foreign-key: reports.otherExpenses.accountId
+ - key: reports.assets.accountId
+ foreign-key: reports.otherIncome.accountId
+ - key: reports.equity.accountId
+ foreign-key: reports.otherIncome.accountId
+ - key: reports.liabilities.accountId
+ foreign-key: reports.otherIncome.accountId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bills
+ keys:
+ - key: reports.assets.accountId
+ foreign-key: lineItems.accountRef.id
+ - key: reports.equity.accountId
+ foreign-key: lineItems.accountRef.id
+ - key: reports.liabilities.accountId
+ foreign-key: lineItems.accountRef.id
+ - key: companyId
+ foreign-key: companyId
+ - table-name: items
+ keys:
+ - key: reports.assets.accountId
+ foreign-key: billItem.accountRef.id
+ - key: reports.equity.accountId
+ foreign-key: billItem.accountRef.id
+ - key: reports.liabilities.accountId
+ foreign-key: billItem.accountRef.id
+ - key: reports.assets.accountId
+ foreign-key: invoiceItem.accountRef.id
+ - key: reports.equity.accountId
+ foreign-key: invoiceItem.accountRef.id
+ - key: reports.liabilities.accountId
+ foreign-key: invoiceItem.accountRef.id
+ - key: companyId
+ foreign-key: companyId
+ - table-name: journal_entries
+ keys:
+ - key: reports.assets.accountId
+ foreign-key: journalLines.accountRef.id
+ - key: reports.equity.accountId
+ foreign-key: journalLines.accountRef.id
+ - key: reports.liabilities.accountId
+ foreign-key: journalLines.accountRef.id
+ - key: companyId
+ foreign-key: companyId
+ - table-name: companies
+ keys:
+ - key: companyId
+ foreign-key: id
+ - table-name: bank_statements
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_statement_lines
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bill_payments
+ keys:
+ - key: companyId
+ foreign-key: supplierRef.companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: company_info
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: customers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: invoices
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: payments
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: suppliers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: connections
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: events
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: tax_rates
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_account_transactions
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_accounts
+ keys:
+ - key: companyId
+ foreign-key: companyId
+- table-name: profit_and_loss
+ join:
+ - table-name: accounts
+ keys:
+ - key: reports.costOfSales.accountId
+ foreign-key: id
+ - key: reports.expenses.accountId
+ foreign-key: id
+ - key: reports.income.accountId
+ foreign-key: id
+ - key: reports.otherExpenses.accountId
+ foreign-key: id
+ - key: reports.otherIncome.accountId
+ foreign-key: id
+ - table-name: balance_sheets
+ keys:
+ - key: reports.costOfSales.accountId
+ foreign-key: reports.assets.accountId
+ - key: reports.expenses.accountId
+ foreign-key: reports.assets.accountId
+ - key: reports.income.accountId
+ foreign-key: reports.assets.accountId
+ - key: reports.otherExpenses.accountId
+ foreign-key: reports.assets.accountId
+ - key: reports.otherIncome.accountId
+ foreign-key: reports.assets.accountId
+ - key: reports.costOfSales.accountId
+ foreign-key: reports.equity.accountId
+ - key: reports.expenses.accountId
+ foreign-key: reports.equity.accountId
+ - key: reports.income.accountId
+ foreign-key: reports.equity.accountId
+ - key: reports.otherExpenses.accountId
+ foreign-key: reports.equity.accountId
+ - key: reports.otherIncome.accountId
+ foreign-key: reports.equity.accountId
+ - key: reports.costOfSales.accountId
+ foreign-key: reports.liabilities.accountId
+ - key: reports.expenses.accountId
+ foreign-key: reports.liabilities.accountId
+ - key: reports.income.accountId
+ foreign-key: reports.liabilities.accountId
+ - key: reports.otherExpenses.accountId
+ foreign-key: reports.liabilities.accountId
+ - key: reports.otherIncome.accountId
+ foreign-key: reports.liabilities.accountId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bills
+ keys:
+ - key: reports.costOfSales.accountId
+ foreign-key: lineItems.accountRef.id
+ - key: reports.expenses.accountId
+ foreign-key: lineItems.accountRef.id
+ - key: reports.income.accountId
+ foreign-key: lineItems.accountRef.id
+ - key: reports.otherExpenses.accountId
+ foreign-key: lineItems.accountRef.id
+ - key: reports.otherIncome.accountId
+ foreign-key: lineItems.accountRef.id
+ - key: companyId
+ foreign-key: companyId
+ - table-name: items
+ keys:
+ - key: reports.costOfSales.accountId
+ foreign-key: billItem.accountRef.id
+ - key: reports.expenses.accountId
+ foreign-key: billItem.accountRef.id
+ - key: reports.income.accountId
+ foreign-key: billItem.accountRef.id
+ - key: reports.otherExpenses.accountId
+ foreign-key: billItem.accountRef.id
+ - key: reports.otherIncome.accountId
+ foreign-key: billItem.accountRef.id
+ - key: reports.costOfSales.accountId
+ foreign-key: invoiceItem.accountRef.id
+ - key: reports.expenses.accountId
+ foreign-key: invoiceItem.accountRef.id
+ - key: reports.income.accountId
+ foreign-key: invoiceItem.accountRef.id
+ - key: reports.otherExpenses.accountId
+ foreign-key: invoiceItem.accountRef.id
+ - key: reports.otherIncome.accountId
+ foreign-key: invoiceItem.accountRef.id
+ - key: companyId
+ foreign-key: companyId
+ - table-name: journal_entries
+ keys:
+ - key: reports.costOfSales.accountId
+ foreign-key: journalLines.accountRef.id
+ - key: reports.expenses.accountId
+ foreign-key: journalLines.accountRef.id
+ - key: reports.income.accountId
+ foreign-key: journalLines.accountRef.id
+ - key: reports.otherExpenses.accountId
+ foreign-key: journalLines.accountRef.id
+ - key: reports.otherIncome.accountId
+ foreign-key: journalLines.accountRef.id
+ - key: companyId
+ foreign-key: companyId
+ - table-name: companies
+ keys:
+ - key: companyId
+ foreign-key: id
+ - table-name: bank_statements
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_statement_lines
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bill_payments
+ keys:
+ - key: companyId
+ foreign-key: supplierRef.companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: company_info
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: customers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: invoices
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: payments
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: suppliers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: connections
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: events
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: tax_rates
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_account_transactions
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_accounts
+ keys:
+ - key: companyId
+ foreign-key: companyId
+- table-name: bills
+ join:
+ - table-name: accounts
+ keys:
+ - key: lineItems.accountRef.id
+ foreign-key: id
+ - table-name: balance_sheets
+ keys:
+ - key: lineItems.accountRef.id
+ foreign-key: reports.assets.accountId
+ - key: lineItems.accountRef.id
+ foreign-key: reports.equity.accountId
+ - key: lineItems.accountRef.id
+ foreign-key: reports.liabilities.accountId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: profit_and_loss
+ keys:
+ - key: lineItems.accountRef.id
+ foreign-key: reports.costOfSales.accountId
+ - key: lineItems.accountRef.id
+ foreign-key: reports.expenses.accountId
+ - key: lineItems.accountRef.id
+ foreign-key: reports.income.accountId
+ - key: lineItems.accountRef.id
+ foreign-key: reports.otherExpenses.accountId
+ - key: lineItems.accountRef.id
+ foreign-key: reports.otherIncome.accountId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: items
+ keys:
+ - key: lineItems.accountRef.id
+ foreign-key: billItem.accountRef.id
+ - key: lineItems.accountRef.id
+ foreign-key: invoiceItem.accountRef.id
+ - key: companyId
+ foreign-key: companyId
+ - key: lineItems.itemRef.id
+ foreign-key: id
+ - key: lineItems.taxRateRef.id
+ foreign-key: billItem.taxRateRef.id
+ - key: lineItems.taxRateRef.id
+ foreign-key: invoiceItem.taxRateRef.id
+ - table-name: journal_entries
+ keys:
+ - key: lineItems.accountRef.id
+ foreign-key: journalLines.accountRef.id
+ - key: companyId
+ foreign-key: companyId
+ - table-name: companies
+ keys:
+ - key: companyId
+ foreign-key: id
+ - table-name: bank_statements
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_statement_lines
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bill_payments
+ keys:
+ - key: companyId
+ foreign-key: supplierRef.companyId
+ - key: companyId
+ foreign-key: companyId
+ - key: supplierRef
+ foreign-key: supplierRef.id
+ - table-name: company_info
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: customers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: invoices
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: payments
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: suppliers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - key: supplierRef
+ foreign-key: id
+ - table-name: connections
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: events
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: tax_rates
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - key: lineItems.taxRateRef.id
+ foreign-key: id
+ - table-name: bank_account_transactions
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_accounts
+ keys:
+ - key: companyId
+ foreign-key: companyId
+- table-name: items
+ join:
+ - table-name: accounts
+ keys:
+ - key: billItem.accountRef.id
+ foreign-key: id
+ - key: invoiceItem.accountRef.id
+ foreign-key: id
+ - table-name: balance_sheets
+ keys:
+ - key: billItem.accountRef.id
+ foreign-key: reports.assets.accountId
+ - key: invoiceItem.accountRef.id
+ foreign-key: reports.assets.accountId
+ - key: billItem.accountRef.id
+ foreign-key: reports.equity.accountId
+ - key: invoiceItem.accountRef.id
+ foreign-key: reports.equity.accountId
+ - key: billItem.accountRef.id
+ foreign-key: reports.liabilities.accountId
+ - key: invoiceItem.accountRef.id
+ foreign-key: reports.liabilities.accountId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: profit_and_loss
+ keys:
+ - key: billItem.accountRef.id
+ foreign-key: reports.costOfSales.accountId
+ - key: invoiceItem.accountRef.id
+ foreign-key: reports.costOfSales.accountId
+ - key: billItem.accountRef.id
+ foreign-key: reports.expenses.accountId
+ - key: invoiceItem.accountRef.id
+ foreign-key: reports.expenses.accountId
+ - key: billItem.accountRef.id
+ foreign-key: reports.income.accountId
+ - key: invoiceItem.accountRef.id
+ foreign-key: reports.income.accountId
+ - key: billItem.accountRef.id
+ foreign-key: reports.otherExpenses.accountId
+ - key: invoiceItem.accountRef.id
+ foreign-key: reports.otherExpenses.accountId
+ - key: billItem.accountRef.id
+ foreign-key: reports.otherIncome.accountId
+ - key: invoiceItem.accountRef.id
+ foreign-key: reports.otherIncome.accountId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bills
+ keys:
+ - key: billItem.accountRef.id
+ foreign-key: lineItems.accountRef.id
+ - key: invoiceItem.accountRef.id
+ foreign-key: lineItems.accountRef.id
+ - key: companyId
+ foreign-key: companyId
+ - key: id
+ foreign-key: lineItems.itemRef.id
+ - key: billItem.taxRateRef.id
+ foreign-key: lineItems.taxRateRef.id
+ - key: invoiceItem.taxRateRef.id
+ foreign-key: lineItems.taxRateRef.id
+ - table-name: journal_entries
+ keys:
+ - key: billItem.accountRef.id
+ foreign-key: journalLines.accountRef.id
+ - key: invoiceItem.accountRef.id
+ foreign-key: journalLines.accountRef.id
+ - key: companyId
+ foreign-key: companyId
+ - table-name: companies
+ keys:
+ - key: companyId
+ foreign-key: id
+ - table-name: bank_statements
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_statement_lines
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bill_payments
+ keys:
+ - key: companyId
+ foreign-key: supplierRef.companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: company_info
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: customers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: invoices
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: payments
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: suppliers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: connections
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: events
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: tax_rates
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - key: billItem.taxRateRef.id
+ foreign-key: id
+ - key: invoiceItem.taxRateRef.id
+ foreign-key: id
+ - table-name: bank_account_transactions
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_accounts
+ keys:
+ - key: companyId
+ foreign-key: companyId
+- table-name: journal_entries
+ join:
+ - table-name: accounts
+ keys:
+ - key: journalLines.accountRef.id
+ foreign-key: id
+ - table-name: balance_sheets
+ keys:
+ - key: journalLines.accountRef.id
+ foreign-key: reports.assets.accountId
+ - key: journalLines.accountRef.id
+ foreign-key: reports.equity.accountId
+ - key: journalLines.accountRef.id
+ foreign-key: reports.liabilities.accountId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: profit_and_loss
+ keys:
+ - key: journalLines.accountRef.id
+ foreign-key: reports.costOfSales.accountId
+ - key: journalLines.accountRef.id
+ foreign-key: reports.expenses.accountId
+ - key: journalLines.accountRef.id
+ foreign-key: reports.income.accountId
+ - key: journalLines.accountRef.id
+ foreign-key: reports.otherExpenses.accountId
+ - key: journalLines.accountRef.id
+ foreign-key: reports.otherIncome.accountId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bills
+ keys:
+ - key: journalLines.accountRef.id
+ foreign-key: lineItems.accountRef.id
+ - key: companyId
+ foreign-key: companyId
+ - table-name: items
+ keys:
+ - key: journalLines.accountRef.id
+ foreign-key: billItem.accountRef.id
+ - key: journalLines.accountRef.id
+ foreign-key: invoiceItem.accountRef.id
+ - key: companyId
+ foreign-key: companyId
+ - table-name: companies
+ keys:
+ - key: companyId
+ foreign-key: id
+ - table-name: bank_statements
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_statement_lines
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bill_payments
+ keys:
+ - key: companyId
+ foreign-key: supplierRef.companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: company_info
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: customers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: invoices
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: payments
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: suppliers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: connections
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: events
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: tax_rates
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_account_transactions
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_accounts
+ keys:
+ - key: companyId
+ foreign-key: companyId
+- table-name: bank_statement_lines
+ join:
+ - table-name: accounts
+ keys:
+ - key: accountName
+ foreign-key: name
+ - table-name: bank_accounts
+ keys:
+ - key: accountName
+ foreign-key: accountName
+ - key: companyId
+ foreign-key: companyId
+ - table-name: companies
+ keys:
+ - key: companyId
+ foreign-key: id
+ - table-name: balance_sheets
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_statements
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bill_payments
+ keys:
+ - key: companyId
+ foreign-key: supplierRef.companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bills
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: company_info
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: customers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: invoices
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: payments
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: profit_and_loss
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: suppliers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: connections
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: events
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: items
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: journal_entries
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: tax_rates
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_account_transactions
+ keys:
+ - key: companyId
+ foreign-key: companyId
+- table-name: bank_account_transactions
+ join:
+ - table-name: bank_accounts
+ keys:
+ - key: bankAccountId
+ foreign-key: id
+ - key: companyId
+ foreign-key: companyId
+ - table-name: companies
+ keys:
+ - key: companyId
+ foreign-key: id
+ - table-name: balance_sheets
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_statements
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_statement_lines
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bill_payments
+ keys:
+ - key: companyId
+ foreign-key: supplierRef.companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bills
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: company_info
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: customers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: invoices
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: payments
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: profit_and_loss
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: suppliers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: connections
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: events
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: items
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: journal_entries
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: tax_rates
+ keys:
+ - key: companyId
+ foreign-key: companyId
+- table-name: bank_statements
+ join:
+ - table-name: companies
+ keys:
+ - key: companyId
+ foreign-key: id
+ - table-name: balance_sheets
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_statement_lines
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bill_payments
+ keys:
+ - key: companyId
+ foreign-key: supplierRef.companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bills
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: company_info
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: customers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: invoices
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: payments
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: profit_and_loss
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: suppliers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: connections
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: events
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: items
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: journal_entries
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: tax_rates
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_account_transactions
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_accounts
+ keys:
+ - key: companyId
+ foreign-key: companyId
+- table-name: bill_payments
+ join:
+ - table-name: companies
+ keys:
+ - key: supplierRef.companyId
+ foreign-key: id
+ - key: companyId
+ foreign-key: id
+ - table-name: balance_sheets
+ keys:
+ - key: supplierRef.companyId
+ foreign-key: companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_statements
+ keys:
+ - key: supplierRef.companyId
+ foreign-key: companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_statement_lines
+ keys:
+ - key: supplierRef.companyId
+ foreign-key: companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bills
+ keys:
+ - key: supplierRef.companyId
+ foreign-key: companyId
+ - key: companyId
+ foreign-key: companyId
+ - key: supplierRef.id
+ foreign-key: supplierRef
+ - table-name: company_info
+ keys:
+ - key: supplierRef.companyId
+ foreign-key: companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: customers
+ keys:
+ - key: supplierRef.companyId
+ foreign-key: companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: invoices
+ keys:
+ - key: supplierRef.companyId
+ foreign-key: companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: payments
+ keys:
+ - key: supplierRef.companyId
+ foreign-key: companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: profit_and_loss
+ keys:
+ - key: supplierRef.companyId
+ foreign-key: companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: suppliers
+ keys:
+ - key: supplierRef.companyId
+ foreign-key: companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: connections
+ keys:
+ - key: supplierRef.companyId
+ foreign-key: companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: events
+ keys:
+ - key: supplierRef.companyId
+ foreign-key: companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: items
+ keys:
+ - key: supplierRef.companyId
+ foreign-key: companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: journal_entries
+ keys:
+ - key: supplierRef.companyId
+ foreign-key: companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: tax_rates
+ keys:
+ - key: supplierRef.companyId
+ foreign-key: companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_account_transactions
+ keys:
+ - key: supplierRef.companyId
+ foreign-key: companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_accounts
+ keys:
+ - key: supplierRef.companyId
+ foreign-key: companyId
+ - key: companyId
+ foreign-key: companyId
+- table-name: companies
+ join:
+ - table-name: balance_sheets
+ keys:
+ - key: id
+ foreign-key: companyId
+ - table-name: bank_statements
+ keys:
+ - key: id
+ foreign-key: companyId
+ - table-name: bank_statement_lines
+ keys:
+ - key: id
+ foreign-key: companyId
+ - table-name: bill_payments
+ keys:
+ - key: id
+ foreign-key: supplierRef.companyId
+ - key: id
+ foreign-key: companyId
+ - table-name: bills
+ keys:
+ - key: id
+ foreign-key: companyId
+ - table-name: company_info
+ keys:
+ - key: id
+ foreign-key: companyId
+ - table-name: customers
+ keys:
+ - key: id
+ foreign-key: companyId
+ - table-name: invoices
+ keys:
+ - key: id
+ foreign-key: companyId
+ - table-name: payments
+ keys:
+ - key: id
+ foreign-key: companyId
+ - table-name: profit_and_loss
+ keys:
+ - key: id
+ foreign-key: companyId
+ - table-name: suppliers
+ keys:
+ - key: id
+ foreign-key: companyId
+ - table-name: connections
+ keys:
+ - key: id
+ foreign-key: companyId
+ - table-name: events
+ keys:
+ - key: id
+ foreign-key: companyId
+ - table-name: items
+ keys:
+ - key: id
+ foreign-key: companyId
+ - table-name: journal_entries
+ keys:
+ - key: id
+ foreign-key: companyId
+ - table-name: tax_rates
+ keys:
+ - key: id
+ foreign-key: companyId
+ - table-name: bank_account_transactions
+ keys:
+ - key: id
+ foreign-key: companyId
+ - table-name: bank_accounts
+ keys:
+ - key: id
+ foreign-key: companyId
+- table-name: company_info
+ join:
+ - table-name: companies
+ keys:
+ - key: companyId
+ foreign-key: id
+ - table-name: balance_sheets
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_statements
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_statement_lines
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bill_payments
+ keys:
+ - key: companyId
+ foreign-key: supplierRef.companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bills
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: customers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: invoices
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: payments
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: profit_and_loss
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: suppliers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: connections
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: events
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: items
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: journal_entries
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: tax_rates
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_account_transactions
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_accounts
+ keys:
+ - key: companyId
+ foreign-key: companyId
+- table-name: customers
+ join:
+ - table-name: companies
+ keys:
+ - key: companyId
+ foreign-key: id
+ - table-name: balance_sheets
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_statements
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_statement_lines
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bill_payments
+ keys:
+ - key: companyId
+ foreign-key: supplierRef.companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bills
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: company_info
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: invoices
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: payments
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - key: id
+ foreign-key: customerRef.id
+ - table-name: profit_and_loss
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: suppliers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: connections
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: events
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: items
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: journal_entries
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: tax_rates
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_account_transactions
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_accounts
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: credit_notes
+ keys:
+ - key: id
+ foreign-key: customerRef.id
+- table-name: invoices
+ join:
+ - table-name: companies
+ keys:
+ - key: companyId
+ foreign-key: id
+ - table-name: balance_sheets
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_statements
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_statement_lines
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bill_payments
+ keys:
+ - key: companyId
+ foreign-key: supplierRef.companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bills
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: company_info
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: customers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: payments
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - key: id
+ foreign-key: lines.links.id
+ - table-name: profit_and_loss
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: suppliers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: connections
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: events
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: items
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: journal_entries
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: tax_rates
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_account_transactions
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_accounts
+ keys:
+ - key: companyId
+ foreign-key: companyId
+- table-name: payments
+ join:
+ - table-name: companies
+ keys:
+ - key: companyId
+ foreign-key: id
+ - table-name: balance_sheets
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_statements
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_statement_lines
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bill_payments
+ keys:
+ - key: companyId
+ foreign-key: supplierRef.companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bills
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: company_info
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: customers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - key: customerRef.id
+ foreign-key: id
+ - table-name: invoices
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - key: lines.links.id
+ foreign-key: id
+ - table-name: profit_and_loss
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: suppliers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: connections
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: events
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: items
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: journal_entries
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: tax_rates
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_account_transactions
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_accounts
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: credit_notes
+ keys:
+ - key: lines.links.id
+ foreign-key: id
+ - key: customerRef.id
+ foreign-key: customerRef.id
+- table-name: suppliers
+ join:
+ - table-name: companies
+ keys:
+ - key: companyId
+ foreign-key: id
+ - table-name: balance_sheets
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_statements
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_statement_lines
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bill_payments
+ keys:
+ - key: companyId
+ foreign-key: supplierRef.companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bills
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - key: id
+ foreign-key: supplierRef
+ - table-name: company_info
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: customers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: invoices
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: payments
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: profit_and_loss
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: connections
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: events
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: items
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: journal_entries
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: tax_rates
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_account_transactions
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_accounts
+ keys:
+ - key: companyId
+ foreign-key: companyId
+- table-name: connections
+ join:
+ - table-name: companies
+ keys:
+ - key: companyId
+ foreign-key: id
+ - table-name: balance_sheets
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_statements
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_statement_lines
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bill_payments
+ keys:
+ - key: companyId
+ foreign-key: supplierRef.companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bills
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: company_info
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: customers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: invoices
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: payments
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: profit_and_loss
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: suppliers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: events
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: items
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: journal_entries
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: tax_rates
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_account_transactions
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_accounts
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - key: id
+ foreign-key: connectionId
+- table-name: events
+ join:
+ - table-name: companies
+ keys:
+ - key: companyId
+ foreign-key: id
+ - table-name: balance_sheets
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_statements
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_statement_lines
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bill_payments
+ keys:
+ - key: companyId
+ foreign-key: supplierRef.companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bills
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: company_info
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: customers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: invoices
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: payments
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: profit_and_loss
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: suppliers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: connections
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: items
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: journal_entries
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: tax_rates
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_account_transactions
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_accounts
+ keys:
+ - key: companyId
+ foreign-key: companyId
+- table-name: tax_rates
+ join:
+ - table-name: companies
+ keys:
+ - key: companyId
+ foreign-key: id
+ - table-name: balance_sheets
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_statements
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_statement_lines
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bill_payments
+ keys:
+ - key: companyId
+ foreign-key: supplierRef.companyId
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bills
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - key: id
+ foreign-key: lineItems.taxRateRef.id
+ - table-name: company_info
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: customers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: invoices
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: payments
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: profit_and_loss
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: suppliers
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: connections
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: events
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: items
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - key: id
+ foreign-key: billItem.taxRateRef.id
+ - key: id
+ foreign-key: invoiceItem.taxRateRef.id
+ - table-name: journal_entries
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_account_transactions
+ keys:
+ - key: companyId
+ foreign-key: companyId
+ - table-name: bank_accounts
+ keys:
+ - key: companyId
+ foreign-key: companyId
+- table-name: credit_notes
+ join:
+ - table-name: payments
+ keys:
+ - key: id
+ foreign-key: lines.links.id
+ - key: customerRef.id
+ foreign-key: customerRef.id
+ - table-name: customers
+ keys:
+ - key: customerRef.id
+ foreign-key: id
diff --git a/_data/taps/schemas/codat/v1/codat-v1-tables.yml b/_data/taps/schemas/codat/v1/codat-v1-tables.yml
new file mode 100644
index 000000000..3d95c2d87
--- /dev/null
+++ b/_data/taps/schemas/codat/v1/codat-v1-tables.yml
@@ -0,0 +1,307 @@
+tap: codat
+version: '1'
+tables:
+- name: accounts
+ description: 'The `{{ table.name }}` table contains info about the accounts in your
+ {{ integration.display_name }} instance. In {{ integration.display_name }}, an
+ account is a category used to record accounting transactions for a business.
+
+ '
+ links:
+ doc-link: https://docs.codat.io/docs/accounts-1
+ singer-schema: https://github.com/singer-io/tap-codat/blob/master/tap_codat/schemas/accounts.json
+ api-method: https://docs.codat.io/reference/accounts#accounts_list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - id
+ - companyId
+ replication-key: modifiedDate
+- name: balance_sheets
+ description: 'The `{{ table.name }}` table contains info about the balance sheets
+ in your {{ integration.display_name }} instance. A balance sheet is a snapshot
+ at a point in time of a company''s accounts.
+
+ '
+ links:
+ doc-link: https://docs.codat.io/docs/balance-sheet-2
+ singer-schema: https://github.com/singer-io/tap-codat/blob/master/tap_codat/schemas/balance_sheets.json
+ api-method: https://docs.codat.io/reference/financials#financials_balancesheet
+ table-details:
+ replication-method: Full Table
+ primary-key: companyId
+- name: bank_accounts
+ description: 'The `{{ table.name }}` table contains informaiton about bank accounts
+ for a given company in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://docs.codat.io/docs/bank-accounts
+ singer-schema: https://github.com/singer-io/tap-codat/blob/master/tap_codat/schemas/bank_accounts.json
+ api-method: https://docs.codat.io/reference/bankaccounts#bankaccounts_listaccountspaged
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - accountName
+ - companyId
+ - connectionId
+- name: bank_account_transactions
+ description: 'The {{ table.name }} table contains information about transactions
+ for a specified company and bank account in your {{ integration.display_name }}
+ account.
+
+ '
+ links:
+ doc-link: https://docs.codat.io/docs/bank-transactions
+ singer-schema: https://github.com/singer-io/tap-codat/blob/master/tap_codat/schemas/bank_account_transactions.json
+ api-method: https://docs.codat.io/reference/bankaccounts#bankaccounts_getaccounttransactions
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - _transactionIndex
+ - bankAccountId
+ - companyId
+- name: bank_statements
+ description: 'The `{{ table.name }}` table contains info about bank statement report
+ data for a company over a time period.
+
+ '
+ links:
+ doc-link: https://docs.codat.io/docs/bank-accounts
+ singer-schema: https://github.com/singer-io/tap-codat/blob/master/tap_codat/schemas/bank_statements.json
+ api-method: https://docs.codat.io/reference/bankstatements#bankstatements_listpaged
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - id
+ - companyId
+- name: bank_statement_lines
+ description: 'The `{{ table.name }}` table contains info about lines included in
+ bank statements.
+
+ '
+ links:
+ doc-link: https://docs.codat.io/docs/bank-transactions
+ singer-schema: https://github.com/singer-io/tap-codat/blob/master/tap_codat/schemas/bank_statement_lines.json
+ api-method: https://docs.codat.io/reference/bankstatements#bankstatements_listpaged
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - accountName
+ - companyId
+ - _lineIndex
+- name: bills
+ description: 'The `{{ table.name }}` table contains info about the bills in your
+ {{ integration.display_name }} account. A bill is an itemized record of goods
+ or services purchased from a [supplier](#suppliers).
+
+ '
+ links:
+ doc-link: https://docs.codat.io/docs/bills-1
+ singer-schema: https://github.com/singer-io/tap-codat/blob/master/tap_codat/schemas/bills.json
+ api-method: https://docs.codat.io/reference/bills#bills_listpaged
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - companyId
+ - id
+- name: bill_payments
+ description: 'The {{ table.name }} table contains information about company bill
+ payments in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://docs.codat.io/docs/billpayments-1
+ singer-schema: https://github.com/singer-io/tap-codat/blob/master/tap_codat/schemas/bill_payments.json
+ api-method: https://docs.codat.io/reference/billpayments#billpayments_listpaged
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - companyId
+ - id
+ replication-key: modifiedDate
+- name: companies
+ description: 'The `{{ table.name }}` table contains info about the companies in
+ your {{ integration.display_name }} instance. A company represents a business
+ who can share the connection to their financial data sources.
+
+ '
+ links:
+ doc-link: https://docs.codat.io/reference/companies
+ singer-schema: https://github.com/singer-io/tap-codat/blob/master/tap_codat/schemas/companies.json
+ api-method: https://docs.codat.io/reference/companies#companies_listpaged
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: company_info
+ description: 'The `{{ table.name }}` table contains company info. In {{ integration.display_name
+ }}, company info includes information about a linked company such as address,
+ phone number and company registration.
+
+ '
+ links:
+ doc-link: https://docs.codat.io/reference/info
+ singer-schema: https://github.com/singer-io/tap-codat/blob/master/tap_codat/schemas/company_info.json
+ api-method: https://docs.codat.io/reference/info#info_list
+ table-details:
+ replication-method: Full Table
+ primary-key: companyId
+- name: connections
+ description: 'The {{ table.name }} table contains information about company connections
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-codat/blob/master/tap_codat/schemas/connections.json
+ api-method: https://docs.codat.io/reference/connection#connection_getconnection
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - companyId
+ - id
+- name: credit_notes
+ description: 'The `{{ table.name }}` table contains info about the credit notes
+ in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ doc-link: https://docs.codat.io/docs/credit-notes
+ singer-schema: https://github.com/singer-io/tap-codat/blob/master/tap_codat/schemas/credit_notes.json
+ api-method: https://docs.codat.io/reference/creditnotes#creditnotes_listpaged
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - id
+ - companyId
+- name: customers
+ description: 'The `{{ table.name }}` table contains info about the customers in
+ your {{ integration.display_name }} instance. A customer is a person or organisation
+ that buys goods or services.
+
+ '
+ links:
+ doc-link: https://docs.codat.io/reference/customers
+ singer-schema: https://github.com/singer-io/tap-codat/blob/master/tap_codat/schemas/customers.json
+ api-method: https://docs.codat.io/reference/customers#customers_listpaged
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - companyId
+ - id
+ replication-key: modifiedDate
+- name: events
+ description: 'The `{{ table.name }}` table contains information about a given company''s
+ events in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-codat/blob/master/tap_codat/schemas/events.json
+ api-method: https://docs.codat.io/reference/reports#reports_companyevents
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - companyId
+ - eventTimeUtc
+- name: invoices
+ description: 'The `{{ table.name }}` table contains info about the invoices in your
+ {{ integration.display_name }} instance. An invoice is an itemized record of goods
+ or services sold to a [customer](#customers).
+
+ '
+ links:
+ doc-link: https://docs.codat.io/docs/invoices-1
+ singer-schema: https://github.com/singer-io/tap-codat/blob/master/tap_codat/schemas/invoices.json
+ api-method: https://docs.codat.io/reference/invoices#invoices_listpaged
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - companyId
+ - id
+ replication-key: modifiedDate
+- name: items
+ description: 'The {{ table.name }} table contains information about items for a
+ given company in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://docs.codat.io/reference/items
+ singer-schema: https://github.com/singer-io/tap-codat/blob/master/tap_codat/schemas/items.json
+ api-method: https://docs.codat.io/reference/items#items_listpaged
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - companyId
+ - id
+ replication-key: modifiedDate
+- name: journal_entries
+ description: 'The {{ table.name }} table contains information about journal entries
+ for a given company in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://docs.codat.io/reference/journals
+ singer-schema: https://github.com/singer-io/tap-codat/blob/master/tap_codat/schemas/journal_entries.json
+ api-method: https://docs.codat.io/reference/journals#journals_listpaged
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - companyId
+ - id
+ replication-key: modifiedDate
+- name: payments
+ description: 'The `{{ table.name }}` table contains info about the payments, or
+ Accounts Receivable transactions, in your {{ integration.display_name }} instance.
+ This includes details about invoices and credit notes.
+
+ '
+ links:
+ doc-link: https://docs.codat.io/docs/payments-1
+ singer-schema: https://github.com/singer-io/tap-codat/blob/master/tap_codat/schemas/payments.json
+ api-method: https://docs.codat.io/reference/payments#payments_listpaged
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - companyId
+ - id
+- name: profit_and_loss
+ description: 'The `{{ table.name }}` table contains profit and loss report data
+ for a company over a time period.
+
+ '
+ links:
+ doc-link: https://docs.codat.io/docs/profit-and-loss-2
+ singer-schema: https://github.com/singer-io/tap-codat/blob/master/tap_codat/schemas/profit_and_loss.json
+ api-method: https://docs.codat.io/reference/financials#financials_profitandloss
+ table-details:
+ replication-method: Full Table
+ primary-key: companyId
+- name: suppliers
+ description: 'The `{{ table.name }}` table contains info about the suppliers in
+ your {{ integration.display_name }} instance. A supplier is a person or organization
+ that provides a product or service.
+
+ '
+ links:
+ doc-link: https://docs.codat.io/docs/suppliers-2
+ singer-schema: https://github.com/singer-io/tap-codat/blob/master/tap_codat/schemas/suppliers.json
+ api-method: https://docs.codat.io/reference/suppliers#suppliers_listpaged
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - companyId
+ - id
+- name: tax_rates
+ description: 'The {{ table.name }} table contains information about tax rates for
+ a given company in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://docs.codat.io/reference/taxrates
+ singer-schema: https://github.com/singer-io/tap-codat/blob/master/tap_codat/schemas/tax_rates.json
+ api-method: https://docs.codat.io/reference/taxrates#taxrates_listpaged
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - companyId
+ - id
+ replication-key: modifiedDate
diff --git a/_data/taps/schemas/codat/v1/json/accounts.json b/_data/taps/schemas/codat/v1/json/accounts.json
new file mode 100644
index 000000000..ccee2af9c
--- /dev/null
+++ b/_data/taps/schemas/codat/v1/json/accounts.json
@@ -0,0 +1,90 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "companyId": {
+ "type": [
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currentBalance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fullyQualifiedCategory": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fullyQualifiedName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "isBankAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "modifiedDate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nominalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sourceModifiedDate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/codat/v1/json/balance_sheets.json b/_data/taps/schemas/codat/v1/json/balance_sheets.json
new file mode 100644
index 000000000..f3e3d5ed7
--- /dev/null
+++ b/_data/taps/schemas/codat/v1/json/balance_sheets.json
@@ -0,0 +1,151 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "companyId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mostRecentAvailableMonth": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reports": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "assets": {
+ "items": {
+ "additionalProperties": true,
+ "patternProperties": {
+ "name_\\d+": {
+ "type": "string"
+ }
+ },
+ "properties": {
+ "accountId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "name": {
+ "type": "string"
+ },
+ "value": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "equity": {
+ "items": {
+ "additionalProperties": true,
+ "patternProperties": {
+ "name_\\d+": {
+ "type": "string"
+ }
+ },
+ "properties": {
+ "accountId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "name": {
+ "type": "string"
+ },
+ "value": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "liabilities": {
+ "items": {
+ "additionalProperties": true,
+ "patternProperties": {
+ "name_\\d+": {
+ "type": "string"
+ }
+ },
+ "properties": {
+ "accountId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "name": {
+ "type": "string"
+ },
+ "value": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "netAssets": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "object",
+ "string"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "flattened_report"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/codat/v1/json/bank_account_transactions.json b/_data/taps/schemas/codat/v1/json/bank_account_transactions.json
new file mode 100644
index 000000000..323bf3957
--- /dev/null
+++ b/_data/taps/schemas/codat/v1/json/bank_account_transactions.json
@@ -0,0 +1,62 @@
+{
+ "properties": {
+ "_transactionIndex": {
+ "type": "integer"
+ },
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "bankAccountId": {
+ "type": "string"
+ },
+ "companyId": {
+ "type": "string"
+ },
+ "date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modifiedDate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reconciled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "sourceModifiedDate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transactionType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/codat/v1/json/bank_accounts.json b/_data/taps/schemas/codat/v1/json/bank_accounts.json
new file mode 100644
index 000000000..b5da2819f
--- /dev/null
+++ b/_data/taps/schemas/codat/v1/json/bank_accounts.json
@@ -0,0 +1,91 @@
+{
+ "properties": {
+ "accountName": {
+ "type": [
+ "string"
+ ]
+ },
+ "accountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "availableBalance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "companyId": {
+ "type": "string"
+ },
+ "connectionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fromDate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iban": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modifiedDate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "overdraftLimit": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "sortCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sourceModifiedDate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "toDate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/codat/v1/json/bank_statement_lines.json b/_data/taps/schemas/codat/v1/json/bank_statement_lines.json
new file mode 100644
index 000000000..03bc18399
--- /dev/null
+++ b/_data/taps/schemas/codat/v1/json/bank_statement_lines.json
@@ -0,0 +1,50 @@
+{
+ "properties": {
+ "_lineIndex": {
+ "type": "integer"
+ },
+ "accountName": {
+ "type": "string"
+ },
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "companyId": {
+ "type": "string"
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reconciled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/codat/v1/json/bank_statements.json b/_data/taps/schemas/codat/v1/json/bank_statements.json
new file mode 100644
index 000000000..881324d81
--- /dev/null
+++ b/_data/taps/schemas/codat/v1/json/bank_statements.json
@@ -0,0 +1,75 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "accountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "availableBalance": {
+ "type": [
+ "null",
+ "string",
+ "number"
+ ]
+ },
+ "balance": {
+ "type": [
+ "null",
+ "string",
+ "number"
+ ]
+ },
+ "companyId": {
+ "type": [
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fromDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "iban": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sortCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "toDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/codat/v1/json/bill_payments.json b/_data/taps/schemas/codat/v1/json/bill_payments.json
new file mode 100644
index 000000000..4fc377976
--- /dev/null
+++ b/_data/taps/schemas/codat/v1/json/bill_payments.json
@@ -0,0 +1,216 @@
+{
+ "properties": {
+ "companyId": {
+ "type": "string"
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currencyRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "lines": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "links": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "modifiedDate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sourceModifiedDate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "supplierRef": {
+ "properties": {
+ "addresses": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "companyId": {
+ "type": [
+ "string"
+ ]
+ },
+ "contactName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "registrationNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "supplierName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "totalAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "suppliers"
+ ],
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/codat/v1/json/bills.json b/_data/taps/schemas/codat/v1/json/bills.json
new file mode 100644
index 000000000..e768c6e99
--- /dev/null
+++ b/_data/taps/schemas/codat/v1/json/bills.json
@@ -0,0 +1,310 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "amountDue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "companyId": {
+ "type": [
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "issueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "lineItems": {
+ "items": {
+ "properties": {
+ "accountRef": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discountAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "discountPercentage": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "itemRef": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "subTotal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "taxAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "taxRateRef": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "totalAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unitAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subTotal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "supplierRef": {
+ "properties": {
+ "addresses": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "companyId": {
+ "type": [
+ "string"
+ ]
+ },
+ "contactName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "registrationNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "supplierName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "taxAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "totalAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "suppliers"
+ ],
+ "type": [
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/codat/v1/json/companies.json b/_data/taps/schemas/codat/v1/json/companies.json
new file mode 100644
index 000000000..cc5ab85e3
--- /dev/null
+++ b/_data/taps/schemas/codat/v1/json/companies.json
@@ -0,0 +1,43 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastSync": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "platform": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "redirect": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/codat/v1/json/company_info.json b/_data/taps/schemas/codat/v1/json/company_info.json
new file mode 100644
index 000000000..414336e2f
--- /dev/null
+++ b/_data/taps/schemas/codat/v1/json/company_info.json
@@ -0,0 +1,172 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "accountingPlatformRef": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "addresses": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "baseCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "companyId": {
+ "type": [
+ "string"
+ ]
+ },
+ "companyLegalName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "companyName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "financialYearStartDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "phoneNumbers": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "registrationNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "webLinks": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/codat/v1/json/connections.json b/_data/taps/schemas/codat/v1/json/connections.json
new file mode 100644
index 000000000..bada3d925
--- /dev/null
+++ b/_data/taps/schemas/codat/v1/json/connections.json
@@ -0,0 +1,41 @@
+{
+ "properties": {
+ "companyId": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "integrationId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "linkUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "platformName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sourceId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/codat/v1/json/credit_notes.json b/_data/taps/schemas/codat/v1/json/credit_notes.json
new file mode 100644
index 000000000..5955f8898
--- /dev/null
+++ b/_data/taps/schemas/codat/v1/json/credit_notes.json
@@ -0,0 +1,118 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "companyId": {
+ "type": [
+ "string"
+ ]
+ },
+ "creditNoteNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customerRef": {
+ "additionalProperties": true,
+ "properties": {
+ "companyName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "issueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "paymentAllocations": {
+ "items": {
+ "companyId": {
+ "type": "string"
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "totalAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "remainingCredit": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "totalAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "payment_allocations"
+ ],
+ "type": [
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/codat/v1/json/customers.json b/_data/taps/schemas/codat/v1/json/customers.json
new file mode 100644
index 000000000..f72a45808
--- /dev/null
+++ b/_data/taps/schemas/codat/v1/json/customers.json
@@ -0,0 +1,246 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "addresses": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "companyId": {
+ "type": [
+ "string"
+ ]
+ },
+ "contactName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contacts": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "address": {
+ "additionalProperties": true,
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modifiedDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "customerName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "defaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "modifiedDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "registrationNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/codat/v1/json/events.json b/_data/taps/schemas/codat/v1/json/events.json
new file mode 100644
index 000000000..d6fddd2e7
--- /dev/null
+++ b/_data/taps/schemas/codat/v1/json/events.json
@@ -0,0 +1,25 @@
+{
+ "properties": {
+ "companyId": {
+ "type": "string"
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eventTimeUtc": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/codat/v1/json/invoices.json b/_data/taps/schemas/codat/v1/json/invoices.json
new file mode 100644
index 000000000..a27f5eac9
--- /dev/null
+++ b/_data/taps/schemas/codat/v1/json/invoices.json
@@ -0,0 +1,208 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "amountDue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "companyId": {
+ "type": [
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customerRef": {
+ "additionalProperties": true,
+ "properties": {
+ "companyName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "dueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoiceNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "lineItems": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discountAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "subTotal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "taxAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "totalAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unitAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "modifiedDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "paidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "paymentAllocations": {
+ "items": {
+ "companyId": {
+ "type": "string"
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "totalAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subTotal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "totalAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "totalDiscount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "totalTaxAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "payment_allocations"
+ ],
+ "type": [
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/codat/v1/json/items.json b/_data/taps/schemas/codat/v1/json/items.json
new file mode 100644
index 000000000..3dd7b1500
--- /dev/null
+++ b/_data/taps/schemas/codat/v1/json/items.json
@@ -0,0 +1,149 @@
+{
+ "properties": {
+ "billItem": {
+ "properties": {
+ "accountRef": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxRateRef": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "unitPrice": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "companyId": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "invoiceItem": {
+ "properties": {
+ "accountRef": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxRateRef": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "unitPrice": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "isBillItem": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "isInvoiceItem": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "itemStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modifiedDate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sourceModifiedDate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/codat/v1/json/journal_entries.json b/_data/taps/schemas/codat/v1/json/journal_entries.json
new file mode 100644
index 000000000..7db2a2c6c
--- /dev/null
+++ b/_data/taps/schemas/codat/v1/json/journal_entries.json
@@ -0,0 +1,102 @@
+{
+ "properties": {
+ "companyId": {
+ "type": "string"
+ },
+ "createdOn": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": "string"
+ },
+ "journalLines": {
+ "items": {
+ "properties": {
+ "accountRef": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "grossAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "netAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "taxAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "modifiedDate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postedOn": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sourceModifiedDate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/codat/v1/json/payments.json b/_data/taps/schemas/codat/v1/json/payments.json
new file mode 100644
index 000000000..6b3dd2535
--- /dev/null
+++ b/_data/taps/schemas/codat/v1/json/payments.json
@@ -0,0 +1,111 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "companyId": {
+ "type": [
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customerRef": {
+ "additionalProperties": true,
+ "properties": {
+ "companyName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "lines": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "links": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "totalAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/codat/v1/json/profit_and_loss.json b/_data/taps/schemas/codat/v1/json/profit_and_loss.json
new file mode 100644
index 000000000..66b0068ee
--- /dev/null
+++ b/_data/taps/schemas/codat/v1/json/profit_and_loss.json
@@ -0,0 +1,232 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "companyId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mostRecentAvailableMonth": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reportBasis": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reports": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "costOfSales": {
+ "items": {
+ "additionalProperties": true,
+ "patternProperties": {
+ "name_\\d+": {
+ "type": "string"
+ }
+ },
+ "properties": {
+ "accountId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "name": {
+ "type": "string"
+ },
+ "value": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "expenses": {
+ "items": {
+ "additionalProperties": true,
+ "patternProperties": {
+ "name_\\d+": {
+ "type": "string"
+ }
+ },
+ "properties": {
+ "accountId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "name": {
+ "type": "string"
+ },
+ "value": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "fromDate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "grossProfit": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "income": {
+ "items": {
+ "additionalProperties": true,
+ "patternProperties": {
+ "name_\\d+": {
+ "type": "string"
+ }
+ },
+ "properties": {
+ "accountId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "name": {
+ "type": "string"
+ },
+ "value": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "netOperatingProfit": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "netOtherIncome": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "netProfit": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "otherExpenses": {
+ "items": {
+ "additionalProperties": true,
+ "patternProperties": {
+ "name_\\d+": {
+ "type": "string"
+ }
+ },
+ "properties": {
+ "accountId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "name": {
+ "type": "string"
+ },
+ "value": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "otherIncome": {
+ "items": {
+ "additionalProperties": true,
+ "patternProperties": {
+ "name_\\d+": {
+ "type": "string"
+ }
+ },
+ "properties": {
+ "accountId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "name": {
+ "type": "string"
+ },
+ "value": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "toDate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "flattened_report"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/codat/v1/json/suppliers.json b/_data/taps/schemas/codat/v1/json/suppliers.json
new file mode 100644
index 000000000..6d891239d
--- /dev/null
+++ b/_data/taps/schemas/codat/v1/json/suppliers.json
@@ -0,0 +1,118 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "addresses": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "companyId": {
+ "type": [
+ "string"
+ ]
+ },
+ "contactName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "registrationNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "supplierName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/codat/v1/json/tax_rates.json b/_data/taps/schemas/codat/v1/json/tax_rates.json
new file mode 100644
index 000000000..b95d5cc89
--- /dev/null
+++ b/_data/taps/schemas/codat/v1/json/tax_rates.json
@@ -0,0 +1,78 @@
+{
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "companyId": {
+ "type": "string"
+ },
+ "components": {
+ "items": {
+ "properties": {
+ "isCompound": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "effectiveTaxRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "id": {
+ "type": "string"
+ },
+ "modifiedDate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sourceModifiedDate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "totalTaxRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/covid-19/v1/covid-19-v1-tables.yml b/_data/taps/schemas/covid-19/v1/covid-19-v1-tables.yml
new file mode 100644
index 000000000..6ba7c5afd
--- /dev/null
+++ b/_data/taps/schemas/covid-19/v1/covid-19-v1-tables.yml
@@ -0,0 +1,348 @@
+tap: covid-19
+version: '1'
+tables:
+- name: c19_trk_us_daily
+ description: 'The `{{ table.name }}` table contains statistics for the United States,
+ aggregated by day.
+
+
+ **Note**: The source file for this table is a single file that updates on a daily
+ basis. When Stitch replicates this table, it will replicate the entire contents
+ of the file, but only if the file has been modified since the integration''s last
+ replication job.
+
+ '
+ links:
+ doc-link: https://github.com/COVID19Tracking
+ singer-schema: https://github.com/singer-io/tap-covid-19/blob/master/tap_covid_19/schemas/c19_trk_us_daily.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: __sdc_row_number
+ replication-key: git_last_modified
+- name: c19_trk_us_population_counties
+ description: 'The `{{ table.name }}` table contains statistics for reporting counties
+ in the United States.
+
+
+ **Note**: The source file for this table is a single file that updates on a daily
+ basis. When Stitch replicates this table, it will replicate the entire contents
+ of the file, but only if the file has been modified since the integration''s last
+ replication job.
+
+ '
+ links:
+ doc-link: https://github.com/COVID19Tracking
+ singer-schema: https://github.com/singer-io/tap-covid-19/blob/master/tap_covid_19/schemas/c19_trk_us_population_counties.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: __sdc_row_number
+ replication-key: git_last_modified
+- name: c19_trk_us_population_states
+ description: 'The `{{ table.name }}` table contains population statistics for states
+ in the United States.
+
+
+ **Note**: The source file for this table is a single file that updates on a daily
+ basis. When Stitch replicates this table, it will replicate the entire contents
+ of the file, but only if the file has been modified since the integration''s last
+ replication job.
+
+ '
+ links:
+ doc-link: https://github.com/COVID19Tracking
+ singer-schema: https://github.com/singer-io/tap-covid-19/blob/master/tap_covid_19/schemas/c19_trk_us_population_states.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: __sdc_row_number
+ replication-key: git_last_modified
+- name: c19_trk_us_population_states_age_groups
+ description: 'The `{{ table.name }}` table contains population statistics in the
+ United States, aggregated by age group and state.
+
+
+ **Note**: The source file for this table is a single file that updates on a daily
+ basis. When Stitch replicates this table, it will replicate the entire contents
+ of the file, but only if the file has been modified since the integration''s last
+ replication job.
+
+ '
+ links:
+ doc-link: https://github.com/COVID19Tracking
+ singer-schema: https://github.com/singer-io/tap-covid-19/blob/master/tap_covid_19/schemas/c19_trk_us_population_states_age_groups.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: __sdc_row_number
+ replication-key: git_last_modified
+- name: c19_trk_us_states_acs_health_insurance
+ description: 'The `{{ table.name }}` table contains health insurance statistics
+ for the United States.
+
+
+ **Note**: The source file for this table is a single file that updates on a daily
+ basis. When Stitch replicates this table, it will replicate the entire contents
+ of the file, but only if the file has been modified since the integration''s last
+ replication job.
+
+ '
+ links:
+ doc-link: https://github.com/COVID19Tracking
+ singer-schema: https://github.com/singer-io/tap-covid-19/blob/master/tap_covid_19/schemas/c19_trk_us_states_acs_health_insurance.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: __sdc_row_number
+ replication-key: git_last_modified
+- name: c19_trk_us_states_current
+ description: 'The `{{ table.name }}` table contains current statistics for states
+ in the United States.
+
+
+ **Note**: The source file for this table is a single file that updates on a daily
+ basis. When Stitch replicates this table, it will replicate the entire contents
+ of the file, but only if the file has been modified since the integration''s last
+ replication job.
+
+ '
+ links:
+ doc-link: https://covidtracking.com/api#apistates---states-current-values
+ singer-schema: https://github.com/singer-io/tap-covid-19/blob/master/tap_covid_19/schemas/c19_trk_us_states_current.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: __sdc_row_number
+ replication-key: git_last_modified
+- name: c19_trk_us_states_daily
+ description: 'The `{{ table.name }}` table contains historical data for states in
+ the United States, aggregated by day. **Note**: {{ integration.display_name }}
+ updates this data every day at 4PM ET.
+
+
+ **Note**: The source file for this table is a single file that updates on a daily
+ basis. When Stitch replicates this table, it will replicate the entire contents
+ of the file, but only if the file has been modified since the integration''s last
+ replication job.
+
+ '
+ links:
+ doc-link: https://covidtracking.com/api#apistatesdaily---states-historical-data
+ singer-schema: https://github.com/singer-io/tap-covid-19/blob/master/tap_covid_19/schemas/c19_trk_us_states_daily.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: __sdc_row_number
+ replication-key: git_last_modified
+- name: c19_trk_us_states_info
+ description: 'The `{{ table.name }}` table contains information about states in
+ the United States.
+
+
+ **Note**: The source file for this table is a single file that updates on a daily
+ basis. When Stitch replicates this table, it will replicate the entire contents
+ of the file, but only if the file has been modified since the integration''s last
+ replication job.
+
+ '
+ links:
+ doc-link: https://covidtracking.com/api#apistatesinfo---states-information
+ singer-schema: https://github.com/singer-io/tap-covid-19/blob/master/tap_covid_19/schemas/c19_trk_us_states_info.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: __sdc_row_number
+ replication-key: git_last_modified
+- name: c19_trk_us_states_kff_hospital_beds
+ description: 'The `{{ table.name }}` table contains statistics about hospital beds
+ per 1,000 population, segmented by hospital ownership type.
+
+
+ **Note**: The source file for this table is a single file that updates on a daily
+ basis. When Stitch replicates this table, it will replicate the entire contents
+ of the file, but only if the file has been modified since the integration''s last
+ replication job.
+
+ '
+ links:
+ doc-link: https://www.kff.org/other/state-indicator/beds-by-ownership/?currentTimeframe=0&sortModel=%7B%22colId%22:%22Location%22,%22sort%22:%22asc%22%7D
+ singer-schema: https://github.com/singer-io/tap-covid-19/blob/master/tap_covid_19/schemas/c19_trk_us_states_kff_hospital_beds.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: __sdc_row_number
+ replication-key: git_last_modified
+- name: eu_daily
+ description: 'The `{{ table.name }}` table contains statistics for the European
+ Union, aggregated by day. This data is sourced from the [covid19-eu-data](https://github.com/covid19-eu-zh/covid19-eu-data){:target="new"}
+ GitHub repository.
+
+ '
+ links:
+ doc-link: https://github.com/covid19-eu-zh/covid19-eu-data
+ singer-schema: https://github.com/singer-io/tap-covid-19/blob/master/tap_covid_19/schemas/eu_daily.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - __sdc_row_number
+ - git_path
+ replication-key: git_last_modified
+- name: eu_ecdc_daily
+ description: 'The `{{ table.name }}` table contains statistics reported to the European
+ Centre for Disease Prevention and Control, segmented by day.
+
+ '
+ links:
+ doc-link: https://github.com/covid19-eu-zh/covid19-eu-data
+ singer-schema: https://github.com/singer-io/tap-covid-19/blob/master/tap_covid_19/schemas/eu_ecdc_daily.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - __sdc_row_number
+ - git_path
+ replication-key: git_last_modified
+- name: italy_national_daily
+ description: 'The `{{ table.name }}` table contains statistics for Italy, segmented
+ by day.
+
+ '
+ links:
+ doc-link: https://github.com/pcm-dpc/COVID-19#andamento-nazionale
+ singer-schema: https://github.com/singer-io/tap-covid-19/blob/master/tap_covid_19/schemas/italy_national_daily.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - __sdc_row_number
+ - git_path
+ replication-key: git_last_modified
+- name: italy_provincial_daily
+ description: 'The `{{ table.name }}` table contains statistics for Italian provinces,
+ segmented by day.
+
+ '
+ links:
+ doc-link: https://github.com/pcm-dpc/COVID-19#dati-per-provincia
+ singer-schema: https://github.com/singer-io/tap-covid-19/blob/master/tap_covid_19/schemas/italy_provincial_daily.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - __sdc_row_number
+ - git_path
+ replication-key: git_last_modified
+- name: italy_regional_daily
+ description: 'The `{{ table.name }}` table contains statistics for Italian regions,
+ segmented by day.
+
+ '
+ links:
+ doc-link: https://github.com/pcm-dpc/COVID-19#dati-per-regione
+ singer-schema: https://github.com/singer-io/tap-covid-19/blob/master/tap_covid_19/schemas/italy_regional_daily.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - __sdc_row_number
+ - git_path
+ replication-key: git_last_modified
+- name: jh_csse_daily
+ description: 'The `{{ table.name }}` table contains data collected by [Johns Hopkins
+ CSSE](https://github.com/CSSEGISandData/COVID-19){:target="new"}.
+
+ '
+ links:
+ doc-link: https://github.com/CSSEGISandData/COVID-19
+ singer-schema: https://github.com/singer-io/tap-covid-19/blob/master/tap_covid_19/schemas/jh_csse_daily.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - __sdc_row_number
+ - git_path
+ replication-key: git_last_modified
+- name: neherlab_case_counts
+ description: 'The `{{ table.name }}` table contains [Neherlab Scenarios Data](https://github.com/neherlab/covid19_scenarios){:target="new"}
+ from [Neherlab Biozentrum, Center for Computational Biology](https://neherlab.org/){:target="new"}.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-covid-19/blob/master/tap_covid_19/schemas/neherlab_case_counts.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - __sdc_row_number
+ - git_path
+ replication-key: git_last_modified
+- name: neherlab_country_codes
+ description: 'The `{{ table.name }}` table contains [Neherlab Scenarios Data](https://github.com/neherlab/covid19_scenarios){:target="new"}
+ from [Neherlab Biozentrum, Center for Computational Biology](https://neherlab.org/){:target="new"}.
+
+
+ **Note**: The source file for this table is a single file that updates on a daily
+ basis. When Stitch replicates this table, it will replicate the entire contents
+ of the file, but only if the file has been modified since the integration''s last
+ replication job.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-covid-19/blob/master/tap_covid_19/schemas/neherlab_country_codes.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: __sdc_row_number
+ replication-key: git_last_modified
+- name: neherlab_icu_capacity
+ description: 'The `{{ table.name }}` table contains [Neherlab Scenarios Data](https://github.com/neherlab/covid19_scenarios){:target="new"}
+ from [Neherlab Biozentrum, Center for Computational Biology](https://neherlab.org/){:target="new"}.
+
+
+ **Note**: The source file for this table is a single file that updates on a daily
+ basis. When Stitch replicates this table, it will replicate the entire contents
+ of the file, but only if the file has been modified since the integration''s last
+ replication job.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-covid-19/blob/master/tap_covid_19/schemas/neherlab_icu_capacity.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - __sdc_row_number
+ - git_path
+ replication-key: git_last_modified
+- name: neherlab_population
+ description: 'The `{{ table.name }}` table contains [Neherlab Scenarios Data](https://github.com/neherlab/covid19_scenarios){:target="new"}
+ from [Neherlab Biozentrum, Center for Computational Biology](https://neherlab.org/){:target="new"}.
+
+
+ **Note**: The source file for this table is a single file that updates on a daily
+ basis. When Stitch replicates this table, it will replicate the entire contents
+ of the file, but only if the file has been modified since the integration''s last
+ replication job.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-covid-19/blob/master/tap_covid_19/schemas/neherlab_population.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - __sdc_row_number
+ - git_path
+ replication-key: git_last_modified
+- name: nytimes_us_counties
+ description: "The `{{ table.name }}` table contains data \n\n**Note**: The source\
+ \ file for this table is a single file that updates on a daily basis. When Stitch\
+ \ replicates this table, it will replicate the entire contents of the file, but\
+ \ only if the file has been modified since the integration's last replication\
+ \ job.\n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-covid-19/blob/master/tap_covid_19/schemas/nytimes_us_counties.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: __sdc_row_number
+ replication-key: git_last_modified
+- name: nytimes_us_states
+ description: 'The `{{ table.name }}` table contains data collected by [Johns Hopkins
+ CSSE](https://github.com/CSSEGISandData/COVID-19){:target="new"}.
+
+
+ **Note**: The source file for this table is a single file that updates on a daily
+ basis. When Stitch replicates this table, it will replicate the entire contents
+ of the file, but only if the file has been modified since the integration''s last
+ replication job.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-covid-19/blob/master/tap_covid_19/schemas/nytimes_us_states.json
+ table-details:
+ replication-method: Full Table
+ primary-key: __sdc_row_number
+ replication-key: git_last_modified
diff --git a/_data/taps/schemas/covid-19/v1/json/c19_trk_us_daily.json b/_data/taps/schemas/covid-19/v1/json/c19_trk_us_daily.json
new file mode 100644
index 000000000..2da623297
--- /dev/null
+++ b/_data/taps/schemas/covid-19/v1/json/c19_trk_us_daily.json
@@ -0,0 +1,159 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "__sdc_row_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "date_checked": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "death": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "death_increase": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "git_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_last_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "git_owner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hospitalized": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "hospitalized_increase": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "negative": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "negative_increase": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pending": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pos_neg": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "positive": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "positive_increase": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "states": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_test_results": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_test_results_increase": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/covid-19/v1/json/c19_trk_us_population_counties.json b/_data/taps/schemas/covid-19/v1/json/c19_trk_us_population_counties.json
new file mode 100644
index 000000000..170f19bd2
--- /dev/null
+++ b/_data/taps/schemas/covid-19/v1/json/c19_trk_us_population_counties.json
@@ -0,0 +1,99 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "__sdc_row_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "county": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "geo_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_last_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "git_owner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pop_density": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "population": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/covid-19/v1/json/c19_trk_us_population_states.json b/_data/taps/schemas/covid-19/v1/json/c19_trk_us_population_states.json
new file mode 100644
index 000000000..3ebaa5b63
--- /dev/null
+++ b/_data/taps/schemas/covid-19/v1/json/c19_trk_us_population_states.json
@@ -0,0 +1,93 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "__sdc_row_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "geo_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_last_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "git_owner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pop_density": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "population": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/covid-19/v1/json/c19_trk_us_population_states_age_groups.json b/_data/taps/schemas/covid-19/v1/json/c19_trk_us_population_states_age_groups.json
new file mode 100644
index 000000000..b529a58d8
--- /dev/null
+++ b/_data/taps/schemas/covid-19/v1/json/c19_trk_us_population_states_age_groups.json
@@ -0,0 +1,99 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "__sdc_row_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "agegroup": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "geo_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_last_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "git_owner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pct_pop": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "population": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/covid-19/v1/json/c19_trk_us_states_acs_health_insurance.json b/_data/taps/schemas/covid-19/v1/json/c19_trk_us_states_acs_health_insurance.json
new file mode 100644
index 000000000..3214116a0
--- /dev/null
+++ b/_data/taps/schemas/covid-19/v1/json/c19_trk_us_states_acs_health_insurance.json
@@ -0,0 +1,141 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "__sdc_row_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "acs_variable": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "age_group": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "concept": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "coverage_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "employed": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "estimate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "estimate_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "geo_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_last_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "git_owner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "labor_force": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "margin_of_error": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/covid-19/v1/json/c19_trk_us_states_current.json b/_data/taps/schemas/covid-19/v1/json/c19_trk_us_states_current.json
new file mode 100644
index 000000000..dedd0d584
--- /dev/null
+++ b/_data/taps/schemas/covid-19/v1/json/c19_trk_us_states_current.json
@@ -0,0 +1,177 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "__sdc_row_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "check_time_et": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "commercial_score": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "date_checked": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "death": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fips": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_last_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "git_owner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "grade": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hospitalized": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_update_et": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "negative": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "negative_regular_score": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pending": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "positive": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "positive_score": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "score": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_test_results": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/covid-19/v1/json/c19_trk_us_states_daily.json b/_data/taps/schemas/covid-19/v1/json/c19_trk_us_states_daily.json
new file mode 100644
index 000000000..81e3ea048
--- /dev/null
+++ b/_data/taps/schemas/covid-19/v1/json/c19_trk_us_states_daily.json
@@ -0,0 +1,159 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "__sdc_row_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "date_checked": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "death": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "death_increase": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fips": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_last_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "git_owner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hospitalized": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "hospitalized_increase": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "negative": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "negative_increase": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pending": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "positive": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "positive_increase": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_test_results": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_test_results_increase": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/covid-19/v1/json/c19_trk_us_states_info.json b/_data/taps/schemas/covid-19/v1/json/c19_trk_us_states_info.json
new file mode 100644
index 000000000..14512d6cf
--- /dev/null
+++ b/_data/taps/schemas/covid-19/v1/json/c19_trk_us_states_info.json
@@ -0,0 +1,123 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "__sdc_row_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "covid19_site": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "covid19_site_old": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "covid19_site_secondary": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fips": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_last_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "git_owner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pui": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pum": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "twitter": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/covid-19/v1/json/c19_trk_us_states_kff_hospital_beds.json b/_data/taps/schemas/covid-19/v1/json/c19_trk_us_states_kff_hospital_beds.json
new file mode 100644
index 000000000..174a76c4f
--- /dev/null
+++ b/_data/taps/schemas/covid-19/v1/json/c19_trk_us_states_kff_hospital_beds.json
@@ -0,0 +1,99 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "__sdc_row_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "for_profit": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "git_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_last_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "git_owner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "non_profit": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state_local_government": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "state_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/covid-19/v1/json/eu_daily.json b/_data/taps/schemas/covid-19/v1/json/eu_daily.json
new file mode 100644
index 000000000..34aac4352
--- /dev/null
+++ b/_data/taps/schemas/covid-19/v1/json/eu_daily.json
@@ -0,0 +1,177 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "__sdc_row_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cases": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cases_100k_pop": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cases_lower": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cases_upper": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "datetime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deaths": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "git_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_last_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "git_owner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hospitalized": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "intensive_care": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lau": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nuts_1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nuts_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nuts_3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "population": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "quarantine": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "recovered": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tests": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/covid-19/v1/json/eu_ecdc_daily.json b/_data/taps/schemas/covid-19/v1/json/eu_ecdc_daily.json
new file mode 100644
index 000000000..6d92e8a63
--- /dev/null
+++ b/_data/taps/schemas/covid-19/v1/json/eu_ecdc_daily.json
@@ -0,0 +1,93 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "__sdc_row_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cases": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "datetime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deaths": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "git_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_last_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "git_owner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/covid-19/v1/json/italy_national_daily.json b/_data/taps/schemas/covid-19/v1/json/italy_national_daily.json
new file mode 100644
index 000000000..4b87f1269
--- /dev/null
+++ b/_data/taps/schemas/covid-19/v1/json/italy_national_daily.json
@@ -0,0 +1,159 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "__sdc_row_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "date_of_notification": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "datetime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deaths": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discharged_recovered": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "git_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_last_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "git_owner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "home_isolation": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "hospitalized_with_symptoms": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "intensive_care": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "new_currently_positive": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "note_en": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note_it": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tested": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_cases": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_currently_positive": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_hospitalized": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/covid-19/v1/json/italy_provincial_daily.json b/_data/taps/schemas/covid-19/v1/json/italy_provincial_daily.json
new file mode 100644
index 000000000..55205080b
--- /dev/null
+++ b/_data/taps/schemas/covid-19/v1/json/italy_provincial_daily.json
@@ -0,0 +1,149 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "__sdc_row_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "date_of_notification": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "datetime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "git_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_last_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "git_owner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lat": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "long": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "note_en": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note_it": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province_abbr": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_cases": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/covid-19/v1/json/italy_regional_daily.json b/_data/taps/schemas/covid-19/v1/json/italy_regional_daily.json
new file mode 100644
index 000000000..bcb673952
--- /dev/null
+++ b/_data/taps/schemas/covid-19/v1/json/italy_regional_daily.json
@@ -0,0 +1,185 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "__sdc_row_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "date_of_notification": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "datetime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deaths": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discharged_recovered": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "git_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_last_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "git_owner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "home_isolation": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "hospitalized_with_symptoms": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "intensive_care": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lat": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "long": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "new_currently_positive": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "note_en": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note_it": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tested": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_cases": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_currently_positive": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_hospitalized": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/covid-19/v1/json/jh_csse_daily.json b/_data/taps/schemas/covid-19/v1/json/jh_csse_daily.json
new file mode 100644
index 000000000..cfcabe850
--- /dev/null
+++ b/_data/taps/schemas/covid-19/v1/json/jh_csse_daily.json
@@ -0,0 +1,167 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "__sdc_row_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "admin_area": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "combined_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "confirmed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "country_region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_region_cleansed": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "datetime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deaths": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fips": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_last_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "git_owner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_a_cruise": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_update": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "latitude": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "longitude": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "province_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province_state_cleansed": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recovered": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/covid-19/v1/json/neherlab_case_counts.json b/_data/taps/schemas/covid-19/v1/json/neherlab_case_counts.json
new file mode 100644
index 000000000..2c4c0fa3a
--- /dev/null
+++ b/_data/taps/schemas/covid-19/v1/json/neherlab_case_counts.json
@@ -0,0 +1,111 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "__sdc_row_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cases": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "datetime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deaths": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "git_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_last_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "git_owner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hospitalized": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "icu": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "location": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recovered": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/covid-19/v1/json/neherlab_country_codes.json b/_data/taps/schemas/covid-19/v1/json/neherlab_country_codes.json
new file mode 100644
index 000000000..fd5d53e42
--- /dev/null
+++ b/_data/taps/schemas/covid-19/v1/json/neherlab_country_codes.json
@@ -0,0 +1,129 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "__sdc_row_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "alpha_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "alpha_3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_last_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "git_owner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "intermediate_region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "intermediate_region_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iso_3166_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sub_region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sub_region_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/covid-19/v1/json/neherlab_icu_capacity.json b/_data/taps/schemas/covid-19/v1/json/neherlab_icu_capacity.json
new file mode 100644
index 000000000..43d3205eb
--- /dev/null
+++ b/_data/taps/schemas/covid-19/v1/json/neherlab_icu_capacity.json
@@ -0,0 +1,117 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "__sdc_row_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "acute_care": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "acute_care_per_100k": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "critical_care": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "critical_care_per_100k": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "gdp": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "git_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_last_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "git_owner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "icu": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "imcu": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "percent_of_total": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/covid-19/v1/json/neherlab_population.json b/_data/taps/schemas/covid-19/v1/json/neherlab_population.json
new file mode 100644
index 000000000..82c658970
--- /dev/null
+++ b/_data/taps/schemas/covid-19/v1/json/neherlab_population.json
@@ -0,0 +1,111 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "__sdc_row_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_last_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "git_owner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hemisphere": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hospital_beds": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "icu_beds": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "imports_per_day": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "population": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suspected_cases_mar_1st": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/covid-19/v1/json/nytimes_us_counties.json b/_data/taps/schemas/covid-19/v1/json/nytimes_us_counties.json
new file mode 100644
index 000000000..1bdaa7c68
--- /dev/null
+++ b/_data/taps/schemas/covid-19/v1/json/nytimes_us_counties.json
@@ -0,0 +1,111 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "__sdc_row_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cases": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "county": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "datetime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deaths": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fips": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_last_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "git_owner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/covid-19/v1/json/nytimes_us_states.json b/_data/taps/schemas/covid-19/v1/json/nytimes_us_states.json
new file mode 100644
index 000000000..eac4b7621
--- /dev/null
+++ b/_data/taps/schemas/covid-19/v1/json/nytimes_us_states.json
@@ -0,0 +1,105 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "__sdc_row_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cases": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "datetime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deaths": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fips": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_last_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "git_owner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/crossbeam/v1/crossbeam-v1-tables.yml b/_data/taps/schemas/crossbeam/v1/crossbeam-v1-tables.yml
new file mode 100644
index 000000000..be399582f
--- /dev/null
+++ b/_data/taps/schemas/crossbeam/v1/crossbeam-v1-tables.yml
@@ -0,0 +1,61 @@
+tap: crossbeam
+version: '1'
+tables:
+- name: partners
+ description: 'The `{{ table.name }}` table contains information about your partners
+ as well as partner invitations sent to you in your {{ integration.display_name
+ }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-crossbeam/blob/master/tap_crossbeam/schemas/partners.json
+ api-method: https://developers.crossbeam.com/#dd64387a-b410-40f3-9993-e87f1df96963
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: partner_populations
+ description: 'The `{{ table.name }}` table contains information about the populations
+ that your partners have shared with you in your {{ integration.display_name }}
+ account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-crossbeam/blob/master/tap_crossbeam/schemas/partner_populations.json
+ api-method: https://developers.crossbeam.com/#53c31e87-71ed-4712-85b5-65877d0c0a0f
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: populations
+ description: 'The `{{ table.name }}` table contains information about all of your
+ populations in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-crossbeam/blob/master/tap_crossbeam/schemas/populations.json
+ api-method: https://developers.crossbeam.com/#514ea1c6-ca53-4bbb-9dee-e6793e7d1518
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: threads
+ description: 'The `{{ table.name }}` table contains information about all threads
+ initiated by you in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-crossbeam/blob/master/tap_crossbeam/schemas/threads.json
+ api-method: https://developers.crossbeam.com/#4ab89b70-2b52-4405-a625-eeb09c0e7cef
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: thread_timelines
+ description: 'The `{{ table.name }}` table contains information about the activity
+ for any given `thread-id` in your {{ integration.display_name }} account. This
+ is a child table of `threads`.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-crossbeam/blob/master/tap_crossbeam/schemas/thread_timelines.json
+ api-method: https://developers.crossbeam.com/#6315ece6-1805-4132-9337-13bf4607e77a
+ table-details:
+ replication-method: Full Table
+ primary-key: id
diff --git a/_data/taps/schemas/crossbeam/v1/json/partner_populations.json b/_data/taps/schemas/crossbeam/v1/json/partner_populations.json
new file mode 100644
index 000000000..2c97513a9
--- /dev/null
+++ b/_data/taps/schemas/crossbeam/v1/json/partner_populations.json
@@ -0,0 +1,29 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organization_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "population_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/crossbeam/v1/json/partners.json b/_data/taps/schemas/crossbeam/v1/json/partners.json
new file mode 100644
index 000000000..9121fca4e
--- /dev/null
+++ b/_data/taps/schemas/crossbeam/v1/json/partners.json
@@ -0,0 +1,83 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "clearbit_domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "logo_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "users": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/crossbeam/v1/json/populations.json b/_data/taps/schemas/crossbeam/v1/json/populations.json
new file mode 100644
index 000000000..921a2de20
--- /dev/null
+++ b/_data/taps/schemas/crossbeam/v1/json/populations.json
@@ -0,0 +1,133 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "base_schema": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "base_table": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "current_version": {
+ "additionalProperties": false,
+ "properties": {
+ "first_processed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "filter_expression": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "filter_parts": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "column": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "schema": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "table": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "population_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/crossbeam/v1/json/thread_timelines.json b/_data/taps/schemas/crossbeam/v1/json/thread_timelines.json
new file mode 100644
index 000000000..eb60b1b64
--- /dev/null
+++ b/_data/taps/schemas/crossbeam/v1/json/thread_timelines.json
@@ -0,0 +1,83 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "acting_organization_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "event_data": {
+ "additionalProperties": false,
+ "properties": {
+ "acting_user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_private": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "message": {
+ "additionalProperties": false,
+ "properties": {
+ "content": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "edited_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/crossbeam/v1/json/threads.json b/_data/taps/schemas/crossbeam/v1/json/threads.json
new file mode 100644
index 000000000..47e0e8bc1
--- /dev/null
+++ b/_data/taps/schemas/crossbeam/v1/json/threads.json
@@ -0,0 +1,125 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "author_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "company_domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "directionality": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_open": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_unread": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_comment_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_viewed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "organization_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "owner_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "partner_organization_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "partner_owner_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "person_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "record_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_messages": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/darksky/v1/darksky-v1-tables.yml b/_data/taps/schemas/darksky/v1/darksky-v1-tables.yml
new file mode 100644
index 000000000..8c1026615
--- /dev/null
+++ b/_data/taps/schemas/darksky/v1/darksky-v1-tables.yml
@@ -0,0 +1,20 @@
+tap: darksky
+version: '1'
+tables:
+- name: forecast
+ description: "The `forecasts` table contains weather conditions for a particular\
+ \ date and location. The locations are determined by the locations entered into\
+ \ the **Locations** field in Stitch.\n\n**Note**: The units data points are returned\
+ \ in is determined by the value entered into the **Units** field in Stitch. For\
+ \ example: If `us` is entered, data will be returned in Imperial units. \n"
+ links:
+ doc-link: https://darksky.net/dev/docs#overview
+ singer-schema: https://github.com/singer-io/tap-darksky/blob/master/tap_darksky/schemas/forecast.json
+ api-method: https://darksky.net/dev/docs#time-machine-request
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - forecast_date
+ - latitude
+ - longitude
+ replication-key: forecast_date
diff --git a/_data/taps/schemas/darksky/v1/json/forecast.json b/_data/taps/schemas/darksky/v1/json/forecast.json
new file mode 100644
index 000000000..8682f3e1c
--- /dev/null
+++ b/_data/taps/schemas/darksky/v1/json/forecast.json
@@ -0,0 +1,498 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "daily": {
+ "additionalProperties": false,
+ "properties": {
+ "apparent_temperature_high": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "apparent_temperature_high_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "apparent_temperature_low": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "apparent_temperature_low_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "apparent_temperature_max": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "apparent_temperature_max_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "apparent_temperature_min": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "apparent_temperature_min_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cloud_cover": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "dew_point": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "humidity": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "icon": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "moon_phase": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "precip_accumululation": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "precip_intensity": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "precip_intensity_max": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "precip_intensity_max_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "precip_probability": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "precip_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pressure": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "summary": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sunrise_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "sunset_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "temperature_high": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "temperature_high_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "temperature_low": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "temperature_low_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "temperature_max": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "temperature_max_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "temperature_min": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "temperature_min_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "uv_index": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uv_index_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "visibility": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "wind_bearing": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "wind_speed": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "end_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "flags": {
+ "additionalProperties": false,
+ "properties": {
+ "nearest_station": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "sources": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "units": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "forecast_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "hourly": {
+ "additionalProperties": false,
+ "properties": {
+ "data": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "apparent_temperature": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cloud_cover": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "dew_point": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "humidity": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "icon": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ozone": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "precip_intensity": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "precip_probability": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "precip_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pressure": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "summary": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "temperature": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "uv_index": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "visibility": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "wind_bearing": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "wind_gust": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "wind_speed": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "icon": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "summary": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "latitude": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "local_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "longitude": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "offset": {
+ "multipleOf": 0.001,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/deputy-v1-foreign-keys.yml b/_data/taps/schemas/deputy/v1/deputy-v1-foreign-keys.yml
new file mode 100644
index 000000000..eacb41710
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/deputy-v1-foreign-keys.yml
@@ -0,0 +1,19338 @@
+tap: deputy
+version: '1'
+keys:
+ addresses_Address:
+ - table: addresses
+ keys:
+ - Id
+ - table: companies
+ keys:
+ - Address
+ - table: employee_history
+ keys:
+ - MainAddress
+ - PostalAddress
+ - EmergencyAddress
+ - table: operational_units
+ keys:
+ - Address
+ categories_EmploymentCategory:
+ - table: categories
+ keys:
+ - Id
+ - table: employee_contracts
+ keys:
+ - EmploymentCategory
+ - table: employment_conditions
+ keys:
+ - EmploymentCategory
+ companies_Company:
+ - table: companies
+ keys:
+ - Id
+ - ParentCompany
+ - table: company_periods
+ keys:
+ - Company
+ - table: employee_history
+ keys:
+ - Company
+ - table: employee_workplaces
+ keys:
+ - Company
+ - table: kiosks
+ keys:
+ - Company
+ - table: leaves
+ keys:
+ - Company
+ - table: system_usage_tracking
+ keys:
+ - CompanyId
+ company_periods_Period:
+ - table: company_periods
+ keys:
+ - Id
+ - table: employee_paycycles
+ keys:
+ - PeriodId
+ contacts_Contact:
+ - table: contacts
+ keys:
+ - Id
+ - table: companies
+ keys:
+ - Contact
+ - table: operational_units
+ keys:
+ - Contact
+ countries_Country:
+ - table: countries
+ keys:
+ - Id
+ - table: geo
+ keys:
+ - Country
+ - table: states
+ keys:
+ - Country
+ custom_field_data_CustomFieldData:
+ - table: custom_field_data
+ keys:
+ - Id
+ - table: timesheets
+ keys:
+ - CustomFieldData
+ custom_fields_CustomField:
+ - table: custom_fields
+ keys:
+ - Id
+ employees_Employee:
+ - table: addresses
+ keys:
+ - Creator
+ - table: categories
+ keys:
+ - Creator
+ - table: comments
+ keys:
+ - Creator
+ - table: companies
+ keys:
+ - Creator
+ - table: company_periods
+ keys:
+ - Creator
+ - table: contacts
+ keys:
+ - Creator
+ - table: countries
+ keys:
+ - Creator
+ - table: custom_app_data
+ keys:
+ - Employee
+ - Creator
+ - table: custom_field_data
+ keys:
+ - Creator
+ - table: custom_fields
+ keys:
+ - Creator
+ - table: employee_agreement_history
+ keys:
+ - Creator
+ - table: employee_agreements
+ keys:
+ - EmployeeId
+ - Creator
+ - table: employee_appraisal
+ keys:
+ - Creator
+ - Employee
+ - table: employee_availability
+ keys:
+ - Employee
+ - Creator
+ - table: employee_contract_leave_rules
+ keys:
+ - Creator
+ - table: employee_contracts
+ keys:
+ - Creator
+ - table: employee_history
+ keys:
+ - EmployeeId
+ - Creator
+ - table: employee_paycycle_returns
+ keys:
+ - Creator
+ - table: employee_paycycles
+ keys:
+ - EmployeeId
+ - Creator
+ - table: employee_roles
+ keys:
+ - Creator
+ - table: employee_salary_opunit_costing
+ keys:
+ - Employee
+ - Creator
+ - table: employee_workplaces
+ keys:
+ - EmployeeId
+ - Creator
+ - table: employment_conditions
+ keys:
+ - Creator
+ - table: events
+ keys:
+ - Creator
+ - table: geo
+ keys:
+ - Creator
+ - table: journal
+ keys:
+ - EmployeeId
+ - Creator
+ - table: kiosks
+ keys:
+ - Creator
+ - table: leave_accruals
+ keys:
+ - Employee
+ - Creator
+ - table: leave_pay_lines
+ keys:
+ - Creator
+ - table: leave_rules
+ keys:
+ - Creator
+ - table: leaves
+ keys:
+ - Employee
+ - Creator
+ - table: memos
+ keys:
+ - Creator
+ - table: operational_units
+ keys:
+ - Creator
+ - table: pay_periods
+ keys:
+ - Creator
+ - table: pay_rules
+ keys:
+ - Creator
+ - table: public_holidays
+ keys:
+ - Creator
+ - table: roster_opens
+ keys:
+ - Employee
+ - Creator
+ - table: roster_swaps
+ keys:
+ - Employee
+ - Creator
+ - table: rosters
+ keys:
+ - Employee
+ - ConfirmBy
+ - Creator
+ - table: sales_data
+ keys:
+ - Employee
+ - Creator
+ - table: schedules
+ keys:
+ - Creator
+ - table: sms_logs
+ keys:
+ - Creator
+ - table: states
+ keys:
+ - Creator
+ - table: stress_profiles
+ keys:
+ - Creator
+ - table: system_usage_balances
+ keys:
+ - Creator
+ - table: system_usage_tracking
+ keys:
+ - Creator
+ - table: task_group_setups
+ keys:
+ - Creator
+ - table: task_groups
+ keys:
+ - Creator
+ - table: task_opunit_configs
+ keys:
+ - Creator
+ - table: task_setups
+ keys:
+ - Creator
+ - table: tasks
+ keys:
+ - Creator
+ - table: teams
+ keys:
+ - LeaderEmployee
+ - Creator
+ - table: timesheet_pay_returns
+ keys:
+ - Creator
+ - table: timesheets
+ keys:
+ - Employee
+ - Creator
+ - table: training_modules
+ keys:
+ - Creator
+ - table: training_records
+ keys:
+ - Employee
+ - Creator
+ - table: webhooks
+ keys:
+ - Creator
+ employee_agreements_history_EmployeeAgreementHistory:
+ - table: employee_agreement_history
+ keys:
+ - Id
+ - table: employee_agreements
+ keys:
+ - HistoryId
+ - table: employee_paycycles
+ keys:
+ - EmployeeAgreementHistoryId
+ employee_agreements_EmployeeAgreement:
+ - table: employee_agreement_history
+ keys:
+ - AgreementId
+ - table: employee_agreements
+ keys:
+ - Id
+ - table: employee_paycycles
+ keys:
+ - EmployeeAgreementId
+ - table: employee_salary_opunit_costing
+ keys:
+ - EmployeeAgreement
+ - table: employee_workplaces
+ keys:
+ - Agreement1
+ - Agreement2
+ - Agreement3
+ - table: leave_pay_lines
+ keys:
+ - EmployeeAgreement
+ - table: timesheets
+ keys:
+ - EmployeeAgreement
+ employee_availability_:
+ - table: employee_availability
+ keys:
+ - Id
+ employee_contracts_Contract:
+ - table: employee_agreement_history
+ keys:
+ - Contract
+ - table: employee_agreements
+ keys:
+ - Contract
+ - table: employee_contract_leave_rules
+ keys:
+ - ContractId
+ - table: employee_contracts
+ keys:
+ - Id
+ employee_contract_leave_rules_:
+ - table: employee_contract_leave_rules
+ keys:
+ - Id
+ employee_history_EmployeeHistory:
+ - table: employee_history
+ keys:
+ - Id
+ - table: leaves
+ keys:
+ - EmployeeHistory
+ - table: timesheets
+ keys:
+ - EmployeeHistory
+ employee_paycycle_returns_PaycycleId:
+ - table: employee_paycycle_returns
+ keys:
+ - Id
+ - table: timesheets
+ keys:
+ - PaycycleId
+ employee_paycycles_Paycycle:
+ - table: employee_paycycle_returns
+ keys:
+ - PaycycleId
+ - table: employee_paycycles
+ keys:
+ - Id
+ employee_roles_Role:
+ - table: employee_history
+ keys:
+ - Role
+ - table: employee_roles
+ keys:
+ - Id
+ employment_conditions_EmploymentCondition:
+ - table: employee_contracts
+ keys:
+ - EmploymentCondition
+ - table: employment_conditions
+ keys:
+ - Id
+ events_Event:
+ - table: events
+ keys:
+ - Id
+ journal_Journal:
+ - table: journal
+ keys:
+ - Id
+ kiosk_Kiosk:
+ - table: kiosks
+ keys:
+ - Id
+ leaves_Leave:
+ - table: leave_pay_lines
+ keys:
+ - LeaveId
+ - table: leaves
+ keys:
+ - Id
+ - table: timesheets
+ keys:
+ - LeaveId
+ leave_accruals_LeaveAccrual:
+ - table: leave_accruals
+ keys:
+ - Id
+ leave_pay_lines_LeavePayLine:
+ - table: leave_pay_lines
+ keys:
+ - Id
+ leave_rules_LeaveRule:
+ - table: employee_contract_leave_rules
+ keys:
+ - LeaveRuleId
+ - table: leave_accruals
+ keys:
+ - LeaveRule
+ - table: leave_pay_lines
+ keys:
+ - LeaveRule
+ - table: leave_rules
+ keys:
+ - Id
+ - table: timesheets
+ keys:
+ - LeaveRule
+ operational_units_OpUnit:
+ - table: employee_salary_opunit_costing
+ keys:
+ - OpUnit
+ - table: operational_units
+ keys:
+ - Id
+ - ParentOperationalUnit
+ - table: rosters
+ keys:
+ - OperationalUnit
+ - table: sales_data
+ keys:
+ - OperationalUnit
+ - table: task_groups
+ keys:
+ - OpUnitId
+ - table: task_opunit_configs
+ keys:
+ - OpUnitId
+ - table: tasks
+ keys:
+ - OpUnitId
+ - table: timesheets
+ keys:
+ - OperationalUnit
+ pay_periods_PayPeriod:
+ - table: pay_periods
+ keys:
+ - Id
+ - table: company_periods
+ keys:
+ - PayPeriod
+ - table: employee_agreement_history
+ keys:
+ - PayPeriod
+ - table: employee_agreements
+ keys:
+ - PayPeriod
+ pay_rules_PayRule:
+ - table: employee_agreement_history
+ keys:
+ - SalaryPayRule
+ - table: employee_agreements
+ keys:
+ - SalaryPayRule
+ - table: employee_contract_leave_rules
+ keys:
+ - LoadingPayRule1
+ - LoadingPayRule2
+ - LoadingPayRule3
+ - table: pay_rules
+ keys:
+ - Id
+ - table: employee_contracts
+ keys:
+ - BasePayRule
+ - table: employee_paycycle_returns
+ keys:
+ - PayRule
+ - table: timesheet_pay_returns
+ keys:
+ - PayRule
+ rosters_Roster:
+ - table: roster_opens
+ keys:
+ - Roster
+ - table: roster_swaps
+ keys:
+ - SourceRoster
+ - TargetRoster
+ - table: rosters
+ keys:
+ - Id
+ - table: timesheets
+ keys:
+ - Roster
+ schedules_Schedule:
+ - table: employee_availability
+ keys:
+ - Schedule
+ - table: events
+ keys:
+ - Schedule
+ - table: operational_units
+ keys:
+ - RosterActiveHoursSchedule
+ - table: pay_rules
+ keys:
+ - Schedule
+ - table: schedules
+ keys:
+ - Id
+ - table: task_opunit_configs
+ keys:
+ - Schedule
+ - table: task_setups
+ keys:
+ - Schedule
+ system_usage_balances_BalanceId:
+ - table: system_usage_balances
+ keys:
+ - Id
+ - table: system_usage_tracking
+ keys:
+ - BalanceId
+ system_usage_tracking_TrackingId:
+ - table: system_usage_tracking
+ keys:
+ - Id
+ tasks_Task:
+ - table: tasks
+ keys:
+ - Id
+ task_group_setups_GroupSetupId:
+ - table: task_group_setups
+ keys:
+ - Id
+ - table: task_groups
+ keys:
+ - GroupSetupId
+ - table: task_setups
+ keys:
+ - GroupId
+ task_groups_GroupId:
+ - table: task_groups
+ keys:
+ - Id
+ - table: task_opunit_configs
+ keys:
+ - TaskGroupId
+ - table: tasks
+ keys:
+ - GroupId
+ task_opunit_configs_:
+ - table: task_opunit_configs
+ keys:
+ - Id
+ task_setups_TaskSetupId:
+ - table: task_opunit_configs
+ keys:
+ - TaskSetupId
+ - table: task_setups
+ keys:
+ - Id
+ - table: tasks
+ keys:
+ - TaskSetupId
+ timesheets_Timesheet:
+ - table: leave_pay_lines
+ keys:
+ - TimesheetId
+ - table: rosters
+ keys:
+ - MatchedByTimesheet
+ - table: timesheet_pay_returns
+ keys:
+ - Timesheet
+ - table: timesheets
+ keys:
+ - Id
+ training_modules_Module:
+ - table: training_modules
+ keys:
+ - Id
+ - table: training_records
+ keys:
+ - Module
+tables:
+- table-name: addresses
+ join:
+ - table-name: companies
+ keys:
+ - key: Id
+ foreign-key: Address
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Id
+ foreign-key: MainAddress
+ - key: Id
+ foreign-key: PostalAddress
+ - key: Id
+ foreign-key: EmergencyAddress
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Id
+ foreign-key: Address
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: companies
+ join:
+ - table-name: addresses
+ keys:
+ - key: Address
+ foreign-key: Id
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Address
+ foreign-key: MainAddress
+ - key: Address
+ foreign-key: PostalAddress
+ - key: Address
+ foreign-key: EmergencyAddress
+ - key: Id
+ foreign-key: Company
+ - key: ParentCompany
+ foreign-key: Company
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Address
+ foreign-key: Address
+ - key: Contact
+ foreign-key: Contact
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Id
+ foreign-key: Company
+ - key: ParentCompany
+ foreign-key: Company
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Id
+ foreign-key: Company
+ - key: ParentCompany
+ foreign-key: Company
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Id
+ foreign-key: Company
+ - key: ParentCompany
+ foreign-key: Company
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Id
+ foreign-key: Company
+ - key: ParentCompany
+ foreign-key: Company
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Id
+ foreign-key: CompanyId
+ - key: ParentCompany
+ foreign-key: CompanyId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Contact
+ foreign-key: Id
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: employee_history
+ join:
+ - table-name: addresses
+ keys:
+ - key: MainAddress
+ foreign-key: Id
+ - key: PostalAddress
+ foreign-key: Id
+ - key: EmergencyAddress
+ foreign-key: Id
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: MainAddress
+ foreign-key: Address
+ - key: PostalAddress
+ foreign-key: Address
+ - key: EmergencyAddress
+ foreign-key: Address
+ - key: Company
+ foreign-key: Id
+ - key: Company
+ foreign-key: ParentCompany
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: MainAddress
+ foreign-key: Address
+ - key: PostalAddress
+ foreign-key: Address
+ - key: EmergencyAddress
+ foreign-key: Address
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Company
+ foreign-key: Company
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Company
+ foreign-key: Company
+ - key: EmployeeId
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Company
+ foreign-key: Company
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Company
+ foreign-key: Company
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: EmployeeHistory
+ - table-name: system_usage_tracking
+ keys:
+ - key: Company
+ foreign-key: CompanyId
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: EmployeeId
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: EmployeeId
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Role
+ foreign-key: Id
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: EmployeeId
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: EmployeeId
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: EmployeeHistory
+ - table-name: training_modules
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+- table-name: operational_units
+ join:
+ - table-name: addresses
+ keys:
+ - key: Address
+ foreign-key: Id
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Address
+ foreign-key: Address
+ - key: Contact
+ foreign-key: Contact
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Address
+ foreign-key: MainAddress
+ - key: Address
+ foreign-key: PostalAddress
+ - key: Address
+ foreign-key: EmergencyAddress
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Contact
+ foreign-key: Id
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: RosterActiveHoursSchedule
+ foreign-key: Schedule
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: OpUnit
+ - key: ParentOperationalUnit
+ foreign-key: OpUnit
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: RosterActiveHoursSchedule
+ foreign-key: Schedule
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: RosterActiveHoursSchedule
+ foreign-key: Schedule
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: OperationalUnit
+ - key: ParentOperationalUnit
+ foreign-key: OperationalUnit
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: OperationalUnit
+ - key: ParentOperationalUnit
+ foreign-key: OperationalUnit
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: RosterActiveHoursSchedule
+ foreign-key: Id
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: OpUnitId
+ - key: ParentOperationalUnit
+ foreign-key: OpUnitId
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: OpUnitId
+ - key: ParentOperationalUnit
+ foreign-key: OpUnitId
+ - key: RosterActiveHoursSchedule
+ foreign-key: Schedule
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: RosterActiveHoursSchedule
+ foreign-key: Schedule
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: OpUnitId
+ - key: ParentOperationalUnit
+ foreign-key: OpUnitId
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: OperationalUnit
+ - key: ParentOperationalUnit
+ foreign-key: OperationalUnit
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: categories
+ join:
+ - table-name: employee_contracts
+ keys:
+ - key: Id
+ foreign-key: EmploymentCategory
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Id
+ foreign-key: EmploymentCategory
+ - key: Creator
+ foreign-key: Creator
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: employee_contracts
+ join:
+ - table-name: categories
+ keys:
+ - key: EmploymentCategory
+ foreign-key: Id
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: EmploymentCategory
+ foreign-key: EmploymentCategory
+ - key: Creator
+ foreign-key: Creator
+ - key: EmploymentCondition
+ foreign-key: Id
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: Contract
+ - key: BasePayRule
+ foreign-key: SalaryPayRule
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: Contract
+ - key: BasePayRule
+ foreign-key: SalaryPayRule
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: ContractId
+ - key: BasePayRule
+ foreign-key: LoadingPayRule1
+ - key: BasePayRule
+ foreign-key: LoadingPayRule2
+ - key: BasePayRule
+ foreign-key: LoadingPayRule3
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: BasePayRule
+ foreign-key: PayRule
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: BasePayRule
+ foreign-key: Id
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: BasePayRule
+ foreign-key: PayRule
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: employment_conditions
+ join:
+ - table-name: categories
+ keys:
+ - key: EmploymentCategory
+ foreign-key: Id
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: EmploymentCategory
+ foreign-key: EmploymentCategory
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: EmploymentCondition
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: company_periods
+ join:
+ - table-name: companies
+ keys:
+ - key: Company
+ foreign-key: Id
+ - key: Company
+ foreign-key: ParentCompany
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Company
+ foreign-key: Company
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Company
+ foreign-key: Company
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Company
+ foreign-key: Company
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Company
+ foreign-key: Company
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Company
+ foreign-key: CompanyId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Id
+ foreign-key: PeriodId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: PayPeriod
+ foreign-key: PayPeriod
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - key: PayPeriod
+ foreign-key: PayPeriod
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: PayPeriod
+ foreign-key: Id
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: employee_workplaces
+ join:
+ - table-name: companies
+ keys:
+ - key: Company
+ foreign-key: Id
+ - key: Company
+ foreign-key: ParentCompany
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Company
+ foreign-key: Company
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Company
+ foreign-key: Company
+ - key: EmployeeId
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Company
+ foreign-key: Company
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Company
+ foreign-key: Company
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Company
+ foreign-key: CompanyId
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: addresses
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Agreement1
+ foreign-key: AgreementId
+ - key: Agreement2
+ foreign-key: AgreementId
+ - key: Agreement3
+ foreign-key: AgreementId
+ - table-name: employee_agreements
+ keys:
+ - key: EmployeeId
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Agreement1
+ foreign-key: Id
+ - key: Agreement2
+ foreign-key: Id
+ - key: Agreement3
+ foreign-key: Id
+ - table-name: employee_appraisal
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: EmployeeId
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Agreement1
+ foreign-key: EmployeeAgreementId
+ - key: Agreement2
+ foreign-key: EmployeeAgreementId
+ - key: Agreement3
+ foreign-key: EmployeeAgreementId
+ - table-name: employee_roles
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Agreement1
+ foreign-key: EmployeeAgreement
+ - key: Agreement2
+ foreign-key: EmployeeAgreement
+ - key: Agreement3
+ foreign-key: EmployeeAgreement
+ - table-name: employment_conditions
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: EmployeeId
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Agreement1
+ foreign-key: EmployeeAgreement
+ - key: Agreement2
+ foreign-key: EmployeeAgreement
+ - key: Agreement3
+ foreign-key: EmployeeAgreement
+ - table-name: leave_rules
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: EmployeeId
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Agreement1
+ foreign-key: EmployeeAgreement
+ - key: Agreement2
+ foreign-key: EmployeeAgreement
+ - key: Agreement3
+ foreign-key: EmployeeAgreement
+ - table-name: training_modules
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+- table-name: kiosks
+ join:
+ - table-name: companies
+ keys:
+ - key: Company
+ foreign-key: Id
+ - key: Company
+ foreign-key: ParentCompany
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Company
+ foreign-key: Company
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Company
+ foreign-key: Company
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Company
+ foreign-key: Company
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Company
+ foreign-key: Company
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Company
+ foreign-key: CompanyId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: leaves
+ join:
+ - table-name: companies
+ keys:
+ - key: Company
+ foreign-key: Id
+ - key: Company
+ foreign-key: ParentCompany
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Company
+ foreign-key: Company
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Company
+ foreign-key: Company
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeHistory
+ foreign-key: Id
+ - table-name: employee_workplaces
+ keys:
+ - key: Company
+ foreign-key: Company
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Company
+ foreign-key: Company
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Company
+ foreign-key: CompanyId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: addresses
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: LeaveId
+ - table-name: leave_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Employee
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeHistory
+ foreign-key: EmployeeHistory
+ - key: Id
+ foreign-key: LeaveId
+ - table-name: training_modules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+- table-name: system_usage_tracking
+ join:
+ - table-name: companies
+ keys:
+ - key: CompanyId
+ foreign-key: Id
+ - key: CompanyId
+ foreign-key: ParentCompany
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: CompanyId
+ foreign-key: Company
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: CompanyId
+ foreign-key: Company
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: CompanyId
+ foreign-key: Company
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: CompanyId
+ foreign-key: Company
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: CompanyId
+ foreign-key: Company
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: BalanceId
+ foreign-key: Id
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: employee_paycycles
+ join:
+ - table-name: company_periods
+ keys:
+ - key: PeriodId
+ foreign-key: Id
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: addresses
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeAgreementHistoryId
+ foreign-key: Id
+ - key: EmployeeAgreementId
+ foreign-key: AgreementId
+ - table-name: employee_agreements
+ keys:
+ - key: EmployeeId
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeAgreementHistoryId
+ foreign-key: HistoryId
+ - key: EmployeeAgreementId
+ foreign-key: Id
+ - table-name: employee_appraisal
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: EmployeeId
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: PaycycleId
+ - table-name: employee_roles
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeAgreementId
+ foreign-key: EmployeeAgreement
+ - table-name: employee_workplaces
+ keys:
+ - key: EmployeeId
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeAgreementId
+ foreign-key: Agreement1
+ - key: EmployeeAgreementId
+ foreign-key: Agreement2
+ - key: EmployeeAgreementId
+ foreign-key: Agreement3
+ - table-name: employment_conditions
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: EmployeeId
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeAgreementId
+ foreign-key: EmployeeAgreement
+ - table-name: leave_rules
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: EmployeeId
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeAgreementId
+ foreign-key: EmployeeAgreement
+ - table-name: training_modules
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+- table-name: contacts
+ join:
+ - table-name: companies
+ keys:
+ - key: Id
+ foreign-key: Contact
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Id
+ foreign-key: Contact
+ - key: Creator
+ foreign-key: Creator
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: countries
+ join:
+ - table-name: geo
+ keys:
+ - key: Id
+ foreign-key: Country
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Id
+ foreign-key: Country
+ - key: Creator
+ foreign-key: Creator
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: geo
+ join:
+ - table-name: countries
+ keys:
+ - key: Country
+ foreign-key: Id
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Country
+ foreign-key: Country
+ - key: Creator
+ foreign-key: Creator
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: states
+ join:
+ - table-name: countries
+ keys:
+ - key: Country
+ foreign-key: Id
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Country
+ foreign-key: Country
+ - key: Creator
+ foreign-key: Creator
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: custom_field_data
+ join:
+ - table-name: timesheets
+ keys:
+ - key: Id
+ foreign-key: CustomFieldData
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: timesheets
+ join:
+ - table-name: custom_field_data
+ keys:
+ - key: CustomFieldData
+ foreign-key: Id
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: addresses
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeAgreement
+ foreign-key: AgreementId
+ - table-name: employee_agreements
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeAgreement
+ foreign-key: Id
+ - table-name: employee_appraisal
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: LeaveRule
+ foreign-key: LeaveRuleId
+ - table-name: employee_contracts
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeHistory
+ foreign-key: Id
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: PaycycleId
+ foreign-key: Id
+ - table-name: employee_paycycles
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeAgreement
+ foreign-key: EmployeeAgreementId
+ - table-name: employee_roles
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeAgreement
+ foreign-key: EmployeeAgreement
+ - key: OperationalUnit
+ foreign-key: OpUnit
+ - table-name: employee_workplaces
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeAgreement
+ foreign-key: Agreement1
+ - key: EmployeeAgreement
+ foreign-key: Agreement2
+ - key: EmployeeAgreement
+ foreign-key: Agreement3
+ - table-name: employment_conditions
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: LeaveRule
+ foreign-key: LeaveRule
+ - table-name: leave_pay_lines
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeAgreement
+ foreign-key: EmployeeAgreement
+ - key: LeaveId
+ foreign-key: LeaveId
+ - key: LeaveRule
+ foreign-key: LeaveRule
+ - key: Id
+ foreign-key: TimesheetId
+ - table-name: leave_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: LeaveRule
+ foreign-key: Id
+ - table-name: leaves
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeHistory
+ foreign-key: EmployeeHistory
+ - key: LeaveId
+ foreign-key: Id
+ - table-name: memos
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: OperationalUnit
+ foreign-key: Id
+ - key: OperationalUnit
+ foreign-key: ParentOperationalUnit
+ - table-name: pay_periods
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Roster
+ foreign-key: Roster
+ - table-name: roster_swaps
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Roster
+ foreign-key: SourceRoster
+ - key: Roster
+ foreign-key: TargetRoster
+ - table-name: rosters
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: OperationalUnit
+ foreign-key: OperationalUnit
+ - key: Roster
+ foreign-key: Id
+ - key: Id
+ foreign-key: MatchedByTimesheet
+ - table-name: sales_data
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: OperationalUnit
+ foreign-key: OperationalUnit
+ - table-name: schedules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: OperationalUnit
+ foreign-key: OpUnitId
+ - table-name: task_opunit_configs
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: OperationalUnit
+ foreign-key: OpUnitId
+ - table-name: task_setups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: OperationalUnit
+ foreign-key: OpUnitId
+ - table-name: teams
+ keys:
+ - key: Employee
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: Timesheet
+ - table-name: training_modules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+- table-name: custom_fields
+ join:
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: comments
+ join:
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: custom_app_data
+ join:
+ - table-name: addresses
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Employee
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+- table-name: employee_agreement_history
+ join:
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: PayPeriod
+ foreign-key: PayPeriod
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: HistoryId
+ - key: AgreementId
+ foreign-key: Id
+ - key: Contract
+ foreign-key: Contract
+ - key: PayPeriod
+ foreign-key: PayPeriod
+ - key: SalaryPayRule
+ foreign-key: SalaryPayRule
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Contract
+ foreign-key: ContractId
+ - key: SalaryPayRule
+ foreign-key: LoadingPayRule1
+ - key: SalaryPayRule
+ foreign-key: LoadingPayRule2
+ - key: SalaryPayRule
+ foreign-key: LoadingPayRule3
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Contract
+ foreign-key: Id
+ - key: SalaryPayRule
+ foreign-key: BasePayRule
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: SalaryPayRule
+ foreign-key: PayRule
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: EmployeeAgreementHistoryId
+ - key: AgreementId
+ foreign-key: EmployeeAgreementId
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: AgreementId
+ foreign-key: EmployeeAgreement
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - key: AgreementId
+ foreign-key: Agreement1
+ - key: AgreementId
+ foreign-key: Agreement2
+ - key: AgreementId
+ foreign-key: Agreement3
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: AgreementId
+ foreign-key: EmployeeAgreement
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: PayPeriod
+ foreign-key: Id
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: SalaryPayRule
+ foreign-key: Id
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: SalaryPayRule
+ foreign-key: PayRule
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: AgreementId
+ foreign-key: EmployeeAgreement
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: employee_agreements
+ join:
+ - table-name: addresses
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: PayPeriod
+ foreign-key: PayPeriod
+ - table-name: contacts
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: HistoryId
+ foreign-key: Id
+ - key: Id
+ foreign-key: AgreementId
+ - key: Contract
+ foreign-key: Contract
+ - key: PayPeriod
+ foreign-key: PayPeriod
+ - key: SalaryPayRule
+ foreign-key: SalaryPayRule
+ - table-name: employee_appraisal
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Contract
+ foreign-key: ContractId
+ - key: SalaryPayRule
+ foreign-key: LoadingPayRule1
+ - key: SalaryPayRule
+ foreign-key: LoadingPayRule2
+ - key: SalaryPayRule
+ foreign-key: LoadingPayRule3
+ - table-name: employee_contracts
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Contract
+ foreign-key: Id
+ - key: SalaryPayRule
+ foreign-key: BasePayRule
+ - table-name: employee_history
+ keys:
+ - key: EmployeeId
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: SalaryPayRule
+ foreign-key: PayRule
+ - table-name: employee_paycycles
+ keys:
+ - key: EmployeeId
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: HistoryId
+ foreign-key: EmployeeAgreementHistoryId
+ - key: Id
+ foreign-key: EmployeeAgreementId
+ - table-name: employee_roles
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: EmployeeAgreement
+ - table-name: employee_workplaces
+ keys:
+ - key: EmployeeId
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: Agreement1
+ - key: Id
+ foreign-key: Agreement2
+ - key: Id
+ foreign-key: Agreement3
+ - table-name: employment_conditions
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: EmployeeId
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: EmployeeAgreement
+ - table-name: leave_rules
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: PayPeriod
+ foreign-key: Id
+ - table-name: pay_rules
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: SalaryPayRule
+ foreign-key: Id
+ - table-name: public_holidays
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: EmployeeId
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: SalaryPayRule
+ foreign-key: PayRule
+ - table-name: timesheets
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: EmployeeAgreement
+ - table-name: training_modules
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+- table-name: employee_appraisal
+ join:
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Employee
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Employee
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Creator
+- table-name: employee_availability
+ join:
+ - table-name: addresses
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Schedule
+ foreign-key: Schedule
+ - table-name: geo
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Schedule
+ foreign-key: RosterActiveHoursSchedule
+ - table-name: pay_periods
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Schedule
+ foreign-key: Schedule
+ - table-name: public_holidays
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Schedule
+ foreign-key: Id
+ - table-name: sms_logs
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Schedule
+ foreign-key: Schedule
+ - table-name: task_setups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Schedule
+ foreign-key: Schedule
+ - table-name: tasks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Employee
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+- table-name: employee_contract_leave_rules
+ join:
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: ContractId
+ foreign-key: Contract
+ - key: LoadingPayRule1
+ foreign-key: SalaryPayRule
+ - key: LoadingPayRule2
+ foreign-key: SalaryPayRule
+ - key: LoadingPayRule3
+ foreign-key: SalaryPayRule
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - key: ContractId
+ foreign-key: Contract
+ - key: LoadingPayRule1
+ foreign-key: SalaryPayRule
+ - key: LoadingPayRule2
+ foreign-key: SalaryPayRule
+ - key: LoadingPayRule3
+ foreign-key: SalaryPayRule
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: ContractId
+ foreign-key: Id
+ - key: LoadingPayRule1
+ foreign-key: BasePayRule
+ - key: LoadingPayRule2
+ foreign-key: BasePayRule
+ - key: LoadingPayRule3
+ foreign-key: BasePayRule
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: LoadingPayRule1
+ foreign-key: PayRule
+ - key: LoadingPayRule2
+ foreign-key: PayRule
+ - key: LoadingPayRule3
+ foreign-key: PayRule
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: LeaveRuleId
+ foreign-key: LeaveRule
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: LeaveRuleId
+ foreign-key: LeaveRule
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: LeaveRuleId
+ foreign-key: Id
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: LoadingPayRule1
+ foreign-key: Id
+ - key: LoadingPayRule2
+ foreign-key: Id
+ - key: LoadingPayRule3
+ foreign-key: Id
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: LoadingPayRule1
+ foreign-key: PayRule
+ - key: LoadingPayRule2
+ foreign-key: PayRule
+ - key: LoadingPayRule3
+ foreign-key: PayRule
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: LeaveRuleId
+ foreign-key: LeaveRule
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: employee_paycycle_returns
+ join:
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: PayRule
+ foreign-key: SalaryPayRule
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - key: PayRule
+ foreign-key: SalaryPayRule
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: PayRule
+ foreign-key: LoadingPayRule1
+ - key: PayRule
+ foreign-key: LoadingPayRule2
+ - key: PayRule
+ foreign-key: LoadingPayRule3
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: PayRule
+ foreign-key: BasePayRule
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - key: PaycycleId
+ foreign-key: Id
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: PayRule
+ foreign-key: Id
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: PayRule
+ foreign-key: PayRule
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: PaycycleId
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: employee_roles
+ join:
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: Role
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: employee_salary_opunit_costing
+ join:
+ - table-name: addresses
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeAgreement
+ foreign-key: AgreementId
+ - table-name: employee_agreements
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeAgreement
+ foreign-key: Id
+ - table-name: employee_appraisal
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeAgreement
+ foreign-key: EmployeeAgreementId
+ - table-name: employee_roles
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeAgreement
+ foreign-key: Agreement1
+ - key: EmployeeAgreement
+ foreign-key: Agreement2
+ - key: EmployeeAgreement
+ foreign-key: Agreement3
+ - table-name: employment_conditions
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeAgreement
+ foreign-key: EmployeeAgreement
+ - table-name: leave_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: OpUnit
+ foreign-key: Id
+ - key: OpUnit
+ foreign-key: ParentOperationalUnit
+ - table-name: pay_periods
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: OpUnit
+ foreign-key: OperationalUnit
+ - table-name: sales_data
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: OpUnit
+ foreign-key: OperationalUnit
+ - table-name: schedules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: OpUnit
+ foreign-key: OpUnitId
+ - table-name: task_opunit_configs
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: OpUnit
+ foreign-key: OpUnitId
+ - table-name: task_setups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: OpUnit
+ foreign-key: OpUnitId
+ - table-name: teams
+ keys:
+ - key: Employee
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeAgreement
+ foreign-key: EmployeeAgreement
+ - key: OpUnit
+ foreign-key: OperationalUnit
+ - table-name: training_modules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+- table-name: events
+ join:
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: Schedule
+ foreign-key: Schedule
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Schedule
+ foreign-key: RosterActiveHoursSchedule
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Schedule
+ foreign-key: Schedule
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Schedule
+ foreign-key: Id
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Schedule
+ foreign-key: Schedule
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Schedule
+ foreign-key: Schedule
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: journal
+ join:
+ - table-name: addresses
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: EmployeeId
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: EmployeeId
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: EmployeeId
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: EmployeeId
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: EmployeeId
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: EmployeeId
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: EmployeeId
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+- table-name: leave_accruals
+ join:
+ - table-name: addresses
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: LeaveRule
+ foreign-key: LeaveRuleId
+ - table-name: employee_contracts
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: LeaveRule
+ foreign-key: LeaveRule
+ - table-name: leave_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: LeaveRule
+ foreign-key: Id
+ - table-name: leaves
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Employee
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: LeaveRule
+ foreign-key: LeaveRule
+ - table-name: training_modules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+- table-name: leave_pay_lines
+ join:
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeAgreement
+ foreign-key: AgreementId
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeAgreement
+ foreign-key: Id
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: LeaveRule
+ foreign-key: LeaveRuleId
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeAgreement
+ foreign-key: EmployeeAgreementId
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeAgreement
+ foreign-key: EmployeeAgreement
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeAgreement
+ foreign-key: Agreement1
+ - key: EmployeeAgreement
+ foreign-key: Agreement2
+ - key: EmployeeAgreement
+ foreign-key: Agreement3
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: LeaveRule
+ foreign-key: LeaveRule
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: LeaveRule
+ foreign-key: Id
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: LeaveId
+ foreign-key: Id
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - key: TimesheetId
+ foreign-key: MatchedByTimesheet
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: TimesheetId
+ foreign-key: Timesheet
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: EmployeeAgreement
+ foreign-key: EmployeeAgreement
+ - key: LeaveId
+ foreign-key: LeaveId
+ - key: LeaveRule
+ foreign-key: LeaveRule
+ - key: TimesheetId
+ foreign-key: Id
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: leave_rules
+ join:
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: LeaveRuleId
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: LeaveRule
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: LeaveRule
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: LeaveRule
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: memos
+ join:
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: pay_periods
+ join:
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: PayPeriod
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: PayPeriod
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: PayPeriod
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: pay_rules
+ join:
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: SalaryPayRule
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: SalaryPayRule
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: Schedule
+ foreign-key: Schedule
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: LoadingPayRule1
+ - key: Id
+ foreign-key: LoadingPayRule2
+ - key: Id
+ foreign-key: LoadingPayRule3
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: BasePayRule
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: PayRule
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Schedule
+ foreign-key: Schedule
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Schedule
+ foreign-key: RosterActiveHoursSchedule
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Schedule
+ foreign-key: Id
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Schedule
+ foreign-key: Schedule
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Schedule
+ foreign-key: Schedule
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: PayRule
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: public_holidays
+ join:
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: roster_opens
+ join:
+ - table-name: addresses
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Roster
+ foreign-key: SourceRoster
+ - key: Roster
+ foreign-key: TargetRoster
+ - table-name: rosters
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Roster
+ foreign-key: Id
+ - table-name: sales_data
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Employee
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Roster
+ foreign-key: Roster
+ - table-name: training_modules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+- table-name: roster_swaps
+ join:
+ - table-name: addresses
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: SourceRoster
+ foreign-key: Roster
+ - key: TargetRoster
+ foreign-key: Roster
+ - table-name: rosters
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: SourceRoster
+ foreign-key: Id
+ - key: TargetRoster
+ foreign-key: Id
+ - table-name: sales_data
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Employee
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: SourceRoster
+ foreign-key: Roster
+ - key: TargetRoster
+ foreign-key: Roster
+ - table-name: training_modules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+- table-name: rosters
+ join:
+ - table-name: addresses
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: ConfirmBy
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: ConfirmBy
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Employee
+ - key: ConfirmBy
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: ConfirmBy
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: ConfirmBy
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: ConfirmBy
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: ConfirmBy
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: OperationalUnit
+ foreign-key: OpUnit
+ - table-name: employee_workplaces
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: ConfirmBy
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: ConfirmBy
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: ConfirmBy
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: MatchedByTimesheet
+ foreign-key: TimesheetId
+ - table-name: leave_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: ConfirmBy
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: OperationalUnit
+ foreign-key: Id
+ - key: OperationalUnit
+ foreign-key: ParentOperationalUnit
+ - table-name: pay_periods
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: ConfirmBy
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: Roster
+ - table-name: roster_swaps
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: ConfirmBy
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: SourceRoster
+ - key: Id
+ foreign-key: TargetRoster
+ - table-name: sales_data
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: ConfirmBy
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: OperationalUnit
+ foreign-key: OperationalUnit
+ - table-name: schedules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: OperationalUnit
+ foreign-key: OpUnitId
+ - table-name: task_opunit_configs
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: OperationalUnit
+ foreign-key: OpUnitId
+ - table-name: task_setups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: OperationalUnit
+ foreign-key: OpUnitId
+ - table-name: teams
+ keys:
+ - key: Employee
+ foreign-key: LeaderEmployee
+ - key: ConfirmBy
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: MatchedByTimesheet
+ foreign-key: Timesheet
+ - table-name: timesheets
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: ConfirmBy
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: OperationalUnit
+ foreign-key: OperationalUnit
+ - key: Id
+ foreign-key: Roster
+ - key: MatchedByTimesheet
+ foreign-key: Id
+ - table-name: training_modules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: ConfirmBy
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: ConfirmBy
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+- table-name: sales_data
+ join:
+ - table-name: addresses
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: OperationalUnit
+ foreign-key: OpUnit
+ - table-name: employee_workplaces
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: OperationalUnit
+ foreign-key: Id
+ - key: OperationalUnit
+ foreign-key: ParentOperationalUnit
+ - table-name: pay_periods
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: OperationalUnit
+ foreign-key: OperationalUnit
+ - table-name: schedules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: OperationalUnit
+ foreign-key: OpUnitId
+ - table-name: task_opunit_configs
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: OperationalUnit
+ foreign-key: OpUnitId
+ - table-name: task_setups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: OperationalUnit
+ foreign-key: OpUnitId
+ - table-name: teams
+ keys:
+ - key: Employee
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: OperationalUnit
+ foreign-key: OperationalUnit
+ - table-name: training_modules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+- table-name: schedules
+ join:
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: Schedule
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: Schedule
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: RosterActiveHoursSchedule
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: Schedule
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: Schedule
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: Schedule
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: sms_logs
+ join:
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: stress_profiles
+ join:
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: system_usage_balances
+ join:
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: BalanceId
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: task_group_setups
+ join:
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: GroupSetupId
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: GroupId
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: task_groups
+ join:
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: OpUnitId
+ foreign-key: OpUnit
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: OpUnitId
+ foreign-key: Id
+ - key: OpUnitId
+ foreign-key: ParentOperationalUnit
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - key: OpUnitId
+ foreign-key: OperationalUnit
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: OpUnitId
+ foreign-key: OperationalUnit
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: GroupSetupId
+ foreign-key: Id
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: OpUnitId
+ foreign-key: OpUnitId
+ - key: Id
+ foreign-key: TaskGroupId
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: GroupSetupId
+ foreign-key: GroupId
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: OpUnitId
+ foreign-key: OpUnitId
+ - key: Id
+ foreign-key: GroupId
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: OpUnitId
+ foreign-key: OperationalUnit
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: task_opunit_configs
+ join:
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: Schedule
+ foreign-key: Schedule
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: OpUnitId
+ foreign-key: OpUnit
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Schedule
+ foreign-key: Schedule
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: OpUnitId
+ foreign-key: Id
+ - key: OpUnitId
+ foreign-key: ParentOperationalUnit
+ - key: Schedule
+ foreign-key: RosterActiveHoursSchedule
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Schedule
+ foreign-key: Schedule
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - key: OpUnitId
+ foreign-key: OperationalUnit
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: OpUnitId
+ foreign-key: OperationalUnit
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Schedule
+ foreign-key: Id
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: OpUnitId
+ foreign-key: OpUnitId
+ - key: TaskGroupId
+ foreign-key: Id
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Schedule
+ foreign-key: Schedule
+ - key: TaskSetupId
+ foreign-key: Id
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: OpUnitId
+ foreign-key: OpUnitId
+ - key: TaskGroupId
+ foreign-key: GroupId
+ - key: TaskSetupId
+ foreign-key: TaskSetupId
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: OpUnitId
+ foreign-key: OperationalUnit
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: task_setups
+ join:
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: Schedule
+ foreign-key: Schedule
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Schedule
+ foreign-key: Schedule
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Schedule
+ foreign-key: RosterActiveHoursSchedule
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Schedule
+ foreign-key: Schedule
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Schedule
+ foreign-key: Id
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: GroupId
+ foreign-key: Id
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: GroupId
+ foreign-key: GroupSetupId
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Schedule
+ foreign-key: Schedule
+ - key: Id
+ foreign-key: TaskSetupId
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: TaskSetupId
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: tasks
+ join:
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: OpUnitId
+ foreign-key: OpUnit
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: OpUnitId
+ foreign-key: Id
+ - key: OpUnitId
+ foreign-key: ParentOperationalUnit
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - key: OpUnitId
+ foreign-key: OperationalUnit
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: OpUnitId
+ foreign-key: OperationalUnit
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: OpUnitId
+ foreign-key: OpUnitId
+ - key: GroupId
+ foreign-key: Id
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: OpUnitId
+ foreign-key: OpUnitId
+ - key: GroupId
+ foreign-key: TaskGroupId
+ - key: TaskSetupId
+ foreign-key: TaskSetupId
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: TaskSetupId
+ foreign-key: Id
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: OpUnitId
+ foreign-key: OperationalUnit
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: teams
+ join:
+ - table-name: addresses
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: LeaderEmployee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: LeaderEmployee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: LeaderEmployee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: LeaderEmployee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: LeaderEmployee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: LeaderEmployee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: LeaderEmployee
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: LeaderEmployee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+- table-name: timesheet_pay_returns
+ join:
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: PayRule
+ foreign-key: SalaryPayRule
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - key: PayRule
+ foreign-key: SalaryPayRule
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: PayRule
+ foreign-key: LoadingPayRule1
+ - key: PayRule
+ foreign-key: LoadingPayRule2
+ - key: PayRule
+ foreign-key: LoadingPayRule3
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: PayRule
+ foreign-key: BasePayRule
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: PayRule
+ foreign-key: PayRule
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Timesheet
+ foreign-key: TimesheetId
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: PayRule
+ foreign-key: Id
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - key: Timesheet
+ foreign-key: MatchedByTimesheet
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: Timesheet
+ foreign-key: Id
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: training_modules
+ join:
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - key: Id
+ foreign-key: Module
+ - table-name: webhooks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+- table-name: training_records
+ join:
+ - table-name: addresses
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Employee
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Employee
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Employee
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Employee
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+ - key: Module
+ foreign-key: Id
+ - table-name: webhooks
+ keys:
+ - key: Employee
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Creator
+- table-name: webhooks
+ join:
+ - table-name: addresses
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: categories
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: comments
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: companies
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: company_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: contacts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: countries
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_app_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_field_data
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: custom_fields
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreement_history
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_agreements
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_appraisal
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - key: Creator
+ foreign-key: Employee
+ - table-name: employee_availability
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contract_leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_contracts
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_history
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycle_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_paycycles
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_roles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_salary_opunit_costing
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employee_workplaces
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: employment_conditions
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: events
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: geo
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: journal
+ keys:
+ - key: Creator
+ foreign-key: EmployeeId
+ - key: Creator
+ foreign-key: Creator
+ - table-name: kiosks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_accruals
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_pay_lines
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leave_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: leaves
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: memos
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: operational_units
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_periods
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: pay_rules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: public_holidays
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_opens
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: roster_swaps
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: rosters
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: ConfirmBy
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sales_data
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: schedules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: sms_logs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: states
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: stress_profiles
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_balances
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: system_usage_tracking
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_group_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_groups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_opunit_configs
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: task_setups
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: tasks
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: teams
+ keys:
+ - key: Creator
+ foreign-key: LeaderEmployee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheet_pay_returns
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: timesheets
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_modules
+ keys:
+ - key: Creator
+ foreign-key: Creator
+ - table-name: training_records
+ keys:
+ - key: Creator
+ foreign-key: Employee
+ - key: Creator
+ foreign-key: Creator
diff --git a/_data/taps/schemas/deputy/v1/deputy-v1-tables.yml b/_data/taps/schemas/deputy/v1/deputy-v1-tables.yml
new file mode 100644
index 000000000..9b2b47d03
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/deputy-v1-tables.yml
@@ -0,0 +1,573 @@
+tap: deputy
+version: '1'
+tap-repo-schemas: false
+tables:
+- name: addresses
+ description: 'The `{{ table.name }}` table contains info about addresses.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/Address
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: categories
+ description: 'The `{{ table.name }}` table contains info about categories.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/Category
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: comments
+ description: 'The `{{ table.name }}` table contains info about comments.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/Comment
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: companies
+ description: 'The `{{ table.name }}` table contains info about companies.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/Company
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: company_periods
+ description: 'The `{{ table.name }}` table contains info about company periods.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/CompanyPeriod
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: contacts
+ description: 'The `{{ table.name }}` table contains info about contacts.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/Contact
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: countries
+ description: 'The `{{ table.name }}` table contains info about countries.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/Country
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: custom_app_data
+ description: 'The `{{ table.name }}` table contains info about custom app data.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/CustomAppData
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: custom_fields
+ description: "The `{{ table.name }}` table contains info about \n"
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/CustomField
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: custom_field_data
+ description: 'The `{{ table.name }}` table contains info about custom field data.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/CustomFieldData
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: employee_agreements
+ description: 'The `{{ table.name }}` table contains info about employee agreements.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/EmployeeAgreement
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: employee_agreement_history
+ description: "The `{{ table.name }}` table contains info about \n"
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/EmployeeAgreementHistory
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: employee_appraisal
+ description: 'The `{{ table.name }}` table contains info about employee appraisals.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/EmployeeAppraisal
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: employee_availability
+ description: 'The `{{ table.name }}` table contains info about employee availability.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/EmployeeAvailability
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: employee_contracts
+ description: 'The `{{ table.name }}` table contains info about employee contracts.
+
+ '
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: employee_contract_leave_rules
+ description: 'The `{{ table.name }}` table contains info about employment contract
+ leave rules.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/EmploymentContractLeaveRules
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: employee_history
+ description: 'The `{{ table.name }}` table contains info about employee histories.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/EmployeeHistory
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: employee_paycycles
+ description: 'The `{{ table.name }}` table contains info about employee paycycles.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/EmployeePaycycle
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: employee_paycycle_returns
+ description: 'The `{{ table.name }}` table contains info about employee paycycle
+ returns.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/EmployeePaycycleReturn
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: employee_roles
+ description: 'The `{{ table.name }}` table contains info about employee roles.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/EmployeeRole
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: employee_salary_opunit_costing
+ description: 'The `{{ table.name }}` table contains info about employee salary operational
+ unit costs.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/EmployeeSalaryOpunitCosting
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: employee_workplaces
+ description: 'The `{{ table.name }}` table contains info about employee workplaces.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/EmployeeWorkplace
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: employment_conditions
+ description: 'The `{{ table.name }}` table contains info about employment conditions.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/EmploymentCondition
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: events
+ description: 'The `{{ table.name }}` table contains info about events.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/Event
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: geo
+ description: 'The `{{ table.name }}` table contains info about geographic locations.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/Geo
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: journal
+ description: 'The `{{ table.name }}` table contains info about journals.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/Journal
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: kiosks
+ description: 'The `{{ table.name }}` table contains info about kiosks.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/Kiosk
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: leaves
+ description: 'The `{{ table.name }}` table contains info about employee leave.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/Leave
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: leave_accruals
+ description: 'The `{{ table.name }}` table contains info about employee leave balances.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/LeaveAccrual
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: leave_pay_lines
+ description: 'The `{{ table.name }}` table contains info about employee leave pay
+ lines.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/LeavePayLine
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: leave_rules
+ description: 'The `{{ table.name }}` table contains info about employee leave rules.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/LeaveRules
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: memos
+ description: 'The `{{ table.name }}` table contains info about memos.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/Memo
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: operational_units
+ description: 'The `{{ table.name }}` table contains info about operational units.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/OperationalUnit
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: pay_periods
+ description: 'The `{{ table.name }}` table contains info about pay periods.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/PayPeriod
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: pay_rules
+ description: 'The `{{ table.name }}` table contains info about pay rules.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/PayRules
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: public_holidays
+ description: 'The `{{ table.name }}` table contains info about public holidays.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/PublicHoliday
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: rosters
+ description: 'The `{{ table.name }}` table contains info about rosters.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/Roster
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: roster_opens
+ description: 'The `{{ table.name }}` table contains info about roster opens.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/RosterOpen
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: roster_swaps
+ description: 'The `{{ table.name }}` table contains info about roster swaps.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/RosterSwap
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: sales_data
+ description: 'The `{{ table.name }}` table contains info about sales data.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/SalesData
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: schedules
+ description: 'The `{{ table.name }}` table contains info about schedules.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/Schedule
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: sms_logs
+ description: 'The `{{ table.name }}` table contains info about SMS logs.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/SmsLog
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: states
+ description: 'The `{{ table.name }}` table contains info about states.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/State
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: stress_profiles
+ description: 'The `{{ table.name }}` table contains info about stress profiles.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/StressProfile
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: system_usage_balances
+ description: 'The `{{ table.name }}` table contains info about system usage balances.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/SystemUsageBalance
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: system_usage_tracking
+ description: 'The `{{ table.name }}` table contains info about system usage tracking.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/SystemUsageTracking
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: tasks
+ description: 'The `{{ table.name }}` table contains info about tasks.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/Task
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: task_groups
+ description: 'The `{{ table.name }}` table contains info about task groups.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/TaskGroup
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: task_group_setups
+ description: 'The `{{ table.name }}` table contains info about task group setups.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/TaskGroupSetup
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: task_opunit_configs
+ description: 'The `{{ table.name }}` table contains info about task operational
+ unit configurations.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/TaskOpunitConfig
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: task_setups
+ description: 'The `{{ table.name }}` table contains info about task setups.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/TaskSetup
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: teams
+ description: 'The `{{ table.name }}` table contains info about teams.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/Team
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: timesheets
+ description: 'The `{{ table.name }}` table contains info about timesheets.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/Timesheet
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: timesheet_pay_returns
+ description: 'The `{{ table.name }}` table contains info about timesheet pay returns.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/TimesheetPayReturn
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: training_modules
+ description: 'The `{{ table.name }}` table contains info about training modules.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/TrainingModule
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: training_records
+ description: 'The `{{ table.name }}` table contains info about training records.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/TrainingRecord
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
+- name: webhooks
+ description: 'The `{{ table.name }}` table contains info about webhooks.
+
+ '
+ links:
+ doc-link: https://www.deputy.com/api-doc/Resources/Webhook
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Modified
+ replication-key: Modified
diff --git a/_data/taps/schemas/deputy/v1/json/addresses.json b/_data/taps/schemas/deputy/v1/json/addresses.json
new file mode 100644
index 000000000..1c8f54df2
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/addresses.json
@@ -0,0 +1,99 @@
+{
+ "properties": {
+ "City": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactName": {
+ "type": [
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Format": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Notes": {
+ "type": [
+ "string"
+ ]
+ },
+ "Phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "PoBox": {
+ "type": [
+ "string"
+ ]
+ },
+ "Postcode": {
+ "type": [
+ "string"
+ ]
+ },
+ "Saved": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "State": {
+ "type": [
+ "string"
+ ]
+ },
+ "Street1": {
+ "type": [
+ "string"
+ ]
+ },
+ "Street2": {
+ "type": [
+ "string"
+ ]
+ },
+ "StreetNo": {
+ "type": [
+ "string"
+ ]
+ },
+ "SuiteNo": {
+ "type": [
+ "string"
+ ]
+ },
+ "UnitNo": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/categories.json b/_data/taps/schemas/deputy/v1/json/categories.json
new file mode 100644
index 000000000..fc6ae3063
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/categories.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Stafflog": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "System": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "category": {
+ "type": [
+ "string"
+ ]
+ },
+ "group": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/comments.json b/_data/taps/schemas/deputy/v1/json/comments.json
new file mode 100644
index 000000000..298871477
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/comments.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "Comment": {
+ "type": [
+ "string"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "IgnorePermission": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "InFeed": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Orm": {
+ "type": [
+ "string"
+ ]
+ },
+ "RecId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/companies.json b/_data/taps/schemas/deputy/v1/json/companies.json
new file mode 100644
index 000000000..4418f0f17
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/companies.json
@@ -0,0 +1,89 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "Address": {
+ "type": [
+ "integer"
+ ]
+ },
+ "BusinessNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "string"
+ ]
+ },
+ "CompanyName": {
+ "type": [
+ "string"
+ ]
+ },
+ "CompanyNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "Contact": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "IsPayrollEntity": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "IsWorkplace": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "ParentCompany": {
+ "type": [
+ "integer"
+ ]
+ },
+ "PayrollExportCode": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Portfolio": {
+ "type": [
+ "integer"
+ ]
+ },
+ "TradingName": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/company_periods.json b/_data/taps/schemas/deputy/v1/json/company_periods.json
new file mode 100644
index 000000000..8b040f459
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/company_periods.json
@@ -0,0 +1,54 @@
+{
+ "properties": {
+ "Company": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "DateEnd": {
+ "type": [
+ "date"
+ ]
+ },
+ "DateStart": {
+ "type": [
+ "date"
+ ]
+ },
+ "End": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "PayPeriod": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Start": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/contacts.json b/_data/taps/schemas/deputy/v1/json/contacts.json
new file mode 100644
index 000000000..14dd27480
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/contacts.json
@@ -0,0 +1,124 @@
+{
+ "properties": {
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Email1": {
+ "type": [
+ "string"
+ ]
+ },
+ "Email1Type": {
+ "type": [
+ "string"
+ ]
+ },
+ "Email2": {
+ "type": [
+ "string"
+ ]
+ },
+ "Email2Type": {
+ "type": [
+ "string"
+ ]
+ },
+ "Fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Im1": {
+ "type": [
+ "string"
+ ]
+ },
+ "Im1Type": {
+ "type": [
+ "string"
+ ]
+ },
+ "Im2": {
+ "type": [
+ "string"
+ ]
+ },
+ "Im2Type": {
+ "type": [
+ "string"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Notes": {
+ "type": [
+ "string"
+ ]
+ },
+ "Phone1": {
+ "type": [
+ "string"
+ ]
+ },
+ "Phone1Type": {
+ "type": [
+ "string"
+ ]
+ },
+ "Phone2": {
+ "type": [
+ "string"
+ ]
+ },
+ "Phone2Type": {
+ "type": [
+ "string"
+ ]
+ },
+ "Phone3": {
+ "type": [
+ "string"
+ ]
+ },
+ "Phone3Type": {
+ "type": [
+ "string"
+ ]
+ },
+ "PrimaryEmail": {
+ "type": [
+ "integer"
+ ]
+ },
+ "PrimaryPhone": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Saved": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "Web": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/countries.json b/_data/taps/schemas/deputy/v1/json/countries.json
new file mode 100644
index 000000000..585dc5704
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/countries.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "Code": {
+ "type": [
+ "string"
+ ]
+ },
+ "CodeA3": {
+ "type": [
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "string"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "PhoneDisplayPreg": {
+ "type": [
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ZipVAlidatePreg": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/custom_app_data.json b/_data/taps/schemas/deputy/v1/json/custom_app_data.json
new file mode 100644
index 000000000..201d83fa5
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/custom_app_data.json
@@ -0,0 +1,69 @@
+{
+ "properties": {
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Data": {
+ "type": [
+ "string"
+ ]
+ },
+ "Deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "DocumentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "Employee": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "KeyInt": {
+ "type": [
+ "integer"
+ ]
+ },
+ "KeyString": {
+ "type": [
+ "string"
+ ]
+ },
+ "Label": {
+ "type": [
+ "string"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "OperationalUnit": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Permission": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/custom_field_data.json b/_data/taps/schemas/deputy/v1/json/custom_field_data.json
new file mode 100644
index 000000000..875324ad3
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/custom_field_data.json
@@ -0,0 +1,109 @@
+{
+ "properties": {
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "F01": {
+ "type": [
+ "string"
+ ]
+ },
+ "F02": {
+ "type": [
+ "string"
+ ]
+ },
+ "F03": {
+ "type": [
+ "string"
+ ]
+ },
+ "F04": {
+ "type": [
+ "string"
+ ]
+ },
+ "F05": {
+ "type": [
+ "string"
+ ]
+ },
+ "F06": {
+ "type": [
+ "string"
+ ]
+ },
+ "F07": {
+ "type": [
+ "string"
+ ]
+ },
+ "F08": {
+ "type": [
+ "string"
+ ]
+ },
+ "F09": {
+ "type": [
+ "string"
+ ]
+ },
+ "F10": {
+ "type": [
+ "string"
+ ]
+ },
+ "F11": {
+ "type": [
+ "string"
+ ]
+ },
+ "F12": {
+ "type": [
+ "string"
+ ]
+ },
+ "F13": {
+ "type": [
+ "string"
+ ]
+ },
+ "F14": {
+ "type": [
+ "string"
+ ]
+ },
+ "F15": {
+ "type": [
+ "string"
+ ]
+ },
+ "F16": {
+ "type": [
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "System": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/custom_fields.json b/_data/taps/schemas/deputy/v1/json/custom_fields.json
new file mode 100644
index 000000000..a8e1bd190
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/custom_fields.json
@@ -0,0 +1,74 @@
+{
+ "properties": {
+ "ApiName": {
+ "type": [
+ "string"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Default": {
+ "type": [
+ "string"
+ ]
+ },
+ "DeputyField": {
+ "type": [
+ "string"
+ ]
+ },
+ "Helptext": {
+ "type": [
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "integer"
+ ]
+ },
+ "System": {
+ "type": [
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Validation": {
+ "type": [
+ "string"
+ ]
+ },
+ "ValueList": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/employee_agreement_history.json b/_data/taps/schemas/deputy/v1/json/employee_agreement_history.json
new file mode 100644
index 000000000..e7579a0a6
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/employee_agreement_history.json
@@ -0,0 +1,79 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "AgreementId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "CompanyName": {
+ "type": [
+ "string"
+ ]
+ },
+ "Contract": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ContractFile": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "EmpType": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "PayPeriod": {
+ "type": [
+ "integer"
+ ]
+ },
+ "PayPoint": {
+ "type": [
+ "integer"
+ ]
+ },
+ "PayrollId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "SalaryPayRule": {
+ "type": [
+ "integer"
+ ]
+ },
+ "StartDate": {
+ "type": [
+ "date"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/employee_agreements.json b/_data/taps/schemas/deputy/v1/json/employee_agreements.json
new file mode 100644
index 000000000..3d0fe6ad9
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/employee_agreements.json
@@ -0,0 +1,84 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "CompanyName": {
+ "type": [
+ "string"
+ ]
+ },
+ "Contract": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ContractFile": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "EmpType": {
+ "type": [
+ "integer"
+ ]
+ },
+ "EmployeeId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "HistoryId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "PayPeriod": {
+ "type": [
+ "integer"
+ ]
+ },
+ "PayPoint": {
+ "type": [
+ "integer"
+ ]
+ },
+ "PayrollId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "SalaryPayRule": {
+ "type": [
+ "integer"
+ ]
+ },
+ "StartDate": {
+ "type": [
+ "date"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/employee_appraisal.json b/_data/taps/schemas/deputy/v1/json/employee_appraisal.json
new file mode 100644
index 000000000..15935b59a
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/employee_appraisal.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Date": {
+ "type": [
+ "date"
+ ]
+ },
+ "DayTimestamp": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Employee": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Mark01": {
+ "type": [
+ "number"
+ ]
+ },
+ "Mark02": {
+ "type": [
+ "number"
+ ]
+ },
+ "Mark03": {
+ "type": [
+ "number"
+ ]
+ },
+ "Mark04": {
+ "type": [
+ "number"
+ ]
+ },
+ "Mark05": {
+ "type": [
+ "number"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/employee_availability.json b/_data/taps/schemas/deputy/v1/json/employee_availability.json
new file mode 100644
index 000000000..54ae7a94c
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/employee_availability.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "Comment": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Date": {
+ "type": [
+ "date"
+ ]
+ },
+ "Employee": {
+ "type": [
+ "integer"
+ ]
+ },
+ "EndTime": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "MaxDateRecurringGenerated": {
+ "type": [
+ "date"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Schedule": {
+ "type": [
+ "integer"
+ ]
+ },
+ "StartTime": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/employee_contract_leave_rules.json b/_data/taps/schemas/deputy/v1/json/employee_contract_leave_rules.json
new file mode 100644
index 000000000..9ba5de36a
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/employee_contract_leave_rules.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "ContractId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "LeaveRuleId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "LoadingPayRule1": {
+ "type": [
+ "integer"
+ ]
+ },
+ "LoadingPayRule2": {
+ "type": [
+ "integer"
+ ]
+ },
+ "LoadingPayRule3": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/employee_contracts.json b/_data/taps/schemas/deputy/v1/json/employee_contracts.json
new file mode 100644
index 000000000..61314d1a2
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/employee_contracts.json
@@ -0,0 +1,84 @@
+{
+ "properties": {
+ "BasePayRule": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Code": {
+ "type": [
+ "string"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Description": {
+ "type": [
+ "string"
+ ]
+ },
+ "EmploymentBasis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "EmploymentCategory": {
+ "type": [
+ "integer"
+ ]
+ },
+ "EmploymentCondition": {
+ "type": [
+ "integer"
+ ]
+ },
+ "EmploymentStatus": {
+ "type": [
+ "integer"
+ ]
+ },
+ "EndDate": {
+ "type": [
+ "date"
+ ]
+ },
+ "File": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "string"
+ ]
+ },
+ "PeriodType": {
+ "type": [
+ "integer"
+ ]
+ },
+ "StartDate": {
+ "type": [
+ "date"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/employee_history.json b/_data/taps/schemas/deputy/v1/json/employee_history.json
new file mode 100644
index 000000000..0d5b7947d
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/employee_history.json
@@ -0,0 +1,119 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "Company": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "DateOfBirth": {
+ "type": [
+ "date"
+ ]
+ },
+ "DisplayName": {
+ "type": [
+ "string"
+ ]
+ },
+ "EmergencyAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "EmployeeId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "string"
+ ]
+ },
+ "Gender": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "JobAppId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "string"
+ ]
+ },
+ "MainAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "OtherName": {
+ "type": [
+ "string"
+ ]
+ },
+ "Photo": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Position": {
+ "type": [
+ "string"
+ ]
+ },
+ "PostalAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "Role": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Salutation": {
+ "type": [
+ "string"
+ ]
+ },
+ "StartDate": {
+ "type": [
+ "date"
+ ]
+ },
+ "TerminationDate": {
+ "type": [
+ "date"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/employee_paycycle_returns.json b/_data/taps/schemas/deputy/v1/json/employee_paycycle_returns.json
new file mode 100644
index 000000000..0ae493c98
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/employee_paycycle_returns.json
@@ -0,0 +1,59 @@
+{
+ "properties": {
+ "Approved": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "Cost": {
+ "type": [
+ "number"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Overridden": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "OverrideComment": {
+ "type": [
+ "string"
+ ]
+ },
+ "PayRule": {
+ "type": [
+ "integer"
+ ]
+ },
+ "PaycycleId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Value": {
+ "type": [
+ "number"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/employee_paycycles.json b/_data/taps/schemas/deputy/v1/json/employee_paycycles.json
new file mode 100644
index 000000000..e3b642172
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/employee_paycycles.json
@@ -0,0 +1,99 @@
+{
+ "properties": {
+ "CostTotal": {
+ "type": [
+ "number"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "EmployeeAgreementHistoryId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "EmployeeAgreementId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "EmployeeId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ExportId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Exported": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Paid": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "PaycycleRules": {
+ "type": [
+ "integer"
+ ]
+ },
+ "PaycycleRulesApproved": {
+ "type": [
+ "integer"
+ ]
+ },
+ "PeriodId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "RecommendedLoadings": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "TimeTotal": {
+ "type": [
+ "number"
+ ]
+ },
+ "Timesheets": {
+ "type": [
+ "integer"
+ ]
+ },
+ "TimesheetsPayApproved": {
+ "type": [
+ "string"
+ ]
+ },
+ "TimesheetsTimeApproved": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/employee_roles.json b/_data/taps/schemas/deputy/v1/json/employee_roles.json
new file mode 100644
index 000000000..2ff5fbe04
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/employee_roles.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Permissions": {
+ "type": [
+ "string"
+ ]
+ },
+ "Ranking": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ReportTo": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Require2fa": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "Role": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/employee_salary_opunit_costing.json b/_data/taps/schemas/deputy/v1/json/employee_salary_opunit_costing.json
new file mode 100644
index 000000000..3b4ed02d0
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/employee_salary_opunit_costing.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "AgreementHistory": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Cost": {
+ "type": [
+ "number"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Date": {
+ "type": [
+ "date"
+ ]
+ },
+ "DayTimestamp": {
+ "type": [
+ "string"
+ ]
+ },
+ "Employee": {
+ "type": [
+ "integer"
+ ]
+ },
+ "EmployeeAgreement": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Final": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "OpUnit": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/employee_workplaces.json b/_data/taps/schemas/deputy/v1/json/employee_workplaces.json
new file mode 100644
index 000000000..d3dc212f9
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/employee_workplaces.json
@@ -0,0 +1,54 @@
+{
+ "properties": {
+ "Agreement1": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Agreement2": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Agreement3": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Company": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "EmployeeId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/employment_conditions.json b/_data/taps/schemas/deputy/v1/json/employment_conditions.json
new file mode 100644
index 000000000..52cde6529
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/employment_conditions.json
@@ -0,0 +1,99 @@
+{
+ "properties": {
+ "AvgHoursPerDay": {
+ "type": [
+ "number"
+ ]
+ },
+ "AwardLevel": {
+ "type": [
+ "string"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Description": {
+ "type": [
+ "string"
+ ]
+ },
+ "EmploymentBasis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "EmploymentCategory": {
+ "type": [
+ "integer"
+ ]
+ },
+ "EmploymentPeriod": {
+ "type": [
+ "integer"
+ ]
+ },
+ "EmploymentStatus": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "MinHoursForLeave": {
+ "type": [
+ "number"
+ ]
+ },
+ "MinHoursPerDay": {
+ "type": [
+ "number"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "string"
+ ]
+ },
+ "ProbationaryPeriod": {
+ "type": [
+ "integer"
+ ]
+ },
+ "UsualFinishTime": {
+ "type": [
+ "string"
+ ]
+ },
+ "UsualMealbreak": {
+ "type": [
+ "string"
+ ]
+ },
+ "UsualStartTime": {
+ "type": [
+ "string"
+ ]
+ },
+ "WorkingDaysPerPeriod": {
+ "type": [
+ "number"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/events.json b/_data/taps/schemas/deputy/v1/json/events.json
new file mode 100644
index 000000000..ac947469c
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/events.json
@@ -0,0 +1,54 @@
+{
+ "properties": {
+ "AddToBudget": {
+ "type": [
+ "number"
+ ]
+ },
+ "BlockTimeOff": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "Colour": {
+ "type": [
+ "string"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Schedule": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ShowOnRoster": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "Title": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/geo.json b/_data/taps/schemas/deputy/v1/json/geo.json
new file mode 100644
index 000000000..42977ade9
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/geo.json
@@ -0,0 +1,74 @@
+{
+ "properties": {
+ "Country": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Latitude": {
+ "type": [
+ "string"
+ ]
+ },
+ "Longitude": {
+ "type": [
+ "string"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "No": {
+ "type": [
+ "string"
+ ]
+ },
+ "Orm": {
+ "type": [
+ "string"
+ ]
+ },
+ "Postcode": {
+ "type": [
+ "string"
+ ]
+ },
+ "RecId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "State": {
+ "type": [
+ "string"
+ ]
+ },
+ "Street": {
+ "type": [
+ "string"
+ ]
+ },
+ "Suburb": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/journal.json b/_data/taps/schemas/deputy/v1/json/journal.json
new file mode 100644
index 000000000..e8cfacb13
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/journal.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "Comment": {
+ "type": [
+ "string"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Date": {
+ "type": [
+ "date"
+ ]
+ },
+ "EmployeeId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/kiosks.json b/_data/taps/schemas/deputy/v1/json/kiosks.json
new file mode 100644
index 000000000..0511af709
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/kiosks.json
@@ -0,0 +1,69 @@
+{
+ "properties": {
+ "AuthenticationMode": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Company": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ConnectionMode": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "InstallationId": {
+ "type": [
+ "string"
+ ]
+ },
+ "IpAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "LastActivity": {
+ "type": [
+ "string"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "string"
+ ]
+ },
+ "SubnetRestriction": {
+ "type": [
+ "string"
+ ]
+ },
+ "UseBiometric": {
+ "type": [
+ "boolean"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/leave_accruals.json b/_data/taps/schemas/deputy/v1/json/leave_accruals.json
new file mode 100644
index 000000000..cf90f5316
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/leave_accruals.json
@@ -0,0 +1,69 @@
+{
+ "properties": {
+ "Comment": {
+ "type": [
+ "string"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Days": {
+ "type": [
+ "number"
+ ]
+ },
+ "Employee": {
+ "type": [
+ "integer"
+ ]
+ },
+ "EmployeeHistory": {
+ "type": [
+ "integer"
+ ]
+ },
+ "FkId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Hours": {
+ "type": [
+ "number"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "LeaveRule": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "TransactionDate": {
+ "type": [
+ "date"
+ ]
+ },
+ "Type": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/leave_pay_lines.json b/_data/taps/schemas/deputy/v1/json/leave_pay_lines.json
new file mode 100644
index 000000000..36715ffaa
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/leave_pay_lines.json
@@ -0,0 +1,69 @@
+{
+ "properties": {
+ "Comment": {
+ "type": [
+ "string"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Date": {
+ "type": [
+ "date"
+ ]
+ },
+ "EmployeeAgreement": {
+ "type": [
+ "integer"
+ ]
+ },
+ "EndTime": {
+ "type": [
+ "string"
+ ]
+ },
+ "Hours": {
+ "type": [
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "LeaveId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "LeaveRule": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "StartTime": {
+ "type": [
+ "string"
+ ]
+ },
+ "TimesheetId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/leave_rules.json b/_data/taps/schemas/deputy/v1/json/leave_rules.json
new file mode 100644
index 000000000..14344acf4
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/leave_rules.json
@@ -0,0 +1,99 @@
+{
+ "properties": {
+ "AnnualRollOver": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "Calc": {
+ "type": [
+ "string"
+ ]
+ },
+ "CalcType": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Description": {
+ "type": [
+ "string"
+ ]
+ },
+ "EntitlementAfterMonth": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ExportType": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "MaxAllowedAnnually": {
+ "type": [
+ "number"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "string"
+ ]
+ },
+ "PaidLeave": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "PayoutOnTermination": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "PayrollCategory": {
+ "type": [
+ "string"
+ ]
+ },
+ "ResetType": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "string"
+ ]
+ },
+ "UnitType": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Visible": {
+ "type": [
+ "boolean"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/leaves.json b/_data/taps/schemas/deputy/v1/json/leaves.json
new file mode 100644
index 000000000..da5744795
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/leaves.json
@@ -0,0 +1,89 @@
+{
+ "properties": {
+ "ApprovalComment": {
+ "type": [
+ "string"
+ ]
+ },
+ "ApproverPay": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ApproverTime": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Comment": {
+ "type": [
+ "string"
+ ]
+ },
+ "Company": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "DateEnd": {
+ "type": [
+ "date"
+ ]
+ },
+ "Days": {
+ "type": [
+ "number"
+ ]
+ },
+ "Employee": {
+ "type": [
+ "integer"
+ ]
+ },
+ "EmployeeHistory": {
+ "type": [
+ "integer"
+ ]
+ },
+ "End": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Start": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Status": {
+ "type": [
+ "integer"
+ ]
+ },
+ "TotalHours": {
+ "type": [
+ "number"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/memos.json b/_data/taps/schemas/deputy/v1/json/memos.json
new file mode 100644
index 000000000..8adb60c15
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/memos.json
@@ -0,0 +1,74 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "ConfirmText": {
+ "type": [
+ "string"
+ ]
+ },
+ "Content": {
+ "type": [
+ "string"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "File": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Keyword": {
+ "type": [
+ "string"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "ShowFrom": {
+ "type": [
+ "date"
+ ]
+ },
+ "ShowTill": {
+ "type": [
+ "date"
+ ]
+ },
+ "Title": {
+ "type": [
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Url": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/operational_units.json b/_data/taps/schemas/deputy/v1/json/operational_units.json
new file mode 100644
index 000000000..5195844ff
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/operational_units.json
@@ -0,0 +1,79 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "Address": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Company": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Contact": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "DailyRosterBudget": {
+ "type": [
+ "number"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "OperationalUnitName": {
+ "type": [
+ "string"
+ ]
+ },
+ "ParentOperationalUnit": {
+ "type": [
+ "integer"
+ ]
+ },
+ "PayrollExportName": {
+ "type": [
+ "string"
+ ]
+ },
+ "RosterActiveHoursSchedule": {
+ "type": [
+ "integer"
+ ]
+ },
+ "RosterSortOrder": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ShowOnRoster": {
+ "type": [
+ "boolean"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/pay_periods.json b/_data/taps/schemas/deputy/v1/json/pay_periods.json
new file mode 100644
index 000000000..88d2b6a8d
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/pay_periods.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Cycle": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "string"
+ ]
+ },
+ "StartDate": {
+ "type": [
+ "date"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/pay_rules.json b/_data/taps/schemas/deputy/v1/json/pay_rules.json
new file mode 100644
index 000000000..ccd94d4aa
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/pay_rules.json
@@ -0,0 +1,149 @@
+{
+ "properties": {
+ "AdvancedCalculation": {
+ "type": [
+ "string"
+ ]
+ },
+ "AnnualSalary": {
+ "type": [
+ "number"
+ ]
+ },
+ "Comment": {
+ "type": [
+ "string"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "DexmlScript": {
+ "type": [
+ "integer"
+ ]
+ },
+ "DexmlScriptParam": {
+ "type": [
+ "string"
+ ]
+ },
+ "HourlyRate": {
+ "type": [
+ "number"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "IsExported": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "IsMultiplier": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "MaximumShiftLength": {
+ "type": [
+ "string"
+ ]
+ },
+ "MaximumType": {
+ "type": [
+ "integer"
+ ]
+ },
+ "MaximumValue": {
+ "type": [
+ "integer"
+ ]
+ },
+ "MinimumShiftLength": {
+ "type": [
+ "string"
+ ]
+ },
+ "MinimumType": {
+ "type": [
+ "integer"
+ ]
+ },
+ "MinimumValue": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "MultiplierBaseRate": {
+ "type": [
+ "integer"
+ ]
+ },
+ "MultiplierValue": {
+ "type": [
+ "number"
+ ]
+ },
+ "PayPortionRule": {
+ "type": [
+ "integer"
+ ]
+ },
+ "PayTitle": {
+ "type": [
+ "string"
+ ]
+ },
+ "PayrollCategory": {
+ "type": [
+ "string"
+ ]
+ },
+ "PeriodType": {
+ "type": [
+ "integer"
+ ]
+ },
+ "RecommendWith": {
+ "type": [
+ "integer"
+ ]
+ },
+ "RenumerationBy": {
+ "type": [
+ "integer"
+ ]
+ },
+ "RenumerationType": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Schedule": {
+ "type": [
+ "integer"
+ ]
+ },
+ "UnitValue": {
+ "type": [
+ "number"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/public_holidays.json b/_data/taps/schemas/deputy/v1/json/public_holidays.json
new file mode 100644
index 000000000..3725fc18c
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/public_holidays.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Schedule": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Title": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/roster_opens.json b/_data/taps/schemas/deputy/v1/json/roster_opens.json
new file mode 100644
index 000000000..2e20fc890
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/roster_opens.json
@@ -0,0 +1,59 @@
+{
+ "properties": {
+ "Accepted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Declined": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "Employee": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Link": {
+ "type": [
+ "string"
+ ]
+ },
+ "Message": {
+ "type": [
+ "string"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Roster": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Seen": {
+ "type": [
+ "boolean"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/roster_swaps.json b/_data/taps/schemas/deputy/v1/json/roster_swaps.json
new file mode 100644
index 000000000..1a6e82b20
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/roster_swaps.json
@@ -0,0 +1,54 @@
+{
+ "properties": {
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Employee": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "RequestMessage": {
+ "type": [
+ "string"
+ ]
+ },
+ "ResponseMessage": {
+ "type": [
+ "string"
+ ]
+ },
+ "SourceRoster": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Status": {
+ "type": [
+ "integer"
+ ]
+ },
+ "TargetRoster": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/rosters.json b/_data/taps/schemas/deputy/v1/json/rosters.json
new file mode 100644
index 000000000..443051ef7
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/rosters.json
@@ -0,0 +1,124 @@
+{
+ "properties": {
+ "Comment": {
+ "type": [
+ "string"
+ ]
+ },
+ "ConfirmBy": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ConfirmComment": {
+ "type": [
+ "string"
+ ]
+ },
+ "ConfirmStatus": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ConfirmTime": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Cost": {
+ "type": [
+ "number"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Date": {
+ "type": [
+ "date"
+ ]
+ },
+ "Employee": {
+ "type": [
+ "integer"
+ ]
+ },
+ "EndTime": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "MatchedByTimesheet": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Mealbreak": {
+ "type": [
+ "string"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Open": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "OperationalUnit": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Published": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "StartTime": {
+ "type": [
+ "integer"
+ ]
+ },
+ "SwapManageBy": {
+ "type": [
+ "integer"
+ ]
+ },
+ "SwapStatus": {
+ "type": [
+ "integer"
+ ]
+ },
+ "TotalTime": {
+ "type": [
+ "number"
+ ]
+ },
+ "Warning": {
+ "type": [
+ "string"
+ ]
+ },
+ "WarningOverrideComment": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/sales_data.json b/_data/taps/schemas/deputy/v1/json/sales_data.json
new file mode 100644
index 000000000..032f85751
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/sales_data.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Date": {
+ "type": [
+ "date"
+ ]
+ },
+ "Employee": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "OperationalUnit": {
+ "type": [
+ "integer"
+ ]
+ },
+ "SalesAmount": {
+ "type": [
+ "number"
+ ]
+ },
+ "SalesPayload": {
+ "type": [
+ "string"
+ ]
+ },
+ "SalesQty": {
+ "type": [
+ "number"
+ ]
+ },
+ "SalesRef": {
+ "type": [
+ "string"
+ ]
+ },
+ "Timestamp": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/schedules.json b/_data/taps/schemas/deputy/v1/json/schedules.json
new file mode 100644
index 000000000..fe0e82f81
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/schedules.json
@@ -0,0 +1,94 @@
+{
+ "properties": {
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "EndDate": {
+ "type": [
+ "date"
+ ]
+ },
+ "EndTime": {
+ "type": [
+ "string"
+ ]
+ },
+ "Exception": {
+ "type": [
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "MonthlyOnDates": {
+ "type": [
+ "string"
+ ]
+ },
+ "MonthlyOnDays": {
+ "type": [
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "string"
+ ]
+ },
+ "Orm": {
+ "type": [
+ "string"
+ ]
+ },
+ "RepeatEvery": {
+ "type": [
+ "integer"
+ ]
+ },
+ "RepeatType": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Saved": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "StartDate": {
+ "type": [
+ "date"
+ ]
+ },
+ "StartTime": {
+ "type": [
+ "string"
+ ]
+ },
+ "Template": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "WeeklyOnDays": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/sms_logs.json b/_data/taps/schemas/deputy/v1/json/sms_logs.json
new file mode 100644
index 000000000..ea0fc1b2e
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/sms_logs.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "Count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "DeliveryReport": {
+ "type": [
+ "string"
+ ]
+ },
+ "Destination": {
+ "type": [
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Message": {
+ "type": [
+ "string"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "SmsId": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/states.json b/_data/taps/schemas/deputy/v1/json/states.json
new file mode 100644
index 000000000..bcaf0ea95
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/states.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "Code": {
+ "type": [
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "integer"
+ ]
+ },
+ "State": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/stress_profiles.json b/_data/taps/schemas/deputy/v1/json/stress_profiles.json
new file mode 100644
index 000000000..5f02d6a10
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/stress_profiles.json
@@ -0,0 +1,59 @@
+{
+ "properties": {
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "CustomRules": {
+ "type": [
+ "string"
+ ]
+ },
+ "GapHoursBetweenShifts": {
+ "type": [
+ "number"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "MaxDaysPerPeriod": {
+ "type": [
+ "number"
+ ]
+ },
+ "MaxHoursPerDay": {
+ "type": [
+ "number"
+ ]
+ },
+ "MaxHoursPerPeriod": {
+ "type": [
+ "number"
+ ]
+ },
+ "MaxHoursPerShift": {
+ "type": [
+ "number"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/system_usage_balances.json b/_data/taps/schemas/deputy/v1/json/system_usage_balances.json
new file mode 100644
index 000000000..c387ccc0c
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/system_usage_balances.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Credit": {
+ "type": [
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "date"
+ ]
+ },
+ "Description": {
+ "type": [
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Type": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/system_usage_tracking.json b/_data/taps/schemas/deputy/v1/json/system_usage_tracking.json
new file mode 100644
index 000000000..34fdfab1b
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/system_usage_tracking.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "BalanceId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "CompanyId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Date": {
+ "type": [
+ "date"
+ ]
+ },
+ "Description": {
+ "type": [
+ "string"
+ ]
+ },
+ "EmpId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Usage": {
+ "type": [
+ "number"
+ ]
+ },
+ "UsageRecordId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "UsageType": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/task_group_setups.json b/_data/taps/schemas/deputy/v1/json/task_group_setups.json
new file mode 100644
index 000000000..c794383ac
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/task_group_setups.json
@@ -0,0 +1,74 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "Comment": {
+ "type": [
+ "string"
+ ]
+ },
+ "Compulsory": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Deadline": {
+ "type": [
+ "number"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Key": {
+ "type": [
+ "string"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "string"
+ ]
+ },
+ "Notification": {
+ "type": [
+ "string"
+ ]
+ },
+ "Oncreate": {
+ "type": [
+ "string"
+ ]
+ },
+ "Onsubmit": {
+ "type": [
+ "string"
+ ]
+ },
+ "Plugins": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/task_groups.json b/_data/taps/schemas/deputy/v1/json/task_groups.json
new file mode 100644
index 000000000..b589b30ac
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/task_groups.json
@@ -0,0 +1,74 @@
+{
+ "properties": {
+ "Comment": {
+ "type": [
+ "string"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Date": {
+ "type": [
+ "date"
+ ]
+ },
+ "DayTimestamp": {
+ "type": [
+ "integer"
+ ]
+ },
+ "GroupSetupId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Key": {
+ "type": [
+ "string"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "string"
+ ]
+ },
+ "OpUnitId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "OrigDate": {
+ "type": [
+ "date"
+ ]
+ },
+ "OrigDayTimestamp": {
+ "type": [
+ "integer"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/task_opunit_configs.json b/_data/taps/schemas/deputy/v1/json/task_opunit_configs.json
new file mode 100644
index 000000000..444844739
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/task_opunit_configs.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "AvailableAfter": {
+ "type": [
+ "string"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "OpUnitId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Schedule": {
+ "type": [
+ "integer"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "integer"
+ ]
+ },
+ "TaskGroupId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "TaskSetupId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/task_setups.json b/_data/taps/schemas/deputy/v1/json/task_setups.json
new file mode 100644
index 000000000..e2f396b4e
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/task_setups.json
@@ -0,0 +1,129 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "AvailableAfter": {
+ "type": [
+ "string"
+ ]
+ },
+ "Colour": {
+ "type": [
+ "string"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Default": {
+ "type": [
+ "string"
+ ]
+ },
+ "GroupId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Helptext": {
+ "type": [
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "OnNo": {
+ "type": [
+ "string"
+ ]
+ },
+ "OnStart": {
+ "type": [
+ "string"
+ ]
+ },
+ "OnSubmit": {
+ "type": [
+ "string"
+ ]
+ },
+ "OnYes": {
+ "type": [
+ "string"
+ ]
+ },
+ "Parent": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Priority": {
+ "type": [
+ "string"
+ ]
+ },
+ "Question": {
+ "type": [
+ "string"
+ ]
+ },
+ "RenderFunc": {
+ "type": [
+ "string"
+ ]
+ },
+ "RepeatIfNotCompleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "Schedule": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Section": {
+ "type": [
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "integer"
+ ]
+ },
+ "SupercedePrev": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "Time": {
+ "type": [
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/tasks.json b/_data/taps/schemas/deputy/v1/json/tasks.json
new file mode 100644
index 000000000..fbed0c0c7
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/tasks.json
@@ -0,0 +1,134 @@
+{
+ "properties": {
+ "Answer": {
+ "type": [
+ "string"
+ ]
+ },
+ "AvailableAfterTimestamp": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Comment": {
+ "type": [
+ "string"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Date": {
+ "type": [
+ "date"
+ ]
+ },
+ "DayTimestamp": {
+ "type": [
+ "integer"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "date"
+ ]
+ },
+ "DueTimestamp": {
+ "type": [
+ "integer"
+ ]
+ },
+ "End": {
+ "type": [
+ "integer"
+ ]
+ },
+ "GroupId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "OpUnitId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "OrigDate": {
+ "type": [
+ "date"
+ ]
+ },
+ "OrigDayTimestamp": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Question": {
+ "type": [
+ "string"
+ ]
+ },
+ "RepeatIfNotCompleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Start": {
+ "type": [
+ "integer"
+ ]
+ },
+ "TaskSetupId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "TsCompleted": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "integer"
+ ]
+ },
+ "UserEntry": {
+ "type": [
+ "integer"
+ ]
+ },
+ "UserPerformTask": {
+ "type": [
+ "integer"
+ ]
+ },
+ "UserResponsible": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/teams.json b/_data/taps/schemas/deputy/v1/json/teams.json
new file mode 100644
index 000000000..a72c65424
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/teams.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "LeaderEmployee": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/timesheet_pay_returns.json b/_data/taps/schemas/deputy/v1/json/timesheet_pay_returns.json
new file mode 100644
index 000000000..1e0150e41
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/timesheet_pay_returns.json
@@ -0,0 +1,54 @@
+{
+ "properties": {
+ "Cost": {
+ "type": [
+ "number"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Overridden": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "OverrideComment": {
+ "type": [
+ "string"
+ ]
+ },
+ "PayRule": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Timesheet": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Value": {
+ "type": [
+ "number"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/timesheets.json b/_data/taps/schemas/deputy/v1/json/timesheets.json
new file mode 100644
index 000000000..48a1a945c
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/timesheets.json
@@ -0,0 +1,204 @@
+{
+ "properties": {
+ "AutoPayRuleApproved": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "AutoProcessed": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "AutoRounded": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "AutoTimeApproved": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "Cost": {
+ "type": [
+ "number"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "CustomFieldData": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Date": {
+ "type": [
+ "date"
+ ]
+ },
+ "Disputed": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "Employee": {
+ "type": [
+ "integer"
+ ]
+ },
+ "EmployeeAgreement": {
+ "type": [
+ "integer"
+ ]
+ },
+ "EmployeeComment": {
+ "type": [
+ "string"
+ ]
+ },
+ "EmployeeHistory": {
+ "type": [
+ "integer"
+ ]
+ },
+ "EndTime": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Exported": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "File": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "InvoiceComment": {
+ "type": [
+ "string"
+ ]
+ },
+ "Invoiced": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "IsInProgress": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "IsLeave": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "LeaveId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "LeaveRule": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Mealbreak": {
+ "type": [
+ "time"
+ ]
+ },
+ "MealbreakSlots": {
+ "type": [
+ "string"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "OperationalUnit": {
+ "type": [
+ "integer"
+ ]
+ },
+ "PayRuleApproved": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "PayStaged": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "PaycycleId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "RealTime": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "Roster": {
+ "type": [
+ "integer"
+ ]
+ },
+ "StagingId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "StartTime": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Supervisor": {
+ "type": [
+ "integer"
+ ]
+ },
+ "SupervisorComment": {
+ "type": [
+ "string"
+ ]
+ },
+ "TotalTime": {
+ "type": [
+ "number"
+ ]
+ },
+ "TotalTimeInv": {
+ "type": [
+ "number"
+ ]
+ },
+ "ValidationFlag": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/training_modules.json b/_data/taps/schemas/deputy/v1/json/training_modules.json
new file mode 100644
index 000000000..880c2c12a
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/training_modules.json
@@ -0,0 +1,59 @@
+{
+ "properties": {
+ "Comment": {
+ "type": [
+ "string"
+ ]
+ },
+ "Cost": {
+ "type": [
+ "number"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Provider": {
+ "type": [
+ "string"
+ ]
+ },
+ "ProviderAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "RenewalPeriodMonths": {
+ "type": [
+ "integer"
+ ]
+ },
+ "TimeRequiredDays": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Title": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/training_records.json b/_data/taps/schemas/deputy/v1/json/training_records.json
new file mode 100644
index 000000000..4c72e2754
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/training_records.json
@@ -0,0 +1,59 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "Comment": {
+ "type": [
+ "string"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Employee": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ExpiryDate": {
+ "type": [
+ "date"
+ ]
+ },
+ "File": {
+ "type": [
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Module": {
+ "type": [
+ "integer"
+ ]
+ },
+ "TrainingDate": {
+ "type": [
+ "date"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/deputy/v1/json/webhooks.json b/_data/taps/schemas/deputy/v1/json/webhooks.json
new file mode 100644
index 000000000..63ef64a49
--- /dev/null
+++ b/_data/taps/schemas/deputy/v1/json/webhooks.json
@@ -0,0 +1,54 @@
+{
+ "properties": {
+ "Address": {
+ "type": [
+ "string"
+ ]
+ },
+ "Created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Creator": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Enabled": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "Filters": {
+ "type": [
+ "string"
+ ]
+ },
+ "Headers": {
+ "type": [
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "Modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Topic": {
+ "type": [
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/dixa/v1/dixa-v1-foreign-keys.yml b/_data/taps/schemas/dixa/v1/dixa-v1-foreign-keys.yml
new file mode 100644
index 000000000..9e72e28d9
--- /dev/null
+++ b/_data/taps/schemas/dixa/v1/dixa-v1-foreign-keys.yml
@@ -0,0 +1,40 @@
+tap: dixa
+version: '1'
+keys:
+ conversations_id:
+ - table: conversations
+ keys:
+ - id
+ - table: activity_logs
+ keys:
+ - conversationId
+ messages_id:
+ - table: messages
+ keys:
+ - id
+ - table: activity_logs
+ keys:
+ - attributes.messageId
+tables:
+- table-name: conversations
+ join:
+ - table-name: activity_logs
+ keys:
+ - key: id
+ foreign-key: conversationId
+- table-name: activity_logs
+ join:
+ - table-name: conversations
+ keys:
+ - key: conversationId
+ foreign-key: id
+ - table-name: messages
+ keys:
+ - key: attributes.messageId
+ foreign-key: id
+- table-name: messages
+ join:
+ - table-name: activity_logs
+ keys:
+ - key: id
+ foreign-key: attributes.messageId
diff --git a/_data/taps/schemas/dixa/v1/dixa-v1-tables.yml b/_data/taps/schemas/dixa/v1/dixa-v1-tables.yml
new file mode 100644
index 000000000..c7c31b054
--- /dev/null
+++ b/_data/taps/schemas/dixa/v1/dixa-v1-tables.yml
@@ -0,0 +1,39 @@
+tap: dixa
+version: '1'
+tables:
+- name: activity_logs
+ description: 'The `{{ table.name }}` lists all information from activity logs for
+ an organization in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-dixa/blob/main/tap_dixa/schemas/activity_logs.json
+ api-method: https://docs.dixa.io/openapi/dixa-api/tag/Conversations/#tag/Conversations/operation/getConversationsActivitylog
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: activityTimestamp
+- name: conversations
+ description: 'The `{{ table.name }}` table lists information about conversations
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-dixa/blob/main/tap_dixa/schemas/conversations.json
+ api-method: https://docs.dixa.io/openapi/dixa-api/tag/Conversations/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: messages
+ description: 'The `{{ table.name }}` table contains information about all messages
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-dixa/blob/main/tap_dixa/schemas/messages.json
+ api-method: https://docs.dixa.io/openapi/dixa-api/tag/Messages/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created_at
diff --git a/_data/taps/schemas/dixa/v1/json/activity_logs.json b/_data/taps/schemas/dixa/v1/json/activity_logs.json
new file mode 100644
index 000000000..619178e0d
--- /dev/null
+++ b/_data/taps/schemas/dixa/v1/json/activity_logs.json
@@ -0,0 +1,254 @@
+{
+ "properties": {
+ "_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "activityTimestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "activityType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "attributes": {
+ "properties": {
+ "_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "agent": {
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "agentId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "agentName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "agentNames": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "avatalUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avatarUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "claimedFromLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "claimedFromType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversationSubject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "destinationId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "destinationLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "destinationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fromEndpoint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "messageId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "queueLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tagAdded": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "templateName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transferType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "author": {
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "conversationId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/dixa/v1/json/conversations.json b/_data/taps/schemas/dixa/v1/json/conversations.json
new file mode 100644
index 000000000..001c90c4c
--- /dev/null
+++ b/_data/taps/schemas/dixa/v1/json/conversations.json
@@ -0,0 +1,446 @@
+{
+ "properties": {
+ "anonymized_at": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "assigned_at": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "assignee_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assignee_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assignee_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assignee_phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "closed_at": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversation_wrapup_notes": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "properties": {
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "attribute_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "data_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "identifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "direction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dixa_email_integration_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dixa_email_integration_sender_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "facebook_page_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "facebook_page_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "forwarding_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "from_provisioned_phone_number_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "from_provisioned_phone_number_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "handling_duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "initial_channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_message_created_at": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "originating_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "queue_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "queue_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "queued_at": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "rating_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rating_score": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ratings": {
+ "items": {
+ "properties": {
+ "rating_cancelled_timestamp": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rating_created_timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "rating_language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rating_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rating_modified_timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "rating_offered_timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "rating_rated_timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "rating_scheduled_for_timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "rating_scheduled_timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "rating_score": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "rating_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rating_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rating_unscheduled_timestamp": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "requester_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "requester_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "requester_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "requester_phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tags_info": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_deactivated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "to_provisioned_phone_number_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to_provisioned_phone_number_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "transfer_time": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "transferee_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transferee_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "widget_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "widget_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/dixa/v1/json/messages.json b/_data/taps/schemas/dixa/v1/json/messages.json
new file mode 100644
index 000000000..fa4eb61f4
--- /dev/null
+++ b/_data/taps/schemas/dixa/v1/json/messages.json
@@ -0,0 +1,164 @@
+{
+ "properties": {
+ "attached_files": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "author_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "author_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bcc": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "cc": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "chat_input_answer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "chat_input_question": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "chat_menu_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "csid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "direction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "from": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "from_phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "initial_channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_automated_message": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "recording_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "to_phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voicemail_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ebay/v1/ebay-v1-tables.yml b/_data/taps/schemas/ebay/v1/ebay-v1-tables.yml
new file mode 100644
index 000000000..0c8e334e8
--- /dev/null
+++ b/_data/taps/schemas/ebay/v1/ebay-v1-tables.yml
@@ -0,0 +1,16 @@
+tap: ebay
+version: '1'
+tables:
+- name: orders
+ description: "The {{ table.name }} table contains details about all orders in your\
+ \ {{ integration.display_name }} seller account. \n\n**Note**: The integration's\
+ \ **Start Date** must be within 90 days of the current date, if initially creating\
+ \ or resetting the integration. Exceeding 90 days will result in an [{{ integration.display_name\
+ \ }} 30830 API error](https://developer.ebay.com/api-docs/sell/fulfillment/resources/order/methods/getOrders#h2-error-codes){:target=\"\
+ new\"}.\n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-ebay/blob/master/tap_ebay/schemas/orders.json
+ api-method: https://developer.ebay.com/api-docs/sell/fulfillment/resources/order/methods/getOrders
+ table-details:
+ replication-method: Full Table
+ primary-key: orderId
diff --git a/_data/taps/schemas/ebay/v1/json/orders.json b/_data/taps/schemas/ebay/v1/json/orders.json
new file mode 100644
index 000000000..53fc76f58
--- /dev/null
+++ b/_data/taps/schemas/ebay/v1/json/orders.json
@@ -0,0 +1,2988 @@
+{
+ "definitions": {
+ "Address": {
+ "description": "This type contains the details of a geographical address.",
+ "properties": {
+ "addressLine1": {
+ "description": "The first line of the street address.",
+ "type": "string"
+ },
+ "addressLine2": {
+ "description": "The second line of the street address. This field can be used for additional address information, such as a suite or apartment number. This field will be returned if defined for the shipping address.",
+ "type": "string"
+ },
+ "city": {
+ "description": "The city of the shipping destination.",
+ "type": "string"
+ },
+ "countryCode": {
+ "description": "The country of the shipping destination, represented as a two-letter ISO 3166-1 alpha-2 country code. For example, US represents the United States, and DE represents Germany. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "county": {
+ "description": "The county of the shipping destination. Counties typically, but not always, contain multiple cities or towns. This field is returned if known/available.",
+ "type": "string"
+ },
+ "postalCode": {
+ "description": "The postal code of the shipping destination. Usually referred to as Zip codes in the US. Most countries have postal codes, but not all. The postal code will be returned if applicable.",
+ "type": "string"
+ },
+ "stateOrProvince": {
+ "description": "The state or province of the shipping destination. Most countries have states or provinces, but not all. The state or province will be returned if applicable.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "Amount": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "AppliedPromotion": {
+ "description": "This type contains information about a sales promotion that is applied to a line item.",
+ "properties": {
+ "description": {
+ "description": "A description of the applied sales promotion.",
+ "type": "string"
+ },
+ "discountAmount": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "promotionId": {
+ "description": "An eBay-generated unique identifier of the sales promotion. Multiple types of sales promotions are available to eBay Store owners, including order size/volume discounts, shipping discounts, special coupons, and price markdowns. Sales promotions can be managed through the Marketing tab of Seller Hub in My eBay, or by using the Trading API's SetPromotionalSale call or the Marketing API's createItemPromotion method.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "Buyer": {
+ "description": "This type contains information about the buyer of an order.",
+ "properties": {
+ "username": {
+ "description": "The buyer's eBay user ID.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "CancelRequest": {
+ "description": "This type contains information about a buyer request to cancel an order.",
+ "properties": {
+ "cancelCompletedDate": {
+ "description": "The date and time that the order cancellation was completed, if applicable. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. This field is not returned until the cancellation request has actually be granted by the seller. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "cancelInitiator": {
+ "description": "This string value indicates the party who made the initial cancellation request. Typically, either the 'Buyer' or 'Seller'. If a cancellation request has been made, this field should be returned.",
+ "type": "string"
+ },
+ "cancelReason": {
+ "description": "The reason why the cancelInitiator initiated the cancellation request. Cancellation reasons for a buyer might include 'order placed by mistake' or 'order won't arrive in time'. For a seller, a typical cancellation reason is 'out of stock'. If a cancellation request has been made, this field should be returned.",
+ "type": "string"
+ },
+ "cancelRequestId": {
+ "description": "The unique identifier of the order cancellation request. This field is returned for each cancellation request.",
+ "type": "string"
+ },
+ "cancelRequestState": {
+ "description": "The current stage or condition of the cancellation request. This field is returned for each cancellation request. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "cancelRequestedDate": {
+ "description": "The date and time that the order cancellation was requested. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. This field is returned for each cancellation request. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "CancelStatus": {
+ "description": "This type contains information about any requests that have been made to cancel an order.",
+ "properties": {
+ "cancelRequests": {
+ "description": "This array contains details of one or more buyer requests to cancel the order. If there are no cancellation requests against the order, the array is still returned, but is empty.",
+ "items": {
+ "description": "This type contains information about a buyer request to cancel an order.",
+ "properties": {
+ "cancelCompletedDate": {
+ "description": "The date and time that the order cancellation was completed, if applicable. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. This field is not returned until the cancellation request has actually be granted by the seller. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "cancelInitiator": {
+ "description": "This string value indicates the party who made the initial cancellation request. Typically, either the 'Buyer' or 'Seller'. If a cancellation request has been made, this field should be returned.",
+ "type": "string"
+ },
+ "cancelReason": {
+ "description": "The reason why the cancelInitiator initiated the cancellation request. Cancellation reasons for a buyer might include 'order placed by mistake' or 'order won't arrive in time'. For a seller, a typical cancellation reason is 'out of stock'. If a cancellation request has been made, this field should be returned.",
+ "type": "string"
+ },
+ "cancelRequestId": {
+ "description": "The unique identifier of the order cancellation request. This field is returned for each cancellation request.",
+ "type": "string"
+ },
+ "cancelRequestState": {
+ "description": "The current stage or condition of the cancellation request. This field is returned for each cancellation request. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "cancelRequestedDate": {
+ "description": "The date and time that the order cancellation was requested. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. This field is returned for each cancellation request. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "cancelState": {
+ "description": "The state of the order with regard to cancellation. This field is always returned, and if there are no cancellation requests, a value of NONE_REQUESTED is returned. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "cancelledDate": {
+ "description": "The date and time the order was cancelled, if applicable. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "DeliveryCost": {
+ "description": "This type contains a breakdown of all costs associated with the fulfillment of a line item.",
+ "properties": {
+ "importCharges": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "shippingCost": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "shippingIntermediationFee": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "EbayCollectAndRemitTax": {
+ "description": "This type contains information about the type and amount of tax that eBay will collect and remit to the state, province, country, or other taxing authority in the buyer's location, as required by that taxing authority.",
+ "properties": {
+ "amount": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "taxType": {
+ "description": "The type of tax that eBay will collect and remit to the taxing authority. See the TaxTypeEnum type definition for more information about each tax type. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "Error": {
+ "description": "This type contains a error or warning related to a call request. ",
+ "properties": {
+ "category": {
+ "description": "The context or source of this error or warning.",
+ "type": "string"
+ },
+ "domain": {
+ "description": "The name of the domain containing the service or application. For example, sell is a domain.",
+ "type": "string"
+ },
+ "errorId": {
+ "description": "A positive integer that uniquely identifies the specific error condition that occurred. Your application can use these values as error code identifiers in your customized error-handling algorithms.",
+ "type": "integer"
+ },
+ "inputRefIds": {
+ "description": "A list of one or more specific request elements (if any) associated with the error or warning. The format of these strings depends on the request payload format. For JSON, use JSONPath notation.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "longMessage": {
+ "description": "An expanded version of the message field. Maximum length: 200 characters",
+ "type": "string"
+ },
+ "message": {
+ "description": "A message about the error or warning which is device agnostic and readable by end users and application developers. It explains what the error or warning is, and how to fix it (in a general sense). If applicable, the value is localized to the end user's requested locale. Maximum length: 50 characters",
+ "type": "string"
+ },
+ "outputRefIds": {
+ "description": "A list of one or more specific response elements (if any) associated with the error or warning. The format of these strings depends on the request payload format. For JSON, use JSONPath notation.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "Contains a list of name/value pairs that provide additional information concerning this error or warning. Each item in the list is an input parameter that contributed to the error or warning condition.",
+ "items": {
+ "description": "This type contains the name and value of an input parameter that contributed to a specific error or warning condition.",
+ "properties": {
+ "name": {
+ "description": "This is the name of input field that caused an issue with the call request.",
+ "type": "string"
+ },
+ "value": {
+ "description": "This is the actual value that was passed in for the element specified in the name field.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "subdomain": {
+ "description": "The name of the domain's subsystem or subdivision. For example, fulfillment is a subdomain in the sell domain.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "ErrorParameter": {
+ "description": "This type contains the name and value of an input parameter that contributed to a specific error or warning condition.",
+ "properties": {
+ "name": {
+ "description": "This is the name of input field that caused an issue with the call request.",
+ "type": "string"
+ },
+ "value": {
+ "description": "This is the actual value that was passed in for the element specified in the name field.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "ExtendedContact": {
+ "description": "This type contains shipping and contact information for a buyer or an eBay shipping partner.",
+ "properties": {
+ "companyName": {
+ "description": "The company name associated with the buyer or eBay shipping partner. This field is only returned if defined/applicable to the buyer or eBay shipping partner.",
+ "type": "string"
+ },
+ "contactAddress": {
+ "description": "This type contains the details of a geographical address.",
+ "properties": {
+ "addressLine1": {
+ "description": "The first line of the street address.",
+ "type": "string"
+ },
+ "addressLine2": {
+ "description": "The second line of the street address. This field can be used for additional address information, such as a suite or apartment number. This field will be returned if defined for the shipping address.",
+ "type": "string"
+ },
+ "city": {
+ "description": "The city of the shipping destination.",
+ "type": "string"
+ },
+ "countryCode": {
+ "description": "The country of the shipping destination, represented as a two-letter ISO 3166-1 alpha-2 country code. For example, US represents the United States, and DE represents Germany. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "county": {
+ "description": "The county of the shipping destination. Counties typically, but not always, contain multiple cities or towns. This field is returned if known/available.",
+ "type": "string"
+ },
+ "postalCode": {
+ "description": "The postal code of the shipping destination. Usually referred to as Zip codes in the US. Most countries have postal codes, but not all. The postal code will be returned if applicable.",
+ "type": "string"
+ },
+ "stateOrProvince": {
+ "description": "The state or province of the shipping destination. Most countries have states or provinces, but not all. The state or province will be returned if applicable.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "email": {
+ "description": "This field shows the email address of the buyer. The email address of a buyer will only be shown for the first two weeks after order creation. Two weeks after order creation, this field will stop getting returned. Note: This field will always show the email address of the buyer even with a Global Shipping Program shipment.",
+ "type": "string"
+ },
+ "fullName": {
+ "description": "The full name of the buyer or eBay shipping partner.",
+ "type": "string"
+ },
+ "primaryPhone": {
+ "description": "This type contains a string field representing a telephone number.",
+ "properties": {
+ "phoneNumber": {
+ "description": "The primary telephone number for the shipping recipient.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "FulfillmentStartInstruction": {
+ "description": "This type contains a set of specifications for processing a fulfillment of an order, including the type of fulfillment, shipping carrier and service, addressing details, and estimated delivery window. These instructions are derived from the buyer's and seller's eBay account preferences, the listing parameters, and the buyer's checkout selections. The seller can use them as a starting point for packaging, addressing, and shipping the order.",
+ "properties": {
+ "ebaySupportedFulfillment": {
+ "description": "This field is only returned if its value is true and indicates that the fulfillment will be shipped via eBay's Global Shipping Program. For more information, see the Global Shipping Program help topic.",
+ "type": "boolean"
+ },
+ "finalDestinationAddress": {
+ "description": "This type contains the details of a geographical address.",
+ "properties": {
+ "addressLine1": {
+ "description": "The first line of the street address.",
+ "type": "string"
+ },
+ "addressLine2": {
+ "description": "The second line of the street address. This field can be used for additional address information, such as a suite or apartment number. This field will be returned if defined for the shipping address.",
+ "type": "string"
+ },
+ "city": {
+ "description": "The city of the shipping destination.",
+ "type": "string"
+ },
+ "countryCode": {
+ "description": "The country of the shipping destination, represented as a two-letter ISO 3166-1 alpha-2 country code. For example, US represents the United States, and DE represents Germany. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "county": {
+ "description": "The county of the shipping destination. Counties typically, but not always, contain multiple cities or towns. This field is returned if known/available.",
+ "type": "string"
+ },
+ "postalCode": {
+ "description": "The postal code of the shipping destination. Usually referred to as Zip codes in the US. Most countries have postal codes, but not all. The postal code will be returned if applicable.",
+ "type": "string"
+ },
+ "stateOrProvince": {
+ "description": "The state or province of the shipping destination. Most countries have states or provinces, but not all. The state or province will be returned if applicable.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "fulfillmentInstructionsType": {
+ "description": "The enumeration value returned in this field indicates the method of fulfillment that will be used to deliver this set of line items (this package) to the buyer. This field will have a value of SHIP_TO if the ebaySupportedFulfillment field is returned with a value of true. See the FulfillmentInstructionsType definition for more information about different fulfillment types. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "maxEstimatedDeliveryDate": {
+ "description": "This is the estimated latest date that the fulfillment will be completed. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. This field is not returned if the value of the fulfillmentInstructionsType field is DIGITAL. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "minEstimatedDeliveryDate": {
+ "description": "This is the estimated earliest date that the fulfillment will be completed. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. This field is not returned if the value of the fulfillmentInstructionsType field is DIGITAL. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "pickupStep": {
+ "description": "This type is used to indicate the merchant's store where the buyer will pickup their In-Store Pickup order. The pickupStep container is only returned for In-Store Pickup orders. The In-Store Pickup feature is supported in the US, Canada, UK, Germany, and Australia marketplaces.",
+ "properties": {
+ "merchantLocationKey": {
+ "description": "A merchant-defined unique identifier of the merchant's store where the buyer will pick up their In-Store Pickup order. This field is always returned with the pickupStep container.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "shippingStep": {
+ "description": "This type contains shipping information for a fulfillment, including the shipping carrier, the shipping service option, the shipment destination, and the Global Shipping Program reference ID.",
+ "properties": {
+ "shipTo": {
+ "description": "This type contains shipping and contact information for a buyer or an eBay shipping partner.",
+ "properties": {
+ "companyName": {
+ "description": "The company name associated with the buyer or eBay shipping partner. This field is only returned if defined/applicable to the buyer or eBay shipping partner.",
+ "type": "string"
+ },
+ "contactAddress": {
+ "description": "This type contains the details of a geographical address.",
+ "properties": {
+ "addressLine1": {
+ "description": "The first line of the street address.",
+ "type": "string"
+ },
+ "addressLine2": {
+ "description": "The second line of the street address. This field can be used for additional address information, such as a suite or apartment number. This field will be returned if defined for the shipping address.",
+ "type": "string"
+ },
+ "city": {
+ "description": "The city of the shipping destination.",
+ "type": "string"
+ },
+ "countryCode": {
+ "description": "The country of the shipping destination, represented as a two-letter ISO 3166-1 alpha-2 country code. For example, US represents the United States, and DE represents Germany. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "county": {
+ "description": "The county of the shipping destination. Counties typically, but not always, contain multiple cities or towns. This field is returned if known/available.",
+ "type": "string"
+ },
+ "postalCode": {
+ "description": "The postal code of the shipping destination. Usually referred to as Zip codes in the US. Most countries have postal codes, but not all. The postal code will be returned if applicable.",
+ "type": "string"
+ },
+ "stateOrProvince": {
+ "description": "The state or province of the shipping destination. Most countries have states or provinces, but not all. The state or province will be returned if applicable.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "email": {
+ "description": "This field shows the email address of the buyer. The email address of a buyer will only be shown for the first two weeks after order creation. Two weeks after order creation, this field will stop getting returned. Note: This field will always show the email address of the buyer even with a Global Shipping Program shipment.",
+ "type": "string"
+ },
+ "fullName": {
+ "description": "The full name of the buyer or eBay shipping partner.",
+ "type": "string"
+ },
+ "primaryPhone": {
+ "description": "This type contains a string field representing a telephone number.",
+ "properties": {
+ "phoneNumber": {
+ "description": "The primary telephone number for the shipping recipient.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "shipToReferenceId": {
+ "description": "This is the unique identifer of the Global Shipping Program (GSP) shipment. This field is only returned if the line item is being shipped via GSP (the value of the fulfillmentStartInstructions.ebaySupportedFulfillment field will be true. The international shipping provider uses the shipToReferenceId value as the primary reference number to retrieve the relevant details about the buyer, the order, and the fulfillment, so the shipment can be completed. Sellers must include this value on the shipping label immediately above the street address of the international shipping provider. Example: "Reference #1234567890123456" Note: This value is the same as the ShipToAddress.ReferenceID value returned by the Trading API's GetOrders call.",
+ "type": "string"
+ },
+ "shippingCarrierCode": {
+ "description": "The unique identifier of the shipping carrier being used to ship the line item. Note: The Trading API's GeteBayDetails call can be used to retrieve the latest shipping carrier and shipping service option enumeration values.",
+ "type": "string"
+ },
+ "shippingServiceCode": {
+ "description": "The unique identifier of the shipping service option being used to ship the line item. Note: Use the Trading API's GeteBayDetails call to retrieve the latest shipping carrier and shipping service option enumeration values. When making the GeteBayDetails call, include the DetailName field in the request payload and set its value to ShippingServiceDetails. Each valid shipping service option (returned in ShippingServiceDetails.ShippingService field) and corresponding shipping carrier (returned in ShippingServiceDetails.ShippingCarrier field) is returned in response payload.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "GiftDetails": {
+ "description": "This type contains information about a digital gift card line item that was purchased as a gift, and sent to the recipient by email.",
+ "properties": {
+ "message": {
+ "description": "This field contains the gift message from the buyer to the gift recipient. This field is only returned if the buyer of the gift included a message for the gift.",
+ "type": "string"
+ },
+ "recipientEmail": {
+ "description": "The email address of the gift recipient. The seller will send the digital gift card to this email address.",
+ "type": "string"
+ },
+ "senderName": {
+ "description": "The name of the buyer, which will appear on the email that is sent to the gift recipient.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "LineItem": {
+ "description": "This type contains the details of a line item in an order. A line item consists of one or more units of a specific variation and version of a listed item that has been purchased.",
+ "properties": {
+ "appliedPromotions": {
+ "description": "This array contains information about one or more sales promotions or discounts applied to the line item. It is always returned, but will be returned as an empty array if no special sales promotions or discounts apply to the order line item.",
+ "items": {
+ "description": "This type contains information about a sales promotion that is applied to a line item.",
+ "properties": {
+ "description": {
+ "description": "A description of the applied sales promotion.",
+ "type": "string"
+ },
+ "discountAmount": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "promotionId": {
+ "description": "An eBay-generated unique identifier of the sales promotion. Multiple types of sales promotions are available to eBay Store owners, including order size/volume discounts, shipping discounts, special coupons, and price markdowns. Sales promotions can be managed through the Marketing tab of Seller Hub in My eBay, or by using the Trading API's SetPromotionalSale call or the Marketing API's createItemPromotion method.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "deliveryCost": {
+ "description": "This type contains a breakdown of all costs associated with the fulfillment of a line item.",
+ "properties": {
+ "importCharges": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "shippingCost": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "shippingIntermediationFee": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "discountedLineItemCost": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "ebayCollectAndRemitTaxes": {
+ "description": "This container will be returned if the order line item is subject to a tax that eBay will collect and remit to the proper taxing authority on the buyer's behalf. The amount of this tax is shown in the amount field, and the type of tax is shown in the taxType field. eBay will display the tax type and amount during checkout in accordance with the buyer's address, and handle collection and remittance of the tax without requiring the seller to take any action.",
+ "items": {
+ "description": "This type contains information about the type and amount of tax that eBay will collect and remit to the state, province, country, or other taxing authority in the buyer's location, as required by that taxing authority.",
+ "properties": {
+ "amount": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "taxType": {
+ "description": "The type of tax that eBay will collect and remit to the taxing authority. See the TaxTypeEnum type definition for more information about each tax type. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "giftDetails": {
+ "description": "This type contains information about a digital gift card line item that was purchased as a gift, and sent to the recipient by email.",
+ "properties": {
+ "message": {
+ "description": "This field contains the gift message from the buyer to the gift recipient. This field is only returned if the buyer of the gift included a message for the gift.",
+ "type": "string"
+ },
+ "recipientEmail": {
+ "description": "The email address of the gift recipient. The seller will send the digital gift card to this email address.",
+ "type": "string"
+ },
+ "senderName": {
+ "description": "The name of the buyer, which will appear on the email that is sent to the gift recipient.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "legacyItemId": {
+ "description": "The eBay-generated legacy listing item ID of the listing. Note that the unique identifier of a listing in REST-based APIs is called the listingId instead.",
+ "type": "string"
+ },
+ "legacyVariationId": {
+ "description": "The unique identifier of a single variation within a multiple-variation listing. This field is only returned if the line item purchased was from a multiple-variation listing.",
+ "type": "string"
+ },
+ "lineItemCost": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "lineItemFulfillmentInstructions": {
+ "description": "This type contains the specifications for processing the fulfillment of a line item, including the handling window and the delivery window. These fields provide guidance for eBay Guaranteed Delivery as well as for non-guaranteed delivery.",
+ "properties": {
+ "guaranteedDelivery": {
+ "description": "This field is returned as true if the order line item is qualified for eBay Guaranteed Delivery, or false if it is not eligible. Only domestic shipments are available for eBay Guaranteed Delivery. At this time, eBay Guaranteed Delivery is only available to a select number of sellers on the US and Australia sites, but this feature will be enabled on more eBay sites in 2019. There are two different eBay Guaranteed Delivery options - 'Handling time' option and 'Door-to-Door' option. With both options, the seller is commiting to getting the order delivered to the buyer within three business days after purchase. With the 'Handling time' option, the seller's stated handling time for a listing must be 'same-day' or '1-day', and at least one of the available shipping service options should have a shipping time that guarantees that the buyer receives the order on time. With this option, eBay will set the 'ship-by date' and expected delivery window for the seller, and the seller should just make sure they physically ship the order by the shipToDate. With the 'Door-to-door' option, the seller must create regional shipping rate tables (with shipping costs and delivery times based on destination regions), and then apply these regional shipping rates/delivery times to the listing. If a 'Door-to-door' order does not arrive on time, the seller must refund the buyer the full shipping cost (if any), and the buyer also has the option of returning the item for a full refund, and the seller will also have to pay the return shipping cost. With 'Handling time' option, as long as the seller meets the stated handling time, and ships using the correct shipping service option, eBay will refund the buyer the shipping cost and pay for return shipping label (if buyer wants to return item) if the order arrives after the expected delivery time. For more information on the details and requirements of eBay Guaranteed Delivery, see the Offering eBay Guaranteed Delivery help topic. This field will always be returned regardless of whether the listing site offers eBay Guaranteed Delivery or if the seller is opted in to the feature.",
+ "type": "boolean"
+ },
+ "maxEstimatedDeliveryDate": {
+ "description": "The estimated latest date and time that the buyer can expect to receive the line item based on the seller's stated handling time and the transit times of the available shipping service options. If the listing is eligible for eBay Guaranteed Delivery (value of guaranteedDelivery field is true, the seller must pay extra attention to this date, as a failure to deliver by this date/time can result in a 'Late shipment' seller defect, and can affect seller level and Top-Rated Seller status. In addition to the seller defect, buyers will be eligible for a shipping cost refund, and will also be eligible to return the item for a full refund (with no return shipping charge) if they choose. Note: This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "minEstimatedDeliveryDate": {
+ "description": "The estimated earliest date and time that the buyer can expect to receive the line item based on the seller's stated handling time and the transit times of the available shipping service options. Note: This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "shipByDate": {
+ "description": "The latest date and time by which the seller should ship line item in order to meet the expected delivery window. This timestamp will be set by eBay based on time of purchase and the seller's stated handling time. If the listing is eligible for eBay Guaranteed Delivery (value of guaranteedDelivery field is true, the seller must pay extra attention to this date, as a failure to physically ship the line item by this date/time can result in a 'Late shipment' seller defect, and can affect seller level and Top-Rated Seller status. In addition to the seller defect, buyers will be eligible for a shipping cost refund, and will also be eligible to return the item for a full refund (with no return shipping charge) if they choose. Note: This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "lineItemFulfillmentStatus": {
+ "description": "This enumeration value indicates the current fulfillment status of the line item. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "lineItemId": {
+ "description": "This is the unique identifier of an eBay order line item. This field is created as soon as there is a commitment to buy from the seller, and its value is based upon the concatenation of item ID/listing ID and the transaction ID, with a hyphen in between these two identifiers. Note: A single line item can consist of multiple units of a purchased item.",
+ "type": "string"
+ },
+ "listingMarketplaceId": {
+ "description": "The unique identifier of the eBay marketplace where the line item was listed. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "properties": {
+ "description": "This type contains information about the eBay programs under which a line item was listed and sold.",
+ "properties": {
+ "buyerProtection": {
+ "description": "A value of true indicates that the line item is covered by eBay's Buyer Protection program.",
+ "type": "boolean"
+ },
+ "fromBestOffer": {
+ "description": "This field is only returned if true and indicates that the purchase occurred by the buyer and seller mutually agreeing on a Best Offer amount. The Best Offer feature can be set up for any listing type, but if this feature is set up for an auction listing, it will no longer be available once a bid has been placed on the listing.",
+ "type": "boolean"
+ },
+ "soldViaAdCampaign": {
+ "description": "This field is only returned if true and indicates that the line item was sold as a result of a seller's ad campaign.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "purchaseMarketplaceId": {
+ "description": "The unique identifier of the eBay marketplace where the line item was listed. Often, the listingMarketplaceId and the purchaseMarketplaceId identifier are the same, but there are occasions when an item will surface on multiple eBay marketplaces. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "quantity": {
+ "description": "The number of units of the line item in the order. These are represented as a group by a single lineItemId.",
+ "type": "integer"
+ },
+ "refunds": {
+ "description": "This array is only returned if the seller has submitted a partial or full refund to the buyer for the order. If a refund has occurred, the refund amount and refund date will be shown for each refund.",
+ "items": {
+ "description": "This type contains refund informatino for a line item.",
+ "properties": {
+ "amount": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "refundDate": {
+ "description": "The date and time that the refund was issued for the line item. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. This field is not returned until the refund has been issued. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "refundReferenceId": {
+ "description": "This field is reserved for internal or future use.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "sku": {
+ "description": "Seller-defined Stock-Keeping Unit (SKU). This inventory identifier must be unique within the seller's eBay inventory. SKUs are optional when listing in the legacy/Trading API system, but SKUs are required when listing items through the Inventory API model.",
+ "type": "string"
+ },
+ "soldFormat": {
+ "description": "The eBay listing type of the line item. The most common listing types are AUCTION and FIXED_PRICE. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "taxes": {
+ "description": "Contains a list of taxes applied to the line item, if any. This array is always returned, but will be returned as empty if no taxes are applicable to the line item.",
+ "items": {
+ "description": "This type contains information about any sales tax applied to a line item.",
+ "properties": {
+ "amount": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "title": {
+ "description": "The title of the listing.",
+ "type": "string"
+ },
+ "total": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "LineItemFulfillmentInstructions": {
+ "description": "This type contains the specifications for processing the fulfillment of a line item, including the handling window and the delivery window. These fields provide guidance for eBay Guaranteed Delivery as well as for non-guaranteed delivery.",
+ "properties": {
+ "guaranteedDelivery": {
+ "description": "This field is returned as true if the order line item is qualified for eBay Guaranteed Delivery, or false if it is not eligible. Only domestic shipments are available for eBay Guaranteed Delivery. At this time, eBay Guaranteed Delivery is only available to a select number of sellers on the US and Australia sites, but this feature will be enabled on more eBay sites in 2019. There are two different eBay Guaranteed Delivery options - 'Handling time' option and 'Door-to-Door' option. With both options, the seller is commiting to getting the order delivered to the buyer within three business days after purchase. With the 'Handling time' option, the seller's stated handling time for a listing must be 'same-day' or '1-day', and at least one of the available shipping service options should have a shipping time that guarantees that the buyer receives the order on time. With this option, eBay will set the 'ship-by date' and expected delivery window for the seller, and the seller should just make sure they physically ship the order by the shipToDate. With the 'Door-to-door' option, the seller must create regional shipping rate tables (with shipping costs and delivery times based on destination regions), and then apply these regional shipping rates/delivery times to the listing. If a 'Door-to-door' order does not arrive on time, the seller must refund the buyer the full shipping cost (if any), and the buyer also has the option of returning the item for a full refund, and the seller will also have to pay the return shipping cost. With 'Handling time' option, as long as the seller meets the stated handling time, and ships using the correct shipping service option, eBay will refund the buyer the shipping cost and pay for return shipping label (if buyer wants to return item) if the order arrives after the expected delivery time. For more information on the details and requirements of eBay Guaranteed Delivery, see the Offering eBay Guaranteed Delivery help topic. This field will always be returned regardless of whether the listing site offers eBay Guaranteed Delivery or if the seller is opted in to the feature.",
+ "type": "boolean"
+ },
+ "maxEstimatedDeliveryDate": {
+ "description": "The estimated latest date and time that the buyer can expect to receive the line item based on the seller's stated handling time and the transit times of the available shipping service options. If the listing is eligible for eBay Guaranteed Delivery (value of guaranteedDelivery field is true, the seller must pay extra attention to this date, as a failure to deliver by this date/time can result in a 'Late shipment' seller defect, and can affect seller level and Top-Rated Seller status. In addition to the seller defect, buyers will be eligible for a shipping cost refund, and will also be eligible to return the item for a full refund (with no return shipping charge) if they choose. Note: This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "minEstimatedDeliveryDate": {
+ "description": "The estimated earliest date and time that the buyer can expect to receive the line item based on the seller's stated handling time and the transit times of the available shipping service options. Note: This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "shipByDate": {
+ "description": "The latest date and time by which the seller should ship line item in order to meet the expected delivery window. This timestamp will be set by eBay based on time of purchase and the seller's stated handling time. If the listing is eligible for eBay Guaranteed Delivery (value of guaranteedDelivery field is true, the seller must pay extra attention to this date, as a failure to physically ship the line item by this date/time can result in a 'Late shipment' seller defect, and can affect seller level and Top-Rated Seller status. In addition to the seller defect, buyers will be eligible for a shipping cost refund, and will also be eligible to return the item for a full refund (with no return shipping charge) if they choose. Note: This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "LineItemProperties": {
+ "description": "This type contains information about the eBay programs under which a line item was listed and sold.",
+ "properties": {
+ "buyerProtection": {
+ "description": "A value of true indicates that the line item is covered by eBay's Buyer Protection program.",
+ "type": "boolean"
+ },
+ "fromBestOffer": {
+ "description": "This field is only returned if true and indicates that the purchase occurred by the buyer and seller mutually agreeing on a Best Offer amount. The Best Offer feature can be set up for any listing type, but if this feature is set up for an auction listing, it will no longer be available once a bid has been placed on the listing.",
+ "type": "boolean"
+ },
+ "soldViaAdCampaign": {
+ "description": "This field is only returned if true and indicates that the line item was sold as a result of a seller's ad campaign.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "LineItemReference": {
+ "description": "This type identifies the line item and quantity of that line item that comprises one fulfillment, such as a shipping package.",
+ "properties": {
+ "lineItemId": {
+ "description": "This is the unique identifier of the eBay order line item that is part of the shipping fulfillment. The line item ID is created as soon as there is a commitment to buy from the seller, and its value is based upon the concatenation of item ID/listing ID and the transaction ID, with a hyphen in between these two identifiers.",
+ "type": "string"
+ },
+ "quantity": {
+ "description": "This field is reserved for internal or future use.",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "LineItemRefund": {
+ "description": "This type contains refund informatino for a line item.",
+ "properties": {
+ "amount": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "refundDate": {
+ "description": "The date and time that the refund was issued for the line item. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. This field is not returned until the refund has been issued. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "refundReferenceId": {
+ "description": "This field is reserved for internal or future use.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "OrderRefund": {
+ "description": "This type contains information about a refund issued for an order. This does not include line item level refunds.",
+ "properties": {
+ "amount": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "refundDate": {
+ "description": "The date and time that the refund was issued. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. This field is not returned until the refund has been issued. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "refundReferenceId": {
+ "description": "The eBay-generated unique identifier for the refund. This field is not returned until the refund has been issued.",
+ "type": "string"
+ },
+ "refundStatus": {
+ "description": "This enumeration value indicates the current status of the refund to the buyer. This container is always returned for each refund. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "Payment": {
+ "description": "This type is used to provide details about a buyer's payment for an order.",
+ "properties": {
+ "amount": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "paymentDate": {
+ "description": "The date and time that the payment was received by the seller. This field will not be returned if buyer has yet to pay for the order. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "paymentHolds": {
+ "description": "This container is only returned if eBay is temporarily holding the seller's funds for the order. If a payment hold has been placed on the order, this container includes the reason for the payment hold, the expected release date of the funds into the seller's account, the current state of the hold, and as soon as the payment hold has been released, the actual release date.",
+ "items": {
+ "description": "This type contains information about a hold placed on a payment to a seller for an order, including the reason why the buyer's payment for the order is being held, the expected release date of the funds into the seller's account, the current state of the hold, and the actual release date if the payment has been released, and possible actions the seller can take to expedite the payout of funds into their account.",
+ "properties": {
+ "expectedReleaseDate": {
+ "description": "The date and time that the payment being held is expected to be released to the seller. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. This field will be returned if known by eBay. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "holdAmount": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "holdReason": {
+ "description": "The reason that the payment is being held. A seller's payment may be helf for a number of reasons, including when the seller is new, the seller's level is below standard, or if a return case or 'Significantly not as described' case is pending against the seller. This field is always returned with the paymentHolds array.",
+ "type": "string"
+ },
+ "holdState": {
+ "description": "The current stage or condition of the hold. This field is always returned with the paymentHolds array. Applicable values: HELD HELD_PENDING NOT_HELD RELEASE_CONFIRMED RELEASE_FAILED RELEASE_PENDING RELEASED",
+ "type": "string"
+ },
+ "releaseDate": {
+ "description": "The date and time that the payment being held was actually released to the seller. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. This field is not returned until the seller's payment is actually released into the seller's account. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "sellerActionsToRelease": {
+ "description": "A list of one or more possible actions that the seller can take to release the hold on the payment.",
+ "items": {
+ "description": "This type is used to state possible action(s) that a seller can take to release a payment hold placed against an order.",
+ "properties": {
+ "sellerActionToRelease": {
+ "description": "A possible action that the seller can take to expedite the release of a payment hold. A sellerActionToRelease field is returned for each possible action that a seller may take. Possible actions may include providing shipping/tracking information, issuing a refund, providing refund information, contacting customer support, etc.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "paymentMethod": {
+ "description": "The payment method used by the buyer to pay for the order. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "paymentReferenceId": {
+ "description": "This field is only returned if payment has been made by the buyer, and the paymentMethod is PAYPAL. This field contains the PayPal-generated transaction identifier.",
+ "type": "string"
+ },
+ "paymentStatus": {
+ "description": "The enumeration value returned in this field indicates the status of the buyer's payment for the order. See the PaymentStatusEnum type definition for more information on the possible payment states. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "PaymentHold": {
+ "description": "This type contains information about a hold placed on a payment to a seller for an order, including the reason why the buyer's payment for the order is being held, the expected release date of the funds into the seller's account, the current state of the hold, and the actual release date if the payment has been released, and possible actions the seller can take to expedite the payout of funds into their account.",
+ "properties": {
+ "expectedReleaseDate": {
+ "description": "The date and time that the payment being held is expected to be released to the seller. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. This field will be returned if known by eBay. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "holdAmount": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "holdReason": {
+ "description": "The reason that the payment is being held. A seller's payment may be helf for a number of reasons, including when the seller is new, the seller's level is below standard, or if a return case or 'Significantly not as described' case is pending against the seller. This field is always returned with the paymentHolds array.",
+ "type": "string"
+ },
+ "holdState": {
+ "description": "The current stage or condition of the hold. This field is always returned with the paymentHolds array. Applicable values: HELD HELD_PENDING NOT_HELD RELEASE_CONFIRMED RELEASE_FAILED RELEASE_PENDING RELEASED",
+ "type": "string"
+ },
+ "releaseDate": {
+ "description": "The date and time that the payment being held was actually released to the seller. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. This field is not returned until the seller's payment is actually released into the seller's account. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "sellerActionsToRelease": {
+ "description": "A list of one or more possible actions that the seller can take to release the hold on the payment.",
+ "items": {
+ "description": "This type is used to state possible action(s) that a seller can take to release a payment hold placed against an order.",
+ "properties": {
+ "sellerActionToRelease": {
+ "description": "A possible action that the seller can take to expedite the release of a payment hold. A sellerActionToRelease field is returned for each possible action that a seller may take. Possible actions may include providing shipping/tracking information, issuing a refund, providing refund information, contacting customer support, etc.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "PaymentSummary": {
+ "description": "This type contains information about the various monetary exchanges that apply to the net balance due for the order.",
+ "properties": {
+ "payments": {
+ "description": "This array consists of payment information for the order, including payment status, payment method, payment amount, and payment date. This array is always returned, although some of the fields under this container will not be returned until payment has been made.",
+ "items": {
+ "description": "This type is used to provide details about a buyer's payment for an order.",
+ "properties": {
+ "amount": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "paymentDate": {
+ "description": "The date and time that the payment was received by the seller. This field will not be returned if buyer has yet to pay for the order. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "paymentHolds": {
+ "description": "This container is only returned if eBay is temporarily holding the seller's funds for the order. If a payment hold has been placed on the order, this container includes the reason for the payment hold, the expected release date of the funds into the seller's account, the current state of the hold, and as soon as the payment hold has been released, the actual release date.",
+ "items": {
+ "description": "This type contains information about a hold placed on a payment to a seller for an order, including the reason why the buyer's payment for the order is being held, the expected release date of the funds into the seller's account, the current state of the hold, and the actual release date if the payment has been released, and possible actions the seller can take to expedite the payout of funds into their account.",
+ "properties": {
+ "expectedReleaseDate": {
+ "description": "The date and time that the payment being held is expected to be released to the seller. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. This field will be returned if known by eBay. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "holdAmount": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "holdReason": {
+ "description": "The reason that the payment is being held. A seller's payment may be helf for a number of reasons, including when the seller is new, the seller's level is below standard, or if a return case or 'Significantly not as described' case is pending against the seller. This field is always returned with the paymentHolds array.",
+ "type": "string"
+ },
+ "holdState": {
+ "description": "The current stage or condition of the hold. This field is always returned with the paymentHolds array. Applicable values: HELD HELD_PENDING NOT_HELD RELEASE_CONFIRMED RELEASE_FAILED RELEASE_PENDING RELEASED",
+ "type": "string"
+ },
+ "releaseDate": {
+ "description": "The date and time that the payment being held was actually released to the seller. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. This field is not returned until the seller's payment is actually released into the seller's account. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "sellerActionsToRelease": {
+ "description": "A list of one or more possible actions that the seller can take to release the hold on the payment.",
+ "items": {
+ "description": "This type is used to state possible action(s) that a seller can take to release a payment hold placed against an order.",
+ "properties": {
+ "sellerActionToRelease": {
+ "description": "A possible action that the seller can take to expedite the release of a payment hold. A sellerActionToRelease field is returned for each possible action that a seller may take. Possible actions may include providing shipping/tracking information, issuing a refund, providing refund information, contacting customer support, etc.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "paymentMethod": {
+ "description": "The payment method used by the buyer to pay for the order. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "paymentReferenceId": {
+ "description": "This field is only returned if payment has been made by the buyer, and the paymentMethod is PAYPAL. This field contains the PayPal-generated transaction identifier.",
+ "type": "string"
+ },
+ "paymentStatus": {
+ "description": "The enumeration value returned in this field indicates the status of the buyer's payment for the order. See the PaymentStatusEnum type definition for more information on the possible payment states. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "refunds": {
+ "description": "This array is always returned, but is returned as an empty array unless the seller has submitted a partial or full refund to the buyer for the order. If a refund has occurred, the refund amount and refund date will be shown for each refund.",
+ "items": {
+ "description": "This type contains information about a refund issued for an order. This does not include line item level refunds.",
+ "properties": {
+ "amount": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "refundDate": {
+ "description": "The date and time that the refund was issued. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. This field is not returned until the refund has been issued. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "refundReferenceId": {
+ "description": "The eBay-generated unique identifier for the refund. This field is not returned until the refund has been issued.",
+ "type": "string"
+ },
+ "refundStatus": {
+ "description": "This enumeration value indicates the current status of the refund to the buyer. This container is always returned for each refund. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "totalDueSeller": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "PhoneNumber": {
+ "description": "This type contains a string field representing a telephone number.",
+ "properties": {
+ "phoneNumber": {
+ "description": "The primary telephone number for the shipping recipient.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "PickupStep": {
+ "description": "This type is used to indicate the merchant's store where the buyer will pickup their In-Store Pickup order. The pickupStep container is only returned for In-Store Pickup orders. The In-Store Pickup feature is supported in the US, Canada, UK, Germany, and Australia marketplaces.",
+ "properties": {
+ "merchantLocationKey": {
+ "description": "A merchant-defined unique identifier of the merchant's store where the buyer will pick up their In-Store Pickup order. This field is always returned with the pickupStep container.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "PricingSummary": {
+ "description": "This type contains a summary of cumulative costs and charges for all line items of an order, including item price, price adjustments, sales taxes, delivery costs, and order discounts.",
+ "properties": {
+ "adjustment": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "deliveryCost": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "deliveryDiscount": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "fee": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "priceDiscountSubtotal": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "priceSubtotal": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "tax": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "total": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "SellerActionsToRelease": {
+ "description": "This type is used to state possible action(s) that a seller can take to release a payment hold placed against an order.",
+ "properties": {
+ "sellerActionToRelease": {
+ "description": "A possible action that the seller can take to expedite the release of a payment hold. A sellerActionToRelease field is returned for each possible action that a seller may take. Possible actions may include providing shipping/tracking information, issuing a refund, providing refund information, contacting customer support, etc.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "ShippingFulfillment": {
+ "description": "This type contains the complete details of an existing fulfillment for an order.",
+ "properties": {
+ "fulfillmentId": {
+ "description": "The unique identifier of the fulfillment; for example, 9405509699937003457459. This eBay-generated value is created with a successful createShippingFulfillment call.",
+ "type": "string"
+ },
+ "lineItems": {
+ "description": "This array contains a list of one or more line items (and purchased quantity) to which the fulfillment applies.",
+ "items": {
+ "description": "This type identifies the line item and quantity of that line item that comprises one fulfillment, such as a shipping package.",
+ "properties": {
+ "lineItemId": {
+ "description": "This is the unique identifier of the eBay order line item that is part of the shipping fulfillment. The line item ID is created as soon as there is a commitment to buy from the seller, and its value is based upon the concatenation of item ID/listing ID and the transaction ID, with a hyphen in between these two identifiers.",
+ "type": "string"
+ },
+ "quantity": {
+ "description": "This field is reserved for internal or future use.",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "shipmentTrackingNumber": {
+ "description": "The tracking number provided by the shipping carrier for the package shipped in this fulfillment. This field is returned if available.",
+ "type": "string"
+ },
+ "shippedDate": {
+ "description": "The date and time that the fulfillment package was shipped. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. This field should only be returned if the package has been shipped. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "shippingCarrierCode": {
+ "description": "The eBay code identifying the shipping carrier for this fulfillment. This field is returned if available. Note: The Trading API's ShippingCarrierCodeType enumeration type contains the most current list of eBay shipping carrier codes and the countries served by each carrier. See ShippingCarrierCodeType.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "ShippingFulfillmentDetails": {
+ "description": "This type contains the details for creating a fulfillment for an order.",
+ "properties": {
+ "lineItems": {
+ "description": "This array contains a list of or more line items and the quantity that will be shipped in the same package.",
+ "items": {
+ "description": "This type identifies the line item and quantity of that line item that comprises one fulfillment, such as a shipping package.",
+ "properties": {
+ "lineItemId": {
+ "description": "This is the unique identifier of the eBay order line item that is part of the shipping fulfillment. The line item ID is created as soon as there is a commitment to buy from the seller, and its value is based upon the concatenation of item ID/listing ID and the transaction ID, with a hyphen in between these two identifiers.",
+ "type": "string"
+ },
+ "quantity": {
+ "description": "This field is reserved for internal or future use.",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "shippedDate": {
+ "description": "This is the actual date and time that the fulfillment package was shipped. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. The seller should use the actual date/time that the package was shipped, but if this field is omitted, it will default to the current date/time. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z Default: The current date and time.",
+ "type": "string"
+ },
+ "shippingCarrierCode": {
+ "description": "The unique identifier of the shipping carrier being used to ship the line item(s). Technically, the shippingCarrierCode and trackingNumber fields are optional, but generally these fields will be provided if the shipping carrier and tracking number are known. Note: Use the Trading API's GeteBayDetails call to retrieve the latest shipping carrier enumeration values. When making the GeteBayDetails call, include the DetailName field in the request payload and set its value to ShippingCarrierDetails. Each valid shipping carrier enumeration value is returned in a ShippingCarrierDetails.ShippingCarrier field in the response payload.",
+ "type": "string"
+ },
+ "trackingNumber": {
+ "description": "The tracking number provided by the shipping carrier for this fulfillment. The seller should be careful that this tracking number is accurate since the buyer will use this tracking number to track shipment, and eBay has no way to verify the accuracy of this number. This field and the shippingCarrierCode field are mutually dependent. If you include one, you must also include the other. Note: If you include trackingNumber (and shippingCarrierCode) in the request, the resulting fulfillment's ID (returned in the HTTP location code) is the tracking number. If you do not include shipment tracking information, the resulting fulfillment ID will default to an arbitrary number such as 999.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "ShippingFulfillmentPagedCollection": {
+ "description": "This type contains the specifications for the entire collection of shipping fulfillments that are associated with the order specified by a getShippingFulfillments call. The fulfillments container returns an array of all the fulfillments in the collection.",
+ "properties": {
+ "fulfillments": {
+ "description": "This array contains one or more fulfillments required for the order that was specified in method endpoint.",
+ "items": {
+ "description": "This type contains the complete details of an existing fulfillment for an order.",
+ "properties": {
+ "fulfillmentId": {
+ "description": "The unique identifier of the fulfillment; for example, 9405509699937003457459. This eBay-generated value is created with a successful createShippingFulfillment call.",
+ "type": "string"
+ },
+ "lineItems": {
+ "description": "This array contains a list of one or more line items (and purchased quantity) to which the fulfillment applies.",
+ "items": {
+ "description": "This type identifies the line item and quantity of that line item that comprises one fulfillment, such as a shipping package.",
+ "properties": {
+ "lineItemId": {
+ "description": "This is the unique identifier of the eBay order line item that is part of the shipping fulfillment. The line item ID is created as soon as there is a commitment to buy from the seller, and its value is based upon the concatenation of item ID/listing ID and the transaction ID, with a hyphen in between these two identifiers.",
+ "type": "string"
+ },
+ "quantity": {
+ "description": "This field is reserved for internal or future use.",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "shipmentTrackingNumber": {
+ "description": "The tracking number provided by the shipping carrier for the package shipped in this fulfillment. This field is returned if available.",
+ "type": "string"
+ },
+ "shippedDate": {
+ "description": "The date and time that the fulfillment package was shipped. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. This field should only be returned if the package has been shipped. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "shippingCarrierCode": {
+ "description": "The eBay code identifying the shipping carrier for this fulfillment. This field is returned if available. Note: The Trading API's ShippingCarrierCodeType enumeration type contains the most current list of eBay shipping carrier codes and the countries served by each carrier. See ShippingCarrierCodeType.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "total": {
+ "description": "The total number of fulfillments in the specified order. Note: If no fulfillments are found for the order, this field is returned with a value of 0.",
+ "type": "integer"
+ },
+ "warnings": {
+ "description": "This array is only returned if one or more errors or warnings occur with the call request.",
+ "items": {
+ "description": "This type contains a error or warning related to a call request. ",
+ "properties": {
+ "category": {
+ "description": "The context or source of this error or warning.",
+ "type": "string"
+ },
+ "domain": {
+ "description": "The name of the domain containing the service or application. For example, sell is a domain.",
+ "type": "string"
+ },
+ "errorId": {
+ "description": "A positive integer that uniquely identifies the specific error condition that occurred. Your application can use these values as error code identifiers in your customized error-handling algorithms.",
+ "type": "integer"
+ },
+ "inputRefIds": {
+ "description": "A list of one or more specific request elements (if any) associated with the error or warning. The format of these strings depends on the request payload format. For JSON, use JSONPath notation.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "longMessage": {
+ "description": "An expanded version of the message field. Maximum length: 200 characters",
+ "type": "string"
+ },
+ "message": {
+ "description": "A message about the error or warning which is device agnostic and readable by end users and application developers. It explains what the error or warning is, and how to fix it (in a general sense). If applicable, the value is localized to the end user's requested locale. Maximum length: 50 characters",
+ "type": "string"
+ },
+ "outputRefIds": {
+ "description": "A list of one or more specific response elements (if any) associated with the error or warning. The format of these strings depends on the request payload format. For JSON, use JSONPath notation.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "Contains a list of name/value pairs that provide additional information concerning this error or warning. Each item in the list is an input parameter that contributed to the error or warning condition.",
+ "items": {
+ "description": "This type contains the name and value of an input parameter that contributed to a specific error or warning condition.",
+ "properties": {
+ "name": {
+ "description": "This is the name of input field that caused an issue with the call request.",
+ "type": "string"
+ },
+ "value": {
+ "description": "This is the actual value that was passed in for the element specified in the name field.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "subdomain": {
+ "description": "The name of the domain's subsystem or subdivision. For example, fulfillment is a subdomain in the sell domain.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "ShippingStep": {
+ "description": "This type contains shipping information for a fulfillment, including the shipping carrier, the shipping service option, the shipment destination, and the Global Shipping Program reference ID.",
+ "properties": {
+ "shipTo": {
+ "description": "This type contains shipping and contact information for a buyer or an eBay shipping partner.",
+ "properties": {
+ "companyName": {
+ "description": "The company name associated with the buyer or eBay shipping partner. This field is only returned if defined/applicable to the buyer or eBay shipping partner.",
+ "type": "string"
+ },
+ "contactAddress": {
+ "description": "This type contains the details of a geographical address.",
+ "properties": {
+ "addressLine1": {
+ "description": "The first line of the street address.",
+ "type": "string"
+ },
+ "addressLine2": {
+ "description": "The second line of the street address. This field can be used for additional address information, such as a suite or apartment number. This field will be returned if defined for the shipping address.",
+ "type": "string"
+ },
+ "city": {
+ "description": "The city of the shipping destination.",
+ "type": "string"
+ },
+ "countryCode": {
+ "description": "The country of the shipping destination, represented as a two-letter ISO 3166-1 alpha-2 country code. For example, US represents the United States, and DE represents Germany. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "county": {
+ "description": "The county of the shipping destination. Counties typically, but not always, contain multiple cities or towns. This field is returned if known/available.",
+ "type": "string"
+ },
+ "postalCode": {
+ "description": "The postal code of the shipping destination. Usually referred to as Zip codes in the US. Most countries have postal codes, but not all. The postal code will be returned if applicable.",
+ "type": "string"
+ },
+ "stateOrProvince": {
+ "description": "The state or province of the shipping destination. Most countries have states or provinces, but not all. The state or province will be returned if applicable.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "email": {
+ "description": "This field shows the email address of the buyer. The email address of a buyer will only be shown for the first two weeks after order creation. Two weeks after order creation, this field will stop getting returned. Note: This field will always show the email address of the buyer even with a Global Shipping Program shipment.",
+ "type": "string"
+ },
+ "fullName": {
+ "description": "The full name of the buyer or eBay shipping partner.",
+ "type": "string"
+ },
+ "primaryPhone": {
+ "description": "This type contains a string field representing a telephone number.",
+ "properties": {
+ "phoneNumber": {
+ "description": "The primary telephone number for the shipping recipient.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "shipToReferenceId": {
+ "description": "This is the unique identifer of the Global Shipping Program (GSP) shipment. This field is only returned if the line item is being shipped via GSP (the value of the fulfillmentStartInstructions.ebaySupportedFulfillment field will be true. The international shipping provider uses the shipToReferenceId value as the primary reference number to retrieve the relevant details about the buyer, the order, and the fulfillment, so the shipment can be completed. Sellers must include this value on the shipping label immediately above the street address of the international shipping provider. Example: "Reference #1234567890123456" Note: This value is the same as the ShipToAddress.ReferenceID value returned by the Trading API's GetOrders call.",
+ "type": "string"
+ },
+ "shippingCarrierCode": {
+ "description": "The unique identifier of the shipping carrier being used to ship the line item. Note: The Trading API's GeteBayDetails call can be used to retrieve the latest shipping carrier and shipping service option enumeration values.",
+ "type": "string"
+ },
+ "shippingServiceCode": {
+ "description": "The unique identifier of the shipping service option being used to ship the line item. Note: Use the Trading API's GeteBayDetails call to retrieve the latest shipping carrier and shipping service option enumeration values. When making the GeteBayDetails call, include the DetailName field in the request payload and set its value to ShippingServiceDetails. Each valid shipping service option (returned in ShippingServiceDetails.ShippingService field) and corresponding shipping carrier (returned in ShippingServiceDetails.ShippingCarrier field) is returned in response payload.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "Tax": {
+ "description": "This type contains information about any sales tax applied to a line item.",
+ "properties": {
+ "amount": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "properties": {
+ "buyer": {
+ "description": "This type contains information about the buyer of an order.",
+ "properties": {
+ "username": {
+ "description": "The buyer's eBay user ID.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "buyerCheckoutNotes": {
+ "description": "This field contains any comments that the buyer left for the seller about the order during checkout process. This field is only returned if a buyer left comments at checkout time.",
+ "type": "string"
+ },
+ "cancelStatus": {
+ "description": "This type contains information about any requests that have been made to cancel an order.",
+ "properties": {
+ "cancelRequests": {
+ "description": "This array contains details of one or more buyer requests to cancel the order. If there are no cancellation requests against the order, the array is still returned, but is empty.",
+ "items": {
+ "description": "This type contains information about a buyer request to cancel an order.",
+ "properties": {
+ "cancelCompletedDate": {
+ "description": "The date and time that the order cancellation was completed, if applicable. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. This field is not returned until the cancellation request has actually be granted by the seller. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "cancelInitiator": {
+ "description": "This string value indicates the party who made the initial cancellation request. Typically, either the 'Buyer' or 'Seller'. If a cancellation request has been made, this field should be returned.",
+ "type": "string"
+ },
+ "cancelReason": {
+ "description": "The reason why the cancelInitiator initiated the cancellation request. Cancellation reasons for a buyer might include 'order placed by mistake' or 'order won't arrive in time'. For a seller, a typical cancellation reason is 'out of stock'. If a cancellation request has been made, this field should be returned.",
+ "type": "string"
+ },
+ "cancelRequestId": {
+ "description": "The unique identifier of the order cancellation request. This field is returned for each cancellation request.",
+ "type": "string"
+ },
+ "cancelRequestState": {
+ "description": "The current stage or condition of the cancellation request. This field is returned for each cancellation request. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "cancelRequestedDate": {
+ "description": "The date and time that the order cancellation was requested. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. This field is returned for each cancellation request. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "cancelState": {
+ "description": "The state of the order with regard to cancellation. This field is always returned, and if there are no cancellation requests, a value of NONE_REQUESTED is returned. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "cancelledDate": {
+ "description": "The date and time the order was cancelled, if applicable. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "creationDate": {
+ "description": "The date and time that the order was created. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "ebayCollectAndRemitTax": {
+ "description": "This field is only returned if true, and indicates that eBay will collect tax (sales tax, Goods and Services tax, or VAT) for at least one line item in the order, and remit the tax to the taxing authority of the buyer's residence. If this field is returned, the seller should search for one or more ebayCollectAndRemitTaxes containers at the line item level to get more information about the type of tax and the amount.",
+ "type": "boolean"
+ },
+ "fulfillmentHrefs": {
+ "description": "This array contains a list of one or more getShippingFulfillment call URIs that can be used to retrieve shipping fulfillments that have been set up for the order.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "fulfillmentStartInstructions": {
+ "description": "This container consists of a set of specifications for fulfilling the order, including the type of fulfillment, shipping carrier and service, shipping address, and estimated delivery window. These instructions are derived from the buyer's and seller's eBay account preferences, the listing parameters, and the buyer's checkout selections. The seller can use them as a starting point for packaging, addressing, and shipping the order. Note: Although this container is presented as an array, it currently returns only one set of fulfillment specifications. Additional array members will be supported in future functionality.",
+ "items": {
+ "description": "This type contains a set of specifications for processing a fulfillment of an order, including the type of fulfillment, shipping carrier and service, addressing details, and estimated delivery window. These instructions are derived from the buyer's and seller's eBay account preferences, the listing parameters, and the buyer's checkout selections. The seller can use them as a starting point for packaging, addressing, and shipping the order.",
+ "properties": {
+ "ebaySupportedFulfillment": {
+ "description": "This field is only returned if its value is true and indicates that the fulfillment will be shipped via eBay's Global Shipping Program. For more information, see the Global Shipping Program help topic.",
+ "type": "boolean"
+ },
+ "finalDestinationAddress": {
+ "description": "This type contains the details of a geographical address.",
+ "properties": {
+ "addressLine1": {
+ "description": "The first line of the street address.",
+ "type": "string"
+ },
+ "addressLine2": {
+ "description": "The second line of the street address. This field can be used for additional address information, such as a suite or apartment number. This field will be returned if defined for the shipping address.",
+ "type": "string"
+ },
+ "city": {
+ "description": "The city of the shipping destination.",
+ "type": "string"
+ },
+ "countryCode": {
+ "description": "The country of the shipping destination, represented as a two-letter ISO 3166-1 alpha-2 country code. For example, US represents the United States, and DE represents Germany. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "county": {
+ "description": "The county of the shipping destination. Counties typically, but not always, contain multiple cities or towns. This field is returned if known/available.",
+ "type": "string"
+ },
+ "postalCode": {
+ "description": "The postal code of the shipping destination. Usually referred to as Zip codes in the US. Most countries have postal codes, but not all. The postal code will be returned if applicable.",
+ "type": "string"
+ },
+ "stateOrProvince": {
+ "description": "The state or province of the shipping destination. Most countries have states or provinces, but not all. The state or province will be returned if applicable.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "fulfillmentInstructionsType": {
+ "description": "The enumeration value returned in this field indicates the method of fulfillment that will be used to deliver this set of line items (this package) to the buyer. This field will have a value of SHIP_TO if the ebaySupportedFulfillment field is returned with a value of true. See the FulfillmentInstructionsType definition for more information about different fulfillment types. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "maxEstimatedDeliveryDate": {
+ "description": "This is the estimated latest date that the fulfillment will be completed. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. This field is not returned if the value of the fulfillmentInstructionsType field is DIGITAL. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "minEstimatedDeliveryDate": {
+ "description": "This is the estimated earliest date that the fulfillment will be completed. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. This field is not returned if the value of the fulfillmentInstructionsType field is DIGITAL. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "pickupStep": {
+ "description": "This type is used to indicate the merchant's store where the buyer will pickup their In-Store Pickup order. The pickupStep container is only returned for In-Store Pickup orders. The In-Store Pickup feature is supported in the US, Canada, UK, Germany, and Australia marketplaces.",
+ "properties": {
+ "merchantLocationKey": {
+ "description": "A merchant-defined unique identifier of the merchant's store where the buyer will pick up their In-Store Pickup order. This field is always returned with the pickupStep container.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "shippingStep": {
+ "description": "This type contains shipping information for a fulfillment, including the shipping carrier, the shipping service option, the shipment destination, and the Global Shipping Program reference ID.",
+ "properties": {
+ "shipTo": {
+ "description": "This type contains shipping and contact information for a buyer or an eBay shipping partner.",
+ "properties": {
+ "companyName": {
+ "description": "The company name associated with the buyer or eBay shipping partner. This field is only returned if defined/applicable to the buyer or eBay shipping partner.",
+ "type": "string"
+ },
+ "contactAddress": {
+ "description": "This type contains the details of a geographical address.",
+ "properties": {
+ "addressLine1": {
+ "description": "The first line of the street address.",
+ "type": "string"
+ },
+ "addressLine2": {
+ "description": "The second line of the street address. This field can be used for additional address information, such as a suite or apartment number. This field will be returned if defined for the shipping address.",
+ "type": "string"
+ },
+ "city": {
+ "description": "The city of the shipping destination.",
+ "type": "string"
+ },
+ "countryCode": {
+ "description": "The country of the shipping destination, represented as a two-letter ISO 3166-1 alpha-2 country code. For example, US represents the United States, and DE represents Germany. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "county": {
+ "description": "The county of the shipping destination. Counties typically, but not always, contain multiple cities or towns. This field is returned if known/available.",
+ "type": "string"
+ },
+ "postalCode": {
+ "description": "The postal code of the shipping destination. Usually referred to as Zip codes in the US. Most countries have postal codes, but not all. The postal code will be returned if applicable.",
+ "type": "string"
+ },
+ "stateOrProvince": {
+ "description": "The state or province of the shipping destination. Most countries have states or provinces, but not all. The state or province will be returned if applicable.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "email": {
+ "description": "This field shows the email address of the buyer. The email address of a buyer will only be shown for the first two weeks after order creation. Two weeks after order creation, this field will stop getting returned. Note: This field will always show the email address of the buyer even with a Global Shipping Program shipment.",
+ "type": "string"
+ },
+ "fullName": {
+ "description": "The full name of the buyer or eBay shipping partner.",
+ "type": "string"
+ },
+ "primaryPhone": {
+ "description": "This type contains a string field representing a telephone number.",
+ "properties": {
+ "phoneNumber": {
+ "description": "The primary telephone number for the shipping recipient.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "shipToReferenceId": {
+ "description": "This is the unique identifer of the Global Shipping Program (GSP) shipment. This field is only returned if the line item is being shipped via GSP (the value of the fulfillmentStartInstructions.ebaySupportedFulfillment field will be true. The international shipping provider uses the shipToReferenceId value as the primary reference number to retrieve the relevant details about the buyer, the order, and the fulfillment, so the shipment can be completed. Sellers must include this value on the shipping label immediately above the street address of the international shipping provider. Example: "Reference #1234567890123456" Note: This value is the same as the ShipToAddress.ReferenceID value returned by the Trading API's GetOrders call.",
+ "type": "string"
+ },
+ "shippingCarrierCode": {
+ "description": "The unique identifier of the shipping carrier being used to ship the line item. Note: The Trading API's GeteBayDetails call can be used to retrieve the latest shipping carrier and shipping service option enumeration values.",
+ "type": "string"
+ },
+ "shippingServiceCode": {
+ "description": "The unique identifier of the shipping service option being used to ship the line item. Note: Use the Trading API's GeteBayDetails call to retrieve the latest shipping carrier and shipping service option enumeration values. When making the GeteBayDetails call, include the DetailName field in the request payload and set its value to ShippingServiceDetails. Each valid shipping service option (returned in ShippingServiceDetails.ShippingService field) and corresponding shipping carrier (returned in ShippingServiceDetails.ShippingCarrier field) is returned in response payload.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "lastModifiedDate": {
+ "description": "The date and time that the order was last modified. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "legacyOrderId": {
+ "description": "The order's unique identifier, as formatted for legacy APIs. Both the orderId field and this field are always returned. Use the value of legacyOrderId instead of the value of orderId with APIs that require a legacy order ID, such as the Post-Order API or the Trading API. Note: The value of this field is not formatted the same way as the value of the orderId field. Do not attempt to use this field's value in the orderId field.",
+ "type": "string"
+ },
+ "lineItems": {
+ "description": "This array contains the details for all line items that comprise the order. A line item consists of one or more units of a specific variation and version of a listed item that has been purchased.",
+ "items": {
+ "description": "This type contains the details of a line item in an order. A line item consists of one or more units of a specific variation and version of a listed item that has been purchased.",
+ "properties": {
+ "appliedPromotions": {
+ "description": "This array contains information about one or more sales promotions or discounts applied to the line item. It is always returned, but will be returned as an empty array if no special sales promotions or discounts apply to the order line item.",
+ "items": {
+ "description": "This type contains information about a sales promotion that is applied to a line item.",
+ "properties": {
+ "description": {
+ "description": "A description of the applied sales promotion.",
+ "type": "string"
+ },
+ "discountAmount": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "promotionId": {
+ "description": "An eBay-generated unique identifier of the sales promotion. Multiple types of sales promotions are available to eBay Store owners, including order size/volume discounts, shipping discounts, special coupons, and price markdowns. Sales promotions can be managed through the Marketing tab of Seller Hub in My eBay, or by using the Trading API's SetPromotionalSale call or the Marketing API's createItemPromotion method.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "deliveryCost": {
+ "description": "This type contains a breakdown of all costs associated with the fulfillment of a line item.",
+ "properties": {
+ "importCharges": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "shippingCost": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "shippingIntermediationFee": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "discountedLineItemCost": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "ebayCollectAndRemitTaxes": {
+ "description": "This container will be returned if the order line item is subject to a tax that eBay will collect and remit to the proper taxing authority on the buyer's behalf. The amount of this tax is shown in the amount field, and the type of tax is shown in the taxType field. eBay will display the tax type and amount during checkout in accordance with the buyer's address, and handle collection and remittance of the tax without requiring the seller to take any action.",
+ "items": {
+ "description": "This type contains information about the type and amount of tax that eBay will collect and remit to the state, province, country, or other taxing authority in the buyer's location, as required by that taxing authority.",
+ "properties": {
+ "amount": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "taxType": {
+ "description": "The type of tax that eBay will collect and remit to the taxing authority. See the TaxTypeEnum type definition for more information about each tax type. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "giftDetails": {
+ "description": "This type contains information about a digital gift card line item that was purchased as a gift, and sent to the recipient by email.",
+ "properties": {
+ "message": {
+ "description": "This field contains the gift message from the buyer to the gift recipient. This field is only returned if the buyer of the gift included a message for the gift.",
+ "type": "string"
+ },
+ "recipientEmail": {
+ "description": "The email address of the gift recipient. The seller will send the digital gift card to this email address.",
+ "type": "string"
+ },
+ "senderName": {
+ "description": "The name of the buyer, which will appear on the email that is sent to the gift recipient.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "legacyItemId": {
+ "description": "The eBay-generated legacy listing item ID of the listing. Note that the unique identifier of a listing in REST-based APIs is called the listingId instead.",
+ "type": "string"
+ },
+ "legacyVariationId": {
+ "description": "The unique identifier of a single variation within a multiple-variation listing. This field is only returned if the line item purchased was from a multiple-variation listing.",
+ "type": "string"
+ },
+ "lineItemCost": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "lineItemFulfillmentInstructions": {
+ "description": "This type contains the specifications for processing the fulfillment of a line item, including the handling window and the delivery window. These fields provide guidance for eBay Guaranteed Delivery as well as for non-guaranteed delivery.",
+ "properties": {
+ "guaranteedDelivery": {
+ "description": "This field is returned as true if the order line item is qualified for eBay Guaranteed Delivery, or false if it is not eligible. Only domestic shipments are available for eBay Guaranteed Delivery. At this time, eBay Guaranteed Delivery is only available to a select number of sellers on the US and Australia sites, but this feature will be enabled on more eBay sites in 2019. There are two different eBay Guaranteed Delivery options - 'Handling time' option and 'Door-to-Door' option. With both options, the seller is commiting to getting the order delivered to the buyer within three business days after purchase. With the 'Handling time' option, the seller's stated handling time for a listing must be 'same-day' or '1-day', and at least one of the available shipping service options should have a shipping time that guarantees that the buyer receives the order on time. With this option, eBay will set the 'ship-by date' and expected delivery window for the seller, and the seller should just make sure they physically ship the order by the shipToDate. With the 'Door-to-door' option, the seller must create regional shipping rate tables (with shipping costs and delivery times based on destination regions), and then apply these regional shipping rates/delivery times to the listing. If a 'Door-to-door' order does not arrive on time, the seller must refund the buyer the full shipping cost (if any), and the buyer also has the option of returning the item for a full refund, and the seller will also have to pay the return shipping cost. With 'Handling time' option, as long as the seller meets the stated handling time, and ships using the correct shipping service option, eBay will refund the buyer the shipping cost and pay for return shipping label (if buyer wants to return item) if the order arrives after the expected delivery time. For more information on the details and requirements of eBay Guaranteed Delivery, see the Offering eBay Guaranteed Delivery help topic. This field will always be returned regardless of whether the listing site offers eBay Guaranteed Delivery or if the seller is opted in to the feature.",
+ "type": "boolean"
+ },
+ "maxEstimatedDeliveryDate": {
+ "description": "The estimated latest date and time that the buyer can expect to receive the line item based on the seller's stated handling time and the transit times of the available shipping service options. If the listing is eligible for eBay Guaranteed Delivery (value of guaranteedDelivery field is true, the seller must pay extra attention to this date, as a failure to deliver by this date/time can result in a 'Late shipment' seller defect, and can affect seller level and Top-Rated Seller status. In addition to the seller defect, buyers will be eligible for a shipping cost refund, and will also be eligible to return the item for a full refund (with no return shipping charge) if they choose. Note: This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "minEstimatedDeliveryDate": {
+ "description": "The estimated earliest date and time that the buyer can expect to receive the line item based on the seller's stated handling time and the transit times of the available shipping service options. Note: This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "shipByDate": {
+ "description": "The latest date and time by which the seller should ship line item in order to meet the expected delivery window. This timestamp will be set by eBay based on time of purchase and the seller's stated handling time. If the listing is eligible for eBay Guaranteed Delivery (value of guaranteedDelivery field is true, the seller must pay extra attention to this date, as a failure to physically ship the line item by this date/time can result in a 'Late shipment' seller defect, and can affect seller level and Top-Rated Seller status. In addition to the seller defect, buyers will be eligible for a shipping cost refund, and will also be eligible to return the item for a full refund (with no return shipping charge) if they choose. Note: This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "lineItemFulfillmentStatus": {
+ "description": "This enumeration value indicates the current fulfillment status of the line item. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "lineItemId": {
+ "description": "This is the unique identifier of an eBay order line item. This field is created as soon as there is a commitment to buy from the seller, and its value is based upon the concatenation of item ID/listing ID and the transaction ID, with a hyphen in between these two identifiers. Note: A single line item can consist of multiple units of a purchased item.",
+ "type": "string"
+ },
+ "listingMarketplaceId": {
+ "description": "The unique identifier of the eBay marketplace where the line item was listed. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "properties": {
+ "description": "This type contains information about the eBay programs under which a line item was listed and sold.",
+ "properties": {
+ "buyerProtection": {
+ "description": "A value of true indicates that the line item is covered by eBay's Buyer Protection program.",
+ "type": "boolean"
+ },
+ "fromBestOffer": {
+ "description": "This field is only returned if true and indicates that the purchase occurred by the buyer and seller mutually agreeing on a Best Offer amount. The Best Offer feature can be set up for any listing type, but if this feature is set up for an auction listing, it will no longer be available once a bid has been placed on the listing.",
+ "type": "boolean"
+ },
+ "soldViaAdCampaign": {
+ "description": "This field is only returned if true and indicates that the line item was sold as a result of a seller's ad campaign.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "purchaseMarketplaceId": {
+ "description": "The unique identifier of the eBay marketplace where the line item was listed. Often, the listingMarketplaceId and the purchaseMarketplaceId identifier are the same, but there are occasions when an item will surface on multiple eBay marketplaces. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "quantity": {
+ "description": "The number of units of the line item in the order. These are represented as a group by a single lineItemId.",
+ "type": "integer"
+ },
+ "refunds": {
+ "description": "This array is only returned if the seller has submitted a partial or full refund to the buyer for the order. If a refund has occurred, the refund amount and refund date will be shown for each refund.",
+ "items": {
+ "description": "This type contains refund informatino for a line item.",
+ "properties": {
+ "amount": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "refundDate": {
+ "description": "The date and time that the refund was issued for the line item. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. This field is not returned until the refund has been issued. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "refundReferenceId": {
+ "description": "This field is reserved for internal or future use.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "sku": {
+ "description": "Seller-defined Stock-Keeping Unit (SKU). This inventory identifier must be unique within the seller's eBay inventory. SKUs are optional when listing in the legacy/Trading API system, but SKUs are required when listing items through the Inventory API model.",
+ "type": "string"
+ },
+ "soldFormat": {
+ "description": "The eBay listing type of the line item. The most common listing types are AUCTION and FIXED_PRICE. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "taxes": {
+ "description": "Contains a list of taxes applied to the line item, if any. This array is always returned, but will be returned as empty if no taxes are applicable to the line item.",
+ "items": {
+ "description": "This type contains information about any sales tax applied to a line item.",
+ "properties": {
+ "amount": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "title": {
+ "description": "The title of the listing.",
+ "type": "string"
+ },
+ "total": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "orderFulfillmentStatus": {
+ "description": "The degree to which fulfillment of the order is complete. See the OrderFulfillmentStatus type definition for more information about each possible fulfillment state. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "orderId": {
+ "description": "The unique identifier of the order. This value was originally generated by eBay as a result of the buyer's checkout process; for example, 170009092860-9849164007!140000000544476. Note: The value of this field is not formatted the same way as the value of the Trading API's OrderID field. Use the value of the legacyOrderId field instead of this one with the Trading API.",
+ "type": "string"
+ },
+ "orderPaymentStatus": {
+ "description": "The enumeration value returned in this field indicates the current payment status of an order, or in case of a refund request, the current status of the refund. See the OrderPaymentStatusEnum type definition for more information about each possible payment/refund state. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "paymentSummary": {
+ "description": "This type contains information about the various monetary exchanges that apply to the net balance due for the order.",
+ "properties": {
+ "payments": {
+ "description": "This array consists of payment information for the order, including payment status, payment method, payment amount, and payment date. This array is always returned, although some of the fields under this container will not be returned until payment has been made.",
+ "items": {
+ "description": "This type is used to provide details about a buyer's payment for an order.",
+ "properties": {
+ "amount": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "paymentDate": {
+ "description": "The date and time that the payment was received by the seller. This field will not be returned if buyer has yet to pay for the order. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "paymentHolds": {
+ "description": "This container is only returned if eBay is temporarily holding the seller's funds for the order. If a payment hold has been placed on the order, this container includes the reason for the payment hold, the expected release date of the funds into the seller's account, the current state of the hold, and as soon as the payment hold has been released, the actual release date.",
+ "items": {
+ "description": "This type contains information about a hold placed on a payment to a seller for an order, including the reason why the buyer's payment for the order is being held, the expected release date of the funds into the seller's account, the current state of the hold, and the actual release date if the payment has been released, and possible actions the seller can take to expedite the payout of funds into their account.",
+ "properties": {
+ "expectedReleaseDate": {
+ "description": "The date and time that the payment being held is expected to be released to the seller. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. This field will be returned if known by eBay. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "holdAmount": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "holdReason": {
+ "description": "The reason that the payment is being held. A seller's payment may be helf for a number of reasons, including when the seller is new, the seller's level is below standard, or if a return case or 'Significantly not as described' case is pending against the seller. This field is always returned with the paymentHolds array.",
+ "type": "string"
+ },
+ "holdState": {
+ "description": "The current stage or condition of the hold. This field is always returned with the paymentHolds array. Applicable values: HELD HELD_PENDING NOT_HELD RELEASE_CONFIRMED RELEASE_FAILED RELEASE_PENDING RELEASED",
+ "type": "string"
+ },
+ "releaseDate": {
+ "description": "The date and time that the payment being held was actually released to the seller. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. This field is not returned until the seller's payment is actually released into the seller's account. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "sellerActionsToRelease": {
+ "description": "A list of one or more possible actions that the seller can take to release the hold on the payment.",
+ "items": {
+ "description": "This type is used to state possible action(s) that a seller can take to release a payment hold placed against an order.",
+ "properties": {
+ "sellerActionToRelease": {
+ "description": "A possible action that the seller can take to expedite the release of a payment hold. A sellerActionToRelease field is returned for each possible action that a seller may take. Possible actions may include providing shipping/tracking information, issuing a refund, providing refund information, contacting customer support, etc.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "paymentMethod": {
+ "description": "The payment method used by the buyer to pay for the order. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "paymentReferenceId": {
+ "description": "This field is only returned if payment has been made by the buyer, and the paymentMethod is PAYPAL. This field contains the PayPal-generated transaction identifier.",
+ "type": "string"
+ },
+ "paymentStatus": {
+ "description": "The enumeration value returned in this field indicates the status of the buyer's payment for the order. See the PaymentStatusEnum type definition for more information on the possible payment states. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "refunds": {
+ "description": "This array is always returned, but is returned as an empty array unless the seller has submitted a partial or full refund to the buyer for the order. If a refund has occurred, the refund amount and refund date will be shown for each refund.",
+ "items": {
+ "description": "This type contains information about a refund issued for an order. This does not include line item level refunds.",
+ "properties": {
+ "amount": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "refundDate": {
+ "description": "The date and time that the refund was issued. This timestamp is in ISO 8601 format, which uses the 24-hour Universal Coordinated Time (UTC) clock. This field is not returned until the refund has been issued. Format: YYYY-MM-DDTHH:MM:SS.SSSZ Example: 2015-08-04T19:09:02.768Z",
+ "type": "string"
+ },
+ "refundReferenceId": {
+ "description": "The eBay-generated unique identifier for the refund. This field is not returned until the refund has been issued.",
+ "type": "string"
+ },
+ "refundStatus": {
+ "description": "This enumeration value indicates the current status of the refund to the buyer. This container is always returned for each refund. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "totalDueSeller": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "pricingSummary": {
+ "description": "This type contains a summary of cumulative costs and charges for all line items of an order, including item price, price adjustments, sales taxes, delivery costs, and order discounts.",
+ "properties": {
+ "adjustment": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "deliveryCost": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "deliveryDiscount": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "fee": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "priceDiscountSubtotal": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "priceSubtotal": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "tax": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "total": {
+ "description": "This type defines the monetary value of an amount. It can provide the amount in both the currency used on the eBay site where an item is being offered and the conversion of that value into another currency, if applicable.",
+ "properties": {
+ "convertedFromCurrency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the convertedFromValue field. This value is required or returned only if currency conversion/localization is required, and represents the pre-conversion currency. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "convertedFromValue": {
+ "description": "The monetary amount before any conversion is performed, in the currency specified by the convertedFromCurrency field. This value is required or returned only if currency conversion/localization is required. The value field contains the converted amount of this value, in the currency specified by the currency field.",
+ "type": "string"
+ },
+ "currency": {
+ "description": "A three-letter ISO 4217 code that indicates the currency of the amount in the value field. If currency conversion/localization is required, this is the post-conversion currency of the amount in the value field. Default: The currency of the authenticated user's country. For implementation help, refer to eBay API documentation",
+ "type": "string"
+ },
+ "value": {
+ "description": "The monetary amount, in the currency specified by the currency field. If currency conversion/localization is required, this value is the converted amount, and the convertedFromValue field contains the amount in the original currency.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "salesRecordReference": {
+ "description": "An eBay-generated identifier that is used to identify and manage orders through the Selling Manager and Selling Manager Pro tools. This order identifier can also be found on the Orders grid page and in the Sales Record pages in Seller Hub. A salesRecordReference number is only generated and returned at the order level, and not at the order line item level. In cases where the seller does not have a Selling Manager or Selling Manager Pro subscription nor access to Seller Hub, this field may not be returned.",
+ "type": "string"
+ },
+ "sellerId": {
+ "description": "The unique eBay user ID of the seller who sold the order.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/eloqua/v1/eloqua-v1-foreign-keys.yml b/_data/taps/schemas/eloqua/v1/eloqua-v1-foreign-keys.yml
new file mode 100644
index 000000000..cbdbebdab
--- /dev/null
+++ b/_data/taps/schemas/eloqua/v1/eloqua-v1-foreign-keys.yml
@@ -0,0 +1,1415 @@
+tap: eloqua
+version: '1'
+keys:
+ accounts_id:
+ - table: accounts
+ keys:
+ - id
+ assets_AssetId:
+ - table: assets
+ keys:
+ - id
+ - table: activity_bounceback
+ keys:
+ - AssetId
+ - table: activity_email_clickthrough
+ keys:
+ - AssetId
+ - table: activity_email_open
+ keys:
+ - AssetId
+ - table: activity_email_send
+ keys:
+ - AssetId
+ - table: activity_form_submit
+ keys:
+ - AssetId
+ - table: activity_page_view
+ keys:
+ - AssetId
+ - table: activity_subscribe
+ keys:
+ - AssetId
+ - table: activity_unsubscribe
+ keys:
+ - AssetId
+ - table: activity_web_visit
+ keys:
+ - AssetId
+ campaigns_CampaignId:
+ - table: campaigns
+ keys:
+ - id
+ - table: activity_bounceback
+ keys:
+ - CampaignId
+ - table: activity_email_clickthrough
+ keys:
+ - CampaignId
+ - table: activity_email_open
+ keys:
+ - CampaignId
+ - table: activity_email_send
+ keys:
+ - CampaignId
+ - table: activity_form_submit
+ keys:
+ - CampaignId
+ - table: activity_page_view
+ keys:
+ - CampaignId
+ - table: activity_subscribe
+ keys:
+ - CampaignId
+ - table: activity_unsubscribe
+ keys:
+ - CampaignId
+ - table: forms
+ keys:
+ - processingSteps.campaignId
+ contacts_ContactId:
+ - table: contacts
+ keys:
+ - Id
+ - table: activity_bounceback
+ keys:
+ - ContactId
+ - table: activity_email_clickthrough
+ keys:
+ - ContactId
+ - table: activity_email_open
+ keys:
+ - ContactId
+ - table: activity_email_send
+ keys:
+ - ContactId
+ - table: activity_form_submit
+ keys:
+ - ContactId
+ - table: activity_page_view
+ keys:
+ - ContactId
+ - table: activity_subscribe
+ keys:
+ - ContactId
+ - table: activity_unsubscribe
+ keys:
+ - ContactId
+ - table: visitors
+ keys:
+ - contactId
+ emails_emailId:
+ - table: emails
+ keys:
+ - id
+ - table: forms
+ keys:
+ - processingSteps.emailId
+ _emailFooterId:
+ - table: emailGroups
+ keys:
+ - emailFooterId
+ - table: emails
+ keys:
+ - emailFooterId
+ _emailHeaderId:
+ - table: emailGroups
+ keys:
+ - emailHeaderId
+ - table: emails
+ keys:
+ - emailHeaderId
+ _folderId:
+ - table: assets
+ keys:
+ - folderId
+ - table: campaigns
+ keys:
+ - folderId
+ - table: emails
+ keys:
+ - dynamicContents.folderId
+ - hyperlinks.folderId
+ - images.folderId
+ - table: forms
+ keys:
+ - folderId
+ forms_id:
+ - table: forms
+ keys:
+ - id
+ _:
+ - table: assets
+ keys:
+ - createdBy
+ - updatedBy
+ - table: campaigns
+ keys:
+ - createdBy
+ - updatedBy
+ - runAsUserId
+ - table: emails
+ keys:
+ - createdBy
+ - dynamicContents.createdBy
+ - dynamicContents.updatedBy
+ - fieldMerges.createdBy
+ - fieldMerges.updatedBy
+ - hyperlinks.createdBy
+ - hyperlinks.updatedBy
+ - images.createdBy
+ - images.updatedBy
+ - updatedBy
+ visitors_VisitorId:
+ - table: activity_email_clickthrough
+ keys:
+ - VisitorId
+ - table: activity_email_open
+ keys:
+ - VisitorId
+ - table: activity_form_submit
+ keys:
+ - VisitorId
+ - table: activity_page_view
+ keys:
+ - VisitorId
+ - table: visitors
+ keys:
+ - id
+tables:
+- table-name: assets
+ join:
+ - table-name: activity_bounceback
+ keys:
+ - key: id
+ foreign-key: AssetId
+ - table-name: activity_email_clickthrough
+ keys:
+ - key: id
+ foreign-key: AssetId
+ - table-name: activity_email_open
+ keys:
+ - key: id
+ foreign-key: AssetId
+ - table-name: activity_email_send
+ keys:
+ - key: id
+ foreign-key: AssetId
+ - table-name: activity_form_submit
+ keys:
+ - key: id
+ foreign-key: AssetId
+ - table-name: activity_page_view
+ keys:
+ - key: id
+ foreign-key: AssetId
+ - table-name: activity_subscribe
+ keys:
+ - key: id
+ foreign-key: AssetId
+ - table-name: activity_unsubscribe
+ keys:
+ - key: id
+ foreign-key: AssetId
+ - table-name: activity_web_visit
+ keys:
+ - key: id
+ foreign-key: AssetId
+ - table-name: campaigns
+ keys:
+ - key: folderId
+ foreign-key: folderId
+ - key: createdBy
+ foreign-key: createdBy
+ - key: updatedBy
+ foreign-key: createdBy
+ - key: createdBy
+ foreign-key: updatedBy
+ - key: updatedBy
+ foreign-key: updatedBy
+ - key: createdBy
+ foreign-key: runAsUserId
+ - key: updatedBy
+ foreign-key: runAsUserId
+ - table-name: emails
+ keys:
+ - key: folderId
+ foreign-key: dynamicContents.folderId
+ - key: folderId
+ foreign-key: hyperlinks.folderId
+ - key: folderId
+ foreign-key: images.folderId
+ - key: createdBy
+ foreign-key: createdBy
+ - key: updatedBy
+ foreign-key: createdBy
+ - key: createdBy
+ foreign-key: dynamicContents.createdBy
+ - key: updatedBy
+ foreign-key: dynamicContents.createdBy
+ - key: createdBy
+ foreign-key: dynamicContents.updatedBy
+ - key: updatedBy
+ foreign-key: dynamicContents.updatedBy
+ - key: createdBy
+ foreign-key: fieldMerges.createdBy
+ - key: updatedBy
+ foreign-key: fieldMerges.createdBy
+ - key: createdBy
+ foreign-key: fieldMerges.updatedBy
+ - key: updatedBy
+ foreign-key: fieldMerges.updatedBy
+ - key: createdBy
+ foreign-key: hyperlinks.createdBy
+ - key: updatedBy
+ foreign-key: hyperlinks.createdBy
+ - key: createdBy
+ foreign-key: hyperlinks.updatedBy
+ - key: updatedBy
+ foreign-key: hyperlinks.updatedBy
+ - key: createdBy
+ foreign-key: images.createdBy
+ - key: updatedBy
+ foreign-key: images.createdBy
+ - key: createdBy
+ foreign-key: images.updatedBy
+ - key: updatedBy
+ foreign-key: images.updatedBy
+ - key: createdBy
+ foreign-key: updatedBy
+ - key: updatedBy
+ foreign-key: updatedBy
+ - table-name: forms
+ keys:
+ - key: folderId
+ foreign-key: folderId
+- table-name: activity_bounceback
+ join:
+ - table-name: assets
+ keys:
+ - key: AssetId
+ foreign-key: id
+ - table-name: activity_email_clickthrough
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_email_open
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_email_send
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_form_submit
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_page_view
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_subscribe
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_unsubscribe
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_web_visit
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - table-name: campaigns
+ keys:
+ - key: CampaignId
+ foreign-key: id
+ - table-name: forms
+ keys:
+ - key: CampaignId
+ foreign-key: processingSteps.campaignId
+ - table-name: contacts
+ keys:
+ - key: ContactId
+ foreign-key: Id
+ - table-name: visitors
+ keys:
+ - key: ContactId
+ foreign-key: contactId
+- table-name: activity_email_clickthrough
+ join:
+ - table-name: assets
+ keys:
+ - key: AssetId
+ foreign-key: id
+ - table-name: activity_bounceback
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_email_open
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - key: VisitorId
+ foreign-key: VisitorId
+ - table-name: activity_email_send
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_form_submit
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - key: VisitorId
+ foreign-key: VisitorId
+ - table-name: activity_page_view
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - key: VisitorId
+ foreign-key: VisitorId
+ - table-name: activity_subscribe
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_unsubscribe
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_web_visit
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - table-name: campaigns
+ keys:
+ - key: CampaignId
+ foreign-key: id
+ - table-name: forms
+ keys:
+ - key: CampaignId
+ foreign-key: processingSteps.campaignId
+ - table-name: contacts
+ keys:
+ - key: ContactId
+ foreign-key: Id
+ - table-name: visitors
+ keys:
+ - key: ContactId
+ foreign-key: contactId
+ - key: VisitorId
+ foreign-key: id
+- table-name: activity_email_open
+ join:
+ - table-name: assets
+ keys:
+ - key: AssetId
+ foreign-key: id
+ - table-name: activity_bounceback
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_email_clickthrough
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - key: VisitorId
+ foreign-key: VisitorId
+ - table-name: activity_email_send
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_form_submit
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - key: VisitorId
+ foreign-key: VisitorId
+ - table-name: activity_page_view
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - key: VisitorId
+ foreign-key: VisitorId
+ - table-name: activity_subscribe
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_unsubscribe
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_web_visit
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - table-name: campaigns
+ keys:
+ - key: CampaignId
+ foreign-key: id
+ - table-name: forms
+ keys:
+ - key: CampaignId
+ foreign-key: processingSteps.campaignId
+ - table-name: contacts
+ keys:
+ - key: ContactId
+ foreign-key: Id
+ - table-name: visitors
+ keys:
+ - key: ContactId
+ foreign-key: contactId
+ - key: VisitorId
+ foreign-key: id
+- table-name: activity_email_send
+ join:
+ - table-name: assets
+ keys:
+ - key: AssetId
+ foreign-key: id
+ - table-name: activity_bounceback
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_email_clickthrough
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_email_open
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_form_submit
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_page_view
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_subscribe
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_unsubscribe
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_web_visit
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - table-name: campaigns
+ keys:
+ - key: CampaignId
+ foreign-key: id
+ - table-name: forms
+ keys:
+ - key: CampaignId
+ foreign-key: processingSteps.campaignId
+ - table-name: contacts
+ keys:
+ - key: ContactId
+ foreign-key: Id
+ - table-name: visitors
+ keys:
+ - key: ContactId
+ foreign-key: contactId
+- table-name: activity_form_submit
+ join:
+ - table-name: assets
+ keys:
+ - key: AssetId
+ foreign-key: id
+ - table-name: activity_bounceback
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_email_clickthrough
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - key: VisitorId
+ foreign-key: VisitorId
+ - table-name: activity_email_open
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - key: VisitorId
+ foreign-key: VisitorId
+ - table-name: activity_email_send
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_page_view
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - key: VisitorId
+ foreign-key: VisitorId
+ - table-name: activity_subscribe
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_unsubscribe
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_web_visit
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - table-name: campaigns
+ keys:
+ - key: CampaignId
+ foreign-key: id
+ - table-name: forms
+ keys:
+ - key: CampaignId
+ foreign-key: processingSteps.campaignId
+ - table-name: contacts
+ keys:
+ - key: ContactId
+ foreign-key: Id
+ - table-name: visitors
+ keys:
+ - key: ContactId
+ foreign-key: contactId
+ - key: VisitorId
+ foreign-key: id
+- table-name: activity_page_view
+ join:
+ - table-name: assets
+ keys:
+ - key: AssetId
+ foreign-key: id
+ - table-name: activity_bounceback
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_email_clickthrough
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - key: VisitorId
+ foreign-key: VisitorId
+ - table-name: activity_email_open
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - key: VisitorId
+ foreign-key: VisitorId
+ - table-name: activity_email_send
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_form_submit
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - key: VisitorId
+ foreign-key: VisitorId
+ - table-name: activity_subscribe
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_unsubscribe
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_web_visit
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - table-name: campaigns
+ keys:
+ - key: CampaignId
+ foreign-key: id
+ - table-name: forms
+ keys:
+ - key: CampaignId
+ foreign-key: processingSteps.campaignId
+ - table-name: contacts
+ keys:
+ - key: ContactId
+ foreign-key: Id
+ - table-name: visitors
+ keys:
+ - key: ContactId
+ foreign-key: contactId
+ - key: VisitorId
+ foreign-key: id
+- table-name: activity_subscribe
+ join:
+ - table-name: assets
+ keys:
+ - key: AssetId
+ foreign-key: id
+ - table-name: activity_bounceback
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_email_clickthrough
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_email_open
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_email_send
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_form_submit
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_page_view
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_unsubscribe
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_web_visit
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - table-name: campaigns
+ keys:
+ - key: CampaignId
+ foreign-key: id
+ - table-name: forms
+ keys:
+ - key: CampaignId
+ foreign-key: processingSteps.campaignId
+ - table-name: contacts
+ keys:
+ - key: ContactId
+ foreign-key: Id
+ - table-name: visitors
+ keys:
+ - key: ContactId
+ foreign-key: contactId
+- table-name: activity_unsubscribe
+ join:
+ - table-name: assets
+ keys:
+ - key: AssetId
+ foreign-key: id
+ - table-name: activity_bounceback
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_email_clickthrough
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_email_open
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_email_send
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_form_submit
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_page_view
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_subscribe
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - key: CampaignId
+ foreign-key: CampaignId
+ - key: ContactId
+ foreign-key: ContactId
+ - table-name: activity_web_visit
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - table-name: campaigns
+ keys:
+ - key: CampaignId
+ foreign-key: id
+ - table-name: forms
+ keys:
+ - key: CampaignId
+ foreign-key: processingSteps.campaignId
+ - table-name: contacts
+ keys:
+ - key: ContactId
+ foreign-key: Id
+ - table-name: visitors
+ keys:
+ - key: ContactId
+ foreign-key: contactId
+- table-name: activity_web_visit
+ join:
+ - table-name: assets
+ keys:
+ - key: AssetId
+ foreign-key: id
+ - table-name: activity_bounceback
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - table-name: activity_email_clickthrough
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - table-name: activity_email_open
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - table-name: activity_email_send
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - table-name: activity_form_submit
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - table-name: activity_page_view
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - table-name: activity_subscribe
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+ - table-name: activity_unsubscribe
+ keys:
+ - key: AssetId
+ foreign-key: AssetId
+- table-name: campaigns
+ join:
+ - table-name: activity_bounceback
+ keys:
+ - key: id
+ foreign-key: CampaignId
+ - table-name: activity_email_clickthrough
+ keys:
+ - key: id
+ foreign-key: CampaignId
+ - table-name: activity_email_open
+ keys:
+ - key: id
+ foreign-key: CampaignId
+ - table-name: activity_email_send
+ keys:
+ - key: id
+ foreign-key: CampaignId
+ - table-name: activity_form_submit
+ keys:
+ - key: id
+ foreign-key: CampaignId
+ - table-name: activity_page_view
+ keys:
+ - key: id
+ foreign-key: CampaignId
+ - table-name: activity_subscribe
+ keys:
+ - key: id
+ foreign-key: CampaignId
+ - table-name: activity_unsubscribe
+ keys:
+ - key: id
+ foreign-key: CampaignId
+ - table-name: forms
+ keys:
+ - key: id
+ foreign-key: processingSteps.campaignId
+ - key: folderId
+ foreign-key: folderId
+ - table-name: assets
+ keys:
+ - key: folderId
+ foreign-key: folderId
+ - key: createdBy
+ foreign-key: createdBy
+ - key: updatedBy
+ foreign-key: createdBy
+ - key: runAsUserId
+ foreign-key: createdBy
+ - key: createdBy
+ foreign-key: updatedBy
+ - key: updatedBy
+ foreign-key: updatedBy
+ - key: runAsUserId
+ foreign-key: updatedBy
+ - table-name: emails
+ keys:
+ - key: folderId
+ foreign-key: dynamicContents.folderId
+ - key: folderId
+ foreign-key: hyperlinks.folderId
+ - key: folderId
+ foreign-key: images.folderId
+ - key: createdBy
+ foreign-key: createdBy
+ - key: updatedBy
+ foreign-key: createdBy
+ - key: runAsUserId
+ foreign-key: createdBy
+ - key: createdBy
+ foreign-key: dynamicContents.createdBy
+ - key: updatedBy
+ foreign-key: dynamicContents.createdBy
+ - key: runAsUserId
+ foreign-key: dynamicContents.createdBy
+ - key: createdBy
+ foreign-key: dynamicContents.updatedBy
+ - key: updatedBy
+ foreign-key: dynamicContents.updatedBy
+ - key: runAsUserId
+ foreign-key: dynamicContents.updatedBy
+ - key: createdBy
+ foreign-key: fieldMerges.createdBy
+ - key: updatedBy
+ foreign-key: fieldMerges.createdBy
+ - key: runAsUserId
+ foreign-key: fieldMerges.createdBy
+ - key: createdBy
+ foreign-key: fieldMerges.updatedBy
+ - key: updatedBy
+ foreign-key: fieldMerges.updatedBy
+ - key: runAsUserId
+ foreign-key: fieldMerges.updatedBy
+ - key: createdBy
+ foreign-key: hyperlinks.createdBy
+ - key: updatedBy
+ foreign-key: hyperlinks.createdBy
+ - key: runAsUserId
+ foreign-key: hyperlinks.createdBy
+ - key: createdBy
+ foreign-key: hyperlinks.updatedBy
+ - key: updatedBy
+ foreign-key: hyperlinks.updatedBy
+ - key: runAsUserId
+ foreign-key: hyperlinks.updatedBy
+ - key: createdBy
+ foreign-key: images.createdBy
+ - key: updatedBy
+ foreign-key: images.createdBy
+ - key: runAsUserId
+ foreign-key: images.createdBy
+ - key: createdBy
+ foreign-key: images.updatedBy
+ - key: updatedBy
+ foreign-key: images.updatedBy
+ - key: runAsUserId
+ foreign-key: images.updatedBy
+ - key: createdBy
+ foreign-key: updatedBy
+ - key: updatedBy
+ foreign-key: updatedBy
+ - key: runAsUserId
+ foreign-key: updatedBy
+- table-name: forms
+ join:
+ - table-name: campaigns
+ keys:
+ - key: processingSteps.campaignId
+ foreign-key: id
+ - key: folderId
+ foreign-key: folderId
+ - table-name: activity_bounceback
+ keys:
+ - key: processingSteps.campaignId
+ foreign-key: CampaignId
+ - table-name: activity_email_clickthrough
+ keys:
+ - key: processingSteps.campaignId
+ foreign-key: CampaignId
+ - table-name: activity_email_open
+ keys:
+ - key: processingSteps.campaignId
+ foreign-key: CampaignId
+ - table-name: activity_email_send
+ keys:
+ - key: processingSteps.campaignId
+ foreign-key: CampaignId
+ - table-name: activity_form_submit
+ keys:
+ - key: processingSteps.campaignId
+ foreign-key: CampaignId
+ - table-name: activity_page_view
+ keys:
+ - key: processingSteps.campaignId
+ foreign-key: CampaignId
+ - table-name: activity_subscribe
+ keys:
+ - key: processingSteps.campaignId
+ foreign-key: CampaignId
+ - table-name: activity_unsubscribe
+ keys:
+ - key: processingSteps.campaignId
+ foreign-key: CampaignId
+ - table-name: emails
+ keys:
+ - key: processingSteps.emailId
+ foreign-key: id
+ - key: folderId
+ foreign-key: dynamicContents.folderId
+ - key: folderId
+ foreign-key: hyperlinks.folderId
+ - key: folderId
+ foreign-key: images.folderId
+ - table-name: assets
+ keys:
+ - key: folderId
+ foreign-key: folderId
+- table-name: contacts
+ join:
+ - table-name: activity_bounceback
+ keys:
+ - key: Id
+ foreign-key: ContactId
+ - table-name: activity_email_clickthrough
+ keys:
+ - key: Id
+ foreign-key: ContactId
+ - table-name: activity_email_open
+ keys:
+ - key: Id
+ foreign-key: ContactId
+ - table-name: activity_email_send
+ keys:
+ - key: Id
+ foreign-key: ContactId
+ - table-name: activity_form_submit
+ keys:
+ - key: Id
+ foreign-key: ContactId
+ - table-name: activity_page_view
+ keys:
+ - key: Id
+ foreign-key: ContactId
+ - table-name: activity_subscribe
+ keys:
+ - key: Id
+ foreign-key: ContactId
+ - table-name: activity_unsubscribe
+ keys:
+ - key: Id
+ foreign-key: ContactId
+ - table-name: visitors
+ keys:
+ - key: Id
+ foreign-key: contactId
+- table-name: visitors
+ join:
+ - table-name: contacts
+ keys:
+ - key: contactId
+ foreign-key: Id
+ - table-name: activity_bounceback
+ keys:
+ - key: contactId
+ foreign-key: ContactId
+ - table-name: activity_email_clickthrough
+ keys:
+ - key: contactId
+ foreign-key: ContactId
+ - key: id
+ foreign-key: VisitorId
+ - table-name: activity_email_open
+ keys:
+ - key: contactId
+ foreign-key: ContactId
+ - key: id
+ foreign-key: VisitorId
+ - table-name: activity_email_send
+ keys:
+ - key: contactId
+ foreign-key: ContactId
+ - table-name: activity_form_submit
+ keys:
+ - key: contactId
+ foreign-key: ContactId
+ - key: id
+ foreign-key: VisitorId
+ - table-name: activity_page_view
+ keys:
+ - key: contactId
+ foreign-key: ContactId
+ - key: id
+ foreign-key: VisitorId
+ - table-name: activity_subscribe
+ keys:
+ - key: contactId
+ foreign-key: ContactId
+ - table-name: activity_unsubscribe
+ keys:
+ - key: contactId
+ foreign-key: ContactId
+- table-name: emails
+ join:
+ - table-name: forms
+ keys:
+ - key: id
+ foreign-key: processingSteps.emailId
+ - key: dynamicContents.folderId
+ foreign-key: folderId
+ - key: hyperlinks.folderId
+ foreign-key: folderId
+ - key: images.folderId
+ foreign-key: folderId
+ - table-name: emailGroups
+ keys:
+ - key: emailFooterId
+ foreign-key: emailFooterId
+ - key: emailHeaderId
+ foreign-key: emailHeaderId
+ - table-name: assets
+ keys:
+ - key: dynamicContents.folderId
+ foreign-key: folderId
+ - key: hyperlinks.folderId
+ foreign-key: folderId
+ - key: images.folderId
+ foreign-key: folderId
+ - key: createdBy
+ foreign-key: createdBy
+ - key: dynamicContents.createdBy
+ foreign-key: createdBy
+ - key: dynamicContents.updatedBy
+ foreign-key: createdBy
+ - key: fieldMerges.createdBy
+ foreign-key: createdBy
+ - key: fieldMerges.updatedBy
+ foreign-key: createdBy
+ - key: hyperlinks.createdBy
+ foreign-key: createdBy
+ - key: hyperlinks.updatedBy
+ foreign-key: createdBy
+ - key: images.createdBy
+ foreign-key: createdBy
+ - key: images.updatedBy
+ foreign-key: createdBy
+ - key: updatedBy
+ foreign-key: createdBy
+ - key: createdBy
+ foreign-key: updatedBy
+ - key: dynamicContents.createdBy
+ foreign-key: updatedBy
+ - key: dynamicContents.updatedBy
+ foreign-key: updatedBy
+ - key: fieldMerges.createdBy
+ foreign-key: updatedBy
+ - key: fieldMerges.updatedBy
+ foreign-key: updatedBy
+ - key: hyperlinks.createdBy
+ foreign-key: updatedBy
+ - key: hyperlinks.updatedBy
+ foreign-key: updatedBy
+ - key: images.createdBy
+ foreign-key: updatedBy
+ - key: images.updatedBy
+ foreign-key: updatedBy
+ - key: updatedBy
+ foreign-key: updatedBy
+ - table-name: campaigns
+ keys:
+ - key: dynamicContents.folderId
+ foreign-key: folderId
+ - key: hyperlinks.folderId
+ foreign-key: folderId
+ - key: images.folderId
+ foreign-key: folderId
+ - key: createdBy
+ foreign-key: createdBy
+ - key: dynamicContents.createdBy
+ foreign-key: createdBy
+ - key: dynamicContents.updatedBy
+ foreign-key: createdBy
+ - key: fieldMerges.createdBy
+ foreign-key: createdBy
+ - key: fieldMerges.updatedBy
+ foreign-key: createdBy
+ - key: hyperlinks.createdBy
+ foreign-key: createdBy
+ - key: hyperlinks.updatedBy
+ foreign-key: createdBy
+ - key: images.createdBy
+ foreign-key: createdBy
+ - key: images.updatedBy
+ foreign-key: createdBy
+ - key: updatedBy
+ foreign-key: createdBy
+ - key: createdBy
+ foreign-key: updatedBy
+ - key: dynamicContents.createdBy
+ foreign-key: updatedBy
+ - key: dynamicContents.updatedBy
+ foreign-key: updatedBy
+ - key: fieldMerges.createdBy
+ foreign-key: updatedBy
+ - key: fieldMerges.updatedBy
+ foreign-key: updatedBy
+ - key: hyperlinks.createdBy
+ foreign-key: updatedBy
+ - key: hyperlinks.updatedBy
+ foreign-key: updatedBy
+ - key: images.createdBy
+ foreign-key: updatedBy
+ - key: images.updatedBy
+ foreign-key: updatedBy
+ - key: updatedBy
+ foreign-key: updatedBy
+ - key: createdBy
+ foreign-key: runAsUserId
+ - key: dynamicContents.createdBy
+ foreign-key: runAsUserId
+ - key: dynamicContents.updatedBy
+ foreign-key: runAsUserId
+ - key: fieldMerges.createdBy
+ foreign-key: runAsUserId
+ - key: fieldMerges.updatedBy
+ foreign-key: runAsUserId
+ - key: hyperlinks.createdBy
+ foreign-key: runAsUserId
+ - key: hyperlinks.updatedBy
+ foreign-key: runAsUserId
+ - key: images.createdBy
+ foreign-key: runAsUserId
+ - key: images.updatedBy
+ foreign-key: runAsUserId
+ - key: updatedBy
+ foreign-key: runAsUserId
+- table-name: emailGroups
+ join:
+ - table-name: emails
+ keys:
+ - key: emailFooterId
+ foreign-key: emailFooterId
+ - key: emailHeaderId
+ foreign-key: emailHeaderId
diff --git a/_data/taps/schemas/eloqua/v1/eloqua-v1-tables.yml b/_data/taps/schemas/eloqua/v1/eloqua-v1-tables.yml
new file mode 100644
index 000000000..48c2f8074
--- /dev/null
+++ b/_data/taps/schemas/eloqua/v1/eloqua-v1-tables.yml
@@ -0,0 +1,317 @@
+tap: eloqua
+version: '1'
+tables:
+- name: accounts
+ description: 'The `{{ table.name }}` table contains info about the accounts, or
+ companies, in your {{ integration.display_name }} account.
+
+
+ **Note**: This table is replicated using the {{ integration.display_name }} Bulk
+ API.
+
+
+ #### Custom {{ table.name }} fields
+
+
+ If applicable, Stitch will replicate custom fields related to `{{ table.name }}`
+ in {{ integration.display_name }}.
+
+ '
+ links:
+ api-method: https://docs.oracle.com/cloud/latest/marketingcs_gs/OMCAC/op-api-bulk-2.0-accounts-exports-post.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+ replication-key: UpdatedAt
+ tap-repo-schema: false
+- name: activity_bounceback
+ description: 'The `{{ table.name }}` table contains info about `Bounceback` contact
+ activities.
+
+
+ **Note**: This table is replicated using the {{ integration.display_name }} Bulk
+ API.
+
+ '
+ links:
+ api-method: https://docs.oracle.com/cloud/latest/marketingcs_gs/OMCAC/op-api-bulk-2.0-activities-exports-post.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+ tap-repo-schema: false
+- name: activity_email_clickthrough
+ description: 'The `{{ table.name }}` table contains info about `EmailClickthrough`
+ contact activities.
+
+
+ **Note**: This table is replicated using the {{ integration.display_name }} Bulk
+ API.
+
+ '
+ links:
+ api-method: https://docs.oracle.com/cloud/latest/marketingcs_gs/OMCAC/op-api-bulk-2.0-activities-exports-post.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+ tap-repo-schema: false
+- name: activity_email_open
+ description: 'The `{{ table.name }}` table contains info about `EmailOpen` contact
+ activities.
+
+
+ **Note**: This table is replicated using the {{ integration.display_name }} Bulk
+ API.
+
+ '
+ links:
+ api-method: https://docs.oracle.com/cloud/latest/marketingcs_gs/OMCAC/op-api-bulk-2.0-activities-exports-post.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+ tap-repo-schema: false
+- name: activity_email_send
+ description: 'The `{{ table.name }}` table contains info about `EmailSend` contact
+ activities.
+
+
+ **Note**: This table is replicated using the {{ integration.display_name }} Bulk
+ API.
+
+ '
+ links:
+ api-method: https://docs.oracle.com/cloud/latest/marketingcs_gs/OMCAC/op-api-bulk-2.0-activities-exports-post.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+ tap-repo-schema: false
+- name: activity_form_submit
+ description: 'The `{{ table.name }}` table contains info about `FormSubmit` contact
+ activities.
+
+
+ **Note**: This table is replicated using the {{ integration.display_name }} Bulk
+ API.
+
+ '
+ links:
+ api-method: https://docs.oracle.com/cloud/latest/marketingcs_gs/OMCAC/op-api-bulk-2.0-activities-exports-post.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+ tap-repo-schema: false
+- name: activity_page_view
+ description: 'The `{{ table.name }}` table contains info about `PageView` contact
+ activities.
+
+
+ **Note**: This table is replicated using the {{ integration.display_name }} Bulk
+ API.
+
+ '
+ links:
+ api-method: https://docs.oracle.com/cloud/latest/marketingcs_gs/OMCAC/op-api-bulk-2.0-activities-exports-post.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+ tap-repo-schema: false
+- name: activity_subscribe
+ description: 'The `{{ table.name }}` table contains info about `Subscribe` contact
+ activities.
+
+
+ **Note**: This table is replicated using the {{ integration.display_name }} Bulk
+ API.
+
+ '
+ links:
+ api-method: https://docs.oracle.com/cloud/latest/marketingcs_gs/OMCAC/op-api-bulk-2.0-activities-exports-post.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+ tap-repo-schema: false
+- name: activity_unsubscribe
+ description: 'The `{{ table.name }}` table contains info about `Unsubscribe` contact
+ activities.
+
+
+ **Note**: This table is replicated using the {{ integration.display_name }} Bulk
+ API.
+
+ '
+ links:
+ api-method: https://docs.oracle.com/cloud/latest/marketingcs_gs/OMCAC/op-api-bulk-2.0-activities-exports-post.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+ tap-repo-schema: false
+- name: activity_web_visit
+ description: 'The `{{ table.name }}` table contains info about `WebVisit` contact
+ activities.
+
+
+ **Note**: This table is replicated using the {{ integration.display_name }} Bulk
+ API.
+
+ '
+ links:
+ api-method: https://docs.oracle.com/cloud/latest/marketingcs_gs/OMCAC/op-api-bulk-2.0-activities-exports-post.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+ tap-repo-schema: false
+- name: assets
+ description: 'The `{{ table.name }}` table contains info about the external assets
+ associated with your {{ integration.display_name }} account. External assets are
+ non-{{ integration.display_name }}, or offline, activities performed by your contacts
+ or prospects.
+
+
+ **Note**: This table is replicated using the {{ integration.display_name }} Application
+ REST API.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-eloqua/blob/master/tap_eloqua/schemas/assets.json
+ api-method: https://docs.oracle.com/cloud/latest/marketingcs_gs/OMCAC/op-api-rest-2.0-assets-externals-get.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+- name: campaigns
+ description: 'The `{{ table.name }}` table contains info about the campaigns in
+ your {{ integration.display_name }} account. Campaigns are comprised of different
+ elements (such as segments, emails, landing pages, etc.) that are used to perform
+ a variety of functions.
+
+
+ **Note**: This table is replicated using the {{ integration.display_name }} Application
+ REST API.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-eloqua/blob/master/tap_eloqua/schemas/campaigns.json
+ api-method: https://docs.oracle.com/cloud/latest/marketingcs_gs/OMCAC/op-api-rest-2.0-assets-campaigns-get.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+- name: contacts
+ description: 'The `{{ table.name }}` table contains info the contacts in your {{
+ integration.display_name }} account.
+
+
+ **Note**: This table is replicated using the {{ integration.display_name }} Bulk
+ API.
+
+
+ #### Custom {{ table.name }} fields
+
+
+ If applicable, Stitch will replicate custom fields related to `{{ table.name }}`
+ in {{ integration.display_name }}.
+
+ '
+ links:
+ api-method: https://docs.oracle.com/cloud/latest/marketingcs_gs/OMCAC/op-api-bulk-2.0-contacts-exports-post.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+ replication-key: UpdatedAt
+ tap-repo-schema: false
+- name: custom_objects
+ description: 'For each custom object in your {{ integration.display_name }} account,
+ Stitch will display a table as available for selection. The name of the table
+ will be the normalized name of the object, using snake case (spaces replaced with
+ underscores) and removing special characters. For example: If your account contains
+ an `Enrichement Attributes` custom object, there will be a corresponding `enrichment_attributes`
+ available for selection in Stitch.
+
+
+ **Note**: This table is replicated using the {{ integration.display_name }} Bulk
+ API.
+
+ '
+ links:
+ api-method: https://docs.oracle.com/cloud/latest/marketingcs_gs/OMCAC/op-api-bulk-2.0-customobjects-parentid-exports-post.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: UpdatedAt
+ tap-repo-schema: false
+- name: emails
+ description: 'The `{{ table.name }}` table contains details about the emails sent
+ from your {{ integration.display_name }} account.
+
+
+ **Note**: This table is replicated using the {{ integration.display_name }} Application
+ REST API.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-eloqua/blob/master/tap_eloqua/schemas/emails.json
+ api-method: https://docs.oracle.com/cloud/latest/marketingcs_gs/OMCAC/op-api-rest-1.0-assets-emails-get.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+- name: emailGroups
+ description: 'The `{{ table.name }}` table contains details about the email groups
+ in your {{ integration.display_name }} account.
+
+
+ **Note**: This table is replicated using the {{ integration.display_name }} Application
+ REST API.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-eloqua/blob/master/tap_eloqua/schemas/emailGroups.json
+ api-method: https://docs.oracle.com/en/cloud/saas/marketing/eloqua-rest-api/op-api-rest-1.0-assets-email-groups-get.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+- name: forms
+ description: 'The `{{ table.name }}` table contains info about the forms in your
+ {{ integration.display_name }} account.
+
+
+ **Note**: This table is replicated using the {{ integration.display_name }} Application
+ REST API.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-eloqua/blob/master/tap_eloqua/schemas/forms.json
+ api-method: https://docs.oracle.com/cloud/latest/marketingcs_gs/OMCAC/op-api-rest-1.0-assets-forms-get.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+- name: visitors
+ description: 'The `{{ table.name }}` table contains info about your {{ integration.display_name
+ }} visitors. According to {{ integration.display_name }}, _"A visitor is a data
+ entity that represents a unique cookie. The tracked activity data from that cookie
+ is associated with the Visitor. There can be multiple visitors linked to a single
+ contact."_
+
+
+ **Note**: This table is replicated using the {{ integration.display_name }} Application
+ REST API.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-eloqua/blob/master/tap_eloqua/schemas/visitors.json
+ api-method: https://docs.oracle.com/cloud/latest/marketingcs_gs/OMCAC/op-api-rest-2.0-data-visitors-get.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: V_LastVisitDateAndTime
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/eloqua/v1/json/accounts.json b/_data/taps/schemas/eloqua/v1/json/accounts.json
new file mode 100644
index 000000000..484c63498
--- /dev/null
+++ b/_data/taps/schemas/eloqua/v1/json/accounts.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "CompanyIDExt": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedAt": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Custom Fields": {
+ "type": [
+ "varies"
+ ]
+ },
+ "Id": {
+ "type": [
+ "string"
+ ]
+ },
+ "UpdatedAt": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/eloqua/v1/json/activity_bounceback.json b/_data/taps/schemas/eloqua/v1/json/activity_bounceback.json
new file mode 100644
index 000000000..a1b860d86
--- /dev/null
+++ b/_data/taps/schemas/eloqua/v1/json/activity_bounceback.json
@@ -0,0 +1,89 @@
+{
+ "properties": {
+ "ActivityDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "ActivityId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ActivityType": {
+ "type": [
+ "string"
+ ]
+ },
+ "AssetId": {
+ "type": [
+ "string"
+ ]
+ },
+ "AssetName": {
+ "type": [
+ "string"
+ ]
+ },
+ "AssetType": {
+ "type": [
+ "string"
+ ]
+ },
+ "CampaignId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "DeploymentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "EmailRecipientId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ExternalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "SmtpErrorCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "SmtpStatusCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/eloqua/v1/json/activity_email_clickthrough.json b/_data/taps/schemas/eloqua/v1/json/activity_email_clickthrough.json
new file mode 100644
index 000000000..87bc25c4f
--- /dev/null
+++ b/_data/taps/schemas/eloqua/v1/json/activity_email_clickthrough.json
@@ -0,0 +1,114 @@
+{
+ "properties": {
+ "ActivityDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "ActivityId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ActivityType": {
+ "type": [
+ "string"
+ ]
+ },
+ "AssetId": {
+ "type": [
+ "string"
+ ]
+ },
+ "AssetName": {
+ "type": [
+ "string"
+ ]
+ },
+ "AssetType": {
+ "type": [
+ "string"
+ ]
+ },
+ "CampaignId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "DeploymentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "EmailClickedThruLink": {
+ "type": [
+ "string"
+ ]
+ },
+ "EmailRecipientId": {
+ "type": [
+ "string"
+ ]
+ },
+ "EmailSendType": {
+ "type": [
+ "string"
+ ]
+ },
+ "EmailWebLink": {
+ "type": [
+ "string"
+ ]
+ },
+ "ExternalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "IpAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "SubjectLine": {
+ "type": [
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "string"
+ ]
+ },
+ "VisitorExternalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "VisitorId": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/eloqua/v1/json/activity_email_open.json b/_data/taps/schemas/eloqua/v1/json/activity_email_open.json
new file mode 100644
index 000000000..4668a06da
--- /dev/null
+++ b/_data/taps/schemas/eloqua/v1/json/activity_email_open.json
@@ -0,0 +1,94 @@
+{
+ "properties": {
+ "ActivityDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "ActivityType": {
+ "type": [
+ "string"
+ ]
+ },
+ "AssetId": {
+ "type": [
+ "string"
+ ]
+ },
+ "AssetName": {
+ "type": [
+ "string"
+ ]
+ },
+ "AssetType": {
+ "type": [
+ "string"
+ ]
+ },
+ "CampaignId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "DeploymentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "EmailRecipientId": {
+ "type": [
+ "string"
+ ]
+ },
+ "EmailWebLink": {
+ "type": [
+ "string"
+ ]
+ },
+ "ExternalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "IpAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "string"
+ ]
+ },
+ "VisitorExternalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "VisitorId": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/eloqua/v1/json/activity_email_send.json b/_data/taps/schemas/eloqua/v1/json/activity_email_send.json
new file mode 100644
index 000000000..69950e2bd
--- /dev/null
+++ b/_data/taps/schemas/eloqua/v1/json/activity_email_send.json
@@ -0,0 +1,94 @@
+{
+ "properties": {
+ "ActivityDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "ActivityId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ActivityType": {
+ "type": [
+ "string"
+ ]
+ },
+ "AssetId": {
+ "type": [
+ "string"
+ ]
+ },
+ "AssetName": {
+ "type": [
+ "string"
+ ]
+ },
+ "AssetType": {
+ "type": [
+ "string"
+ ]
+ },
+ "CampaignId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "DeploymentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "EmailRecipientId": {
+ "type": [
+ "string"
+ ]
+ },
+ "EmailSendType": {
+ "type": [
+ "string"
+ ]
+ },
+ "EmailWebLink": {
+ "type": [
+ "string"
+ ]
+ },
+ "ExternalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "SubjectLine": {
+ "type": [
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/eloqua/v1/json/activity_form_submit.json b/_data/taps/schemas/eloqua/v1/json/activity_form_submit.json
new file mode 100644
index 000000000..f9b22682e
--- /dev/null
+++ b/_data/taps/schemas/eloqua/v1/json/activity_form_submit.json
@@ -0,0 +1,74 @@
+{
+ "properties": {
+ "ActivityDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "ActivityType": {
+ "type": [
+ "string"
+ ]
+ },
+ "AssetId": {
+ "type": [
+ "string"
+ ]
+ },
+ "AssetName": {
+ "type": [
+ "string"
+ ]
+ },
+ "AssetType": {
+ "type": [
+ "string"
+ ]
+ },
+ "CampaignId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ExternalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "RawData": {
+ "type": [
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "string"
+ ]
+ },
+ "VisitorExternalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "VisitorId": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/eloqua/v1/json/activity_page_view.json b/_data/taps/schemas/eloqua/v1/json/activity_page_view.json
new file mode 100644
index 000000000..a579b2e99
--- /dev/null
+++ b/_data/taps/schemas/eloqua/v1/json/activity_page_view.json
@@ -0,0 +1,89 @@
+{
+ "properties": {
+ "ActivityDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "ActivityId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ActivityType": {
+ "type": [
+ "string"
+ ]
+ },
+ "AssetId": {
+ "type": [
+ "string"
+ ]
+ },
+ "AssetName": {
+ "type": [
+ "string"
+ ]
+ },
+ "AssetType": {
+ "type": [
+ "string"
+ ]
+ },
+ "CampaignId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ExternalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "IpAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "string"
+ ]
+ },
+ "Url": {
+ "type": [
+ "string"
+ ]
+ },
+ "VisitorExternalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "VisitorId": {
+ "type": [
+ "string"
+ ]
+ },
+ "WebVisitId": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/eloqua/v1/json/activity_subscribe.json b/_data/taps/schemas/eloqua/v1/json/activity_subscribe.json
new file mode 100644
index 000000000..be6ed02c3
--- /dev/null
+++ b/_data/taps/schemas/eloqua/v1/json/activity_subscribe.json
@@ -0,0 +1,74 @@
+{
+ "properties": {
+ "ActivityDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "ActivityId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ActivityType": {
+ "type": [
+ "string"
+ ]
+ },
+ "AssetId": {
+ "type": [
+ "string"
+ ]
+ },
+ "AssetName": {
+ "type": [
+ "string"
+ ]
+ },
+ "AssetType": {
+ "type": [
+ "string"
+ ]
+ },
+ "CampaignId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "EmailRecipientId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ExternalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/eloqua/v1/json/activity_unsubscribe.json b/_data/taps/schemas/eloqua/v1/json/activity_unsubscribe.json
new file mode 100644
index 000000000..be6ed02c3
--- /dev/null
+++ b/_data/taps/schemas/eloqua/v1/json/activity_unsubscribe.json
@@ -0,0 +1,74 @@
+{
+ "properties": {
+ "ActivityDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "ActivityId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ActivityType": {
+ "type": [
+ "string"
+ ]
+ },
+ "AssetId": {
+ "type": [
+ "string"
+ ]
+ },
+ "AssetName": {
+ "type": [
+ "string"
+ ]
+ },
+ "AssetType": {
+ "type": [
+ "string"
+ ]
+ },
+ "CampaignId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "EmailRecipientId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ExternalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/eloqua/v1/json/activity_web_visit.json b/_data/taps/schemas/eloqua/v1/json/activity_web_visit.json
new file mode 100644
index 000000000..39e1ff785
--- /dev/null
+++ b/_data/taps/schemas/eloqua/v1/json/activity_web_visit.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "ActivityDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "ActivityType": {
+ "type": [
+ "string"
+ ]
+ },
+ "AssetId": {
+ "type": [
+ "string"
+ ]
+ },
+ "AssetType": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/eloqua/v1/json/assets.json b/_data/taps/schemas/eloqua/v1/json/assets.json
new file mode 100644
index 000000000..c9bac5635
--- /dev/null
+++ b/_data/taps/schemas/eloqua/v1/json/assets.json
@@ -0,0 +1,57 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "accessedAt": {
+ "type": "date-time"
+ },
+ "createdAt": {
+ "type": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "currentStatus": {
+ "type": "string"
+ },
+ "depth": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "externalAssetTypeId": {
+ "type": "string"
+ },
+ "folderId": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "permissions": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "scheduledFor": {
+ "type": "string"
+ },
+ "sourceTemplateId": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "updatedAt": {
+ "type": "date-time"
+ },
+ "updatedBy": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/eloqua/v1/json/campaigns.json b/_data/taps/schemas/eloqua/v1/json/campaigns.json
new file mode 100644
index 000000000..cff24ad84
--- /dev/null
+++ b/_data/taps/schemas/eloqua/v1/json/campaigns.json
@@ -0,0 +1,119 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "accessedAt": {
+ "type": "date-time"
+ },
+ "actualCost": {
+ "type": "string"
+ },
+ "badgeId": {
+ "type": "string"
+ },
+ "budgetedCost": {
+ "type": "string"
+ },
+ "campaignCategory": {
+ "type": "string"
+ },
+ "campaignType": {
+ "type": "string"
+ },
+ "clrEndDate": {
+ "type": "date-time"
+ },
+ "createdAt": {
+ "type": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "crmId": {
+ "type": "string"
+ },
+ "currentStatus": {
+ "type": "string"
+ },
+ "depth": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "elements": {
+ "items": {},
+ "type": "array"
+ },
+ "endAt": {
+ "type": "date-time"
+ },
+ "fieldValues": {
+ "items": {},
+ "type": "array"
+ },
+ "firstActivation": {
+ "type": "date-time"
+ },
+ "folderId": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "isEmailMarketingCampaign": {
+ "type": "string"
+ },
+ "isIncludedInROI": {
+ "type": "string"
+ },
+ "isMemberAllowedReEntry": {
+ "type": "string"
+ },
+ "isReadOnly": {
+ "type": "string"
+ },
+ "isSyncedWithCRM": {
+ "type": "string"
+ },
+ "memberCount": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "permissions": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "product": {
+ "type": "string"
+ },
+ "region": {
+ "type": "string"
+ },
+ "runAsUserId": {
+ "type": "string"
+ },
+ "scheduledFor": {
+ "type": "date-time"
+ },
+ "sourceTemplateId": {
+ "type": "string"
+ },
+ "startAt": {
+ "type": "date-time"
+ },
+ "type": {
+ "type": "string"
+ },
+ "updatedAt": {
+ "type": "date-time"
+ },
+ "updatedBy": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/eloqua/v1/json/contacts.json b/_data/taps/schemas/eloqua/v1/json/contacts.json
new file mode 100644
index 000000000..68a6995a4
--- /dev/null
+++ b/_data/taps/schemas/eloqua/v1/json/contacts.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "AccountName": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactIDExt": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedAt": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Custom Fields": {
+ "type": [
+ "varies"
+ ]
+ },
+ "EmailFormat": {
+ "type": [
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "string"
+ ]
+ },
+ "IsBounceBack": {
+ "type": [
+ "string"
+ ]
+ },
+ "IsSubscribed": {
+ "type": [
+ "string"
+ ]
+ },
+ "UpdatedAt": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/eloqua/v1/json/custom_objects.json b/_data/taps/schemas/eloqua/v1/json/custom_objects.json
new file mode 100644
index 000000000..a646ae0d2
--- /dev/null
+++ b/_data/taps/schemas/eloqua/v1/json/custom_objects.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "CreatedAt": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "Custom Fields": {
+ "type": [
+ "varies"
+ ]
+ },
+ "DataCardIDExt": {
+ "type": [
+ "string"
+ ]
+ },
+ "UpdatedAt": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/eloqua/v1/json/emailGroups.json b/_data/taps/schemas/eloqua/v1/json/emailGroups.json
new file mode 100644
index 000000000..0d2f13d31
--- /dev/null
+++ b/_data/taps/schemas/eloqua/v1/json/emailGroups.json
@@ -0,0 +1,78 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "createdAt": {
+ "type": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "depth": {
+ "type": "string"
+ },
+ "displayName": {
+ "type": "string"
+ },
+ "emailFooterId": {
+ "type": "string"
+ },
+ "emailHeaderId": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "isSecureNotificationsGroup": {
+ "type": "string"
+ },
+ "isVisibleInOutlookPlugin": {
+ "type": "string"
+ },
+ "isVisibleInPublicSubscriptionList": {
+ "type": "string"
+ },
+ "isWelcomeCommunicationsGroup": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "notificationEmailId": {
+ "type": "string"
+ },
+ "requireOptIn": {
+ "type": "string"
+ },
+ "subscriptionLandingPageId": {
+ "type": "string"
+ },
+ "subscriptionListDataLookupId": {
+ "type": "string"
+ },
+ "subscriptionListId": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "unSubscriptionListDataLookupId": {
+ "type": "string"
+ },
+ "unSubscriptionListId": {
+ "type": "string"
+ },
+ "unsubscriptionLandingPageId": {
+ "type": "string"
+ },
+ "updatedAt": {
+ "type": "date-time"
+ },
+ "updatedBy": {
+ "type": "string"
+ },
+ "useSecureChannel": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/eloqua/v1/json/emails.json b/_data/taps/schemas/eloqua/v1/json/emails.json
new file mode 100644
index 000000000..56d09ad34
--- /dev/null
+++ b/_data/taps/schemas/eloqua/v1/json/emails.json
@@ -0,0 +1,412 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "accessedAt": {
+ "type": "date-time"
+ },
+ "archive": {
+ "type": "boolean"
+ },
+ "bounceBackEmail": {
+ "type": "string"
+ },
+ "contentSections": {
+ "items": {
+ "properties": {},
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "createdAt": {
+ "type": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "currentStatus": {
+ "type": "string"
+ },
+ "depth": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "dynamicContents": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "createdAt": {
+ "type": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "defaultContentSection": {
+ "type": "string"
+ },
+ "depth": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "folderId": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "permissions": {
+ "type": "string"
+ },
+ "rules": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "updatedAt": {
+ "type": "date-time"
+ },
+ "updatedBy": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "emailFooterId": {
+ "type": "string"
+ },
+ "emailGroupId": {
+ "type": "string"
+ },
+ "emailHeaderId": {
+ "type": "string"
+ },
+ "encodingId": {
+ "type": "string"
+ },
+ "fieldMerges": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "allowUrlsInValue": {
+ "type": "string"
+ },
+ "contactFieldId": {
+ "type": "string"
+ },
+ "createdAt": {
+ "type": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "defaultValue": {
+ "type": "string"
+ },
+ "depth": {
+ "type": "string"
+ },
+ "eventId": {
+ "type": "string"
+ },
+ "eventSessionFieldId": {
+ "type": "string"
+ },
+ "fieldConditions": {
+ "type": "string"
+ },
+ "folderId": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "mergeType": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "syntax": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "updatedAt": {
+ "type": "date-time"
+ },
+ "updatedBy": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "files": {
+ "items": {
+ "properties": {},
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "folderId": {
+ "type": "string"
+ },
+ "forms": {
+ "items": {
+ "properties": {},
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "htmlContent": {
+ "additionalProperties": false,
+ "properties": {
+ "contentSource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cssHeader": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "docType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "documentDescription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "htmlBody": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metaTags": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "root": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "systemHeader": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "hyperlinks": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "createdAt": {
+ "type": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "depth": {
+ "type": "string"
+ },
+ "folderId": {
+ "type": "string"
+ },
+ "href": {
+ "type": "string"
+ },
+ "hyperlinkType": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "referencedEntityId": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "updatedAt": {
+ "type": "date-time"
+ },
+ "updatedBy": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "id": {
+ "type": "string"
+ },
+ "images": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "createdAt": {
+ "type": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "currentStatus": {
+ "type": "string"
+ },
+ "depth": {
+ "type": "string"
+ },
+ "folderId": {
+ "type": "string"
+ },
+ "fullImageUrl": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "permissions": {
+ "type": "string"
+ },
+ "size": {
+ "type": "string"
+ },
+ "syncDate": {
+ "type": "date-time"
+ },
+ "thumbnailUrl": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "updatedAt": {
+ "type": "date-time"
+ },
+ "updatedBy": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "isContentProtected": {
+ "type": "boolean"
+ },
+ "isPlainTextEditable": {
+ "type": "string"
+ },
+ "isPrivate": {
+ "type": "boolean"
+ },
+ "isTracked": {
+ "type": "string"
+ },
+ "landingPages": {
+ "items": {
+ "properties": {},
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "layout": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "permissions": {
+ "type": "string"
+ },
+ "plainText": {
+ "type": "string"
+ },
+ "renderMode": {
+ "type": "string"
+ },
+ "replyToEmail": {
+ "type": "string"
+ },
+ "replyToName": {
+ "type": "string"
+ },
+ "sendPlainTextOnly": {
+ "type": "string"
+ },
+ "senderEmail": {
+ "type": "string"
+ },
+ "senderName": {
+ "type": "string"
+ },
+ "sourceTemplateId": {
+ "type": "string"
+ },
+ "style": {
+ "type": "string"
+ },
+ "subject": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "updatedAt": {
+ "type": "date-time"
+ },
+ "updatedBy": {
+ "type": "string"
+ },
+ "virtualMTAId": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/eloqua/v1/json/forms.json b/_data/taps/schemas/eloqua/v1/json/forms.json
new file mode 100644
index 000000000..f2767282b
--- /dev/null
+++ b/_data/taps/schemas/eloqua/v1/json/forms.json
@@ -0,0 +1,195 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "accessedAt": {
+ "type": "date-time"
+ },
+ "createdAt": {
+ "type": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "currentStatus": {
+ "type": "string"
+ },
+ "customCSS": {
+ "type": "string"
+ },
+ "defaultKeyFieldMapping": {
+ "type": "string"
+ },
+ "depth": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "elements": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "altText": {
+ "type": "string"
+ },
+ "createdFromContactFieldId": {
+ "type": "string"
+ },
+ "dataType": {
+ "type": "string"
+ },
+ "depth": {
+ "type": "string"
+ },
+ "displayType": {
+ "type": "string"
+ },
+ "fieldMergeId": {
+ "type": "string"
+ },
+ "fields": {
+ "type": "string"
+ },
+ "htmlName": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "instructions": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "numberOfFieldsToDisplay": {
+ "type": "string"
+ },
+ "onlyShowIncompleteFields": {
+ "type": "string"
+ },
+ "optionListId": {
+ "type": "string"
+ },
+ "randomizeFields": {
+ "type": "string"
+ },
+ "style": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "useGlobalSubscriptionStatus": {
+ "type": "string"
+ },
+ "validations": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "emailAddressFormFieldId": {
+ "type": "string"
+ },
+ "folderId": {
+ "type": "string"
+ },
+ "html": {
+ "type": "string"
+ },
+ "htmlName": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "permissions": {
+ "type": "string"
+ },
+ "processingSteps": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "allowResend": {
+ "type": "boolean"
+ },
+ "campaignElementId": {
+ "type": "string"
+ },
+ "campaignId": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "emailAddressFormFieldId": {
+ "type": "string"
+ },
+ "emailId": {
+ "type": "string"
+ },
+ "eventId": {
+ "type": "string"
+ },
+ "execute": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "keyFieldId": {
+ "type": "string"
+ },
+ "keyFieldMapping": {
+ "type": "string"
+ },
+ "landingPageId": {
+ "type": "string"
+ },
+ "mappings": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "resendLimit": {
+ "type": "integer"
+ },
+ "type": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "processingType": {
+ "type": "string"
+ },
+ "size": {
+ "type": "string"
+ },
+ "style": {
+ "type": "string"
+ },
+ "submitFailedLandingPageId": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "updatedAt": {
+ "type": "date-time"
+ },
+ "updatedBy": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/eloqua/v1/json/visitors.json b/_data/taps/schemas/eloqua/v1/json/visitors.json
new file mode 100644
index 000000000..192510306
--- /dev/null
+++ b/_data/taps/schemas/eloqua/v1/json/visitors.json
@@ -0,0 +1,102 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "V_Browser_Type": {
+ "type": "string"
+ },
+ "V_CityFromIP": {
+ "type": "string"
+ },
+ "V_CompanyDNSName": {
+ "type": "string"
+ },
+ "V_CompanyNameFromIP1": {
+ "type": "string"
+ },
+ "V_CountryFromIP": {
+ "type": "string"
+ },
+ "V_CountryName": {
+ "type": "string"
+ },
+ "V_Current_Total_Pages": {
+ "type": "integer"
+ },
+ "V_Current_Visit_Length": {
+ "type": "integer"
+ },
+ "V_FirstPageInVisit": {
+ "type": "string"
+ },
+ "V_FirstVisitDateAndTime": {
+ "type": "date-time"
+ },
+ "V_HostName": {
+ "type": "string"
+ },
+ "V_IPAddress": {
+ "type": "string"
+ },
+ "V_ISPFromIP": {
+ "type": "string"
+ },
+ "V_LastPageInVisit": {
+ "type": "string"
+ },
+ "V_LastVisitDateAndTime": {
+ "type": "date-time"
+ },
+ "V_LatitudeFromIP": {
+ "type": "number"
+ },
+ "V_LongitudeFromIP": {
+ "type": "number"
+ },
+ "V_Name": {
+ "type": "string"
+ },
+ "V_ProvinceFromIP": {
+ "type": "string"
+ },
+ "V_TimeZone": {
+ "type": "string"
+ },
+ "V_TimeZoneOffsetMin": {
+ "type": "integer"
+ },
+ "V_Total_Pages": {
+ "type": "integer"
+ },
+ "V_Total_Time": {
+ "type": "integer"
+ },
+ "V_Total_Visits": {
+ "type": "integer"
+ },
+ "V_ZipCodeFromIP": {
+ "type": "string"
+ },
+ "contactId": {
+ "type": "string"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "currentStatus": {
+ "type": "string"
+ },
+ "externalId": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "visitorId": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/facebook-ads/v1/facebook-ads-v1-foreign-keys.yml b/_data/taps/schemas/facebook-ads/v1/facebook-ads-v1-foreign-keys.yml
new file mode 100644
index 000000000..abffa1961
--- /dev/null
+++ b/_data/taps/schemas/facebook-ads/v1/facebook-ads-v1-foreign-keys.yml
@@ -0,0 +1,837 @@
+tap: facebook-ads
+version: '1'
+keys:
+ account_id:
+ - table: adcreative
+ keys:
+ - account_id
+ - table: ads
+ keys:
+ - account_id
+ - table: ads_insights
+ keys:
+ - account_id
+ - table: ads_insights_age_and_gender
+ keys:
+ - account_id
+ - table: ads_insights_country
+ keys:
+ - account_id
+ - table: ads_insights_dma
+ keys:
+ - account_id
+ - table: ads_insights_platform_and_device
+ keys:
+ - account_id
+ - table: ads_insights_region
+ keys:
+ - account_id
+ ad_label_id:
+ - table: adcreative
+ keys:
+ - adlabels.id
+ - table: ads
+ keys:
+ - id
+ - table: adsets
+ keys:
+ - id
+ adsets_adset_id:
+ - table: ads
+ keys:
+ - adset_id
+ - table: adsets
+ keys:
+ - id
+ - table: ads_insights
+ keys:
+ - adset_id
+ - adset_id
+ - table: ads_insights_age_and_gender
+ keys:
+ - adset_id
+ - table: ads_insights_country
+ keys:
+ - adset_id
+ - table: ads_insights_dma
+ keys:
+ - adset_id
+ - table: ads_insights_platform_and_device
+ keys:
+ - adset_id
+ - table: ads_insights_region
+ keys:
+ - adset_id
+ app_store_id:
+ - table: adcreative
+ keys:
+ - template_url_spec.ios.app_store_id
+ - template_url_spec.ipad.app_store_id
+ - template_url_spec.iphone.app_store_id
+ ads_ad_id:
+ - table: ads
+ keys:
+ - id
+ - table: ads_insights
+ keys:
+ - ad_id
+ - ad_id
+ - table: ads_insights_age_and_gender
+ keys:
+ - ad_id
+ - table: ads_insights_country
+ keys:
+ - ad_id
+ - table: ads_insights_dma
+ keys:
+ - ad_id
+ - table: ads_insights_platform_and_device
+ keys:
+ - ad_id
+ - table: ads_insights_region
+ keys:
+ - ad_id
+ - table: campaigns
+ keys:
+ - ads.data.id
+ campaigns_campaign_id:
+ - table: campaigns
+ keys:
+ - id
+ - table: ads
+ keys:
+ - campaign_id
+ - table: ads_insights
+ keys:
+ - campaign_id
+ - campaign_id
+ - table: ads_insights_age_and_gender
+ keys:
+ - campaign_id
+ - table: ads_insights_country
+ keys:
+ - campaign_id
+ - table: ads_insights_dma
+ keys:
+ - campaign_id
+ - table: ads_insights_platform_and_device
+ keys:
+ - campaign_id
+ - table: ads_insights_region
+ keys:
+ - campaign_id
+ adcreative_creative_id:
+ - table: adcreative
+ keys:
+ - id
+ - table: ads
+ keys:
+ - creative.creative_id
+ offer_id:
+ - table: adsets
+ keys:
+ - promoted_object.offer_id
+ - table: adcreative
+ keys:
+ - object_story_spec.link_data.offer_id
+ - object_story_spec.template_data.offer_id
+ - object_story_spec.video_data.offer_id
+ page_id:
+ - table: adsets
+ keys:
+ - promoted_object.page_id
+ - table: adcreative
+ keys:
+ - object_story_spec.page_id
+ pixel_id:
+ - table: adsets
+ keys:
+ - pixel_id
+ product_set_id:
+ - table: adcreative
+ keys:
+ - product_set_id
+ - table: adsets
+ keys:
+ - promoted_object.product_set_id
+ app_id:
+ - table: adcreative
+ keys:
+ - template_url.spec.windows_phone.app_id
+tables:
+- table-name: adcreative
+ join:
+ - table-name: ads
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adlabels.id
+ foreign-key: id
+ - key: id
+ foreign-key: creative.creative_id
+ - table-name: ads_insights
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: ads_insights_age_and_gender
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: ads_insights_country
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: ads_insights_dma
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: ads_insights_platform_and_device
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: ads_insights_region
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: adsets
+ keys:
+ - key: adlabels.id
+ foreign-key: id
+ - key: object_story_spec.link_data.offer_id
+ foreign-key: promoted_object.offer_id
+ - key: object_story_spec.template_data.offer_id
+ foreign-key: promoted_object.offer_id
+ - key: object_story_spec.video_data.offer_id
+ foreign-key: promoted_object.offer_id
+ - key: object_story_spec.page_id
+ foreign-key: promoted_object.page_id
+ - key: product_set_id
+ foreign-key: promoted_object.product_set_id
+- table-name: ads
+ join:
+ - table-name: adcreative
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: id
+ foreign-key: adlabels.id
+ - key: creative.creative_id
+ foreign-key: id
+ - table-name: ads_insights
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_age_and_gender
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_country
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_dma
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_platform_and_device
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_region
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: adsets
+ keys:
+ - key: id
+ foreign-key: id
+ - key: adset_id
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: id
+ foreign-key: ads.data.id
+ - key: campaign_id
+ foreign-key: id
+- table-name: ads_insights
+ join:
+ - table-name: adcreative
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: ads
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_age_and_gender
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_country
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_dma
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_platform_and_device
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_region
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: adsets
+ keys:
+ - key: adset_id
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: ad_id
+ foreign-key: ads.data.id
+ - key: campaign_id
+ foreign-key: id
+- table-name: ads_insights_age_and_gender
+ join:
+ - table-name: adcreative
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: ads
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_country
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_dma
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_platform_and_device
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_region
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: adsets
+ keys:
+ - key: adset_id
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: ad_id
+ foreign-key: ads.data.id
+ - key: campaign_id
+ foreign-key: id
+- table-name: ads_insights_country
+ join:
+ - table-name: adcreative
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: ads
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_age_and_gender
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_dma
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_platform_and_device
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_region
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: adsets
+ keys:
+ - key: adset_id
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: ad_id
+ foreign-key: ads.data.id
+ - key: campaign_id
+ foreign-key: id
+- table-name: ads_insights_dma
+ join:
+ - table-name: adcreative
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: ads
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_age_and_gender
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_country
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_platform_and_device
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_region
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: adsets
+ keys:
+ - key: adset_id
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: ad_id
+ foreign-key: ads.data.id
+ - key: campaign_id
+ foreign-key: id
+- table-name: ads_insights_platform_and_device
+ join:
+ - table-name: adcreative
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: ads
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_age_and_gender
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_country
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_dma
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_region
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: adsets
+ keys:
+ - key: adset_id
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: ad_id
+ foreign-key: ads.data.id
+ - key: campaign_id
+ foreign-key: id
+- table-name: ads_insights_region
+ join:
+ - table-name: adcreative
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: ads
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_age_and_gender
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_country
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_dma
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads_insights_platform_and_device
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: adset_id
+ foreign-key: adset_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: adsets
+ keys:
+ - key: adset_id
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: ad_id
+ foreign-key: ads.data.id
+ - key: campaign_id
+ foreign-key: id
+- table-name: adsets
+ join:
+ - table-name: adcreative
+ keys:
+ - key: id
+ foreign-key: adlabels.id
+ - key: promoted_object.offer_id
+ foreign-key: object_story_spec.link_data.offer_id
+ - key: promoted_object.offer_id
+ foreign-key: object_story_spec.template_data.offer_id
+ - key: promoted_object.offer_id
+ foreign-key: object_story_spec.video_data.offer_id
+ - key: promoted_object.page_id
+ foreign-key: object_story_spec.page_id
+ - key: promoted_object.product_set_id
+ foreign-key: product_set_id
+ - table-name: ads
+ keys:
+ - key: id
+ foreign-key: id
+ - key: id
+ foreign-key: adset_id
+ - table-name: ads_insights
+ keys:
+ - key: id
+ foreign-key: adset_id
+ - table-name: ads_insights_age_and_gender
+ keys:
+ - key: id
+ foreign-key: adset_id
+ - table-name: ads_insights_country
+ keys:
+ - key: id
+ foreign-key: adset_id
+ - table-name: ads_insights_dma
+ keys:
+ - key: id
+ foreign-key: adset_id
+ - table-name: ads_insights_platform_and_device
+ keys:
+ - key: id
+ foreign-key: adset_id
+ - table-name: ads_insights_region
+ keys:
+ - key: id
+ foreign-key: adset_id
+- table-name: campaigns
+ join:
+ - table-name: ads
+ keys:
+ - key: ads.data.id
+ foreign-key: id
+ - key: id
+ foreign-key: campaign_id
+ - table-name: ads_insights
+ keys:
+ - key: ads.data.id
+ foreign-key: ad_id
+ - key: id
+ foreign-key: campaign_id
+ - table-name: ads_insights_age_and_gender
+ keys:
+ - key: ads.data.id
+ foreign-key: ad_id
+ - key: id
+ foreign-key: campaign_id
+ - table-name: ads_insights_country
+ keys:
+ - key: ads.data.id
+ foreign-key: ad_id
+ - key: id
+ foreign-key: campaign_id
+ - table-name: ads_insights_dma
+ keys:
+ - key: ads.data.id
+ foreign-key: ad_id
+ - key: id
+ foreign-key: campaign_id
+ - table-name: ads_insights_platform_and_device
+ keys:
+ - key: ads.data.id
+ foreign-key: ad_id
+ - key: id
+ foreign-key: campaign_id
+ - table-name: ads_insights_region
+ keys:
+ - key: ads.data.id
+ foreign-key: ad_id
+ - key: id
+ foreign-key: campaign_id
diff --git a/_data/taps/schemas/facebook-ads/v1/facebook-ads-v1-tables.yml b/_data/taps/schemas/facebook-ads/v1/facebook-ads-v1-tables.yml
new file mode 100644
index 000000000..9fe5f274b
--- /dev/null
+++ b/_data/taps/schemas/facebook-ads/v1/facebook-ads-v1-tables.yml
@@ -0,0 +1,298 @@
+tap: facebook-ads
+version: '1'
+tap-repo-schemas: true
+tables:
+- name: adcreative
+ description: 'The `adcreative` table contains info about the creatives used in ads,
+ in your {{ integration.display_name }} account.
+
+
+ **This is a Core Object table**.
+
+
+ #### Limits {#adcreative-table-limits}
+
+
+ Facebook''s API limits the number of ad creatives that can be retrieved through
+ their API to 50,000, which is [documented here](https://developers.facebook.com/docs/marketing-api/reference/ad-creative#limits){:target="new"}.
+ If you''re missing data from this table and have more than 50,000 ad creatives
+ in your {{ integration.display_name }} account, this may be the cause of the discrepancy.
+
+ '
+ links:
+ doc-link: https://developers.facebook.com/docs/reference/ads-api/adcreative/
+ singer-schema: https://github.com/singer-io/tap-facebook/blob/master/tap_facebook/schemas/adcreative.json
+ api-method: https://developers.facebook.com/docs/marketing-api/reference/ad-creative/#Reading
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: ads
+ description: 'The `ads` table contains info about the ads in your Facebook Ads account.
+
+
+ **This is a Core Object table**.
+
+
+ #### updated_time and querying
+
+
+ Because this table uses `updated_time` as part of the Primary Key, query results
+ might return various versions of the same adgroup.
+
+
+ To reflect the latest state of the adgroup, use the latest `updated_time` timestamp.
+
+
+ #### Deleted ads
+
+
+ If the **Include data from deleted campaigns, ads, and adsets** box in the integration''s
+ settings is checked, this table will include data for deleted ads.
+
+ '
+ links:
+ doc-link: https://developers.facebook.com/docs/reference/ads-api/adgroup/
+ singer-schema: https://github.com/singer-io/tap-facebook/blob/master/tap_facebook/schemas/ads.json
+ api-method: https://developers.facebook.com/docs/marketing-api/reference/adgroup
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - id
+ - updated_time
+ replication-key: updated_time
+- name: adsets
+ description: "The `adsets` table contains info about the Ad Sets in your Facebook\
+ \ Ads account.\n\n**This is a Core Object table**.\n\n#### updated_time and querying\n\
+ \nBecause this table uses `updated_time` as part of the Primary Key, query results\
+ \ might return various versions of the same adgroup. \n\nTo reflect the latest\
+ \ state of the adgroup, use the latest `updated_time` timestamp.\n\n#### Deleted\
+ \ adsets\n\nIf the **Include data from deleted campaigns, ads, and adsets** box\
+ \ in the integration's settings is checked, this table will include data for deleted\
+ \ adsets.\n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-facebook/blob/master/tap_facebook/schemas/adsets.json
+ api-method: https://developers.facebook.com/docs/marketing-api/reference/ad-campaign
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - id
+ - updated_time
+ replication-key: updated_time
+- name: ads_insights
+ description: 'The `ads_insights` table contains entries for each campaign/set/ad
+ combination for each day, along with detailed statistics.
+
+
+ **Note**: Data for deleted ads, adsets, and campaigns will not appear in this
+ table even if the **Include data from deleted campaigns, ads, and adsets** option
+ in the integration''s settings is enabled.
+
+
+ #### Segmented insights data
+
+
+ To analyze data that''s been segmented by various characteristics, consider tracking
+ some of the other `ads_insights` tables in this integration. The following tables
+ contain the same fields as this one (`ads_insights`), but include additional dimensions
+ to segment the data:
+
+
+ - [`ads_insights_age_and_gender`](#ads-insights-age-and-gender) - Data segmented
+ by age and gender
+
+ - [`ads_insights_country`](#ads-insights-country) - Data segmented by country
+
+ - [`ads_insights_dma`](#ads-insights-dma) - Data segmented by DMA (Designated
+ Market Area)
+
+ - [`ads_insights_platform_and_device`](#ads-insights-platform-and-device) - Data
+ segmented by platform and device
+
+ - [`ads_insights_region`](#ads-insights-region) - Data segmented by region
+
+ '
+ links:
+ doc-link: https://developers.facebook.com/docs/marketing-api/insights/fields/
+ singer-schema: https://github.com/singer-io/tap-facebook/blob/master/tap_facebook/schemas/ads_insights.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - ad_id
+ - adset_id
+ - campaign_id
+ - date_start
+ replication-key: date_start
+- name: ads_insights_age_and_gender
+ description: 'The `ads_insights_age_and_gender` table contains entries for each
+ campaign/set/ad combination for each day, along with detailed statistics, segmented
+ by age and gender.
+
+
+ This table contains the same fields as the [`ads_insights`](#ads_insights) table,
+ with the exception of `age` and `gender`.
+
+
+ **Note**: Data for deleted ads, adsets, and campaigns will not appear in this
+ table even if the **Include data from deleted campaigns, ads, and adsets** option
+ in the integration''s settings is enabled.
+
+ '
+ links:
+ doc-link: https://developers.facebook.com/docs/marketing-api/insights/fields/
+ singer-schema: https://github.com/singer-io/tap-facebook/blob/master/tap_facebook/schemas/ads_insights_age_and_gender.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - ad_id
+ - adset_id
+ - campaign_id
+ - date_start
+ - age
+ - gender
+ replication-key: date_start
+- name: ads_insights_country
+ description: 'The `ads_insights_country` table contains entries for each campaign/set/ad
+ combination for each day, along with detailed statistics, segmented by country.
+
+
+ This table contains the same fields as the [`ads_insights`](#ads_insights) table,
+ with the exception of `country`.
+
+
+ **Note**: Data for deleted ads, adsets, and campaigns will not appear in this
+ table even if the **Include data from deleted campaigns, ads, and adsets** option
+ in the integration''s settings is enabled.
+
+ '
+ links:
+ doc-link: https://developers.facebook.com/docs/marketing-api/insights/fields/
+ singer-schema: https://github.com/singer-io/tap-facebook/blob/master/tap_facebook/schemas/ads_insights_country.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - ad_id
+ - adset_id
+ - campaign_id
+ - date_start
+ - country
+ replication-key: date_start
+- name: ads_insights_dma
+ description: 'The `ads_insights_dma` table contains entries for each campaign/set/ad
+ combination for each day, along with detailed statistics, segmented by DMA (Designated
+ Market Area).
+
+
+ This table contains the same fields as the [`ads_insights`](#ads_insights) table,
+ with the exception of `dma`.
+
+
+ **Note**: Data for deleted ads, adsets, and campaigns will not appear in this
+ table even if the **Include data from deleted campaigns, ads, and adsets** option
+ in the integration''s settings is enabled.
+
+ '
+ links:
+ doc-link: https://developers.facebook.com/docs/marketing-api/insights/fields/
+ singer-schema: https://github.com/singer-io/tap-facebook/blob/master/tap_facebook/schemas/ads_insights_dma.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - ad_id
+ - adset_id
+ - campaign_id
+ - dma
+ - date_start
+ replication-key: date_start
+- name: ads_insights_hourly_advertiser
+ description: 'The `ads_insights_hourly_advertiser` table contains entries for each
+ campaign/set/ad combination for each day, along with detailed statistics, segmented
+ by audience and advertiser time zones.
+
+ This table contains the same fields as the [`ads_insights`](#ads_insights) table,
+ with the exception of `hourly_stats_aggregated_by_advertiser_time_zone`.
+
+
+ **Note**: Data for deleted ads, adsets, and campaigns will not appear in this
+ table even if the **Include data from deleted campaigns, ads, and adsets** option
+ in the integration''s settings is enabled.
+
+ '
+ links:
+ doc-link: https://developers.facebook.com/docs/marketing-api/insights/fields/
+ singer-schema: https://github.com/singer-io/tap-facebook/blob/master/tap_facebook/schemas/ads_insights_hourly_advertiser.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - hourly_stats_aggregated_by_advertiser_time_zone
+ - ad_id
+ - adset_id
+ - campaign_id
+ - date_start
+ replication-key: date_start
+- name: ads_insights_platform_and_device
+ description: "The `ads_insights_country` table contains entries for each campaign/set/ad\
+ \ combination for each day, along with detailed statistics, segmented by publisher\
+ \ platform, platform position, and device.\n\nThis table contains the same fields\
+ \ as the [`ads_insights`](#ads_insights) table, with the exception of the following\
+ \ fields:\n\n - `publisher_platform`\n - `platform_position`\n - `impression_device`\n\
+ \n**Note**: Data for deleted ads, adsets, and campaigns will not appear in this\
+ \ table even if the **Include data from deleted campaigns, ads, and adsets** option\
+ \ in the integration's settings is enabled.\n"
+ links:
+ doc-link: https://developers.facebook.com/docs/marketing-api/insights/fields/
+ singer-schema: https://github.com/singer-io/tap-facebook/blob/master/tap_facebook/schemas/ads_insights_platform_and_device.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - ad_id
+ - adset_id
+ - campaign_id
+ - date_start
+ - publisher_platform
+ - platform_position
+ - impression_device
+ replication-key: date_start
+- name: ads_insights_region
+ description: 'The `ads_insights_region` table contains entries for each campaign/set/ad
+ combination for each day, along with detailed statistics, segmented by region.
+ This table enables you to view your data by the region (ex: state or province)
+ where people live or were located when they saw your ads, depending on how the
+ location targeting was set.
+
+
+ This table contains the same fields as the [`ads_insights`](#ads_insights) table,
+ with the exception of `region`.
+
+
+ **Note**: Data for deleted ads, adsets, and campaigns will not appear in this
+ table even if the **Include data from deleted campaigns, ads, and adsets** option
+ in the integration''s settings is enabled.
+
+ '
+ links:
+ doc-link: https://developers.facebook.com/docs/marketing-api/insights/fields/
+ singer-schema: https://github.com/singer-io/tap-facebook/blob/master/tap_facebook/schemas/ads_insights_region.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - ad_id
+ - adset_id
+ - campaign_id
+ - date_start
+ - region
+ replication-key: date_start
+- name: campaigns
+ description: "The `campaigns` table contains info about the campaigns in your Facebook\
+ \ Ads account. Facebook defines campaigns as _\"a grouping of ad sets organized\
+ \ by the same business objective.\"_\n\n**This is a Core Object table**.\n\n####\
+ \ Deleted campaigns\n \nIf the **Include data from deleted campaigns, ads, and\
+ \ adsets** box in the integration's settings is checked, this table will include\
+ \ data for deleted campaigns.\n"
+ links:
+ doc-link: https://developers.facebook.com/docs/reference/ads-api/adcampaign/
+ singer-schema: https://github.com/singer-io/tap-facebook/blob/master/tap_facebook/schemas/campaigns.json
+ api-method: https://developers.facebook.com/docs/marketing-api/reference/ad-campaign-group
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_time
diff --git a/_data/taps/schemas/facebook-ads/v1/json/adcreative.json b/_data/taps/schemas/facebook-ads/v1/json/adcreative.json
new file mode 100644
index 000000000..1b2e79dae
--- /dev/null
+++ b/_data/taps/schemas/facebook-ads/v1/json/adcreative.json
@@ -0,0 +1,4530 @@
+{
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "actor_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adlabels": {
+ "items": {
+ "properties": {
+ "created_time": {
+ "type": "date-time"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "updated_time": {
+ "type": "date-time"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "applink_treatment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "call_to_action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "effective_instagram_story_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "effective_object_story_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_crops": {
+ "properties": {
+ "100x100": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "100x72": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "191x100": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "400x150": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "400x500": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "600x360": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "90x160": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "image_hash": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "instagram_actor_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "instagram_permalink_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "instagram_story_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "link_og_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "link_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object_story_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object_story_spec": {
+ "properties": {
+ "instagram_actor_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "link_data": {
+ "properties": {
+ "additional_image_index": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "app_link_spec": {
+ "properties": {
+ "android": {
+ "items": {
+ "properties": {
+ "app_name": {
+ "type": "string"
+ },
+ "class": {
+ "type": "string"
+ },
+ "package": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ios": {
+ "items": {
+ "properties": {
+ "app_name": {
+ "type": "string"
+ },
+ "app_store_id": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ipad": {
+ "items": {
+ "properties": {
+ "app_name": {
+ "type": "string"
+ },
+ "app_store_id": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "iphone": {
+ "items": {
+ "properties": {
+ "app_name": {
+ "type": "string"
+ },
+ "app_store_id": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "attachment_style": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "branded_content_sponsor_page_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "branded_content_sponsor_relationship": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "call_to_action": {
+ "properties": {
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "properties": {
+ "app_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lead_gen_form_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "link_caption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "link_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "page": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "caption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "child_attachments": {
+ "items": {
+ "properties": {
+ "call_to_action": {
+ "properties": {
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "properties": {
+ "app_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lead_gen_form_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "link_caption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "link_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "page": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "caption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_crops": {
+ "properties": {
+ "100x100": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "100x72": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "191x100": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "400x150": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "400x500": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "600x360": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "90x160": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "image_hash": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "picture": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "static_card": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "video_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "force_single_link": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "image_crops": {
+ "properties": {
+ "100x100": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "100x72": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "191x100": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "400x150": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "400x500": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "600x360": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "90x160": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "image_hash": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "multi_share_end_card": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "multi_share_optimized": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "offer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "page_welcome_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "picture": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "retailer_item_ids": {
+ "items": {
+ "type": "string"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "show_multiple_images": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "page_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "photo_data": {
+ "properties": {
+ "branded_content_sponsor_page_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "branded_content_sponsor_relationship": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "caption": {
+ "type": "string"
+ },
+ "image_hash": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "page_welcome_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "template_data": {
+ "properties": {
+ "additional_image_index": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "app_link_spec": {
+ "properties": {
+ "android": {
+ "items": {
+ "properties": {
+ "app_name": {
+ "type": "string"
+ },
+ "class": {
+ "type": "string"
+ },
+ "package": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ios": {
+ "items": {
+ "properties": {
+ "app_name": {
+ "type": "string"
+ },
+ "app_store_id": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ipad": {
+ "items": {
+ "properties": {
+ "app_name": {
+ "type": "string"
+ },
+ "app_store_id": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "iphone": {
+ "items": {
+ "properties": {
+ "app_name": {
+ "type": "string"
+ },
+ "app_store_id": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "attachment_style": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "branded_content_sponsor_page_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "branded_content_sponsor_relationship": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "call_to_action": {
+ "properties": {
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "properties": {
+ "app_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lead_gen_form_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "link_caption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "link_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "page": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "caption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "child_attachments": {
+ "items": {
+ "properties": {
+ "call_to_action": {
+ "properties": {
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "properties": {
+ "app_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lead_gen_form_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "link_caption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "link_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "page": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "caption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_crops": {
+ "properties": {
+ "100x100": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "100x72": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "191x100": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "400x150": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "400x500": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "600x360": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "90x160": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "image_hash": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "picture": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "static_card": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "video_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "force_single_link": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "image_crops": {
+ "properties": {
+ "100x100": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "100x72": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "191x100": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "400x150": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "400x500": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "600x360": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "90x160": {
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "image_hash": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "multi_share_end_card": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "multi_share_optimized": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "offer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "page_welcome_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "picture": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "retailer_item_ids": {
+ "items": {
+ "type": "string"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "show_multiple_images": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text_data": {
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "video_data": {
+ "properties": {
+ "additional_image_index": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "branded_content_sponsor_page_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "branded_content_sponsor_relationship": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "call_to_action": {
+ "properties": {
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "properties": {
+ "app_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lead_gen_form_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "link_caption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "link_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "page": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "image_hash": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "link_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "offer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "page_welcome_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "retailer_item_ids": {
+ "items": {
+ "type": "string"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "targeting": {
+ "properties": {
+ "age_max": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "age_min": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "app_install_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "audience_network_positions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "behaviors": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "connections": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "custom_audiences": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "device_platforms": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "education_statuses": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "excluded_connections": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "excluded_custom_audiences": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "excluded_geo_locations": {
+ "properties": {
+ "cities": {
+ "items": {
+ "properties": {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "distance_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "radius": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "countries": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "country_groups": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "custom_locations": {
+ "items": {
+ "properties": {
+ "address_string": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "distance_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "primary_city_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "radius": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "region_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "geo-markets": {
+ "items": {
+ "properties": {
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "location_types": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "regions": {
+ "items": {
+ "properties": {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "zips": {
+ "items": {
+ "properties": {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "primary_city_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "region_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "excluded_publisher_categories": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "excluded_user_device": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "exclusions": {
+ "properties": {
+ "behaviors": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "connections": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "custom_audiences": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "education_majors": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "excluded_connections": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "excluded_custom_audiences": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "family_statuses": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "friends_of_connections": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "generation": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "home_ownership": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "home_type": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "household_composition": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "income": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "industries": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "interests": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "life_events": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "moms": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "net_worth": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "politics": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "relationship_statuses": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "user_adclusters": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "work_employers": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "work_positions": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "facebook_positions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "family_statuses": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "flexible_spec": {
+ "items": {
+ "properties": {
+ "behaviors": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "connections": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "custom_audiences": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "education_majors": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "excluded_connections": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "excluded_custom_audiences": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "family_statuses": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "friends_of_connections": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "generation": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "home_ownership": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "home_type": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "household_composition": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "income": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "industries": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "interests": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "life_events": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "moms": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "net_worth": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "politics": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "relationship_statuses": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "user_adclusters": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "work_employers": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "work_positions": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "friends_of_connections": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "genders": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "generation": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "geo_locations": {
+ "properties": {
+ "cities": {
+ "items": {
+ "properties": {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "distance_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "radius": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "countries": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "country_groups": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "custom_locations": {
+ "items": {
+ "properties": {
+ "address_string": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "distance_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "primary_city_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "radius": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "region_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "geo-markets": {
+ "items": {
+ "properties": {
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "location_types": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "regions": {
+ "items": {
+ "properties": {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "zips": {
+ "items": {
+ "properties": {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "primary_city_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "region_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "home_ownership": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "home_type": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "income": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "industries": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "instagram_positions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "interested_in": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "interests": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "locales": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "messenger_positions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "moms": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "net_worth": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "office_type": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "politics": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "publisher_platforms": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "relationship_statuses": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "targeting_optimization": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_adclusters": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "user_device": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "user_os": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "work_positions": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "video_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "template_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "template_url_spec": {
+ "properties": {
+ "android": {
+ "properties": {
+ "app_name": {
+ "type": "string"
+ },
+ "package": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "config": {
+ "properties": {
+ "app_id": {
+ "type": "string"
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ios": {
+ "properties": {
+ "app_name": {
+ "type": "string"
+ },
+ "app_store_id": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ipad": {
+ "properties": {
+ "app_name": {
+ "type": "string"
+ },
+ "app_store_id": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "iphone": {
+ "properties": {
+ "app_name": {
+ "type": "string"
+ },
+ "app_store_id": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "web": {
+ "properties": {
+ "should_fallback": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "windows_phone": {
+ "properties": {
+ "app_id": {
+ "type": "string"
+ },
+ "app_name": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "thumbnail_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url_tags": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "video_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/facebook-ads/v1/json/ads.json b/_data/taps/schemas/facebook-ads/v1/json/ads.json
new file mode 100644
index 000000000..c06650a40
--- /dev/null
+++ b/_data/taps/schemas/facebook-ads/v1/json/ads.json
@@ -0,0 +1,3287 @@
+{
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adlabels": {
+ "items": {
+ "properties": {
+ "created_time": {
+ "type": "date-time"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "updated_time": {
+ "type": "date-time"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "adset_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bid_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "bid_info": {
+ "properties": {
+ "ACTIONS": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "CLICKS": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "IMPRESSIONS": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "REACH": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "SOCIAL": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "bid_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversion_specs": {
+ "items": {
+ "properties": {
+ "action.type": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "application": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "conversion_id": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "creative": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "dataset": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "event": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "event.creator": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "event_type": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "fb_pixel": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "fb_pixel_event": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "leadgen": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "object": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "object.domain": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "offer": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "offer.creator": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "offsite_pixel": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "page": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "page.parent": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "post": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "post.object": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "post.object.wall": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "post.wall": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "question": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "question.creator": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "response": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "subtype": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "created_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creative": {
+ "properties": {
+ "creative_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "effective_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_updated_by_app_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recommendations": {
+ "items": {
+ "properties": {
+ "blame_field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": "integer"
+ },
+ "confidence": {
+ "type": "string"
+ },
+ "importance": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ },
+ "title": {
+ "type": "string"
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "source_ad_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targeting": {
+ "properties": {
+ "age_max": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "age_min": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "app_install_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "audience_network_positions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "behaviors": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "connections": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "custom_audiences": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "device_platforms": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "education_statuses": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "excluded_connections": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "excluded_custom_audiences": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "excluded_geo_locations": {
+ "properties": {
+ "cities": {
+ "items": {
+ "properties": {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "distance_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "radius": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "countries": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "country_groups": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "custom_locations": {
+ "items": {
+ "properties": {
+ "address_string": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "distance_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "primary_city_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "radius": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "region_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "geo-markets": {
+ "items": {
+ "properties": {
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "location_types": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "regions": {
+ "items": {
+ "properties": {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "zips": {
+ "items": {
+ "properties": {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "primary_city_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "region_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "excluded_publisher_categories": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "excluded_user_device": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "exclusions": {
+ "properties": {
+ "behaviors": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "connections": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "custom_audiences": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "education_majors": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "excluded_connections": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "excluded_custom_audiences": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "family_statuses": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "friends_of_connections": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "generation": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "home_ownership": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "home_type": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "household_composition": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "income": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "industries": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "interests": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "life_events": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "moms": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "net_worth": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "politics": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "relationship_statuses": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "user_adclusters": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "work_employers": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "work_positions": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "facebook_positions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "family_statuses": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "flexible_spec": {
+ "items": {
+ "properties": {
+ "behaviors": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "connections": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "custom_audiences": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "education_majors": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "excluded_connections": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "excluded_custom_audiences": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "family_statuses": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "friends_of_connections": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "generation": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "home_ownership": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "home_type": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "household_composition": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "income": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "industries": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "interests": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "life_events": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "moms": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "net_worth": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "politics": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "relationship_statuses": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "user_adclusters": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "work_employers": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "work_positions": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "friends_of_connections": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "genders": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "generation": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "geo_locations": {
+ "properties": {
+ "cities": {
+ "items": {
+ "properties": {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "distance_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "radius": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "countries": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "country_groups": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "custom_locations": {
+ "items": {
+ "properties": {
+ "address_string": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "distance_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "primary_city_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "radius": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "region_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "geo-markets": {
+ "items": {
+ "properties": {
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "location_types": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "regions": {
+ "items": {
+ "properties": {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "zips": {
+ "items": {
+ "properties": {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "primary_city_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "region_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "home_ownership": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "home_type": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "income": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "industries": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "instagram_positions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "interested_in": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "interests": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "locales": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "messenger_positions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "moms": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "net_worth": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "office_type": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "politics": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "publisher_platforms": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "relationship_statuses": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "targeting_optimization": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_adclusters": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "user_device": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "user_os": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "work_positions": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "tracking_specs": {
+ "items": {
+ "properties": {
+ "action.type": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "application": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "conversion_id": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "creative": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "dataset": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "event": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "event.creator": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "event_type": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "fb_pixel": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "fb_pixel_event": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "leadgen": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "object": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "object.domain": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "offer": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "offer.creator": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "offsite_pixel": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "page": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "page.parent": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "post": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "post.object": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "post.object.wall": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "post.wall": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "question": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "question.creator": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "response": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "subtype": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "updated_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/facebook-ads/v1/json/ads_insights.json b/_data/taps/schemas/facebook-ads/v1/json/ads_insights.json
new file mode 100644
index 000000000..e080416b4
--- /dev/null
+++ b/_data/taps/schemas/facebook-ads/v1/json/ads_insights.json
@@ -0,0 +1,1246 @@
+{
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_values": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ad_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adset_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adset_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "canvas_avg_view_percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "canvas_avg_view_time": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversion_rate_ranking": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversion_values": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "conversions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "cost_per_action_type": {
+ "items": {
+ "properties": {
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "cost_per_inline_link_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_inline_post_engagement": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_unique_action_type": {
+ "items": {
+ "properties": {
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "cost_per_unique_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_unique_inline_link_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpc": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpm": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpp": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "date_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_stop": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "engagement_rate_ranking": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "frequency": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inline_link_click_ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "inline_link_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inline_post_engagement": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "objective": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "outbound_clicks": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "quality_ranking": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reach": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "social_spend": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "spend": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unique_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "unique_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unique_ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unique_inline_link_click_ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unique_inline_link_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unique_link_clicks_ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unique_outbound_clicks": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_30_sec_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_p100_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_p25_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_p50_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_p75_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_play_curve_actions": {
+ "items": {
+ "properties": {
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "website_ctr": {
+ "items": {
+ "properties": {
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/facebook-ads/v1/json/ads_insights_age_and_gender.json b/_data/taps/schemas/facebook-ads/v1/json/ads_insights_age_and_gender.json
new file mode 100644
index 000000000..3d6476872
--- /dev/null
+++ b/_data/taps/schemas/facebook-ads/v1/json/ads_insights_age_and_gender.json
@@ -0,0 +1,1259 @@
+{
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_values": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ad_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adset_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adset_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "age": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "canvas_avg_view_percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "canvas_avg_view_time": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversion_rate_ranking": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversion_values": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "conversions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "cost_per_action_type": {
+ "items": {
+ "properties": {
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "cost_per_inline_link_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_inline_post_engagement": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_unique_action_type": {
+ "items": {
+ "properties": {
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "cost_per_unique_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_unique_inline_link_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpc": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpm": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpp": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "date_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_stop": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "engagement_rate_ranking": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "frequency": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "gender": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inline_link_click_ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "inline_link_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inline_post_engagement": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "objective": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "outbound_clicks": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "quality_ranking": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reach": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "social_spend": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "spend": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unique_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "unique_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unique_ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unique_inline_link_click_ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unique_inline_link_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unique_link_clicks_ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unique_outbound_clicks": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_30_sec_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_p100_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_p25_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_p50_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_p75_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_play_curve_actions": {
+ "items": {
+ "properties": {
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "website_ctr": {
+ "items": {
+ "properties": {
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/facebook-ads/v1/json/ads_insights_country.json b/_data/taps/schemas/facebook-ads/v1/json/ads_insights_country.json
new file mode 100644
index 000000000..fe8c9d468
--- /dev/null
+++ b/_data/taps/schemas/facebook-ads/v1/json/ads_insights_country.json
@@ -0,0 +1,1252 @@
+{
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_values": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ad_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adset_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adset_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "canvas_avg_view_percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "canvas_avg_view_time": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversion_rate_ranking": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversion_values": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "conversions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "cost_per_action_type": {
+ "items": {
+ "properties": {
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "cost_per_inline_link_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_inline_post_engagement": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_unique_action_type": {
+ "items": {
+ "properties": {
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "cost_per_unique_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_unique_inline_link_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cpc": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpm": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpp": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "date_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_stop": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "engagement_rate_ranking": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "frequency": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inline_link_click_ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "inline_link_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inline_post_engagement": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "objective": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "outbound_clicks": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "quality_ranking": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reach": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "social_spend": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "spend": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unique_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "unique_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unique_ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unique_inline_link_click_ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unique_inline_link_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unique_link_clicks_ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unique_outbound_clicks": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_30_sec_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_p100_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_p25_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_p50_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_p75_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_play_curve_actions": {
+ "items": {
+ "properties": {
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "website_ctr": {
+ "items": {
+ "properties": {
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/facebook-ads/v1/json/ads_insights_dma.json b/_data/taps/schemas/facebook-ads/v1/json/ads_insights_dma.json
new file mode 100644
index 000000000..0de56a99d
--- /dev/null
+++ b/_data/taps/schemas/facebook-ads/v1/json/ads_insights_dma.json
@@ -0,0 +1,1252 @@
+{
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_values": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ad_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adset_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adset_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "canvas_avg_view_percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "canvas_avg_view_time": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversion_rate_ranking": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversion_values": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "conversions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "cost_per_action_type": {
+ "items": {
+ "properties": {
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "cost_per_inline_link_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_inline_post_engagement": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_unique_action_type": {
+ "items": {
+ "properties": {
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "cost_per_unique_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_unique_inline_link_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpc": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpm": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpp": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "date_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_stop": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "dma": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "engagement_rate_ranking": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "frequency": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inline_link_click_ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "inline_link_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inline_post_engagement": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "objective": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "outbound_clicks": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "quality_ranking": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reach": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "social_spend": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "spend": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unique_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "unique_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unique_ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unique_inline_link_click_ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unique_inline_link_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unique_link_clicks_ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unique_outbound_clicks": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_30_sec_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_p100_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_p25_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_p50_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_p75_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_play_curve_actions": {
+ "items": {
+ "properties": {
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "website_ctr": {
+ "items": {
+ "properties": {
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/facebook-ads/v1/json/ads_insights_hourly_advertiser.json b/_data/taps/schemas/facebook-ads/v1/json/ads_insights_hourly_advertiser.json
new file mode 100644
index 000000000..f4f36aae8
--- /dev/null
+++ b/_data/taps/schemas/facebook-ads/v1/json/ads_insights_hourly_advertiser.json
@@ -0,0 +1,1696 @@
+{
+ "properties": {
+ "account_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_values": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ad_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adset_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adset_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "attribution_setting": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "buying_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "canvas_avg_view_percent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "canvas_avg_view_time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "catalog_segment_value": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversion_rate_ranking": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversion_values": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "conversions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "converted_product_quantity": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "converted_product_value": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "cost_per_action_type": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "cost_per_conversion": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "cost_per_estimated_ad_recallers": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cost_per_inline_link_click": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cost_per_inline_post_engagement": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cost_per_outbound_click": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "cost_per_thruplay": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "cost_per_unique_action_type": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "cost_per_unique_click": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cost_per_unique_inline_link_click": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cost_per_unique_outbound_click": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "cpc": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cpm": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cpp": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_stop": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "engagement_rate_ranking": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "estimated_ad_recall_rate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "estimated_ad_recallers": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "frequency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "full_view_impressions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hourly_stats_aggregated_by_advertiser_time_zone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inline_link_click_ctr": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inline_link_clicks": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inline_post_engagement": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "instant_experience_clicks_to_open": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "instant_experience_clicks_to_start": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "instant_experience_outbound_clicks": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mobile_app_purchase_roas": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "objective": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "optimization_goal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "outbound_clicks": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "outbound_clicks_ctr": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "place_page_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "purchase_roas": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "qualifying_question_qualify_answer_rate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quality_ranking": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reach": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "social_spend": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "spend": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "website_ctr": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "website_purchase_roas": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/facebook-ads/v1/json/ads_insights_platform_and_device.json b/_data/taps/schemas/facebook-ads/v1/json/ads_insights_platform_and_device.json
new file mode 100644
index 000000000..18556f4a1
--- /dev/null
+++ b/_data/taps/schemas/facebook-ads/v1/json/ads_insights_platform_and_device.json
@@ -0,0 +1,1270 @@
+{
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_values": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ad_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adset_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adset_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "canvas_avg_view_percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "canvas_avg_view_time": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversion_rate_ranking": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversion_values": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "conversions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "cost_per_action_type": {
+ "items": {
+ "properties": {
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "cost_per_inline_link_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_inline_post_engagement": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_unique_action_type": {
+ "items": {
+ "properties": {
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "cost_per_unique_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_unique_inline_link_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpc": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpm": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpp": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "date_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_stop": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "engagement_rate_ranking": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "frequency": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "impression_device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inline_link_click_ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "inline_link_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inline_post_engagement": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "objective": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "outbound_clicks": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "placement": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "platform_position": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "publisher_platform": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quality_ranking": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reach": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "social_spend": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "spend": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unique_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "unique_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unique_ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unique_inline_link_click_ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unique_inline_link_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unique_link_clicks_ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unique_outbound_clicks": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_30_sec_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_p100_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_p25_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_p50_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_p75_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_play_curve_actions": {
+ "items": {
+ "properties": {
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "website_ctr": {
+ "items": {
+ "properties": {
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/facebook-ads/v1/json/ads_insights_region.json b/_data/taps/schemas/facebook-ads/v1/json/ads_insights_region.json
new file mode 100644
index 000000000..17deeeca9
--- /dev/null
+++ b/_data/taps/schemas/facebook-ads/v1/json/ads_insights_region.json
@@ -0,0 +1,1252 @@
+{
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_values": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ad_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adset_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adset_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "canvas_avg_view_percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "canvas_avg_view_time": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversion_rate_ranking": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversion_values": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "conversions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "cost_per_action_type": {
+ "items": {
+ "properties": {
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "cost_per_inline_link_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_inline_post_engagement": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_unique_action_type": {
+ "items": {
+ "properties": {
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "cost_per_unique_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_unique_inline_link_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpc": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpm": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpp": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "date_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_stop": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "engagement_rate_ranking": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "frequency": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inline_link_click_ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "inline_link_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inline_post_engagement": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "objective": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "outbound_clicks": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "quality_ranking": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reach": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "social_spend": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "spend": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unique_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "unique_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unique_ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unique_inline_link_click_ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unique_inline_link_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unique_link_clicks_ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unique_outbound_clicks": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_30_sec_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_p100_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_p25_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_p50_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_p75_watched_actions": {
+ "items": {
+ "properties": {
+ "1d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "1d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "28d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_click": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "7d_view": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "video_play_curve_actions": {
+ "items": {
+ "properties": {
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "website_ctr": {
+ "items": {
+ "properties": {
+ "action_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_target_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/facebook-ads/v1/json/adsets.json b/_data/taps/schemas/facebook-ads/v1/json/adsets.json
new file mode 100644
index 000000000..bab6a921b
--- /dev/null
+++ b/_data/taps/schemas/facebook-ads/v1/json/adsets.json
@@ -0,0 +1,2639 @@
+{
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adlabels": {
+ "items": {
+ "properties": {
+ "created_time": {
+ "type": "date-time"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "updated_time": {
+ "type": "date-time"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "bid_info": {
+ "properties": {
+ "ACTIONS": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "CLICKS": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "IMPRESSIONS": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "REACH": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "budget_remaining": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 100000000000000000000000000000000,
+ "minimum": -100000000000000000000000000000000,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "daily_budget": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 100000000000000000000000000000000,
+ "minimum": -100000000000000000000000000000000,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "effective_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lifetime_budget": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 100000000000000000000000000000000,
+ "minimum": -100000000000000000000000000000000,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promoted_object": {
+ "properties": {
+ "application_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object_store_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "offer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "page_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pixel_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pixel_rule": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "targeting": {
+ "properties": {
+ "age_max": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "age_min": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "app_install_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "audience_network_positions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "behaviors": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "connections": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "custom_audiences": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "device_platforms": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "education_statuses": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "excluded_connections": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "excluded_custom_audiences": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "excluded_geo_locations": {
+ "properties": {
+ "cities": {
+ "items": {
+ "properties": {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "distance_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "radius": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "countries": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "country_groups": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "custom_locations": {
+ "items": {
+ "properties": {
+ "address_string": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "distance_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "primary_city_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "radius": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "region_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "geo-markets": {
+ "items": {
+ "properties": {
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "location_types": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "regions": {
+ "items": {
+ "properties": {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "zips": {
+ "items": {
+ "properties": {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "primary_city_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "region_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "excluded_publisher_categories": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "excluded_user_device": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "exclusions": {
+ "properties": {
+ "behaviors": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "connections": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "custom_audiences": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "education_majors": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "excluded_connections": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "excluded_custom_audiences": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "family_statuses": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "friends_of_connections": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "generation": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "home_ownership": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "home_type": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "household_composition": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "income": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "industries": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "interests": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "life_events": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "moms": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "net_worth": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "politics": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "relationship_statuses": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "user_adclusters": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "work_employers": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "work_positions": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "facebook_positions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "family_statuses": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "flexible_spec": {
+ "items": {
+ "properties": {
+ "behaviors": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "connections": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "custom_audiences": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "education_majors": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "excluded_connections": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "excluded_custom_audiences": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "family_statuses": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "friends_of_connections": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "generation": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "home_ownership": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "home_type": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "household_composition": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "income": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "industries": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "interests": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "life_events": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "moms": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "net_worth": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "politics": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "relationship_statuses": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "user_adclusters": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "work_employers": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "work_positions": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "friends_of_connections": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "genders": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "generation": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "geo_locations": {
+ "properties": {
+ "cities": {
+ "items": {
+ "properties": {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "distance_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "radius": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "countries": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "country_groups": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "custom_locations": {
+ "items": {
+ "properties": {
+ "address_string": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "distance_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "primary_city_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "radius": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "region_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "geo-markets": {
+ "items": {
+ "properties": {
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "location_types": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "regions": {
+ "items": {
+ "properties": {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "zips": {
+ "items": {
+ "properties": {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "primary_city_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "region_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "home_ownership": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "home_type": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "income": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "industries": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "instagram_positions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "interested_in": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "interests": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "locales": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "messenger_positions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "moms": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "net_worth": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "office_type": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "politics": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "publisher_platforms": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "relationship_statuses": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "targeting_optimization": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_adclusters": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "user_device": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "user_os": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "work_positions": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "updated_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/facebook-ads/v1/json/campaigns.json b/_data/taps/schemas/facebook-ads/v1/json/campaigns.json
new file mode 100644
index 000000000..0e58d6afd
--- /dev/null
+++ b/_data/taps/schemas/facebook-ads/v1/json/campaigns.json
@@ -0,0 +1,107 @@
+{
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adlabels": {
+ "items": {
+ "properties": {
+ "created_time": {
+ "type": "date-time"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "updated_time": {
+ "type": "date-time"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ads": {
+ "properties": {
+ "data": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "buying_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "effective_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "objective": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "spend_cap": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "start_time": {
+ "type": "date-time"
+ },
+ "updated_time": {
+ "type": "date-time"
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/freshdesk/v1/freshdesk-v1-foreign-keys.yml b/_data/taps/schemas/freshdesk/v1/freshdesk-v1-foreign-keys.yml
new file mode 100644
index 000000000..81f947257
--- /dev/null
+++ b/_data/taps/schemas/freshdesk/v1/freshdesk-v1-foreign-keys.yml
@@ -0,0 +1,229 @@
+tap: freshdesk
+version: '1'
+keys:
+ agents_agent_id:
+ - table: agents
+ keys:
+ - id
+ - table: groups
+ keys:
+ - agent_ids
+ - table: satisfaction_ratings
+ keys:
+ - agent_id
+ - table: tickets
+ keys:
+ - responder_id
+ - table: time_entries
+ keys:
+ - agent_id
+ companies_company_id:
+ - table: companies
+ keys:
+ - id
+ - table: tickets
+ keys:
+ - company_id
+ contacts_contact_id:
+ - table: contacts
+ keys:
+ - id
+ conversations_conversation_id:
+ - table: conversations
+ keys:
+ - id
+ groups_group_id:
+ - table: agents
+ keys:
+ - group_ids.type
+ - table: groups
+ keys:
+ - id
+ - table: satisfaction_ratings
+ keys:
+ - group_id
+ - table: tickets
+ keys:
+ - group_id
+ roles_role_id:
+ - table: agents
+ keys:
+ - role_ids.type
+ - table: roles
+ keys:
+ - id
+ satisfaction_ratings_satisfaction_rating_id:
+ - table: satisfaction_ratings
+ keys:
+ - id
+ tickets_ticket_id:
+ - table: conversations
+ keys:
+ - ticket_id
+ - table: tickets
+ keys:
+ - id
+ - table: satisfaction_ratings
+ keys:
+ - ticket_id
+ time_entries_time_entry_id:
+ - table: time_entries
+ keys:
+ - id
+tables:
+- table-name: agents
+ join:
+ - table-name: groups
+ keys:
+ - key: id
+ foreign-key: agent_ids
+ - key: group_ids.type
+ foreign-key: id
+ - table-name: satisfaction_ratings
+ keys:
+ - key: id
+ foreign-key: agent_id
+ - key: group_ids.type
+ foreign-key: group_id
+ - table-name: tickets
+ keys:
+ - key: id
+ foreign-key: responder_id
+ - key: group_ids.type
+ foreign-key: group_id
+ - table-name: time_entries
+ keys:
+ - key: id
+ foreign-key: agent_id
+ - table-name: roles
+ keys:
+ - key: role_ids.type
+ foreign-key: id
+- table-name: groups
+ join:
+ - table-name: agents
+ keys:
+ - key: agent_ids
+ foreign-key: id
+ - key: id
+ foreign-key: group_ids.type
+ - table-name: satisfaction_ratings
+ keys:
+ - key: agent_ids
+ foreign-key: agent_id
+ - key: id
+ foreign-key: group_id
+ - table-name: tickets
+ keys:
+ - key: agent_ids
+ foreign-key: responder_id
+ - key: id
+ foreign-key: group_id
+ - table-name: time_entries
+ keys:
+ - key: agent_ids
+ foreign-key: agent_id
+- table-name: satisfaction_ratings
+ join:
+ - table-name: agents
+ keys:
+ - key: agent_id
+ foreign-key: id
+ - key: group_id
+ foreign-key: group_ids.type
+ - table-name: groups
+ keys:
+ - key: agent_id
+ foreign-key: agent_ids
+ - key: group_id
+ foreign-key: id
+ - table-name: tickets
+ keys:
+ - key: agent_id
+ foreign-key: responder_id
+ - key: group_id
+ foreign-key: group_id
+ - key: ticket_id
+ foreign-key: id
+ - table-name: time_entries
+ keys:
+ - key: agent_id
+ foreign-key: agent_id
+ - table-name: conversations
+ keys:
+ - key: ticket_id
+ foreign-key: ticket_id
+- table-name: tickets
+ join:
+ - table-name: agents
+ keys:
+ - key: responder_id
+ foreign-key: id
+ - key: group_id
+ foreign-key: group_ids.type
+ - table-name: groups
+ keys:
+ - key: responder_id
+ foreign-key: agent_ids
+ - key: group_id
+ foreign-key: id
+ - table-name: satisfaction_ratings
+ keys:
+ - key: responder_id
+ foreign-key: agent_id
+ - key: group_id
+ foreign-key: group_id
+ - key: id
+ foreign-key: ticket_id
+ - table-name: time_entries
+ keys:
+ - key: responder_id
+ foreign-key: agent_id
+ - table-name: companies
+ keys:
+ - key: company_id
+ foreign-key: id
+ - table-name: conversations
+ keys:
+ - key: id
+ foreign-key: ticket_id
+- table-name: time_entries
+ join:
+ - table-name: agents
+ keys:
+ - key: agent_id
+ foreign-key: id
+ - table-name: groups
+ keys:
+ - key: agent_id
+ foreign-key: agent_ids
+ - table-name: satisfaction_ratings
+ keys:
+ - key: agent_id
+ foreign-key: agent_id
+ - table-name: tickets
+ keys:
+ - key: agent_id
+ foreign-key: responder_id
+- table-name: companies
+ join:
+ - table-name: tickets
+ keys:
+ - key: id
+ foreign-key: company_id
+- table-name: conversations
+ join:
+ - table-name: tickets
+ keys:
+ - key: ticket_id
+ foreign-key: id
+ - table-name: satisfaction_ratings
+ keys:
+ - key: ticket_id
+ foreign-key: ticket_id
+- table-name: roles
+ join:
+ - table-name: agents
+ keys:
+ - key: id
+ foreign-key: role_ids.type
diff --git a/_data/taps/schemas/freshdesk/v1/freshdesk-v1-tables.yml b/_data/taps/schemas/freshdesk/v1/freshdesk-v1-tables.yml
new file mode 100644
index 000000000..5784d9686
--- /dev/null
+++ b/_data/taps/schemas/freshdesk/v1/freshdesk-v1-tables.yml
@@ -0,0 +1,118 @@
+tap: freshdesk
+version: '1'
+tables:
+- name: agents
+ description: 'The `{{ table.name }}` table contains info about the agents in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.freshdesk.com/api/#agents
+ singer-schema: https://github.com/singer-io/tap-freshdesk/blob/master/tap_freshdesk/schemas/agents.json
+ api-method: https://developers.freshdesk.com/api/#list_all_agents
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: companies
+ description: 'The `{{ table.name }}` table contains info about the companies your
+ various customers and contacts belong to.
+
+
+ #### Custom Fields
+
+
+ If applicable, Stitch will replicate custom fields related to `{{ table.name }}`
+ in {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developers.freshdesk.com/api/#companies
+ api-method: https://developers.freshdesk.com/api/#list_all_companies
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: conversations
+ description: 'The `{{ table.name }}` table contains info about replies and public/private
+ notes added to the tickets in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.freshdesk.com/api/#conversations
+ singer-schema: https://github.com/singer-io/tap-freshdesk/blob/master/tap_freshdesk/schemas/conversations.json
+ api-method: https://developers.freshdesk.com/api/#list_all_ticket_notes
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: groups
+ description: 'The `{{ table.name }}` table contains info about the groups your agents
+ belong to.
+
+ '
+ links:
+ doc-link: https://developers.freshdesk.com/api/#groups
+ singer-schema: https://github.com/singer-io/tap-freshdesk/blob/master/tap_freshdesk/schemas/groups.json
+ api-method: https://developers.freshdesk.com/api/#list_all_groups
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: roles
+ description: 'The `{{ table.name }}` table contains info about the various roles
+ that can be assigned to team members in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.freshdesk.com/api/#roles
+ singer-schema: https://github.com/singer-io/tap-freshdesk/blob/master/tap_freshdesk/schemas/roles.json
+ api-method: https://developers.freshdesk.com/api/#list_all_roles
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: satisfaction_ratings
+ description: 'The `{{ table.name }}` table contains info about customer satisfaction
+ survey responses, or satisfaction ratings.
+
+ '
+ links:
+ doc-link: https://developers.freshdesk.com/api/#satisfaction-ratings
+ singer-schema: https://github.com/singer-io/tap-freshdesk/blob/master/tap_freshdesk/schemas/satisfaction_ratings.json
+ api-method: https://developers.freshdesk.com/api/#view_all_satisfaction_ratings
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: tickets
+ description: 'The `tickets` table contains info about the tickets in your {{ integration.display_name
+ }} account.
+
+
+ #### Custom Fields
+
+
+ If applicable, Stitch will replicate custom fields related to `tickets` in {{
+ integration.display_name }}.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-freshdesk/blob/master/tap_freshdesk/schemas/tickets.json
+ api-method: https://developers.freshdesk.com/api/#tickets
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: time_entries
+ description: 'The `time_entries` table contains info about the time entries entered
+ by agents working on tickets.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-freshdesk/blob/master/tap_freshdesk/schemas/time_entries.json
+ api-method: https://developers.freshdesk.com/api/#time-entries
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
diff --git a/_data/taps/schemas/freshdesk/v1/json/agents.json b/_data/taps/schemas/freshdesk/v1/json/agents.json
new file mode 100644
index 000000000..a4fadcce5
--- /dev/null
+++ b/_data/taps/schemas/freshdesk/v1/json/agents.json
@@ -0,0 +1,151 @@
+{
+ "properties": {
+ "available": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "available_since": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "contact": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "job_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_login_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "mobile": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "time_zone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "group_ids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "occasional": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "role_ids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "signature": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ticket_scope": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/freshdesk/v1/json/companies.json b/_data/taps/schemas/freshdesk/v1/json/companies.json
new file mode 100644
index 000000000..a61381b5e
--- /dev/null
+++ b/_data/taps/schemas/freshdesk/v1/json/companies.json
@@ -0,0 +1,79 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "domains": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/freshdesk/v1/json/conversations.json b/_data/taps/schemas/freshdesk/v1/json/conversations.json
new file mode 100644
index 000000000..ec117a8d5
--- /dev/null
+++ b/_data/taps/schemas/freshdesk/v1/json/conversations.json
@@ -0,0 +1,118 @@
+{
+ "properties": {
+ "bcc_emails": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "body_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cc_emails": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "created_at": {
+ "anyOf": [
+ {
+ "type": "date-time"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "from_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "incoming": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "private": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "support_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ticket_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "to_emails": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "updated_at": {
+ "anyOf": [
+ {
+ "type": "date-time"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/freshdesk/v1/json/groups.json b/_data/taps/schemas/freshdesk/v1/json/groups.json
new file mode 100644
index 000000000..b5363d873
--- /dev/null
+++ b/_data/taps/schemas/freshdesk/v1/json/groups.json
@@ -0,0 +1,72 @@
+{
+ "properties": {
+ "agent_ids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "auto_ticket_assign": {
+ "type": [
+ "null",
+ "integer",
+ "boolean"
+ ]
+ },
+ "business_hour_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "escalate_to": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unassigned_for": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/freshdesk/v1/json/roles.json b/_data/taps/schemas/freshdesk/v1/json/roles.json
new file mode 100644
index 000000000..8c53202b7
--- /dev/null
+++ b/_data/taps/schemas/freshdesk/v1/json/roles.json
@@ -0,0 +1,41 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/freshdesk/v1/json/satisfaction_ratings.json b/_data/taps/schemas/freshdesk/v1/json/satisfaction_ratings.json
new file mode 100644
index 000000000..73507d4f4
--- /dev/null
+++ b/_data/taps/schemas/freshdesk/v1/json/satisfaction_ratings.json
@@ -0,0 +1,85 @@
+{
+ "properties": {
+ "agent_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "feedback": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ratings": {
+ "items": {
+ "properties": {
+ "question": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "survey_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ticket_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/freshdesk/v1/json/tickets.json b/_data/taps/schemas/freshdesk/v1/json/tickets.json
new file mode 100644
index 000000000..ce27f86df
--- /dev/null
+++ b/_data/taps/schemas/freshdesk/v1/json/tickets.json
@@ -0,0 +1,337 @@
+{
+ "properties": {
+ "cc_emails": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "company": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "company_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "due_by": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_config_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "facebook_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fr_due_by": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "fr_escalated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "fwd_emails": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_escalated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "priority": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reply_cc_emails": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "requester": {
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "mobile": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "requester_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "responder_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "spam": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "stats": {
+ "properties": {
+ "closed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "first_responded_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "resolved_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "to_emails": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "twitter_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/freshdesk/v1/json/time_entries.json b/_data/taps/schemas/freshdesk/v1/json/time_entries.json
new file mode 100644
index 000000000..62898bc64
--- /dev/null
+++ b/_data/taps/schemas/freshdesk/v1/json/time_entries.json
@@ -0,0 +1,68 @@
+{
+ "properties": {
+ "agent_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "billable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "executed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": "integer"
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ticket_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "time_spent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timer_running": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/frontapp/v1/frontapp-v1-tables.yml b/_data/taps/schemas/frontapp/v1/frontapp-v1-tables.yml
new file mode 100644
index 000000000..f0d45dfe5
--- /dev/null
+++ b/_data/taps/schemas/frontapp/v1/frontapp-v1-tables.yml
@@ -0,0 +1,138 @@
+tap: frontapp
+version: '1'
+tables:
+- name: tags_table
+ description: 'The `{{ table.name }}` table contains a list of tag statistics since
+ the last completed replication job through the most recent iteration of the defined
+ [**Incremental Range**](#add-stitch-data-source) (day or hour).
+
+
+ This table will include tags in your {{ integration.display_name }} account.
+
+
+ **Note**: During the historical replication job, all increments (defined using
+ the **Incremental Range** setting) since the **Start Date** will be replicated.
+ This will result in the first record for this table being an aggregated record
+ across all tags.
+
+ '
+ links:
+ doc-link: https://dev.frontapp.com/reference/analytics
+ singer-schema: https://github.com/singer-io/tap-frontapp/blob/master/tap_frontapp/schemas/tags_table.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - tag_v
+ - analytics_range
+ - analytics_date
+ replication-key: analytics_date
+- name: team_table
+ description: 'The `{{ table.name }}` table contains a list of team member statistics
+ since the last completed replication job through the most recent iteration of
+ the defined [**Incremental Range**](#add-stitch-data-source) (day or hour).
+
+
+ This table will include team members from all teams in your {{ integration.display_name
+ }} account.
+
+
+ **Note**: During the historical replication job, all increments since the **Start
+ Date** will be replicated. This will result in the first record for this table
+ being an aggregated record across all team members.
+
+ '
+ links:
+ doc-link: https://dev.frontapp.com/reference/analytics
+ singer-schema: https://github.com/singer-io/tap-frontapp/blob/master/tap_frontapp/schemas/team_table.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - analytics_date
+ - analytics_range
+ - teammate_v
+ replication-key: analytics_date
+- name: customers_table
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-frontapp/blob/master/tap_frontapp/schemas/customers_table.json
+ doc-link: https://dev.frontapp.com/reference/analytics
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - analytics_date
+ - analytics_range
+ - resource_t
+ - resource_v
+ replication-key: analytics_date
+- name: first_response_histo
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-frontapp/blob/master/tap_frontapp/schemas/first_response_histo.json
+ doc-link: https://dev.frontapp.com/reference/analytics
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - analytics_date
+ - analytics_range
+ - time_v
+ replication-key: analytics_date
+- name: resolution_histo
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-frontapp/blob/master/tap_frontapp/schemas/resolution_histo.json
+ doc-link: https://dev.frontapp.com/reference/analytics
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - analytics_date
+ - analytics_range
+ - time_v
+ replication-key: analytics_date
+- name: response_histo
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-frontapp/blob/master/tap_frontapp/schemas/response_histo.json
+ doc-link: https://dev.frontapp.com/reference/analytics
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - analytics_date
+ - analytics_range
+ - time_v
+ replication-key: analytics_date
+- name: top_conversations_table
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-frontapp/blob/master/tap_frontapp/schemas/top_conversations_table.json
+ doc-link: https://dev.frontapp.com/reference/analytics
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - analytics_date
+ - analytics_range
+ - teammate_v
+ replication-key: analytics_date
+- name: top_reaction_time_table
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-frontapp/blob/master/tap_frontapp/schemas/top_reaction_time_table.json
+ doc-link: https://dev.frontapp.com/reference/analytics
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - analytics_date
+ - analytics_range
+ - teammate_v
+ replication-key: analytics_date
+- name: top_replies_table
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-frontapp/blob/master/tap_frontapp/schemas/top_replies_table.json
+ doc-link: https://dev.frontapp.com/reference/analytics
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - analytics_date
+ - analytics_range
+ - teammate_v
+ replication-key: analytics_date
diff --git a/_data/taps/schemas/frontapp/v1/json/customers_table.json b/_data/taps/schemas/frontapp/v1/json/customers_table.json
new file mode 100644
index 000000000..7b23b5fcf
--- /dev/null
+++ b/_data/taps/schemas/frontapp/v1/json/customers_table.json
@@ -0,0 +1,105 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "analytics_date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "analytics_range": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avg_first_response_p": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_first_response_v": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_resolution_p": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_resolution_v": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_response_p": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_response_v": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_received_p": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "num_received_v": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "num_sent_p": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "num_sent_v": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "resource_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "resource_t": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_v": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/frontapp/v1/json/first_response_histo.json b/_data/taps/schemas/frontapp/v1/json/first_response_histo.json
new file mode 100644
index 000000000..f856b5340
--- /dev/null
+++ b/_data/taps/schemas/frontapp/v1/json/first_response_histo.json
@@ -0,0 +1,39 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "analytics_date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "analytics_range": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "replies_p": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "replies_v": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "time_v": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/frontapp/v1/json/resolution_histo.json b/_data/taps/schemas/frontapp/v1/json/resolution_histo.json
new file mode 100644
index 000000000..d9f0a6940
--- /dev/null
+++ b/_data/taps/schemas/frontapp/v1/json/resolution_histo.json
@@ -0,0 +1,39 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "analytics_date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "analytics_range": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resolutions_p": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "resolutions_v": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "time_v": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/frontapp/v1/json/response_histo.json b/_data/taps/schemas/frontapp/v1/json/response_histo.json
new file mode 100644
index 000000000..f856b5340
--- /dev/null
+++ b/_data/taps/schemas/frontapp/v1/json/response_histo.json
@@ -0,0 +1,39 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "analytics_date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "analytics_range": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "replies_p": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "replies_v": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "time_v": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/frontapp/v1/json/tags_table.json b/_data/taps/schemas/frontapp/v1/json/tags_table.json
new file mode 100644
index 000000000..059401465
--- /dev/null
+++ b/_data/taps/schemas/frontapp/v1/json/tags_table.json
@@ -0,0 +1,99 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "analytics_date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "analytics_range": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avg_message_conversations_p": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_message_conversations_v": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "conversations_archived_p": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversations_archived_v": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversations_open_p": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversations_open_v": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversations_total_p": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversations_total_v": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "num_messages_p": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "num_messages_v": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tag_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tag_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tag_v": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/frontapp/v1/json/team_table.json b/_data/taps/schemas/frontapp/v1/json/team_table.json
new file mode 100644
index 000000000..3e2d20183
--- /dev/null
+++ b/_data/taps/schemas/frontapp/v1/json/team_table.json
@@ -0,0 +1,283 @@
+{
+ "additionalProperties": false,
+ "bookmark_properties": [
+ "analytics_date",
+ "analytics_range"
+ ],
+ "key_properties": [
+ "analytics_date",
+ "analytics_range",
+ "teammate_v"
+ ],
+ "properties": {
+ "analytics_date": {
+ "properties": {
+ "selected": true,
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "analytics_range": {
+ "properties": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "avg_first_reaction_time_p": {
+ "properties": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "avg_first_reaction_time_v": {
+ "properties": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "avg_message_conversations_p": {
+ "properties": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "avg_message_conversations_v": {
+ "properties": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "avg_reaction_time_p": {
+ "properties": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "avg_reaction_time_v": {
+ "properties": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "num_composed_p": {
+ "properties": {
+ "selected": true,
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "num_composed_v": {
+ "properties": {
+ "selected": true,
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "num_conversations_p": {
+ "properties": {
+ "selected": true,
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "num_conversations_v": {
+ "properties": {
+ "selected": true,
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "num_messages_p": {
+ "properties": {
+ "selected": true,
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "num_messages_v": {
+ "properties": {
+ "selected": true,
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "num_replied_p": {
+ "properties": {
+ "selected": true,
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "num_replied_v": {
+ "properties": {
+ "selected": true,
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "num_sent_p": {
+ "properties": {
+ "selected": true,
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "num_sent_v": {
+ "properties": {
+ "selected": true,
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "teammate_id": {
+ "properties": {
+ "selected": true,
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "teammate_p": {
+ "properties": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "teammate_url": {
+ "properties": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "teammate_v": {
+ "properties": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "selected": true,
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/frontapp/v1/json/top_conversations_table.json b/_data/taps/schemas/frontapp/v1/json/top_conversations_table.json
new file mode 100644
index 000000000..f735f1c54
--- /dev/null
+++ b/_data/taps/schemas/frontapp/v1/json/top_conversations_table.json
@@ -0,0 +1,51 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "analytics_date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "analytics_range": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "num_conversations_p": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "num_conversations_v": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "teammate_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "teammate_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "teammate_v": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/frontapp/v1/json/top_reaction_time_table.json b/_data/taps/schemas/frontapp/v1/json/top_reaction_time_table.json
new file mode 100644
index 000000000..ef684f2ba
--- /dev/null
+++ b/_data/taps/schemas/frontapp/v1/json/top_reaction_time_table.json
@@ -0,0 +1,51 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "analytics_date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "analytics_range": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avg_reaction_time_p": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_reaction_time_v": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "teammate_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "teammate_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "teammate_v": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/frontapp/v1/json/top_replies_table.json b/_data/taps/schemas/frontapp/v1/json/top_replies_table.json
new file mode 100644
index 000000000..573687a2e
--- /dev/null
+++ b/_data/taps/schemas/frontapp/v1/json/top_replies_table.json
@@ -0,0 +1,51 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "analytics_date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "analytics_range": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "num_replies_p": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "num_replies_v": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "teammate_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "teammate_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "teammate_v": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/frontapp/v2/frontapp-v2-tables.yml b/_data/taps/schemas/frontapp/v2/frontapp-v2-tables.yml
new file mode 100644
index 000000000..3faead22e
--- /dev/null
+++ b/_data/taps/schemas/frontapp/v2/frontapp-v2-tables.yml
@@ -0,0 +1,86 @@
+tap: frontapp
+version: '2'
+tap-repo-schemas: true
+tables:
+- name: accounts_table
+ description: The `{{ table.name }}` table contains data about accounts in your {{
+ integration.display_name }} account.
+ links:
+ doc-link: https://dev.frontapp.com/reference/analytics
+ singer-schema: https://github.com/singer-io/tap-frontapp/blob/master/tap_frontapp/schemas/accounts_table.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: report_id
+ replication-keys:
+ - analytics_date
+ - analytics_range
+- name: channels_table
+ description: The `{{ table.name }}` table contains data about channels in your {{
+ integration.display_name }} account.
+ links:
+ doc-link: https://dev.frontapp.com/reference/analytics
+ singer-schema: https://github.com/singer-io/tap-frontapp/blob/master/tap_frontapp/schemas/channels_table.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: report_id
+ replication-keys:
+ - analytics_date
+ - analytics_range
+- name: inboxes_table
+ description: The `{{ table.name }}` table contains data about inboxes in your {{
+ integration.display_name }} account.
+ links:
+ doc-link: https://dev.frontapp.com/reference/analytics
+ singer-schema: https://github.com/singer-io/tap-frontapp/blob/master/tap_frontapp/schemas/inboxes_table.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: report_id
+ replication-keys:
+ - analytics_date
+ - analytics_range
+- name: tags_table
+ description: 'The `{{ table.name }}` table contains a list of tag statistics since
+ the last completed replication job through the most recent iteration of the defined
+ [**Incremental Range**](#add-stitch-data-source) (day or hour).
+
+ This table will include tags in your {{ integration.display_name }} account.
+
+ **Note**: During the historical replication job, all increments (defined using
+ the **Incremental Range** setting) since the **Start Date** will be replicated.
+ This will result in the first record for this table being an aggregated record
+ across all tags.
+
+ '
+ links:
+ doc-link: https://dev.frontapp.com/reference/analytics
+ singer-schema: https://github.com/singer-io/tap-frontapp/blob/master/tap_frontapp/schemas/tags_table.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: report_id
+ replication-keys:
+ - analytics_date
+ - analytics_range
+- name: teammates_table
+ description: The `{{ table.name }}` table contains data about teammates in your
+ {{ integration.display_name }} account.
+ links:
+ doc-link: https://dev.frontapp.com/reference/analytics
+ singer-schema: https://github.com/singer-io/tap-frontapp/blob/master/tap_frontapp/schemas/teammates_table.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: report_id
+ replication-keys:
+ - analytics_date
+ - analytics_range
+- name: teams_table
+ description: The `{{ table.name }}` table contains data about teams in your {{ integration.display_name
+ }} account.
+ links:
+ doc-link: https://dev.frontapp.com/reference/analytics
+ singer-schema: https://github.com/singer-io/tap-frontapp/blob/master/tap_frontapp/schemas/teams_table.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: report_id
+ replication-keys:
+ - analytics_date
+ - analytics_range
diff --git a/_data/taps/schemas/frontapp/v2/json/accounts_table.json b/_data/taps/schemas/frontapp/v2/json/accounts_table.json
new file mode 100644
index 000000000..3a05d151f
--- /dev/null
+++ b/_data/taps/schemas/frontapp/v2/json/accounts_table.json
@@ -0,0 +1,185 @@
+{
+ "additionalProperties": false,
+ "bookmark_properties": [
+ "analytics_date",
+ "analytics_range"
+ ],
+ "key_properties": [
+ "report_id"
+ ],
+ "properties": {
+ "analytics_date": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "analytics_range": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avg_first_response_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_handle_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_response_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_sla_breach_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_total_reply_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "metric_description": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metric_id": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "new_segments_count": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_active_segments_full": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_archived_segments": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_archived_segments_with_reply": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_closed_segments": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_csat_survey_response": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_messages_received": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_messages_sent": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_open_segments_end": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_open_segments_start": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_sla_breach": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_workload_segments": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "pct_csat_survey_satisfaction": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "pct_tagged_conversations": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "report_id": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "selected": true,
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/frontapp/v2/json/channels_table.json b/_data/taps/schemas/frontapp/v2/json/channels_table.json
new file mode 100644
index 000000000..3a05d151f
--- /dev/null
+++ b/_data/taps/schemas/frontapp/v2/json/channels_table.json
@@ -0,0 +1,185 @@
+{
+ "additionalProperties": false,
+ "bookmark_properties": [
+ "analytics_date",
+ "analytics_range"
+ ],
+ "key_properties": [
+ "report_id"
+ ],
+ "properties": {
+ "analytics_date": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "analytics_range": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avg_first_response_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_handle_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_response_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_sla_breach_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_total_reply_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "metric_description": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metric_id": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "new_segments_count": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_active_segments_full": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_archived_segments": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_archived_segments_with_reply": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_closed_segments": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_csat_survey_response": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_messages_received": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_messages_sent": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_open_segments_end": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_open_segments_start": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_sla_breach": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_workload_segments": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "pct_csat_survey_satisfaction": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "pct_tagged_conversations": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "report_id": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "selected": true,
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/frontapp/v2/json/inboxes_table.json b/_data/taps/schemas/frontapp/v2/json/inboxes_table.json
new file mode 100644
index 000000000..3a05d151f
--- /dev/null
+++ b/_data/taps/schemas/frontapp/v2/json/inboxes_table.json
@@ -0,0 +1,185 @@
+{
+ "additionalProperties": false,
+ "bookmark_properties": [
+ "analytics_date",
+ "analytics_range"
+ ],
+ "key_properties": [
+ "report_id"
+ ],
+ "properties": {
+ "analytics_date": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "analytics_range": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avg_first_response_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_handle_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_response_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_sla_breach_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_total_reply_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "metric_description": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metric_id": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "new_segments_count": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_active_segments_full": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_archived_segments": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_archived_segments_with_reply": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_closed_segments": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_csat_survey_response": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_messages_received": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_messages_sent": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_open_segments_end": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_open_segments_start": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_sla_breach": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_workload_segments": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "pct_csat_survey_satisfaction": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "pct_tagged_conversations": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "report_id": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "selected": true,
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/frontapp/v2/json/tags_table.json b/_data/taps/schemas/frontapp/v2/json/tags_table.json
new file mode 100644
index 000000000..3a05d151f
--- /dev/null
+++ b/_data/taps/schemas/frontapp/v2/json/tags_table.json
@@ -0,0 +1,185 @@
+{
+ "additionalProperties": false,
+ "bookmark_properties": [
+ "analytics_date",
+ "analytics_range"
+ ],
+ "key_properties": [
+ "report_id"
+ ],
+ "properties": {
+ "analytics_date": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "analytics_range": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avg_first_response_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_handle_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_response_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_sla_breach_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_total_reply_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "metric_description": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metric_id": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "new_segments_count": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_active_segments_full": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_archived_segments": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_archived_segments_with_reply": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_closed_segments": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_csat_survey_response": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_messages_received": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_messages_sent": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_open_segments_end": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_open_segments_start": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_sla_breach": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_workload_segments": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "pct_csat_survey_satisfaction": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "pct_tagged_conversations": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "report_id": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "selected": true,
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/frontapp/v2/json/teammates_table.json b/_data/taps/schemas/frontapp/v2/json/teammates_table.json
new file mode 100644
index 000000000..3a05d151f
--- /dev/null
+++ b/_data/taps/schemas/frontapp/v2/json/teammates_table.json
@@ -0,0 +1,185 @@
+{
+ "additionalProperties": false,
+ "bookmark_properties": [
+ "analytics_date",
+ "analytics_range"
+ ],
+ "key_properties": [
+ "report_id"
+ ],
+ "properties": {
+ "analytics_date": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "analytics_range": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avg_first_response_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_handle_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_response_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_sla_breach_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_total_reply_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "metric_description": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metric_id": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "new_segments_count": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_active_segments_full": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_archived_segments": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_archived_segments_with_reply": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_closed_segments": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_csat_survey_response": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_messages_received": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_messages_sent": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_open_segments_end": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_open_segments_start": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_sla_breach": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_workload_segments": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "pct_csat_survey_satisfaction": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "pct_tagged_conversations": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "report_id": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "selected": true,
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/frontapp/v2/json/teams_table.json b/_data/taps/schemas/frontapp/v2/json/teams_table.json
new file mode 100644
index 000000000..3a05d151f
--- /dev/null
+++ b/_data/taps/schemas/frontapp/v2/json/teams_table.json
@@ -0,0 +1,185 @@
+{
+ "additionalProperties": false,
+ "bookmark_properties": [
+ "analytics_date",
+ "analytics_range"
+ ],
+ "key_properties": [
+ "report_id"
+ ],
+ "properties": {
+ "analytics_date": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "analytics_range": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avg_first_response_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_handle_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_response_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_sla_breach_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_total_reply_time": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "metric_description": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metric_id": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "new_segments_count": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_active_segments_full": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_archived_segments": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_archived_segments_with_reply": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_closed_segments": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_csat_survey_response": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_messages_received": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_messages_sent": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_open_segments_end": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_open_segments_start": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_sla_breach": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_workload_segments": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "pct_csat_survey_satisfaction": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "pct_tagged_conversations": {
+ "selected": true,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "report_id": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "selected": true,
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/fullstory/v1/fullstory-v1-tables.yml b/_data/taps/schemas/fullstory/v1/fullstory-v1-tables.yml
new file mode 100644
index 000000000..43678e098
--- /dev/null
+++ b/_data/taps/schemas/fullstory/v1/fullstory-v1-tables.yml
@@ -0,0 +1,21 @@
+tap: fullstory
+version: '1'
+tables:
+- name: events
+ description: 'The `events` table contains raw data about the events that occurred
+ on your site, which are recorded using the {{ integration.display_name }} JavaScript
+ library.
+
+
+ **Note**: Records for this table are loaded using [Append-Only loading](#data-loading-append-only).
+ Loading will be append-only even if the destination you''re using supports Upsert
+ loading.
+
+ '
+ links:
+ doc-link: https://help.fullstory.com/technical-questions/data-export#data-export-contents
+ singer-schema: https://github.com/singer-io/tap-fullstory/blob/master/tap_fullstory/schemas/events.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '__sdc_primary_key'
+ replication-key: EventStart
diff --git a/_data/taps/schemas/fullstory/v1/json/events.json b/_data/taps/schemas/fullstory/v1/json/events.json
new file mode 100644
index 000000000..56b714a06
--- /dev/null
+++ b/_data/taps/schemas/fullstory/v1/json/events.json
@@ -0,0 +1,149 @@
+{
+ "properties": {
+ "EventStart": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "EventTargetSelectorTok": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EventTargetText": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EventType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IndvId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "PageActiveDuration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "PageAgent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PageBrowser": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PageDevice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PageDuration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "PageId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "PageIp": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PageLatLong": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PageNumErrors": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "PageNumInfos": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "PageNumWarnings": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "PageOperatingSystem": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PageRefererUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PageUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SessionId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "UserAppKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UserDisplayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UserEmail": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UserId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v1/github-v1-foreign-keys.yml b/_data/taps/schemas/github/v1/github-v1-foreign-keys.yml
new file mode 100644
index 000000000..04675027c
--- /dev/null
+++ b/_data/taps/schemas/github/v1/github-v1-foreign-keys.yml
@@ -0,0 +1,281 @@
+tap: github
+version: '1'
+keys:
+ assignees_:
+ - table: assignees
+ keys:
+ - id
+ collaborators_:
+ - table: collaborators
+ keys:
+ - id
+ - table: pull_requests
+ keys:
+ - user.id
+ - table: reviews
+ keys:
+ - user.id
+ comments_comment_id:
+ - table: comments
+ keys:
+ - id
+ commits_commit_id:
+ - table: issue_events
+ keys:
+ - commit_id
+ - table: reviews
+ keys:
+ - commit_id
+ - table: review_comments
+ keys:
+ - commit_id
+ - original_commit_id
+ commit_comments_:
+ - table: commit_comments
+ keys:
+ - id
+ issue_labels_:
+ - table: issue_labels
+ keys:
+ - id
+ issue_milestones_:
+ - table: issue_milestones
+ keys:
+ - id
+ issues_issue_id:
+ - table: issues
+ keys:
+ - id
+ - table: issue_events
+ keys:
+ - id
+ - table: pull_requests
+ keys:
+ - id
+ labels_labels.id:
+ - table: issue_labels
+ keys:
+ - id
+ - table: issues
+ keys:
+ - labels.id
+ - table: pull_requests
+ keys:
+ - labels.id
+ milestones_:
+ - table: issue_events
+ keys:
+ - issue.milestone.id
+ projects_:
+ - table: projects
+ keys:
+ - id
+ pull_requests_pull_request_id:
+ - table: issues
+ keys:
+ - id
+ - table: pr_commits
+ keys:
+ - pr_id
+ - table: pull_requests
+ keys:
+ - id
+ review_comments_review_comment_id:
+ - table: review_comments
+ keys:
+ - id
+ - in_reply_to_id
+ reviews_review_id:
+ - table: reviews
+ keys:
+ - id
+ - table: review_comments
+ keys:
+ - pull_request_review_id
+ commits_sha:
+ - table: commits
+ keys:
+ - sha
+ - table: events
+ keys:
+ - payload.commits.sha
+ - table: pr_commits
+ keys:
+ - sha
+ releases_id:
+ - table: releases
+ keys:
+ - id
+ team_members_:
+ - table: team_members
+ keys:
+ - id
+ teams_:
+ - table: teams
+ keys:
+ - id
+tables:
+- table-name: collaborators
+ join:
+ - table-name: pull_requests
+ keys:
+ - key: id
+ foreign-key: user.id
+ - table-name: reviews
+ keys:
+ - key: id
+ foreign-key: user.id
+- table-name: pull_requests
+ join:
+ - table-name: collaborators
+ keys:
+ - key: user.id
+ foreign-key: id
+ - table-name: reviews
+ keys:
+ - key: user.id
+ foreign-key: user.id
+ - table-name: issues
+ keys:
+ - key: id
+ foreign-key: id
+ - key: labels.id
+ foreign-key: labels.id
+ - table-name: issue_events
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: issue_labels
+ keys:
+ - key: labels.id
+ foreign-key: id
+ - table-name: pr_commits
+ keys:
+ - key: id
+ foreign-key: pr_id
+- table-name: reviews
+ join:
+ - table-name: collaborators
+ keys:
+ - key: user.id
+ foreign-key: id
+ - table-name: pull_requests
+ keys:
+ - key: user.id
+ foreign-key: user.id
+ - table-name: issue_events
+ keys:
+ - key: commit_id
+ foreign-key: commit_id
+ - table-name: review_comments
+ keys:
+ - key: commit_id
+ foreign-key: commit_id
+ - key: commit_id
+ foreign-key: original_commit_id
+ - key: id
+ foreign-key: pull_request_review_id
+- table-name: issue_events
+ join:
+ - table-name: reviews
+ keys:
+ - key: commit_id
+ foreign-key: commit_id
+ - table-name: review_comments
+ keys:
+ - key: commit_id
+ foreign-key: commit_id
+ - key: commit_id
+ foreign-key: original_commit_id
+ - table-name: issues
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: pull_requests
+ keys:
+ - key: id
+ foreign-key: id
+- table-name: review_comments
+ join:
+ - table-name: issue_events
+ keys:
+ - key: commit_id
+ foreign-key: commit_id
+ - key: original_commit_id
+ foreign-key: commit_id
+ - table-name: reviews
+ keys:
+ - key: commit_id
+ foreign-key: commit_id
+ - key: original_commit_id
+ foreign-key: commit_id
+ - key: pull_request_review_id
+ foreign-key: id
+- table-name: issue_labels
+ join:
+ - table-name: issues
+ keys:
+ - key: id
+ foreign-key: labels.id
+ - table-name: pull_requests
+ keys:
+ - key: id
+ foreign-key: labels.id
+- table-name: issues
+ join:
+ - table-name: issue_events
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: pull_requests
+ keys:
+ - key: id
+ foreign-key: id
+ - key: labels.id
+ foreign-key: labels.id
+ - table-name: issue_labels
+ keys:
+ - key: labels.id
+ foreign-key: id
+ - table-name: pr_commits
+ keys:
+ - key: id
+ foreign-key: pr_id
+- table-name: pr_commits
+ join:
+ - table-name: issues
+ keys:
+ - key: pr_id
+ foreign-key: id
+ - table-name: pull_requests
+ keys:
+ - key: pr_id
+ foreign-key: id
+ - table-name: commits
+ keys:
+ - key: sha
+ foreign-key: sha
+ - table-name: events
+ keys:
+ - key: sha
+ foreign-key: payload.commits.sha
+- table-name: commits
+ join:
+ - table-name: events
+ keys:
+ - key: sha
+ foreign-key: payload.commits.sha
+ - table-name: pr_commits
+ keys:
+ - key: sha
+ foreign-key: sha
+- table-name: events
+ join:
+ - table-name: commits
+ keys:
+ - key: payload.commits.sha
+ foreign-key: sha
+ - table-name: pr_commits
+ keys:
+ - key: payload.commits.sha
+ foreign-key: sha
diff --git a/_data/taps/schemas/github/v1/github-v1-tables.yml b/_data/taps/schemas/github/v1/github-v1-tables.yml
new file mode 100644
index 000000000..49479e646
--- /dev/null
+++ b/_data/taps/schemas/github/v1/github-v1-tables.yml
@@ -0,0 +1,265 @@
+tap: github
+version: '1'
+tables:
+- name: assignees
+ description: 'The `{{ table.name }}` table contains info about the available assignees
+ for issues in the repositories specified for the integration.
+
+ '
+ links:
+ doc-link: https://developer.github.com/v3/issues/assignees/
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/assignees.json
+ api-method: https://docs.github.com/en/rest/reference/issues#list-assignees
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: collaborators
+ description: 'The `{{ table.name }}` table contains info about the users who contribute
+ to the repositories specified for the integration.
+
+
+ For organization-owned repositories, this will include outside collaborators,
+ organization owners, organization members that are direct collaborators, who have
+ access through team memberships, or have access through default organization permissions.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/collaborators.json
+ api-method: https://docs.github.com/en/rest/reference/repos#list-repository-collaborators
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: comments
+ description: 'The `{{ table.name }}` table contains info about comments made on
+ issues in the repositories specified for the integration.
+
+ '
+ links:
+ doc-link: https://developer.github.com/v3/comments/
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/comments.json
+ api-method: https://docs.github.com/en/rest/reference/issues#list-issue-comments-for-a-repository
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: commits
+ description: 'The `{{ table.name }}` table contains info about repository commits
+ in a project.
+
+ '
+ links:
+ doc-link: null
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/commits.json
+ api-method: https://docs.github.com/en/rest/reference/repos#list-commits
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: sha
+- name: commit_comments
+ description: 'The `{{ table.name }}` table contains info about the commit comments
+ in the repositories specified for the integration.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/commit_comments.json
+ api-method: https://docs.github.com/en/rest/reference/repos#list-commit-comments-for-a-repository
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: events
+ description: 'The `{{ table.name }}` table contains information about events in
+ the repositories specified for the integration.
+
+ '
+ links:
+ doc-link: https://developer.github.com/v3/activity/events/
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/events.json
+ api-method: https://docs.github.com/en/rest/reference/issues#list-issue-events-for-a-repository
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: issues
+ description: 'The `{{ table.name }}` table contains info about issues in the repositories
+ specified for the integration.
+
+
+ #### Issues and pull requests
+
+
+ GitHub''s API considers every pull request an issue, but not every issue may be
+ a pull request. Therefore, this table may contain both issues and pull requests.
+
+ '
+ links:
+ doc-link: https://developer.github.com/v3/issues/
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/issues.json
+ api-method: https://docs.github.com/en/rest/reference/issues#list-repository-issues
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: issue_events
+ description: 'The `{{ table.name }}` table contains info about issue events in the
+ repositories specified for the integration.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/issue_events.json
+ api-method: https://docs.github.com/en/rest/reference/issues#list-issue-events-for-a-repository
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: issue_labels
+ description: 'The `{{ table.name }}` table contains info about issue labels in the
+ repositories specified for the integration.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/issue_labels.json
+ api-method: https://docs.github.com/en/rest/reference/issues#list-labels-for-a-repository
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: issue_milestones
+ description: 'The `{{ table.name }}` table contains info about issue milestones
+ in the repositories specified for the integration.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/issue_milestones.json
+ api-method: https://docs.github.com/en/rest/reference/issues#list-milestones
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: projects
+ description: "The `{{ table.name }}` table contains info about projects in the repositories\
+ \ specified for the integration. \n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/projects.json
+ api-method: https://docs.github.com/en/rest/reference/projects#list-repository-projects
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: project_cards
+ description: 'The `{{ table.name }}` table contains information about project cards
+ in the repositories specified for the integration.
+
+ '
+ links:
+ doc-link: https://docs.github.com/en/rest/reference/projects#cards
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/project_cards.json
+ api-method: https://docs.github.com/en/rest/reference/projects#list-project-cards
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ parent-table: project
+- name: project_columns
+ description: 'The `{{ table.name }}` table contains info about the columns of projects
+ in the repositories specified for the integration.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/project_columns.json
+ api-method: https://docs.github.com/en/rest/reference/projects#list-project-columns
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ parent-table: project
+- name: pull_requests
+ description: 'The `{{ table.name }}` table contains info about pull requests made
+ against the repositories specified for the integration.
+
+ '
+ links:
+ doc-link: https://developer.github.com/v3/pulls/
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/pull_requests.json
+ api-method: https://docs.github.com/en/rest/reference/pulls#list-pull-requests
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: releases
+ description: 'The `{{ table.name }}` table contains info about releases in the repositories
+ specified for the integration.
+
+
+ **Note**: {{ integration.display_name }} doesn''t include regular Git tags that
+ haven''t been associated with a release.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/releases.json
+ api-method: https://docs.github.com/en/rest/reference/repos#list-releases
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: reviews
+ description: 'The `{{ table.name }}` table contains info about pull request reviews
+ in the repositories specified for the integration. A pull request review is a
+ group of comments on a pull request.
+
+ '
+ links:
+ doc-link: https://developer.github.com/v3/pulls/reviews/
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/reviews.json
+ api-method: https://docs.github.com/en/rest/reference/pulls#list-reviews-for-a-pull-request
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ parent-table: pull_request
+- name: review_comments
+ description: 'The `{{ table.name }}` table contains info about comments made on
+ pull request reviews in the repositories specified for the integration.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/review_comments.json
+ api-method: https://docs.github.com/en/rest/reference/pulls#list-review-comments-on-a-pull-request
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ parent-table: pull_request
+- name: stargazers
+ description: 'The `{{ table.name }}` table contains info about users who have starred
+ the repositories specified for the integration.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/stargazers.json
+ api-method: https://docs.github.com/en/rest/reference/activity#list-stargazers
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: user_id
+- name: teams
+ description: 'The `{{ table.name }}` table contains info about the teams in an organization.
+ Only teams that are visible to the user who authorized the integration in Stitch
+ will be replicated.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/teams.json
+ api-method: https://docs.github.com/en/rest/reference/teams#list-teams
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: team_members
+ description: 'The `{{ table.name }}` table contains info about members of organization
+ teams that are visible to the user who authorized the integration.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/team_members.json
+ api-method: https://docs.github.com/en/rest/reference/teams#list-teams
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ parent-table: team
+- name: team_memberships
+ description: 'The `{{ table.name }}` table contains info about membership of users
+ in of organization teams that are visible to the user who authorized the integration.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/team_memberships.json
+ api-method: https://docs.github.com/en/rest/reference/teams#get-team-membership-for-a-user
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: url
+ parent-table: team
diff --git a/_data/taps/schemas/github/v1/json/assignees.json b/_data/taps/schemas/github/v1/json/assignees.json
new file mode 100644
index 000000000..be03a74b7
--- /dev/null
+++ b/_data/taps/schemas/github/v1/json/assignees.json
@@ -0,0 +1,38 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v1/json/collaborators.json b/_data/taps/schemas/github/v1/json/collaborators.json
new file mode 100644
index 000000000..be03a74b7
--- /dev/null
+++ b/_data/taps/schemas/github/v1/json/collaborators.json
@@ -0,0 +1,38 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v1/json/comments.json b/_data/taps/schemas/github/v1/json/comments.json
new file mode 100644
index 000000000..d96a73091
--- /dev/null
+++ b/_data/taps/schemas/github/v1/json/comments.json
@@ -0,0 +1,187 @@
+{
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "string"
+ ]
+ },
+ "author_association": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "home_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "issue_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "additionalProperties": false,
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v1/json/commit_comments.json b/_data/taps/schemas/github/v1/json/commit_comments.json
new file mode 100644
index 000000000..de1f98ad4
--- /dev/null
+++ b/_data/taps/schemas/github/v1/json/commit_comments.json
@@ -0,0 +1,190 @@
+{
+ "properties": {
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "commit_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "line": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v1/json/commits.json b/_data/taps/schemas/github/v1/json/commits.json
new file mode 100644
index 000000000..e6fb25f06
--- /dev/null
+++ b/_data/taps/schemas/github/v1/json/commits.json
@@ -0,0 +1,264 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "string"
+ ]
+ },
+ "comments_url": {
+ "description": "The URL to the commit's comments page",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "commit": {
+ "additionalProperties": false,
+ "properties": {
+ "author": {
+ "additionalProperties": false,
+ "properties": {
+ "date": {
+ "description": "The date the author committed the change",
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "description": "The author's email",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "login": {
+ "description": "The author's login",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "description": "The author's name",
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "comment_count": {
+ "description": "The number of comments on the commit",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "committer": {
+ "additionalProperties": false,
+ "properties": {
+ "date": {
+ "description": "The date the committer committed the change",
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "description": "The committer's email",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "login": {
+ "description": "The committer's login",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "description": "The committer's name",
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "message": {
+ "description": "The commit message",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tree": {
+ "additionalProperties": false,
+ "properties": {
+ "sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "url": {
+ "description": "The URL to the commit",
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "files": {
+ "items": {
+ "properties": {
+ "additions": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "blob_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "changes": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "deletions": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "filename": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "patch": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "raw_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "html_url": {
+ "description": "The HTML URL to the commit",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parents": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "html_url": {
+ "description": "The HTML URL to the parent commit",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sha": {
+ "description": "The git hash of the parent commit",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "description": "The URL to the parent commit",
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "sha": {
+ "description": "The git commit hash",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v1/json/events.json b/_data/taps/schemas/github/v1/json/events.json
new file mode 100644
index 000000000..04a5eb0fc
--- /dev/null
+++ b/_data/taps/schemas/github/v1/json/events.json
@@ -0,0 +1,296 @@
+{
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "actor": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "distinct_size": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "head": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "org": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "payload": {
+ "properties": {
+ "action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "before": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "comment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "commits": {
+ "items": {
+ "properties": {
+ "author": {
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "distinct": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issue": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "master_branch": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pusher_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ref": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ref_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "public": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "push_id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ref": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repo": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v1/json/issue_events.json b/_data/taps/schemas/github/v1/json/issue_events.json
new file mode 100644
index 000000000..a29ef8c85
--- /dev/null
+++ b/_data/taps/schemas/github/v1/json/issue_events.json
@@ -0,0 +1,1466 @@
+{
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "actor": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "assignee": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "assigner": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "commit_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "commit_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "event": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "issue": {
+ "properties": {
+ "active_lock_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assignee": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "assignees": {
+ "items": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "author_association": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "closed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "comments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "comments_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "labels": {
+ "items": {
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "labels_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locked": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "milestone": {
+ "properties": {
+ "closed_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "closed_issues": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creator": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "due_on": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "labels_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "open_issues": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "performed_via_github_app": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pull_request": {
+ "properties": {
+ "diff_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "patch_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "repository_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "label": {
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "performed_via_github_app": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rename": {
+ "properties": {
+ "from": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "requested_reviewer": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "review_requester": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v1/json/issue_labels.json b/_data/taps/schemas/github/v1/json/issue_labels.json
new file mode 100644
index 000000000..d6f2097ad
--- /dev/null
+++ b/_data/taps/schemas/github/v1/json/issue_labels.json
@@ -0,0 +1,56 @@
+{
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v1/json/issue_milestones.json b/_data/taps/schemas/github/v1/json/issue_milestones.json
new file mode 100644
index 000000000..f057e5f3f
--- /dev/null
+++ b/_data/taps/schemas/github/v1/json/issue_milestones.json
@@ -0,0 +1,220 @@
+{
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "closed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "closed_issues": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creator": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "due_on": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "labels_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "open_issues": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v1/json/issues.json b/_data/taps/schemas/github/v1/json/issues.json
new file mode 100644
index 000000000..858bdbdfd
--- /dev/null
+++ b/_data/taps/schemas/github/v1/json/issues.json
@@ -0,0 +1,329 @@
+{
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "string"
+ ]
+ },
+ "assignee": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "author_association": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "closed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "comments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "comments_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "labels": {
+ "items": {
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "labels_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locked": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pull_request": {
+ "properties": {
+ "diff_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "patch_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "repository_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v1/json/pr_commits.json b/_data/taps/schemas/github/v1/json/pr_commits.json
new file mode 100644
index 000000000..3f02a83d3
--- /dev/null
+++ b/_data/taps/schemas/github/v1/json/pr_commits.json
@@ -0,0 +1,144 @@
+{
+ "properties": {
+ "comments_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "commit": {
+ "properties": {
+ "author": {
+ "properties": {
+ "date": {
+ "type": [
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "comment_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "committer": {
+ "properties": {
+ "date": {
+ "type": [
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "tree": {
+ "properties": {
+ "sha": {
+ "type": [
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "parents": {
+ "properties": {
+ "html_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "sha": {
+ "type": [
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "pr_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "pr_number": {
+ "type": [
+ "integer"
+ ]
+ },
+ "sha": {
+ "type": [
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v1/json/project_cards.json b/_data/taps/schemas/github/v1/json/project_cards.json
new file mode 100644
index 000000000..22692311a
--- /dev/null
+++ b/_data/taps/schemas/github/v1/json/project_cards.json
@@ -0,0 +1,106 @@
+{
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "cards_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "column_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creator": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "project_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v1/json/project_columns.json b/_data/taps/schemas/github/v1/json/project_columns.json
new file mode 100644
index 000000000..2b7135ae3
--- /dev/null
+++ b/_data/taps/schemas/github/v1/json/project_columns.json
@@ -0,0 +1,62 @@
+{
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cards_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "project_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v1/json/projects.json b/_data/taps/schemas/github/v1/json/projects.json
new file mode 100644
index 000000000..f40eea1d1
--- /dev/null
+++ b/_data/taps/schemas/github/v1/json/projects.json
@@ -0,0 +1,100 @@
+{
+ "properties": {
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "columns_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creator": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "owner_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v1/json/pull_requests.json b/_data/taps/schemas/github/v1/json/pull_requests.json
new file mode 100644
index 000000000..3b43391c5
--- /dev/null
+++ b/_data/taps/schemas/github/v1/json/pull_requests.json
@@ -0,0 +1,203 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "string"
+ ]
+ },
+ "base": {
+ "properties": {
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ref": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repo": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "closed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "labels": {
+ "items": {
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "merged_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v1/json/releases.json b/_data/taps/schemas/github/v1/json/releases.json
new file mode 100644
index 000000000..748cc2ab0
--- /dev/null
+++ b/_data/taps/schemas/github/v1/json/releases.json
@@ -0,0 +1,101 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "string"
+ ]
+ },
+ "author": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "draft": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prerelease": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "published_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "tag_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "target_commitish": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v1/json/review_comments.json b/_data/taps/schemas/github/v1/json/review_comments.json
new file mode 100644
index 000000000..7c46d80cc
--- /dev/null
+++ b/_data/taps/schemas/github/v1/json/review_comments.json
@@ -0,0 +1,239 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "string"
+ ]
+ },
+ "assignee": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assignees": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "author_association": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "base": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "comments_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "commit_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "commits_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "diff_hunk": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "diff_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "head": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "in_reply_to_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "issue_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "labels": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locked": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "merge_commit_sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "milestone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_commit_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "patch_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pull_request_review_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pull_request_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "requested_reviewers": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "requested_teams": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "review_comment_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "review_comments_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statuses_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v1/json/reviews.json b/_data/taps/schemas/github/v1/json/reviews.json
new file mode 100644
index 000000000..f220ef401
--- /dev/null
+++ b/_data/taps/schemas/github/v1/json/reviews.json
@@ -0,0 +1,77 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "string"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "commit_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pull_request_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "submitted_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v1/json/stargazers.json b/_data/taps/schemas/github/v1/json/stargazers.json
new file mode 100644
index 000000000..12ce034d8
--- /dev/null
+++ b/_data/taps/schemas/github/v1/json/stargazers.json
@@ -0,0 +1,41 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "string"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v1/json/team_members.json b/_data/taps/schemas/github/v1/json/team_members.json
new file mode 100644
index 000000000..68f711a88
--- /dev/null
+++ b/_data/taps/schemas/github/v1/json/team_members.json
@@ -0,0 +1,128 @@
+{
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "team_slug": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v1/json/team_memberships.json b/_data/taps/schemas/github/v1/json/team_memberships.json
new file mode 100644
index 000000000..7124dd6a7
--- /dev/null
+++ b/_data/taps/schemas/github/v1/json/team_memberships.json
@@ -0,0 +1,32 @@
+{
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v1/json/teams.json b/_data/taps/schemas/github/v1/json/teams.json
new file mode 100644
index 000000000..e38e182f2
--- /dev/null
+++ b/_data/taps/schemas/github/v1/json/teams.json
@@ -0,0 +1,87 @@
+{
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "members_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent": {
+ "type": [
+ "null",
+ "object",
+ "string"
+ ]
+ },
+ "permission": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "privacy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repositories_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "slug": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v2/github-v2-foreign-keys.yml b/_data/taps/schemas/github/v2/github-v2-foreign-keys.yml
new file mode 100644
index 000000000..16471583a
--- /dev/null
+++ b/_data/taps/schemas/github/v2/github-v2-foreign-keys.yml
@@ -0,0 +1,312 @@
+tap: github
+version: '2'
+keys:
+ assignees_:
+ - table: assignees
+ keys:
+ - id
+ collaborators_:
+ - table: collaborators
+ keys:
+ - id
+ - table: pull_requests
+ keys:
+ - user.id
+ - table: reviews
+ keys:
+ - user.id
+ comments_comment_id:
+ - table: comments
+ keys:
+ - id
+ commits_commit_id:
+ - table: commits
+ keys:
+ - id
+ - table: issue_events
+ keys:
+ - commit_id
+ - table: reviews
+ keys:
+ - commit_id
+ - table: review_comments
+ keys:
+ - commit_id
+ - original_commit_id
+ commit_comments_:
+ - table: commit_comments
+ keys:
+ - id
+ issue_labels_:
+ - table: issue_labels
+ keys:
+ - id
+ issue_milestones_:
+ - table: issue_milestones
+ keys:
+ - id
+ issues_issue_id:
+ - table: issues
+ keys:
+ - id
+ - table: issue_events
+ keys:
+ - id
+ - table: pull_requests
+ keys:
+ - id
+ labels_labels.id:
+ - table: issue_labels
+ keys:
+ - id
+ - table: issues
+ keys:
+ - labels.id
+ - table: pull_requests
+ keys:
+ - labels.id
+ milestones_:
+ - table: issue_events
+ keys:
+ - issue.milestone.id
+ projects_:
+ - table: projects
+ keys:
+ - id
+ pull_requests_pull_request_id:
+ - table: issues
+ keys:
+ - id
+ - table: pr_commits
+ keys:
+ - pr_id
+ - table: pull_requests
+ keys:
+ - id
+ review_comments_review_comment_id:
+ - table: review_comments
+ keys:
+ - id
+ - in_reply_to_id
+ reviews_review_id:
+ - table: reviews
+ keys:
+ - id
+ - table: review_comments
+ keys:
+ - pull_request_review_id
+ commits_sha:
+ - table: commits
+ keys:
+ - sha
+ - table: events
+ keys:
+ - payload.commits.sha
+ - table: pr_commits
+ keys:
+ - sha
+ releases_id:
+ - table: releases
+ keys:
+ - id
+ team_members_:
+ - table: team_members
+ keys:
+ - id
+ teams_:
+ - table: teams
+ keys:
+ - id
+tables:
+- table-name: collaborators
+ join:
+ - table-name: pull_requests
+ keys:
+ - key: id
+ foreign-key: user.id
+ - table-name: reviews
+ keys:
+ - key: id
+ foreign-key: user.id
+- table-name: pull_requests
+ join:
+ - table-name: collaborators
+ keys:
+ - key: user.id
+ foreign-key: id
+ - table-name: reviews
+ keys:
+ - key: user.id
+ foreign-key: user.id
+ - table-name: issues
+ keys:
+ - key: id
+ foreign-key: id
+ - key: labels.id
+ foreign-key: labels.id
+ - table-name: issue_events
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: issue_labels
+ keys:
+ - key: labels.id
+ foreign-key: id
+ - table-name: pr_commits
+ keys:
+ - key: id
+ foreign-key: pr_id
+- table-name: reviews
+ join:
+ - table-name: collaborators
+ keys:
+ - key: user.id
+ foreign-key: id
+ - table-name: pull_requests
+ keys:
+ - key: user.id
+ foreign-key: user.id
+ - table-name: commits
+ keys:
+ - key: commit_id
+ foreign-key: id
+ - table-name: issue_events
+ keys:
+ - key: commit_id
+ foreign-key: commit_id
+ - table-name: review_comments
+ keys:
+ - key: commit_id
+ foreign-key: commit_id
+ - key: commit_id
+ foreign-key: original_commit_id
+ - key: id
+ foreign-key: pull_request_review_id
+- table-name: commits
+ join:
+ - table-name: issue_events
+ keys:
+ - key: id
+ foreign-key: commit_id
+ - table-name: reviews
+ keys:
+ - key: id
+ foreign-key: commit_id
+ - table-name: review_comments
+ keys:
+ - key: id
+ foreign-key: commit_id
+ - key: id
+ foreign-key: original_commit_id
+ - table-name: events
+ keys:
+ - key: sha
+ foreign-key: payload.commits.sha
+ - table-name: pr_commits
+ keys:
+ - key: sha
+ foreign-key: sha
+- table-name: issue_events
+ join:
+ - table-name: commits
+ keys:
+ - key: commit_id
+ foreign-key: id
+ - table-name: reviews
+ keys:
+ - key: commit_id
+ foreign-key: commit_id
+ - table-name: review_comments
+ keys:
+ - key: commit_id
+ foreign-key: commit_id
+ - key: commit_id
+ foreign-key: original_commit_id
+ - table-name: issues
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: pull_requests
+ keys:
+ - key: id
+ foreign-key: id
+- table-name: review_comments
+ join:
+ - table-name: commits
+ keys:
+ - key: commit_id
+ foreign-key: id
+ - key: original_commit_id
+ foreign-key: id
+ - table-name: issue_events
+ keys:
+ - key: commit_id
+ foreign-key: commit_id
+ - key: original_commit_id
+ foreign-key: commit_id
+ - table-name: reviews
+ keys:
+ - key: commit_id
+ foreign-key: commit_id
+ - key: original_commit_id
+ foreign-key: commit_id
+ - key: pull_request_review_id
+ foreign-key: id
+- table-name: issue_labels
+ join:
+ - table-name: issues
+ keys:
+ - key: id
+ foreign-key: labels.id
+ - table-name: pull_requests
+ keys:
+ - key: id
+ foreign-key: labels.id
+- table-name: issues
+ join:
+ - table-name: issue_events
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: pull_requests
+ keys:
+ - key: id
+ foreign-key: id
+ - key: labels.id
+ foreign-key: labels.id
+ - table-name: issue_labels
+ keys:
+ - key: labels.id
+ foreign-key: id
+ - table-name: pr_commits
+ keys:
+ - key: id
+ foreign-key: pr_id
+- table-name: pr_commits
+ join:
+ - table-name: issues
+ keys:
+ - key: pr_id
+ foreign-key: id
+ - table-name: pull_requests
+ keys:
+ - key: pr_id
+ foreign-key: id
+ - table-name: commits
+ keys:
+ - key: sha
+ foreign-key: sha
+ - table-name: events
+ keys:
+ - key: sha
+ foreign-key: payload.commits.sha
+- table-name: events
+ join:
+ - table-name: commits
+ keys:
+ - key: payload.commits.sha
+ foreign-key: sha
+ - table-name: pr_commits
+ keys:
+ - key: payload.commits.sha
+ foreign-key: sha
diff --git a/_data/taps/schemas/github/v2/github-v2-tables.yml b/_data/taps/schemas/github/v2/github-v2-tables.yml
new file mode 100644
index 000000000..e317f0c8c
--- /dev/null
+++ b/_data/taps/schemas/github/v2/github-v2-tables.yml
@@ -0,0 +1,271 @@
+tap: github
+version: '2'
+tables:
+- name: assignees
+ description: 'The `{{ table.name }}` table contains info about the available assignees
+ for issues in the repositories specified for the integration.
+
+ '
+ links:
+ doc-link: https://developer.github.com/v3/issues/assignees/
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/assignees.json
+ api-method: https://docs.github.com/en/rest/reference/issues#list-assignees
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: collaborators
+ description: 'The `{{ table.name }}` table contains info about the users who contribute
+ to the repositories specified for the integration.
+
+
+ For organization-owned repositories, this will include outside collaborators,
+ organization owners, organization members that are direct collaborators, who have
+ access through team memberships, or have access through default organization permissions.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/collaborators.json
+ api-method: https://docs.github.com/en/rest/reference/repos#list-repository-collaborators
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: comments
+ description: 'The `{{ table.name }}` table contains info about comments made on
+ issues in the repositories specified for the integration.
+
+ '
+ links:
+ doc-link: https://developer.github.com/v3/comments/
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/comments.json
+ api-method: https://docs.github.com/en/rest/reference/issues#list-issue-comments-for-a-repository
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: commits
+ description: 'The `{{ table.name }}` table contains info about repository commits
+ in a project.
+
+ '
+ links:
+ doc-link: null
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/commits.json
+ api-method: https://docs.github.com/en/rest/reference/repos#list-commits
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: sha
+- name: commit_comments
+ description: 'The `{{ table.name }}` table contains info about the commit comments
+ in the repositories specified for the integration.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/commit_comments.json
+ api-method: https://docs.github.com/en/rest/reference/repos#list-commit-comments-for-a-repository
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: events
+ description: 'The `{{ table.name }}` table contains information about events in
+ the repositories specified for the integration.
+
+ '
+ links:
+ doc-link: https://developer.github.com/v3/activity/events/
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/events.json
+ api-method: https://docs.github.com/en/rest/activity/events#list-repository-events
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: issues
+ description: 'The `{{ table.name }}` table contains info about issues in the repositories
+ specified for the integration.
+
+
+ #### Issues and pull requests
+
+
+ GitHub''s API considers every pull request an issue, but not every issue may be
+ a pull request. Therefore, this table may contain both issues and pull requests.
+
+ '
+ links:
+ doc-link: https://developer.github.com/v3/issues/
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/issues.json
+ api-method: https://docs.github.com/en/rest/reference/issues#list-repository-issues
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: issue_events
+ description: 'The `{{ table.name }}` table contains info about issue events in the
+ repositories specified for the integration.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/issue_events.json
+ api-method: https://docs.github.com/en/rest/reference/issues#list-issue-events-for-a-repository
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: issue_labels
+ description: 'The `{{ table.name }}` table contains info about issue labels in the
+ repositories specified for the integration.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/issue_labels.json
+ api-method: https://docs.github.com/en/rest/reference/issues#list-labels-for-a-repository
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: issue_milestones
+ description: 'The `{{ table.name }}` table contains info about issue milestones
+ in the repositories specified for the integration.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/issue_milestones.json
+ api-method: https://docs.github.com/en/rest/reference/issues#list-milestones
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: projects
+ description: "The `{{ table.name }}` table contains info about projects in the repositories\
+ \ specified for the integration. \n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/projects.json
+ api-method: https://docs.github.com/en/rest/reference/projects#list-repository-projects
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: project_cards
+ description: 'The `{{ table.name }}` table contains information about project cards
+ in the repositories specified for the integration.
+
+ '
+ links:
+ doc-link: https://docs.github.com/en/rest/reference/projects#cards
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/project_cards.json
+ api-method: https://docs.github.com/en/rest/reference/projects#list-project-cards
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: project_columns
+ description: 'The `{{ table.name }}` table contains info about the columns of projects
+ in the repositories specified for the integration.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/project_columns.json
+ api-method: https://docs.github.com/en/rest/reference/projects#list-project-columns
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: pr_commits
+ description: 'The `{{ table.name }}` table contains info about pull request commits
+ and is a slight variation of the [`commits`](#commits) table. This allows you
+ to associate commits to pull requests that are squash merged.
+
+ '
+ links:
+ singer-schema: ''
+ api-method: https://docs.github.com/en/rest/reference/pulls#list-commits-on-a-pull-request
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: pull_requests
+ description: 'The `{{ table.name }}` table contains info about pull requests made
+ against the repositories specified for the integration.
+
+ '
+ links:
+ doc-link: https://developer.github.com/v3/pulls/
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/pull_requests.json
+ api-method: https://docs.github.com/en/rest/reference/pulls#list-pull-requests
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: releases
+ description: 'The `{{ table.name }}` table contains info about releases in the repositories
+ specified for the integration.
+
+
+ **Note**: {{ integration.display_name }} doesn''t include regular Git tags that
+ haven''t been associated with a release.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/releases.json
+ api-method: https://docs.github.com/en/rest/reference/repos#list-releases
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: reviews
+ description: 'The `{{ table.name }}` table contains info about pull request reviews
+ in the repositories specified for the integration. A pull request review is a
+ group of comments on a pull request.
+
+ '
+ links:
+ doc-link: https://developer.github.com/v3/pulls/reviews/
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/reviews.json
+ api-method: https://docs.github.com/en/rest/reference/pulls#list-reviews-for-a-pull-request
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: review_comments
+ description: 'The `{{ table.name }}` table contains info about comments made on
+ pull request reviews in the repositories specified for the integration.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/review_comments.json
+ api-method: https://docs.github.com/en/rest/reference/pulls#list-review-comments-on-a-pull-request
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: stargazers
+ description: 'The `{{ table.name }}` table contains info about users who have starred
+ the repositories specified for the integration.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/stargazers.json
+ api-method: https://docs.github.com/en/rest/reference/activity#list-stargazers
+ table-details:
+ replication-method: Full Table
+ primary-key: user_id
+- name: teams
+ description: 'The `{{ table.name }}` table contains info about the teams in an organization.
+ Only teams that are visible to the user who authorized the integration in Stitch
+ will be replicated.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/teams.json
+ api-method: https://docs.github.com/en/rest/reference/teams#list-teams
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: team_members
+ description: 'The `{{ table.name }}` table contains info about members of organization
+ teams that are visible to the user who authorized the integration.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/team_members.json
+ api-method: https://docs.github.com/en/rest/reference/teams#list-team-members
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: team_memberships
+ description: 'The `{{ table.name }}` table contains info about membership of users
+ in of organization teams that are visible to the user who authorized the integration.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/team_memberships.json
+ api-method: https://docs.github.com/en/rest/reference/teams#get-team-membership-for-a-user
+ table-details:
+ replication-method: Full Table
+ primary-key: url
diff --git a/_data/taps/schemas/github/v2/json/assignees.json b/_data/taps/schemas/github/v2/json/assignees.json
new file mode 100644
index 000000000..b5676d71d
--- /dev/null
+++ b/_data/taps/schemas/github/v2/json/assignees.json
@@ -0,0 +1,140 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "string"
+ ]
+ },
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v2/json/collaborators.json b/_data/taps/schemas/github/v2/json/collaborators.json
new file mode 100644
index 000000000..67e6410fd
--- /dev/null
+++ b/_data/taps/schemas/github/v2/json/collaborators.json
@@ -0,0 +1,177 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "string"
+ ]
+ },
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "permissions": {
+ "properties": {
+ "admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "maintain": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "pull": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "push": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "triage": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v2/json/comments.json b/_data/taps/schemas/github/v2/json/comments.json
new file mode 100644
index 000000000..597c12b00
--- /dev/null
+++ b/_data/taps/schemas/github/v2/json/comments.json
@@ -0,0 +1,559 @@
+{
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "string"
+ ]
+ },
+ "author_association": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body_html": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "home_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "issue_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "performed_via_github_app": {
+ "properties": {
+ "client_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "client_secret": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "external_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "installations_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "pem": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "permissions": {
+ "properties": {
+ "checks": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contents": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deployments": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issues": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "slug": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "webhook_secret": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "reactions": {
+ "properties": {
+ "+1": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "-1": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "confused": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "eyes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "heart": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "hooray": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "laugh": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "rocket": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v2/json/commit_comments.json b/_data/taps/schemas/github/v2/json/commit_comments.json
new file mode 100644
index 000000000..d9b8cbff1
--- /dev/null
+++ b/_data/taps/schemas/github/v2/json/commit_comments.json
@@ -0,0 +1,281 @@
+{
+ "properties": {
+ "author_association": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "commit_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "line": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "reactions": {
+ "properties": {
+ "+1": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "-1": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "confused": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "eyes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "heart": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "hooray": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "laugh": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "rocket": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v2/json/commits.json b/_data/taps/schemas/github/v2/json/commits.json
new file mode 100644
index 000000000..5f0cb7db3
--- /dev/null
+++ b/_data/taps/schemas/github/v2/json/commits.json
@@ -0,0 +1,695 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "string"
+ ]
+ },
+ "author": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "comments_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "commit": {
+ "additionalProperties": false,
+ "properties": {
+ "author": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "comment_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "committer": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tree": {
+ "additionalProperties": false,
+ "properties": {
+ "sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "committer": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parents": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "pr_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pr_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v2/json/events.json b/_data/taps/schemas/github/v2/json/events.json
new file mode 100644
index 000000000..acfd16097
--- /dev/null
+++ b/_data/taps/schemas/github/v2/json/events.json
@@ -0,0 +1,3780 @@
+{
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "actor": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "distinct_size": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "head": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "org": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "payload": {
+ "properties": {
+ "action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "before": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "comment": {
+ "properties": {
+ "author_association": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body_html": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "issue_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "performed_via_github_app": {
+ "properties": {
+ "client_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "client_secret": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "external_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "installations_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "pem": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "permissions": {
+ "properties": {
+ "checks": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contents": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deployments": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issues": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "slug": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "webhook_secret": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "reactions": {
+ "properties": {
+ "+1": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "-1": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "confused": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "eyes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "heart": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "hooray": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "laugh": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "rocket": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object",
+ "string"
+ ]
+ },
+ "commits": {
+ "items": {
+ "properties": {
+ "author": {
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "distinct": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issue": {
+ "properties": {
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "comments_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "labels": {
+ "properties": {
+ "active_lock_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assignee": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "assignees": {
+ "items": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "author_association": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body_html": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "closed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "closed_by": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "comments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "draft": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "items": {
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "locked": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "milestone": {
+ "properties": {
+ "closed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "closed_issues": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creator": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "due_on": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "labels_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "open_issues": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "performed_via_github_app": {
+ "properties": {
+ "client_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "client_secret": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "external_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "installations_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "pem": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "permissions": {
+ "properties": {
+ "checks": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contents": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deployments": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issues": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "slug": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "webhook_secret": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "pull_request": {
+ "properties": {
+ "diff_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "merged_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "patch_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "reactions": {
+ "properties": {
+ "+1": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "-1": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "confused": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "eyes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "heart": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "hooray": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "laugh": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "rocket": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "repository": {
+ "properties": {
+ "allow_auto_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_forking": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_merge_commit": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_rebase_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_squash_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_update_branch": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "archive_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "assignees_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "blobs_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "branches_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "clone_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "collaborators_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "comments_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "commits_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "compare_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contents_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributors_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "default_branch": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delete_branch_on_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "deployments_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "disabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "downloads_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fork": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "forks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "forks_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "forks_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_commits_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_refs_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_tags_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_downloads": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_issues": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_pages": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_projects": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_wiki": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "homepage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hooks_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_template": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "issue_comment_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issue_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issues_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "keys_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "labels_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "languages_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "license": {
+ "properties": {
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "spdx_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "master_branch": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "merges_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "milestones_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mirror_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "network_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notifications_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "open_issues": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "open_issues_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "organization": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "owner": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "permissions": {
+ "properties": {
+ "admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "maintain": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "pull": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "push": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "triage": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "private": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "pulls_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pushed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "releases_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ssh_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stargazers_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "stargazers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statuses_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscribers_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscribers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "svn_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "teams_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "temp_clone_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "template_repository": {
+ "properties": {
+ "allow_auto_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_merge_commit": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_rebase_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_squash_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_update_branch": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "archive_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "assignees_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "blobs_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "branches_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "clone_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "collaborators_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "comments_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "commits_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "compare_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contents_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributors_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_branch": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delete_branch_on_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "deployments_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "disabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "downloads_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fork": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "forks_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "forks_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_commits_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_refs_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_tags_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_downloads": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_issues": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_pages": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_projects": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_wiki": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "homepage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hooks_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_template": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "issue_comment_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issue_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issues_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "keys_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "labels_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "languages_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "merges_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "milestones_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mirror_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "network_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notifications_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "open_issues_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "owner": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "permissions": {
+ "properties": {
+ "admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "maintain": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "pull": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "push": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "triage": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "private": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "pulls_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pushed_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "releases_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ssh_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stargazers_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "stargazers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statuses_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscribers_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscribers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "svn_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "teams_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "temp_clone_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "topics": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "trees_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "use_squash_pr_title_as_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "visibility": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "watchers_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "topics": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "trees_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "use_squash_pr_title_as_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "visibility": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "watchers": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "watchers_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "timeline_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ],
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "labels_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "repository_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object",
+ "string"
+ ]
+ },
+ "master_branch": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pages": {
+ "items": {
+ "properties": {
+ "action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "page_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "summary": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "pusher_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ref": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ref_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "public": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "push_id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ref": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repo": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v2/json/issue_events.json b/_data/taps/schemas/github/v2/json/issue_events.json
new file mode 100644
index 000000000..61f81aa62
--- /dev/null
+++ b/_data/taps/schemas/github/v2/json/issue_events.json
@@ -0,0 +1,4206 @@
+{
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "actor": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "assignee": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "assigner": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "author_association": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "commit_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "commit_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "dismissed_review": {
+ "properties": {
+ "dismissal_commit_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dismissal_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "review_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "draft": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "event": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "issue": {
+ "properties": {
+ "active_lock_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assignee": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "assignees": {
+ "items": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "author_association": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "closed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "closed_by": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "comments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "comments_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "labels": {
+ "items": {
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "labels_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locked": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "milestone": {
+ "properties": {
+ "closed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "closed_issues": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creator": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "due_on": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "labels_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "open_issues": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "performed_via_github_app": {
+ "properties": {
+ "client_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "client_secret": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "external_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "installations_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "pem": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "permissions": {
+ "properties": {
+ "checks": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contents": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deployments": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issues": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "slug": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "webhook_secret": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "pull_request": {
+ "properties": {
+ "diff_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "merged_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "patch_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "reactions": {
+ "properties": {
+ "+1": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "-1": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "confused": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "eyes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "heart": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "hooray": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "laugh": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "rocket": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "repository": {
+ "properties": {
+ "allow_auto_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_forking": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_merge_commit": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_rebase_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_squash_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_update_branch": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "archive_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "assignees_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "blobs_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "branches_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "clone_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "collaborators_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "comments_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "commits_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "compare_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contents_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributors_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "default_branch": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delete_branch_on_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "deployments_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "disabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "downloads_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fork": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "forks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "forks_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "forks_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_commits_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_refs_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_tags_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_downloads": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_issues": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_pages": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_projects": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_wiki": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "homepage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hooks_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_template": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "issue_comment_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issue_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issues_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "keys_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "labels_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "languages_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "license": {
+ "properties": {
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "spdx_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "master_branch": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "merges_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "milestones_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mirror_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "network_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notifications_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "open_issues": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "open_issues_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "organization": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "owner": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "permissions": {
+ "properties": {
+ "admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "maintain": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "pull": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "push": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "triage": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "private": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "pulls_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pushed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "releases_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ssh_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stargazers_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "stargazers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statuses_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscribers_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscribers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "svn_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "teams_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "temp_clone_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "template_repository": {
+ "properties": {
+ "allow_auto_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_merge_commit": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_rebase_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_squash_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_update_branch": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "archive_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "assignees_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "blobs_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "branches_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "clone_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "collaborators_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "comments_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "commits_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "compare_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contents_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributors_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_branch": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delete_branch_on_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "deployments_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "disabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "downloads_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fork": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "forks_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "forks_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_commits_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_refs_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_tags_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_downloads": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_issues": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_pages": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_projects": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_wiki": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "homepage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hooks_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_template": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "issue_comment_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issue_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issues_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "keys_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "labels_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "languages_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "merges_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "milestones_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mirror_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "network_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notifications_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "open_issues_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "owner": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "permissions": {
+ "properties": {
+ "admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "maintain": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "pull": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "push": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "triage": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "private": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "pulls_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pushed_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "releases_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ssh_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stargazers_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "stargazers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statuses_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscribers_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscribers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "svn_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "teams_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "temp_clone_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "topics": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "trees_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "use_squash_pr_title_as_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "visibility": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "watchers_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "topics": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "trees_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "use_squash_pr_title_as_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "visibility": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "watchers": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "watchers_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "repository_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "label": {
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "lock_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "milestone": {
+ "properties": {
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "performed_via_github_app": {
+ "properties": {
+ "client_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "client_secret": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "external_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "installations_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "pem": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "permissions": {
+ "properties": {
+ "checks": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contents": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deployments": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issues": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "slug": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "webhook_secret": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "project_card": {
+ "properties": {
+ "column_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "previous_column_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "project_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "rename": {
+ "properties": {
+ "from": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "requested_reviewer": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "requested_team": {
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "members_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent": {
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ldap_dn": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "members_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "permission": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "privacy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repositories_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "slug": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "permission": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "permissions": {
+ "properties": {
+ "admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "maintain": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "pull": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "push": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "triage": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "privacy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repositories_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "slug": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "review_requester": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v2/json/issue_labels.json b/_data/taps/schemas/github/v2/json/issue_labels.json
new file mode 100644
index 000000000..d6f2097ad
--- /dev/null
+++ b/_data/taps/schemas/github/v2/json/issue_labels.json
@@ -0,0 +1,56 @@
+{
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v2/json/issue_milestones.json b/_data/taps/schemas/github/v2/json/issue_milestones.json
new file mode 100644
index 000000000..93942ba32
--- /dev/null
+++ b/_data/taps/schemas/github/v2/json/issue_milestones.json
@@ -0,0 +1,238 @@
+{
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "closed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "closed_issues": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creator": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "due_on": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "labels_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "open_issues": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v2/json/issues.json b/_data/taps/schemas/github/v2/json/issues.json
new file mode 100644
index 000000000..10b46953f
--- /dev/null
+++ b/_data/taps/schemas/github/v2/json/issues.json
@@ -0,0 +1,1356 @@
+{
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "string"
+ ]
+ },
+ "active_lock_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assignee": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "assignees": {
+ "items": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "author_association": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body_html": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "closed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "closed_by": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "comments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "comments_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "draft": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "labels": {
+ "items": {
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "labels_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locked": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "milestone": {
+ "properties": {
+ "closed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "closed_issues": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creator": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "due_on": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "labels_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "open_issues": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "performed_via_github_app": {
+ "properties": {
+ "client_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "client_secret": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "external_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "installations_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "pem": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "permissions": {
+ "properties": {
+ "checks": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contents": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deployments": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issues": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "slug": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "webhook_secret": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "pull_request": {
+ "properties": {
+ "diff_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "merged_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "patch_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "reactions": {
+ "properties": {
+ "+1": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "-1": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "confused": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "eyes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "heart": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "hooray": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "laugh": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "rocket": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "repository_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeline_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v2/json/pr_commits.json b/_data/taps/schemas/github/v2/json/pr_commits.json
new file mode 100644
index 000000000..276063e7a
--- /dev/null
+++ b/_data/taps/schemas/github/v2/json/pr_commits.json
@@ -0,0 +1,633 @@
+{
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "string"
+ ]
+ },
+ "author": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "comments_url": {
+ "description": "The URL to the commit's comments page",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "commit": {
+ "additionalProperties": false,
+ "properties": {
+ "author": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "comment_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "committer": {
+ "properties": {
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "message": {
+ "description": "The commit message",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tree": {
+ "additionalProperties": false,
+ "properties": {
+ "sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "url": {
+ "description": "The URL to the commit",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verification": {
+ "properties": {
+ "payload": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "signature": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "committer": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "html_url": {
+ "description": "The HTML URL to the commit",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parents": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "html_url": {
+ "description": "The HTML URL to the parent commit",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sha": {
+ "description": "The git hash of the parent commit",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "description": "The URL to the parent commit",
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "pr_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pr_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sha": {
+ "description": "The git commit hash",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v2/json/project_cards.json b/_data/taps/schemas/github/v2/json/project_cards.json
new file mode 100644
index 000000000..942fce08b
--- /dev/null
+++ b/_data/taps/schemas/github/v2/json/project_cards.json
@@ -0,0 +1,232 @@
+{
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "cards_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "column_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "column_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creator": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "project_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v2/json/project_columns.json b/_data/taps/schemas/github/v2/json/project_columns.json
new file mode 100644
index 000000000..2b7135ae3
--- /dev/null
+++ b/_data/taps/schemas/github/v2/json/project_columns.json
@@ -0,0 +1,62 @@
+{
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cards_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "project_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v2/json/projects.json b/_data/taps/schemas/github/v2/json/projects.json
new file mode 100644
index 000000000..4e6233296
--- /dev/null
+++ b/_data/taps/schemas/github/v2/json/projects.json
@@ -0,0 +1,226 @@
+{
+ "properties": {
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "columns_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creator": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "organization_permission": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "private": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v2/json/pull_requests.json b/_data/taps/schemas/github/v2/json/pull_requests.json
new file mode 100644
index 000000000..151e68828
--- /dev/null
+++ b/_data/taps/schemas/github/v2/json/pull_requests.json
@@ -0,0 +1,4886 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "_links": {
+ "properties": {
+ "comments": {
+ "properties": {
+ "href": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "commits": {
+ "properties": {
+ "href": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "html": {
+ "properties": {
+ "href": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "issue": {
+ "properties": {
+ "href": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "review_comment": {
+ "properties": {
+ "href": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "review_comments": {
+ "properties": {
+ "href": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "self": {
+ "properties": {
+ "href": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statuses": {
+ "properties": {
+ "href": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "_sdc_repository": {
+ "type": [
+ "string"
+ ]
+ },
+ "active_lock_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assignee": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "assignees": {
+ "items": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "author_association": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "auto_merge": {
+ "properties": {
+ "commit_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "commit_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled_by": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "merge_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "base": {
+ "properties": {
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ref": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repo": {
+ "properties": {
+ "allow_auto_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_forking": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_merge_commit": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_rebase_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_squash_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_update_branch": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "archive_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "assignees_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "blobs_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "branches_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "clone_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "collaborators_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "comments_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "commits_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "compare_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contents_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributors_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "default_branch": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delete_branch_on_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "deployments_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "disabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "downloads_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fork": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "forks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "forks_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "forks_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_commits_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_refs_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_tags_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_downloads": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_issues": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_pages": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_projects": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_wiki": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "homepage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hooks_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_template": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "issue_comment_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issue_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issues_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "keys_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "labels_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "languages_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "license": {
+ "properties": {
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "spdx_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "master_branch": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "merges_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "milestones_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mirror_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "network_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notifications_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "open_issues": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "open_issues_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "organization": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "owner": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "permissions": {
+ "properties": {
+ "admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "maintain": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "pull": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "push": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "triage": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "private": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "pulls_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pushed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "releases_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ssh_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stargazers_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "stargazers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statuses_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscribers_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscribers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "svn_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "teams_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "temp_clone_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "template_repository": {
+ "properties": {
+ "allow_auto_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_merge_commit": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_rebase_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_squash_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_update_branch": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "archive_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "assignees_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "blobs_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "branches_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "clone_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "collaborators_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "comments_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "commits_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "compare_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contents_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributors_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_branch": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delete_branch_on_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "deployments_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "disabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "downloads_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fork": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "forks_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "forks_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_commits_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_refs_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_tags_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_downloads": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_issues": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_pages": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_projects": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_wiki": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "homepage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hooks_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_template": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "issue_comment_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issue_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issues_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "keys_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "labels_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "languages_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "merges_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "milestones_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mirror_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "network_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notifications_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "open_issues_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "owner": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "permissions": {
+ "properties": {
+ "admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "maintain": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "pull": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "push": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "triage": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "private": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "pulls_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pushed_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "releases_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ssh_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stargazers_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "stargazers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statuses_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscribers_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscribers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "svn_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "teams_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "temp_clone_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "topics": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "trees_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "use_squash_pr_title_as_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "visibility": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "watchers_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "topics": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "trees_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "use_squash_pr_title_as_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "visibility": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "watchers": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "watchers_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "closed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "comments_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "commits_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "diff_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "draft": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "head": {
+ "properties": {
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ref": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repo": {
+ "properties": {
+ "allow_auto_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_forking": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_merge_commit": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_rebase_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_squash_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_update_branch": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "archive_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "assignees_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "blobs_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "branches_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "clone_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "collaborators_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "comments_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "commits_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "compare_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contents_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributors_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "default_branch": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delete_branch_on_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "deployments_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "disabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "downloads_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fork": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "forks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "forks_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "forks_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_commits_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_refs_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_tags_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_downloads": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_issues": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_pages": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_projects": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_wiki": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "homepage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hooks_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_template": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "issue_comment_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issue_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issues_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "keys_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "labels_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "languages_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "license": {
+ "properties": {
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "spdx_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "master_branch": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "merges_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "milestones_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mirror_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "network_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notifications_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "open_issues": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "open_issues_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "organization": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "owner": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "permissions": {
+ "properties": {
+ "admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "maintain": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "pull": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "push": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "triage": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "private": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "pulls_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pushed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "releases_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ssh_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stargazers_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "stargazers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statuses_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscribers_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscribers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "svn_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "teams_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "temp_clone_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "template_repository": {
+ "properties": {
+ "allow_auto_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_merge_commit": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_rebase_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_squash_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_update_branch": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "archive_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "assignees_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "blobs_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "branches_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "clone_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "collaborators_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "comments_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "commits_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "compare_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contents_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contributors_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_branch": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delete_branch_on_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "deployments_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "disabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "downloads_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fork": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "forks_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "forks_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_commits_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_refs_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_tags_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_downloads": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_issues": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_pages": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_projects": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_wiki": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "homepage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hooks_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_template": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "issue_comment_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issue_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issues_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "keys_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "labels_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "languages_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "merges_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "milestones_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mirror_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "network_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notifications_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "open_issues_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "owner": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "permissions": {
+ "properties": {
+ "admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "maintain": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "pull": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "push": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "triage": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "private": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "pulls_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pushed_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "releases_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ssh_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stargazers_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "stargazers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statuses_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscribers_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscribers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "svn_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "teams_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "temp_clone_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "topics": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "trees_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "use_squash_pr_title_as_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "visibility": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "watchers_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "topics": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "trees_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "use_squash_pr_title_as_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "visibility": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "watchers": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "watchers_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issues_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "labels": {
+ "items": {
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "locked": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "merge_commit_sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "merged_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "milestone": {
+ "properties": {
+ "closed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "closed_issues": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creator": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "due_on": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "labels_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "open_issues": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "patch_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "requested_reviewers": {
+ "items": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "requested_teams": {
+ "items": {
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "members_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent": {
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ldap_dn": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "members_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "permission": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "privacy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repositories_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "slug": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "permission": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "permissions": {
+ "properties": {
+ "admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "maintain": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "pull": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "push": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "triage": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "privacy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repositories_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "slug": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "review_comments_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statuses_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v2/json/releases.json b/_data/taps/schemas/github/v2/json/releases.json
new file mode 100644
index 000000000..f40064187
--- /dev/null
+++ b/_data/taps/schemas/github/v2/json/releases.json
@@ -0,0 +1,554 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "string"
+ ]
+ },
+ "assets": {
+ "items": {
+ "properties": {
+ "browser_download_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "download_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "uploader": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "assets_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "author": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body_html": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "discussion_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "draft": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mentions_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prerelease": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "published_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "reactions": {
+ "properties": {
+ "+1": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "-1": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "confused": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "eyes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "heart": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "hooray": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "laugh": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "rocket": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "tag_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tarball_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "target_commitish": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "upload_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zipball_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v2/json/review_comments.json b/_data/taps/schemas/github/v2/json/review_comments.json
new file mode 100644
index 000000000..ac5e056e8
--- /dev/null
+++ b/_data/taps/schemas/github/v2/json/review_comments.json
@@ -0,0 +1,528 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "_links": {
+ "properties": {
+ "html": {
+ "properties": {
+ "href": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "pull_request": {
+ "properties": {
+ "href": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "self": {
+ "properties": {
+ "href": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "_sdc_repository": {
+ "type": [
+ "string"
+ ]
+ },
+ "assignee": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assignees": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "author_association": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "base": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body_html": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "comments_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "commit_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "commits_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "diff_hunk": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "diff_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "head": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "in_reply_to_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "issue_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "labels": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "locked": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "merge_commit_sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "milestone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_commit_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_line": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "original_position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "original_start_line": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "patch_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pr_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pull_request_review_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pull_request_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reactions": {
+ "properties": {
+ "+1": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "-1": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "confused": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "eyes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "heart": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "hooray": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "laugh": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "rocket": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "requested_reviewers": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "requested_teams": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "review_comment_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "review_comments_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "side": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_line": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "start_side": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statuses_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v2/json/reviews.json b/_data/taps/schemas/github/v2/json/reviews.json
new file mode 100644
index 000000000..ca33dd59e
--- /dev/null
+++ b/_data/taps/schemas/github/v2/json/reviews.json
@@ -0,0 +1,255 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "_links": {
+ "properties": {
+ "html": {
+ "properties": {
+ "href": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "pull_request": {
+ "properties": {
+ "href": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "_sdc_repository": {
+ "type": [
+ "string"
+ ]
+ },
+ "author_association": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body_html": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "commit_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pr_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pull_request_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "submitted_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v2/json/stargazers.json b/_data/taps/schemas/github/v2/json/stargazers.json
new file mode 100644
index 000000000..c3e8e66f5
--- /dev/null
+++ b/_data/taps/schemas/github/v2/json/stargazers.json
@@ -0,0 +1,159 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "string"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user": {
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v2/json/team_members.json b/_data/taps/schemas/github/v2/json/team_members.json
new file mode 100644
index 000000000..aecdec1e7
--- /dev/null
+++ b/_data/taps/schemas/github/v2/json/team_members.json
@@ -0,0 +1,146 @@
+{
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "following_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gists_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gravatar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organizations_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "received_events_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repos_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starred_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "team_slug": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v2/json/team_memberships.json b/_data/taps/schemas/github/v2/json/team_memberships.json
new file mode 100644
index 000000000..8cf84f046
--- /dev/null
+++ b/_data/taps/schemas/github/v2/json/team_memberships.json
@@ -0,0 +1,38 @@
+{
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/github/v2/json/teams.json b/_data/taps/schemas/github/v2/json/teams.json
new file mode 100644
index 000000000..f3a6ca47a
--- /dev/null
+++ b/_data/taps/schemas/github/v2/json/teams.json
@@ -0,0 +1,124 @@
+{
+ "properties": {
+ "_sdc_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "members_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "node_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent": {
+ "type": [
+ "null",
+ "object",
+ "string"
+ ]
+ },
+ "permission": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "permissions": {
+ "properties": {
+ "admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "maintain": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "pull": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "push": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "triage": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "privacy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repositories_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "slug": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/gitlab/v1/gitlab-v1-foreign-keys.yml b/_data/taps/schemas/gitlab/v1/gitlab-v1-foreign-keys.yml
new file mode 100644
index 000000000..0823e8b72
--- /dev/null
+++ b/_data/taps/schemas/gitlab/v1/gitlab-v1-foreign-keys.yml
@@ -0,0 +1,153 @@
+tap: gitlab
+version: '1'
+keys:
+ projects_project_id:
+ - table: branches
+ keys:
+ - project_id
+ - table: commits
+ keys:
+ - project_id
+ - table: issues
+ keys:
+ - project_id
+ - table: milestones
+ keys:
+ - project_id
+ - table: projects
+ keys:
+ - project_id
+ commits_commit_id:
+ - table: commits
+ keys:
+ - id
+ - table: branches
+ keys:
+ - commit_id
+ issues_issue_id:
+ - table: issues
+ keys:
+ - id
+ milestones_milestone_id:
+ - table: issues
+ keys:
+ - milestone_id
+ - table: milestones
+ keys:
+ - id
+ users_user_id:
+ - table: projects
+ keys:
+ - creator_id
+ - table: users
+ keys:
+ - id
+tables:
+- table-name: branches
+ join:
+ - table-name: commits
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - key: commit_id
+ foreign-key: id
+ - table-name: issues
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: milestones
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: projects
+ keys:
+ - key: project_id
+ foreign-key: project_id
+- table-name: commits
+ join:
+ - table-name: branches
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - key: id
+ foreign-key: commit_id
+ - table-name: issues
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: milestones
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: projects
+ keys:
+ - key: project_id
+ foreign-key: project_id
+- table-name: issues
+ join:
+ - table-name: branches
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: commits
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: milestones
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - key: milestone_id
+ foreign-key: id
+ - table-name: projects
+ keys:
+ - key: project_id
+ foreign-key: project_id
+- table-name: milestones
+ join:
+ - table-name: branches
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: commits
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: issues
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - key: id
+ foreign-key: milestone_id
+ - table-name: projects
+ keys:
+ - key: project_id
+ foreign-key: project_id
+- table-name: projects
+ join:
+ - table-name: branches
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: commits
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: issues
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: milestones
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: users
+ keys:
+ - key: creator_id
+ foreign-key: id
+- table-name: users
+ join:
+ - table-name: projects
+ keys:
+ - key: id
+ foreign-key: creator_id
diff --git a/_data/taps/schemas/gitlab/v1/gitlab-v1-tables.yml b/_data/taps/schemas/gitlab/v1/gitlab-v1-tables.yml
new file mode 100644
index 000000000..38b2be10b
--- /dev/null
+++ b/_data/taps/schemas/gitlab/v1/gitlab-v1-tables.yml
@@ -0,0 +1,98 @@
+tap: gitlab
+version: '1'
+tables:
+- name: branches
+ description: 'The `{{ table.name }}` table contains high-level info about repository
+ branches in your projects.
+
+
+ **Note**: To replicate branch data, you must set this table and the [`projects`](#projects)
+ table to replicate. Data for this table will only be replicated when the associated
+ project (in the [`projects`](#projects) table) is also updated.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-gitlab/blob/master/tap_gitlab/schemas/branches.json
+ api-method: https://gitlab.com/help/api/branches.html#list-repository-branches
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - project_id
+ - name
+- name: commits
+ description: 'The `{{ table.name }}` table contains info about repository commits
+ in a project.
+
+
+ **Note**: To replicate commit data, you must set this table and the [`projects`](#projects)
+ table to replicate. Data for this table will only be replicated when the associated
+ project (in the [`projects`](#projects) table) is also updated.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-gitlab/blob/master/tap_gitlab/schemas/commits.json
+ api-method: https://gitlab.com/help/api/commits.md#list-repository-commits
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: issues
+ description: 'The `{{ table.name }}` table contains info about issues contained
+ within projects.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-gitlab/blob/master/tap_gitlab/schemas/issues.json
+ api-method: https://gitlab.com/help/api/issues.md#list-project-issues
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: milestones
+ description: 'The `{{ table.name }}` table contains info about project milestones.
+
+
+ **Note**: To replicate milestone data, you must set this table and the [`projects`](#projects)
+ table to replicate. Data for this table will only be replicated when the associated
+ project (in the [`projects`](#projects) table) is also updated.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-gitlab/blob/master/tap_gitlab/schemas/milestones.json
+ api-method: https://gitlab.com/help/api/milestones.md#list-project-milestones
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: projects
+ description: 'The `{{ table.name }}` table contains info about specific projects.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-gitlab/blob/master/tap_gitlab/schemas/projects.json
+ api-method: https://gitlab.com/help/api/projects.md#list-all-projects
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_activity_at
+- name: users
+ description: 'The `{{ table.name }}` table contains info about the users in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-gitlab/blob/master/tap_gitlab/schemas/users.json
+ api-method: https://gitlab.com/help/api/users.md#list-users
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: groups
+ description: 'The `{{ table.name }}` table contains info about the groups in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-gitlab/blob/master/tap_gitlab/schemas/users.json
+ api-method: https://docs.gitlab.com/ee/api/groups.html#list-groups
+ table-details:
+ replication-method: Full Table
+ primary-key: id
diff --git a/_data/taps/schemas/gitlab/v1/json/branches.json b/_data/taps/schemas/gitlab/v1/json/branches.json
new file mode 100644
index 000000000..5453030f7
--- /dev/null
+++ b/_data/taps/schemas/gitlab/v1/json/branches.json
@@ -0,0 +1,41 @@
+{
+ "properties": {
+ "commit_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "developers_can_merge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "developers_can_push": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "merged": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": "string"
+ },
+ "project_id": {
+ "type": "integer"
+ },
+ "protected": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/gitlab/v1/json/commits.json b/_data/taps/schemas/gitlab/v1/json/commits.json
new file mode 100644
index 000000000..8b66ed43c
--- /dev/null
+++ b/_data/taps/schemas/gitlab/v1/json/commits.json
@@ -0,0 +1,59 @@
+{
+ "properties": {
+ "allow_failure": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "author_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "author_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "committer_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "committer_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": "date-time"
+ },
+ "id": {
+ "type": "string"
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "project_id": {
+ "type": "integer"
+ },
+ "short_id": {
+ "type": "string"
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/gitlab/v1/json/groups.json b/_data/taps/schemas/gitlab/v1/json/groups.json
new file mode 100644
index 000000000..683a86562
--- /dev/null
+++ b/_data/taps/schemas/gitlab/v1/json/groups.json
@@ -0,0 +1,89 @@
+{
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "full_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lfs_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "projects": {
+ "anyOf": [
+ {
+ "items": {
+ "properties": {
+ "id": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "request_access_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "visibility_level": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "web_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/gitlab/v1/json/issues.json b/_data/taps/schemas/gitlab/v1/json/issues.json
new file mode 100644
index 000000000..63016abb5
--- /dev/null
+++ b/_data/taps/schemas/gitlab/v1/json/issues.json
@@ -0,0 +1,106 @@
+{
+ "properties": {
+ "assignee_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "author_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "confidential": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "anyOf": [
+ {
+ "type": "date-time"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "due_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": "integer"
+ },
+ "iid": {
+ "type": "integer"
+ },
+ "labels": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "milestone_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "project_id": {
+ "type": "integer"
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscribed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "anyOf": [
+ {
+ "type": "date-time"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "user_notes_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "web_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/gitlab/v1/json/milestones.json b/_data/taps/schemas/gitlab/v1/json/milestones.json
new file mode 100644
index 000000000..af15b6b6f
--- /dev/null
+++ b/_data/taps/schemas/gitlab/v1/json/milestones.json
@@ -0,0 +1,65 @@
+{
+ "properties": {
+ "created_at": {
+ "type": "date-time"
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "due_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "iid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": "date-time"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/gitlab/v1/json/projects.json b/_data/taps/schemas/gitlab/v1/json/projects.json
new file mode 100644
index 000000000..7950ce51e
--- /dev/null
+++ b/_data/taps/schemas/gitlab/v1/json/projects.json
@@ -0,0 +1,336 @@
+{
+ "properties": {
+ "approvals_before_merge": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "builds_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "container_registry_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "anyOf": [
+ {
+ "type": "date-time"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "creator_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "default_branch": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "forks_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "http_url_to_repo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "issues_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_activity_at": {
+ "anyOf": [
+ {
+ "type": "date-time"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "lfs_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "merge_requests_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name_with_namespace": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "namespace": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "kind": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "only_allow_merge_if_all_discussions_are_resolved": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "only_allow_merge_if_build_succeeds": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "open_issues_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "owner_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "path_with_namespace": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "permissions": {
+ "properties": {
+ "group_access": {
+ "anyOf": [
+ {
+ "properties": {
+ "access_level": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "notification_level": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "project_access": {
+ "anyOf": [
+ {
+ "properties": {
+ "access_level": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "notification_level": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "public": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "public_builds": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "request_access_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "shared_runners_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "shared_with_groups": {
+ "anyOf": [
+ {
+ "items": {
+ "properties": {
+ "group_access_level": {
+ "type": "integer"
+ },
+ "group_id": {
+ "type": "integer"
+ },
+ "group_name": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "snippets_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ssh_url_to_repo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "star_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tag_list": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "visibility_level": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "web_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "wiki_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/gitlab/v1/json/users.json b/_data/taps/schemas/gitlab/v1/json/users.json
new file mode 100644
index 000000000..aca927fbf
--- /dev/null
+++ b/_data/taps/schemas/gitlab/v1/json/users.json
@@ -0,0 +1,38 @@
+{
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "web_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads-adwords/v1/google-ads-adwords-v1-foreign-keys.yml b/_data/taps/schemas/google-ads-adwords/v1/google-ads-adwords-v1-foreign-keys.yml
new file mode 100644
index 000000000..4ea9987e0
--- /dev/null
+++ b/_data/taps/schemas/google-ads-adwords/v1/google-ads-adwords-v1-foreign-keys.yml
@@ -0,0 +1,1552 @@
+tap: google-ads-adwords
+version: '1'
+keys:
+ accounts_customerId:
+ - table: account_performance_report
+ keys:
+ - _sdc_customer_id
+ - table: accounts
+ keys:
+ - customerId
+ - table: ad_performance_report
+ keys:
+ - _sdc_customer_id
+ - table: adgroup_performance_report
+ keys:
+ - _sdc_customer_id
+ - table: age_range_performance_report
+ keys:
+ - _sdc_customer_id
+ - table: audience_performance_report
+ keys:
+ - _sdc_customer_id
+ - table: call_metrics_call_details_report
+ keys:
+ - _sdc_customer_id
+ - table: campaign_performance_report
+ keys:
+ - _sdc_customer_id
+ - table: click_performance_report
+ keys:
+ - _sdc_customer_id
+ - table: criteria_performance_report
+ keys:
+ - _sdc_customer_id
+ - table: display_keyword_performance_report
+ keys:
+ - _sdc_customer_id
+ - table: display_topics_performance_report
+ keys:
+ - _sdc_customer_id
+ - table: final_url_report
+ keys:
+ - _sdc_customer_id
+ - table: gender_performance_report
+ keys:
+ - _sdc_customer_id
+ - table: geo_performance_report
+ keys:
+ - _sdc_customer_id
+ - table: keywordless_query_report
+ keys:
+ - _sdc_customer_id
+ - table: keywords_performance_report
+ keys:
+ - _sdc_customer_id
+ - table: search_query_performance_report
+ keys:
+ - _sdc_customer_id
+ - table: video_performance_report
+ keys:
+ - _sdc_customer_id
+ ad_groups_adGroupId:
+ - table: ad_groups
+ keys:
+ - id
+ - table: ads
+ keys:
+ - adGroupId
+ ad_groups_baseAdGroupId:
+ - table: ads
+ keys:
+ - baseAdGroupId
+ - table: ad_groups
+ keys:
+ - baseAdGroupId
+ campaigns_baseCampaignId:
+ - table: ads
+ keys:
+ - baseCampaignId
+ - table: ad_groups
+ keys:
+ - baseCampaignId
+ - table: campaigns
+ keys:
+ - baseCampaignId
+ campaigns_campaignId:
+ - table: ad_groups
+ keys:
+ - campaignId
+ - table: campaigns
+ keys:
+ - id
+ _id:
+ - table: ad_groups
+ keys:
+ - labels.id
+ - table: campaigns
+ keys:
+ - labels.id
+tables:
+- table-name: account_performance_report
+ join:
+ - table-name: accounts
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: customerId
+ - table-name: ad_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: adgroup_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: age_range_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: audience_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: call_metrics_call_details_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: campaign_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: click_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: criteria_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_keyword_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_topics_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: final_url_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: gender_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: geo_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywordless_query_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywords_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: search_query_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: video_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+- table-name: accounts
+ join:
+ - table-name: account_performance_report
+ keys:
+ - key: customerId
+ foreign-key: _sdc_customer_id
+ - table-name: ad_performance_report
+ keys:
+ - key: customerId
+ foreign-key: _sdc_customer_id
+ - table-name: adgroup_performance_report
+ keys:
+ - key: customerId
+ foreign-key: _sdc_customer_id
+ - table-name: age_range_performance_report
+ keys:
+ - key: customerId
+ foreign-key: _sdc_customer_id
+ - table-name: audience_performance_report
+ keys:
+ - key: customerId
+ foreign-key: _sdc_customer_id
+ - table-name: call_metrics_call_details_report
+ keys:
+ - key: customerId
+ foreign-key: _sdc_customer_id
+ - table-name: campaign_performance_report
+ keys:
+ - key: customerId
+ foreign-key: _sdc_customer_id
+ - table-name: click_performance_report
+ keys:
+ - key: customerId
+ foreign-key: _sdc_customer_id
+ - table-name: criteria_performance_report
+ keys:
+ - key: customerId
+ foreign-key: _sdc_customer_id
+ - table-name: display_keyword_performance_report
+ keys:
+ - key: customerId
+ foreign-key: _sdc_customer_id
+ - table-name: display_topics_performance_report
+ keys:
+ - key: customerId
+ foreign-key: _sdc_customer_id
+ - table-name: final_url_report
+ keys:
+ - key: customerId
+ foreign-key: _sdc_customer_id
+ - table-name: gender_performance_report
+ keys:
+ - key: customerId
+ foreign-key: _sdc_customer_id
+ - table-name: geo_performance_report
+ keys:
+ - key: customerId
+ foreign-key: _sdc_customer_id
+ - table-name: keywordless_query_report
+ keys:
+ - key: customerId
+ foreign-key: _sdc_customer_id
+ - table-name: keywords_performance_report
+ keys:
+ - key: customerId
+ foreign-key: _sdc_customer_id
+ - table-name: search_query_performance_report
+ keys:
+ - key: customerId
+ foreign-key: _sdc_customer_id
+ - table-name: video_performance_report
+ keys:
+ - key: customerId
+ foreign-key: _sdc_customer_id
+- table-name: ad_performance_report
+ join:
+ - table-name: account_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: accounts
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: customerId
+ - table-name: adgroup_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: age_range_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: audience_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: call_metrics_call_details_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: campaign_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: click_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: criteria_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_keyword_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_topics_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: final_url_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: gender_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: geo_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywordless_query_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywords_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: search_query_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: video_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+- table-name: adgroup_performance_report
+ join:
+ - table-name: account_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: accounts
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: customerId
+ - table-name: ad_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: age_range_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: audience_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: call_metrics_call_details_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: campaign_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: click_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: criteria_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_keyword_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_topics_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: final_url_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: gender_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: geo_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywordless_query_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywords_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: search_query_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: video_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+- table-name: age_range_performance_report
+ join:
+ - table-name: account_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: accounts
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: customerId
+ - table-name: ad_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: adgroup_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: audience_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: call_metrics_call_details_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: campaign_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: click_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: criteria_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_keyword_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_topics_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: final_url_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: gender_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: geo_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywordless_query_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywords_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: search_query_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: video_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+- table-name: audience_performance_report
+ join:
+ - table-name: account_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: accounts
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: customerId
+ - table-name: ad_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: adgroup_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: age_range_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: call_metrics_call_details_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: campaign_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: click_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: criteria_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_keyword_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_topics_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: final_url_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: gender_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: geo_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywordless_query_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywords_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: search_query_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: video_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+- table-name: call_metrics_call_details_report
+ join:
+ - table-name: account_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: accounts
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: customerId
+ - table-name: ad_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: adgroup_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: age_range_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: audience_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: campaign_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: click_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: criteria_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_keyword_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_topics_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: final_url_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: gender_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: geo_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywordless_query_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywords_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: search_query_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: video_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+- table-name: campaign_performance_report
+ join:
+ - table-name: account_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: accounts
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: customerId
+ - table-name: ad_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: adgroup_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: age_range_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: audience_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: call_metrics_call_details_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: click_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: criteria_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_keyword_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_topics_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: final_url_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: gender_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: geo_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywordless_query_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywords_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: search_query_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: video_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+- table-name: click_performance_report
+ join:
+ - table-name: account_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: accounts
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: customerId
+ - table-name: ad_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: adgroup_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: age_range_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: audience_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: call_metrics_call_details_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: campaign_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: criteria_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_keyword_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_topics_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: final_url_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: gender_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: geo_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywordless_query_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywords_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: search_query_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: video_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+- table-name: criteria_performance_report
+ join:
+ - table-name: account_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: accounts
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: customerId
+ - table-name: ad_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: adgroup_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: age_range_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: audience_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: call_metrics_call_details_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: campaign_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: click_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_keyword_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_topics_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: final_url_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: gender_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: geo_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywordless_query_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywords_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: search_query_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: video_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+- table-name: display_keyword_performance_report
+ join:
+ - table-name: account_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: accounts
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: customerId
+ - table-name: ad_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: adgroup_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: age_range_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: audience_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: call_metrics_call_details_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: campaign_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: click_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: criteria_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_topics_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: final_url_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: gender_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: geo_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywordless_query_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywords_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: search_query_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: video_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+- table-name: display_topics_performance_report
+ join:
+ - table-name: account_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: accounts
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: customerId
+ - table-name: ad_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: adgroup_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: age_range_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: audience_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: call_metrics_call_details_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: campaign_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: click_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: criteria_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_keyword_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: final_url_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: gender_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: geo_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywordless_query_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywords_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: search_query_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: video_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+- table-name: final_url_report
+ join:
+ - table-name: account_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: accounts
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: customerId
+ - table-name: ad_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: adgroup_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: age_range_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: audience_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: call_metrics_call_details_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: campaign_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: click_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: criteria_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_keyword_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_topics_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: gender_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: geo_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywordless_query_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywords_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: search_query_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: video_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+- table-name: gender_performance_report
+ join:
+ - table-name: account_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: accounts
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: customerId
+ - table-name: ad_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: adgroup_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: age_range_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: audience_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: call_metrics_call_details_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: campaign_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: click_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: criteria_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_keyword_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_topics_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: final_url_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: geo_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywordless_query_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywords_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: search_query_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: video_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+- table-name: geo_performance_report
+ join:
+ - table-name: account_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: accounts
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: customerId
+ - table-name: ad_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: adgroup_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: age_range_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: audience_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: call_metrics_call_details_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: campaign_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: click_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: criteria_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_keyword_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_topics_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: final_url_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: gender_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywordless_query_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywords_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: search_query_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: video_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+- table-name: keywordless_query_report
+ join:
+ - table-name: account_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: accounts
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: customerId
+ - table-name: ad_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: adgroup_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: age_range_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: audience_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: call_metrics_call_details_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: campaign_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: click_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: criteria_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_keyword_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_topics_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: final_url_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: gender_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: geo_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywords_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: search_query_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: video_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+- table-name: keywords_performance_report
+ join:
+ - table-name: account_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: accounts
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: customerId
+ - table-name: ad_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: adgroup_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: age_range_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: audience_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: call_metrics_call_details_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: campaign_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: click_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: criteria_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_keyword_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_topics_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: final_url_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: gender_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: geo_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywordless_query_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: search_query_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: video_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+- table-name: search_query_performance_report
+ join:
+ - table-name: account_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: accounts
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: customerId
+ - table-name: ad_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: adgroup_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: age_range_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: audience_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: call_metrics_call_details_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: campaign_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: click_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: criteria_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_keyword_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_topics_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: final_url_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: gender_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: geo_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywordless_query_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywords_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: video_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+- table-name: video_performance_report
+ join:
+ - table-name: account_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: accounts
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: customerId
+ - table-name: ad_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: adgroup_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: age_range_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: audience_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: call_metrics_call_details_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: campaign_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: click_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: criteria_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_keyword_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: display_topics_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: final_url_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: gender_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: geo_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywordless_query_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: keywords_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+ - table-name: search_query_performance_report
+ keys:
+ - key: _sdc_customer_id
+ foreign-key: _sdc_customer_id
+- table-name: ad_groups
+ join:
+ - table-name: ads
+ keys:
+ - key: id
+ foreign-key: adGroupId
+ - key: baseAdGroupId
+ foreign-key: baseAdGroupId
+ - key: baseCampaignId
+ foreign-key: baseCampaignId
+ - table-name: campaigns
+ keys:
+ - key: baseCampaignId
+ foreign-key: baseCampaignId
+ - key: campaignId
+ foreign-key: id
+ - key: labels.id
+ foreign-key: labels.id
+- table-name: ads
+ join:
+ - table-name: ad_groups
+ keys:
+ - key: adGroupId
+ foreign-key: id
+ - key: baseAdGroupId
+ foreign-key: baseAdGroupId
+ - key: baseCampaignId
+ foreign-key: baseCampaignId
+ - table-name: campaigns
+ keys:
+ - key: baseCampaignId
+ foreign-key: baseCampaignId
+- table-name: campaigns
+ join:
+ - table-name: ads
+ keys:
+ - key: baseCampaignId
+ foreign-key: baseCampaignId
+ - table-name: ad_groups
+ keys:
+ - key: baseCampaignId
+ foreign-key: baseCampaignId
+ - key: id
+ foreign-key: campaignId
+ - key: labels.id
+ foreign-key: labels.id
diff --git a/_data/taps/schemas/google-ads-adwords/v1/google-ads-adwords-v1-tables.yml b/_data/taps/schemas/google-ads-adwords/v1/google-ads-adwords-v1-tables.yml
new file mode 100644
index 000000000..711578594
--- /dev/null
+++ b/_data/taps/schemas/google-ads-adwords/v1/google-ads-adwords-v1-tables.yml
@@ -0,0 +1,362 @@
+tap: google-ads-adwords
+version: '1'
+tables:
+- name: accounts
+ description: "The `{{ table.name }}` table contains high-level info about the Google\
+ \ AdWords account(s) you\u2019ve connected to Stitch.\n\n[This is a **Core Object**\
+ \ table](#replication).\n"
+ links:
+ doc-link: https://developers.google.com/adwords/api/docs/reference/v201806/ManagedCustomerService.ManagedCustomer
+ singer-schema: https://github.com/singer-io/tap-adwords/blob/master/tap_adwords/schemas/accounts.json
+ table-details:
+ replication-method: Full Table
+ primary-key: customerId
+- name: account_performance_report
+ description: 'The `{{ table.name }}` table contains all statistics aggregated by
+ default at the account level.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/adwords/api/docs/appendix/reports/account-performance-report
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-key: __sdc_primary_key
+ replication-key: day
+ report: true
+- name: adgroup_performance_report
+ description: 'The `ad_performance_report` table contains all statistics aggregated
+ at the ad group level.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/adwords/api/docs/appendix/reports/adgroup-performance-report
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-key: __sdc_primary_key
+ replication-key: day
+ report: true
+- name: ads
+ description: 'The `{{ table.name }}` table contains comprehensive info about ads
+ in ad groups in your Google AdWords account.
+
+
+ [This is a **Core Object** table](#replication).
+
+ '
+ links:
+ doc-link: https://developers.google.com/adwords/api/docs/reference/v201806/AdGroupAdService.AdGroupAd
+ singer-schema: https://github.com/singer-io/tap-adwords/blob/master/tap_adwords/schemas/ads.json
+ table-details:
+ replication-method: Full Table
+ primary-key: adGroupId
+- name: ad_groups
+ description: 'The `{{ table.name }}` table contains detailed info about your ad
+ groups.
+
+
+ [This is a **Core Object** table](#replication).
+
+ '
+ links:
+ doc-link: https://developers.google.com/adwords/api/docs/reference/v201806/AdGroupService.AdGroup
+ singer-schema: https://github.com/singer-io/tap-adwords/blob/master/tap_adwords/schemas/ad_groups.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: ad_performance_report
+ description: 'The `ad_performance_report` table contains all statistics aggregated
+ at the ad level.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/adwords/api/docs/appendix/reports/ad-performance-report
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-key: __sdc_primary_key
+ replication-key: day
+ report: true
+- name: age_range_performance_report
+ description: 'The `age_range_performance_report` table contains all Display Network
+ and YouTube Network statistics aggregated by age range.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/adwords/api/docs/appendix/reports/age-range-performance-report
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-key: __sdc_primary_key
+ replication-key: day
+ report: true
+- name: audience_performance_report
+ description: 'The `audience_performance_report` table contains performance data
+ from interests and remarketing lists for Display Network and YouTube Network ads,
+ and remarketing lists for search ads (RLSA), aggregated at the audience level.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/adwords/api/docs/appendix/reports/age-range-performance-report
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-key: __sdc_primary_key
+ replication-key: day
+ report: true
+- name: call_metrics_call_details_report
+ description: 'The `{{ table.name }}` table contains data for call tracking of call-only
+ ads or call extensions.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/adwords/api/docs/appendix/reports/call-metrics-call-details-report
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-key: __sdc_primary_key
+ replication-key: day
+ report: true
+- name: campaigns
+ description: 'The `{{ table.name }}` table contains detailed info about your Google
+ AdWords campaigns.
+
+
+ [This is a **Core Object** table](#replication).
+
+ '
+ links:
+ doc-link: https://developers.google.com/adwords/api/docs/reference/v201806/CampaignService.Campaign
+ singer-schema: https://github.com/singer-io/tap-adwords/blob/master/tap_adwords/schemas/campaigns.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: campaign_performance_report
+ description: 'The `campaign_performance_report` table contains all statistics aggregated
+ by default at the campaign level.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/adwords/api/docs/appendix/reports/campaign-performance-report
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-key: __sdc_primary_key
+ replication-key: day
+ report: true
+- name: click_performance_report
+ description: 'The `click_performance_report` table contains statistics aggregated
+ at each click level, and includes both valid and invalid clicks.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/adwords/api/docs/appendix/reports/click-performance-report
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-key: __sdc_primary_key
+ replication-key: day
+ report: true
+- name: criteria_performance_report
+ description: 'The `criteria_performance_report` table contains statistics aggregated
+ at the ad group criteria level.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/adwords/api/docs/appendix/reports/criteria-performance-report
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-key: __sdc_primary_key
+ replication-key: day
+ report: true
+- name: display_keyword_performance_report
+ description: 'The `{{ table.name }}` table contains all Display Network and YouTube
+ Network statistics aggregated at the keyword level.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/adwords/api/docs/appendix/reports/display-keyword-performance-report
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-key: __sdc_primary_key
+ replication-key: day
+ report: true
+- name: display_topics_performance_report
+ description: 'The `{{ table.name }}` table contains all Display Network and YouTube
+ Network statistics aggregated at the topic level.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/adwords/api/docs/appendix/reports/display-topics-performance-report
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-key: __sdc_primary_key
+ replication-key: day
+ report: true
+- name: final_url_report
+ description: 'The `final_url_report` table contains all statistics aggregated at
+ the final URL level.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/adwords/api/docs/appendix/reports/gender-performance-report
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-key: __sdc_primary_key
+ replication-key: day
+ report: true
+- name: gender_performance_report
+ description: 'The `gender_performance_report` table contains all statistics aggregated
+ by gender.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/adwords/api/docs/appendix/reports/gender-performance-report
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-key: __sdc_primary_key
+ replication-key: day
+ report: true
+- name: geo_performance_report
+ description: 'The `geo_performance_report` table contains all statistics aggregated
+ at the country/territory level.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/adwords/api/docs/appendix/reports/geo-performance-report
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-key: __sdc_primary_key
+ replication-key: day
+ report: true
+- name: keywordless_query_report
+ description: 'The `keywordless_query_report` includes keywordless ads (dynamic search
+ ads) statistics based on search terms.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/adwords/api/docs/appendix/reports/keywordless-query-report
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-key: __sdc_primary_key
+ replication-key: day
+ report: true
+- name: keywords_performance_report
+ description: 'The `keywords_performance_report` table contains all statistics aggregated
+ at the keyword level.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/adwords/api/docs/appendix/reports/keywords-performance-report
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-key: __sdc_primary_key
+ replication-key: day
+ report: true
+- name: search_query_performance_report
+ description: 'The `search_query_performance_report` table contains all statistics
+ aggregated at the search term level.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/adwords/api/docs/appendix/reports/search-query-performance-report
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-key: __sdc_primary_key
+ replication-key: day
+ report: true
+- name: video_performance_report
+ description: 'The `video_performance_report` table contains statistics for your
+ account''s upgraded [AdWords for Video campaigns](https://adwords.googleblog.com/2015/09/trueview-campaigns-now-in-adwords.html){:target="new"}.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/adwords/api/docs/appendix/reports/video-performance-report
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-key: __sdc_primary_key
+ replication-key: day
+ report: true
diff --git a/_data/taps/schemas/google-ads-adwords/v1/json/account_performance_report.json b/_data/taps/schemas/google-ads-adwords/v1/json/account_performance_report.json
new file mode 100644
index 000000000..1a3cecf0f
--- /dev/null
+++ b/_data/taps/schemas/google-ads-adwords/v1/json/account_performance_report.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "day": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "_sdc_customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "__sdc_primary_key": {
+ "type": [
+ "string"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads-adwords/v1/json/accounts.json b/_data/taps/schemas/google-ads-adwords/v1/json/accounts.json
new file mode 100644
index 000000000..c2d0f1546
--- /dev/null
+++ b/_data/taps/schemas/google-ads-adwords/v1/json/accounts.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "canManageClients": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "currencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customerId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "dateTimeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "testAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads-adwords/v1/json/ad_groups.json b/_data/taps/schemas/google-ads-adwords/v1/json/ad_groups.json
new file mode 100644
index 000000000..daa729a50
--- /dev/null
+++ b/_data/taps/schemas/google-ads-adwords/v1/json/ad_groups.json
@@ -0,0 +1,258 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "adGroupType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "baseAdGroupId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "baseCampaignId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "biddingStrategyConfiguration": {
+ "properties": {
+ "bids": {
+ "items": {
+ "properties": {
+ "Bids.Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bid": {
+ "properties": {
+ "ComparableValue.Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "microAmount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "bidSource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "campaignId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaignName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "labels": {
+ "items": {
+ "properties": {
+ "Label.Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "attribute": {
+ "properties": {
+ "LabelAttribute.Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "backgroundColor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "settings": {
+ "items": {
+ "properties": {
+ "Setting.Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "details": {
+ "items": {
+ "properties": {
+ "criterionTypeGroup": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targetAll": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "optIn": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "urlCustomParameters": {
+ "properties": {
+ "doReplace": {
+ "type": "boolean"
+ },
+ "parameters": {
+ "items": {
+ "properties": {
+ "isRemove": {
+ "type": "boolean"
+ },
+ "key": {
+ "type": "string"
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads-adwords/v1/json/ad_performance_report.json b/_data/taps/schemas/google-ads-adwords/v1/json/ad_performance_report.json
new file mode 100644
index 000000000..1a3cecf0f
--- /dev/null
+++ b/_data/taps/schemas/google-ads-adwords/v1/json/ad_performance_report.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "day": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "_sdc_customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "__sdc_primary_key": {
+ "type": [
+ "string"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads-adwords/v1/json/adgroup_performance_report.json b/_data/taps/schemas/google-ads-adwords/v1/json/adgroup_performance_report.json
new file mode 100644
index 000000000..1a3cecf0f
--- /dev/null
+++ b/_data/taps/schemas/google-ads-adwords/v1/json/adgroup_performance_report.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "day": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "_sdc_customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "__sdc_primary_key": {
+ "type": [
+ "string"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads-adwords/v1/json/ads.json b/_data/taps/schemas/google-ads-adwords/v1/json/ads.json
new file mode 100644
index 000000000..5e8f8db5c
--- /dev/null
+++ b/_data/taps/schemas/google-ads-adwords/v1/json/ads.json
@@ -0,0 +1,134 @@
+{
+ "properties": {
+ "adGroupId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "baseAdGroupId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "baseCampaignId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "policySummary": {
+ "properties": {
+ "combinedApprovalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "denormalizedStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "properties": {
+ "policyTopicEntryType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEvidences": {
+ "items": {
+ "properties": {
+ "evidenceTextList": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "policyTopicEvidenceType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "policyTopicHelpCenterUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewState": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trademarkDisapproved": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads-adwords/v1/json/age_range_performance_report.json b/_data/taps/schemas/google-ads-adwords/v1/json/age_range_performance_report.json
new file mode 100644
index 000000000..1a3cecf0f
--- /dev/null
+++ b/_data/taps/schemas/google-ads-adwords/v1/json/age_range_performance_report.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "day": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "_sdc_customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "__sdc_primary_key": {
+ "type": [
+ "string"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads-adwords/v1/json/audience_performance_report.json b/_data/taps/schemas/google-ads-adwords/v1/json/audience_performance_report.json
new file mode 100644
index 000000000..1a3cecf0f
--- /dev/null
+++ b/_data/taps/schemas/google-ads-adwords/v1/json/audience_performance_report.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "day": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "_sdc_customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "__sdc_primary_key": {
+ "type": [
+ "string"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads-adwords/v1/json/call_metrics_call_details_report.json b/_data/taps/schemas/google-ads-adwords/v1/json/call_metrics_call_details_report.json
new file mode 100644
index 000000000..1a3cecf0f
--- /dev/null
+++ b/_data/taps/schemas/google-ads-adwords/v1/json/call_metrics_call_details_report.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "day": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "_sdc_customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "__sdc_primary_key": {
+ "type": [
+ "string"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads-adwords/v1/json/campaign_performance_report.json b/_data/taps/schemas/google-ads-adwords/v1/json/campaign_performance_report.json
new file mode 100644
index 000000000..1a3cecf0f
--- /dev/null
+++ b/_data/taps/schemas/google-ads-adwords/v1/json/campaign_performance_report.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "day": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "_sdc_customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "__sdc_primary_key": {
+ "type": [
+ "string"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads-adwords/v1/json/campaigns.json b/_data/taps/schemas/google-ads-adwords/v1/json/campaigns.json
new file mode 100644
index 000000000..3c315d4c7
--- /dev/null
+++ b/_data/taps/schemas/google-ads-adwords/v1/json/campaigns.json
@@ -0,0 +1,294 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "adServingOptimizationStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "advertisingChannelType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "baseCampaignId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "budgetId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaignTrialType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversionOptimizerEligibility": {
+ "properties": {
+ "eligible": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "frequencyCap": {
+ "properties": {
+ "impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "timeUnit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "labels": {
+ "items": {
+ "properties": {
+ "Label.Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "attribute": {
+ "properties": {
+ "LabelAttribute.Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "backgroundColor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "networkSetting": {
+ "properties": {
+ "targetGoogleSearch": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "servingStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "settings": {
+ "items": {
+ "properties": {
+ "Setting.Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "details": {
+ "items": {
+ "properties": {
+ "criterionTypeGroup": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targetAll": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "domainName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "negativeGeoTargetType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "positiveGeoTargetType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "urlCustomParameters": {
+ "properties": {
+ "doReplace": {
+ "type": "boolean"
+ },
+ "parameters": {
+ "items": {
+ "properties": {
+ "isRemove": {
+ "type": "boolean"
+ },
+ "key": {
+ "type": "string"
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads-adwords/v1/json/click_performance_report.json b/_data/taps/schemas/google-ads-adwords/v1/json/click_performance_report.json
new file mode 100644
index 000000000..1a3cecf0f
--- /dev/null
+++ b/_data/taps/schemas/google-ads-adwords/v1/json/click_performance_report.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "day": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "_sdc_customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "__sdc_primary_key": {
+ "type": [
+ "string"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads-adwords/v1/json/criteria_performance_report.json b/_data/taps/schemas/google-ads-adwords/v1/json/criteria_performance_report.json
new file mode 100644
index 000000000..1a3cecf0f
--- /dev/null
+++ b/_data/taps/schemas/google-ads-adwords/v1/json/criteria_performance_report.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "day": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "_sdc_customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "__sdc_primary_key": {
+ "type": [
+ "string"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads-adwords/v1/json/display_keyword_performance_report.json b/_data/taps/schemas/google-ads-adwords/v1/json/display_keyword_performance_report.json
new file mode 100644
index 000000000..1a3cecf0f
--- /dev/null
+++ b/_data/taps/schemas/google-ads-adwords/v1/json/display_keyword_performance_report.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "day": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "_sdc_customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "__sdc_primary_key": {
+ "type": [
+ "string"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads-adwords/v1/json/display_topics_performance_report.json b/_data/taps/schemas/google-ads-adwords/v1/json/display_topics_performance_report.json
new file mode 100644
index 000000000..1a3cecf0f
--- /dev/null
+++ b/_data/taps/schemas/google-ads-adwords/v1/json/display_topics_performance_report.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "day": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "_sdc_customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "__sdc_primary_key": {
+ "type": [
+ "string"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads-adwords/v1/json/final_url_report.json b/_data/taps/schemas/google-ads-adwords/v1/json/final_url_report.json
new file mode 100644
index 000000000..1a3cecf0f
--- /dev/null
+++ b/_data/taps/schemas/google-ads-adwords/v1/json/final_url_report.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "day": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "_sdc_customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "__sdc_primary_key": {
+ "type": [
+ "string"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads-adwords/v1/json/gender_performance_report.json b/_data/taps/schemas/google-ads-adwords/v1/json/gender_performance_report.json
new file mode 100644
index 000000000..1a3cecf0f
--- /dev/null
+++ b/_data/taps/schemas/google-ads-adwords/v1/json/gender_performance_report.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "day": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "_sdc_customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "__sdc_primary_key": {
+ "type": [
+ "string"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads-adwords/v1/json/geo_performance_report.json b/_data/taps/schemas/google-ads-adwords/v1/json/geo_performance_report.json
new file mode 100644
index 000000000..1a3cecf0f
--- /dev/null
+++ b/_data/taps/schemas/google-ads-adwords/v1/json/geo_performance_report.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "day": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "_sdc_customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "__sdc_primary_key": {
+ "type": [
+ "string"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads-adwords/v1/json/keywordless_query_report.json b/_data/taps/schemas/google-ads-adwords/v1/json/keywordless_query_report.json
new file mode 100644
index 000000000..1a3cecf0f
--- /dev/null
+++ b/_data/taps/schemas/google-ads-adwords/v1/json/keywordless_query_report.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "day": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "_sdc_customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "__sdc_primary_key": {
+ "type": [
+ "string"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads-adwords/v1/json/keywords_performance_report.json b/_data/taps/schemas/google-ads-adwords/v1/json/keywords_performance_report.json
new file mode 100644
index 000000000..1a3cecf0f
--- /dev/null
+++ b/_data/taps/schemas/google-ads-adwords/v1/json/keywords_performance_report.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "day": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "_sdc_customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "__sdc_primary_key": {
+ "type": [
+ "string"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads-adwords/v1/json/search_query_performance_report.json b/_data/taps/schemas/google-ads-adwords/v1/json/search_query_performance_report.json
new file mode 100644
index 000000000..1a3cecf0f
--- /dev/null
+++ b/_data/taps/schemas/google-ads-adwords/v1/json/search_query_performance_report.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "day": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "_sdc_customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "__sdc_primary_key": {
+ "type": [
+ "string"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads-adwords/v1/json/video_performance_report.json b/_data/taps/schemas/google-ads-adwords/v1/json/video_performance_report.json
new file mode 100644
index 000000000..1a3cecf0f
--- /dev/null
+++ b/_data/taps/schemas/google-ads-adwords/v1/json/video_performance_report.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "day": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "_sdc_customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "__sdc_primary_key": {
+ "type": [
+ "string"
+ ]
+ },
+ "_sdc_report_datetime": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/google-ads-v1-tables.yml b/_data/taps/schemas/google-ads/v1/google-ads-v1-tables.yml
new file mode 100644
index 000000000..e59837f93
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/google-ads-v1-tables.yml
@@ -0,0 +1,553 @@
+tap: google-ads
+version: '1'
+tables:
+- name: accessible_bidding_strategies
+ description: 'The `{{ table.name }}` table contains info about accessible bidding
+ strategies in your Google Ads account.
+
+
+ [This is a **Core Object** table](#replication).
+
+ '
+ links:
+ doc-link: https://developers.google.com/google-ads/api/reference/rpc/v12/AccessibleBiddingStrategy
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: accounts
+ description: "The `{{ table.name }}` table contains high-level info about the Google\
+ \ Ads account(s) you\u2019ve connected to Stitch.\n\n[This is a **Core Object**\
+ \ table](#replication).\n"
+ links:
+ doc-link: https://developers.google.com/google-ads/api/reference/rpc/v12/CustomerService
+ singer-schema: https://github.com/singer-io/tap-google-ads/blob/main/tap_google_ads/schemas/accounts.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: account_performance_report
+ description: 'The `{{ table.name }}` table contains all statistics aggregated by
+ default at the account level.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/google-ads/api/fields/v12/overview
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date
+- name: ads
+ description: 'The `{{ table.name }}` table contains comprehensive info about ads
+ in ad groups in your Google Ads account.
+
+
+ [This is a **Core Object** table](#replication).
+
+ '
+ links:
+ doc-link: https://developers.google.com/google-ads/api/reference/rpc/v12/AdService
+ singer-schema: https://github.com/singer-io/tap-google-ads/blob/main/tap_google_ads/schemas/ads.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: ad_groups
+ description: 'The `{{ table.name }}` table contains detailed info about your ad
+ groups.
+
+
+ [This is a **Core Object** table](#replication).
+
+ '
+ links:
+ doc-link: https://developers.google.com/google-ads/api/reference/rpc/v12/AdGroupService
+ singer-schema: https://github.com/singer-io/tap-google-ads/blob/main/tap_google_ads/schemas/ad_groups.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: ad_group_criterion
+ description: 'The `{{ table.name }}` table contains info about ad group criteria.
+
+
+ [This is a **Core Object** table](#replication).
+
+ '
+ links:
+ doc-link: https://developers.google.com/google-ads/api/reference/rpc/v12/AdGroupCriterion
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - criterion_id
+ - ad_group_id
+- name: ad_group_performance_report
+ description: 'The `{{ table.name }}` table contains all statistics aggregated at
+ the ad group level.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/google-ads/api/fields/v12/overview
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date
+- name: ad_performance_report
+ description: 'The `{{ table.name }}` table contains all statistics aggregated at
+ the ad level.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/google-ads/api/fields/v12/overview
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date
+- name: age_range_performance_report
+ description: 'The `{{ table.name }}` table contains all Display Network and YouTube
+ Network statistics aggregated by age range.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/google-ads/api/fields/v12/overview
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date
+- name: bidding_strategies
+ description: 'The `{{ table.name }}` table contains info about bidding strategies
+ in your Google Ads account.
+
+
+ [This is a **Core Object** table](#replication).
+
+ '
+ links:
+ doc-link: https://developers.google.com/google-ads/api/reference/rpc/v12/BiddingStrategyService
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: call_details
+ description: 'The `{{ table.name }}` table contains info about call tracking of
+ call-only ads or call extensions.
+
+
+ [This is a **Core Object** table](#replication).
+
+ '
+ links:
+ doc-link: https://developers.google.com/google-ads/api/reference/rpc/v12/CallView
+ table-details:
+ replication-method: Full Table
+ primary-key: resource_name
+- name: campaigns
+ description: 'The `{{ table.name }}` table contains detailed info about your Google
+ Ads campaigns.
+
+
+ [This is a **Core Object** table](#replication).
+
+ '
+ links:
+ doc-link: https://developers.google.com/google-ads/api/reference/rpc/v12/CampaignService
+ singer-schema: https://github.com/singer-io/tap-google-ads/blob/main/tap_google_ads/schemas/campaigns.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: campaign_audience_performance_report
+ description: 'The `{{ table.name }}` table contains all statistics aggregated by
+ default at the campaign level.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/google-ads/api/fields/v12/overview
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date
+- name: campaign_budgets
+ description: 'The `{{ table.name }}` table contains info about campaign budgets
+ in your Google Ads account.
+
+
+ [This is a **Core Object** table](#replication).
+
+ '
+ links:
+ doc-link: https://developers.google.com/google-ads/api/reference/rpc/v12/CampaignBudgetService
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: campaign_criterion
+ description: 'The `{{ table.name }}` table contains info about campaign criteria.
+
+
+ [This is a **Core Object** table](#replication).
+
+ '
+ links:
+ doc-link: https://developers.google.com/google-ads/api/reference/rpc/v12/CampaignCriterion
+ table-details:
+ replication-method: Full Table
+ primary-key: criterion_id
+- name: campaign_labels
+ description: 'The `{{ table.name }}` table contains info about the relationship
+ between campaigns and labels.
+
+
+ [This is a **Core Object** table](#replication).
+
+ '
+ links:
+ doc-link: https://developers.google.com/google-ads/api/reference/rpc/v12/CampaignLabel
+ table-details:
+ replication-method: Full Table
+ primary-key: resource_name
+- name: campaign_performance_report
+ description: 'The `{{ table.name }}` table contains all statistics aggregated by
+ default at the campaign level.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/google-ads/api/fields/v12/overview
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date
+- name: carrier_constant
+ description: "The `{{ table.name }}` table contains info about carrier criteria\
+ \ that can be used in campaign targeting.\n\n[This is a **Core Object** table](#replication)."
+ links:
+ doc-link: https://developers.google.com/google-ads/api/reference/rpc/v12/CarrierConstant
+ table-details:
+ replication-method: Full Table
+ parent-table: campaign_criterion
+- name: click_performance_report
+ description: 'The `{{ table.name }}` table contains statistics aggregated at each
+ click level, and includes both valid and invalid clicks.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/google-ads/api/fields/v12/overview
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date
+- name: display_keyword_performance_report
+ description: 'The `{{ table.name }}` table contains all Display Network and YouTube
+ Network statistics aggregated at the keyword level.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/google-ads/api/fields/v12/overview
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date
+- name: display_topics_performance_report
+ description: 'The `{{ table.name }}` table contains all Display Network and YouTube
+ Network statistics aggregated at the topic level.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/google-ads/api/fields/v12/overview
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date
+- name: expanded_landing_page_report
+ description: "The `{{ table.name }}` table contains \n\n[This is a **Report** table](#replication).\
+ \ See the **Replication** section for information on how data is replicated and\
+ \ loaded for this table.\n"
+ links:
+ doc-link: https://developers.google.com/google-ads/api/fields/v12/overview
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date
+- name: feed
+ description: "The `{{ table.name }}` table contains info about feeds.\n\n[This is\
+ \ a **Core Object** table](#replication)."
+ links:
+ doc-link: https://developers.google.com/google-ads/api/reference/rpc/v12/Feed
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ parent-table: campaign_criterion
+- name: feed_item
+ description: 'The `{{ table.name }}` table contains infor about a feed item.
+
+
+ [This is a **Core Object** table](#replication).
+
+ '
+ links:
+ doc-link: https://developers.google.com/google-ads/api/reference/rpc/v12/FeedItem
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: gender_performance_report
+ description: 'The `{{ table.name }}` table contains all statistics aggregated by
+ gender.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/google-ads/api/fields/v12/overview
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date
+- name: geo_performance_report
+ description: 'The `{{ table.name }}` table contains all statistics aggregated at
+ the country/territory level.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/google-ads/api/fields/v12/overview
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date
+- name: keywordless_query_report
+ description: 'The `{{ table.name }}` includes keywordless ads (dynamic search ads)
+ statistics based on search terms.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/google-ads/api/fields/v12/overview
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date
+- name: keywords_performance_report
+ description: 'The `{{ table.name }}` table contains all statistics aggregated at
+ the keyword level.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/google-ads/api/fields/v12/overview
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date
+- name: labels
+ description: 'The `{{ table.name }}` table contains info about labels.
+
+
+ [This is a **Core Object** table](#replication).
+
+ '
+ links:
+ doc-link: https://developers.google.com/google-ads/api/reference/rpc/v12/Label
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: landing_page_report
+ description: "The `{{ table.name }}` table contains \n\n[This is a **Report** table](#replication).\
+ \ See the **Replication** section for information on how data is replicated and\
+ \ loaded for this table.\n"
+ links:
+ doc-link: https://developers.google.com/google-ads/api/fields/v12/overview
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date
+- name: language_constant
+ description: "The `{{ table.name }}` table contains info about about languages.\n\
+ \n[This is a **Core Object** table](#replication)."
+ links:
+ doc-link: https://developers.google.com/google-ads/api/reference/rpc/v12/LanguageConstant
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ parent-table: campaign_criterion
+- name: mobile_app_category_constant
+ description: "The `{{ table.name }}` table contains info about mobile application\
+ \ categories.\n\n[This is a **Core Object** table](#replication). "
+ links:
+ doc-link: https://developers.google.com/google-ads/api/reference/rpc/v12/MobileAppCategoryConstant
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ parent-tables:
+ - campaign_criterion
+ - ad_group_criterion
+- name: mobile_device_constant
+ description: "The `{{ table.name }}` table contains info about mobile devices.\n\
+ \n[This is a **Core Object** table](#replication)."
+ links:
+ doc-link: https://developers.google.com/google-ads/api/reference/rpc/v12/MobileDeviceConstant
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ parent-table: campaign_criterion
+- name: operating_system_verison_constant
+ description: "The `{{ table.name }}` table contains info about mobile operating\
+ \ system versions.\n\n[This is a **Core Object** table](#replication)."
+ links:
+ doc-link: https://developers.google.com/google-ads/api/reference/rpc/v12/OperatingSystemVersionConstant
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ parent-table: campaign_criterion
+- name: placeholder_feed_item_report
+ description: "The `{{ table.name }}` table contains \n\n[This is a **Report** table](#replication).\
+ \ See the **Replication** section for information on how data is replicated and\
+ \ loaded for this table.\n"
+ links:
+ doc-link: https://developers.google.com/google-ads/api/fields/v12/overview
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date
+- name: placeholder_report
+ description: "The `{{ table.name }}` table contains \n\n[This is a **Report** table](#replication).\
+ \ See the **Replication** section for information on how data is replicated and\
+ \ loaded for this table.\n"
+ links:
+ doc-link: https://developers.google.com/google-ads/api/fields/v12/overview
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date
+- name: placement_performance_report
+ description: "The `{{ table.name }}` table contains \n\n[This is a **Report** table](#replication).\
+ \ See the **Replication** section for information on how data is replicated and\
+ \ loaded for this table.\n"
+ links:
+ doc-link: https://developers.google.com/google-ads/api/fields/v12/overview
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date
+- name: search_query_performance_report
+ description: 'The `{{ table.name }}` table contains all statistics aggregated at
+ the search term level.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/google-ads/api/fields/v12/overview
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date
+- name: shopping_performance_report
+ description: "The `{{ table.name }}` table contains \n\n[This is a **Report** table](#replication).\
+ \ See the **Replication** section for information on how data is replicated and\
+ \ loaded for this table.\n"
+ links:
+ doc-link: https://developers.google.com/google-ads/api/fields/v12/overview
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date
+- name: topic_constant
+ description: "The `{{ table.name }}` table contains info about topics.\n\n[This\
+ \ is a **Core Object** table](#replication)."
+ links:
+ doc-link: https://developers.google.com/google-ads/api/reference/rpc/v12/TopicConstant
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ parent-tables:
+ - campaign_criterion
+ - ad_group_criterion
+- name: user_interest
+ description: "The `{{ table.name }}` table contains info about user interests to\
+ \ be targeted.\n\n[This is a **Core Object** table](#replication). "
+ links:
+ doc-link: https://developers.google.com/google-ads/api/reference/rpc/v12/UserInterest
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ parent-tables:
+ - campaign_criterion
+ - ad_group_criterion
+- name: user_list
+ description: "The `{{ table.name }}` table contains info about lists of user that\
+ \ can be targeted.\n\n[This is a **Core Object** table](#replication)."
+ links:
+ doc-link: https://developers.google.com/google-ads/api/reference/rpc/v12/UserList
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ parent-tables:
+ - campaign_criterion
+ - ad_group_criterion
+- name: user_location_performance_report
+ description: "The `{{ table.name }}` table contains \n\n[This is a **Report** table](#replication).\
+ \ See the **Replication** section for information on how data is replicated and\
+ \ loaded for this table.\n"
+ links:
+ doc-link: https://developers.google.com/google-ads/api/fields/v12/overview
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date
+- name: video_performance_report
+ description: 'The `{{ table.name }}` table contains statistics for your account''s
+ videos.
+
+
+ [This is a **Report** table](#replication). See the **Replication** section for
+ information on how data is replicated and loaded for this table.
+
+ '
+ links:
+ doc-link: https://developers.google.com/google-ads/api/fields/v12/overview
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date
diff --git a/_data/taps/schemas/google-ads/v1/json/accessible_bidding_strategies.json b/_data/taps/schemas/google-ads/v1/json/accessible_bidding_strategies.json
new file mode 100644
index 000000000..de423296b
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/accessible_bidding_strategies.json
@@ -0,0 +1,127 @@
+{
+ "properties": {
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "maximize_conversion_value": {
+ "properties": {
+ "target_roas": {
+ "type": [
+ "singer.decimal"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "maximize_conversions": {
+ "properties": {
+ "target_cpa": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "owner_customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "owner_descriptive_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "resource_name": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "target_cpa": {
+ "properties": {
+ "target_cpa_micros": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "target_impression_share": {
+ "properties": {
+ "cpc_bid_ceiling_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "location": {
+ "type": [
+ "string"
+ ]
+ },
+ "location_fraction_micros": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "target_roas": {
+ "properties": {
+ "target_roas": {
+ "type": [
+ "singer.decimal"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "target_spend": {
+ "properties": {
+ "cpc_bid_ceiling_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "target_spend_micros": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/account_performance_report.json b/_data/taps/schemas/google-ads/v1/json/account_performance_report.json
new file mode 100644
index 000000000..70ebe5fd2
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/account_performance_report.json
@@ -0,0 +1,360 @@
+{
+ "properties": {
+ "active_view_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_measurability": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_measurable_cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_measurable_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_viewability": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ad_network_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cost": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpc": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpe": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpv": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "click_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "content_budget_lost_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "content_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "content_rank_lost_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversion_action": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "conversion_action_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_action_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_adjustment": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "conversion_lag_bucket": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_or_adjustment_lag_bucket": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cross_device_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "customer_auto_tagging_enabled": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "customer_currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_descriptive_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_manager": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "customer_test_account": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "customer_time_zone": {
+ "type": [
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "day_of_week": {
+ "type": [
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "string"
+ ]
+ },
+ "engagement_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "engagements": {
+ "type": [
+ "integer"
+ ]
+ },
+ "external_conversion_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "hour": {
+ "type": [
+ "integer"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "interaction_event_types": {
+ "type": [
+ "string"
+ ]
+ },
+ "interaction_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "interactions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "invalid_click_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "invalid_clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "month_of_year": {
+ "type": [
+ "string"
+ ]
+ },
+ "quarter": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "search_budget_lost_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_exact_match_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_rank_lost_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "slot": {
+ "type": [
+ "string"
+ ]
+ },
+ "value_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_view_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "view_through_conversions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "week": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "year": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/accounts.json b/_data/taps/schemas/google-ads/v1/json/accounts.json
new file mode 100644
index 000000000..361df2048
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/accounts.json
@@ -0,0 +1,225 @@
+{
+ "properties": {
+ "autoTaggingEnabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "callReportingSetting": {
+ "properties": {
+ "callConversionAction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "callConversionReportingEnabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "callReportingEnabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "conversionTrackingSetting": {
+ "properties": {
+ "conversionTrackingId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "crossAccountConversionTrackingId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "currencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "definitions": {
+ "properties": {
+ "CallReportingSetting": {
+ "properties": {
+ "callConversionAction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "callConversionReportingEnabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "callReportingEnabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ConversionTrackingSetting": {
+ "properties": {
+ "conversionTrackingId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "crossAccountConversionTrackingId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "RemarketingSetting": {
+ "properties": {
+ "googleGlobalSiteTag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "descriptiveName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "finalUrlSuffix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hasPartnersBadge": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "manager": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "optimizationScore": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "optimizationScoreWeight": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "payPerConversionEligibilityFailureReasons": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "remarketingSetting": {
+ "properties": {
+ "googleGlobalSiteTag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resourceName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "testAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trackingUrlTemplate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/ad_group_audience_performance_report.json b/_data/taps/schemas/google-ads/v1/json/ad_group_audience_performance_report.json
new file mode 100644
index 000000000..2b4fe3c58
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/ad_group_audience_performance_report.json
@@ -0,0 +1,443 @@
+{
+ "properties": {
+ "active_view_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_measurability": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_measurable_cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_measurable_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_viewability": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ad_group_base_ad_group": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "ad_group_campaign": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "ad_group_criterion_bid_modifier": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ad_group_criterion_criterion_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_criterion_effective_cpc_bid_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_criterion_effective_cpc_bid_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_effective_cpm_bid_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_criterion_effective_cpm_bid_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_final_mobile_urls": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_final_urls": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_targeting_setting": {
+ "properties": {
+ "target_restrictions": {
+ "type": [
+ "object",
+ " string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ad_group_tracking_url_template": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_url_custom_parameters": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "ad_network_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cost": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpc": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpe": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpv": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "bidding_strategy_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_base_campaign": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "campaign_bidding_strategy": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "campaign_bidding_strategy_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "click_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_action": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "conversion_action_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_action_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cross_device_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "customer_currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_descriptive_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_time_zone": {
+ "type": [
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "day_of_week": {
+ "type": [
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "string"
+ ]
+ },
+ "engagement_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "engagements": {
+ "type": [
+ "integer"
+ ]
+ },
+ "external_conversion_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "gmail_forwards": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gmail_saves": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gmail_secondary_clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "interaction_event_types": {
+ "type": [
+ "string"
+ ]
+ },
+ "interaction_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "interactions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "month_of_year": {
+ "type": [
+ "string"
+ ]
+ },
+ "quarter": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "slot": {
+ "type": [
+ "string"
+ ]
+ },
+ "value_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p100_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p25_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p50_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p75_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_view_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "view_through_conversions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "week": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "year": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/ad_group_criterion.json b/_data/taps/schemas/google-ads/v1/json/ad_group_criterion.json
new file mode 100644
index 000000000..210bc4051
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/ad_group_criterion.json
@@ -0,0 +1,275 @@
+{
+ "properties": {
+ "ad_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "approval_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "bid_modifier": {
+ "type": [
+ "double"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cpc_bid_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cpm_bid_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cpv_bid_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "criterion": {
+ "type": [
+ "object"
+ ]
+ },
+ "criterion_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "disapproval_reasons": {
+ "properties": {
+ "reason": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "effective_cpc_bid_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "effective_cpc_bid_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "effective_cpm_bid_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "effective_cpm_bid_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "effective_cpv_bid_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "effective_cpv_bid_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "effective_percent_cpc_bid_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "effective_percent_cpc_bid_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "final_mobile_urls": {
+ "properties": {
+ "url": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "final_url_suffix": {
+ "type": [
+ "string"
+ ]
+ },
+ "final_urls": {
+ "properties": {
+ "url": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "labels": {
+ "properties": {
+ "label": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "negative": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "percent_cpc_bid_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "position_estimates": {
+ "properties": {
+ "estimated_add_clicks_at_first_position_cpc": {
+ "type": [
+ "integer"
+ ]
+ },
+ "estimated_add_cost_at_first_position_cpc": {
+ "type": [
+ "integer"
+ ]
+ },
+ "first_page_cpc_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "first_position_cpc_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "top_of_page_cpc_micros": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "quality_info": {
+ "properties": {
+ "creative_quality_score": {
+ "type": [
+ "string"
+ ]
+ },
+ "post_click_quality_score": {
+ "type": [
+ "string"
+ ]
+ },
+ "quality_score": {
+ "type": [
+ "integer"
+ ]
+ },
+ "search_predicted_ctr": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "resource_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "system_serving_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "tracking_url_template": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "url_custom_parameters": {
+ "properties": {
+ "parameter": {
+ "properties": {
+ "key": {
+ "type": [
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/ad_group_performance_report.json b/_data/taps/schemas/google-ads/v1/json/ad_group_performance_report.json
new file mode 100644
index 000000000..933572251
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/ad_group_performance_report.json
@@ -0,0 +1,608 @@
+{
+ "properties": {
+ "absolute_top_impression_percentage": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_measurability": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_measurable_cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_measurable_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_viewability": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ad_group_ad_rotation_mode": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_base_ad_group": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "ad_group_cpc_bid_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_cpm_bid_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_cpv_bid_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_display_custom_bid_dimension": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_effective_target_cpa_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_effective_target_cpa_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_effective_target_roas": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ad_group_effective_target_roas_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_final_url_suffix": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_tracking_url_template": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_url_custom_parameters": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "ad_network_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cost": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpc": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpe": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpv": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_page_views": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_time_on_site": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "bounce_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "campaign_base_campaign": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "campaign_bidding_strategy": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "campaign_bidding_strategy_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_labels": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_manual_cpc": {
+ "properties": {
+ "enhanced_cpc_enabled": {
+ "type": [
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_percent_cpc": {
+ "properties": {
+ "enhanced_cpc_enabled": {
+ "type": [
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "campaign_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "click_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "content_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "content_rank_lost_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversion_action": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "conversion_action_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_action_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_adjustment": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "conversion_lag_bucket": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_or_adjustment_lag_bucket": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_per_current_model_attributed_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cross_device_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "current_model_attributed_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "current_model_attributed_conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "customer_currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_descriptive_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_time_zone": {
+ "type": [
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "day_of_week": {
+ "type": [
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "string"
+ ]
+ },
+ "engagement_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "engagements": {
+ "type": [
+ "integer"
+ ]
+ },
+ "external_conversion_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "gmail_forwards": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gmail_saves": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gmail_secondary_clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "hour": {
+ "type": [
+ "integer"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "interaction_event_types": {
+ "type": [
+ "string"
+ ]
+ },
+ "interaction_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "interactions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "month_of_year": {
+ "type": [
+ "string"
+ ]
+ },
+ "percent_new_visitors": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "phone_calls": {
+ "type": [
+ "integer"
+ ]
+ },
+ "phone_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "phone_through_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "quarter": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "relative_ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_absolute_top_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_budget_lost_absolute_top_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_budget_lost_top_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_exact_match_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_rank_lost_absolute_top_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_rank_lost_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_rank_lost_top_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_top_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "slot": {
+ "type": [
+ "string"
+ ]
+ },
+ "top_impression_percentage": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_current_model_attributed_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p100_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p25_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p50_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p75_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_view_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "view_through_conversions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "week": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "year": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/ad_groups.json b/_data/taps/schemas/google-ads/v1/json/ad_groups.json
new file mode 100644
index 000000000..1d4d4c358
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/ad_groups.json
@@ -0,0 +1,427 @@
+{
+ "properties": {
+ "adRotationMode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "baseAdGroup": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cpcBidMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cpmBidMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cpvBidMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "definitions": {
+ "properties": {
+ "CustomParameter": {
+ "properties": {
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ExplorerAutoOptimizerSetting": {
+ "properties": {
+ "optIn": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "TargetRestriction": {
+ "properties": {
+ "bidOnly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "targetingDimension": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "TargetRestrictionOperation": {
+ "properties": {
+ "operator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "properties": {
+ "bidOnly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "targetingDimension": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TargetingSetting": {
+ "properties": {
+ "targetRestrictionOperations": {
+ "items": {
+ "operator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "properties": {
+ "bidOnly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "targetingDimension": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "targetRestrictions": {
+ "items": {
+ "properties": {
+ "bidOnly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "targetingDimension": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "displayCustomBidDimension": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "effectiveTargetCpaMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "effectiveTargetCpaSource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "effectiveTargetRoas": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "effectiveTargetRoasSource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "excludedParentAssetFieldTypes": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "explorerAutoOptimizerSetting": {
+ "properties": {
+ "optIn": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "finalUrlSuffix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "labels": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percentCpcBidMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "resourceName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targetCpaMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "targetCpmMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "targetRoas": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "targetingSetting": {
+ "properties": {
+ "targetRestrictionOperations": {
+ "items": {
+ "operator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "properties": {
+ "bidOnly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "targetingDimension": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "targetRestrictions": {
+ "items": {
+ "properties": {
+ "bidOnly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "targetingDimension": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trackingUrlTemplate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "urlCustomParameters": {
+ "items": {
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/ad_performance_report.json b/_data/taps/schemas/google-ads/v1/json/ad_performance_report.json
new file mode 100644
index 000000000..79c6fe28b
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/ad_performance_report.json
@@ -0,0 +1,971 @@
+{
+ "properties": {
+ "absolute_top_impression_percentage": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_measurability": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_measurable_cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_measurable_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_viewability": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ad_group_ad_ad_strength": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_ad_policy_summary": {
+ "properties": {
+ "approval_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "policy_topic_entries": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "review_status": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ad_group_ad_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_base_ad_group": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "ad_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_network_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "added_by_google_ads": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "app_ad": {
+ "properties": {
+ "descriptions": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "headlines": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "html5_media_bundles": {
+ "properties": {
+ "asset": {
+ "type": [
+ "object",
+ " string"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "images": {
+ "properties": {
+ "asset": {
+ "type": [
+ "object",
+ " string"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "mandatory_ad_text": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "youtube_videos": {
+ "properties": {
+ "asset": {
+ "type": [
+ "object",
+ " string"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ " string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "average_cost": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpc": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpe": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpv": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_page_views": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_time_on_site": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "bounce_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "call_ad": {
+ "properties": {
+ "description1": {
+ "type": [
+ "string"
+ ]
+ },
+ "description2": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "campaign_base_campaign": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_labels": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "click_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_action": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "conversion_action_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_action_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_adjustment": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "conversion_lag_bucket": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_or_adjustment_lag_bucket": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_per_current_model_attributed_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cross_device_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "current_model_attributed_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "current_model_attributed_conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "customer_currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_descriptive_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_time_zone": {
+ "type": [
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "day_of_week": {
+ "type": [
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "string"
+ ]
+ },
+ "device_preference": {
+ "type": [
+ "string"
+ ]
+ },
+ "display_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "engagement_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "engagements": {
+ "type": [
+ "integer"
+ ]
+ },
+ "expanded_dynamic_search_ad": {
+ "properties": {
+ "description": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "expanded_text_ad": {
+ "properties": {
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "description2": {
+ "type": [
+ "string"
+ ]
+ },
+ "headline_part1": {
+ "type": [
+ "string"
+ ]
+ },
+ "headline_part2": {
+ "type": [
+ "string"
+ ]
+ },
+ "headline_part3": {
+ "type": [
+ "string"
+ ]
+ },
+ "path1": {
+ "type": [
+ "string"
+ ]
+ },
+ "path2": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "external_conversion_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "final_mobile_urls": {
+ "type": [
+ "string"
+ ]
+ },
+ "final_urls": {
+ "type": [
+ "string"
+ ]
+ },
+ "gmail_forwards": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gmail_saves": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gmail_secondary_clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "image_ad": {
+ "properties": {
+ "image_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "mime_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "pixel_height": {
+ "type": [
+ "integer"
+ ]
+ },
+ "pixel_width": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "interaction_event_types": {
+ "type": [
+ "string"
+ ]
+ },
+ "interaction_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "interactions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "keyword": {
+ "properties": {
+ "ad_group_criterion": {
+ "type": [
+ "object",
+ " string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "legacy_responsive_display_ad": {
+ "properties": {
+ "accent_color": {
+ "type": [
+ "string"
+ ]
+ },
+ "allow_flexible_color": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "business_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "call_to_action_text": {
+ "type": [
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "format_setting": {
+ "type": [
+ "string"
+ ]
+ },
+ "logo_image": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "long_headline": {
+ "type": [
+ "string"
+ ]
+ },
+ "main_color": {
+ "type": [
+ "string"
+ ]
+ },
+ "marketing_image": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "price_prefix": {
+ "type": [
+ "string"
+ ]
+ },
+ "promo_text": {
+ "type": [
+ "string"
+ ]
+ },
+ "short_headline": {
+ "type": [
+ "string"
+ ]
+ },
+ "square_logo_image": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "square_marketing_image": {
+ "type": [
+ "object",
+ " string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "month": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "month_of_year": {
+ "type": [
+ "string"
+ ]
+ },
+ "percent_new_visitors": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "quarter": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "responsive_display_ad": {
+ "properties": {
+ "accent_color": {
+ "type": [
+ "string"
+ ]
+ },
+ "allow_flexible_color": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "business_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "call_to_action_text": {
+ "type": [
+ "string"
+ ]
+ },
+ "descriptions": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "format_setting": {
+ "type": [
+ "string"
+ ]
+ },
+ "headlines": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "logo_images": {
+ "properties": {
+ "asset": {
+ "type": [
+ "object",
+ " string"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "long_headline": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "main_color": {
+ "type": [
+ "string"
+ ]
+ },
+ "marketing_images": {
+ "properties": {
+ "asset": {
+ "type": [
+ "object",
+ " string"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "price_prefix": {
+ "type": [
+ "string"
+ ]
+ },
+ "promo_text": {
+ "type": [
+ "string"
+ ]
+ },
+ "square_logo_images": {
+ "properties": {
+ "asset": {
+ "type": [
+ "object",
+ " string"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "square_marketing_images": {
+ "properties": {
+ "asset": {
+ "type": [
+ "object",
+ " string"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "youtube_videos": {
+ "properties": {
+ "asset": {
+ "type": [
+ "object",
+ " string"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ " string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "responsive_search_ad": {
+ "properties": {
+ "descriptions": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "headlines": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "path1": {
+ "type": [
+ "string"
+ ]
+ },
+ "path2": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "slot": {
+ "type": [
+ "string"
+ ]
+ },
+ "system_managed_resource_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "text_ad": {
+ "properties": {
+ "description1": {
+ "type": [
+ "string"
+ ]
+ },
+ "description2": {
+ "type": [
+ "string"
+ ]
+ },
+ "headline": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "top_impression_percentage": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "tracking_url_template": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "url_custom_parameters": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "value_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_current_model_attributed_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p100_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p25_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p50_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p75_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_view_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "view_through_conversions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "week": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "year": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/ads.json b/_data/taps/schemas/google-ads/v1/json/ads.json
new file mode 100644
index 000000000..2b9f9accd
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/ads.json
@@ -0,0 +1,16525 @@
+{
+ "properties": {
+ "addedByGoogleAds": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "appAd": {
+ "properties": {
+ "descriptions": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "headlines": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "html5MediaBundles": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "images": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "mandatoryAdText": {
+ "properties": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "youtubeVideos": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "appEngagementAd": {
+ "properties": {
+ "descriptions": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "headlines": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "images": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "videos": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "appPreRegistrationAd": {
+ "properties": {
+ "descriptions": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "headlines": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "images": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "youtubeVideos": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "callAd": {
+ "properties": {
+ "businessName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "callTracked": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "conversionAction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversionReportingState": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "countryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "disableCallConversion": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "headline1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "headline2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "path1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "path2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phoneNumberVerificationUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "definitions": {
+ "properties": {
+ "AdAssetPolicySummary": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AdImageAsset": {
+ "properties": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "AdMediaBundleAsset": {
+ "properties": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "AdTextAsset": {
+ "properties": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "AdVideoAsset": {
+ "properties": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "AppAdInfo": {
+ "properties": {
+ "descriptions": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "headlines": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "html5MediaBundles": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "images": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "mandatoryAdText": {
+ "properties": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "youtubeVideos": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AppEngagementAdInfo": {
+ "properties": {
+ "descriptions": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "headlines": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "images": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "videos": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AppPreRegistrationAdInfo": {
+ "properties": {
+ "descriptions": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "headlines": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "images": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "youtubeVideos": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CallAdInfo": {
+ "properties": {
+ "businessName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "callTracked": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "conversionAction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversionReportingState": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "countryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "disableCallConversion": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "headline1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "headline2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "path1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "path2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phoneNumberVerificationUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CountryConstraint": {
+ "properties": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CountryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CustomParameter": {
+ "properties": {
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DestinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "DestinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "DestinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "DisplayCallToAction": {
+ "properties": {
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textColor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "urlCollectionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "DisplayUploadAdInfo": {
+ "properties": {
+ "displayUploadProductType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mediaBundle": {
+ "properties": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ExpandedDynamicSearchAdInfo": {
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ExpandedTextAdInfo": {
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "headlinePart1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "headlinePart2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "headlinePart3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "path1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "path2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "FinalAppUrl": {
+ "properties": {
+ "osType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "GmailAdInfo": {
+ "properties": {
+ "headerImage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "marketingImage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "marketingImageDescription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "marketingImageDisplayCallToAction": {
+ "properties": {
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textColor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "urlCollectionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "marketingImageHeadline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "productImages": {
+ "items": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "displayCallToAction": {
+ "properties": {
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textColor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "urlCollectionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "productImage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "productVideos": {
+ "items": {
+ "productVideo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "teaser": {
+ "properties": {
+ "businessName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "headline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "logoImage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "GmailTeaser": {
+ "properties": {
+ "businessName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "headline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "logoImage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "HotelAdInfo": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ImageAdInfo": {
+ "properties": {
+ "adIdToCopyImageFrom": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "imageUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mediaFile": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mimeType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pixelHeight": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pixelWidth": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "previewImageUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "previewPixelHeight": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "previewPixelWidth": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "LegacyAppInstallAdInfo": {
+ "properties": {
+ "appId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "appStore": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "headline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "LegacyResponsiveDisplayAdInfo": {
+ "properties": {
+ "accentColor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "allowFlexibleColor": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "businessName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "callToActionText": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "formatSetting": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "logoImage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "longHeadline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mainColor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "marketingImage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pricePrefix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promoText": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shortHeadline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "squareLogoImage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "squareMarketingImage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "LocalAdInfo": {
+ "properties": {
+ "callToActions": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "descriptions": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "headlines": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "logoImages": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "marketingImages": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "path1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "path2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "videos": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PolicyTopicConstraint": {
+ "properties": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PolicyTopicEntry": {
+ "properties": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PolicyTopicEvidence": {
+ "properties": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ProductImage": {
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "displayCallToAction": {
+ "properties": {
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textColor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "urlCollectionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "productImage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ProductVideo": {
+ "properties": {
+ "productVideo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ResellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ResponsiveDisplayAdControlSpec": {
+ "properties": {
+ "enableAssetEnhancements": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enableAutogenVideo": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ResponsiveDisplayAdInfo": {
+ "properties": {
+ "accentColor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "allowFlexibleColor": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "businessName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "callToActionText": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "controlSpec": {
+ "properties": {
+ "enableAssetEnhancements": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enableAutogenVideo": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "descriptions": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "formatSetting": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "headlines": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "logoImages": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "longHeadline": {
+ "properties": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "mainColor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "marketingImages": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "pricePrefix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promoText": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "squareLogoImages": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "squareMarketingImages": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "youtubeVideos": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ResponsiveSearchAdInfo": {
+ "properties": {
+ "descriptions": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "headlines": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "path1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "path2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ShoppingComparisonListingAdInfo": {
+ "properties": {
+ "headline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ShoppingProductAdInfo": {
+ "properties": null,
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ShoppingSmartAdInfo": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "SmartCampaignAdInfo": {
+ "properties": {
+ "descriptions": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "headlines": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "TextAdInfo": {
+ "properties": {
+ "description1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "headline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "TextList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "UrlCollection": {
+ "properties": {
+ "finalMobileUrls": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "finalUrls": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "trackingUrlTemplate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "urlCollectionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "VideoAdInfo": {
+ "properties": {
+ "bumper": {
+ "properties": {
+ "companionBanner": {
+ "properties": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "discovery": {
+ "properties": {
+ "description1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "headline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thumbnail": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "inStream": {
+ "properties": {
+ "actionButtonLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "actionHeadline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "companionBanner": {
+ "properties": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "nonSkippable": {
+ "properties": {
+ "actionButtonLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "actionHeadline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "companionBanner": {
+ "properties": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "outStream": {
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "headline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "video": {
+ "properties": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "VideoBumperInStreamAdInfo": {
+ "properties": {
+ "companionBanner": {
+ "properties": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "VideoNonSkippableInStreamAdInfo": {
+ "properties": {
+ "actionButtonLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "actionHeadline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "companionBanner": {
+ "properties": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "VideoOutstreamAdInfo": {
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "headline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "VideoResponsiveAdInfo": {
+ "properties": {
+ "callToActions": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "companionBanners": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "descriptions": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "headlines": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "longHeadlines": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "videos": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "VideoTrueViewDiscoveryAdInfo": {
+ "properties": {
+ "description1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "headline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thumbnail": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "VideoTrueViewInStreamAdInfo": {
+ "properties": {
+ "actionButtonLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "actionHeadline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "companionBanner": {
+ "properties": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "WebsiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "devicePreference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "displayUploadAd": {
+ "properties": {
+ "displayUploadProductType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mediaBundle": {
+ "properties": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedDynamicSearchAd": {
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "expandedTextAd": {
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "headlinePart1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "headlinePart2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "headlinePart3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "path1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "path2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "finalAppUrls": {
+ "items": {
+ "osType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "finalMobileUrls": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "finalUrlSuffix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "finalUrls": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "gmailAd": {
+ "properties": {
+ "headerImage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "marketingImage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "marketingImageDescription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "marketingImageDisplayCallToAction": {
+ "properties": {
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textColor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "urlCollectionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "marketingImageHeadline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "productImages": {
+ "items": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "displayCallToAction": {
+ "properties": {
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textColor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "urlCollectionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "productImage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "productVideos": {
+ "items": {
+ "productVideo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "teaser": {
+ "properties": {
+ "businessName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "headline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "logoImage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "hotelAd": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "imageAd": {
+ "properties": {
+ "adIdToCopyImageFrom": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "imageUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mediaFile": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mimeType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pixelHeight": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pixelWidth": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "previewImageUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "previewPixelHeight": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "previewPixelWidth": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "legacyAppInstallAd": {
+ "properties": {
+ "appId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "appStore": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "headline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "legacyResponsiveDisplayAd": {
+ "properties": {
+ "accentColor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "allowFlexibleColor": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "businessName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "callToActionText": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "formatSetting": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "logoImage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "longHeadline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mainColor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "marketingImage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pricePrefix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promoText": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shortHeadline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "squareLogoImage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "squareMarketingImage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "localAd": {
+ "properties": {
+ "callToActions": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "descriptions": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "headlines": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "logoImages": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "marketingImages": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "path1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "path2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "videos": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resourceName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "responsiveDisplayAd": {
+ "properties": {
+ "accentColor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "allowFlexibleColor": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "businessName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "callToActionText": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "controlSpec": {
+ "properties": {
+ "enableAssetEnhancements": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enableAutogenVideo": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "descriptions": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "formatSetting": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "headlines": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "logoImages": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "longHeadline": {
+ "properties": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "mainColor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "marketingImages": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "pricePrefix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promoText": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "squareLogoImages": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "squareMarketingImages": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "youtubeVideos": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "responsiveSearchAd": {
+ "properties": {
+ "descriptions": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "headlines": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "path1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "path2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shoppingComparisonListingAd": {
+ "properties": {
+ "headline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shoppingProductAd": {
+ "properties": null,
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shoppingSmartAd": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "smartCampaignAd": {
+ "properties": {
+ "descriptions": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "headlines": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "systemManagedResourceSource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textAd": {
+ "properties": {
+ "description1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "headline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trackingUrlTemplate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "urlCollections": {
+ "items": {
+ "finalMobileUrls": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "finalUrls": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "trackingUrlTemplate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "urlCollectionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "urlCustomParameters": {
+ "items": {
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "videoAd": {
+ "properties": {
+ "bumper": {
+ "properties": {
+ "companionBanner": {
+ "properties": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "discovery": {
+ "properties": {
+ "description1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "headline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thumbnail": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "inStream": {
+ "properties": {
+ "actionButtonLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "actionHeadline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "companionBanner": {
+ "properties": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "nonSkippable": {
+ "properties": {
+ "actionButtonLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "actionHeadline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "companionBanner": {
+ "properties": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "outStream": {
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "headline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "video": {
+ "properties": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "videoResponsiveAd": {
+ "properties": {
+ "callToActions": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "companionBanners": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "descriptions": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "headlines": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "longHeadlines": {
+ "items": {
+ "assetPerformanceLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinnedField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policySummaryInfo": {
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policyTopicEntries": {
+ "items": {
+ "constraints": {
+ "items": {
+ "certificateDomainMismatchInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "certificateMissingInCountryList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "countryConstraintList": {
+ "properties": {
+ "countries": {
+ "items": {
+ "countryCriterion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "totalTargetedCountries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resellerConstraint": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "evidences": {
+ "items": {
+ "destinationMismatch": {
+ "properties": {
+ "urlTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationNotWorking": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dnsErrorType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expandedUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "httpErrorCode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastCheckedDateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destinationTextList": {
+ "properties": {
+ "destinationTexts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textList": {
+ "properties": {
+ "texts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "websiteList": {
+ "properties": {
+ "websites": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reviewStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "videos": {
+ "items": {
+ "asset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/age_range_performance_report.json b/_data/taps/schemas/google-ads/v1/json/age_range_performance_report.json
new file mode 100644
index 000000000..8eabf3ff5
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/age_range_performance_report.json
@@ -0,0 +1,454 @@
+{
+ "properties": {
+ "active_view_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_measurability": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_measurable_cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_measurable_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_viewability": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ad_group_base_ad_group": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "ad_group_criterion_age_range": {
+ "properties": {
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ad_group_criterion_bid_modifier": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ad_group_criterion_criterion_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_criterion_effective_cpc_bid_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_criterion_effective_cpc_bid_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_effective_cpm_bid_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_criterion_effective_cpm_bid_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_final_mobile_urls": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_final_urls": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_negative": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "ad_group_criterion_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_tracking_url_template": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_url_custom_parameters": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "ad_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_targeting_setting": {
+ "properties": {
+ "target_restrictions": {
+ "type": [
+ "object",
+ " string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ad_network_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cost": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpc": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpe": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpv": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "bidding_strategy_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_base_campaign": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "campaign_bidding_strategy": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "campaign_bidding_strategy_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "click_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_action": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "conversion_action_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_action_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cross_device_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "customer_currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_descriptive_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_time_zone": {
+ "type": [
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "day_of_week": {
+ "type": [
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "string"
+ ]
+ },
+ "engagement_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "engagements": {
+ "type": [
+ "integer"
+ ]
+ },
+ "external_conversion_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "gmail_forwards": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gmail_saves": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gmail_secondary_clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "interaction_event_types": {
+ "type": [
+ "string"
+ ]
+ },
+ "interaction_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "interactions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "month_of_year": {
+ "type": [
+ "string"
+ ]
+ },
+ "quarter": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "value_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p100_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p25_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p50_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p75_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_view_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "view_through_conversions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "week": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "year": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/bidding_strategies.json b/_data/taps/schemas/google-ads/v1/json/bidding_strategies.json
new file mode 100644
index 000000000..73a7cd62f
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/bidding_strategies.json
@@ -0,0 +1,188 @@
+{
+ "properties": {
+ "campaign_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "effective_currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "enhanced_cpc": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "maximize_conversion_value": {
+ "properties": {
+ "cpc_bid_ceiling_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cpc_bid_floor_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "target_roas": {
+ "type": [
+ "singer.decimal"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "maximize_conversions": {
+ "properties": {
+ "cpc_bid_ceiling_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cpc_bid_floor_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "target_cpa": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "non_removed_campaign_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "resource_name": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "target_cpa": {
+ "properties": {
+ "cpc_bid_ceiling_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cpc_bid_floor_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "target_cpa_micros": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "target_impression_share": {
+ "properties": {
+ "cpc_bid_ceiling_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "location": {
+ "type": [
+ "string"
+ ]
+ },
+ "location_fraction_micros": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "target_roas": {
+ "properties": {
+ "cpc_bid_ceiling_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cpc_bid_floor_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "target_roas": {
+ "type": [
+ "singer.decimal"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "target_spend": {
+ "properties": {
+ "cpc_bid_ceiling_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "target_spend_micros": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/call_details.json b/_data/taps/schemas/google-ads/v1/json/call_details.json
new file mode 100644
index 000000000..df887f6d0
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/call_details.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "ad_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "call_duration_seconds": {
+ "type": [
+ "integer"
+ ]
+ },
+ "call_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "call_tracking_display_location": {
+ "type": [
+ "string"
+ ]
+ },
+ "caller_area_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "caller_country_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "end_call_date_time": {
+ "type": [
+ "string"
+ ]
+ },
+ "resource_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "start_call_date_time": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/campaign_audience_performance_report.json b/_data/taps/schemas/google-ads/v1/json/campaign_audience_performance_report.json
new file mode 100644
index 000000000..3b5dd07c1
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/campaign_audience_performance_report.json
@@ -0,0 +1,660 @@
+{
+ "properties": {
+ "absolute_top_impression_percentage": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_measurability": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_measurable_cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_measurable_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_viewability": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ad_network_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cost": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpc": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpe": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpv": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_page_views": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_time_on_site": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "bidding_strategy_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "bounce_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "campaign_advertising_channel_sub_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_advertising_channel_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_base_campaign": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "campaign_bidding_strategy": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "campaign_bidding_strategy_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_budget_amount_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_budget_explicitly_shared": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "campaign_budget_has_recommended_budget": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "campaign_budget_period": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_budget_recommended_budget_amount_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_budget_total_amount_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_campaign_budget": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "campaign_criterion_age_range_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_criterion_combined_audience_combined_audience": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_criterion_criterion_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_end_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "campaign_experiment_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_final_url_suffix": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_manual_cpc": {
+ "properties": {
+ "enhanced_cpc_enabled": {
+ "type": [
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "campaign_maximize_conversion_value": {
+ "properties": {
+ "target_roas": {
+ "type": [
+ "singer.decimal"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_percent_cpc": {
+ "properties": {
+ "enhanced_cpc_enabled": {
+ "type": [
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "campaign_serving_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_start_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "campaign_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_tracking_url_template": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_url_custom_parameters": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "click_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "content_budget_lost_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "content_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "content_rank_lost_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversion_action": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "conversion_action_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_action_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_adjustment": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "conversion_attribution_event_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_lag_bucket": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_or_adjustment_lag_bucket": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_per_current_model_attributed_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cross_device_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "current_model_attributed_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "current_model_attributed_conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "customer_currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_descriptive_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_time_zone": {
+ "type": [
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "day_of_week": {
+ "type": [
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "string"
+ ]
+ },
+ "engagement_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "engagements": {
+ "type": [
+ "integer"
+ ]
+ },
+ "external_conversion_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "gmail_forwards": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gmail_saves": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gmail_secondary_clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "hour": {
+ "type": [
+ "integer"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "interaction_event_types": {
+ "type": [
+ "string"
+ ]
+ },
+ "interaction_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "interactions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "invalid_click_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "invalid_clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "month_of_year": {
+ "type": [
+ "string"
+ ]
+ },
+ "percent_new_visitors": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "phone_calls": {
+ "type": [
+ "integer"
+ ]
+ },
+ "phone_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "phone_through_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "quarter": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "relative_ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_absolute_top_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_budget_lost_absolute_top_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_budget_lost_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_budget_lost_top_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_click_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_exact_match_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_rank_lost_absolute_top_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_rank_lost_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_rank_lost_top_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_top_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "slot": {
+ "type": [
+ "string"
+ ]
+ },
+ "top_impression_percentage": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_current_model_attributed_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p100_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p25_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p50_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p75_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_view_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "view_through_conversions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "week": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "year": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/campaign_budgets.json b/_data/taps/schemas/google-ads/v1/json/campaign_budgets.json
new file mode 100644
index 000000000..34712b079
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/campaign_budgets.json
@@ -0,0 +1,95 @@
+{
+ "properties": {
+ "amount_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "delivery_method": {
+ "type": [
+ "string"
+ ]
+ },
+ "explicitly_shared": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "has_recommended_budget": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "period": {
+ "type": [
+ "string"
+ ]
+ },
+ "recommended_budget_amount_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "recommended_budget_estimated_change_weekly_clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "recommended_budget_estimated_change_weekly_cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "recommended_budget_estimated_change_weekly_interactions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "recommended_budget_estimated_change_weekly_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "reference_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "resource_name": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "total_amount_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/campaign_criterion.json b/_data/taps/schemas/google-ads/v1/json/campaign_criterion.json
new file mode 100644
index 000000000..47fd17d6d
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/campaign_criterion.json
@@ -0,0 +1,54 @@
+{
+ "properties": {
+ "bid_modifier": {
+ "type": [
+ "float"
+ ]
+ },
+ "campaign": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "criterion": {
+ "type": [
+ "object"
+ ]
+ },
+ "criterion_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "negative": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "resource_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/campaign_labels.json b/_data/taps/schemas/google-ads/v1/json/campaign_labels.json
new file mode 100644
index 000000000..56a68b790
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/campaign_labels.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "campaign": {
+ "type": [
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "string"
+ ]
+ },
+ "resource_name": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/campaign_performance_report.json b/_data/taps/schemas/google-ads/v1/json/campaign_performance_report.json
new file mode 100644
index 000000000..927db0ffc
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/campaign_performance_report.json
@@ -0,0 +1,650 @@
+{
+ "properties": {
+ "absolute_top_impression_percentage": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_measurability": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_measurable_cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_measurable_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_viewability": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ad_network_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cost": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpc": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpe": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpv": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_page_views": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_time_on_site": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "bidding_strategy_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "bounce_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "campaign_advertising_channel_sub_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_advertising_channel_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_base_campaign": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "campaign_bidding_strategy": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "campaign_bidding_strategy_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_budget_amount_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_budget_explicitly_shared": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "campaign_budget_has_recommended_budget": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "campaign_budget_period": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_budget_recommended_budget_amount_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_budget_total_amount_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_campaign_budget": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "campaign_end_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "campaign_experiment_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_final_url_suffix": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_labels": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_manual_cpc": {
+ "properties": {
+ "enhanced_cpc_enabled": {
+ "type": [
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "campaign_maximize_conversion_value": {
+ "properties": {
+ "target_roas": {
+ "type": [
+ "singer.decimal"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_percent_cpc": {
+ "properties": {
+ "enhanced_cpc_enabled": {
+ "type": [
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "campaign_serving_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_start_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "campaign_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_tracking_url_template": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_url_custom_parameters": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "click_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "content_budget_lost_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "content_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "content_rank_lost_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversion_action": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "conversion_action_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_action_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_adjustment": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "conversion_attribution_event_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_lag_bucket": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_or_adjustment_lag_bucket": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_per_current_model_attributed_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cross_device_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "current_model_attributed_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "current_model_attributed_conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "customer_currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_descriptive_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_time_zone": {
+ "type": [
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "day_of_week": {
+ "type": [
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "string"
+ ]
+ },
+ "engagement_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "engagements": {
+ "type": [
+ "integer"
+ ]
+ },
+ "external_conversion_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "gmail_forwards": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gmail_saves": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gmail_secondary_clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "hour": {
+ "type": [
+ "integer"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "interaction_event_types": {
+ "type": [
+ "string"
+ ]
+ },
+ "interaction_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "interactions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "invalid_click_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "invalid_clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "month_of_year": {
+ "type": [
+ "string"
+ ]
+ },
+ "percent_new_visitors": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "phone_calls": {
+ "type": [
+ "integer"
+ ]
+ },
+ "phone_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "phone_through_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "quarter": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "relative_ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_absolute_top_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_budget_lost_absolute_top_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_budget_lost_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_budget_lost_top_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_click_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_exact_match_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_rank_lost_absolute_top_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_rank_lost_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_rank_lost_top_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_top_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "slot": {
+ "type": [
+ "string"
+ ]
+ },
+ "top_impression_percentage": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_current_model_attributed_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p100_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p25_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p50_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p75_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_view_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "view_through_conversions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "week": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "year": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/campaigns.json b/_data/taps/schemas/google-ads/v1/json/campaigns.json
new file mode 100644
index 000000000..fbccac492
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/campaigns.json
@@ -0,0 +1,1482 @@
+{
+ "properties": {
+ "accessibleBiddingStrategy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adServingOptimizationStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "advertisingChannelSubType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "advertisingChannelType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "appCampaignSetting": {
+ "properties": {
+ "appId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "appStore": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "biddingStrategyGoalType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "baseCampaign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "biddingStrategy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "biddingStrategyType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaignBudget": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "commission": {
+ "properties": {
+ "commissionRateMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "definitions": {
+ "properties": {
+ "AppCampaignSetting": {
+ "properties": {
+ "appId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "appStore": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "biddingStrategyGoalType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Commission": {
+ "properties": {
+ "commissionRateMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CustomParameter": {
+ "properties": {
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DynamicSearchAdsSetting": {
+ "properties": {
+ "domainName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "feeds": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "useSuppliedUrlsOnly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "FrequencyCapEntry": {
+ "properties": {
+ "cap": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "key": {
+ "properties": {
+ "eventType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "level": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeLength": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "timeUnit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "FrequencyCapKey": {
+ "properties": {
+ "eventType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "level": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeLength": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "timeUnit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "GeoTargetTypeSetting": {
+ "properties": {
+ "negativeGeoTargetType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "positiveGeoTargetType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "HotelSettingInfo": {
+ "properties": {
+ "hotelCenterId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "LocalCampaignSetting": {
+ "properties": {
+ "locationSourceType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ManualCpc": {
+ "properties": {
+ "enhancedCpcEnabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ManualCpm": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ManualCpv": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "MaximizeConversionValue": {
+ "properties": {
+ "cpcBidCeilingMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cpcBidFloorMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "targetRoas": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "MaximizeConversions": {
+ "properties": {
+ "cpcBidCeilingMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cpcBidFloorMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "targetCpa": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "NetworkSettings": {
+ "properties": {
+ "targetContentNetwork": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "targetGoogleSearch": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "targetPartnerSearchNetwork": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "targetSearchNetwork": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "OptimizationGoalSetting": {
+ "properties": {
+ "optimizationGoalTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PercentCpc": {
+ "properties": {
+ "cpcBidCeilingMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "enhancedCpcEnabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "RealTimeBiddingSetting": {
+ "properties": {
+ "optIn": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "SelectiveOptimization": {
+ "properties": {
+ "conversionActions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ShoppingSetting": {
+ "properties": {
+ "campaignPriority": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "enableLocal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "merchantId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "salesCountry": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "TargetCpa": {
+ "properties": {
+ "cpcBidCeilingMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cpcBidFloorMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "targetCpaMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "TargetCpm": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "TargetImpressionShare": {
+ "properties": {
+ "cpcBidCeilingMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "location": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locationFractionMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "TargetRestriction": {
+ "properties": {
+ "bidOnly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "targetingDimension": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "TargetRestrictionOperation": {
+ "properties": {
+ "operator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "properties": {
+ "bidOnly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "targetingDimension": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TargetRoas": {
+ "properties": {
+ "cpcBidCeilingMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cpcBidFloorMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "targetRoas": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "TargetSpend": {
+ "properties": {
+ "cpcBidCeilingMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "targetSpendMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "TargetingSetting": {
+ "properties": {
+ "targetRestrictionOperations": {
+ "items": {
+ "operator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "properties": {
+ "bidOnly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "targetingDimension": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "targetRestrictions": {
+ "items": {
+ "properties": {
+ "bidOnly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "targetingDimension": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "TrackingSetting": {
+ "properties": {
+ "trackingUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "VanityPharma": {
+ "properties": {
+ "vanityPharmaDisplayUrlMode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vanityPharmaText": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "dynamicSearchAdsSetting": {
+ "properties": {
+ "domainName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "feeds": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "languageCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "useSuppliedUrlsOnly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "excludedParentAssetFieldTypes": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "experimentType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "finalUrlSuffix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "frequencyCaps": {
+ "items": {
+ "cap": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "key": {
+ "properties": {
+ "eventType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "level": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeLength": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "timeUnit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "geoTargetTypeSetting": {
+ "properties": {
+ "negativeGeoTargetType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "positiveGeoTargetType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "hotelSetting": {
+ "properties": {
+ "hotelCenterId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "labels": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "localCampaignSetting": {
+ "properties": {
+ "locationSourceType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "manualCpc": {
+ "properties": {
+ "enhancedCpcEnabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "manualCpm": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "manualCpv": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "maximizeConversionValue": {
+ "properties": {
+ "cpcBidCeilingMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cpcBidFloorMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "targetRoas": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "maximizeConversions": {
+ "properties": {
+ "cpcBidCeilingMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cpcBidFloorMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "targetCpa": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "networkSettings": {
+ "properties": {
+ "targetContentNetwork": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "targetGoogleSearch": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "targetPartnerSearchNetwork": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "targetSearchNetwork": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "optimizationGoalSetting": {
+ "properties": {
+ "optimizationGoalTypes": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "optimizationScore": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "paymentMode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percentCpc": {
+ "properties": {
+ "cpcBidCeilingMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "enhancedCpcEnabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "realTimeBiddingSetting": {
+ "properties": {
+ "optIn": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resourceName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "selectiveOptimization": {
+ "properties": {
+ "conversionActions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "servingStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shoppingSetting": {
+ "properties": {
+ "campaignPriority": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "enableLocal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "merchantId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "salesCountry": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targetCpa": {
+ "properties": {
+ "cpcBidCeilingMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cpcBidFloorMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "targetCpaMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "targetCpm": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "targetImpressionShare": {
+ "properties": {
+ "cpcBidCeilingMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "location": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locationFractionMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "targetRoas": {
+ "properties": {
+ "cpcBidCeilingMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cpcBidFloorMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "targetRoas": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "targetSpend": {
+ "properties": {
+ "cpcBidCeilingMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "targetSpendMicros": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "targetingSetting": {
+ "properties": {
+ "targetRestrictionOperations": {
+ "items": {
+ "operator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "properties": {
+ "bidOnly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "targetingDimension": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "targetRestrictions": {
+ "items": {
+ "properties": {
+ "bidOnly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "targetingDimension": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trackingSetting": {
+ "properties": {
+ "trackingUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trackingUrlTemplate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "urlCustomParameters": {
+ "items": {
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "urlExpansionOptOut": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "vanityPharma": {
+ "properties": {
+ "vanityPharmaDisplayUrlMode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vanityPharmaText": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "videoBrandSafetySuitability": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/carrier_constant.json b/_data/taps/schemas/google-ads/v1/json/carrier_constant.json
new file mode 100644
index 000000000..9426ed673
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/carrier_constant.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "country_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "resource_name": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/click_performance_report.json b/_data/taps/schemas/google-ads/v1/json/click_performance_report.json
new file mode 100644
index 000000000..36894d886
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/click_performance_report.json
@@ -0,0 +1,191 @@
+{
+ "properties": {
+ "ad_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_network_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_labels": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "click_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "click_view_ad_group_ad": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "click_view_area_of_interest": {
+ "properties": {
+ "city": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "country": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "metro": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "most_specific": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "region": {
+ "type": [
+ "object",
+ " string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "click_view_campaign_location_target": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "click_view_gclid": {
+ "type": [
+ "string"
+ ]
+ },
+ "click_view_location_of_presence": {
+ "properties": {
+ "city": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "country": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "metro": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "most_specific": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "region": {
+ "type": [
+ "object",
+ " string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "click_view_page_number": {
+ "type": [
+ "integer"
+ ]
+ },
+ "click_view_user_list": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_descriptive_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "device": {
+ "type": [
+ "string"
+ ]
+ },
+ "month_of_year": {
+ "type": [
+ "string"
+ ]
+ },
+ "slot": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/display_keyword_performance_report.json b/_data/taps/schemas/google-ads/v1/json/display_keyword_performance_report.json
new file mode 100644
index 000000000..e1bc6c556
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/display_keyword_performance_report.json
@@ -0,0 +1,464 @@
+{
+ "properties": {
+ "active_view_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_measurability": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_measurable_cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_measurable_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_viewability": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ad_group_base_ad_group": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "ad_group_criterion_criterion_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_criterion_effective_cpc_bid_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_criterion_effective_cpc_bid_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_effective_cpm_bid_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_criterion_effective_cpm_bid_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_effective_cpv_bid_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_criterion_effective_cpv_bid_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_final_mobile_urls": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_final_urls": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_keyword": {
+ "properties": {
+ "text": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ad_group_criterion_negative": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "ad_group_criterion_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_tracking_url_template": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_url_custom_parameters": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "ad_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_targeting_setting": {
+ "properties": {
+ "target_restrictions": {
+ "type": [
+ "object",
+ " string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ad_network_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cost": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpc": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpe": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpv": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "bidding_strategy_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_base_campaign": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "campaign_bidding_strategy": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "campaign_bidding_strategy_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_labels": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "click_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_action": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "conversion_action_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_action_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cross_device_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "customer_currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_descriptive_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_time_zone": {
+ "type": [
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "day_of_week": {
+ "type": [
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "string"
+ ]
+ },
+ "engagement_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "engagements": {
+ "type": [
+ "integer"
+ ]
+ },
+ "external_conversion_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "gmail_forwards": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gmail_saves": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gmail_secondary_clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "interaction_event_types": {
+ "type": [
+ "string"
+ ]
+ },
+ "interaction_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "interactions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "month_of_year": {
+ "type": [
+ "string"
+ ]
+ },
+ "quarter": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "value_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p100_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p25_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p50_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p75_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_view_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "view_through_conversions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "week": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "year": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/display_topics_performance_report.json b/_data/taps/schemas/google-ads/v1/json/display_topics_performance_report.json
new file mode 100644
index 000000000..b7346fe69
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/display_topics_performance_report.json
@@ -0,0 +1,465 @@
+{
+ "properties": {
+ "active_view_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_measurability": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_measurable_cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_measurable_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_viewability": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ad_group_base_ad_group": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "ad_group_criterion_bid_modifier": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ad_group_criterion_criterion_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_criterion_effective_cpc_bid_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_criterion_effective_cpc_bid_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_effective_cpm_bid_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_criterion_effective_cpm_bid_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_final_mobile_urls": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_final_urls": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_negative": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "ad_group_criterion_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_topic": {
+ "properties": {
+ "path": {
+ "type": [
+ "string"
+ ]
+ },
+ "topic_constant": {
+ "type": [
+ "object",
+ " string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ad_group_criterion_tracking_url_template": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_url_custom_parameters": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "ad_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_targeting_setting": {
+ "properties": {
+ "target_restrictions": {
+ "type": [
+ "object",
+ " string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ad_network_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cost": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpc": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpe": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpv": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "bidding_strategy_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_base_campaign": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "campaign_bidding_strategy": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "campaign_bidding_strategy_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_labels": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "click_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_action": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "conversion_action_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_action_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cross_device_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "customer_currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_descriptive_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_time_zone": {
+ "type": [
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "day_of_week": {
+ "type": [
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "string"
+ ]
+ },
+ "engagement_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "engagements": {
+ "type": [
+ "integer"
+ ]
+ },
+ "external_conversion_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "gmail_forwards": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gmail_saves": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gmail_secondary_clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "interaction_event_types": {
+ "type": [
+ "string"
+ ]
+ },
+ "interaction_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "interactions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "month_of_year": {
+ "type": [
+ "string"
+ ]
+ },
+ "quarter": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "value_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p100_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p25_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p50_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p75_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_view_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "view_through_conversions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "week": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "year": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/expanded_landing_page_report.json b/_data/taps/schemas/google-ads/v1/json/expanded_landing_page_report.json
new file mode 100644
index 000000000..32d6625bc
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/expanded_landing_page_report.json
@@ -0,0 +1,274 @@
+{
+ "properties": {
+ "active_view_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_measurability": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_measurable_cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_measurable_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_viewability": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ad_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_network_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cost": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpc": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpe": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpv": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "campaign_advertising_channel_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_labels": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "click_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cross_device_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "day_of_week": {
+ "type": [
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "string"
+ ]
+ },
+ "engagement_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "engagements": {
+ "type": [
+ "integer"
+ ]
+ },
+ "expanded_landing_page_view_expanded_final_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "interaction_event_types": {
+ "type": [
+ "string"
+ ]
+ },
+ "interaction_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "interactions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "mobile_friendly_clicks_percentage": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "month": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "month_of_year": {
+ "type": [
+ "string"
+ ]
+ },
+ "quarter": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "slot": {
+ "type": [
+ "string"
+ ]
+ },
+ "speed_score": {
+ "type": [
+ "integer"
+ ]
+ },
+ "valid_accelerated_mobile_pages_clicks_percentage": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_view_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "week": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "year": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/feed.json b/_data/taps/schemas/google-ads/v1/json/feed.json
new file mode 100644
index 000000000..c41a19ac6
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/feed.json
@@ -0,0 +1,119 @@
+{
+ "properties": {
+ "attribute_operations": {
+ "properties": {
+ "operation": {
+ "properties": {
+ "operator": {
+ "type": [
+ "string"
+ ]
+ },
+ "value": {
+ "properties": {
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_part_of_key": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "attributes": {
+ "properties": {
+ "attribute": {
+ "properties": {
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_part_of_key": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "origin": {
+ "type": [
+ "string"
+ ]
+ },
+ "resource_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "system_feed_generation_data": {
+ "type": [
+ "object"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/feed_item.json b/_data/taps/schemas/google-ads/v1/json/feed_item.json
new file mode 100644
index 000000000..281d12a87
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/feed_item.json
@@ -0,0 +1,322 @@
+{
+ "properties": {
+ "attribute_values": {
+ "properties": {
+ "attribute_value": {
+ "properties": {
+ "boolean_value": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "boolean_values": {
+ "properties": {
+ "value": {
+ "type": [
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "double_value": {
+ "type": [
+ "double"
+ ]
+ },
+ "double_values": {
+ "properties": {
+ "value": {
+ "type": [
+ "double"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "feed_attribute_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "integer_value": {
+ "type": [
+ "integer"
+ ]
+ },
+ "integer_values": {
+ "properties": {
+ "value": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "price_value": {
+ "properties": {
+ "amount_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "currency-code": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "string_value": {
+ "type": [
+ "string"
+ ]
+ },
+ "string_values": {
+ "properties": {
+ "value": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "end_date_time": {
+ "type": [
+ "string"
+ ]
+ },
+ "feed": {
+ "type": [
+ "string"
+ ]
+ },
+ "feed_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "geo_targeting_restriction": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "policy_infos": {
+ "properties": {
+ "info": {
+ "properties": {
+ "approval_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "feed_mapping_resource_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "placeholder_type_enum": {
+ "type": [
+ "string"
+ ]
+ },
+ "policy_topic_entries": {
+ "properties": {
+ "entry": {
+ "properties": {
+ "constraints": {
+ "properties": {
+ "value": {
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "evidences": {
+ "properties": {
+ "value": {
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "topic": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "quality_approval_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "quality_disapproval_reasons": {
+ "properties": {
+ "reason": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "review_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "validation_errors": {
+ "properties": {
+ "error": {
+ "properties": {
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "extra_info": {
+ "type": [
+ "string"
+ ]
+ },
+ "feed_attribute_ids": {
+ "properties": {
+ "id": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "validation_error": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "validation_status": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "resource_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "start_date_time": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "url_custom_parameters": {
+ "properties": {
+ "parameter": {
+ "properties": {
+ "key": {
+ "type": [
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/gender_performance_report.json b/_data/taps/schemas/google-ads/v1/json/gender_performance_report.json
new file mode 100644
index 000000000..984cadb6e
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/gender_performance_report.json
@@ -0,0 +1,459 @@
+{
+ "properties": {
+ "active_view_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_measurability": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_measurable_cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_measurable_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_viewability": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ad_group_base_ad_group": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "ad_group_criterion_bid_modifier": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ad_group_criterion_criterion_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_criterion_effective_cpc_bid_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_criterion_effective_cpc_bid_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_effective_cpm_bid_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_criterion_effective_cpm_bid_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_final_mobile_urls": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_final_urls": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_gender": {
+ "properties": {
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ad_group_criterion_negative": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "ad_group_criterion_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_tracking_url_template": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_url_custom_parameters": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "ad_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_targeting_setting": {
+ "properties": {
+ "target_restrictions": {
+ "type": [
+ "object",
+ " string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ad_network_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cost": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpc": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpe": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpv": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "bidding_strategy_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "bidding_strategy_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_base_campaign": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "campaign_bidding_strategy": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_labels": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "click_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_action": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "conversion_action_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_action_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cross_device_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "customer_currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_descriptive_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_time_zone": {
+ "type": [
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "day_of_week": {
+ "type": [
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "string"
+ ]
+ },
+ "engagement_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "engagements": {
+ "type": [
+ "integer"
+ ]
+ },
+ "external_conversion_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "gmail_forwards": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gmail_saves": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gmail_secondary_clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "interaction_event_types": {
+ "type": [
+ "string"
+ ]
+ },
+ "interaction_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "interactions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "month_of_year": {
+ "type": [
+ "string"
+ ]
+ },
+ "quarter": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "value_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p100_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p25_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p50_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p75_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_view_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "view_through_conversions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "week": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "year": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/geo_performance_report.json b/_data/taps/schemas/google-ads/v1/json/geo_performance_report.json
new file mode 100644
index 000000000..0a96f3eca
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/geo_performance_report.json
@@ -0,0 +1,289 @@
+{
+ "properties": {
+ "ad_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_network_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cost": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpc": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpv": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_labels": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_action": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "conversion_action_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_action_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cross_device_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "customer_currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_descriptive_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_time_zone": {
+ "type": [
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "day_of_week": {
+ "type": [
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "string"
+ ]
+ },
+ "external_conversion_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "geo_target_city": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "geo_target_metro": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "geo_target_most_specific_location": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "geo_target_region": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "geographic_view_country_criterion_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "geographic_view_location_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "interaction_event_types": {
+ "type": [
+ "string"
+ ]
+ },
+ "interaction_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "interactions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "month_of_year": {
+ "type": [
+ "string"
+ ]
+ },
+ "quarter": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "value_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_view_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "view_through_conversions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "week": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "year": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/keywordless_query_report.json b/_data/taps/schemas/google-ads/v1/json/keywordless_query_report.json
new file mode 100644
index 000000000..cbeda66f0
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/keywordless_query_report.json
@@ -0,0 +1,231 @@
+{
+ "properties": {
+ "ad_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpc": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_labels": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_action": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "conversion_action_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_action_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cross_device_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "customer_currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_descriptive_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_time_zone": {
+ "type": [
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "day_of_week": {
+ "type": [
+ "string"
+ ]
+ },
+ "dynamic_search_ads_search_term_view_headline": {
+ "type": [
+ "string"
+ ]
+ },
+ "dynamic_search_ads_search_term_view_landing_page": {
+ "type": [
+ "string"
+ ]
+ },
+ "dynamic_search_ads_search_term_view_page_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "dynamic_search_ads_search_term_view_search_term": {
+ "type": [
+ "string"
+ ]
+ },
+ "external_conversion_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "month_of_year": {
+ "type": [
+ "string"
+ ]
+ },
+ "quarter": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "value_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "webpage": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "week": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "year": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/keywords_performance_report.json b/_data/taps/schemas/google-ads/v1/json/keywords_performance_report.json
new file mode 100644
index 000000000..b1fa07988
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/keywords_performance_report.json
@@ -0,0 +1,682 @@
+{
+ "properties": {
+ "absolute_top_impression_percentage": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_measurability": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_measurable_cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_measurable_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_viewability": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ad_group_base_ad_group": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "ad_group_criterion_approval_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_criterion_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_criterion_effective_cpc_bid_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_criterion_effective_cpc_bid_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_effective_cpm_bid_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_criterion_final_mobile_urls": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_final_url_suffix": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_final_urls": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_keyword": {
+ "properties": {
+ "match_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "text": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ad_group_criterion_negative": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "ad_group_criterion_position_estimates": {
+ "properties": {
+ "estimated_add_clicks_at_first_position_cpc": {
+ "type": [
+ "integer"
+ ]
+ },
+ "estimated_add_cost_at_first_position_cpc": {
+ "type": [
+ "integer"
+ ]
+ },
+ "first_page_cpc_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "first_position_cpc_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "top_of_page_cpc_micros": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ad_group_criterion_quality_info": {
+ "properties": {
+ "creative_quality_score": {
+ "type": [
+ "string"
+ ]
+ },
+ "post_click_quality_score": {
+ "type": [
+ "string"
+ ]
+ },
+ "quality_score": {
+ "type": [
+ "integer"
+ ]
+ },
+ "search_predicted_ctr": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ad_group_criterion_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_system_serving_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_topic": {
+ "properties": {
+ "topic_constant": {
+ "type": [
+ "object",
+ " string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ad_group_criterion_tracking_url_template": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_url_custom_parameters": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "ad_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_network_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cost": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpc": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpe": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpv": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_page_views": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_time_on_site": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "bounce_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "campaign_base_campaign": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "campaign_bidding_strategy": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "campaign_bidding_strategy_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_labels": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_manual_cpc": {
+ "properties": {
+ "enhanced_cpc_enabled": {
+ "type": [
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_percent_cpc": {
+ "properties": {
+ "enhanced_cpc_enabled": {
+ "type": [
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "campaign_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "click_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_action": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "conversion_action_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_action_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_adjustment": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "conversion_lag_bucket": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_or_adjustment_lag_bucket": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_per_current_model_attributed_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cross_device_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "current_model_attributed_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "current_model_attributed_conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "customer_currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_descriptive_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_time_zone": {
+ "type": [
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "day_of_week": {
+ "type": [
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "string"
+ ]
+ },
+ "engagement_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "engagements": {
+ "type": [
+ "integer"
+ ]
+ },
+ "external_conversion_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "gmail_forwards": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gmail_saves": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gmail_secondary_clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "historical_creative_quality_score": {
+ "type": [
+ "string"
+ ]
+ },
+ "historical_landing_page_quality_score": {
+ "type": [
+ "string"
+ ]
+ },
+ "historical_quality_score": {
+ "type": [
+ "integer"
+ ]
+ },
+ "historical_search_predicted_ctr": {
+ "type": [
+ "string"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "interaction_event_types": {
+ "type": [
+ "string"
+ ]
+ },
+ "interaction_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "interactions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "month_of_year": {
+ "type": [
+ "string"
+ ]
+ },
+ "percent_new_visitors": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "quarter": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "search_absolute_top_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_budget_lost_absolute_top_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_budget_lost_top_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_exact_match_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_rank_lost_absolute_top_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_rank_lost_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_rank_lost_top_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_top_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "slot": {
+ "type": [
+ "string"
+ ]
+ },
+ "top_impression_percentage": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_current_model_attributed_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p100_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p25_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p50_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p75_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_view_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "view_through_conversions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "week": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "year": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/labels.json b/_data/taps/schemas/google-ads/v1/json/labels.json
new file mode 100644
index 000000000..c6104e13b
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/labels.json
@@ -0,0 +1,41 @@
+{
+ "properties": {
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "resource_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "text_label": {
+ "properties": {
+ "background_color": {
+ "type": [
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/landing_page_report.json b/_data/taps/schemas/google-ads/v1/json/landing_page_report.json
new file mode 100644
index 000000000..5ae2655f0
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/landing_page_report.json
@@ -0,0 +1,274 @@
+{
+ "properties": {
+ "active_view_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_measurability": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_measurable_cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_measurable_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_viewability": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ad_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_network_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cost": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpc": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpe": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpv": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "campaign_advertising_channel_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_labels": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "click_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cross_device_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "day_of_week": {
+ "type": [
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "string"
+ ]
+ },
+ "engagement_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "engagements": {
+ "type": [
+ "integer"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "interaction_event_types": {
+ "type": [
+ "string"
+ ]
+ },
+ "interaction_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "interactions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "landing_page_view_unexpanded_final_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobile_friendly_clicks_percentage": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "month": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "month_of_year": {
+ "type": [
+ "string"
+ ]
+ },
+ "quarter": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "slot": {
+ "type": [
+ "string"
+ ]
+ },
+ "speed_score": {
+ "type": [
+ "integer"
+ ]
+ },
+ "valid_accelerated_mobile_pages_clicks_percentage": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_view_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "week": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "year": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/language_constant.json b/_data/taps/schemas/google-ads/v1/json/language_constant.json
new file mode 100644
index 000000000..00994b259
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/language_constant.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "code": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "resouce_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "targetable": {
+ "type": [
+ "boolean"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/mobile_app_category_constant.json b/_data/taps/schemas/google-ads/v1/json/mobile_app_category_constant.json
new file mode 100644
index 000000000..45c7d0126
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/mobile_app_category_constant.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "resource_name": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/mobile_device_constant.json b/_data/taps/schemas/google-ads/v1/json/mobile_device_constant.json
new file mode 100644
index 000000000..3a2697615
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/mobile_device_constant.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "manufacturer_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "operating_system_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "resource_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/operating_system_verison_constant.json b/_data/taps/schemas/google-ads/v1/json/operating_system_verison_constant.json
new file mode 100644
index 000000000..bb85266c1
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/operating_system_verison_constant.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "operator_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "os_major_version": {
+ "type": [
+ "integer"
+ ]
+ },
+ "os_minor_version": {
+ "type": [
+ "integer"
+ ]
+ },
+ "resource_name": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/placeholder_feed_item_report.json b/_data/taps/schemas/google-ads/v1/json/placeholder_feed_item_report.json
new file mode 100644
index 000000000..890cadabc
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/placeholder_feed_item_report.json
@@ -0,0 +1,394 @@
+{
+ "properties": {
+ "ad_group_ad_resource_name": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "ad_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_network_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cost": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpc": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpe": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpv": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_labels": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "click_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_action": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "conversion_action_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_action_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cross_device_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "customer_currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_descriptive_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_time_zone": {
+ "type": [
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "day_of_week": {
+ "type": [
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "string"
+ ]
+ },
+ "engagement_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "engagements": {
+ "type": [
+ "integer"
+ ]
+ },
+ "external_conversion_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "feed_attributes": {
+ "properties": {
+ "attribute": {
+ "properties": {
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_part_of_key": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "feed_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "feed_item_attribute_values": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "feed_item_end_date_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "feed_item_feed": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "feed_item_geo_targeting_restriction": {
+ "type": [
+ "string"
+ ]
+ },
+ "feed_item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "feed_item_policy_infos": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "feed_item_start_date_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "feed_item_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "feed_item_url_custom_parameters": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "feed_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "feed_origin": {
+ "type": [
+ "string"
+ ]
+ },
+ "feed_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "interaction_event_types": {
+ "type": [
+ "string"
+ ]
+ },
+ "interaction_on_this_extension": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "interaction_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "interactions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "month_of_year": {
+ "type": [
+ "string"
+ ]
+ },
+ "placeholder_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "quarter": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "slot": {
+ "type": [
+ "string"
+ ]
+ },
+ "value_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_view_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "week": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "year": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/placeholder_report.json b/_data/taps/schemas/google-ads/v1/json/placeholder_report.json
new file mode 100644
index 000000000..4f260d050
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/placeholder_report.json
@@ -0,0 +1,281 @@
+{
+ "properties": {
+ "ad_group_ad_resource_name": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "ad_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_network_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cost": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpc": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpe": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpv": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_labels": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "click_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_action": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "conversion_action_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_action_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cross_device_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "customer_descriptive_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "day_of_week": {
+ "type": [
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "string"
+ ]
+ },
+ "engagement_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "engagements": {
+ "type": [
+ "integer"
+ ]
+ },
+ "external_conversion_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "feed_placeholder_view_placeholder_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "interaction_event_types": {
+ "type": [
+ "string"
+ ]
+ },
+ "interaction_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "interactions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "month_of_year": {
+ "type": [
+ "string"
+ ]
+ },
+ "quarter": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "slot": {
+ "type": [
+ "string"
+ ]
+ },
+ "value_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_view_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "view_through_conversions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "week": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "year": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/placement_performance_report.json b/_data/taps/schemas/google-ads/v1/json/placement_performance_report.json
new file mode 100644
index 000000000..915d4e7c5
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/placement_performance_report.json
@@ -0,0 +1,454 @@
+{
+ "properties": {
+ "active_view_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_measurability": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "active_view_measurable_cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_measurable_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "active_view_viewability": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ad_group_base_ad_group": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "ad_group_criterion_bid_modifier": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ad_group_criterion_criterion_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_criterion_effective_cpc_bid_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_criterion_effective_cpc_bid_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_effective_cpm_bid_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_criterion_effective_cpm_bid_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_final_mobile_urls": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_final_urls": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_negative": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "ad_group_criterion_placement": {
+ "properties": {
+ "url": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ad_group_criterion_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_tracking_url_template": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_criterion_url_custom_parameters": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "ad_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_targeting_setting": {
+ "properties": {
+ "target_restrictions": {
+ "type": [
+ "object",
+ " string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ad_network_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cost": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpc": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpe": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpv": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "bidding_strategy_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "bidding_strategy_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_base_campaign": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "campaign_bidding_strategy": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_labels": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "click_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_action": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "conversion_action_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_action_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cross_device_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "customer_currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_descriptive_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_time_zone": {
+ "type": [
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "day_of_week": {
+ "type": [
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "string"
+ ]
+ },
+ "engagement_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "engagements": {
+ "type": [
+ "integer"
+ ]
+ },
+ "external_conversion_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "gmail_forwards": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gmail_saves": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gmail_secondary_clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "interaction_event_types": {
+ "type": [
+ "string"
+ ]
+ },
+ "interaction_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "interactions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "month_of_year": {
+ "type": [
+ "string"
+ ]
+ },
+ "quarter": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "value_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p100_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p25_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p50_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p75_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_view_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "view_through_conversions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "week": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "year": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/search_query_performance_report.json b/_data/taps/schemas/google-ads/v1/json/search_query_performance_report.json
new file mode 100644
index 000000000..9b4db8b4b
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/search_query_performance_report.json
@@ -0,0 +1,355 @@
+{
+ "properties": {
+ "absolute_top_impression_percentage": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ad_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_network_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cost": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpc": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpe": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpv": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_labels": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_action": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "conversion_action_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_action_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cross_device_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "customer_currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_descriptive_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_time_zone": {
+ "type": [
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "day_of_week": {
+ "type": [
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "string"
+ ]
+ },
+ "engagement_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "engagements": {
+ "type": [
+ "integer"
+ ]
+ },
+ "external_conversion_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "final_urls": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "interaction_event_types": {
+ "type": [
+ "string"
+ ]
+ },
+ "interaction_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "interactions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "keyword": {
+ "properties": {
+ "ad_group_criterion": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "info": {
+ "properties": {
+ "text": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "month": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "month_of_year": {
+ "type": [
+ "string"
+ ]
+ },
+ "quarter": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "search_term_match_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "search_term_view_search_term": {
+ "type": [
+ "string"
+ ]
+ },
+ "search_term_view_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "top_impression_percentage": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "tracking_url_template": {
+ "type": [
+ "string"
+ ]
+ },
+ "value_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p100_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p25_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p50_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p75_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_view_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "view_through_conversions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "week": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "year": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/shopping_performance_report.json b/_data/taps/schemas/google-ads/v1/json/shopping_performance_report.json
new file mode 100644
index 000000000..51931d30c
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/shopping_performance_report.json
@@ -0,0 +1,352 @@
+{
+ "properties": {
+ "ad_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_network_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpc": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_labels": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "click_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_action": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "conversion_action_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_action_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cross_device_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "customer_descriptive_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "day_of_week": {
+ "type": [
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "string"
+ ]
+ },
+ "external_conversion_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "product_aggregator_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "product_bidding_category_level1": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "product_bidding_category_level2": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "product_bidding_category_level3": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "product_bidding_category_level4": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "product_bidding_category_level5": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "product_brand": {
+ "type": [
+ "string"
+ ]
+ },
+ "product_channel": {
+ "type": [
+ "string"
+ ]
+ },
+ "product_channel_exclusivity": {
+ "type": [
+ "string"
+ ]
+ },
+ "product_condition": {
+ "type": [
+ "string"
+ ]
+ },
+ "product_country": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "product_custom_attribute0": {
+ "type": [
+ "string"
+ ]
+ },
+ "product_custom_attribute1": {
+ "type": [
+ "string"
+ ]
+ },
+ "product_custom_attribute2": {
+ "type": [
+ "string"
+ ]
+ },
+ "product_custom_attribute3": {
+ "type": [
+ "string"
+ ]
+ },
+ "product_custom_attribute4": {
+ "type": [
+ "string"
+ ]
+ },
+ "product_item_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "product_language": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "product_merchant_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "product_store_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "product_title": {
+ "type": [
+ "string"
+ ]
+ },
+ "product_type_l1": {
+ "type": [
+ "string"
+ ]
+ },
+ "product_type_l2": {
+ "type": [
+ "string"
+ ]
+ },
+ "product_type_l3": {
+ "type": [
+ "string"
+ ]
+ },
+ "product_type_l4": {
+ "type": [
+ "string"
+ ]
+ },
+ "product_type_l5": {
+ "type": [
+ "string"
+ ]
+ },
+ "quarter": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "search_absolute_top_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_click_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "search_impression_share": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "week": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "year": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/topic_constant.json b/_data/taps/schemas/google-ads/v1/json/topic_constant.json
new file mode 100644
index 000000000..9e4f26a6a
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/topic_constant.json
@@ -0,0 +1,31 @@
+{
+ "properties": {
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "path": {
+ "properties": {
+ "item": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "resource_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "topic_constant_parent": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/user_interest.json b/_data/taps/schemas/google-ads/v1/json/user_interest.json
new file mode 100644
index 000000000..a9617f9b3
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/user_interest.json
@@ -0,0 +1,111 @@
+{
+ "properties": {
+ "availabilities": {
+ "properties": {
+ "availability": {
+ "properties": {
+ "channel": {
+ "properties": {
+ "advertising_channel_sub_type": {
+ "properties": {
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "advertising_channel_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "availability_mode": {
+ "type": [
+ "string"
+ ]
+ },
+ "include_default_channel_sub_type": {
+ "type": [
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "locale": {
+ "properties": {
+ "item": {
+ "properties": {
+ "availability_mode": {
+ "type": [
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "language_code": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "launched_to_all": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "resource_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "taxonomy_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "user_interest_parent": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/user_list.json b/_data/taps/schemas/google-ads/v1/json/user_list.json
new file mode 100644
index 000000000..bfff4f3c9
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/user_list.json
@@ -0,0 +1,109 @@
+{
+ "properties": {
+ "access_reason": {
+ "type": [
+ "string"
+ ]
+ },
+ "account_user_list_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "closing_reason": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "eligible_for_display": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "eligible_for_search": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "integration_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "match_rate_percentage": {
+ "type": [
+ "integer"
+ ]
+ },
+ "membership_life_span": {
+ "type": [
+ "integer"
+ ]
+ },
+ "membership_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "read_only": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "resource_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "size_for_display": {
+ "type": [
+ "integer"
+ ]
+ },
+ "size_for_search": {
+ "type": [
+ "integer"
+ ]
+ },
+ "size_range_for_display": {
+ "type": [
+ "string"
+ ]
+ },
+ "size_range_for_search": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "user_list": {
+ "type": [
+ "object"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/user_location_performance_report.json b/_data/taps/schemas/google-ads/v1/json/user_location_performance_report.json
new file mode 100644
index 000000000..c2bc1b6eb
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/user_location_performance_report.json
@@ -0,0 +1,289 @@
+{
+ "properties": {
+ "ad_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_network_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cost": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpc": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpv": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_labels": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_action": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "conversion_action_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_action_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cross_device_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "customer_currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_descriptive_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_time_zone": {
+ "type": [
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "day_of_week": {
+ "type": [
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "string"
+ ]
+ },
+ "external_conversion_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "geo_target_city": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "geo_target_metro": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "geo_target_most_specific_location": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "geo_target_region": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "interaction_event_types": {
+ "type": [
+ "string"
+ ]
+ },
+ "interaction_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "interactions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "month_of_year": {
+ "type": [
+ "string"
+ ]
+ },
+ "quarter": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "user_location_view_country_criterion_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "user_location_view_targeting_location": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "value_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "value_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_view_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "view_through_conversions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "week": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "year": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ads/v1/json/video_performance_report.json b/_data/taps/schemas/google-ads/v1/json/video_performance_report.json
new file mode 100644
index 000000000..da8bde306
--- /dev/null
+++ b/_data/taps/schemas/google-ads/v1/json/video_performance_report.json
@@ -0,0 +1,285 @@
+{
+ "properties": {
+ "ad_group_ad_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ad_group_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_group_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "ad_network_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_from_interactions_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "all_conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpm": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "average_cpv": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_labels": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "click_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_action": {
+ "type": [
+ "object",
+ " string"
+ ]
+ },
+ "conversion_action_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_action_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "conversions_value": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_micros": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cost_per_conversion": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "cross_device_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "customer_currency_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_descriptive_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_time_zone": {
+ "type": [
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "day_of_week": {
+ "type": [
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "string"
+ ]
+ },
+ "engagement_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "engagements": {
+ "type": [
+ "integer"
+ ]
+ },
+ "external_conversion_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "month_of_year": {
+ "type": [
+ "string"
+ ]
+ },
+ "quarter": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "value_per_all_conversions": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_channel_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "video_duration_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "video_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "video_quartile_p100_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p25_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p50_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_quartile_p75_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_title": {
+ "type": [
+ "string"
+ ]
+ },
+ "video_view_rate": {
+ "type": [
+ "singer.decimal"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "view_through_conversions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "week": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "year": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-analytics-360/v1/google-analytics-360-v1-foreign-keys.yml b/_data/taps/schemas/google-analytics-360/v1/google-analytics-360-v1-foreign-keys.yml
new file mode 100644
index 000000000..ce56bb189
--- /dev/null
+++ b/_data/taps/schemas/google-analytics-360/v1/google-analytics-360-v1-foreign-keys.yml
@@ -0,0 +1,49 @@
+tap: google-analytics-360
+version: '1'
+keys:
+ ga_sessions_visitId:
+ - table: ga_sessions
+ keys:
+ - visitId
+ - table: ga_session_hits
+ keys:
+ - visitId
+ ga_sessions_fullVisitorId:
+ - table: ga_sessions
+ keys:
+ - fullVisitorId
+ - table: ga_session_hits
+ keys:
+ - fullVisitorId
+ ga_sessions_visitStartTime:
+ - table: ga_sessions
+ keys:
+ - visitStartTime
+ - table: ga_session_hits
+ keys:
+ - visitStartTime
+ ga_session_hits_hitNumber:
+ - table: ga_sessions_hits
+ keys:
+ - hitNumber
+tables:
+- table-name: ga_sessions
+ join:
+ - table-name: ga_session_hits
+ keys:
+ - key: visitId
+ foreign-key: visitId
+ - key: fullVisitorId
+ foreign-key: fullVisitorId
+ - key: visitStartTime
+ foreign-key: visitStartTime
+- table-name: ga_session_hits
+ join:
+ - table-name: ga_sessions
+ keys:
+ - key: visitId
+ foreign-key: visitId
+ - key: fullVisitorId
+ foreign-key: fullVisitorId
+ - key: visitStartTime
+ foreign-key: visitStartTime
diff --git a/_data/taps/schemas/google-analytics-360/v1/google-analytics-360-v1-tables.yml b/_data/taps/schemas/google-analytics-360/v1/google-analytics-360-v1-tables.yml
new file mode 100644
index 000000000..a7d6a79ff
--- /dev/null
+++ b/_data/taps/schemas/google-analytics-360/v1/google-analytics-360-v1-tables.yml
@@ -0,0 +1,27 @@
+tap: google-analytics-360
+version: '1'
+tables:
+- name: ga_sessions
+ description: This table contains information about general Google Analytics sessions.
+ links:
+ singer-schema: https://github.com/singer-io/tap-ga360/blob/master/tap_ga360/schemas/ga_sessions.json
+ api-method: https://support.google.com/analytics/answer/3437719?hl=en&ref_topic=3416089
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - fullVisitorId
+ - visitId
+ - visitStartTime
+ replication-key: date
+- name: ga_session_hits
+ description: This table contains information about Google Analytics session hits.
+ links:
+ singer-schema: https://github.com/singer-io/tap-ga360/blob/master/tap_ga360/schemas/ga_session_hits.json
+ api-method: https://support.google.com/analytics/answer/3437719?hl=en&ref_topic=3416089
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - visitId
+ - fullVisitorId
+ - visitStartTime
+ - hitNumber
diff --git a/_data/taps/schemas/google-analytics-360/v1/json/ga_session_hits.json b/_data/taps/schemas/google-analytics-360/v1/json/ga_session_hits.json
new file mode 100644
index 000000000..2e4a9863e
--- /dev/null
+++ b/_data/taps/schemas/google-analytics-360/v1/json/ga_session_hits.json
@@ -0,0 +1,1350 @@
+{
+ "properties": {
+ "appInfo": {
+ "properties": {
+ "appId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "appInstallerId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "appName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "appVersion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exitScreenName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "landingScreenName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "screenDepth": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "screenName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "contentGroup": {
+ "properties": {
+ "contentGroup1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contentGroup2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contentGroup3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contentGroup4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contentGroup5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contentGroupUniqueViews1": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "contentGroupUniqueViews2": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "contentGroupUniqueViews3": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "contentGroupUniqueViews4": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "contentGroupUniqueViews5": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "previousContentGroup1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "previousContentGroup2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "previousContentGroup3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "previousContentGroup4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "previousContentGroup5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "contentInfo": {
+ "properties": {
+ "contentDescription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customDimensions": {
+ "items": {
+ "properties": {
+ "index": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "customMetrics": {
+ "items": {
+ "properties": {
+ "index": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "customVariables": {
+ "items": {
+ "properties": {
+ "customVarName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customVarValue": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "dataSource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eCommerceAction": {
+ "properties": {
+ "action_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "step": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "eventInfo": {
+ "properties": {
+ "eventAction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eventCategory": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eventLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eventValue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "exceptionInfo": {
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exceptions": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fatalExceptions": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "isFatal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "experiment": {
+ "items": {
+ "properties": {
+ "experimentId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "experimentVariant": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "fullVisitorId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hitNumber": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "hour": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "isEntrance": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "isExit": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "isInteraction": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "isSecure": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "item": {
+ "properties": {
+ "currencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "itemQuantity": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "itemRevenue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "localItemRevenue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "productCategory": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "productName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "productSku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transactionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "latencyTracking": {
+ "properties": {
+ "domContentLoadedTime": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "domInteractiveTime": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "domLatencyMetricsSample": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "domainLookupTime": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "pageDownloadTime": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "pageLoadSample": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "pageLoadTime": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "redirectionTime": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "serverConnectionTime": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "serverResponseTime": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "speedMetricsSample": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "userTimingCategory": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "userTimingLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "userTimingSample": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "userTimingValue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "userTimingVariable": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "minute": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "page": {
+ "properties": {
+ "hostname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pagePath": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pagePathLevel1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pagePathLevel2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pagePathLevel3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pagePathLevel4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pageTitle": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "searchCategory": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "searchKeyword": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "product": {
+ "items": {
+ "properties": {
+ "customDimensions": {
+ "items": {
+ "properties": {
+ "index": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "customMetrics": {
+ "items": {
+ "properties": {
+ "index": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "isClick": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "isImpression": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "localProductPrice": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "localProductRefundAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "localProductRevenue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "productBrand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "productListName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "productListPosition": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "productPrice": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "productQuantity": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "productRefundAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "productRevenue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "productSKU": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "productVariant": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "v2ProductCategory": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "v2ProductName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "promotion": {
+ "items": {
+ "properties": {
+ "promoCreative": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promoId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promoName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promoPosition": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "promotionActionInfo": {
+ "properties": {
+ "promoIsClick": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "promoIsView": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "publisher": {
+ "properties": {
+ "adsClicked": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adsPagesViewed": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adsRevenue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adsUnitsMatched": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adsUnitsViewed": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adsViewed": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adsenseBackfillDfpClicks": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adsenseBackfillDfpImpressions": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adsenseBackfillDfpMatchedQueries": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adsenseBackfillDfpMeasurableImpressions": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adsenseBackfillDfpPagesViewed": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adsenseBackfillDfpQueries": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adsenseBackfillDfpRevenueCpc": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adsenseBackfillDfpRevenueCpm": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adsenseBackfillDfpViewableImpressions": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adxBackfillDfpClicks": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adxBackfillDfpImpressions": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adxBackfillDfpMatchedQueries": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adxBackfillDfpMeasurableImpressions": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adxBackfillDfpPagesViewed": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adxBackfillDfpQueries": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adxBackfillDfpRevenueCpc": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adxBackfillDfpRevenueCpm": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adxBackfillDfpViewableImpressions": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adxClicks": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adxImpressions": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adxMatchedQueries": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adxMeasurableImpressions": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adxPagesViewed": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adxQueries": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adxRevenue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adxViewableImpressions": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "dfpAdGroup": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dfpAdUnits": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dfpClicks": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "dfpImpressions": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "dfpMatchedQueries": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "dfpMeasurableImpressions": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "dfpNetworkId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dfpPagesViewed": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "dfpQueries": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "dfpRevenueCpc": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "dfpRevenueCpm": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "dfpViewableImpressions": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "measurableAdsViewed": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "viewableAdsViewed": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "referer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund": {
+ "properties": {
+ "localRefundAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "refundAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "social": {
+ "properties": {
+ "hasSocialSourceReferral": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "socialInteractionAction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "socialInteractionNetwork": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "socialInteractionNetworkAction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "socialInteractionTarget": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "socialInteractions": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "socialNetwork": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uniqueSocialInteractions": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "sourcePropertyInfo": {
+ "properties": {
+ "sourcePropertyDisplayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sourcePropertyTrackingId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "time": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transaction": {
+ "properties": {
+ "affiliation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "localTransactionRevenue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "localTransactionShipping": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "localTransactionTax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transactionCoupon": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transactionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transactionRevenue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transactionShipping": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transactionTax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visitId": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "visitStartTime": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-analytics-360/v1/json/ga_sessions.json b/_data/taps/schemas/google-analytics-360/v1/json/ga_sessions.json
new file mode 100644
index 000000000..af21a092e
--- /dev/null
+++ b/_data/taps/schemas/google-analytics-360/v1/json/ga_sessions.json
@@ -0,0 +1,502 @@
+{
+ "properties": {
+ "channelGrouping": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "clientId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customDimensions": {
+ "items": {
+ "properties": {
+ "index": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "device": {
+ "properties": {
+ "browser": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "browserSize": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "browserVersion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deviceCategory": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "flashVersion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "javaEnabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mobileDeviceBranding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mobileDeviceInfo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mobileDeviceMarketingName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mobileDeviceModel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mobileInputSelector": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operatingSystem": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operatingSystemVersion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "screenColors": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "screenResolution": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "fullVisitorId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "geoNetwork": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cityId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "continent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metro": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "networkDomain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "networkLocation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subContinent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "socialEngagementType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "totals": {
+ "properties": {
+ "bounces": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "hits": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "newVisits": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "pageviews": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "screenviews": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "sessionQualityDim": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "timeOnScreen": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "timeOnSite": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "totalTransactionRevenue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transactionRevenue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transactions": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "uniqueScreenViews": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "visits": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trafficSource": {
+ "properties": {
+ "adContent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adwordsClickInfo": {
+ "properties": {
+ "adGroupId": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "adNetworkType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaignId": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "creativeId": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "criteriaId": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "criteriaParameters": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customerId": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "gclId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "isVideoAd": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "page": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "slot": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targetingCriteria": {
+ "properties": {
+ "boomUserlistId": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "campaign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaignCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "isTrueDirect": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "keyword": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "medium": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referralPath": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "userId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visitId": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "visitNumber": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "visitStartTime": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "visitorId": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-analytics-4/v1/google-analytics-4-v1-tables.yml b/_data/taps/schemas/google-analytics-4/v1/google-analytics-4-v1-tables.yml
new file mode 100644
index 000000000..8381773a9
--- /dev/null
+++ b/_data/taps/schemas/google-analytics-4/v1/google-analytics-4-v1-tables.yml
@@ -0,0 +1,19 @@
+tap: google-analytics-4
+version: '1'
+tables:
+- name: sample_report
+ custom-report: true
+ description: |
+ For every report you create in the integration's settings page, Stitch will create a corresponding table in your destination. The table will contain the [metrics and dimensions you select](#track-data), along with a few columns Stitch requires for replication.
+
+ **Note**: Every row in this table pertains to a specific day. Use the `start_date` and `end_date` columns to identify what day the row is for.
+
+ The `{{table.table-details.primary-key}}` column is a Stitch-generated SHA 256 hash that should be used as a Primary Key. The hash consists of a UTF-8 encoded JSON list containing:
+
+ - The account ID, web property ID, and profile ID of the associated report
+ - Pairs of `ga:dimension_name` and `dimension_value`
+ - The `start_date` and `end_date` values for the record, in `YYYY-mm-dd` format
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: _sdc_record_hash
+ replication-key: start_date
diff --git a/_data/taps/schemas/google-analytics-4/v1/json/sample_report.json b/_data/taps/schemas/google-analytics-4/v1/json/sample_report.json
new file mode 100644
index 000000000..9fe09cd7d
--- /dev/null
+++ b/_data/taps/schemas/google-analytics-4/v1/json/sample_report.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "profile_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "web_property_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "_sdc_record_hash": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-analytics-adwords/v05-12-2017/google-analytics-adwords-v05-12-2017-tables.yml b/_data/taps/schemas/google-analytics-adwords/v05-12-2017/google-analytics-adwords-v05-12-2017-tables.yml
new file mode 100644
index 000000000..2009659cf
--- /dev/null
+++ b/_data/taps/schemas/google-analytics-adwords/v05-12-2017/google-analytics-adwords-v05-12-2017-tables.yml
@@ -0,0 +1,27 @@
+tap: google-analytics-adwords
+version: 05-12-2017
+tables:
+- name: report
+ description: |
+ The `report` table contains info about your active campaigns and the ads contained within those campaigns.
+
+ **Note**: The attributes in this table are dependent upon the [Metrics and Dimensions selected during setup](#choose-your-data). The schema shown below uses the Metrics and Dimensions from an older version of Stitch's Google AdWords integration.
+
+ #### Table Rows and Data Pagination
+
+ Google AdWords data is paginated on a daily basis. This means a single row in the table pertains to a specific day. The `start_date` and `end_date` columns, which will contain identical values, indicate the day the row is for.
+
+ For example: If `start_date` and `end_date` contain the value `2017-12-12 00:00:00`, the row contains data for December 12, 2017.
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - adContent
+ - adDestinationUrl
+ - adGroup
+ - adwordsCampaignId
+ - campaign
+ - date
+ - end_date
+ - keyword
+ - start_date
+ replication-key: end_date
diff --git a/_data/taps/schemas/google-analytics-adwords/v05-12-2017/json/report.json b/_data/taps/schemas/google-analytics-adwords/v05-12-2017/json/report.json
new file mode 100644
index 000000000..6d6888326
--- /dev/null
+++ b/_data/taps/schemas/google-analytics-adwords/v05-12-2017/json/report.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "adClicks": {
+ "type": [
+ "metric"
+ ]
+ },
+ "adContent": {
+ "type": [
+ "dimension"
+ ]
+ },
+ "adCost": {
+ "type": [
+ "metric"
+ ]
+ },
+ "adDestinationUrl": {
+ "type": [
+ "dimension"
+ ]
+ },
+ "adGroup": {
+ "type": [
+ "dimension"
+ ]
+ },
+ "adwordsCampaignId": {
+ "type": [
+ "dimension"
+ ]
+ },
+ "campaign": {
+ "type": [
+ "dimension"
+ ]
+ },
+ "date": {
+ "type": [
+ "dimension"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "datetime"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "metric"
+ ]
+ },
+ "keyword": {
+ "type": [
+ "dimension"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "datetime"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-analytics-adwords/v15-10-2015/google-analytics-adwords-v15-10-2015-tables.yml b/_data/taps/schemas/google-analytics-adwords/v15-10-2015/google-analytics-adwords-v15-10-2015-tables.yml
new file mode 100644
index 000000000..f74fece42
--- /dev/null
+++ b/_data/taps/schemas/google-analytics-adwords/v15-10-2015/google-analytics-adwords-v15-10-2015-tables.yml
@@ -0,0 +1,35 @@
+tap: google-analytics-adwords
+version: 15-10-2015
+tables:
+- name: campaigns
+ description: 'The `campaigns` table contains daily info about your AdWords campaigns.
+
+
+ **Note**: Google AdWords data is paginated on a daily basis. This means that a
+ single row in each of the tables pertains to a single day.
+
+ '
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - campaign
+ - adwordsCampaignId
+ - date
+ replication-key: date
+
+- name: adwords
+ description: |
+ The `adwords` table contains daily info about each of your active campaigns and the ads contained within those campaigns.
+
+ **Note**: Google AdWords data is paginated on a daily basis. This means that a single row in each of the tables pertains to a single day.
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - adwordsCampaignId
+ - adGroup
+ - adDestinationUrl
+ - adContent
+ - campaign
+ - date
+ - keyword
+ replication-key: date
\ No newline at end of file
diff --git a/_data/taps/schemas/google-analytics-adwords/v15-10-2015/json/adwords.json b/_data/taps/schemas/google-analytics-adwords/v15-10-2015/json/adwords.json
new file mode 100644
index 000000000..f6212b092
--- /dev/null
+++ b/_data/taps/schemas/google-analytics-adwords/v15-10-2015/json/adwords.json
@@ -0,0 +1,69 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "dimension"
+ ]
+ },
+ "adClicks": {
+ "type": [
+ "metric"
+ ]
+ },
+ "adContent": {
+ "type": [
+ "dimension"
+ ]
+ },
+ "adCost": {
+ "type": [
+ "metric"
+ ]
+ },
+ "adDestinationUrl": {
+ "type": [
+ "dimension"
+ ]
+ },
+ "adGroup": {
+ "type": [
+ "dimension"
+ ]
+ },
+ "adwordsCampaignId": {
+ "type": [
+ "dimension"
+ ]
+ },
+ "campaign": {
+ "type": [
+ "dimension"
+ ]
+ },
+ "date": {
+ "type": [
+ "dimension"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "metric"
+ ]
+ },
+ "keyword": {
+ "type": [
+ "dimension"
+ ]
+ },
+ "profileId": {
+ "type": [
+ "dimension"
+ ]
+ },
+ "profileName": {
+ "type": [
+ "dimension"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-analytics-adwords/v15-10-2015/json/campaigns.json b/_data/taps/schemas/google-analytics-adwords/v15-10-2015/json/campaigns.json
new file mode 100644
index 000000000..1df35e75d
--- /dev/null
+++ b/_data/taps/schemas/google-analytics-adwords/v15-10-2015/json/campaigns.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "dimension"
+ ]
+ },
+ "adClicks": {
+ "type": [
+ "metric"
+ ]
+ },
+ "adCost": {
+ "type": [
+ "metric"
+ ]
+ },
+ "adwordsCampaignId": {
+ "type": [
+ "dimension"
+ ]
+ },
+ "campaign": {
+ "type": [
+ "dimension"
+ ]
+ },
+ "date": {
+ "type": [
+ "dimension"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "metric"
+ ]
+ },
+ "profileId": {
+ "type": [
+ "dimension"
+ ]
+ },
+ "profileName": {
+ "type": [
+ "dimension"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-analytics/v1/google-analytics-v1-tables.yml b/_data/taps/schemas/google-analytics/v1/google-analytics-v1-tables.yml
new file mode 100644
index 000000000..d2e48a4d6
--- /dev/null
+++ b/_data/taps/schemas/google-analytics/v1/google-analytics-v1-tables.yml
@@ -0,0 +1,19 @@
+tap: google-analytics
+version: '1'
+tables:
+- name: sample_report
+ custom-report: true
+ description: |
+ For every report you create in the integration's settings page, Stitch will create a corresponding table in your destination. The table will contain the [metrics and dimensions you select](#track-data), along with a few columns Stitch requires for replication.
+
+ **Note**: Every row in this table pertains to a specific day. Use the `start_date` and `end_date` columns to identify what day the row is for.
+
+ The `{{table.table-details.primary-key}}` column is a Stitch-generated SHA 256 hash that should be used as a Primary Key. The hash consists of a UTF-8 encoded JSON list containing:
+
+ - The account ID, web property ID, and profile ID of the associated report
+ - Pairs of `ga:dimension_name` and `dimension_value`
+ - The `start_date` and `end_date` values for the record, in `YYYY-mm-dd` format
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: _sdc_record_hash
+ replication-key: start_date
diff --git a/_data/taps/schemas/google-analytics/v1/json/sample_report.json b/_data/taps/schemas/google-analytics/v1/json/sample_report.json
new file mode 100644
index 000000000..9fe09cd7d
--- /dev/null
+++ b/_data/taps/schemas/google-analytics/v1/json/sample_report.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "profile_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "web_property_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "_sdc_record_hash": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-analytics/v14-09-2016/google-analytics-v14-09-2016-tables.yml b/_data/taps/schemas/google-analytics/v14-09-2016/google-analytics-v14-09-2016-tables.yml
new file mode 100644
index 000000000..d39c302d4
--- /dev/null
+++ b/_data/taps/schemas/google-analytics/v14-09-2016/google-analytics-v14-09-2016-tables.yml
@@ -0,0 +1,23 @@
+tap: google-analytics
+version: 14-09-2016
+tables:
+- name: sample_report
+ custom-report: true
+ description: |
+ The `{{ table.name }}` table will contain the [Metrics and Dimensions selected during integration setup](#schema).
+
+ ### Data pagination
+
+ {{ integration.display_name }} data is paginated on a daily basis. This means that a single row in this table pertains to a specific day. Use the `start_date` and `end_date` columns to identify what day the row is for.
+
+ ### Primary keys
+
+ The Primary Key for this table is a composite key made up of all **Dimension columns** and the `start_date` and `end_date` columns.
+
+ For example: If `referralPath` and `country` were Dimension columns in the table, both columns, along with `start_date` and `end_date` would make up the Primary Key for the table.
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - start_date
+ - end_date
+ replication-key: start_date
diff --git a/_data/taps/schemas/google-analytics/v14-09-2016/json/sample_report.json b/_data/taps/schemas/google-analytics/v14-09-2016/json/sample_report.json
new file mode 100644
index 000000000..3231628b2
--- /dev/null
+++ b/_data/taps/schemas/google-analytics/v14-09-2016/json/sample_report.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "end_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-ecommerce/v15-10-2015/google-ecommerce-v15-10-2015-tables.yml b/_data/taps/schemas/google-ecommerce/v15-10-2015/google-ecommerce-v15-10-2015-tables.yml
new file mode 100644
index 000000000..4ea07b049
--- /dev/null
+++ b/_data/taps/schemas/google-ecommerce/v15-10-2015/google-ecommerce-v15-10-2015-tables.yml
@@ -0,0 +1,11 @@
+tap: google-ecommerce
+version: 15-10-2015
+tables:
+- name: ecommerce_v2
+ description: |
+ The `{{ table.name }}` table contains ECommerce data from your Google Analytics account. Refer to the table schema for the metrics and dimensions that are included.
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - id
+ replication-key: start-date
diff --git a/_data/taps/schemas/google-ecommerce/v15-10-2015/json/ecommerce_v2.json b/_data/taps/schemas/google-ecommerce/v15-10-2015/json/ecommerce_v2.json
new file mode 100644
index 000000000..344806cd1
--- /dev/null
+++ b/_data/taps/schemas/google-ecommerce/v15-10-2015/json/ecommerce_v2.json
@@ -0,0 +1,59 @@
+{
+ "properties": {
+ "accountid": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "keyword": {
+ "type": [
+ "string"
+ ]
+ },
+ "medium": {
+ "type": [
+ "string"
+ ]
+ },
+ "profileid": {
+ "type": [
+ "string"
+ ]
+ },
+ "profilename": {
+ "type": [
+ "string"
+ ]
+ },
+ "socialnetwork": {
+ "type": [
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "transactionid": {
+ "type": [
+ "string"
+ ]
+ },
+ "transactions": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-search-console/v1/google-search-console-v1-foreign-keys.yml b/_data/taps/schemas/google-search-console/v1/google-search-console-v1-foreign-keys.yml
new file mode 100644
index 000000000..7385362a8
--- /dev/null
+++ b/_data/taps/schemas/google-search-console/v1/google-search-console-v1-foreign-keys.yml
@@ -0,0 +1,348 @@
+tap: google-search-console
+version: '1'
+keys:
+ sites_site_url:
+ - table: sites
+ keys:
+ - site_url
+ - table: sitemaps
+ keys:
+ - site_url
+ - table: performance_report_country
+ keys:
+ - site_url
+ - table: performance_report_custom
+ keys:
+ - site_url
+ - table: performance_report_date
+ keys:
+ - site_url
+ - table: performance_report_device
+ keys:
+ - site_url
+ - table: performance_report_page
+ keys:
+ - site_url
+ - table: performance_report_query
+ keys:
+ - site_url
+ performance_report_query_search_type:
+ - table: performance_report_query
+ keys:
+ - search_type
+ - table: performance_report_country
+ keys:
+ - search_type
+ - table: performance_report_custom
+ keys:
+ - search_type
+ - table: performance_report_date
+ keys:
+ - search_type
+ - table: performance_report_page
+ keys:
+ - search_type
+ - table: performance_report_device
+ keys:
+ - search_type
+tables:
+- table-name: sites
+ join:
+ - table-name: sitemaps
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - table-name: performance_report_country
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - table-name: performance_report_custom
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - table-name: performance_report_date
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - table-name: performance_report_device
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - table-name: performance_report_page
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - table-name: performance_report_query
+ keys:
+ - key: site_url
+ foreign-key: site_url
+- table-name: sitemaps
+ join:
+ - table-name: sites
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - table-name: performance_report_country
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - table-name: performance_report_custom
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - table-name: performance_report_date
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - table-name: performance_report_device
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - table-name: performance_report_page
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - table-name: performance_report_query
+ keys:
+ - key: site_url
+ foreign-key: site_url
+- table-name: performance_report_country
+ join:
+ - table-name: sites
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - table-name: sitemaps
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - table-name: performance_report_custom
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
+ - table-name: performance_report_date
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
+ - table-name: performance_report_device
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
+ - table-name: performance_report_page
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
+ - table-name: performance_report_query
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
+- table-name: performance_report_custom
+ join:
+ - table-name: sites
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - table-name: sitemaps
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - table-name: performance_report_country
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
+ - table-name: performance_report_date
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
+ - table-name: performance_report_device
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
+ - table-name: performance_report_page
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
+ - table-name: performance_report_query
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
+- table-name: performance_report_date
+ join:
+ - table-name: sites
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - table-name: sitemaps
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - table-name: performance_report_country
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
+ - table-name: performance_report_custom
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
+ - table-name: performance_report_device
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
+ - table-name: performance_report_page
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
+ - table-name: performance_report_query
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
+- table-name: performance_report_device
+ join:
+ - table-name: sites
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - table-name: sitemaps
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - table-name: performance_report_country
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
+ - table-name: performance_report_custom
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
+ - table-name: performance_report_date
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
+ - table-name: performance_report_page
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
+ - table-name: performance_report_query
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
+- table-name: performance_report_page
+ join:
+ - table-name: sites
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - table-name: sitemaps
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - table-name: performance_report_country
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
+ - table-name: performance_report_custom
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
+ - table-name: performance_report_date
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
+ - table-name: performance_report_device
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
+ - table-name: performance_report_query
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
+- table-name: performance_report_query
+ join:
+ - table-name: sites
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - table-name: sitemaps
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - table-name: performance_report_country
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
+ - table-name: performance_report_custom
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
+ - table-name: performance_report_date
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
+ - table-name: performance_report_device
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
+ - table-name: performance_report_page
+ keys:
+ - key: site_url
+ foreign-key: site_url
+ - key: search_type
+ foreign-key: search_type
diff --git a/_data/taps/schemas/google-search-console/v1/google-search-console-v1-tables.yml b/_data/taps/schemas/google-search-console/v1/google-search-console-v1-tables.yml
new file mode 100644
index 000000000..5ea9c5b46
--- /dev/null
+++ b/_data/taps/schemas/google-search-console/v1/google-search-console-v1-tables.yml
@@ -0,0 +1,138 @@
+tap: google-search-console
+version: '1'
+tables:
+- name: performance_report_country
+ description: 'The `{{ table.name }}` table contains information about the performance
+ of your sites in Google searches. This particular table is filtered and grouped
+ by country.
+
+ '
+ links:
+ doc-link: https://support.google.com/webmasters/answer/7576553?hl=en
+ singer-schema: https://github.com/singer-io/tap-google-search-console/blob/master/tap_google_search_console/schemas/performance_report_country.json
+ api-method: https://developers.google.com/webmaster-tools/search-console-api-original/v3/searchanalytics/query
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - site_url
+ - search_type
+ - country
+ - date
+ replication-key: date
+- name: performance_report_custom
+ description: 'The `{{ table.name }}` table contains information about the performance
+ of your sites in Google searches. This particular table is filtered and grouped
+ by your custom dimensions.
+
+ '
+ links:
+ doc-link: https://support.google.com/webmasters/answer/7576553?hl=en
+ singer-schema: https://github.com/singer-io/tap-google-search-console/blob/master/tap_google_search_console/schemas/performance_report_custom.json
+ api-method: https://developers.google.com/webmaster-tools/search-console-api-original/v3/searchanalytics/query
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - search_type
+ - site_url
+ - dimensions_hash_key
+ - date
+ replication-key: date
+- name: performance_report_date
+ description: 'The `{{ table.name }}` table contains information about the performance
+ of your sites in Google searches. This particular table is filtered and grouped
+ by date.
+
+ '
+ links:
+ doc-link: https://support.google.com/webmasters/answer/7576553?hl=en
+ singer-schema: https://github.com/singer-io/tap-google-search-console/blob/master/tap_google_search_console/schemas/performance_report_date.json
+ api-method: https://developers.google.com/webmaster-tools/search-console-api-original/v3/searchanalytics/query
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - search_type
+ - site_url
+ - date
+ replication-key: date
+- name: performance_report_device
+ description: 'The `{{ table.name }}` table contains information about the performance
+ of your sites in Google searches. This particular table is filtered and grouped
+ by the user''s device type.
+
+ '
+ links:
+ doc-link: https://support.google.com/webmasters/answer/7576553?hl=en
+ singer-schema: https://github.com/singer-io/tap-google-search-console/blob/master/tap_google_search_console/schemas/performance_report_device.json
+ api-method: https://developers.google.com/webmaster-tools/search-console-api-original/v3/searchanalytics/query
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - search_type
+ - site_url
+ - device
+ - date
+ replication-key: date
+- name: performance_report_page
+ description: 'The `{{ table.name }}` table contains information about the performance
+ of your sites in Google searches. This particular table is filtered and grouped
+ by your landing page URLs that show up in Google search results.
+
+ '
+ links:
+ doc-link: https://support.google.com/webmasters/answer/7576553?hl=en
+ singer-schema: https://github.com/singer-io/tap-google-search-console/blob/master/tap_google_search_console/schemas/performance_report_page.json
+ api-method: https://developers.google.com/webmaster-tools/search-console-api-original/v3/searchanalytics/query
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - search_type
+ - site_url
+ - page
+ - date
+ replication-key: date
+- name: performance_report_query
+ description: 'The `{{ table.name }}` table contains information about the performance
+ of your sites in Google searches. This particular table is filtered and grouped
+ by the users'' search queries that resulted in your sites appearing in the search
+ results.
+
+ '
+ links:
+ doc-link: https://support.google.com/webmasters/answer/7576553?hl=en
+ singer-schema: https://github.com/singer-io/tap-google-search-console/blob/master/tap_google_search_console/schemas/performance_report_query.json
+ api-method: https://developers.google.com/webmaster-tools/search-console-api-original/v3/searchanalytics/query
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - search_type
+ - site_url
+ - query
+ - date
+ replication-key: date
+- name: sitemaps
+ description: 'The `{{ table.name }}` table contains information about the sitemap
+ entries in your {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developers.google.com/webmaster-tools/search-console-api-original/v3/sitemaps
+ singer-schema: https://github.com/singer-io/tap-google-search-console/blob/master/tap_google_search_console/schemas/sitemaps.json
+ api-method: https://developers.google.com/webmaster-tools/search-console-api-original/v3/sitemaps/list
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - site_url
+ - path
+ - last_submitted
+- name: sites
+ description: 'The `{{ table.name }}` contains information about your {{ integration.display_name
+ }} sites at a permission level.
+
+ '
+ links:
+ doc-link: https://developers.google.com/webmaster-tools/search-console-api-original/v3/sites
+ singer-schema: https://github.com/singer-io/tap-google-search-console/blob/master/tap_google_search_console/schemas/sites.json
+ api-method: https://developers.google.com/webmaster-tools/search-console-api-original/v3/sites/get
+ table-details:
+ replication-method: Full Table
+ primary-key: site_url
diff --git a/_data/taps/schemas/google-search-console/v1/json/performance_report_country.json b/_data/taps/schemas/google-search-console/v1/json/performance_report_country.json
new file mode 100644
index 000000000..fb78dc38e
--- /dev/null
+++ b/_data/taps/schemas/google-search-console/v1/json/performance_report_country.json
@@ -0,0 +1,56 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ctr": {
+ "multipleOf": 1e-25,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "position": {
+ "multipleOf": 1e-25,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "search_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-search-console/v1/json/performance_report_custom.json b/_data/taps/schemas/google-search-console/v1/json/performance_report_custom.json
new file mode 100644
index 000000000..d09e3dccd
--- /dev/null
+++ b/_data/taps/schemas/google-search-console/v1/json/performance_report_custom.json
@@ -0,0 +1,80 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ctr": {
+ "multipleOf": 1e-25,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dimensions_hash_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "page": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "position": {
+ "multipleOf": 1e-25,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "query": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "search_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-search-console/v1/json/performance_report_date.json b/_data/taps/schemas/google-search-console/v1/json/performance_report_date.json
new file mode 100644
index 000000000..3ad6d27f4
--- /dev/null
+++ b/_data/taps/schemas/google-search-console/v1/json/performance_report_date.json
@@ -0,0 +1,50 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ctr": {
+ "multipleOf": 1e-25,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "position": {
+ "multipleOf": 1e-25,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "search_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-search-console/v1/json/performance_report_device.json b/_data/taps/schemas/google-search-console/v1/json/performance_report_device.json
new file mode 100644
index 000000000..ba056d06e
--- /dev/null
+++ b/_data/taps/schemas/google-search-console/v1/json/performance_report_device.json
@@ -0,0 +1,56 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ctr": {
+ "multipleOf": 1e-25,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "position": {
+ "multipleOf": 1e-25,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "search_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-search-console/v1/json/performance_report_page.json b/_data/taps/schemas/google-search-console/v1/json/performance_report_page.json
new file mode 100644
index 000000000..2e4262a2b
--- /dev/null
+++ b/_data/taps/schemas/google-search-console/v1/json/performance_report_page.json
@@ -0,0 +1,56 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ctr": {
+ "multipleOf": 1e-25,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "page": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "position": {
+ "multipleOf": 1e-25,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "search_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-search-console/v1/json/performance_report_query.json b/_data/taps/schemas/google-search-console/v1/json/performance_report_query.json
new file mode 100644
index 000000000..94092a53a
--- /dev/null
+++ b/_data/taps/schemas/google-search-console/v1/json/performance_report_query.json
@@ -0,0 +1,56 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ctr": {
+ "multipleOf": 1e-25,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "position": {
+ "multipleOf": 1e-25,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "query": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "search_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-search-console/v1/json/sitemaps.json b/_data/taps/schemas/google-search-console/v1/json/sitemaps.json
new file mode 100644
index 000000000..c40ffac09
--- /dev/null
+++ b/_data/taps/schemas/google-search-console/v1/json/sitemaps.json
@@ -0,0 +1,94 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "contents": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "indexed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "submitted": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "errors": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_pending": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_sitemaps_index": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_downloaded": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_submitted": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "warnings": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-search-console/v1/json/sites.json b/_data/taps/schemas/google-search-console/v1/json/sites.json
new file mode 100644
index 000000000..0835f1bd5
--- /dev/null
+++ b/_data/taps/schemas/google-search-console/v1/json/sites.json
@@ -0,0 +1,18 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "permission_level": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-sheets/v1/google-sheets-v1-foreign-keys.yml b/_data/taps/schemas/google-sheets/v1/google-sheets-v1-foreign-keys.yml
new file mode 100644
index 000000000..9cb794d9b
--- /dev/null
+++ b/_data/taps/schemas/google-sheets/v1/google-sheets-v1-foreign-keys.yml
@@ -0,0 +1,99 @@
+tap: google-sheets
+version: '1'
+keys:
+ file_metadata_id:
+ - table: file_metadata
+ keys:
+ - id
+ spreadsheet_metadata_spreadsheetId:
+ - table: spreadsheet_metadata
+ keys:
+ - spreadsheetId
+ - table: sheet_metadata
+ keys:
+ - spreadsheetId
+ - table: sheets_loaded
+ keys:
+ - spreadsheetId
+ - table: sample_table
+ keys:
+ - __sdc_spreadsheet_id
+ sheet_metadata_sheetId:
+ - table: sheet_metadata
+ keys:
+ - sheetId
+ - table: sheets_loaded
+ keys:
+ - sheetId
+ - table: sample_table
+ keys:
+ - __sdc_sheet_id
+tables:
+- table-name: spreadsheet_metadata
+ join:
+ - table-name: sheet_metadata
+ keys:
+ - key: spreadsheetId
+ foreign-key: spreadsheetId
+ - table-name: sheets_loaded
+ keys:
+ - key: spreadsheetId
+ foreign-key: spreadsheetId
+ - table-name: sample_table
+ keys:
+ - key: spreadsheetId
+ foreign-key: __sdc_spreadsheet_id
+- table-name: sheet_metadata
+ join:
+ - table-name: spreadsheet_metadata
+ keys:
+ - key: spreadsheetId
+ foreign-key: spreadsheetId
+ - table-name: sheets_loaded
+ keys:
+ - key: spreadsheetId
+ foreign-key: spreadsheetId
+ - key: sheetId
+ foreign-key: sheetId
+ - table-name: sample_table
+ keys:
+ - key: spreadsheetId
+ foreign-key: __sdc_spreadsheet_id
+ - key: sheetId
+ foreign-key: __sdc_sheet_id
+- table-name: sheets_loaded
+ join:
+ - table-name: spreadsheet_metadata
+ keys:
+ - key: spreadsheetId
+ foreign-key: spreadsheetId
+ - table-name: sheet_metadata
+ keys:
+ - key: spreadsheetId
+ foreign-key: spreadsheetId
+ - key: sheetId
+ foreign-key: sheetId
+ - table-name: sample_table
+ keys:
+ - key: spreadsheetId
+ foreign-key: __sdc_spreadsheet_id
+ - key: sheetId
+ foreign-key: __sdc_sheet_id
+- table-name: sample_table
+ join:
+ - table-name: spreadsheet_metadata
+ keys:
+ - key: __sdc_spreadsheet_id
+ foreign-key: spreadsheetId
+ - table-name: sheet_metadata
+ keys:
+ - key: __sdc_spreadsheet_id
+ foreign-key: spreadsheetId
+ - key: __sdc_sheet_id
+ foreign-key: sheetId
+ - table-name: sheets_loaded
+ keys:
+ - key: __sdc_spreadsheet_id
+ foreign-key: spreadsheetId
+ - key: __sdc_sheet_id
+ foreign-key: sheetId
diff --git a/_data/taps/schemas/google-sheets/v1/google-sheets-v1-tables.yml b/_data/taps/schemas/google-sheets/v1/google-sheets-v1-tables.yml
new file mode 100644
index 000000000..cb12ce631
--- /dev/null
+++ b/_data/taps/schemas/google-sheets/v1/google-sheets-v1-tables.yml
@@ -0,0 +1,77 @@
+tap: google-sheets
+version: '1'
+tables:
+- name: file_metadata
+ description: 'The `{{ table.name }}` table contains metadata about the spreadsheet
+ defined in the integration''s settings.
+
+ '
+ links:
+ doc-link: https://developers.google.com/sheets/api/reference/rest
+ singer-schema: https://github.com/singer-io/tap-google-sheets/blob/master/tap_google_sheets/schemas/file_metadata.json
+ api-method: https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/sheets#top_of_page
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: sample_table
+ description: 'This is an example of a table created from a sheet you set to replicate.
+
+
+ For every sheet you set to replicate, Stitch will create a corresponding table
+ in your destination. The table will contain the columns you select in Stitch,
+ along with a few columns Stitch requires for replication.
+
+
+ Refer to the [Data replication](#extraction--data-replication) section for more
+ info about how this table replicates.
+
+ '
+ links:
+ doc-link: https://developers.google.com/sheets/api/reference/rest
+ singer-schema: ''
+ api-method: https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/sheets#top_of_page
+ table-details:
+ replication-method: Full Table
+ primary-key: __sdc_row
+ report: true
+- name: sheets_loaded
+ description: 'The `{{ table.name }}` table contains metadata about individual sheets
+ loaded to your destination.
+
+ '
+ links:
+ doc-link: https://developers.google.com/sheets/api/reference/rest
+ singer-schema: https://github.com/singer-io/tap-google-sheets/blob/master/tap_google_sheets/schemas/sheets_loaded.json
+ api-method: https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/sheets#top_of_page
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - sheetId
+ - spreadsheetId
+ - loadDate
+- name: sheet_metadata
+ description: 'The `{{ table.name }}` table contains metadata about the sheets within
+ the spreadsheet defined in the integration''s settings.
+
+ '
+ links:
+ doc-link: https://developers.google.com/sheets/api/reference/rest
+ singer-schema: https://github.com/singer-io/tap-google-sheets/blob/master/tap_google_sheets/schemas/sheet_metadata.json
+ api-method: https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/sheets#top_of_page
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - sheetId
+ - spreadsheetId
+- name: spreadsheet_metadata
+ description: 'The `{{ table.name }}` table contains metadata about the spreadsheet
+ defined in the integration''s settings.
+
+ '
+ links:
+ doc-link: https://developers.google.com/sheets/api/reference/rest
+ singer-schema: https://github.com/singer-io/tap-google-sheets/blob/master/tap_google_sheets/schemas/spreadsheet_metadata.json
+ api-method: https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/sheets#top_of_page
+ table-details:
+ replication-method: Full Table
+ primary-key: spreadsheetId
diff --git a/_data/taps/schemas/google-sheets/v1/json/file_metadata.json b/_data/taps/schemas/google-sheets/v1/json/file_metadata.json
new file mode 100644
index 000000000..121757d39
--- /dev/null
+++ b/_data/taps/schemas/google-sheets/v1/json/file_metadata.json
@@ -0,0 +1,75 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "createdTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "driveId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lastModifyingUser": {
+ "additionalProperties": false,
+ "properties": {
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "kind": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "modifiedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "teamDriveId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-sheets/v1/json/sample_table.json b/_data/taps/schemas/google-sheets/v1/json/sample_table.json
new file mode 100644
index 000000000..0e0173196
--- /dev/null
+++ b/_data/taps/schemas/google-sheets/v1/json/sample_table.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "[COLUMNS_YOU_SELECT]": {
+ "type": [
+ "varies"
+ ]
+ },
+ "__sdc_row": {
+ "type": [
+ "integer"
+ ]
+ },
+ "__sdc_sheet_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "__sdc_spreadsheet_id": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-sheets/v1/json/sheet_metadata.json b/_data/taps/schemas/google-sheets/v1/json/sheet_metadata.json
new file mode 100644
index 000000000..0b7f33bec
--- /dev/null
+++ b/_data/taps/schemas/google-sheets/v1/json/sheet_metadata.json
@@ -0,0 +1,143 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "columns": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "columnIndex": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "columnLetter": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "columnName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "columnSkipped": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "columnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "gridProperties": {
+ "additionalProperties": false,
+ "properties": {
+ "columnCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "frozenColumnCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "frozenRowCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "rowCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "index": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sheetId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sheetType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sheetUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "spreadsheetId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-sheets/v1/json/sheets_loaded.json b/_data/taps/schemas/google-sheets/v1/json/sheets_loaded.json
new file mode 100644
index 000000000..4d0972bb6
--- /dev/null
+++ b/_data/taps/schemas/google-sheets/v1/json/sheets_loaded.json
@@ -0,0 +1,36 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "lastRowNumber": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "loadDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "sheetId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "spreadsheetId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-sheets/v1/json/spreadsheet_metadata.json b/_data/taps/schemas/google-sheets/v1/json/spreadsheet_metadata.json
new file mode 100644
index 000000000..664ff41a9
--- /dev/null
+++ b/_data/taps/schemas/google-sheets/v1/json/spreadsheet_metadata.json
@@ -0,0 +1,51 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "properties": {
+ "additionalProperties": false,
+ "properties": {
+ "autoRecalc": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "spreadsheetId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "spreadsheetUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-sheets/v2/google-sheets-v2-tables.yml b/_data/taps/schemas/google-sheets/v2/google-sheets-v2-tables.yml
new file mode 100644
index 000000000..61fde536a
--- /dev/null
+++ b/_data/taps/schemas/google-sheets/v2/google-sheets-v2-tables.yml
@@ -0,0 +1,55 @@
+tap: google-sheets
+version: '2'
+tables:
+- name: file_metadata
+ description: 'The `{{ table.name }}` table contains metadata about the spreadsheet
+ defined in the integration''s settings.
+
+ '
+ links:
+ doc-link: https://developers.google.com/sheets/api/reference/rest
+ singer-schema: https://github.com/singer-io/tap-google-sheets/blob/master/tap_google_sheets/schemas/file_metadata.json
+ api-method: https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/sheets#top_of_page
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: modifiedTime
+- name: sheets_loaded
+ description: 'The `{{ table.name }}` table contains metadata about individual sheets
+ loaded to your destination.
+
+ '
+ links:
+ doc-link: https://developers.google.com/sheets/api/reference/rest
+ singer-schema: https://github.com/singer-io/tap-google-sheets/blob/master/tap_google_sheets/schemas/sheets_loaded.json
+ api-method: https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/sheets#top_of_page
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - sheetId
+ - spreadsheetId
+ - loadDate
+- name: sheet_metadata
+ description: 'The `{{ table.name }}` table contains metadata about the sheets within
+ the spreadsheet defined in the integration''s settings.
+
+ '
+ links:
+ doc-link: https://developers.google.com/sheets/api/reference/rest
+ singer-schema: https://github.com/singer-io/tap-google-sheets/blob/master/tap_google_sheets/schemas/sheet_metadata.json
+ api-method: https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/sheets#top_of_page
+ table-details:
+ replication-method: Full Table
+ primary-key: sheetId
+- name: spreadsheet_metadata
+ description: 'The `{{ table.name }}` table contains metadata about the spreadsheet
+ defined in the integration''s settings.
+
+ '
+ links:
+ doc-link: https://developers.google.com/sheets/api/reference/rest
+ singer-schema: https://github.com/singer-io/tap-google-sheets/blob/master/tap_google_sheets/schemas/spreadsheet_metadata.json
+ api-method: https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/sheets#top_of_page
+ table-details:
+ replication-method: Full Table
+ primary-key: spreadsheetId
diff --git a/_data/taps/schemas/google-sheets/v2/json/file_metadata.json b/_data/taps/schemas/google-sheets/v2/json/file_metadata.json
new file mode 100644
index 000000000..121757d39
--- /dev/null
+++ b/_data/taps/schemas/google-sheets/v2/json/file_metadata.json
@@ -0,0 +1,75 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "createdTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "driveId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lastModifyingUser": {
+ "additionalProperties": false,
+ "properties": {
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "kind": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "modifiedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "teamDriveId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-sheets/v2/json/sheet_metadata.json b/_data/taps/schemas/google-sheets/v2/json/sheet_metadata.json
new file mode 100644
index 000000000..0b7f33bec
--- /dev/null
+++ b/_data/taps/schemas/google-sheets/v2/json/sheet_metadata.json
@@ -0,0 +1,143 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "columns": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "columnIndex": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "columnLetter": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "columnName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "columnSkipped": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "columnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "gridProperties": {
+ "additionalProperties": false,
+ "properties": {
+ "columnCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "frozenColumnCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "frozenRowCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "rowCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "index": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sheetId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sheetType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sheetUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "spreadsheetId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-sheets/v2/json/sheets_loaded.json b/_data/taps/schemas/google-sheets/v2/json/sheets_loaded.json
new file mode 100644
index 000000000..4d0972bb6
--- /dev/null
+++ b/_data/taps/schemas/google-sheets/v2/json/sheets_loaded.json
@@ -0,0 +1,36 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "lastRowNumber": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "loadDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "sheetId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "spreadsheetId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/google-sheets/v2/json/spreadsheet_metadata.json b/_data/taps/schemas/google-sheets/v2/json/spreadsheet_metadata.json
new file mode 100644
index 000000000..664ff41a9
--- /dev/null
+++ b/_data/taps/schemas/google-sheets/v2/json/spreadsheet_metadata.json
@@ -0,0 +1,51 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "properties": {
+ "additionalProperties": false,
+ "properties": {
+ "autoRecalc": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "spreadsheetId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "spreadsheetUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest-forecast/v1/harvest-forecast-v1-foreign-keys.yml b/_data/taps/schemas/harvest-forecast/v1/harvest-forecast-v1-foreign-keys.yml
new file mode 100644
index 000000000..dee8661d2
--- /dev/null
+++ b/_data/taps/schemas/harvest-forecast/v1/harvest-forecast-v1-foreign-keys.yml
@@ -0,0 +1,347 @@
+tap: harvest-forecast
+version: '1'
+keys:
+ assignments_:
+ - table: assignments
+ keys:
+ - id
+ clients_client_id:
+ - table: clients
+ keys:
+ - id
+ - table: projects
+ keys:
+ - client_id
+ milestones_:
+ - table: milestones
+ keys:
+ - id
+ people_updated_by_id:
+ - table: assignments
+ keys:
+ - person_id
+ - updated_by_id
+ - table: clients
+ keys:
+ - updated_by_id
+ - table: milestones
+ keys:
+ - updated_by_id
+ - table: people
+ keys:
+ - id
+ - updated_by_id
+ - table: projects
+ keys:
+ - updated_by_id
+ - table: placeholders
+ keys:
+ - updated_by_id
+ - table: roles
+ keys:
+ - updated_by_id
+ projects_project_id:
+ - table: assignments
+ keys:
+ - project_id
+ - table: milestones
+ keys:
+ - project_id
+ - table: projects
+ keys:
+ - id
+ placeholders_placeholder_id:
+ - table: assignments
+ keys:
+ - placeholder_id
+ - table: placeholders
+ keys:
+ - id
+ - table: roles
+ keys:
+ - placeholder_ids
+ roles_value:
+ - table: people
+ keys:
+ - roles
+ - table: placeholders
+ keys:
+ - roles
+ - table: roles
+ keys:
+ - id
+tables:
+- table-name: assignments
+ join:
+ - table-name: clients
+ keys:
+ - key: person_id
+ foreign-key: updated_by_id
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - table-name: milestones
+ keys:
+ - key: person_id
+ foreign-key: updated_by_id
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - key: project_id
+ foreign-key: project_id
+ - table-name: people
+ keys:
+ - key: person_id
+ foreign-key: id
+ - key: updated_by_id
+ foreign-key: id
+ - key: person_id
+ foreign-key: updated_by_id
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - table-name: projects
+ keys:
+ - key: person_id
+ foreign-key: updated_by_id
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - key: project_id
+ foreign-key: id
+ - table-name: placeholders
+ keys:
+ - key: person_id
+ foreign-key: updated_by_id
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - key: placeholder_id
+ foreign-key: id
+ - table-name: roles
+ keys:
+ - key: person_id
+ foreign-key: updated_by_id
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - key: placeholder_id
+ foreign-key: placeholder_ids
+- table-name: clients
+ join:
+ - table-name: projects
+ keys:
+ - key: id
+ foreign-key: client_id
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - table-name: assignments
+ keys:
+ - key: updated_by_id
+ foreign-key: person_id
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - table-name: milestones
+ keys:
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - table-name: people
+ keys:
+ - key: updated_by_id
+ foreign-key: id
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - table-name: placeholders
+ keys:
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - table-name: roles
+ keys:
+ - key: updated_by_id
+ foreign-key: updated_by_id
+- table-name: projects
+ join:
+ - table-name: clients
+ keys:
+ - key: client_id
+ foreign-key: id
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - table-name: assignments
+ keys:
+ - key: updated_by_id
+ foreign-key: person_id
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - key: id
+ foreign-key: project_id
+ - table-name: milestones
+ keys:
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - key: id
+ foreign-key: project_id
+ - table-name: people
+ keys:
+ - key: updated_by_id
+ foreign-key: id
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - table-name: placeholders
+ keys:
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - table-name: roles
+ keys:
+ - key: updated_by_id
+ foreign-key: updated_by_id
+- table-name: milestones
+ join:
+ - table-name: assignments
+ keys:
+ - key: updated_by_id
+ foreign-key: person_id
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - key: project_id
+ foreign-key: project_id
+ - table-name: clients
+ keys:
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - table-name: people
+ keys:
+ - key: updated_by_id
+ foreign-key: id
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - table-name: projects
+ keys:
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - key: project_id
+ foreign-key: id
+ - table-name: placeholders
+ keys:
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - table-name: roles
+ keys:
+ - key: updated_by_id
+ foreign-key: updated_by_id
+- table-name: people
+ join:
+ - table-name: assignments
+ keys:
+ - key: id
+ foreign-key: person_id
+ - key: updated_by_id
+ foreign-key: person_id
+ - key: id
+ foreign-key: updated_by_id
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - table-name: clients
+ keys:
+ - key: id
+ foreign-key: updated_by_id
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - table-name: milestones
+ keys:
+ - key: id
+ foreign-key: updated_by_id
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - table-name: projects
+ keys:
+ - key: id
+ foreign-key: updated_by_id
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - table-name: placeholders
+ keys:
+ - key: id
+ foreign-key: updated_by_id
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - key: roles
+ foreign-key: roles
+ - table-name: roles
+ keys:
+ - key: id
+ foreign-key: updated_by_id
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - key: roles
+ foreign-key: id
+- table-name: placeholders
+ join:
+ - table-name: assignments
+ keys:
+ - key: updated_by_id
+ foreign-key: person_id
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - key: id
+ foreign-key: placeholder_id
+ - table-name: clients
+ keys:
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - table-name: milestones
+ keys:
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - table-name: people
+ keys:
+ - key: updated_by_id
+ foreign-key: id
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - key: roles
+ foreign-key: roles
+ - table-name: projects
+ keys:
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - table-name: roles
+ keys:
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - key: id
+ foreign-key: placeholder_ids
+ - key: roles
+ foreign-key: id
+- table-name: roles
+ join:
+ - table-name: assignments
+ keys:
+ - key: updated_by_id
+ foreign-key: person_id
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - key: placeholder_ids
+ foreign-key: placeholder_id
+ - table-name: clients
+ keys:
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - table-name: milestones
+ keys:
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - table-name: people
+ keys:
+ - key: updated_by_id
+ foreign-key: id
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - key: id
+ foreign-key: roles
+ - table-name: projects
+ keys:
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - table-name: placeholders
+ keys:
+ - key: updated_by_id
+ foreign-key: updated_by_id
+ - key: placeholder_ids
+ foreign-key: id
+ - key: id
+ foreign-key: roles
diff --git a/_data/taps/schemas/harvest-forecast/v1/harvest-forecast-v1-tables.yml b/_data/taps/schemas/harvest-forecast/v1/harvest-forecast-v1-tables.yml
new file mode 100644
index 000000000..39b882d18
--- /dev/null
+++ b/_data/taps/schemas/harvest-forecast/v1/harvest-forecast-v1-tables.yml
@@ -0,0 +1,79 @@
+tap: harvest-forecast
+version: '1'
+tables:
+- name: assignments
+ description: 'The `{{ table.name }}` table contains info about the assignments assigned
+ to the people in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: null
+ singer-schema: https://github.com/singer-io/tap-harvest-forecast/blob/master/tap_harvest_forecast/schemas/assignments.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: clients
+ description: 'The `{{ table.name }}` table contains info about the clients in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: null
+ singer-schema: https://github.com/singer-io/tap-harvest-forecast/blob/master/tap_harvest_forecast/schemas/clients.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: milestones
+ description: 'The `{{ table.name }}` table contains info about the project milestones
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: null
+ singer-schema: https://github.com/singer-io/tap-harvest-forecast/blob/master/tap_harvest_forecast/schemas/milestones.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: people
+ description: 'The `{{ table.name }}` table contains info about the people in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: null
+ singer-schema: https://github.com/singer-io/tap-harvest-forecast/blob/master/tap_harvest_forecast/schemas/people.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: placeholders
+ description: The `{{ table.name }}` table contains info about the placeholders in
+ your {{ integration.display_name }} account.
+ links:
+ singer-schema: https://github.com/singer-io/tap-harvest-forecast/blob/master/tap_harvest_forecast/schemas/placeholders.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: projects
+ description: 'The `{{ table.name }}` table contains info about the projects in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: null
+ singer-schema: https://github.com/singer-io/tap-harvest-forecast/blob/master/tap_harvest_forecast/schemas/projects.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: roles
+ description: The `{{ table.name }}` table contains info about the roles in your
+ {{ integration.display_name }} account.
+ links:
+ singer-schema: https://github.com/singer-io/tap-harvest-forecast/blob/master/tap_harvest_forecast/schemas/roles.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
diff --git a/_data/taps/schemas/harvest-forecast/v1/json/assignments.json b/_data/taps/schemas/harvest-forecast/v1/json/assignments.json
new file mode 100644
index 000000000..ffb9f19c3
--- /dev/null
+++ b/_data/taps/schemas/harvest-forecast/v1/json/assignments.json
@@ -0,0 +1,78 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "active_on_days_off": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allocation": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "person_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "placeholder_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "repeated_assignment_set_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest-forecast/v1/json/clients.json b/_data/taps/schemas/harvest-forecast/v1/json/clients.json
new file mode 100644
index 000000000..beaf38f40
--- /dev/null
+++ b/_data/taps/schemas/harvest-forecast/v1/json/clients.json
@@ -0,0 +1,42 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "harvest_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest-forecast/v1/json/milestones.json b/_data/taps/schemas/harvest-forecast/v1/json/milestones.json
new file mode 100644
index 000000000..cc35d421d
--- /dev/null
+++ b/_data/taps/schemas/harvest-forecast/v1/json/milestones.json
@@ -0,0 +1,42 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest-forecast/v1/json/people.json b/_data/taps/schemas/harvest-forecast/v1/json/people.json
new file mode 100644
index 000000000..5a4a5ff4b
--- /dev/null
+++ b/_data/taps/schemas/harvest-forecast/v1/json/people.json
@@ -0,0 +1,150 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "color_blind": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "harvest_user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "login": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "personal_feed_token_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "roles": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "subscribed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "weekly_capacity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "working_days": {
+ "additionalProperties": false,
+ "properties": {
+ "friday": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "monday": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "saturday": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "sunday": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "thursday": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "tuesday": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "wednesday": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest-forecast/v1/json/placeholders.json b/_data/taps/schemas/harvest-forecast/v1/json/placeholders.json
new file mode 100644
index 000000000..721208b36
--- /dev/null
+++ b/_data/taps/schemas/harvest-forecast/v1/json/placeholders.json
@@ -0,0 +1,42 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "roles": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest-forecast/v1/json/projects.json b/_data/taps/schemas/harvest-forecast/v1/json/projects.json
new file mode 100644
index 000000000..65a897932
--- /dev/null
+++ b/_data/taps/schemas/harvest-forecast/v1/json/projects.json
@@ -0,0 +1,84 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "client_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "harvest_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest-forecast/v1/json/roles.json b/_data/taps/schemas/harvest-forecast/v1/json/roles.json
new file mode 100644
index 000000000..54749cbf3
--- /dev/null
+++ b/_data/taps/schemas/harvest-forecast/v1/json/roles.json
@@ -0,0 +1,48 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "harvest_role_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "person_ids": {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ "placeholder_ids": {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v1/harvest-v1-tables.yml b/_data/taps/schemas/harvest/v1/harvest-v1-tables.yml
new file mode 100644
index 000000000..5dec32ca8
--- /dev/null
+++ b/_data/taps/schemas/harvest/v1/harvest-v1-tables.yml
@@ -0,0 +1,190 @@
+tap: harvest
+version: '1'
+tables:
+- name: clients
+ description: 'The `clients` table contains info about the clients in your Harvest
+ account.
+
+ '
+ links:
+ doc-link: http://help.getharvest.com/api-v1/clients-api/clients/using-the-clients-api/
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/clients.json
+ api-method: http://help.getharvest.com/api-v1/clients-api/clients/using-the-clients-api/#get-all-clients
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: contacts
+ description: 'The `contacts` table contains info about the client contacts in your
+ Harvest account.
+
+ '
+ links:
+ doc-link: http://help.getharvest.com/api-v1/clients-api/clients/using-the-client-contacts-api/
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/contacts.json
+ api-method: http://help.getharvest.com/api-v1/clients-api/clients/using-the-client-contacts-api/#get-all-contacts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: expenses
+ description: 'The `expenses` table contains info about the expenses recorded in
+ your Harvest account.
+
+ '
+ links:
+ doc-link: http://help.getharvest.com/api-v1/expenses-api/expenses/add-update-expenses/
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/expenses.json
+ api-method: http://help.getharvest.com/api-v1/expenses-api/expenses/add-update-expenses/#show-an-expense
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: expense_categories
+ description: 'The `expense_categories` table contains info about the expense categories
+ in your Harvest account.
+
+ '
+ links:
+ doc-link: http://help.getharvest.com/api-v1/expenses-api/expenses/expense-categories/
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/expense_categories.json
+ api-method: http://help.getharvest.com/api-v1/expenses-api/expenses/expense-categories/#show-all-categories
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: invoices
+ description: 'The `invoices` table contains info about the invoices in your Harvest
+ account.
+
+ '
+ links:
+ doc-link: http://help.getharvest.com/api-v1/invoices-api/invoices/show-invoices#show-a-single-invoice
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/invoices.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: invoice_item_categories
+ description: 'The `invoice_item_categories` table contains info about the various
+ categories that can be applied to invoice line items.
+
+
+ Note: Harvest includes two non-removable categories by default for the hours and
+ expenses you bill.
+
+ '
+ links:
+ doc-link: http://help.getharvest.com/api-v1/invoices-api/invoices/invoice-messages-payments#invoice-categories
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/invoice_item_categories.json
+ api-method: http://help.getharvest.com/api-v1/invoices-api/invoices/invoice-messages-payments/#show-all-categories
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: invoice_messages
+ description: 'The `invoice_messages` table contains info about invoice messages,
+ or emails sent to clients about invoices.
+
+ '
+ links:
+ doc-link: http://help.getharvest.com/api-v1/invoices-api/invoices/invoice-messages-payments/
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/invoice_messages.json
+ api-method: http://help.getharvest.com/api-v1/invoices-api/invoices/invoice-messages-payments/#show-invoice-messages
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: invoice_payments
+ description: 'The `invoice_payments` table contains info about the payments applied
+ to invoices in your Harvest account.
+
+ '
+ links:
+ doc-link: http://help.getharvest.com/api-v1/invoices-api/invoices/invoice-messages-payments#show-payments-for-an-invoice
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/invoice_payments.json
+ api-method: http://help.getharvest.com/api-v1/invoices-api/invoices/invoice-messages-payments/#show-payments-for-an-invoice
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: people
+ description: 'The `people` table contains info about the people - or users - in
+ your Harvest account.
+
+
+ **Note**: These are **internal** users. Info about external users, or clients,
+ is in the `clients` table.
+
+ '
+ links:
+ doc-link: http://help.getharvest.com/api-v1/users-api/users/managing-users/
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/people.json
+ api-method: http://help.getharvest.com/api-v1/users-api/users/managing-users/#show-all-users
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: projects
+ description: 'The `projects` table contains info about the projects in your Harvest
+ account.
+
+ '
+ links:
+ doc-link: http://help.getharvest.com/api-v1/projects-api/projects/create-and-show-projects#projects-parameters
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/projects.json
+ api-method: http://help.getharvest.com/api-v1/projects-api/projects/create-and-show-projects/#show-all-projects
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: project_tasks
+ description: 'The `project_tasks` table contains info about the tasks assigned to
+ projects.
+
+ '
+ links:
+ doc-link: http://help.getharvest.com/api-v1/tasks-api/tasks/task-assignments#all-assigned-tasks-to-project
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/project_tasks.json
+ api-method: http://help.getharvest.com/api-v1/tasks-api/tasks/task-assignments/#all-assigned-tasks-to-project
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: project_users
+ description: 'The `project_users` table contains info about the users assigned to
+ projects.
+
+ '
+ links:
+ doc-link: http://help.getharvest.com/api-v1/users-api/users/user-assignments#get-users-assigned-to-projects
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/project_users.json
+ api-method: http://help.getharvest.com/api-v1/users-api/users/user-assignments/#get-users-assigned-to-projects
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: tasks
+ description: 'The `tasks` table contains info about the tasks in your Harvest account.
+
+ '
+ links:
+ doc-link: http://help.getharvest.com/api-v1/tasks-api/tasks/create-show-tasks/
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/tasks.json
+ api-method: http://help.getharvest.com/api-v1/tasks-api/tasks/create-show-tasks/#show-all-tasks
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: time_entries
+ description: 'The `time_entries` table contains info about the time entries in your
+ Harvest account.
+
+ '
+ links:
+ doc-link: http://help.getharvest.com/api-v1/timesheets-api/timesheets/retrieving-time-entries#retrieving-a-single-entry
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/time_entries.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
diff --git a/_data/taps/schemas/harvest/v1/json/clients.json b/_data/taps/schemas/harvest/v1/json/clients.json
new file mode 100644
index 000000000..30e65dcd2
--- /dev/null
+++ b/_data/taps/schemas/harvest/v1/json/clients.json
@@ -0,0 +1,77 @@
+{
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "cache_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_symbol": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_invoice_timeframe": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "highrise_id": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_invoice_kind": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v1/json/contacts.json b/_data/taps/schemas/harvest/v1/json/contacts.json
new file mode 100644
index 000000000..0868709de
--- /dev/null
+++ b/_data/taps/schemas/harvest/v1/json/contacts.json
@@ -0,0 +1,71 @@
+{
+ "properties": {
+ "client_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_mobile": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_office": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v1/json/expense_categories.json b/_data/taps/schemas/harvest/v1/json/expense_categories.json
new file mode 100644
index 000000000..535ba8274
--- /dev/null
+++ b/_data/taps/schemas/harvest/v1/json/expense_categories.json
@@ -0,0 +1,47 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deactivated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v1/json/expenses.json b/_data/taps/schemas/harvest/v1/json/expenses.json
new file mode 100644
index 000000000..b33abf924
--- /dev/null
+++ b/_data/taps/schemas/harvest/v1/json/expenses.json
@@ -0,0 +1,113 @@
+{
+ "properties": {
+ "billable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "company_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "expense_category_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "has_receipt": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "invoice_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_closed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_locked": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "locked_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "receipt_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "spent_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_cost": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "units": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v1/json/invoice_item_categories.json b/_data/taps/schemas/harvest/v1/json/invoice_item_categories.json
new file mode 100644
index 000000000..4e72640f9
--- /dev/null
+++ b/_data/taps/schemas/harvest/v1/json/invoice_item_categories.json
@@ -0,0 +1,41 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "use_as_expense": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "use_as_service": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v1/json/invoice_messages.json b/_data/taps/schemas/harvest/v1/json/invoice_messages.json
new file mode 100644
index 000000000..ac46d7de0
--- /dev/null
+++ b/_data/taps/schemas/harvest/v1/json/invoice_messages.json
@@ -0,0 +1,95 @@
+{
+ "properties": {
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "full_recipient_list": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "include_pay_pal_link": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "invoice_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "send_me_a_copy": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "send_reminder_on": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "sent_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sent_by_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sent_from": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sent_from_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thank_you": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v1/json/invoice_payments.json b/_data/taps/schemas/harvest/v1/json/invoice_payments.json
new file mode 100644
index 000000000..45b35ab9c
--- /dev/null
+++ b/_data/taps/schemas/harvest/v1/json/invoice_payments.json
@@ -0,0 +1,77 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "authorization": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "invoice_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "paid_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "payment_gateway_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "paypal_transaction_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "recorded_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recorded_by_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v1/json/invoices.json b/_data/taps/schemas/harvest/v1/json/invoices.json
new file mode 100644
index 000000000..d24fd7f3c
--- /dev/null
+++ b/_data/taps/schemas/harvest/v1/json/invoices.json
@@ -0,0 +1,182 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "client_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "client_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "client_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_by_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount": {
+ "type": [
+ "null",
+ "string",
+ "number"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "due_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "due_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "due_at_human_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "estimate_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "issued_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "period_end": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "period_start": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "purchase_order": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recurring_invoice_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "retainer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax": {
+ "type": [
+ "null",
+ "string",
+ "number"
+ ]
+ },
+ "tax2": {
+ "type": [
+ "null",
+ "string",
+ "number"
+ ]
+ },
+ "tax2_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v1/json/people.json b/_data/taps/schemas/harvest/v1/json/people.json
new file mode 100644
index 000000000..adfaef3bb
--- /dev/null
+++ b/_data/taps/schemas/harvest/v1/json/people.json
@@ -0,0 +1,113 @@
+{
+ "properties": {
+ "cost_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "default_hourly_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "department": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_access_to_all_future_projects": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "identity_account_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "indentity_user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_contractor": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "telephone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "wants_newsletter": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v1/json/project_tasks.json b/_data/taps/schemas/harvest/v1/json/project_tasks.json
new file mode 100644
index 000000000..ffee57fcb
--- /dev/null
+++ b/_data/taps/schemas/harvest/v1/json/project_tasks.json
@@ -0,0 +1,65 @@
+{
+ "properties": {
+ "billable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "budget": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deactivated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "estimate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "hourly_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "task_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v1/json/project_users.json b/_data/taps/schemas/harvest/v1/json/project_users.json
new file mode 100644
index 000000000..9ca5da8c9
--- /dev/null
+++ b/_data/taps/schemas/harvest/v1/json/project_users.json
@@ -0,0 +1,65 @@
+{
+ "properties": {
+ "budget": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deactivated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "estimate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "hourly_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_project_manager": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v1/json/projects.json b/_data/taps/schemas/harvest/v1/json/projects.json
new file mode 100644
index 000000000..20344e49e
--- /dev/null
+++ b/_data/taps/schemas/harvest/v1/json/projects.json
@@ -0,0 +1,155 @@
+{
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "bill_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "budget": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "budget_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "client_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cost_budget": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_budget_include_expenses": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ends_on": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "estimate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "estimate_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hint_earliest_record_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hint_latest_record_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hourly_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notify_when_over_budget": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "over_budget_notification_percetange": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "over_budget_notified_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "show_budget_to_all": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starts_on": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v1/json/tasks.json b/_data/taps/schemas/harvest/v1/json/tasks.json
new file mode 100644
index 000000000..66f786680
--- /dev/null
+++ b/_data/taps/schemas/harvest/v1/json/tasks.json
@@ -0,0 +1,53 @@
+{
+ "properties": {
+ "billable_by_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deactivated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "default_hourly_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v1/json/time_entries.json b/_data/taps/schemas/harvest/v1/json/time_entries.json
new file mode 100644
index 000000000..cb55935a6
--- /dev/null
+++ b/_data/taps/schemas/harvest/v1/json/time_entries.json
@@ -0,0 +1,89 @@
+{
+ "properties": {
+ "adjustment_record": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "hours": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "hours_with_timer": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_billed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_closed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "spent_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "task_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "timer_started_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v2/harvest-v2-foreign-keys.yml b/_data/taps/schemas/harvest/v2/harvest-v2-foreign-keys.yml
new file mode 100644
index 000000000..226ad5344
--- /dev/null
+++ b/_data/taps/schemas/harvest/v2/harvest-v2-foreign-keys.yml
@@ -0,0 +1,946 @@
+tap: harvest
+version: '2'
+keys:
+ clients_client_id:
+ - table: clients
+ keys:
+ - id
+ - table: contacts
+ keys:
+ - client_id
+ - table: estimates
+ keys:
+ - client_id
+ - table: expenses
+ keys:
+ - client_id
+ - table: invoices
+ keys:
+ - client_id
+ - table: projects
+ keys:
+ - client_id
+ - table: time_entries
+ keys:
+ - client_id
+ - table: user_projects
+ keys:
+ - client_id
+ contacts_contact_id:
+ - table: contacts
+ keys:
+ - id
+ estimate_item_categories_:
+ - table: estimate_item_categories
+ keys:
+ - id
+ estimate_line_items_:
+ - table: estimate_line_items
+ keys:
+ - id
+ estimate_messages_:
+ - table: estimate_messages
+ keys:
+ - id
+ estimates_estimate_id:
+ - table: estimate_line_items
+ keys:
+ - estimate_id
+ - table: estimate_messages
+ keys:
+ - estimate_id
+ - table: estimates
+ keys:
+ - id
+ - table: invoices
+ keys:
+ - estimate_id
+ expense_categories_expense_category_id:
+ - table: expense_categories
+ keys:
+ - id
+ - table: expenses
+ keys:
+ - expense_category_id
+ expenses_expense_id:
+ - table: expenses
+ keys:
+ - id
+ - table: time_entries
+ keys:
+ - external_reference_id
+ - table: time_entry_external_reference
+ keys:
+ - external_reference_id
+ invoice_item_categories_invoice_item_category_id:
+ - table: invoice_item_categories
+ keys:
+ - id
+ invoice_messages_invoice_message_id:
+ - table: invoice_messages
+ keys:
+ - id
+ invoices_invoice_id:
+ - table: expenses
+ keys:
+ - invoice_id
+ - table: invoice_line_items
+ keys:
+ - invoice_id
+ - table: invoice_messages
+ keys:
+ - invoice_id
+ - table: invoice_payments
+ keys:
+ - invoice_id
+ - table: invoices
+ keys:
+ - id
+ - table: time_entries
+ keys:
+ - invoice_id
+ invoice_payments_invoice_payment_id:
+ - table: invoice_payments
+ keys:
+ - id
+ projects_project_id:
+ - table: expenses
+ keys:
+ - project_id
+ - table: invoice_line_items
+ keys:
+ - project_id
+ - table: project_tasks
+ keys:
+ - project_id
+ - table: project_users
+ keys:
+ - project_id
+ - table: projects
+ keys:
+ - id
+ - table: time_entries
+ keys:
+ - project_id
+ - table: user_projects
+ keys:
+ - project_id
+ project_tasks_project_task_id:
+ - table: project_tasks
+ keys:
+ - id
+ - table: user_project_tasks
+ keys:
+ - project_task_id
+ project_users_project_user_id:
+ - table: project_users
+ keys:
+ - id
+ roles_role_id:
+ - table: roles
+ keys:
+ - id
+ - table: user_roles
+ keys:
+ - role_id
+ tasks_task_id:
+ - table: tasks
+ keys:
+ - id
+ - table: time_entries
+ keys:
+ - task_id
+ time_entries_time_entry_id:
+ - table: time_entries
+ keys:
+ - id
+ - table: time_entry_external_reference
+ keys:
+ - time_entry_id
+ users_user_id:
+ - table: estimates
+ keys:
+ - creator_id
+ - table: invoices
+ keys:
+ - creator_id
+ - table: time_entries
+ keys:
+ - user_id
+ - table: users
+ keys:
+ - id
+ - table: user_project_tasks
+ keys:
+ - user_id
+ - table: user_projects
+ keys:
+ - user_id
+ - table: user_roles
+ keys:
+ - user_id
+ user_project_tasks_user_project_task_id:
+ - table: user_project_tasks
+ keys:
+ - id
+ user_projects_user_project_id:
+ - table: user_projects
+ keys:
+ - id
+tables:
+- table-name: clients
+ join:
+ - table-name: contacts
+ keys:
+ - key: id
+ foreign-key: client_id
+ - table-name: estimates
+ keys:
+ - key: id
+ foreign-key: client_id
+ - table-name: expenses
+ keys:
+ - key: id
+ foreign-key: client_id
+ - table-name: invoices
+ keys:
+ - key: id
+ foreign-key: client_id
+ - table-name: projects
+ keys:
+ - key: id
+ foreign-key: client_id
+ - table-name: time_entries
+ keys:
+ - key: id
+ foreign-key: client_id
+ - table-name: user_projects
+ keys:
+ - key: id
+ foreign-key: client_id
+- table-name: contacts
+ join:
+ - table-name: clients
+ keys:
+ - key: client_id
+ foreign-key: id
+ - table-name: estimates
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - table-name: expenses
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - table-name: invoices
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - table-name: projects
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - table-name: time_entries
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - table-name: user_projects
+ keys:
+ - key: client_id
+ foreign-key: client_id
+- table-name: estimates
+ join:
+ - table-name: clients
+ keys:
+ - key: client_id
+ foreign-key: id
+ - table-name: contacts
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - table-name: expenses
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - table-name: invoices
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - key: id
+ foreign-key: estimate_id
+ - key: creator_id
+ foreign-key: creator_id
+ - table-name: projects
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - table-name: time_entries
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - key: creator_id
+ foreign-key: user_id
+ - table-name: user_projects
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - key: creator_id
+ foreign-key: user_id
+ - table-name: estimate_line_items
+ keys:
+ - key: id
+ foreign-key: estimate_id
+ - table-name: estimate_messages
+ keys:
+ - key: id
+ foreign-key: estimate_id
+ - table-name: users
+ keys:
+ - key: creator_id
+ foreign-key: id
+ - table-name: user_project_tasks
+ keys:
+ - key: creator_id
+ foreign-key: user_id
+ - table-name: user_roles
+ keys:
+ - key: creator_id
+ foreign-key: user_id
+- table-name: expenses
+ join:
+ - table-name: clients
+ keys:
+ - key: client_id
+ foreign-key: id
+ - table-name: contacts
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - table-name: estimates
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - table-name: invoices
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - key: invoice_id
+ foreign-key: id
+ - table-name: projects
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - key: project_id
+ foreign-key: id
+ - table-name: time_entries
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - key: id
+ foreign-key: external_reference_id
+ - key: invoice_id
+ foreign-key: invoice_id
+ - key: project_id
+ foreign-key: project_id
+ - table-name: user_projects
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - key: project_id
+ foreign-key: project_id
+ - table-name: expense_categories
+ keys:
+ - key: expense_category_id
+ foreign-key: id
+ - table-name: time_entry_external_reference
+ keys:
+ - key: id
+ foreign-key: external_reference_id
+ - table-name: invoice_line_items
+ keys:
+ - key: invoice_id
+ foreign-key: invoice_id
+ - key: project_id
+ foreign-key: project_id
+ - table-name: invoice_messages
+ keys:
+ - key: invoice_id
+ foreign-key: invoice_id
+ - table-name: invoice_payments
+ keys:
+ - key: invoice_id
+ foreign-key: invoice_id
+ - table-name: project_tasks
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: project_users
+ keys:
+ - key: project_id
+ foreign-key: project_id
+- table-name: invoices
+ join:
+ - table-name: clients
+ keys:
+ - key: client_id
+ foreign-key: id
+ - table-name: contacts
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - table-name: estimates
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - key: estimate_id
+ foreign-key: id
+ - key: creator_id
+ foreign-key: creator_id
+ - table-name: expenses
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - key: id
+ foreign-key: invoice_id
+ - table-name: projects
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - table-name: time_entries
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - key: id
+ foreign-key: invoice_id
+ - key: creator_id
+ foreign-key: user_id
+ - table-name: user_projects
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - key: creator_id
+ foreign-key: user_id
+ - table-name: estimate_line_items
+ keys:
+ - key: estimate_id
+ foreign-key: estimate_id
+ - table-name: estimate_messages
+ keys:
+ - key: estimate_id
+ foreign-key: estimate_id
+ - table-name: invoice_line_items
+ keys:
+ - key: id
+ foreign-key: invoice_id
+ - table-name: invoice_messages
+ keys:
+ - key: id
+ foreign-key: invoice_id
+ - table-name: invoice_payments
+ keys:
+ - key: id
+ foreign-key: invoice_id
+ - table-name: users
+ keys:
+ - key: creator_id
+ foreign-key: id
+ - table-name: user_project_tasks
+ keys:
+ - key: creator_id
+ foreign-key: user_id
+ - table-name: user_roles
+ keys:
+ - key: creator_id
+ foreign-key: user_id
+- table-name: projects
+ join:
+ - table-name: clients
+ keys:
+ - key: client_id
+ foreign-key: id
+ - table-name: contacts
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - table-name: estimates
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - table-name: expenses
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - key: id
+ foreign-key: project_id
+ - table-name: invoices
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - table-name: time_entries
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - key: id
+ foreign-key: project_id
+ - table-name: user_projects
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - key: id
+ foreign-key: project_id
+ - table-name: invoice_line_items
+ keys:
+ - key: id
+ foreign-key: project_id
+ - table-name: project_tasks
+ keys:
+ - key: id
+ foreign-key: project_id
+ - table-name: project_users
+ keys:
+ - key: id
+ foreign-key: project_id
+- table-name: time_entries
+ join:
+ - table-name: clients
+ keys:
+ - key: client_id
+ foreign-key: id
+ - table-name: contacts
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - table-name: estimates
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - key: user_id
+ foreign-key: creator_id
+ - table-name: expenses
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - key: external_reference_id
+ foreign-key: id
+ - key: invoice_id
+ foreign-key: invoice_id
+ - key: project_id
+ foreign-key: project_id
+ - table-name: invoices
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - key: invoice_id
+ foreign-key: id
+ - key: user_id
+ foreign-key: creator_id
+ - table-name: projects
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - key: project_id
+ foreign-key: id
+ - table-name: user_projects
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - key: project_id
+ foreign-key: project_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: time_entry_external_reference
+ keys:
+ - key: external_reference_id
+ foreign-key: external_reference_id
+ - key: id
+ foreign-key: time_entry_id
+ - table-name: invoice_line_items
+ keys:
+ - key: invoice_id
+ foreign-key: invoice_id
+ - key: project_id
+ foreign-key: project_id
+ - table-name: invoice_messages
+ keys:
+ - key: invoice_id
+ foreign-key: invoice_id
+ - table-name: invoice_payments
+ keys:
+ - key: invoice_id
+ foreign-key: invoice_id
+ - table-name: project_tasks
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: project_users
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: tasks
+ keys:
+ - key: task_id
+ foreign-key: id
+ - table-name: users
+ keys:
+ - key: user_id
+ foreign-key: id
+ - table-name: user_project_tasks
+ keys:
+ - key: user_id
+ foreign-key: user_id
+ - table-name: user_roles
+ keys:
+ - key: user_id
+ foreign-key: user_id
+- table-name: user_projects
+ join:
+ - table-name: clients
+ keys:
+ - key: client_id
+ foreign-key: id
+ - table-name: contacts
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - table-name: estimates
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - key: user_id
+ foreign-key: creator_id
+ - table-name: expenses
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - key: project_id
+ foreign-key: project_id
+ - table-name: invoices
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - key: user_id
+ foreign-key: creator_id
+ - table-name: projects
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - key: project_id
+ foreign-key: id
+ - table-name: time_entries
+ keys:
+ - key: client_id
+ foreign-key: client_id
+ - key: project_id
+ foreign-key: project_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: invoice_line_items
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: project_tasks
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: project_users
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: users
+ keys:
+ - key: user_id
+ foreign-key: id
+ - table-name: user_project_tasks
+ keys:
+ - key: user_id
+ foreign-key: user_id
+ - table-name: user_roles
+ keys:
+ - key: user_id
+ foreign-key: user_id
+- table-name: estimate_line_items
+ join:
+ - table-name: estimate_messages
+ keys:
+ - key: estimate_id
+ foreign-key: estimate_id
+ - table-name: estimates
+ keys:
+ - key: estimate_id
+ foreign-key: id
+ - table-name: invoices
+ keys:
+ - key: estimate_id
+ foreign-key: estimate_id
+- table-name: estimate_messages
+ join:
+ - table-name: estimate_line_items
+ keys:
+ - key: estimate_id
+ foreign-key: estimate_id
+ - table-name: estimates
+ keys:
+ - key: estimate_id
+ foreign-key: id
+ - table-name: invoices
+ keys:
+ - key: estimate_id
+ foreign-key: estimate_id
+- table-name: expense_categories
+ join:
+ - table-name: expenses
+ keys:
+ - key: id
+ foreign-key: expense_category_id
+- table-name: time_entry_external_reference
+ join:
+ - table-name: expenses
+ keys:
+ - key: external_reference_id
+ foreign-key: id
+ - table-name: time_entries
+ keys:
+ - key: external_reference_id
+ foreign-key: external_reference_id
+ - key: time_entry_id
+ foreign-key: id
+- table-name: invoice_messages
+ join:
+ - table-name: expenses
+ keys:
+ - key: invoice_id
+ foreign-key: invoice_id
+ - table-name: invoice_line_items
+ keys:
+ - key: invoice_id
+ foreign-key: invoice_id
+ - table-name: invoice_payments
+ keys:
+ - key: invoice_id
+ foreign-key: invoice_id
+ - table-name: invoices
+ keys:
+ - key: invoice_id
+ foreign-key: id
+ - table-name: time_entries
+ keys:
+ - key: invoice_id
+ foreign-key: invoice_id
+- table-name: invoice_line_items
+ join:
+ - table-name: expenses
+ keys:
+ - key: invoice_id
+ foreign-key: invoice_id
+ - key: project_id
+ foreign-key: project_id
+ - table-name: invoice_messages
+ keys:
+ - key: invoice_id
+ foreign-key: invoice_id
+ - table-name: invoice_payments
+ keys:
+ - key: invoice_id
+ foreign-key: invoice_id
+ - table-name: invoices
+ keys:
+ - key: invoice_id
+ foreign-key: id
+ - table-name: time_entries
+ keys:
+ - key: invoice_id
+ foreign-key: invoice_id
+ - key: project_id
+ foreign-key: project_id
+ - table-name: project_tasks
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: project_users
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: projects
+ keys:
+ - key: project_id
+ foreign-key: id
+ - table-name: user_projects
+ keys:
+ - key: project_id
+ foreign-key: project_id
+- table-name: invoice_payments
+ join:
+ - table-name: expenses
+ keys:
+ - key: invoice_id
+ foreign-key: invoice_id
+ - table-name: invoice_line_items
+ keys:
+ - key: invoice_id
+ foreign-key: invoice_id
+ - table-name: invoice_messages
+ keys:
+ - key: invoice_id
+ foreign-key: invoice_id
+ - table-name: invoices
+ keys:
+ - key: invoice_id
+ foreign-key: id
+ - table-name: time_entries
+ keys:
+ - key: invoice_id
+ foreign-key: invoice_id
+- table-name: project_tasks
+ join:
+ - table-name: expenses
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: invoice_line_items
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: project_users
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: projects
+ keys:
+ - key: project_id
+ foreign-key: id
+ - table-name: time_entries
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: user_projects
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: user_project_tasks
+ keys:
+ - key: id
+ foreign-key: project_task_id
+- table-name: project_users
+ join:
+ - table-name: expenses
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: invoice_line_items
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: project_tasks
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: projects
+ keys:
+ - key: project_id
+ foreign-key: id
+ - table-name: time_entries
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: user_projects
+ keys:
+ - key: project_id
+ foreign-key: project_id
+- table-name: user_project_tasks
+ join:
+ - table-name: project_tasks
+ keys:
+ - key: project_task_id
+ foreign-key: id
+ - table-name: estimates
+ keys:
+ - key: user_id
+ foreign-key: creator_id
+ - table-name: invoices
+ keys:
+ - key: user_id
+ foreign-key: creator_id
+ - table-name: time_entries
+ keys:
+ - key: user_id
+ foreign-key: user_id
+ - table-name: users
+ keys:
+ - key: user_id
+ foreign-key: id
+ - table-name: user_projects
+ keys:
+ - key: user_id
+ foreign-key: user_id
+ - table-name: user_roles
+ keys:
+ - key: user_id
+ foreign-key: user_id
+- table-name: roles
+ join:
+ - table-name: user_roles
+ keys:
+ - key: id
+ foreign-key: role_id
+- table-name: user_roles
+ join:
+ - table-name: roles
+ keys:
+ - key: role_id
+ foreign-key: id
+ - table-name: estimates
+ keys:
+ - key: user_id
+ foreign-key: creator_id
+ - table-name: invoices
+ keys:
+ - key: user_id
+ foreign-key: creator_id
+ - table-name: time_entries
+ keys:
+ - key: user_id
+ foreign-key: user_id
+ - table-name: users
+ keys:
+ - key: user_id
+ foreign-key: id
+ - table-name: user_project_tasks
+ keys:
+ - key: user_id
+ foreign-key: user_id
+ - table-name: user_projects
+ keys:
+ - key: user_id
+ foreign-key: user_id
+- table-name: tasks
+ join:
+ - table-name: time_entries
+ keys:
+ - key: id
+ foreign-key: task_id
+- table-name: users
+ join:
+ - table-name: estimates
+ keys:
+ - key: id
+ foreign-key: creator_id
+ - table-name: invoices
+ keys:
+ - key: id
+ foreign-key: creator_id
+ - table-name: time_entries
+ keys:
+ - key: id
+ foreign-key: user_id
+ - table-name: user_project_tasks
+ keys:
+ - key: id
+ foreign-key: user_id
+ - table-name: user_projects
+ keys:
+ - key: id
+ foreign-key: user_id
+ - table-name: user_roles
+ keys:
+ - key: id
+ foreign-key: user_id
diff --git a/_data/taps/schemas/harvest/v2/harvest-v2-tables.yml b/_data/taps/schemas/harvest/v2/harvest-v2-tables.yml
new file mode 100644
index 000000000..5c22481e4
--- /dev/null
+++ b/_data/taps/schemas/harvest/v2/harvest-v2-tables.yml
@@ -0,0 +1,333 @@
+tap: harvest
+version: '2'
+tables:
+- name: clients
+ description: 'The `{{ table.name }}` table contains info about the clients in your
+ Harvest account.
+
+ '
+ links:
+ doc-link: https://help.getharvest.com/api-v2/clients-api/clients/clients/
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/clients.json
+ api-method: https://help.getharvest.com/api-v2/clients-api/clients/clients/#list-all-clients
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: contacts
+ description: 'The `{{ table.name }}` table contains info about the client contacts
+ in your Harvest account.
+
+ '
+ links:
+ doc-link: https://help.getharvest.com/api-v2/clients-api/clients/contacts/
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/contacts.json
+ api-method: https://help.getharvest.com/api-v2/clients-api/clients/contacts/#list-all-contacts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: estimates
+ description: 'The `{{ table.name }}` table contains info about the estimates in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://help.getharvest.com/api-v2/estimates-api/estimates/estimates/
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/estimates.json
+ api-method: https://help.getharvest.com/api-v2/estimates-api/estimates/estimate-messages/#list-all-messages-for-an-estimate
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: estimate_item_categories
+ description: 'The `estimate_item_categories` table contains info about the estimate
+ item categories in your Harvest account.
+
+ '
+ links:
+ doc-link: https://help.getharvest.com/api-v2/estimates-api/estimates/estimate-item-categories/
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/estimate_item_categories.json
+ api-method: https://help.getharvest.com/api-v2/estimates-api/estimates/estimate-item-categories/#list-all-estimate-item-categories
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: estimate_line_items
+ description: 'The `{{ table.name }}` table contains info about the line items contained
+ in estimates.
+
+
+ **Note**: This table is updated based on new and updated `estimates`. This means
+ that when an estimate is updated, this table will also be updated.
+
+ '
+ links:
+ doc-link: https://help.getharvest.com/api-v2/estimates-api/estimates/estimates/#the-estimate-line-item-object
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/estimate_line_items.json
+ api-method: https://help.getharvest.com/api-v2/estimates-api/estimates/estimates/#get-all-estimates
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: estimate_messages
+ description: 'The `{{ table.name }}` table contains info about the messages associated
+ with estimates.
+
+ '
+ links:
+ doc-link: https://help.getharvest.com/api-v2/estimates-api/estimates/estimate-messages/
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/estimate_messages.json
+ api-method: https://help.getharvest.com/api-v2/estimates-api/estimates/estimate-messages/#list-all-messages-for-an-estimate
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: expenses
+ description: 'The `expenses` table contains info about the expenses recorded in
+ your Harvest account.
+
+ '
+ links:
+ doc-link: https://help.getharvest.com/api-v2/expenses-api/expenses/expenses/
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/expenses.json
+ api-method: https://help.getharvest.com/api-v2/expenses-api/expenses/expenses#list-all-expenses
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: expense_categories
+ description: 'The `expense_categories` table contains info about the expense categories
+ in your Harvest account.
+
+ '
+ links:
+ doc-link: https://help.getharvest.com/api-v2/expenses-api/expenses/expense-categories/
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/expense_categories.json
+ api-method: https://help.getharvest.com/api-v2/expenses-api/expenses/expense-categories/#list-all-expense-categories
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: invoices
+ description: 'The `{{ table.name }}` table contains info about the invoices in your
+ Harvest account.
+
+ '
+ links:
+ doc-link: https://help.getharvest.com/api-v2/invoices-api/invoices/invoices/
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/invoices.json
+ api-method: https://help.getharvest.com/api-v2/invoices-api/invoices/invoices#list-all-invoices
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: invoice_item_categories
+ description: 'The `{{ table.name }}` table contains info about the various categories
+ that can be applied to invoice line items.
+
+
+ **Note**: Harvest includes two non-removable categories by default for the hours
+ and expenses you bill.
+
+ '
+ links:
+ doc-link: https://help.getharvest.com/api-v2/invoices-api/invoices/invoice-item-categories/
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/invoice_item_categories.json
+ api-method: http://help.getharvest.com/api-v1/invoices-api/invoices/invoice-messages-payments/#show-all-categories
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: invoice_line_items
+ description: 'The `{{ table.name }}` table contains info about the line items contained
+ in invoices.
+
+
+ **Note**: This table is updated based on new and updated `invoices`. This means
+ that when an invoice is updated, this table will also be updated.
+
+ '
+ links:
+ doc-link: https://help.getharvest.com/api-v2/invoices-api/invoices/invoices#the-invoice-line-item-object
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/invoice_line_items.json
+ api-method: https://help.getharvest.com/api-v2/invoices-api/invoices/invoices#list-all-invoices
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: invoice_messages
+ description: 'The `{{ table.name }}` table contains info about invoice messages,
+ or emails sent to clients about invoices.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/invoice_messages.json
+ api-method: https://help.getharvest.com/api-v2/invoices-api/invoices/invoice-messages/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: invoice_payments
+ description: 'The `{{ table.name }}` table contains info about the payments applied
+ to invoices in your Harvest account.
+
+ '
+ links:
+ doc-link: https://help.getharvest.com/api-v2/invoices-api/invoices/invoice-payments/
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/invoice_payments.json
+ api-method: https://help.getharvest.com/api-v2/invoices-api/invoices/invoice-payments#list-all-payments-for-an-invoice
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: projects
+ description: 'The `{{ table.name }}` table contains info about the projects in your
+ Harvest account.
+
+ '
+ links:
+ doc-link: https://help.getharvest.com/api-v2/projects-api/projects/projects/
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/projects.json
+ api-method: https://help.getharvest.com/api-v2/projects-api/projects/projects#list-all-projects
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: project_tasks
+ description: 'The `{{ table.name }}` table contains info about the tasks assigned
+ to projects.
+
+ '
+ links:
+ doc-link: https://help.getharvest.com/api-v2/projects-api/projects/task-assignments/
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/project_tasks.json
+ api-method: https://help.getharvest.com/api-v2/projects-api/projects/task-assignments#list-all-task-assignments
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: project_users
+ description: 'The `{{ table.name }}` table contains info about the users assigned
+ to projects.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/project_users.json
+ api-method: https://help.getharvest.com/api-v2/projects-api/projects/user-assignments/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: roles
+ description: 'The `{{ table.name }}` table contains info about the roles in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://help.getharvest.com/api-v2/roles-api/roles/roles/
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/roles.json
+ api-method: https://help.getharvest.com/api-v2/roles-api/roles/roles#list-all-roles
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: tasks
+ description: 'The `{{ table.name }}` table contains info about the tasks in your
+ Harvest account.
+
+ '
+ links:
+ doc-link: https://help.getharvest.com/api-v2/tasks-api/tasks/tasks/
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/tasks.json
+ api-method: https://help.getharvest.com/api-v2/tasks-api/tasks/tasks#list-all-tasks
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: time_entries
+ description: 'The `{{ table.name }}` table contains info about the time entries
+ in your Harvest account.
+
+ '
+ links:
+ doc-link: https://help.getharvest.com/api-v2/timesheets-api/timesheets/time-entries/
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/time_entries.json
+ api-method: https://help.getharvest.com/api-v2/timesheets-api/timesheets/time-entries#list-all-time-entries
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: time_entry_external_reference
+ description: 'The `{{ table.name }}` table contains pairs of time entry IDs and
+ external reference IDs. This data can be used to tie time entries tracked in external
+ services (such as Trello) to your other Harvest data.
+
+
+ **Note**: This table is updated based on new and updated `time_entries`. This
+ means that when a time entry is updated, this table will also be updated.
+
+ '
+ links:
+ doc-link: https://help.getharvest.com/api-v2/timesheets-api/timesheets/time-entries/
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/time_entry_external_reference.json
+ api-method: https://help.getharvest.com/api-v2/timesheets-api/timesheets/time-entries#list-all-time-entries
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - time_entry_id
+ - external_reference_id
+- name: users
+ description: 'The `{{ table.name }}` table contains info about the users in your
+ Harvest account.
+
+ '
+ links:
+ doc-link: https://help.getharvest.com/api-v2/users-api/users/users/
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/users.json
+ api-method: https://help.getharvest.com/api-v2/users-api/users/users#list-all-users
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: user_projects
+ description: 'The `{{ table.name }}` table contains info about the project assignments
+ users are assigned to.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/user_projects.json
+ api-method: https://help.getharvest.com/api-v2/users-api/users/project-assignments/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: user_project_tasks
+ description: "The `{{ table.name }}` table contains pairs of user IDs and project\
+ \ task IDs.\n\n This data can be used to see lists of all the project tasks associated\
+ \ with a user, and join tables together to get a comprehensive look at the user's\
+ \ projects.\n\n**Note**: This table is updated based on new and updated `users`.\
+ \ This means that when a user is updated, this table will also be updated.\n"
+ links:
+ doc-link: null
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/user_project_tasks.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - user_id
+ - project_task_id
+- name: user_roles
+ description: 'The `{{ table.name }}` table contains a list of user ID and role ID
+ pairs, enabling you to see the roles users are associated with.
+
+
+ **Note**: This table is updated based on new and updated `users`. This means that
+ when a user is updated, this table will also be updated.
+
+ '
+ links:
+ doc-link: https://help.getharvest.com/api-v2/users-api/users/users/
+ singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/user_roles.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - user_id
+ - role_id
diff --git a/_data/taps/schemas/harvest/v2/json/clients.json b/_data/taps/schemas/harvest/v2/json/clients.json
new file mode 100644
index 000000000..0df08b2bd
--- /dev/null
+++ b/_data/taps/schemas/harvest/v2/json/clients.json
@@ -0,0 +1,47 @@
+{
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v2/json/contacts.json b/_data/taps/schemas/harvest/v2/json/contacts.json
new file mode 100644
index 000000000..0868709de
--- /dev/null
+++ b/_data/taps/schemas/harvest/v2/json/contacts.json
@@ -0,0 +1,71 @@
+{
+ "properties": {
+ "client_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_mobile": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_office": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v2/json/estimate_item_categories.json b/_data/taps/schemas/harvest/v2/json/estimate_item_categories.json
new file mode 100644
index 000000000..87185e5c1
--- /dev/null
+++ b/_data/taps/schemas/harvest/v2/json/estimate_item_categories.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v2/json/estimate_line_items.json b/_data/taps/schemas/harvest/v2/json/estimate_line_items.json
new file mode 100644
index 000000000..24d0a69ca
--- /dev/null
+++ b/_data/taps/schemas/harvest/v2/json/estimate_line_items.json
@@ -0,0 +1,59 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "estimate_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "kind": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "taxed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "taxed2": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "unit_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v2/json/estimate_messages.json b/_data/taps/schemas/harvest/v2/json/estimate_messages.json
new file mode 100644
index 000000000..bbb0afaa8
--- /dev/null
+++ b/_data/taps/schemas/harvest/v2/json/estimate_messages.json
@@ -0,0 +1,103 @@
+{
+ "properties": {
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "estimate_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "recipients": {
+ "items": {
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "send_me_a_copy": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "sent_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sent_by_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sent_from": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sent_from_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v2/json/estimates.json b/_data/taps/schemas/harvest/v2/json/estimates.json
new file mode 100644
index 000000000..3e5fbcebc
--- /dev/null
+++ b/_data/taps/schemas/harvest/v2/json/estimates.json
@@ -0,0 +1,146 @@
+{
+ "properties": {
+ "accepted_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "client_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "client_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creator_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "declined_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "discount": {
+ "type": [
+ "null",
+ "string",
+ "number"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "issue_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "purchase_order": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sent_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax": {
+ "type": [
+ "null",
+ "string",
+ "number"
+ ]
+ },
+ "tax2": {
+ "type": [
+ "null",
+ "string",
+ "number"
+ ]
+ },
+ "tax2_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v2/json/expense_categories.json b/_data/taps/schemas/harvest/v2/json/expense_categories.json
new file mode 100644
index 000000000..90cfd97a9
--- /dev/null
+++ b/_data/taps/schemas/harvest/v2/json/expense_categories.json
@@ -0,0 +1,47 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v2/json/expenses.json b/_data/taps/schemas/harvest/v2/json/expenses.json
new file mode 100644
index 000000000..6c41d1fce
--- /dev/null
+++ b/_data/taps/schemas/harvest/v2/json/expenses.json
@@ -0,0 +1,137 @@
+{
+ "properties": {
+ "billable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "client_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "expense_category_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "invoice_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_billed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_closed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_locked": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "locked_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "receipt_content_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt_file_size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "receipt_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "spent_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "total_cost": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "units": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user_assignment_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v2/json/invoice_item_categories.json b/_data/taps/schemas/harvest/v2/json/invoice_item_categories.json
new file mode 100644
index 000000000..4e72640f9
--- /dev/null
+++ b/_data/taps/schemas/harvest/v2/json/invoice_item_categories.json
@@ -0,0 +1,41 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "use_as_expense": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "use_as_service": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v2/json/invoice_line_items.json b/_data/taps/schemas/harvest/v2/json/invoice_line_items.json
new file mode 100644
index 000000000..0797fe788
--- /dev/null
+++ b/_data/taps/schemas/harvest/v2/json/invoice_line_items.json
@@ -0,0 +1,65 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "invoice_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "kind": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "taxed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "taxed2": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "unit_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v2/json/invoice_messages.json b/_data/taps/schemas/harvest/v2/json/invoice_messages.json
new file mode 100644
index 000000000..2264fc52f
--- /dev/null
+++ b/_data/taps/schemas/harvest/v2/json/invoice_messages.json
@@ -0,0 +1,133 @@
+{
+ "properties": {
+ "attach_pdf": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "include_link_to_client_invoice": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "invoice_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "recipients": {
+ "items": {
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reminder": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "send_me_a_copy": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "send_reminder_on": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "sent_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sent_by_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sent_from": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sent_from_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thank_you": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v2/json/invoice_payments.json b/_data/taps/schemas/harvest/v2/json/invoice_payments.json
new file mode 100644
index 000000000..a44155331
--- /dev/null
+++ b/_data/taps/schemas/harvest/v2/json/invoice_payments.json
@@ -0,0 +1,83 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "invoice_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "paid_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "paid_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "payment_gateway_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "payment_gateway_name": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "recorded_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recorded_by_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v2/json/invoices.json b/_data/taps/schemas/harvest/v2/json/invoices.json
new file mode 100644
index 000000000..d3e452caa
--- /dev/null
+++ b/_data/taps/schemas/harvest/v2/json/invoices.json
@@ -0,0 +1,194 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "client_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "client_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "closed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creator_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount": {
+ "type": [
+ "null",
+ "string",
+ "number"
+ ]
+ },
+ "discount_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "due_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "due_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "estimate_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "issue_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "paid_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "paid_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "payment_term": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "period_end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "period_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "purchase_order": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "retainer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sent_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax": {
+ "type": [
+ "null",
+ "string",
+ "number"
+ ]
+ },
+ "tax2": {
+ "type": [
+ "null",
+ "string",
+ "number"
+ ]
+ },
+ "tax2_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v2/json/project_tasks.json b/_data/taps/schemas/harvest/v2/json/project_tasks.json
new file mode 100644
index 000000000..a83c8f223
--- /dev/null
+++ b/_data/taps/schemas/harvest/v2/json/project_tasks.json
@@ -0,0 +1,59 @@
+{
+ "properties": {
+ "billable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "budget": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "hourly_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "task_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v2/json/project_users.json b/_data/taps/schemas/harvest/v2/json/project_users.json
new file mode 100644
index 000000000..cb13b6b5f
--- /dev/null
+++ b/_data/taps/schemas/harvest/v2/json/project_users.json
@@ -0,0 +1,59 @@
+{
+ "properties": {
+ "budget": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "hourly_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_project_manager": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v2/json/projects.json b/_data/taps/schemas/harvest/v2/json/projects.json
new file mode 100644
index 000000000..d8a96590a
--- /dev/null
+++ b/_data/taps/schemas/harvest/v2/json/projects.json
@@ -0,0 +1,149 @@
+{
+ "properties": {
+ "bill_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "budget": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "budget_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "budget_is_monthly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "client_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cost_budget": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_budget_include_expenses": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ends_on": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fee": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "hourly_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_billable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_fixed_fee": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notify_when_over_budget": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "over_budget_notification_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "over_budget_notification_percentage": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "show_budget_to_all": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starts_on": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v2/json/roles.json b/_data/taps/schemas/harvest/v2/json/roles.json
new file mode 100644
index 000000000..87185e5c1
--- /dev/null
+++ b/_data/taps/schemas/harvest/v2/json/roles.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v2/json/tasks.json b/_data/taps/schemas/harvest/v2/json/tasks.json
new file mode 100644
index 000000000..4f7fdab2a
--- /dev/null
+++ b/_data/taps/schemas/harvest/v2/json/tasks.json
@@ -0,0 +1,53 @@
+{
+ "properties": {
+ "billable_by_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "default_hourly_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v2/json/time_entries.json b/_data/taps/schemas/harvest/v2/json/time_entries.json
new file mode 100644
index 000000000..f0a43779f
--- /dev/null
+++ b/_data/taps/schemas/harvest/v2/json/time_entries.json
@@ -0,0 +1,161 @@
+{
+ "properties": {
+ "billable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "billable_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "budgeted": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "client_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cost_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ended_time": {
+ "type": [
+ "null",
+ "time"
+ ]
+ },
+ "external_reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hours": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "invoice_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_billed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_closed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_locked": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_running": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "locked_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "spent_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "started_time": {
+ "type": [
+ "null",
+ "time"
+ ]
+ },
+ "task_assignment_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "task_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "timer_started_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user_assignment_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v2/json/time_entry_external_reference.json b/_data/taps/schemas/harvest/v2/json/time_entry_external_reference.json
new file mode 100644
index 000000000..16f340b69
--- /dev/null
+++ b/_data/taps/schemas/harvest/v2/json/time_entry_external_reference.json
@@ -0,0 +1,17 @@
+{
+ "properties": {
+ "external_reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "time_entry_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v2/json/user_project_tasks.json b/_data/taps/schemas/harvest/v2/json/user_project_tasks.json
new file mode 100644
index 000000000..446fd3330
--- /dev/null
+++ b/_data/taps/schemas/harvest/v2/json/user_project_tasks.json
@@ -0,0 +1,17 @@
+{
+ "properties": {
+ "project_task_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v2/json/user_projects.json b/_data/taps/schemas/harvest/v2/json/user_projects.json
new file mode 100644
index 000000000..183aa71d2
--- /dev/null
+++ b/_data/taps/schemas/harvest/v2/json/user_projects.json
@@ -0,0 +1,65 @@
+{
+ "properties": {
+ "budget": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "client_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "hourly_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_project_manager": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v2/json/user_roles.json b/_data/taps/schemas/harvest/v2/json/user_roles.json
new file mode 100644
index 000000000..39ba08837
--- /dev/null
+++ b/_data/taps/schemas/harvest/v2/json/user_roles.json
@@ -0,0 +1,17 @@
+{
+ "properties": {
+ "role_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/harvest/v2/json/users.json b/_data/taps/schemas/harvest/v2/json/users.json
new file mode 100644
index 000000000..24163bdd7
--- /dev/null
+++ b/_data/taps/schemas/harvest/v2/json/users.json
@@ -0,0 +1,125 @@
+{
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "can_create_invoices": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "can_create_projects": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "can_see_rates": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "cost_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "default_hourly_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_access_to_all_future_projects": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_contractor": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_project_manager": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "telephone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "weekly_capacity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/heap/v1/heap-v1-foreign-keys.yml b/_data/taps/schemas/heap/v1/heap-v1-foreign-keys.yml
new file mode 100644
index 000000000..8fe228cde
--- /dev/null
+++ b/_data/taps/schemas/heap/v1/heap-v1-foreign-keys.yml
@@ -0,0 +1,154 @@
+tap: heap
+version: '1'
+keys:
+ events_event_id:
+ - table: event_tables
+ keys:
+ - event_id
+ - table: pageviews
+ keys:
+ - event_id
+ - table: sessions
+ keys:
+ - event_id
+ sessions_session_id:
+ - table: event_tables
+ keys:
+ - session_id
+ - table: pageviews
+ keys:
+ - session_id
+ - table: sessions
+ keys:
+ - session_id
+ users_user_id:
+ - table: event_tables
+ keys:
+ - user_id
+ - table: pageviews
+ keys:
+ - user_id
+ - table: sessions
+ keys:
+ - user_id
+ - table: user_migrations
+ keys:
+ - to_user_id
+ - table: users
+ keys:
+ - user_id
+tables:
+- table-name: event_tables
+ join:
+ - table-name: pageviews
+ keys:
+ - key: event_id
+ foreign-key: event_id
+ - key: session_id
+ foreign-key: session_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: sessions
+ keys:
+ - key: event_id
+ foreign-key: event_id
+ - key: session_id
+ foreign-key: session_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: user_migrations
+ keys:
+ - key: user_id
+ foreign-key: to_user_id
+ - table-name: users
+ keys:
+ - key: user_id
+ foreign-key: user_id
+- table-name: pageviews
+ join:
+ - table-name: event_tables
+ keys:
+ - key: event_id
+ foreign-key: event_id
+ - key: session_id
+ foreign-key: session_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: sessions
+ keys:
+ - key: event_id
+ foreign-key: event_id
+ - key: session_id
+ foreign-key: session_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: user_migrations
+ keys:
+ - key: user_id
+ foreign-key: to_user_id
+ - table-name: users
+ keys:
+ - key: user_id
+ foreign-key: user_id
+- table-name: sessions
+ join:
+ - table-name: event_tables
+ keys:
+ - key: event_id
+ foreign-key: event_id
+ - key: session_id
+ foreign-key: session_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: pageviews
+ keys:
+ - key: event_id
+ foreign-key: event_id
+ - key: session_id
+ foreign-key: session_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: user_migrations
+ keys:
+ - key: user_id
+ foreign-key: to_user_id
+ - table-name: users
+ keys:
+ - key: user_id
+ foreign-key: user_id
+- table-name: user_migrations
+ join:
+ - table-name: event_tables
+ keys:
+ - key: to_user_id
+ foreign-key: user_id
+ - table-name: pageviews
+ keys:
+ - key: to_user_id
+ foreign-key: user_id
+ - table-name: sessions
+ keys:
+ - key: to_user_id
+ foreign-key: user_id
+ - table-name: users
+ keys:
+ - key: to_user_id
+ foreign-key: user_id
+- table-name: users
+ join:
+ - table-name: event_tables
+ keys:
+ - key: user_id
+ foreign-key: user_id
+ - table-name: pageviews
+ keys:
+ - key: user_id
+ foreign-key: user_id
+ - table-name: sessions
+ keys:
+ - key: user_id
+ foreign-key: user_id
+ - table-name: user_migrations
+ keys:
+ - key: user_id
+ foreign-key: to_user_id
diff --git a/_data/taps/schemas/heap/v1/heap-v1-tables.yml b/_data/taps/schemas/heap/v1/heap-v1-tables.yml
new file mode 100644
index 000000000..d84c01fb9
--- /dev/null
+++ b/_data/taps/schemas/heap/v1/heap-v1-tables.yml
@@ -0,0 +1,80 @@
+tap: heap
+version: '1'
+tap-repo-schemas: false
+tables:
+- name: event_tables
+ description: 'For every event type defined in {{ integration.display_name }}, a
+ table will display in the Stitch app. The name of the table will be the event
+ name, which {{ integration.display_name }} will first strip the non-alphanumeric
+ characters from. For example: The table name for `Sign Up - Click Link` will be
+ transformed into `sign_up_click_link` by {{ integration.display_name }}.
+
+
+ **Note**: Custom attributes are supported for this table. As {{ integration.display_name
+ }} schemas are dynamic, Stitch''s `{{ table.name }}` documentation will only list
+ the non-custom attributes outlined in {{ integration.display_name }}''s documentation.
+
+ '
+ links:
+ doc-link: https://help.heap.io/heap-connect/heap-connect-guide/data-schema/#event-tables
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: event_id
+- name: pageviews
+ description: 'The `{{ table.name }}` table contains info about pageviews.
+
+
+ **Note**: Custom attributes are supported for this table. As {{ integration.display_name
+ }} schemas are dynamic, Stitch''s `{{ table.name }}` documentation will only list
+ the non-custom attributes outlined in {{ integration.display_name }}''s documentation.
+
+ '
+ links:
+ doc-link: https://help.heap.io/heap-connect/heap-connect-guide/data-schema/#pageviews-table
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: event_id
+- name: sessions
+ description: 'The `{{ table.name }}` table contains info about sessions. In {{ integration.display_name
+ }}, a web session ends after 30 minutes of user inactivity, while in iOS, a session
+ ends after the app has entered the background.
+
+
+ **Note**: Custom attributes are supported for this table. As {{ integration.display_name
+ }} schemas are dynamic, Stitch''s `{{ table.name }}` documentation will only list
+ the non-custom attributes outlined in {{ integration.display_name }}''s documentation.
+
+ '
+ links:
+ doc-link: https://help.heap.io/heap-connect/heap-connect-guide/data-schema/#sessions-table
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: event_id
+- name: users
+ description: 'The `{{ table.name }}` table contains info about users.
+
+
+ **Note**: Custom attributes are supported for this table. As {{ integration.display_name
+ }} schemas are dynamic, Stitch''s `{{ table.name }}` documentation will only list
+ the non-custom attributes outlined in {{ integration.display_name }}''s documentation.
+
+ '
+ links:
+ doc-link: https://help.heap.io/heap-connect/heap-connect-guide/data-schema/#users-table
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: user_id
+- name: user_migrations
+ description: 'The `{{ table.name }}` table contains info about user migrations.
+
+
+ **Note**: Custom attributes are supported for this table. As {{ integration.display_name
+ }} schemas are dynamic, Stitch''s `{{ table.name }}` documentation will only list
+ the non-custom attributes outlined in {{ integration.display_name }}''s documentation.
+
+ '
+ links:
+ doc-link: https://help.heap.io/heap-connect/heap-connect-guide/data-schema/#user-migrations-table
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: from_user_id
diff --git a/_data/taps/schemas/heap/v1/json/event_tables.json b/_data/taps/schemas/heap/v1/json/event_tables.json
new file mode 100644
index 000000000..9cca60431
--- /dev/null
+++ b/_data/taps/schemas/heap/v1/json/event_tables.json
@@ -0,0 +1,204 @@
+{
+ "properties": {
+ "IP": {
+ "type": [
+ "string"
+ ]
+ },
+ "action_method": {
+ "type": [
+ "string"
+ ]
+ },
+ "app_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "app_version": {
+ "type": [
+ "string"
+ ]
+ },
+ "browser": {
+ "type": [
+ "string"
+ ]
+ },
+ "carrier": {
+ "type": [
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "string"
+ ]
+ },
+ "device_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "event_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "hash": {
+ "type": [
+ "string"
+ ]
+ },
+ "href": {
+ "type": [
+ "string"
+ ]
+ },
+ "landing_page": {
+ "type": [
+ "string"
+ ]
+ },
+ "library": {
+ "type": [
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "string"
+ ]
+ },
+ "platform": {
+ "type": [
+ "string"
+ ]
+ },
+ "query": {
+ "type": [
+ "string"
+ ]
+ },
+ "referrer": {
+ "type": [
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "string"
+ ]
+ },
+ "screen_ally_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "screen_ally_label": {
+ "type": [
+ "string"
+ ]
+ },
+ "search_keyword": {
+ "type": [
+ "string"
+ ]
+ },
+ "session_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "session_time": {
+ "type": [
+ "string"
+ ]
+ },
+ "target_ally_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "target_ally_label": {
+ "type": [
+ "string"
+ ]
+ },
+ "target_text": {
+ "type": [
+ "string"
+ ]
+ },
+ "target_view_class": {
+ "type": [
+ "string"
+ ]
+ },
+ "target_view_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "time": {
+ "type": [
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "utm_campaign": {
+ "type": [
+ "string"
+ ]
+ },
+ "utm_content": {
+ "type": [
+ "string"
+ ]
+ },
+ "utm_medium": {
+ "type": [
+ "string"
+ ]
+ },
+ "utm_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "utm_term": {
+ "type": [
+ "string"
+ ]
+ },
+ "view_controller": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/heap/v1/json/pageviews.json b/_data/taps/schemas/heap/v1/json/pageviews.json
new file mode 100644
index 000000000..50dec00a8
--- /dev/null
+++ b/_data/taps/schemas/heap/v1/json/pageviews.json
@@ -0,0 +1,164 @@
+{
+ "properties": {
+ "IP": {
+ "type": [
+ "string"
+ ]
+ },
+ "app_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "app_version": {
+ "type": [
+ "string"
+ ]
+ },
+ "browser": {
+ "type": [
+ "string"
+ ]
+ },
+ "carrier": {
+ "type": [
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "string"
+ ]
+ },
+ "device_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "event_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "hash": {
+ "type": [
+ "string"
+ ]
+ },
+ "landing_page": {
+ "type": [
+ "string"
+ ]
+ },
+ "library": {
+ "type": [
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "string"
+ ]
+ },
+ "platform": {
+ "type": [
+ "string"
+ ]
+ },
+ "query": {
+ "type": [
+ "string"
+ ]
+ },
+ "referrer": {
+ "type": [
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "string"
+ ]
+ },
+ "screen_ally_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "screen_ally_label": {
+ "type": [
+ "string"
+ ]
+ },
+ "search_keyword": {
+ "type": [
+ "string"
+ ]
+ },
+ "session_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "session_time": {
+ "type": [
+ "string"
+ ]
+ },
+ "time": {
+ "type": [
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "utm_campaign": {
+ "type": [
+ "string"
+ ]
+ },
+ "utm_content": {
+ "type": [
+ "string"
+ ]
+ },
+ "utm_medium": {
+ "type": [
+ "string"
+ ]
+ },
+ "utm_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "utm_term": {
+ "type": [
+ "string"
+ ]
+ },
+ "view_controller": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/heap/v1/json/sessions.json b/_data/taps/schemas/heap/v1/json/sessions.json
new file mode 100644
index 000000000..acb8bb5aa
--- /dev/null
+++ b/_data/taps/schemas/heap/v1/json/sessions.json
@@ -0,0 +1,124 @@
+{
+ "properties": {
+ "IP": {
+ "type": [
+ "string"
+ ]
+ },
+ "app_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "app_version": {
+ "type": [
+ "string"
+ ]
+ },
+ "browser": {
+ "type": [
+ "string"
+ ]
+ },
+ "carrier": {
+ "type": [
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "string"
+ ]
+ },
+ "device_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "event_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "landing_page": {
+ "type": [
+ "string"
+ ]
+ },
+ "library": {
+ "type": [
+ "string"
+ ]
+ },
+ "platform": {
+ "type": [
+ "string"
+ ]
+ },
+ "referrer": {
+ "type": [
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "string"
+ ]
+ },
+ "search_keyword": {
+ "type": [
+ "string"
+ ]
+ },
+ "session_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "time": {
+ "type": [
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "utm_campaign": {
+ "type": [
+ "string"
+ ]
+ },
+ "utm_content": {
+ "type": [
+ "string"
+ ]
+ },
+ "utm_medium": {
+ "type": [
+ "string"
+ ]
+ },
+ "utm_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "utm_term": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/heap/v1/json/user_migrations.json b/_data/taps/schemas/heap/v1/json/user_migrations.json
new file mode 100644
index 000000000..9e7e71d5c
--- /dev/null
+++ b/_data/taps/schemas/heap/v1/json/user_migrations.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "from_user_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "time": {
+ "type": [
+ "string"
+ ]
+ },
+ "to_user_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/heap/v1/json/users.json b/_data/taps/schemas/heap/v1/json/users.json
new file mode 100644
index 000000000..5e8c1ccab
--- /dev/null
+++ b/_data/taps/schemas/heap/v1/json/users.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "handle": {
+ "type": [
+ "string"
+ ]
+ },
+ "identity": {
+ "type": [
+ "string"
+ ]
+ },
+ "joindate": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_modified": {
+ "type": [
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/helpscout/v1/helpscout-v1-foreign-keys.yml b/_data/taps/schemas/helpscout/v1/helpscout-v1-foreign-keys.yml
new file mode 100644
index 000000000..7d00a80c2
--- /dev/null
+++ b/_data/taps/schemas/helpscout/v1/helpscout-v1-foreign-keys.yml
@@ -0,0 +1,237 @@
+tap: helpscout
+version: '1'
+keys:
+ conversations_conversation_id:
+ - table: conversation_threads
+ keys:
+ - conversation_id
+ - table: conversations
+ keys:
+ - id
+ customers_id:
+ - table: conversation_threads
+ keys:
+ - customer.id
+ - table: conversations
+ keys:
+ - primary_customer.id
+ - table: customers
+ keys:
+ - id
+ mailbox_folders_folder_id:
+ - table: conversations
+ keys:
+ - folder_id
+ - table: mailbox_folders
+ keys:
+ - id
+ mailboxes_mailbox_id:
+ - table: conversations
+ keys:
+ - mailbox_id
+ - table: mailbox_fields
+ keys:
+ - mailbox_id
+ - table: mailbox_folders
+ keys:
+ - mailbox_id
+ - table: mailboxes
+ keys:
+ - id
+ - table: workflows
+ keys:
+ - mailbox_id
+ users_id:
+ - table: conversation_threads
+ keys:
+ - assigned_to.id
+ - created_by.id
+ - table: conversations
+ keys:
+ - assignee.id
+ - closed_by
+ - created_by.id
+ - table: users
+ keys:
+ - id
+tables:
+- table-name: conversation_threads
+ join:
+ - table-name: conversations
+ keys:
+ - key: conversation_id
+ foreign-key: id
+ - key: customer.id
+ foreign-key: primary_customer.id
+ - key: assigned_to.id
+ foreign-key: assignee.id
+ - key: created_by.id
+ foreign-key: assignee.id
+ - key: assigned_to.id
+ foreign-key: closed_by
+ - key: created_by.id
+ foreign-key: closed_by
+ - key: assigned_to.id
+ foreign-key: created_by.id
+ - key: created_by.id
+ foreign-key: created_by.id
+ - table-name: customers
+ keys:
+ - key: customer.id
+ foreign-key: id
+ - table-name: users
+ keys:
+ - key: assigned_to.id
+ foreign-key: id
+ - key: created_by.id
+ foreign-key: id
+- table-name: conversations
+ join:
+ - table-name: conversation_threads
+ keys:
+ - key: id
+ foreign-key: conversation_id
+ - key: primary_customer.id
+ foreign-key: customer.id
+ - key: assignee.id
+ foreign-key: assigned_to.id
+ - key: closed_by
+ foreign-key: assigned_to.id
+ - key: created_by.id
+ foreign-key: assigned_to.id
+ - key: assignee.id
+ foreign-key: created_by.id
+ - key: closed_by
+ foreign-key: created_by.id
+ - key: created_by.id
+ foreign-key: created_by.id
+ - table-name: customers
+ keys:
+ - key: primary_customer.id
+ foreign-key: id
+ - table-name: mailbox_folders
+ keys:
+ - key: folder_id
+ foreign-key: id
+ - key: mailbox_id
+ foreign-key: mailbox_id
+ - table-name: mailbox_fields
+ keys:
+ - key: mailbox_id
+ foreign-key: mailbox_id
+ - table-name: mailboxes
+ keys:
+ - key: mailbox_id
+ foreign-key: id
+ - table-name: workflows
+ keys:
+ - key: mailbox_id
+ foreign-key: mailbox_id
+ - table-name: users
+ keys:
+ - key: assignee.id
+ foreign-key: id
+ - key: closed_by
+ foreign-key: id
+ - key: created_by.id
+ foreign-key: id
+- table-name: customers
+ join:
+ - table-name: conversation_threads
+ keys:
+ - key: id
+ foreign-key: customer.id
+ - table-name: conversations
+ keys:
+ - key: id
+ foreign-key: primary_customer.id
+- table-name: mailbox_folders
+ join:
+ - table-name: conversations
+ keys:
+ - key: id
+ foreign-key: folder_id
+ - key: mailbox_id
+ foreign-key: mailbox_id
+ - table-name: mailbox_fields
+ keys:
+ - key: mailbox_id
+ foreign-key: mailbox_id
+ - table-name: mailboxes
+ keys:
+ - key: mailbox_id
+ foreign-key: id
+ - table-name: workflows
+ keys:
+ - key: mailbox_id
+ foreign-key: mailbox_id
+- table-name: mailbox_fields
+ join:
+ - table-name: conversations
+ keys:
+ - key: mailbox_id
+ foreign-key: mailbox_id
+ - table-name: mailbox_folders
+ keys:
+ - key: mailbox_id
+ foreign-key: mailbox_id
+ - table-name: mailboxes
+ keys:
+ - key: mailbox_id
+ foreign-key: id
+ - table-name: workflows
+ keys:
+ - key: mailbox_id
+ foreign-key: mailbox_id
+- table-name: mailboxes
+ join:
+ - table-name: conversations
+ keys:
+ - key: id
+ foreign-key: mailbox_id
+ - table-name: mailbox_fields
+ keys:
+ - key: id
+ foreign-key: mailbox_id
+ - table-name: mailbox_folders
+ keys:
+ - key: id
+ foreign-key: mailbox_id
+ - table-name: workflows
+ keys:
+ - key: id
+ foreign-key: mailbox_id
+- table-name: workflows
+ join:
+ - table-name: conversations
+ keys:
+ - key: mailbox_id
+ foreign-key: mailbox_id
+ - table-name: mailbox_fields
+ keys:
+ - key: mailbox_id
+ foreign-key: mailbox_id
+ - table-name: mailbox_folders
+ keys:
+ - key: mailbox_id
+ foreign-key: mailbox_id
+ - table-name: mailboxes
+ keys:
+ - key: mailbox_id
+ foreign-key: id
+- table-name: users
+ join:
+ - table-name: conversation_threads
+ keys:
+ - key: id
+ foreign-key: assigned_to.id
+ - key: id
+ foreign-key: created_by.id
+ - table-name: conversations
+ keys:
+ - key: id
+ foreign-key: assignee.id
+ - key: id
+ foreign-key: closed_by
+ - key: id
+ foreign-key: created_by.id
diff --git a/_data/taps/schemas/helpscout/v1/helpscout-v1-tables.yml b/_data/taps/schemas/helpscout/v1/helpscout-v1-tables.yml
new file mode 100644
index 000000000..5c3b08c7b
--- /dev/null
+++ b/_data/taps/schemas/helpscout/v1/helpscout-v1-tables.yml
@@ -0,0 +1,135 @@
+tap: helpscout
+version: '1'
+tap-repo-schemas: true
+tables:
+- name: conversations
+ description: 'The `{{ table.name }}` table contains info about the conversations
+ in your {{ integration.display_name }} mailbox. Stitch will replicate all conversations,
+ including active, closed, open, pending, and spam.
+
+
+ **Note**: If custom fields are available, Stitch will replicate them.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-helpscout/blob/master/tap_helpscout/schemas/conversations.json
+ api-method: https://developer.helpscout.com/mailbox-api/endpoints/conversations/list/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: conversation_threads
+ description: 'The `{{ table.name }}` table contains info about the threads that
+ make up [`conversations`](#conversations).
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-helpscout/blob/master/tap_helpscout/schemas/conversation_threads.json
+ api-method: https://developer.helpscout.com/mailbox-api/endpoints/conversations/threads/list/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created_at
+- name: customers
+ description: 'The `{{ table.name }}` table contains info about the customers in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-helpscout/blob/master/tap_helpscout/schemas/customers.json
+ api-method: https://developer.helpscout.com/mailbox-api/endpoints/customers/list/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: happiness_ratings_report
+ description: "The happiness ratings report provides a company\u2019s ratings for\
+ \ a specified time range."
+ links:
+ singer-schema: https://github.com/singer-io/tap-helpscout/tree/master/tap_helpscout/schemas/happiness_ratings_report.json
+ api-method: https://developer.helpscout.com/mailbox-api/endpoints/reports/happiness/reports-happiness-ratings/
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - conversation_id
+ - rating_created_at
+ - rating_customer_id
+- name: mailboxes
+ description: 'The `{{ table.name }}` table contains info about the mailboxes in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-helpscout/blob/master/tap_helpscout/schemas/mailboxes.json
+ api-method: https://developer.helpscout.com/mailbox-api/endpoints/mailboxes/list/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: mailbox_fields
+ description: 'The `{{ table.name }}` table contains info about the custom fields
+ associated with your {{ integration.display_name }} mailboxes.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-helpscout/blob/master/tap_helpscout/schemas/mailbox_fields.json
+ api-method: https://developer.helpscout.com/mailbox-api/endpoints/mailboxes/mailbox-fields/
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: mailbox_folders
+ description: 'The `{{ table.name }}` table contains info about the mailbox folders
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-helpscout/blob/master/tap_helpscout/schemas/mailbox_folders.json
+ api-method: https://developer.helpscout.com/mailbox-api/endpoints/mailboxes/mailbox-folders/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: teams
+ description: This report contains information about all the different teams in the
+ company.
+ links:
+ singer-schema: https://github.com/singer-io/tap-helpscout/tree/master/tap_helpscout/schemas/teams.json
+ api-method: https://developer.helpscout.com/mailbox-api/endpoints/teams/list-teams/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: team_members
+ description: This report contains information about team members.
+ links:
+ singer-schema: https://github.com/singer-io/tap-helpscout/tree/master/tap_helpscout/schemas/team_members.json
+ api-method: https://developer.helpscout.com/mailbox-api/endpoints/teams/list-team-members/
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - team_id
+ - user_id
+- name: users
+ description: 'The `{{ table.name }}` table contains info about the users in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-helpscout/blob/master/tap_helpscout/schemas/users.json
+ api-method: https://developer.helpscout.com/mailbox-api/endpoints/users/list/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: workflows
+ description: 'The `{{ table.name }}` table contains info about the workflows in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-helpscout/blob/master/tap_helpscout/schemas/workflows.json
+ api-method: https://developer.helpscout.com/mailbox-api/endpoints/workflows/list/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: modified_at
diff --git a/_data/taps/schemas/helpscout/v1/json/conversation_threads.json b/_data/taps/schemas/helpscout/v1/json/conversation_threads.json
new file mode 100644
index 000000000..cf024dd51
--- /dev/null
+++ b/_data/taps/schemas/helpscout/v1/json/conversation_threads.json
@@ -0,0 +1,322 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "action": {
+ "additionalProperties": false,
+ "properties": {
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "assigned_to": {
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "photo_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "attachments": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "filename": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "mime_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "bcc": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cc": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "conversation_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_by": {
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "photo_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customer": {
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "photo_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "opened_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "saved_reply_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "source": {
+ "additionalProperties": false,
+ "properties": {
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "via": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/helpscout/v1/json/conversations.json b/_data/taps/schemas/helpscout/v1/json/conversations.json
new file mode 100644
index 000000000..6bda96e4f
--- /dev/null
+++ b/_data/taps/schemas/helpscout/v1/json/conversations.json
@@ -0,0 +1,379 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "assignee": {
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "photo_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "bcc": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "cc": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "closed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "closed_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_by": {
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "photo_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "custom_fields": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "customer_waiting_since": {
+ "additionalProperties": false,
+ "properties": {
+ "friendly": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_reply_from": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "folder_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "mailbox_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "preview": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "primary_customer": {
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "photo_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "source": {
+ "additionalProperties": false,
+ "properties": {
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "via": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "threads": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user_updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/helpscout/v1/json/customers.json b/_data/taps/schemas/helpscout/v1/json/customers.json
new file mode 100644
index 000000000..1bb175d7f
--- /dev/null
+++ b/_data/taps/schemas/helpscout/v1/json/customers.json
@@ -0,0 +1,328 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "address": {
+ "additionalProperties": false,
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lines": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "age": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "background": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "chats": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "emails": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gender": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "job_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organization": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phones": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "photo_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "photo_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "properties": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "social_profiles": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "websites": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/helpscout/v1/json/happiness_ratings_report.json b/_data/taps/schemas/helpscout/v1/json/happiness_ratings_report.json
new file mode 100644
index 000000000..62096786b
--- /dev/null
+++ b/_data/taps/schemas/helpscout/v1/json/happiness_ratings_report.json
@@ -0,0 +1,69 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "conversation_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "rating_comments": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rating_created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "rating_customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "rating_customer_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rating_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "rating_user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "rating_user_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thread_created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "thread_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/helpscout/v1/json/mailbox_fields.json b/_data/taps/schemas/helpscout/v1/json/mailbox_fields.json
new file mode 100644
index 000000000..3221362bf
--- /dev/null
+++ b/_data/taps/schemas/helpscout/v1/json/mailbox_fields.json
@@ -0,0 +1,76 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "mailbox_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "options": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "order": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/helpscout/v1/json/mailbox_folders.json b/_data/taps/schemas/helpscout/v1/json/mailbox_folders.json
new file mode 100644
index 000000000..c6d39da36
--- /dev/null
+++ b/_data/taps/schemas/helpscout/v1/json/mailbox_folders.json
@@ -0,0 +1,54 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "active_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "mailbox_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/helpscout/v1/json/mailboxes.json b/_data/taps/schemas/helpscout/v1/json/mailboxes.json
new file mode 100644
index 000000000..a6e13daf0
--- /dev/null
+++ b/_data/taps/schemas/helpscout/v1/json/mailboxes.json
@@ -0,0 +1,42 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "slug": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/helpscout/v1/json/team_members.json b/_data/taps/schemas/helpscout/v1/json/team_members.json
new file mode 100644
index 000000000..15f1e3c2a
--- /dev/null
+++ b/_data/taps/schemas/helpscout/v1/json/team_members.json
@@ -0,0 +1,16 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "team_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/helpscout/v1/json/teams.json b/_data/taps/schemas/helpscout/v1/json/teams.json
new file mode 100644
index 000000000..6e6c23bd4
--- /dev/null
+++ b/_data/taps/schemas/helpscout/v1/json/teams.json
@@ -0,0 +1,53 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "initials": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mention": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "photo_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/helpscout/v1/json/users.json b/_data/taps/schemas/helpscout/v1/json/users.json
new file mode 100644
index 000000000..46d848ff5
--- /dev/null
+++ b/_data/taps/schemas/helpscout/v1/json/users.json
@@ -0,0 +1,66 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "photo_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/helpscout/v1/json/workflows.json b/_data/taps/schemas/helpscout/v1/json/workflows.json
new file mode 100644
index 000000000..8eb887304
--- /dev/null
+++ b/_data/taps/schemas/helpscout/v1/json/workflows.json
@@ -0,0 +1,54 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "mailbox_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "modified_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v01-03-2017/hubspot-v01-03-2017-tables.yml b/_data/taps/schemas/hubspot/v01-03-2017/hubspot-v01-03-2017-tables.yml
new file mode 100644
index 000000000..0a5a74c6e
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v01-03-2017/hubspot-v01-03-2017-tables.yml
@@ -0,0 +1,160 @@
+tap: hubspot
+version: 01-03-2017
+tables:
+- name: campaigns
+ description: 'The `campaigns` table contains info about the campaigns in your HubSpot
+ account.
+
+ '
+ links:
+ doc-link: http://developers.hubspot.com/docs/methods/email/get_campaign_data
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/v0.11.0/tap_hubspot/schemas/campaigns.json
+ api-method: https://developers.hubspot.com/docs/methods/email/get_campaign_data
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: companies
+ description: 'The `companies` table contains info about the companies your HubSpot
+ contacts belong to.
+
+ '
+ links:
+ doc-link: http://developers.hubspot.com/docs/methods/companies/get_company
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/v0.11.0/tap_hubspot/schemas/companies.json
+ api-method: https://developers.hubspot.com/docs/methods/companies/get_company
+ table-details:
+ replication-method: Full Table
+ primary-key: companyId
+- name: contacts
+ description: 'The `contacts` table contains info about individual contacts in HubSpot.
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/contacts/contacts-overview
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/v0.11.0/tap_hubspot/schemas/contacts.json
+ api-method: https://developers.hubspot.com/docs/methods/contacts/get_contacts
+ table-details:
+ replication-method: Full Table
+ primary-key: canonical-vid
+- name: contact_lists
+ description: 'The `contact_lists` table contains info about the contacts lists in
+ your HubSpot account. Contact lists are used to segment contacts into groups,
+ and there are two types: dynamic (smart lists) and static.
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/lists/contact-lists-overview
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/v0.11.0/tap_hubspot/schemas/contact_lists.json
+ api-method: https://developers.hubspot.com/docs/methods/lists/get_lists
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: listId
+ replication-key: updatedAt
+- name: deals
+ description: 'The `deals` table contains info about the deals in a HubSpot portal.
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/deals/deals_overview
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/v0.11.0/tap_hubspot/schemas/deals.json
+ api-method: https://developers.hubspot.com/docs/methods/deals/get_deals_modified
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - dealId
+ - portalId
+- name: email_events
+ description: 'The `email_events` table contains info about email events and how
+ recipients interact with content.
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/email/email_events_overview
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/v0.11.0/tap_hubspot/schemas/email_events.json
+ api-method: https://developers.hubspot.com/docs/methods/email/get_events
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: id
+- name: engagements
+ description: 'The `engagements` table contains info about all the engagements in
+ a HubSpot portal.
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/engagements/engagements-overview
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/v0.11.0/tap_hubspot/schemas/engagements.json
+ api-method: https://developers.hubspot.com/docs/methods/engagements/get-all-engagements
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: lastUpdated
+- name: forms
+ description: 'The `forms` table contains info about your HubSpot website forms.
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/forms/forms_overview
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/v0.11.0/tap_hubspot/schemas/forms.json
+ api-method: https://developers.hubspot.com/docs/methods/forms/v2/get_forms
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: guid
+ replication-key: updatedAt
+- name: keywords
+ description: 'The `keywords` table contains info about your HubSpot portal keywords.
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/keywords/get_keyword
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/v0.11.0/tap_hubspot/schemas/keywords.json
+ api-method: https://developers.hubspot.com/docs/methods/keywords/get_keywords
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: keyword_guid
+ replication-key: created_at
+- name: owners
+ description: 'The `owners` table contains info about the owners that exist in your
+ HubSpot portal. Owners are created and updated in HubSpot when new users are added
+ or when owners are synced from Salesforce to HubSpot.
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/owners/owners_overview
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/v0.11.0/tap_hubspot/schemas/owners.json
+ api-method: https://developers.hubspot.com/docs/methods/owners/get_owners
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - ownerId
+ - portalId
+ replication-key: updatedAt
+- name: subscription_changes
+ description: 'The `subscription_changes` table contains info about changes made
+ subscriptions.
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/timeline/timeline-overview
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/v0.11.0/tap_hubspot/schemas/subscription_changes.json
+ api-method: https://developers.hubspot.com/docs/methods/email/get_subscriptions_timeline
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - recipient
+ - portalId
+ - timestamp
+ replication-key: timestamp
+- name: workflows
+ description: 'The `workflows` table contains info about the workflows in your HubSpot
+ portal.
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/workflows/workflows_overview
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/v0.11.0/tap_hubspot/schemas/workflows.json
+ api-method: https://developers.hubspot.com/docs/methods/workflows/v3/get_workflows
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
diff --git a/_data/taps/schemas/hubspot/v01-03-2017/json/campaigns.json b/_data/taps/schemas/hubspot/v01-03-2017/json/campaigns.json
new file mode 100644
index 000000000..8ca56142f
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v01-03-2017/json/campaigns.json
@@ -0,0 +1,81 @@
+{
+ "properties": {
+ "appId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "appName": {
+ "type": [
+ "string"
+ ]
+ },
+ "contentId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "counters": {
+ "properties": {
+ "delivered": {
+ "type": [
+ "integer"
+ ]
+ },
+ "open": {
+ "type": [
+ "integer"
+ ]
+ },
+ "processed": {
+ "type": [
+ "integer"
+ ]
+ },
+ "sent": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "numIncluded": {
+ "type": [
+ "integer"
+ ]
+ },
+ "numQueued": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subType": {
+ "type": [
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v01-03-2017/json/companies.json b/_data/taps/schemas/hubspot/v01-03-2017/json/companies.json
new file mode 100644
index 000000000..be2d7634e
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v01-03-2017/json/companies.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "companyId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "isDeleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "portalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v01-03-2017/json/contact_lists.json b/_data/taps/schemas/hubspot/v01-03-2017/json/contact_lists.json
new file mode 100644
index 000000000..226ed9be5
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v01-03-2017/json/contact_lists.json
@@ -0,0 +1,140 @@
+{
+ "properties": {
+ "archived": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deleteable": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "dynamic": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "filters": {
+ "properties": {
+ "value": {
+ "properties": {
+ "checkPastVersions": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "filterFamily": {
+ "type": [
+ "string"
+ ]
+ },
+ "operator": {
+ "type": [
+ "string"
+ ]
+ },
+ "property": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "string"
+ ]
+ },
+ "withinTimeMode": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "internalListId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "listId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "listType": {
+ "type": [
+ "string"
+ ]
+ },
+ "metaData": {
+ "properties": {
+ "error": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastProcessingStateChangeAt": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastSizeChangeAt": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "processing": {
+ "type": [
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parentId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "portalId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v01-03-2017/json/contacts.json b/_data/taps/schemas/hubspot/v01-03-2017/json/contacts.json
new file mode 100644
index 000000000..fa0a9f97b
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v01-03-2017/json/contacts.json
@@ -0,0 +1,277 @@
+{
+ "properties": {
+ "canonical-vid": {
+ "type": [
+ "integer"
+ ]
+ },
+ "form-submissions": {
+ "properties": {
+ "conversion-id": {
+ "type": [
+ "string"
+ ]
+ },
+ "form-id": {
+ "type": [
+ "string"
+ ]
+ },
+ "page-url": {
+ "type": [
+ "string"
+ ]
+ },
+ "portal-id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "identity-profiles": {
+ "properties": {
+ "deleted-changed-timestamp": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "identities": {
+ "properties": {
+ "timestamp": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "saved-at-timestamp": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "vid": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "is-contact": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "list-memberships": {
+ "properties": {
+ "internal-list-id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is-member": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "static-list-id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "vid": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "merge-audits": {
+ "properties": {
+ "canonical-vid": {
+ "type": [
+ "integer"
+ ]
+ },
+ "merged-from-email": {
+ "properties": {
+ "selected": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "source-id": {
+ "type": [
+ "string"
+ ]
+ },
+ "source-label": {
+ "type": [
+ "string"
+ ]
+ },
+ "source-type": {
+ "type": [
+ "string"
+ ]
+ },
+ "source-vids": {
+ "properties": {
+ "items": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "integer"
+ ]
+ },
+ "value": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "merged-to-email": {
+ "properties": {
+ "selected": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "source-id": {
+ "type": [
+ "string"
+ ]
+ },
+ "source-label": {
+ "type": [
+ "string"
+ ]
+ },
+ "source-type": {
+ "type": [
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "integer"
+ ]
+ },
+ "value": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "num-properties-moved": {
+ "type": [
+ "integer"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "user-id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "vid-to-merge": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "merged-vids": {
+ "properties": {
+ "type": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "portal-id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "profile-token": {
+ "type": [
+ "string"
+ ]
+ },
+ "profile-url": {
+ "type": [
+ "string"
+ ]
+ },
+ "vid": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v01-03-2017/json/deals.json b/_data/taps/schemas/hubspot/v01-03-2017/json/deals.json
new file mode 100644
index 000000000..cc3d570e9
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v01-03-2017/json/deals.json
@@ -0,0 +1,62 @@
+{
+ "properties": {
+ "associations": {
+ "properties": {
+ "associatedCompanyIds": {
+ "properties": {
+ "value": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "associatedDealIds": {
+ "properties": {
+ "value": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "associatedVids": {
+ "properties": {
+ "value": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "dealId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "isDeleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "portalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v01-03-2017/json/email_events.json b/_data/taps/schemas/hubspot/v01-03-2017/json/email_events.json
new file mode 100644
index 000000000..b42bbe7d5
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v01-03-2017/json/email_events.json
@@ -0,0 +1,185 @@
+{
+ "properties": {
+ "appId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "appName": {
+ "type": [
+ "string"
+ ]
+ },
+ "browser": {
+ "properties": {
+ "family": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "producer": {
+ "type": [
+ "string"
+ ]
+ },
+ "producerUrl": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deviceType": {
+ "type": [
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "integer"
+ ]
+ },
+ "emailCampaignGroupId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "emailCampaignId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "filteredEvent": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "from": {
+ "type": [
+ "string"
+ ]
+ },
+ "hmid": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "ipAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "linkId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "location": {
+ "properties": {
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "portalId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "recipient": {
+ "type": [
+ "string"
+ ]
+ },
+ "response": {
+ "type": [
+ "string"
+ ]
+ },
+ "sentBy": {
+ "properties": {
+ "created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "smtpId": {
+ "type": [
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ },
+ "userAgent": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v01-03-2017/json/engagements.json b/_data/taps/schemas/hubspot/v01-03-2017/json/engagements.json
new file mode 100644
index 000000000..89bf35522
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v01-03-2017/json/engagements.json
@@ -0,0 +1,239 @@
+{
+ "properties": {
+ "active": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "associations": {
+ "properties": {
+ "companyIds": {
+ "properties": {
+ "value": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "contactIds": {
+ "properties": {
+ "value": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "dealIds": {
+ "properties": {
+ "value": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "attachments": {
+ "properties": {
+ "id": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lastUpdated": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "metadata": {
+ "properties": {
+ "bcc": {
+ "properties": {
+ "email": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "body": {
+ "type": [
+ "string"
+ ]
+ },
+ "cc": {
+ "properties": {
+ "email": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "durationMilliseconds": {
+ "type": [
+ "integer"
+ ]
+ },
+ "endTime": {
+ "type": [
+ "integer"
+ ]
+ },
+ "externalAccountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "forObjectType": {
+ "type": [
+ "string"
+ ]
+ },
+ "from": {
+ "properties": {
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "firstName": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastName": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "fromNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "html": {
+ "type": [
+ "string"
+ ]
+ },
+ "recordingUrl": {
+ "type": [
+ "string"
+ ]
+ },
+ "startTime": {
+ "type": [
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "string"
+ ]
+ },
+ "text": {
+ "type": [
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "to": {
+ "properties": {
+ "email": {
+ "type": [
+ "sring"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "toNumber": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ownerId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "portalId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v01-03-2017/json/forms.json b/_data/taps/schemas/hubspot/v01-03-2017/json/forms.json
new file mode 100644
index 000000000..9102a0ef3
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v01-03-2017/json/forms.json
@@ -0,0 +1,338 @@
+{
+ "properties": {
+ "action": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaignGuid": {
+ "type": [
+ "string"
+ ]
+ },
+ "captchaEnabled": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "cloneable": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "cssClass": {
+ "type": [
+ "string"
+ ]
+ },
+ "deleteable": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "deletedAt": {
+ "type": [
+ "integer"
+ ]
+ },
+ "editable": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "followUpId": {
+ "type": [
+ "string"
+ ]
+ },
+ "formFieldGroups": {
+ "properties": {
+ "default": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "fields": {
+ "properties": {
+ "defaultValue": {
+ "type": [
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "displayOrder": {
+ "type": [
+ "integer"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "fieldType": {
+ "type": [
+ "string"
+ ]
+ },
+ "groupName": {
+ "type": [
+ "string"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isSmartField": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "label": {
+ "type": [
+ "string"
+ ]
+ },
+ "labelHidden": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "options": {
+ "properties": {
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "displayOrder": {
+ "type": [
+ "integer"
+ ]
+ },
+ "doubleData": {
+ "type": [
+ "number"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "label": {
+ "type": [
+ "string"
+ ]
+ },
+ "readOnly": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "value": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "placeholder": {
+ "type": [
+ "string"
+ ]
+ },
+ "required": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "unselectedLabel": {
+ "type": [
+ "string"
+ ]
+ },
+ "validation": {
+ "properties": {
+ "blockedEmailAddresses": {
+ "properties": {
+ "value": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "data": {
+ "type": [
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "useDefaultBlockList": {
+ "type": [
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "isSmartGroup": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "richText": {
+ "properties": {
+ "content": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "formType": {
+ "type": [
+ "string"
+ ]
+ },
+ "guid": {
+ "type": [
+ "string"
+ ]
+ },
+ "ignoreCurrentValues": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "inlineMessage": {
+ "type": [
+ "string"
+ ]
+ },
+ "leadNurturingCampaignId": {
+ "type": [
+ "string"
+ ]
+ },
+ "metaData": {
+ "properties": {
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "method": {
+ "type": [
+ "string"
+ ]
+ },
+ "migratedFrom": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "notifyRecipients": {
+ "type": [
+ "string"
+ ]
+ },
+ "performableHtml": {
+ "type": [
+ "string"
+ ]
+ },
+ "portalId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "redirect": {
+ "type": [
+ "string"
+ ]
+ },
+ "submitText": {
+ "type": [
+ "string"
+ ]
+ },
+ "tmsId": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v01-03-2017/json/keywords.json b/_data/taps/schemas/hubspot/v01-03-2017/json/keywords.json
new file mode 100644
index 000000000..4b03214d3
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v01-03-2017/json/keywords.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "contacts": {
+ "type": [
+ "integer"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "keyword": {
+ "type": [
+ "string"
+ ]
+ },
+ "keyword_guid": {
+ "type": [
+ "string"
+ ]
+ },
+ "leads": {
+ "type": [
+ "integer"
+ ]
+ },
+ "visits": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v01-03-2017/json/owners.json b/_data/taps/schemas/hubspot/v01-03-2017/json/owners.json
new file mode 100644
index 000000000..8d02dc503
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v01-03-2017/json/owners.json
@@ -0,0 +1,76 @@
+{
+ "properties": {
+ "createdAt": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "firstName": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastName": {
+ "type": [
+ "string"
+ ]
+ },
+ "ownerId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "portalId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "remoteList": {
+ "properties": {
+ "active": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "ownerId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "portalId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "remoteId": {
+ "type": [
+ "string"
+ ]
+ },
+ "remoteType": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v01-03-2017/json/subscription_changes.json b/_data/taps/schemas/hubspot/v01-03-2017/json/subscription_changes.json
new file mode 100644
index 000000000..4c0f2e166
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v01-03-2017/json/subscription_changes.json
@@ -0,0 +1,73 @@
+{
+ "properties": {
+ "changes": {
+ "properties": {
+ "causedByEvent": {
+ "properties": {
+ "created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "change": {
+ "type": [
+ "string"
+ ]
+ },
+ "changeType": {
+ "type": [
+ "string"
+ ]
+ },
+ "portalId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "subscriptionId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "portalId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "recipient": {
+ "type": [
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v01-03-2017/json/workflows.json b/_data/taps/schemas/hubspot/v01-03-2017/json/workflows.json
new file mode 100644
index 000000000..56a051fbe
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v01-03-2017/json/workflows.json
@@ -0,0 +1,75 @@
+{
+ "properties": {
+ "contactListIds": {
+ "properties": {
+ "active": {
+ "type": [
+ "integer"
+ ]
+ },
+ "enrolled": {
+ "type": [
+ "integer"
+ ]
+ },
+ "steps": {
+ "properties": {
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "inserted-at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "personaTagIds": {
+ "properties": {
+ "value": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v1/hubspot-v1-issues.txt b/_data/taps/schemas/hubspot/v1/hubspot-v1-issues.txt
new file mode 100644
index 000000000..1fc3ec701
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v1/hubspot-v1-issues.txt
@@ -0,0 +1,2 @@
+Replication Key properties__lastModifiedDate__value not found in _data/taps/schemas/hubspot/v1/json/contacts.json
+Replication Key lastUpdated not found in _data/taps/schemas/hubspot/v1/json/engagements.json
diff --git a/_data/taps/schemas/hubspot/v1/hubspot-v1-tables.yml b/_data/taps/schemas/hubspot/v1/hubspot-v1-tables.yml
new file mode 100644
index 000000000..aa5a52b86
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v1/hubspot-v1-tables.yml
@@ -0,0 +1,181 @@
+tap: hubspot
+version: '1'
+tables:
+- name: campaigns
+ description: 'The `campaigns` table contains info about the campaigns in your HubSpot
+ account.
+
+ '
+ links:
+ doc-link: http://developers.hubspot.com/docs/methods/email/get_campaign_data
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/master/tap_hubspot/schemas/campaigns.json
+ api-method: https://developers.hubspot.com/docs/methods/email/get_campaign_data
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: companies
+ description: 'The `companies` table contains info about the companies your HubSpot
+ contacts belong to.
+
+
+ **Note:** when this table is synced, the [`hubspot_contacts_by_company`](#hubspot_contacts_by_company)
+ table will also be automatically synced and created in your data warehouse.
+
+ '
+ links:
+ doc-link: http://developers.hubspot.com/docs/methods/companies/get_company
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/master/tap_hubspot/schemas/companies.json
+ api-method: https://developers.hubspot.com/docs/methods/companies/get_company
+ table-details:
+ replication-method: Full Table
+ primary-key: companyId
+- name: contacts
+ description: 'The `contacts` table contains info about individual contacts in HubSpot.
+
+
+ ### Contact properties
+
+
+ If properties have been set for the contact, additional fields beginning with
+ `properties__` will be included in the table. **Note**: Contacts will only have
+ an entry for a property if that property has been set for the contact''s record.
+
+
+ HubSpot always types the value of `properties` fields as `STRING` despite the
+ property type. [Refer to HubSpot''s documentation for more info](https://developers.hubspot.com/docs/methods/contacts/contacts-overview).
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/contacts/contacts-overview
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/master/tap_hubspot/schemas/contacts.json
+ api-method: https://developers.hubspot.com/docs/methods/contacts/get_contacts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: canonical-vid
+ replication-key: properties__lastModifiedDate__value
+- name: contact_lists
+ description: 'The `contact_lists` table contains info about the contacts lists in
+ your HubSpot account. Contact lists are used to segment contacts into groups,
+ and there are two types: dynamic (smart lists) and static.
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/lists/contact-lists-overview
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/master/tap_hubspot/schemas/contact_lists.json
+ api-method: https://developers.hubspot.com/docs/methods/lists/get_lists
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: listId
+ replication-key: updatedAt
+- name: deals
+ description: 'The `deals` table contains info about the deals in a HubSpot portal.
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/deals/deals_overview
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/master/tap_hubspot/schemas/deals.json
+ api-method: https://developers.hubspot.com/docs/methods/deals/get_deals_modified
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - dealId
+ - portalId
+- name: email_events
+ description: 'The `email_events` table contains info about email events and how
+ recipients interact with content.
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/email/email_events_overview
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/master/tap_hubspot/schemas/email_events.json
+ api-method: https://developers.hubspot.com/docs/methods/email/get_events
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: id
+- name: engagements
+ description: 'The `engagements` table contains info about all the engagements in
+ a HubSpot portal.
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/engagements/engagements-overview
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/master/tap_hubspot/schemas/engagements.json
+ api-method: https://developers.hubspot.com/docs/methods/engagements/get-all-engagements
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: engagement_id
+ replication-key: lastUpdated
+- name: forms
+ description: 'The `forms` table contains info about your HubSpot website forms.
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/forms/forms_overview
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/master/tap_hubspot/schemas/forms.json
+ api-method: https://developers.hubspot.com/docs/methods/forms/v2/get_forms
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: guid
+ replication-key: updatedAt
+- name: owners
+ description: 'The `owners` table contains info about the owners that exist in your
+ HubSpot portal. Owners are created and updated in HubSpot when new users are added
+ or when owners are synced from Salesforce to HubSpot.
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/owners/owners_overview
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/master/tap_hubspot/schemas/owners.json
+ api-method: https://developers.hubspot.com/docs/methods/owners/get_owners
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - ownerId
+ - portalId
+ replication-key: updatedAt
+- name: subscription_changes
+ description: 'The `subscription_changes` table contains info about changes made
+ subscriptions.
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/timeline/timeline-overview
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/master/tap_hubspot/schemas/subscription_changes.json
+ api-method: https://developers.hubspot.com/docs/methods/email/get_subscriptions_timeline
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - recipient
+ - portalId
+ - timestamp
+ replication-key: timestamp
+- name: deal_pipelines
+ description: 'The `{{ table.name }}` table contains info about the `deal stage`
+ and `pipeline` properties.
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/deal-pipelines/overview
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/master/tap_hubspot/schemas/deal_pipelines.json
+ api-method: https://developers.hubspot.com/docs/methods/deal-pipelines/get-all-deal-pipelines
+ table-details:
+ replication-method: Full Table
+ primary-key: pipelineId
+- name: workflows
+ description: 'The `workflows` table contains info about the workflows in your {{
+ integration.display_name }} portal.
+
+
+ **Note**: The `workflows` stream only supports contact-based workflows.
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/workflows/workflows_overview
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/master/tap_hubspot/schemas/workflows.json
+ api-method: https://developers.hubspot.com/docs/methods/workflows/v3/get_workflows
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/hubspot/v1/json/campaigns.json b/_data/taps/schemas/hubspot/v1/json/campaigns.json
new file mode 100644
index 000000000..86edbdecd
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v1/json/campaigns.json
@@ -0,0 +1,103 @@
+{
+ "properties": {
+ "appId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "appName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contentId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "counters": {
+ "properties": {
+ "click": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "delievered": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "open": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "processed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "numIncluded": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "numQueued": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v1/json/companies.json b/_data/taps/schemas/hubspot/v1/json/companies.json
new file mode 100644
index 000000000..047ec6835
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v1/json/companies.json
@@ -0,0 +1,23 @@
+{
+ "properties": {
+ "companyId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "isDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "portalId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v1/json/contact_lists.json b/_data/taps/schemas/hubspot/v1/json/contact_lists.json
new file mode 100644
index 000000000..daffe723d
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v1/json/contact_lists.json
@@ -0,0 +1,165 @@
+{
+ "properties": {
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleteable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "dynamic": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "filters": {
+ "items": {
+ "items": {
+ "properties": {
+ "checkPastVersions": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "filterFamily": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "property": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "withinTimeMode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "type": "array"
+ },
+ "internalListId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "listId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "listType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metaData": {
+ "properties": {
+ "error": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lastProcessingStateChangeAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "lastSizeChangeAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "processing": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parentId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "portalId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "readOnly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v1/json/contacts.json b/_data/taps/schemas/hubspot/v1/json/contacts.json
new file mode 100644
index 000000000..7563ef30a
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v1/json/contacts.json
@@ -0,0 +1,362 @@
+{
+ "properties": {
+ "associated-company": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "canonical-vid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "form-submissions": {
+ "items": {
+ "properties": {
+ "conversion-id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "form-id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "page-url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "portal-id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "identity-profiles": {
+ "items": {
+ "properties": {
+ "deleted-changed-timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "identities": {
+ "items": {
+ "properties": {
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "saved-at-timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "vid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "is-contact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "list-memberships": {
+ "items": {
+ "properties": {
+ "internal-list-id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is-member": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "static-list-id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "vid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "merge-audits": {
+ "items": {
+ "properties": {
+ "canonical-vid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "merged_from_email": {
+ "properties": {
+ "selected": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "source-id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source-label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source-type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source-vids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "merged_to_email": {
+ "properties": {
+ "selected": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "source-id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source-label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source-type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "num-properties-moved": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user-id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "vid-to-merge": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "merged-vids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "portal-id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "profile-token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "profile-url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v1/json/contacts_by_company.json b/_data/taps/schemas/hubspot/v1/json/contacts_by_company.json
new file mode 100644
index 000000000..adf9c27a3
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v1/json/contacts_by_company.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "company-id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "contact-id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v1/json/deal_pipelines.json b/_data/taps/schemas/hubspot/v1/json/deal_pipelines.json
new file mode 100644
index 000000000..05520c105
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v1/json/deal_pipelines.json
@@ -0,0 +1,82 @@
+{
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "displayOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pipelineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stages": {
+ "items": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "closedWon": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "displayOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "probability": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "stageId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "staticDefault": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v1/json/deals.json b/_data/taps/schemas/hubspot/v1/json/deals.json
new file mode 100644
index 000000000..a1e891834
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v1/json/deals.json
@@ -0,0 +1,67 @@
+{
+ "properties": {
+ "associations": {
+ "properties": {
+ "associatedCompanyIds": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "associatedDealIds": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "associatedVids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "dealId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "isDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "portalId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v1/json/email_events.json b/_data/taps/schemas/hubspot/v1/json/email_events.json
new file mode 100644
index 000000000..e42a713b3
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v1/json/email_events.json
@@ -0,0 +1,221 @@
+{
+ "properties": {
+ "appId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "appName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "browser": {
+ "properties": {
+ "family": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "producer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "producerUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deviceType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "emailCampaignGroupId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "emailCampaignId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "filteredEvent": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "from": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hmid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ipAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "linkId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "location": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "portalId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "recipient": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "response": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sentBy": {
+ "properties": {
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "smtpId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "userAgent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v1/json/engagements.json b/_data/taps/schemas/hubspot/v1/json/engagements.json
new file mode 100644
index 000000000..a6e950bb4
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v1/json/engagements.json
@@ -0,0 +1,258 @@
+{
+ "properties": {
+ "associations": {
+ "properties": {
+ "companyIds": {
+ "items": {
+ "type": "integer"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "contactIds": {
+ "items": {
+ "type": "integer"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "dealIds": {
+ "items": {
+ "type": "integer"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "attachments": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "engagement": {
+ "properties": {
+ "active": {
+ "type": "boolean"
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": "integer"
+ },
+ "lastUpdated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ownerId": {
+ "type": "integer"
+ },
+ "portalId": {
+ "type": "integer"
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "engagement_id": {
+ "type": "integer"
+ },
+ "metadata": {
+ "properties": {
+ "bcc": {
+ "items": {
+ "properties": {
+ "email": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cc": {
+ "items": {
+ "properties": {
+ "email": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "disposition": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "durationMilliseconds": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "endTime": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "externalAccountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "forObjectType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "from": {
+ "properties": {
+ "email": {
+ "type": "string"
+ },
+ "firstName": {
+ "type": "string"
+ },
+ "lastName": {
+ "type": "string"
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "fromNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recordingUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "startTime": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to": {
+ "items": {
+ "properties": {
+ "email": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "toNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v1/json/forms.json b/_data/taps/schemas/hubspot/v1/json/forms.json
new file mode 100644
index 000000000..11666a82f
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v1/json/forms.json
@@ -0,0 +1,401 @@
+{
+ "properties": {
+ "action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaignGuid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "captchaEnabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "cloneable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cssClass": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deletable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "deletedAt": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "editable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "followUpId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "formFieldGroups": {
+ "items": {
+ "properties": {
+ "default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "fields": {
+ "items": {
+ "properties": {
+ "defaultValue": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "displayOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "fieldType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "groupName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "isSmartField": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "labelHidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "options": {
+ "items": {
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "displayOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "doubleData": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "readOnly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "placeholder": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "selectedOptions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unselectedLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "validation": {
+ "properties": {
+ "blockedEmailAddresses": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ "data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "useDefaultBlockList": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "isSmartGroup": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "richText": {
+ "properties": {
+ "content": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "formType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "guid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ignoreCurrentValues": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "inlineMessage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "leadNurturingCampaignId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metaData": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "migratedFrom": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notifyRecipients": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "performableHtml": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "portalId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "redirect": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "submitText": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tmsId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v1/json/keywords.json b/_data/taps/schemas/hubspot/v1/json/keywords.json
new file mode 100644
index 000000000..f00d59688
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v1/json/keywords.json
@@ -0,0 +1,47 @@
+{
+ "properties": {
+ "contacts": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "keyword": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "keyword_guid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "leads": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "visits": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v1/json/owners.json b/_data/taps/schemas/hubspot/v1/json/owners.json
new file mode 100644
index 000000000..76f873335
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v1/json/owners.json
@@ -0,0 +1,109 @@
+{
+ "properties": {
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "firstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hasContactsAccess": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "lastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ownerId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "portalId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "remoteList": {
+ "items": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ownerId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "portalId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "remoteId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "remoteType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "signature": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v1/json/subscription_changes.json b/_data/taps/schemas/hubspot/v1/json/subscription_changes.json
new file mode 100644
index 000000000..77e6cbf1f
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v1/json/subscription_changes.json
@@ -0,0 +1,93 @@
+{
+ "properties": {
+ "changes": {
+ "items": {
+ "properties": {
+ "causedByEvent": {
+ "properties": {
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "change": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "changeType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "portalId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptionId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "portalId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "recipient": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v1/json/workflows.json b/_data/taps/schemas/hubspot/v1/json/workflows.json
new file mode 100644
index 000000000..249154eb8
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v1/json/workflows.json
@@ -0,0 +1,76 @@
+{
+ "properties": {
+ "contactListIds": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "enrolled": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "steps": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "insertedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "personaTagIds": {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v2/hubspot-v2-foreign-keys.yml b/_data/taps/schemas/hubspot/v2/hubspot-v2-foreign-keys.yml
new file mode 100644
index 000000000..cd20449ab
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v2/hubspot-v2-foreign-keys.yml
@@ -0,0 +1,624 @@
+tap: hubspot
+version: '2'
+keys:
+ campaigns_leadNurturingCampaignId:
+ - table: campaigns
+ keys:
+ - id
+ - table: email_events
+ keys:
+ - emailCampaignId
+ - table: forms
+ keys:
+ - leadNurturingCampaignId
+ contacts_canonical-vid:
+ - table: contacts
+ keys:
+ - canonical-vid
+ - table: contacts_by_company
+ keys:
+ - contact-id
+ companies_company-id:
+ - table: companies
+ keys:
+ - companyId
+ - table: contacts_by_company
+ keys:
+ - company-id
+ - table: deals
+ keys:
+ - associations.associatedCompanyIds
+ - table: engagements
+ keys:
+ - associations.companyIds
+ contact_lists_listId:
+ - table: contact_lists
+ keys:
+ - listId
+ - table: contacts
+ keys:
+ - list-memberships.internal-list-id
+ - table: engagements
+ keys:
+ - associations.contactIds
+ deals_dealId:
+ - table: deals
+ keys:
+ - dealId
+ - associations.associatedDealIds
+ - table: engagements
+ keys:
+ - associations.dealIds
+ deal_pipelines_pipelineId:
+ - table: deal_pipelines
+ keys:
+ - pipelineId
+ email_events_emailEventId:
+ - table: email_events
+ keys:
+ - emailEventId
+ engagements_engagementId:
+ - table: engagements
+ keys:
+ - engagementId
+ forms_form-id:
+ - table: forms
+ keys:
+ - guid
+ - table: contacts
+ keys:
+ - form-submissions.form-id
+ owners_ownerId:
+ - table: engagements
+ keys:
+ - engagement.ownerId
+ - table: owners
+ keys:
+ - ownerId
+ - remoteList.ownerId
+ _portalId:
+ - table: companies
+ keys:
+ - portalId
+ - table: contact_lists
+ keys:
+ - portalId
+ - table: contacts
+ keys:
+ - portal-id
+ - form-submissions.portal-id
+ - table: deals
+ keys:
+ - portalId
+ - table: email_events
+ keys:
+ - portalId
+ - table: engagements
+ keys:
+ - engagement.portalId
+ - table: forms
+ keys:
+ - portalId
+ - table: owners
+ keys:
+ - portalId
+ - remoteList.portalId
+ - table: subscription_changes
+ keys:
+ - portalId
+ - changes.portalId
+tables:
+- table-name: campaigns
+ join:
+ - table-name: email_events
+ keys:
+ - key: id
+ foreign-key: emailCampaignId
+ - table-name: forms
+ keys:
+ - key: id
+ foreign-key: leadNurturingCampaignId
+- table-name: email_events
+ join:
+ - table-name: campaigns
+ keys:
+ - key: emailCampaignId
+ foreign-key: id
+ - table-name: forms
+ keys:
+ - key: emailCampaignId
+ foreign-key: leadNurturingCampaignId
+ - key: portalId
+ foreign-key: portalId
+ - table-name: companies
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - table-name: contact_lists
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - table-name: contacts
+ keys:
+ - key: portalId
+ foreign-key: portal-id
+ - key: portalId
+ foreign-key: form-submissions.portal-id
+ - table-name: deals
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - table-name: engagements
+ keys:
+ - key: portalId
+ foreign-key: engagement.portalId
+ - table-name: owners
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - key: portalId
+ foreign-key: remoteList.portalId
+ - table-name: subscription_changes
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - key: portalId
+ foreign-key: changes.portalId
+- table-name: forms
+ join:
+ - table-name: campaigns
+ keys:
+ - key: leadNurturingCampaignId
+ foreign-key: id
+ - table-name: email_events
+ keys:
+ - key: leadNurturingCampaignId
+ foreign-key: emailCampaignId
+ - key: portalId
+ foreign-key: portalId
+ - table-name: contacts
+ keys:
+ - key: guid
+ foreign-key: form-submissions.form-id
+ - key: portalId
+ foreign-key: portal-id
+ - key: portalId
+ foreign-key: form-submissions.portal-id
+ - table-name: companies
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - table-name: contact_lists
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - table-name: deals
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - table-name: engagements
+ keys:
+ - key: portalId
+ foreign-key: engagement.portalId
+ - table-name: owners
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - key: portalId
+ foreign-key: remoteList.portalId
+ - table-name: subscription_changes
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - key: portalId
+ foreign-key: changes.portalId
+- table-name: contacts
+ join:
+ - table-name: contacts_by_company
+ keys:
+ - key: canonical-vid
+ foreign-key: contact-id
+ - table-name: contact_lists
+ keys:
+ - key: list-memberships.internal-list-id
+ foreign-key: listId
+ - key: portal-id
+ foreign-key: portalId
+ - key: form-submissions.portal-id
+ foreign-key: portalId
+ - table-name: engagements
+ keys:
+ - key: list-memberships.internal-list-id
+ foreign-key: associations.contactIds
+ - key: portal-id
+ foreign-key: engagement.portalId
+ - key: form-submissions.portal-id
+ foreign-key: engagement.portalId
+ - table-name: forms
+ keys:
+ - key: form-submissions.form-id
+ foreign-key: guid
+ - key: portal-id
+ foreign-key: portalId
+ - key: form-submissions.portal-id
+ foreign-key: portalId
+ - table-name: companies
+ keys:
+ - key: portal-id
+ foreign-key: portalId
+ - key: form-submissions.portal-id
+ foreign-key: portalId
+ - table-name: deals
+ keys:
+ - key: portal-id
+ foreign-key: portalId
+ - key: form-submissions.portal-id
+ foreign-key: portalId
+ - table-name: email_events
+ keys:
+ - key: portal-id
+ foreign-key: portalId
+ - key: form-submissions.portal-id
+ foreign-key: portalId
+ - table-name: owners
+ keys:
+ - key: portal-id
+ foreign-key: portalId
+ - key: form-submissions.portal-id
+ foreign-key: portalId
+ - key: portal-id
+ foreign-key: remoteList.portalId
+ - key: form-submissions.portal-id
+ foreign-key: remoteList.portalId
+ - table-name: subscription_changes
+ keys:
+ - key: portal-id
+ foreign-key: portalId
+ - key: form-submissions.portal-id
+ foreign-key: portalId
+ - key: portal-id
+ foreign-key: changes.portalId
+ - key: form-submissions.portal-id
+ foreign-key: changes.portalId
+- table-name: contacts_by_company
+ join:
+ - table-name: contacts
+ keys:
+ - key: contact-id
+ foreign-key: canonical-vid
+ - table-name: companies
+ keys:
+ - key: company-id
+ foreign-key: companyId
+ - table-name: deals
+ keys:
+ - key: company-id
+ foreign-key: associations.associatedCompanyIds
+ - table-name: engagements
+ keys:
+ - key: company-id
+ foreign-key: associations.companyIds
+- table-name: companies
+ join:
+ - table-name: contacts_by_company
+ keys:
+ - key: companyId
+ foreign-key: company-id
+ - table-name: deals
+ keys:
+ - key: companyId
+ foreign-key: associations.associatedCompanyIds
+ - key: portalId
+ foreign-key: portalId
+ - table-name: engagements
+ keys:
+ - key: companyId
+ foreign-key: associations.companyIds
+ - key: portalId
+ foreign-key: engagement.portalId
+ - table-name: contact_lists
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - table-name: contacts
+ keys:
+ - key: portalId
+ foreign-key: portal-id
+ - key: portalId
+ foreign-key: form-submissions.portal-id
+ - table-name: email_events
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - table-name: forms
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - table-name: owners
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - key: portalId
+ foreign-key: remoteList.portalId
+ - table-name: subscription_changes
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - key: portalId
+ foreign-key: changes.portalId
+- table-name: deals
+ join:
+ - table-name: companies
+ keys:
+ - key: associations.associatedCompanyIds
+ foreign-key: companyId
+ - key: portalId
+ foreign-key: portalId
+ - table-name: contacts_by_company
+ keys:
+ - key: associations.associatedCompanyIds
+ foreign-key: company-id
+ - table-name: engagements
+ keys:
+ - key: associations.associatedCompanyIds
+ foreign-key: associations.companyIds
+ - key: dealId
+ foreign-key: associations.dealIds
+ - key: associations.associatedDealIds
+ foreign-key: associations.dealIds
+ - key: portalId
+ foreign-key: engagement.portalId
+ - table-name: contact_lists
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - table-name: contacts
+ keys:
+ - key: portalId
+ foreign-key: portal-id
+ - key: portalId
+ foreign-key: form-submissions.portal-id
+ - table-name: email_events
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - table-name: forms
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - table-name: owners
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - key: portalId
+ foreign-key: remoteList.portalId
+ - table-name: subscription_changes
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - key: portalId
+ foreign-key: changes.portalId
+- table-name: engagements
+ join:
+ - table-name: companies
+ keys:
+ - key: associations.companyIds
+ foreign-key: companyId
+ - key: engagement.portalId
+ foreign-key: portalId
+ - table-name: contacts_by_company
+ keys:
+ - key: associations.companyIds
+ foreign-key: company-id
+ - table-name: deals
+ keys:
+ - key: associations.companyIds
+ foreign-key: associations.associatedCompanyIds
+ - key: associations.dealIds
+ foreign-key: dealId
+ - key: associations.dealIds
+ foreign-key: associations.associatedDealIds
+ - key: engagement.portalId
+ foreign-key: portalId
+ - table-name: contact_lists
+ keys:
+ - key: associations.contactIds
+ foreign-key: listId
+ - key: engagement.portalId
+ foreign-key: portalId
+ - table-name: contacts
+ keys:
+ - key: associations.contactIds
+ foreign-key: list-memberships.internal-list-id
+ - key: engagement.portalId
+ foreign-key: portal-id
+ - key: engagement.portalId
+ foreign-key: form-submissions.portal-id
+ - table-name: owners
+ keys:
+ - key: engagement.ownerId
+ foreign-key: ownerId
+ - key: engagement.ownerId
+ foreign-key: remoteList.ownerId
+ - key: engagement.portalId
+ foreign-key: portalId
+ - key: engagement.portalId
+ foreign-key: remoteList.portalId
+ - table-name: email_events
+ keys:
+ - key: engagement.portalId
+ foreign-key: portalId
+ - table-name: forms
+ keys:
+ - key: engagement.portalId
+ foreign-key: portalId
+ - table-name: subscription_changes
+ keys:
+ - key: engagement.portalId
+ foreign-key: portalId
+ - key: engagement.portalId
+ foreign-key: changes.portalId
+- table-name: contact_lists
+ join:
+ - table-name: contacts
+ keys:
+ - key: listId
+ foreign-key: list-memberships.internal-list-id
+ - key: portalId
+ foreign-key: portal-id
+ - key: portalId
+ foreign-key: form-submissions.portal-id
+ - table-name: engagements
+ keys:
+ - key: listId
+ foreign-key: associations.contactIds
+ - key: portalId
+ foreign-key: engagement.portalId
+ - table-name: companies
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - table-name: deals
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - table-name: email_events
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - table-name: forms
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - table-name: owners
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - key: portalId
+ foreign-key: remoteList.portalId
+ - table-name: subscription_changes
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - key: portalId
+ foreign-key: changes.portalId
+- table-name: owners
+ join:
+ - table-name: engagements
+ keys:
+ - key: ownerId
+ foreign-key: engagement.ownerId
+ - key: remoteList.ownerId
+ foreign-key: engagement.ownerId
+ - key: portalId
+ foreign-key: engagement.portalId
+ - key: remoteList.portalId
+ foreign-key: engagement.portalId
+ - table-name: companies
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - key: remoteList.portalId
+ foreign-key: portalId
+ - table-name: contact_lists
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - key: remoteList.portalId
+ foreign-key: portalId
+ - table-name: contacts
+ keys:
+ - key: portalId
+ foreign-key: portal-id
+ - key: remoteList.portalId
+ foreign-key: portal-id
+ - key: portalId
+ foreign-key: form-submissions.portal-id
+ - key: remoteList.portalId
+ foreign-key: form-submissions.portal-id
+ - table-name: deals
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - key: remoteList.portalId
+ foreign-key: portalId
+ - table-name: email_events
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - key: remoteList.portalId
+ foreign-key: portalId
+ - table-name: forms
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - key: remoteList.portalId
+ foreign-key: portalId
+ - table-name: subscription_changes
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - key: remoteList.portalId
+ foreign-key: portalId
+ - key: portalId
+ foreign-key: changes.portalId
+ - key: remoteList.portalId
+ foreign-key: changes.portalId
+- table-name: subscription_changes
+ join:
+ - table-name: companies
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - key: changes.portalId
+ foreign-key: portalId
+ - table-name: contact_lists
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - key: changes.portalId
+ foreign-key: portalId
+ - table-name: contacts
+ keys:
+ - key: portalId
+ foreign-key: portal-id
+ - key: changes.portalId
+ foreign-key: portal-id
+ - key: portalId
+ foreign-key: form-submissions.portal-id
+ - key: changes.portalId
+ foreign-key: form-submissions.portal-id
+ - table-name: deals
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - key: changes.portalId
+ foreign-key: portalId
+ - table-name: email_events
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - key: changes.portalId
+ foreign-key: portalId
+ - table-name: engagements
+ keys:
+ - key: portalId
+ foreign-key: engagement.portalId
+ - key: changes.portalId
+ foreign-key: engagement.portalId
+ - table-name: forms
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - key: changes.portalId
+ foreign-key: portalId
+ - table-name: owners
+ keys:
+ - key: portalId
+ foreign-key: portalId
+ - key: changes.portalId
+ foreign-key: portalId
+ - key: portalId
+ foreign-key: remoteList.portalId
+ - key: changes.portalId
+ foreign-key: remoteList.portalId
diff --git a/_data/taps/schemas/hubspot/v2/hubspot-v2-tables.yml b/_data/taps/schemas/hubspot/v2/hubspot-v2-tables.yml
new file mode 100644
index 000000000..df6afda7c
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v2/hubspot-v2-tables.yml
@@ -0,0 +1,221 @@
+tap: hubspot
+version: '2'
+tables:
+- name: campaigns
+ description: 'The `{{ table.name }}` table contains info about the campaigns in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: http://developers.hubspot.com/docs/methods/email/get_campaign_data
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/master/tap_hubspot/schemas/campaigns.json
+ api-method: https://developers.hubspot.com/docs/methods/email/get_campaign_data
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: companies
+ description: 'The `{{ table.name }}` table contains info about the companies your
+ {{ integration.display_name }} contacts belong to.
+
+ '
+ links:
+ doc-link: http://developers.hubspot.com/docs/methods/companies/get_company
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/master/tap_hubspot/schemas/companies.json
+ api-method: https://developers.hubspot.com/docs/methods/companies/get_company
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: companyId
+- name: contacts
+ description: 'The `{{ table.name }}` table contains info about individual contacts
+ in {{ integration.display_name }}.
+
+
+ ### Contact properties
+
+
+ If properties have been set for the contact, additional fields beginning with
+ `properties__` will be included in the table. **Note**: Contacts will only have
+ an entry for a property if that property has been set for the contact''s record.
+
+
+ {{ integration.display_name }} always types the value of `properties` fields as
+ `STRING` despite the property type. [Refer to HubSpot''s documentation for more
+ info](https://developers.hubspot.com/docs/methods/contacts/contacts-overview){:target="new"}.
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/contacts/contacts-overview
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/master/tap_hubspot/schemas/contacts.json
+ api-method: https://developers.hubspot.com/docs/methods/contacts/get_contacts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: vid
+- name: contacts_by_company
+ description: 'The `{{ table.name }}` table contains contact and company ID pairs,
+ allowing you to join contacts to relevant company data.
+
+
+ To replicate data from this table, you must also select the parent `companies`
+ table.
+
+ '
+ links:
+ doc-link: http://developers.hubspot.com/docs/methods/companies/get_company
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/master/tap_hubspot/schemas/contacts_by_company.json
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - contact-id
+ - company-id
+- name: contact_lists
+ description: 'The `{{ table.name }}` table contains info about the contacts lists
+ in your {{ integration.display_name }} account. Contact lists are used to segment
+ contacts into groups, and there are two types: dynamic (smart lists) and static.
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/lists/contact-lists-overview
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/master/tap_hubspot/schemas/contact_lists.json
+ api-method: https://developers.hubspot.com/docs/methods/lists/get_lists
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: listId
+ replication-key: updatedAt
+- name: deals
+ description: 'The `{{ table.name }}` table contains info about the deals in a {{
+ integration.display_name }} portal.
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/deals/deals_overview
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/master/tap_hubspot/schemas/deals.json
+ api-method: https://developers.hubspot.com/docs/methods/deals/get-all-deals
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: dealId
+- name: deal_pipelines
+ description: 'The `{{ table.name }}` table contains info about the `deal stage`
+ and `pipeline` properties.
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/deal-pipelines/overview
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/master/tap_hubspot/schemas/deal_pipelines.json
+ api-method: https://developers.hubspot.com/docs/methods/deal-pipelines/get-all-deal-pipelines
+ table-details:
+ replication-method: Full Table
+ primary-key: pipelineId
+- name: email_events
+ description: 'The `email_events` table contains info about email events and how
+ recipients interact with content.
+
+
+ #### Email events and {{ integration.display_name }} permissions
+
+
+ Replicating this table requires **Super Admin** permissions in {{ integration.display_name
+ }}. The Super Admin role is different than the Admin role, which you can read
+ more about in [{{ integration.display_name }}''s documentation](https://knowledge.hubspot.com/articles/kcs_article/settings/hubspot-user-roles-guide#admin).
+
+
+ If this table is selected and you don''t have Super Admin permissions in {{ integration.display_name
+ }}, an error similar to the following will surface in the integration''s [Extraction
+ Logs]({{ link.replication.extraction-logs | prepend: site.baseurl }}):
+
+
+ ```
+
+ tap - ERROR b''{"status":"error","message":"This oauth-token (**********) does
+ not have proper permissions! (requires any of [email-access])", [...]
+
+ ```
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/email/email_events_overview
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/master/tap_hubspot/schemas/email_events.json
+ api-method: https://developers.hubspot.com/docs/methods/email/get_events
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: engagements
+ description: 'The `{{ table.name }}` table contains info about all the engagements
+ in a {{ integration.display_name }} portal.
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/engagements/engagements-overview
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/master/tap_hubspot/schemas/engagements.json
+ api-method: https://developers.hubspot.com/docs/methods/engagements/get-all-engagements
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: engagement_id
+ replication-key: lastUpdated
+- name: forms
+ description: 'The `{{ table.name }}` table contains info about your {{ integration.display_name
+ }} website forms.
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/forms/forms_overview
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/master/tap_hubspot/schemas/forms.json
+ api-method: https://developers.hubspot.com/docs/methods/forms/v2/get_forms
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: guid
+ replication-key: updatedAt
+- name: owners
+ description: 'The `{{ table.name }}` table contains info about the owners that exist
+ in your {{ integration.display_name }} portal. Owners are created and updated
+ in {{ integration.display_name }} when new users are added or when owners are
+ synced from Salesforce to {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/owners/owners_overview
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/master/tap_hubspot/schemas/owners.json
+ api-method: https://developers.hubspot.com/docs/methods/owners/get_owners
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: ownerId
+ replication-key: updatedAt
+- name: subscription_changes
+ description: 'The `{{ table.name }}` table contains info about changes made subscriptions.
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/timeline/timeline-overview
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/master/tap_hubspot/schemas/subscription_changes.json
+ api-method: https://developers.hubspot.com/docs/methods/email/get_subscriptions_timeline
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - recipient
+ - portalId
+ - timestamp
+- name: tickets
+ description: In HubSpot, tickets represents customer requests for help
+ links:
+ singer-schema: https://github.com/singer-io/tap-hubspot/tree/master/tap_hubspot/schemas/tickets.json
+ api-method: https://developers.hubspot.com/docs/api/crm/tickets
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+- name: workflows
+ description: 'The `workflows` table contains info about the workflows in your {{
+ integration.display_name }} portal.
+
+
+ **Note**: The `workflows` stream only supports contact-based workflows.
+
+ '
+ links:
+ doc-link: https://developers.hubspot.com/docs/methods/workflows/workflows_overview
+ singer-schema: https://github.com/singer-io/tap-hubspot/blob/master/tap_hubspot/schemas/workflows.json
+ api-method: https://developers.hubspot.com/docs/methods/workflows/v3/get_workflows
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/hubspot/v2/json/campaigns.json b/_data/taps/schemas/hubspot/v2/json/campaigns.json
new file mode 100644
index 000000000..e38a98c2f
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v2/json/campaigns.json
@@ -0,0 +1,175 @@
+{
+ "properties": {
+ "appId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "appName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contentId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "counters": {
+ "properties": {
+ "bounce": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "click": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "deferred": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "delievered": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "delivered": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "dropped": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "forward": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "mta_dropped": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "open": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "print": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "processed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reply": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "spamreport": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "statuschange": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "suppressed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unsubscribed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "numIncluded": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "numQueued": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v2/json/companies.json b/_data/taps/schemas/hubspot/v2/json/companies.json
new file mode 100644
index 000000000..b20faf74a
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v2/json/companies.json
@@ -0,0 +1,17 @@
+{
+ "properties": {
+ "companyId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "portalId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v2/json/contact_lists.json b/_data/taps/schemas/hubspot/v2/json/contact_lists.json
new file mode 100644
index 000000000..388f702d7
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v2/json/contact_lists.json
@@ -0,0 +1,162 @@
+{
+ "properties": {
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleteable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "dynamic": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "filters": {
+ "items": {
+ "properties": {
+ "checkPastVersions": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "filterFamily": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "property": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "withinTimeMode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "internalListId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "listId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "listType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metaData": {
+ "properties": {
+ "error": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lastProcessingStateChangeAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "lastSizeChangeAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "processing": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parentId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "portalId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "readOnly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v2/json/contacts.json b/_data/taps/schemas/hubspot/v2/json/contacts.json
new file mode 100644
index 000000000..9cc3749be
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v2/json/contacts.json
@@ -0,0 +1,368 @@
+{
+ "properties": {
+ "associated-company": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "canonical-vid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "form-submissions": {
+ "items": {
+ "properties": {
+ "conversion-id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "form-id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "page-url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "portal-id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "identity-profiles": {
+ "items": {
+ "properties": {
+ "deleted-changed-timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "identities": {
+ "items": {
+ "properties": {
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "saved-at-timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "vid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "is-contact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "list-memberships": {
+ "items": {
+ "properties": {
+ "internal-list-id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is-member": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "static-list-id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "vid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "merge-audits": {
+ "items": {
+ "properties": {
+ "canonical-vid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "merged_from_email": {
+ "properties": {
+ "selected": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "source-id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source-label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source-type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source-vids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "merged_to_email": {
+ "properties": {
+ "selected": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "source-id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source-label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source-type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "num-properties-moved": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user-id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "vid-to-merge": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "merged-vids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "portal-id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "profile-token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "profile-url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "versionTimestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "vid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v2/json/contacts_by_company.json b/_data/taps/schemas/hubspot/v2/json/contacts_by_company.json
new file mode 100644
index 000000000..9e2753fec
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v2/json/contacts_by_company.json
@@ -0,0 +1,16 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "company-id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "contact-id": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v2/json/deal_pipelines.json b/_data/taps/schemas/hubspot/v2/json/deal_pipelines.json
new file mode 100644
index 000000000..05520c105
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v2/json/deal_pipelines.json
@@ -0,0 +1,82 @@
+{
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "displayOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pipelineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stages": {
+ "items": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "closedWon": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "displayOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "probability": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "stageId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "staticDefault": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v2/json/deals.json b/_data/taps/schemas/hubspot/v2/json/deals.json
new file mode 100644
index 000000000..a1e891834
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v2/json/deals.json
@@ -0,0 +1,67 @@
+{
+ "properties": {
+ "associations": {
+ "properties": {
+ "associatedCompanyIds": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "associatedDealIds": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "associatedVids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "dealId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "isDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "portalId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v2/json/email_events.json b/_data/taps/schemas/hubspot/v2/json/email_events.json
new file mode 100644
index 000000000..e42a713b3
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v2/json/email_events.json
@@ -0,0 +1,221 @@
+{
+ "properties": {
+ "appId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "appName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "browser": {
+ "properties": {
+ "family": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "producer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "producerUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deviceType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "emailCampaignGroupId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "emailCampaignId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "filteredEvent": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "from": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hmid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ipAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "linkId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "location": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "portalId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "recipient": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "response": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sentBy": {
+ "properties": {
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "smtpId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "userAgent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v2/json/engagements.json b/_data/taps/schemas/hubspot/v2/json/engagements.json
new file mode 100644
index 000000000..5deedabed
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v2/json/engagements.json
@@ -0,0 +1,264 @@
+{
+ "properties": {
+ "associations": {
+ "properties": {
+ "companyIds": {
+ "items": {
+ "type": "integer"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "contactIds": {
+ "items": {
+ "type": "integer"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "dealIds": {
+ "items": {
+ "type": "integer"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "attachments": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "engagement": {
+ "properties": {
+ "active": {
+ "type": "boolean"
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": "integer"
+ },
+ "lastUpdated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ownerId": {
+ "type": "integer"
+ },
+ "portalId": {
+ "type": "integer"
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "engagement_id": {
+ "type": "integer"
+ },
+ "lastUpdated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "metadata": {
+ "properties": {
+ "bcc": {
+ "items": {
+ "properties": {
+ "email": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cc": {
+ "items": {
+ "properties": {
+ "email": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "disposition": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "durationMilliseconds": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "endTime": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "externalAccountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "forObjectType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "from": {
+ "properties": {
+ "email": {
+ "type": "string"
+ },
+ "firstName": {
+ "type": "string"
+ },
+ "lastName": {
+ "type": "string"
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "fromNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recordingUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "startTime": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to": {
+ "items": {
+ "properties": {
+ "email": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "toNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v2/json/forms.json b/_data/taps/schemas/hubspot/v2/json/forms.json
new file mode 100644
index 000000000..11666a82f
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v2/json/forms.json
@@ -0,0 +1,401 @@
+{
+ "properties": {
+ "action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaignGuid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "captchaEnabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "cloneable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cssClass": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deletable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "deletedAt": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "editable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "followUpId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "formFieldGroups": {
+ "items": {
+ "properties": {
+ "default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "fields": {
+ "items": {
+ "properties": {
+ "defaultValue": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "displayOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "fieldType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "groupName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "isSmartField": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "labelHidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "options": {
+ "items": {
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "displayOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "doubleData": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "readOnly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "placeholder": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "selectedOptions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unselectedLabel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "validation": {
+ "properties": {
+ "blockedEmailAddresses": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ "data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "useDefaultBlockList": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "isSmartGroup": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "richText": {
+ "properties": {
+ "content": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "formType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "guid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ignoreCurrentValues": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "inlineMessage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "leadNurturingCampaignId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metaData": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "migratedFrom": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notifyRecipients": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "performableHtml": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "portalId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "redirect": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "submitText": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tmsId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v2/json/owners.json b/_data/taps/schemas/hubspot/v2/json/owners.json
new file mode 100644
index 000000000..ed1010784
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v2/json/owners.json
@@ -0,0 +1,127 @@
+{
+ "properties": {
+ "activeUserId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "firstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hasContactsAccess": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "isActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "lastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ownerId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "portalId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "remoteList": {
+ "items": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ownerId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "portalId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "remoteId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "remoteType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "signature": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "userIdIncludingInactive": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v2/json/subscription_changes.json b/_data/taps/schemas/hubspot/v2/json/subscription_changes.json
new file mode 100644
index 000000000..77e6cbf1f
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v2/json/subscription_changes.json
@@ -0,0 +1,93 @@
+{
+ "properties": {
+ "changes": {
+ "items": {
+ "properties": {
+ "causedByEvent": {
+ "properties": {
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "change": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "changeType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "portalId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptionId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "portalId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "recipient": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v2/json/tickets.json b/_data/taps/schemas/hubspot/v2/json/tickets.json
new file mode 100644
index 000000000..d9b1fb159
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v2/json/tickets.json
@@ -0,0 +1,136 @@
+{
+ "properties": {
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "associations": {
+ "properties": {
+ "companies": {
+ "properties": {
+ "results": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "contacts": {
+ "properties": {
+ "results": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "deals": {
+ "properties": {
+ "results": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": "string"
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/hubspot/v2/json/workflows.json b/_data/taps/schemas/hubspot/v2/json/workflows.json
new file mode 100644
index 000000000..249154eb8
--- /dev/null
+++ b/_data/taps/schemas/hubspot/v2/json/workflows.json
@@ -0,0 +1,76 @@
+{
+ "properties": {
+ "contactListIds": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "enrolled": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "steps": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "insertedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "personaTagIds": {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ilevel/v1/ilevel-v1-foreign-keys.yml b/_data/taps/schemas/ilevel/v1/ilevel-v1-foreign-keys.yml
new file mode 100644
index 000000000..908f065c2
--- /dev/null
+++ b/_data/taps/schemas/ilevel/v1/ilevel-v1-foreign-keys.yml
@@ -0,0 +1,347 @@
+tap: ilevel
+version: '1'
+keys:
+ assets_asset_id:
+ - table: asset_to_asset_relations
+ keys:
+ - from_id
+ - to_id
+ - table: assets
+ keys:
+ - id
+ - table: data_items
+ keys:
+ - asset_id
+ - table: fund_to_asset_relations
+ keys:
+ - to_id
+ - table: securities
+ keys:
+ - asset_id
+ data_items_data_item_id:
+ - table: data_items
+ keys:
+ - id
+ - table: periodic_data_calculated
+ keys:
+ - data_item_id
+ - table: periodic_data_standardized
+ keys:
+ - data_item_id
+ funds_fund_id:
+ - table: assets
+ keys:
+ - lead_fund_id
+ - table: fund_to_asset_relations
+ keys:
+ - from_id
+ - table: fund_to_fund_relations
+ keys:
+ - from_id
+ - to_id
+ - table: funds
+ keys:
+ - id
+ investments_id:
+ - table: investment_transactions
+ keys:
+ - investment.id
+ - table: investments
+ keys:
+ - id
+ scenarios_id:
+ - table: investment_transactions
+ keys:
+ - scenario.id
+ - table: periodic_data_calculated
+ keys:
+ - scenario_id
+ - table: periodic_data_standardized
+ keys:
+ - scenario_id
+ - table: scenarios
+ keys:
+ - id
+ securities_id:
+ - table: investment_transactions
+ keys:
+ - security.id
+ - table: investments
+ keys:
+ - id
+ - table: securities
+ keys:
+ - id
+tables:
+- table-name: asset_to_asset_relations
+ join:
+ - table-name: assets
+ keys:
+ - key: from_id
+ foreign-key: id
+ - key: to_id
+ foreign-key: id
+ - table-name: data_items
+ keys:
+ - key: from_id
+ foreign-key: asset_id
+ - key: to_id
+ foreign-key: asset_id
+ - table-name: fund_to_asset_relations
+ keys:
+ - key: from_id
+ foreign-key: to_id
+ - key: to_id
+ foreign-key: to_id
+ - table-name: securities
+ keys:
+ - key: from_id
+ foreign-key: asset_id
+ - key: to_id
+ foreign-key: asset_id
+- table-name: assets
+ join:
+ - table-name: asset_to_asset_relations
+ keys:
+ - key: id
+ foreign-key: from_id
+ - key: id
+ foreign-key: to_id
+ - table-name: data_items
+ keys:
+ - key: id
+ foreign-key: asset_id
+ - table-name: fund_to_asset_relations
+ keys:
+ - key: id
+ foreign-key: to_id
+ - key: lead_fund_id
+ foreign-key: from_id
+ - table-name: securities
+ keys:
+ - key: id
+ foreign-key: asset_id
+ - table-name: fund_to_fund_relations
+ keys:
+ - key: lead_fund_id
+ foreign-key: from_id
+ - key: lead_fund_id
+ foreign-key: to_id
+ - table-name: funds
+ keys:
+ - key: lead_fund_id
+ foreign-key: id
+- table-name: data_items
+ join:
+ - table-name: asset_to_asset_relations
+ keys:
+ - key: asset_id
+ foreign-key: from_id
+ - key: asset_id
+ foreign-key: to_id
+ - table-name: assets
+ keys:
+ - key: asset_id
+ foreign-key: id
+ - table-name: fund_to_asset_relations
+ keys:
+ - key: asset_id
+ foreign-key: to_id
+ - table-name: securities
+ keys:
+ - key: asset_id
+ foreign-key: asset_id
+ - table-name: periodic_data_calculated
+ keys:
+ - key: id
+ foreign-key: data_item_id
+ - table-name: periodic_data_standardized
+ keys:
+ - key: id
+ foreign-key: data_item_id
+- table-name: fund_to_asset_relations
+ join:
+ - table-name: asset_to_asset_relations
+ keys:
+ - key: to_id
+ foreign-key: from_id
+ - key: to_id
+ foreign-key: to_id
+ - table-name: assets
+ keys:
+ - key: to_id
+ foreign-key: id
+ - key: from_id
+ foreign-key: lead_fund_id
+ - table-name: data_items
+ keys:
+ - key: to_id
+ foreign-key: asset_id
+ - table-name: securities
+ keys:
+ - key: to_id
+ foreign-key: asset_id
+ - table-name: fund_to_fund_relations
+ keys:
+ - key: from_id
+ foreign-key: from_id
+ - key: from_id
+ foreign-key: to_id
+ - table-name: funds
+ keys:
+ - key: from_id
+ foreign-key: id
+- table-name: securities
+ join:
+ - table-name: asset_to_asset_relations
+ keys:
+ - key: asset_id
+ foreign-key: from_id
+ - key: asset_id
+ foreign-key: to_id
+ - table-name: assets
+ keys:
+ - key: asset_id
+ foreign-key: id
+ - table-name: data_items
+ keys:
+ - key: asset_id
+ foreign-key: asset_id
+ - table-name: fund_to_asset_relations
+ keys:
+ - key: asset_id
+ foreign-key: to_id
+ - table-name: investment_transactions
+ keys:
+ - key: id
+ foreign-key: security.id
+ - table-name: investments
+ keys:
+ - key: id
+ foreign-key: id
+- table-name: periodic_data_calculated
+ join:
+ - table-name: data_items
+ keys:
+ - key: data_item_id
+ foreign-key: id
+ - table-name: periodic_data_standardized
+ keys:
+ - key: data_item_id
+ foreign-key: data_item_id
+ - key: scenario_id
+ foreign-key: scenario_id
+ - table-name: investment_transactions
+ keys:
+ - key: scenario_id
+ foreign-key: scenario.id
+ - table-name: scenarios
+ keys:
+ - key: scenario_id
+ foreign-key: id
+- table-name: periodic_data_standardized
+ join:
+ - table-name: data_items
+ keys:
+ - key: data_item_id
+ foreign-key: id
+ - table-name: periodic_data_calculated
+ keys:
+ - key: data_item_id
+ foreign-key: data_item_id
+ - key: scenario_id
+ foreign-key: scenario_id
+ - table-name: investment_transactions
+ keys:
+ - key: scenario_id
+ foreign-key: scenario.id
+ - table-name: scenarios
+ keys:
+ - key: scenario_id
+ foreign-key: id
+- table-name: fund_to_fund_relations
+ join:
+ - table-name: assets
+ keys:
+ - key: from_id
+ foreign-key: lead_fund_id
+ - key: to_id
+ foreign-key: lead_fund_id
+ - table-name: fund_to_asset_relations
+ keys:
+ - key: from_id
+ foreign-key: from_id
+ - key: to_id
+ foreign-key: from_id
+ - table-name: funds
+ keys:
+ - key: from_id
+ foreign-key: id
+ - key: to_id
+ foreign-key: id
+- table-name: funds
+ join:
+ - table-name: assets
+ keys:
+ - key: id
+ foreign-key: lead_fund_id
+ - table-name: fund_to_asset_relations
+ keys:
+ - key: id
+ foreign-key: from_id
+ - table-name: fund_to_fund_relations
+ keys:
+ - key: id
+ foreign-key: from_id
+ - key: id
+ foreign-key: to_id
+- table-name: investment_transactions
+ join:
+ - table-name: investments
+ keys:
+ - key: investment.id
+ foreign-key: id
+ - key: security.id
+ foreign-key: id
+ - table-name: periodic_data_calculated
+ keys:
+ - key: scenario.id
+ foreign-key: scenario_id
+ - table-name: periodic_data_standardized
+ keys:
+ - key: scenario.id
+ foreign-key: scenario_id
+ - table-name: scenarios
+ keys:
+ - key: scenario.id
+ foreign-key: id
+ - table-name: securities
+ keys:
+ - key: security.id
+ foreign-key: id
+- table-name: investments
+ join:
+ - table-name: investment_transactions
+ keys:
+ - key: id
+ foreign-key: investment.id
+ - key: id
+ foreign-key: security.id
+ - table-name: securities
+ keys:
+ - key: id
+ foreign-key: id
+- table-name: scenarios
+ join:
+ - table-name: investment_transactions
+ keys:
+ - key: id
+ foreign-key: scenario.id
+ - table-name: periodic_data_calculated
+ keys:
+ - key: id
+ foreign-key: scenario_id
+ - table-name: periodic_data_standardized
+ keys:
+ - key: id
+ foreign-key: scenario_id
diff --git a/_data/taps/schemas/ilevel/v1/ilevel-v1-tables.yml b/_data/taps/schemas/ilevel/v1/ilevel-v1-tables.yml
new file mode 100644
index 000000000..1f1f56462
--- /dev/null
+++ b/_data/taps/schemas/ilevel/v1/ilevel-v1-tables.yml
@@ -0,0 +1,153 @@
+tap: ilevel
+version: '1'
+tables:
+- name: assets
+ description: 'The `{{ table.name }}` table contains info about the assets in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ilevel/blob/master/tap_ilevel/schemas/assets.json
+ api-method: '{{ integration.api-docs }}'
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: asset_to_asset_relations
+ description: 'The `{{ table.name }}` table contains info about asset to asset relations
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ilevel/blob/master/tap_ilevel/schemas/asset_to_asset_relations.json
+ api-method: '{{ integration.api-docs }}'
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: data_items
+ description: 'The `{{ table.name }}` table contains info about global data items
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ilevel/blob/master/tap_ilevel/schemas/data_items.json
+ api-method: '{{ integration.api-docs }}'
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: funds
+ description: 'The `{{ table.name }}` table contains info about the funds in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ilevel/blob/master/tap_ilevel/schemas/funds.json
+ api-method: '{{ integration.api-docs }}'
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: fund_to_asset_relations
+ description: 'The `{{ table.name }}` table contains info about fund to asset relations
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ilevel/blob/master/tap_ilevel/schemas/fund_to_asset_relations.json
+ api-method: '{{ integration.api-docs }}'
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: fund_to_fund_relations
+ description: 'The `{{ table.name }}` table contains info about fund to fund relations
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ilevel/blob/master/tap_ilevel/schemas/fund_to_fund_relations.json
+ api-method: '{{ integration.api-docs }}'
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: investments
+ description: 'The `{{ table.name }}` table contains info about the investments in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ilevel/blob/master/tap_ilevel/schemas/investments.json
+ api-method: '{{ integration.api-docs }}'
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: investment_transactions
+ description: 'The `{{ table.name }}` table contains info about investment transactions
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ilevel/blob/master/tap_ilevel/schemas/investment_transactions.json
+ api-method: '{{ integration.api-docs }}'
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified
+- name: periodic_data_calculated
+ description: 'The `{{ table.name }}` table contains calculated data using the following
+ dimensions:
+
+
+ - **Entities**: Assets
+
+ - **Scenarios**: Actual
+
+ - **Currency**: USD
+
+ - **Period**: Fiscal quarter
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ilevel/blob/master/tap_ilevel/schemas/periodic_data_calculated.json
+ api-method: '{{ integration.api-docs }}'
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: hash_key
+ replication-key: reported_date_value
+- name: periodic_data_standardized
+ description: 'The `{{ table.name }}` table contains info about periodic standardized
+ data.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ilevel/blob/master/tap_ilevel/schemas/periodic_data_standardized.json
+ api-method: '{{ integration.api-docs }}'
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: hash_key
+ replication-key: reported_date_value
+- name: scenarios
+ description: 'The `{{ table.name }}` table contains info about the scenarios in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ilevel/blob/master/tap_ilevel/schemas/scenarios.json
+ api-method: '{{ integration.api-docs }}'
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: securities
+ description: 'The `{{ table.name }}` table contains info about the securities in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ilevel/blob/master/tap_ilevel/schemas/securities.json
+ api-method: '{{ integration.api-docs }}'
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/ilevel/v1/json/asset_to_asset_relations.json b/_data/taps/schemas/ilevel/v1/json/asset_to_asset_relations.json
new file mode 100644
index 000000000..af88b2321
--- /dev/null
+++ b/_data/taps/schemas/ilevel/v1/json/asset_to_asset_relations.json
@@ -0,0 +1,43 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "from_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_soft_deleted": {
+ "default": false,
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "status_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "to_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ilevel/v1/json/assets.json b/_data/taps/schemas/ilevel/v1/json/assets.json
new file mode 100644
index 000000000..b16b9e362
--- /dev/null
+++ b/_data/taps/schemas/ilevel/v1/json/assets.json
@@ -0,0 +1,211 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "acquisition_as_of": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "acquisition_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "asset_status_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "calendar_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "excel_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_acquisition_as_of": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "industry_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "initial_period": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "investment_thesis": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_soft_deleted": {
+ "default": false,
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "lead_fund_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object_type_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "period_mapping": {
+ "additionalProperties": false,
+ "properties": {
+ "fiscal_period_mapping": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "calendar_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "calendar_quarter": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "calendar_quarter_offset": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "calendar_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fiscal_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fiscal_quarter": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_calendar_year_end": {
+ "default": false,
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_fiscal_year_end": {
+ "default": false,
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "object_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ilevel/v1/json/data_items.json b/_data/taps/schemas/ilevel/v1/json/data_items.json
new file mode 100644
index 000000000..ec3230cbb
--- /dev/null
+++ b/_data/taps/schemas/ilevel/v1/json/data_items.json
@@ -0,0 +1,157 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "aggregation_null_replacement": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "aggregation_type_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "asset_i_ds_string": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "asset_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "category_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversion_type_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "data_value_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled_capabilities_string": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "excel_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "format_decimals": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "format_type_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "formula_type_i_ds_string": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_carry_over": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_global": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_monetary": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_number_comma_separated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_putable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_scalable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_soft_deleted": {
+ "default": false,
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object_type_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "scenario_i_ds_string": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ilevel/v1/json/fund_to_asset_relations.json b/_data/taps/schemas/ilevel/v1/json/fund_to_asset_relations.json
new file mode 100644
index 000000000..af88b2321
--- /dev/null
+++ b/_data/taps/schemas/ilevel/v1/json/fund_to_asset_relations.json
@@ -0,0 +1,43 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "from_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_soft_deleted": {
+ "default": false,
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "status_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "to_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ilevel/v1/json/fund_to_fund_relations.json b/_data/taps/schemas/ilevel/v1/json/fund_to_fund_relations.json
new file mode 100644
index 000000000..af88b2321
--- /dev/null
+++ b/_data/taps/schemas/ilevel/v1/json/fund_to_fund_relations.json
@@ -0,0 +1,43 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "from_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_soft_deleted": {
+ "default": false,
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "status_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "to_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ilevel/v1/json/funds.json b/_data/taps/schemas/ilevel/v1/json/funds.json
new file mode 100644
index 000000000..db397292a
--- /dev/null
+++ b/_data/taps/schemas/ilevel/v1/json/funds.json
@@ -0,0 +1,205 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "business_unit_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "calendar_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled_capabilities_string": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "excel_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_logo": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "initial_period": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "is_soft_deleted": {
+ "default": false,
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "object_type_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner_type_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "period_mapping": {
+ "additionalProperties": false,
+ "properties": {
+ "fiscal_period_mapping": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "calendar_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "calendar_quarter": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "calendar_quarter_offset": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "calendar_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fiscal_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fiscal_quarter": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_calendar_year_end": {
+ "default": false,
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_fiscal_year_end": {
+ "default": false,
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "object_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_committed_capital": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "type_of_plan_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vintage": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ilevel/v1/json/investment_transactions.json b/_data/taps/schemas/ilevel/v1/json/investment_transactions.json
new file mode 100644
index 000000000..8eb59819e
--- /dev/null
+++ b/_data/taps/schemas/ilevel/v1/json/investment_transactions.json
@@ -0,0 +1,357 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "as_of": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "client": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "cost_per_share": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom3": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom4": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom6": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "internal_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "investment": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "is_soft_deleted": {
+ "default": false,
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_modified_by": {
+ "additionalProperties": false,
+ "properties": {
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "middle_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "local_amount": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "local_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "owner": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "scenario": {
+ "additionalProperties": false,
+ "properties": {
+ "excel_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "security": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shares": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "transaction_category": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "transaction_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "transaction_type": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "value_per_share": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ilevel/v1/json/investments.json b/_data/taps/schemas/ilevel/v1/json/investments.json
new file mode 100644
index 000000000..3b9397240
--- /dev/null
+++ b/_data/taps/schemas/ilevel/v1/json/investments.json
@@ -0,0 +1,79 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "acquisition_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "commitment": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "from_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_soft_deleted": {
+ "default": false,
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ownership_percentage": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "security_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "to_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ilevel/v1/json/periodic_data_calculated.json b/_data/taps/schemas/ilevel/v1/json/periodic_data_calculated.json
new file mode 100644
index 000000000..edbfc9798
--- /dev/null
+++ b/_data/taps/schemas/ilevel/v1/json/periodic_data_calculated.json
@@ -0,0 +1,108 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "data_item_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "data_value_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "detail_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "end_of_period_value": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "excel_formula": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exchange_rate_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hash_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "period_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reported_date_value": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "request_identifier": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "scenario_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "standardized_data_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value_numeric": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "value_string": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ilevel/v1/json/periodic_data_standardized.json b/_data/taps/schemas/ilevel/v1/json/periodic_data_standardized.json
new file mode 100644
index 000000000..edbfc9798
--- /dev/null
+++ b/_data/taps/schemas/ilevel/v1/json/periodic_data_standardized.json
@@ -0,0 +1,108 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "data_item_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "data_value_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "detail_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "end_of_period_value": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "excel_formula": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exchange_rate_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hash_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "period_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reported_date_value": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "request_identifier": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "scenario_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "standardized_data_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value_numeric": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "value_string": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ilevel/v1/json/scenarios.json b/_data/taps/schemas/ilevel/v1/json/scenarios.json
new file mode 100644
index 000000000..62bb5aa3c
--- /dev/null
+++ b/_data/taps/schemas/ilevel/v1/json/scenarios.json
@@ -0,0 +1,31 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "excel_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_soft_deleted": {
+ "default": false,
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ilevel/v1/json/securities.json b/_data/taps/schemas/ilevel/v1/json/securities.json
new file mode 100644
index 000000000..04e0e3272
--- /dev/null
+++ b/_data/taps/schemas/ilevel/v1/json/securities.json
@@ -0,0 +1,91 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "asset_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "excel_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_data": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_ownership": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_soft_deleted": {
+ "default": false,
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object_type_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "security_sub_type_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "security_sub_type_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "security_type_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "security_type_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v1/impact-v1-foreign-keys.yml b/_data/taps/schemas/impact/v1/impact-v1-foreign-keys.yml
new file mode 100644
index 000000000..327269cf3
--- /dev/null
+++ b/_data/taps/schemas/impact/v1/impact-v1-foreign-keys.yml
@@ -0,0 +1,1979 @@
+tap: impact
+version: '1'
+keys:
+ _account_id:
+ - table: api_submissions
+ keys:
+ - account_id
+ - table: ftp_file_submissions
+ keys:
+ - account_id
+ action_inquiries_:
+ - table: action_inquiries
+ keys:
+ - id
+ _action_tracker_id:
+ - table: action_updates
+ keys:
+ - action_tracker_id
+ - table: actions
+ keys:
+ - action_tracker_id
+ - table: api_submissions
+ keys:
+ - action_tracker_id
+ - table: conversion_paths
+ keys:
+ - events.action_tracker_id
+ - table: exception_lists
+ keys:
+ - action_trackers.id
+ action_updates_action_update_id:
+ - table: action_updates
+ keys:
+ - action_update_id
+ actions_action_id:
+ - table: action_inquiries
+ keys:
+ - action_id
+ - table: action_updates
+ keys:
+ - action_id
+ - table: actions
+ keys:
+ - id
+ - table: conversion_paths
+ keys:
+ - events.action_id
+ ads_ad_id:
+ - table: action_updates
+ keys:
+ - ad_id
+ - table: actions
+ keys:
+ - ad_id
+ - table: ads
+ keys:
+ - id
+ - table: conversion_paths
+ keys:
+ - events.ad_id
+ _advertiser_id:
+ - table: catalogs
+ keys:
+ - advertiser_id
+ campaigns_campaign_id:
+ - table: action_inquiries
+ keys:
+ - campaign_id
+ - table: action_updates
+ keys:
+ - campaign_id
+ - table: actions
+ keys:
+ - campaign_id
+ - table: ads
+ keys:
+ - campaign_id
+ - table: api_submissions
+ keys:
+ - campaign_id
+ - table: campaigns
+ keys:
+ - id
+ - table: catalogs
+ keys:
+ - campaign_id
+ - table: clicks
+ keys:
+ - campaign_id
+ - table: contacts
+ keys:
+ - campaign_id
+ - table: conversion_paths
+ keys:
+ - campaign_id
+ - table: deals
+ keys:
+ - campaign_id
+ - table: exception_lists
+ keys:
+ - campaign_id
+ - table: invoices
+ keys:
+ - line_items.campaign_id
+ - table: media_partner_groups
+ keys:
+ - campaign_id
+ - table: media_partners
+ keys:
+ - campaigns.campaign_id
+ - table: notes
+ keys:
+ - campaign_id
+ - table: promo_codes
+ keys:
+ - campaign_id
+ - table: tracking_value_requests
+ keys:
+ - campaign_id
+ - table: unique_urls
+ keys:
+ - campaign_id
+ catalog_items_catalog_item_id:
+ - table: catalog_items
+ keys:
+ - id
+ catalogs_catalog_id:
+ - table: catalog_items
+ keys:
+ - catalog_id
+ - table: catalogs
+ keys:
+ - id
+ contacts_contact_id:
+ - table: contacts
+ keys:
+ - contact_id
+ _customer_id:
+ - table: action_updates
+ keys:
+ - customer_id
+ - table: actions
+ keys:
+ - customer_id
+ - table: conversion_paths
+ keys:
+ - customer_id
+ deals_deal_id:
+ - table: ads
+ keys:
+ - deal_id
+ - table: deals
+ keys:
+ - id
+ - table: promo_codes
+ keys:
+ - deal_id
+ - table: tracking_value_requests
+ keys:
+ - deal_id
+ exception_list_items_exception_list_item_id:
+ - table: exception_list_items
+ keys:
+ - exception_list_item_id
+ exception_lists_list_id:
+ - table: exception_list_items
+ keys:
+ - list_id
+ - table: exception_lists
+ keys:
+ - id
+ invoices_invoice_id:
+ - table: invoices
+ keys:
+ - id
+ _media_id:
+ - table: clicks
+ keys:
+ - media_id
+ - table: conversion_paths
+ keys:
+ - events.media_id
+ - table: invoices
+ keys:
+ - media_id
+ - table: notes
+ keys:
+ - media_id
+ media_partner_groups_group_id:
+ - table: media_partner_groups
+ keys:
+ - id
+ - table: media_partners
+ keys:
+ - groups.group_id
+ media_partners_media_partner_id:
+ - table: action_inquiries
+ keys:
+ - media_partner_id
+ - table: action_updates
+ keys:
+ - media_partner_id
+ - table: actions
+ keys:
+ - media_partner_id
+ - table: api_submissions
+ keys:
+ - media_partner_id
+ - table: media_partner_groups
+ keys:
+ - media_partners.partner_id
+ - table: media_partners
+ keys:
+ - id
+ - table: tracking_value_requests
+ keys:
+ - media_partner_id
+ - table: unique_urls
+ keys:
+ - media_partner_id
+ phone_numbers_phone_number_id:
+ - table: phone_numbers
+ keys:
+ - id
+ - table: tracking_value_requests
+ keys:
+ - phone_numbers.id
+ promo_codes_promo_code_id:
+ - table: promo_codes
+ keys:
+ - id
+ - table: tracking_value_requests
+ keys:
+ - promo_codes.id
+ reports_id:
+ - table: report_metadata
+ keys:
+ - id
+ - table: reports
+ keys:
+ - id
+ unique_urls_id:
+ - table: tracking_value_requests
+ keys:
+ - unique_urls.id
+ - table: unique_urls
+ keys:
+ - id
+tables:
+- table-name: api_submissions
+ join:
+ - table-name: ftp_file_submissions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: action_updates
+ keys:
+ - key: action_tracker_id
+ foreign-key: action_tracker_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: actions
+ keys:
+ - key: action_tracker_id
+ foreign-key: action_tracker_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: conversion_paths
+ keys:
+ - key: action_tracker_id
+ foreign-key: events.action_tracker_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: exception_lists
+ keys:
+ - key: action_tracker_id
+ foreign-key: action_trackers.id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: action_inquiries
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: ads
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partners.partner_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - key: media_partner_id
+ foreign-key: id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+- table-name: ftp_file_submissions
+ join:
+ - table-name: api_submissions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+- table-name: action_inquiries
+ join:
+ - table-name: action_updates
+ keys:
+ - key: action_id
+ foreign-key: action_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: actions
+ keys:
+ - key: action_id
+ foreign-key: id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: conversion_paths
+ keys:
+ - key: action_id
+ foreign-key: events.action_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: api_submissions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: exception_lists
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partners.partner_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - key: media_partner_id
+ foreign-key: id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+- table-name: action_updates
+ join:
+ - table-name: actions
+ keys:
+ - key: action_tracker_id
+ foreign-key: action_tracker_id
+ - key: action_id
+ foreign-key: id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: api_submissions
+ keys:
+ - key: action_tracker_id
+ foreign-key: action_tracker_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: conversion_paths
+ keys:
+ - key: action_tracker_id
+ foreign-key: events.action_tracker_id
+ - key: action_id
+ foreign-key: events.action_id
+ - key: ad_id
+ foreign-key: events.ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: exception_lists
+ keys:
+ - key: action_tracker_id
+ foreign-key: action_trackers.id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: action_inquiries
+ keys:
+ - key: action_id
+ foreign-key: action_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: ads
+ keys:
+ - key: ad_id
+ foreign-key: id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partners.partner_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - key: media_partner_id
+ foreign-key: id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+- table-name: actions
+ join:
+ - table-name: action_updates
+ keys:
+ - key: action_tracker_id
+ foreign-key: action_tracker_id
+ - key: id
+ foreign-key: action_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: api_submissions
+ keys:
+ - key: action_tracker_id
+ foreign-key: action_tracker_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: conversion_paths
+ keys:
+ - key: action_tracker_id
+ foreign-key: events.action_tracker_id
+ - key: id
+ foreign-key: events.action_id
+ - key: ad_id
+ foreign-key: events.ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: exception_lists
+ keys:
+ - key: action_tracker_id
+ foreign-key: action_trackers.id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: action_inquiries
+ keys:
+ - key: id
+ foreign-key: action_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: ads
+ keys:
+ - key: ad_id
+ foreign-key: id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partners.partner_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - key: media_partner_id
+ foreign-key: id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+- table-name: conversion_paths
+ join:
+ - table-name: action_updates
+ keys:
+ - key: events.action_tracker_id
+ foreign-key: action_tracker_id
+ - key: events.action_id
+ foreign-key: action_id
+ - key: events.ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: actions
+ keys:
+ - key: events.action_tracker_id
+ foreign-key: action_tracker_id
+ - key: events.action_id
+ foreign-key: id
+ - key: events.ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: api_submissions
+ keys:
+ - key: events.action_tracker_id
+ foreign-key: action_tracker_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: exception_lists
+ keys:
+ - key: events.action_tracker_id
+ foreign-key: action_trackers.id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: action_inquiries
+ keys:
+ - key: events.action_id
+ foreign-key: action_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads
+ keys:
+ - key: events.ad_id
+ foreign-key: id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: events.media_id
+ foreign-key: media_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - key: events.media_id
+ foreign-key: media_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: events.media_id
+ foreign-key: media_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+- table-name: exception_lists
+ join:
+ - table-name: action_updates
+ keys:
+ - key: action_trackers.id
+ foreign-key: action_tracker_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: actions
+ keys:
+ - key: action_trackers.id
+ foreign-key: action_tracker_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: api_submissions
+ keys:
+ - key: action_trackers.id
+ foreign-key: action_tracker_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: conversion_paths
+ keys:
+ - key: action_trackers.id
+ foreign-key: events.action_tracker_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: action_inquiries
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: exception_list_items
+ keys:
+ - key: id
+ foreign-key: list_id
+- table-name: ads
+ join:
+ - table-name: action_updates
+ keys:
+ - key: id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: actions
+ keys:
+ - key: id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: conversion_paths
+ keys:
+ - key: id
+ foreign-key: events.ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: action_inquiries
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: api_submissions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: deal_id
+ foreign-key: id
+ - table-name: exception_lists
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: deal_id
+ foreign-key: deal_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: deal_id
+ foreign-key: deal_id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+- table-name: catalogs
+ join:
+ - table-name: action_inquiries
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: action_updates
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: actions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: api_submissions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: conversion_paths
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: exception_lists
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: catalog_items
+ keys:
+ - key: id
+ foreign-key: catalog_id
+- table-name: campaigns
+ join:
+ - table-name: action_inquiries
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: action_updates
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: actions
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: ads
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: api_submissions
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: catalogs
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: conversion_paths
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: exception_lists
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: media_partners
+ keys:
+ - key: id
+ foreign-key: campaigns.campaign_id
+ - table-name: notes
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: unique_urls
+ keys:
+ - key: id
+ foreign-key: campaign_id
+- table-name: clicks
+ join:
+ - table-name: action_inquiries
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: action_updates
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: actions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: api_submissions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: conversion_paths
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_id
+ foreign-key: events.media_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: exception_lists
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - key: media_id
+ foreign-key: media_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_id
+ foreign-key: media_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+- table-name: contacts
+ join:
+ - table-name: action_inquiries
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: action_updates
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: actions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: api_submissions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: conversion_paths
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: exception_lists
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+- table-name: deals
+ join:
+ - table-name: action_inquiries
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: action_updates
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: actions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: id
+ foreign-key: deal_id
+ - table-name: api_submissions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: conversion_paths
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: exception_lists
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: id
+ foreign-key: deal_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: id
+ foreign-key: deal_id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+- table-name: invoices
+ join:
+ - table-name: action_inquiries
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - table-name: action_updates
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - table-name: actions
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - table-name: ads
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - table-name: api_submissions
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - key: media_id
+ foreign-key: media_id
+ - table-name: contacts
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - table-name: conversion_paths
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - key: media_id
+ foreign-key: events.media_id
+ - table-name: deals
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - table-name: exception_lists
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - table-name: media_partners
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaigns.campaign_id
+ - table-name: notes
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - key: media_id
+ foreign-key: media_id
+ - table-name: promo_codes
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - table-name: unique_urls
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+- table-name: media_partner_groups
+ join:
+ - table-name: action_inquiries
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partners.partner_id
+ foreign-key: media_partner_id
+ - table-name: action_updates
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partners.partner_id
+ foreign-key: media_partner_id
+ - table-name: actions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partners.partner_id
+ foreign-key: media_partner_id
+ - table-name: ads
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: api_submissions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partners.partner_id
+ foreign-key: media_partner_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: conversion_paths
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: exception_lists
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - key: id
+ foreign-key: groups.group_id
+ - key: media_partners.partner_id
+ foreign-key: id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partners.partner_id
+ foreign-key: media_partner_id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partners.partner_id
+ foreign-key: media_partner_id
+- table-name: media_partners
+ join:
+ - table-name: action_inquiries
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - key: id
+ foreign-key: media_partner_id
+ - table-name: action_updates
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - key: id
+ foreign-key: media_partner_id
+ - table-name: actions
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - key: id
+ foreign-key: media_partner_id
+ - table-name: ads
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - table-name: api_submissions
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - key: id
+ foreign-key: media_partner_id
+ - table-name: campaigns
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - table-name: conversion_paths
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - table-name: exception_lists
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - key: groups.group_id
+ foreign-key: id
+ - key: id
+ foreign-key: media_partners.partner_id
+ - table-name: notes
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - key: id
+ foreign-key: media_partner_id
+ - table-name: unique_urls
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - key: id
+ foreign-key: media_partner_id
+- table-name: notes
+ join:
+ - table-name: action_inquiries
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: action_updates
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: actions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: api_submissions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_id
+ foreign-key: media_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: conversion_paths
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_id
+ foreign-key: events.media_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: exception_lists
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - key: media_id
+ foreign-key: media_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+- table-name: promo_codes
+ join:
+ - table-name: action_inquiries
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: action_updates
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: actions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: deal_id
+ foreign-key: deal_id
+ - table-name: api_submissions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: conversion_paths
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: deal_id
+ foreign-key: id
+ - table-name: exception_lists
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: deal_id
+ foreign-key: deal_id
+ - key: id
+ foreign-key: promo_codes.id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+- table-name: tracking_value_requests
+ join:
+ - table-name: action_inquiries
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: action_updates
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: actions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: ads
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: deal_id
+ foreign-key: deal_id
+ - table-name: api_submissions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: conversion_paths
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: deal_id
+ foreign-key: id
+ - table-name: exception_lists
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partners.partner_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - key: media_partner_id
+ foreign-key: id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: deal_id
+ foreign-key: deal_id
+ - key: promo_codes.id
+ foreign-key: id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - key: unique_urls.id
+ foreign-key: id
+ - table-name: phone_numbers
+ keys:
+ - key: phone_numbers.id
+ foreign-key: id
+- table-name: unique_urls
+ join:
+ - table-name: action_inquiries
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: action_updates
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: actions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: ads
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: api_submissions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: conversion_paths
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: exception_lists
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partners.partner_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - key: media_partner_id
+ foreign-key: id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - key: id
+ foreign-key: unique_urls.id
+- table-name: catalog_items
+ join:
+ - table-name: catalogs
+ keys:
+ - key: catalog_id
+ foreign-key: id
+- table-name: exception_list_items
+ join:
+ - table-name: exception_lists
+ keys:
+ - key: list_id
+ foreign-key: id
+- table-name: phone_numbers
+ join:
+ - table-name: tracking_value_requests
+ keys:
+ - key: id
+ foreign-key: phone_numbers.id
+- table-name: report_metadata
+ join:
+ - table-name: reports
+ keys:
+ - key: id
+ foreign-key: id
+- table-name: reports
+ join:
+ - table-name: report_metadata
+ keys:
+ - key: id
+ foreign-key: id
diff --git a/_data/taps/schemas/impact/v1/impact-v1-tables.yml b/_data/taps/schemas/impact/v1/impact-v1-tables.yml
new file mode 100644
index 000000000..bfacfb84b
--- /dev/null
+++ b/_data/taps/schemas/impact/v1/impact-v1-tables.yml
@@ -0,0 +1,290 @@
+tap: impact
+version: '1'
+tap-repo-schemas: true
+tables:
+- name: actions
+ description: 'The `{{ table.name }}` table contains info about a campaign''s actions.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/actions.json
+ api-method: https://developer.impact.com/default#operations-Actions-GetActions
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: event_date
+- name: action_inquiries
+ description: 'The `{{ table.name }}` table contains info about a campaign''s action
+ inquiries.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/action_inquiries.json
+ api-method: https://developer.impact.com/default#operations-Action_Inquiries-GetActionInquiries
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: creation_date
+- name: action_updates
+ description: 'The `{{ table.name }}` table contains info about a campaign''s action
+ updates.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/action_updates.json
+ api-method: https://developer.impact.com/default#operations-Action_Updates-ListActionUpdates
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: update_date
+- name: ads
+ description: 'The `{{ table.name }}` table contains info about ads.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/ads.json
+ api-method: https://developer.impact.com/default#operations-Ads-ListAds
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: api_submissions
+ description: 'The `{{ table.name }}` table contains info about API submissions.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/api_submissions.json
+ api-method: https://developer.impact.com/default/documentation/Rest-Adv-v8#operations-API_Submissions-GetAPISubmissions
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: batch_id
+ replication-key: submission_date
+- name: campaigns
+ description: 'The `{{ table.name }}` table contains info about campaigns in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/campaigns.json
+ api-method: https://developer.impact.com/default#operations-Campaigns-GetCampaigns
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: catalogs
+ description: 'The `{{ table.name }}` table contains info about the catalogs in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/catalogs.json
+ api-method: https://developer.impact.com/default#operations-Catalogs-ListCatalogs
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: catalog_items
+ description: 'The `{{ table.name }}` table contains info about a catalog''s items.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/catalog_items.json
+ api-method: https://developer.impact.com/default#operations-Catalogs-ListCatalogs
+ table-details:
+ replication-method: Full Table
+ primary-key: catalog_item_id
+- name: clicks
+ description: 'The `{{ table.name }}` table contains info about a campaign''s clicks.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/clicks.json
+ api-method: https://developer.impact.com/default#operations-Clicks-GetClicks
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: event_date
+- name: company_information
+ description: 'The `{{ table.name }}` table contains details about companies.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/company_information.json
+ api-method: https://developer.impact.com/default#operations-Company_Information-GetCompanyInfo
+ table-details:
+ replication-method: Full Table
+ primary-key: company_name
+- name: contacts
+ description: 'The `{{ table.name }}` table contains info about a campaign''s contacts.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/contacts.json
+ api-method: https://developer.impact.com/default#operations-Contacts-GetContacts
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: conversion_paths
+ description: 'The `{{ table.name }}` table contains info about a campaign''s conversions.
+
+
+ **Note**: Your **Model ID** must be provided [in the integration''s settings](#add-stitch-data-source)
+ to replicate data for this table.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/conversion_paths.json
+ api-method: https://developer.impact.com/default/documentation/Rest-Adv-v8#operations-Conversion_Paths-GetConversionPaths
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - campaign_id
+ - customer_id
+ - model_id
+- name: deals
+ description: 'The `{{ table.name }}` table contains info about the deals in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/deals.json
+ api-method: https://developer.impact.com/default#operations-Deals-GetDeals
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: exception_lists
+ description: 'The `{{ table.name }}` table contains info about exception lists.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/exception_lists.json
+ api-method: https://developer.impact.com/default#operations-Exception_Lists-GetExceptionLists
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: exception_list_items
+ description: 'The `{{ table.name }}` table contains info about an exception list''s
+ items.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/exception_list_items.json
+ api-method: https://developer.impact.com/default#operations-Exception_Lists-GetExceptionListItems
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: ftp_file_submissions
+ description: 'The `{{ table.name }}` table contains info about FTP file submissions.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/ftp_file_submissions.json
+ api-method: https://developer.impact.com/default#operations-FTP_File_Submissions-GetFTPFileSubmissions
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: batch_id
+ replication-key: submission_date
+- name: invoices
+ description: 'The `{{ table.name }}` table contains info about the invoices in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/invoices.json
+ api-method: https://developer.impact.com/default#operations-Invoices-GetInvoices
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created_date
+- name: media_partners
+ description: 'The `{{ table.name }}` table contains info about the media partners
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/media_partners.json
+ api-method: https://developer.impact.com/default#operations-Partners-GetMediaPartners
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: media_partner_groups
+ description: 'The `{{ table.name }}` table contains info about a campaign''s media
+ partner groups.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/media_partner_groups.json
+ api-method: https://developer.impact.com/default#operations-Partner_Groups-GetMediaPartnerGroups
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: notes
+ description: 'The `{{ table.name }}` table contains info about a campaign''s notes.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/notes.json
+ api-method: https://developer.impact.com/default#operations-Notes-GetNotes
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: modification_date
+- name: phone_numbers
+ description: 'The `{{ table.name }}` table contains info about phone numbers.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/phone_numbers.json
+ api-method: https://developer.impact.com/default#operations-Phone_Numbers-GetPhoneNumbers
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: promo_codes
+ description: 'The `{{ table.name }}` table contains info about promo codes.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/promo_codes.json
+ api-method: https://developer.impact.com/default#operations-Promo_Codes-GetPromoCodes
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: reports
+ description: 'The `{{ table.name }}` table contains info about the reports in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/reports.json
+ api-method: https://developer.impact.com/default#operations-Reports-ListReports
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: report_metadata
+ description: 'The `{{ table.name }}` table contains info about metadata associated
+ with reports.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/report_metadata.json
+ api-method: https://developer.impact.com/default/documentation/Rest-Adv-v8#operations-Reports-GetReportMetadata
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: tracking_value_requests
+ description: 'The `{{ table.name }}` table contains info about tracking value requests.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/tracking_value_requests.json
+ api-method: https://developer.impact.com/default#operations-Tracking_Value_Requests-GetTrackingValueRequests
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: unique_urls
+ description: 'The `{{ table.name }}` table contains info about unique URLs.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/unique_urls.json
+ api-method: https://developer.impact.com/default#operations-Unique_Urls-GetUniqueUrls
+ table-details:
+ replication-method: Full Table
+ primary-key: id
diff --git a/_data/taps/schemas/impact/v1/json/action_inquiries.json b/_data/taps/schemas/impact/v1/json/action_inquiries.json
new file mode 100644
index 000000000..acd2f3ecf
--- /dev/null
+++ b/_data/taps/schemas/impact/v1/json/action_inquiries.json
@@ -0,0 +1,169 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "action_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "auto_approval_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "comments": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "comment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "expected_payout": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "final_payout": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inquiry_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "media_partner_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "media_partner_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reject_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resolution_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "resolution_deadline_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "resolution_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transaction_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v1/json/action_updates.json b/_data/taps/schemas/impact/v1/json/action_updates.json
new file mode 100644
index 000000000..041abec99
--- /dev/null
+++ b/_data/taps/schemas/impact/v1/json/action_updates.json
@@ -0,0 +1,170 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "action_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "action_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_tracker_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "action_uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "caller_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "clearing_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "customer_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delta_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "delta_payout": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "disposition": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locking_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "media_partner_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shared_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state_detail": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state_detail_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "update_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v1/json/actions.json b/_data/taps/schemas/impact/v1/json/actions.json
new file mode 100644
index 000000000..5f83df68d
--- /dev/null
+++ b/_data/taps/schemas/impact/v1/json/actions.json
@@ -0,0 +1,241 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "action_tracker_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "action_tracker_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "caller_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cleared_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "client_cost": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_area": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_post_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delta_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "delta_payout": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "event_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "intended_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "intended_payout": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ip_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locking_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "media_partner_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "media_partner_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payout": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "promo_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referring_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "referring_domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referring_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shared_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v1/json/ads.json b/_data/taps/schemas/impact/v1/json/ads.json
new file mode 100644
index 000000000..a720850ac
--- /dev/null
+++ b/_data/taps/schemas/impact/v1/json/ads.json
@@ -0,0 +1,525 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "ad_code_template": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "allow_deep_linking": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "banner_alternative_tag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_discount_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "bogo_get_discount_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_discount_percent": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "bogo_get_discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "coupon_allow_custom_promo_code": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "coupon_link_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_ad_serving_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customisation_charge": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "deal_categories": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_default_promo_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deal_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_products": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "product_after_price_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "product_after_price_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_before_price_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "product_before_price_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deal_restricted_media_partner_groups": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deal_restricted_media_partners": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deal_scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deal_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "discount_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_maximum_percent": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "discount_percent": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "discount_percent_range_end": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "discount_percent_range_start": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "get_html_code_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gift": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iab_ad_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "labels": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "landing_page": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "limited_time_end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "limited_time_start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "link_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "maximum_savings_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "maximum_savings_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "minimum_purchase_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "minimum_purchase_amount_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mobile_ready": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_tracking": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "promo_code_tracking": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "purchase_limit_quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rebate_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "rebate_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "restricted_media_partner_groups": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "restricted_media_partners": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "season": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "synch_ads_promo_codes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "third_party_servable_ad_creative_height": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "third_party_servable_ad_creative_width": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "top_seller": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v1/json/api_submissions.json b/_data/taps/schemas/impact/v1/json/api_submissions.json
new file mode 100644
index 000000000..a26e58071
--- /dev/null
+++ b/_data/taps/schemas/impact/v1/json/api_submissions.json
@@ -0,0 +1,96 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "action_tracker_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "batch_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "completion_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "error_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "error_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "media_partner_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payload": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "submission_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v1/json/campaigns.json b/_data/taps/schemas/impact/v1/json/campaigns.json
new file mode 100644
index 000000000..f8e976e9d
--- /dev/null
+++ b/_data/taps/schemas/impact/v1/json/campaigns.json
@@ -0,0 +1,373 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "categories": {
+ "additionalProperties": false,
+ "properties": {
+ "additional_category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "additional_sub_categories": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "primary_category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "primary_sub_categories": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "company_contacts": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "direct_tracking_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "session_window_length": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unidentified_source_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "display_future_ads": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "display_servicing_agency": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gateway_tracking_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "campaign_tracking_template": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deep_link_domains": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deep_linking": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "default_landing_page": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "media_partner_tracking_template": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ssl_support": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "third_party_gateway_query_string_parameters": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "third_party_gateway_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unique_click_window_length": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unique_click_window_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "gift_card_payouts": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "identity_collapsing": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "impression_tracking": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "list_in_marketplace": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "long_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mobile_ready_ads": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promo_code_tracking": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "rating": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "resources": {
+ "additionalProperties": false,
+ "properties": {
+ "additional_related_links": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "link_display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "link_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "link_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "company_homepage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "example_landing_page": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "information_page": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "search_keywords": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_regions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "short_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_definition": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "third_party_impression_pixel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trademark_bidding": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "view_through_crediting": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v1/json/catalog_items.json b/_data/taps/schemas/impact/v1/json/catalog_items.json
new file mode 100644
index 000000000..181043d4a
--- /dev/null
+++ b/_data/taps/schemas/impact/v1/json/catalog_items.json
@@ -0,0 +1,417 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "additional_image_urls": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "adult": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "age_group": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "asin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bullets": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "catalog_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "catalog_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "colors": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "condition": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "current_price": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "estimated_ship_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "expiration_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "gender": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gtin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gtin_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inventory": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "is_parent": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "labels": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "launch_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "manufacturer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "manufacturing_cost": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "material": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mobile_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "money1": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "money2": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "money3": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "mpn": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "multi_pack": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "numeric1": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "numeric2": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "numeric3": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "original_format_category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_format_category_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "original_price": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "parent_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pattern": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_bid": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "shipping_height": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "shipping_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_length": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "shipping_length_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_rate": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "shipping_weight": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "shipping_weight_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_width": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stock_availability": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "weight": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "weight_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v1/json/catalogs.json b/_data/taps/schemas/impact/v1/json/catalogs.json
new file mode 100644
index 000000000..dc9f4c1d4
--- /dev/null
+++ b/_data/taps/schemas/impact/v1/json/catalogs.json
@@ -0,0 +1,72 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "advertiser_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "date_last_updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "filename": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "items_uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number_of_items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "upload_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v1/json/clicks.json b/_data/taps/schemas/impact/v1/json/clicks.json
new file mode 100644
index 000000000..c9b35278d
--- /dev/null
+++ b/_data/taps/schemas/impact/v1/json/clicks.json
@@ -0,0 +1,242 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "ad_campaign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_group": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ad_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bid_keyword": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "browser": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cpc_bid": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "customer_area": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_country\"": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "device_family": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "device_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ip_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "keyword": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "landing_page_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "match_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "media_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "media_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "os": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payout": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "product_sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "profile_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referring_domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referring_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "search_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shared_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "traffic_category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "traffic_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unique_click": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v1/json/company_information.json b/_data/taps/schemas/impact/v1/json/company_information.json
new file mode 100644
index 000000000..254432ee6
--- /dev/null
+++ b/_data/taps/schemas/impact/v1/json/company_information.json
@@ -0,0 +1,336 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "billing_address": {
+ "additionalProperties": false,
+ "properties": {
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "commercial_contact": {
+ "additionalProperties": false,
+ "properties": {
+ "cell_phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cell_phone_number_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "work_phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "work_phone_number_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "company_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "corporate_address": {
+ "additionalProperties": false,
+ "properties": {
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ein_ssn_foreign_tax_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "financial_contact": {
+ "additionalProperties": false,
+ "properties": {
+ "cell_phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cell_phone_number_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "work_phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "work_phone_number_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "indirect_tax_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "industry": {
+ "additionalProperties": false,
+ "properties": {
+ "industry_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "industry_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "minimum_contact_rating": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "organization_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "primary_phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "primary_phone_number_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "registered_for_indirect_tax": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "secondary_phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "secondary_phone_number_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "technical_contact": {
+ "additionalProperties": false,
+ "properties": {
+ "cell_phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cell_phone_number_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "work_phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "work_phone_number_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v1/json/contacts.json b/_data/taps/schemas/impact/v1/json/contacts.json
new file mode 100644
index 000000000..8e3b0977d
--- /dev/null
+++ b/_data/taps/schemas/impact/v1/json/contacts.json
@@ -0,0 +1,149 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "accounts": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "account": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cellphone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cellphone_number_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "labels": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "profile_image": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "work_phone_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "work_phone_number_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v1/json/conversion_paths.json b/_data/taps/schemas/impact/v1/json/conversion_paths.json
new file mode 100644
index 000000000..6dc0c1dbe
--- /dev/null
+++ b/_data/taps/schemas/impact/v1/json/conversion_paths.json
@@ -0,0 +1,597 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "channel_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cost": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "events": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "action_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "action_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_tracker_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "action_tracker_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_campaign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_distribution_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_group": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ad_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_site_location": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "app_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_package_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "attributed_credit": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "attributed_revenue": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "browser": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_area": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_post_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_1": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "date_2": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "date_3": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "deal_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "device_family": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "device_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "keyword": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "landing_page": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "match_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "media_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "media_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "money_1": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "money_2": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "money_3": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "numeric_1": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "numeric_2": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "numeric_3": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "order_discount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_margin": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "order_shipping": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "order_subtotal": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "order_tax": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "order_vat": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "os": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payout": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "platform": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "position_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "profile_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promocode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referring_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shared_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "step": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sub_id_1": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sub_id_2": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sub_id_3": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sub_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text_1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text_3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "traffic_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "latency": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "media_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "model_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "model_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referral_counts": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "revenue": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "steps": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v1/json/deals.json b/_data/taps/schemas/impact/v1/json/deals.json
new file mode 100644
index 000000000..84f30e833
--- /dev/null
+++ b/_data/taps/schemas/impact/v1/json/deals.json
@@ -0,0 +1,331 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "bogo_buy_image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_discount_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "bogo_get_discount_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_discount_percent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "bogo_get_discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "categories": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_promo_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "discount_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_maximum_percent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_percent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_percent_range_end": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_percent_range_start": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "gift": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "maximum_savings_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "maximum_savings_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "minimum_purchase_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "minimum_purchase_amount_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "products": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "product_after_price_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "product_after_price_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_before_price_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "product_before_price_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "purchase_limit_quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rebate_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "rebate_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "restricted_media_partner_groups": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "restricted_media_partners": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "synch_ads_promo_codes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v1/json/exception_list_items.json b/_data/taps/schemas/impact/v1/json/exception_list_items.json
new file mode 100644
index 000000000..a1b553a1a
--- /dev/null
+++ b/_data/taps/schemas/impact/v1/json/exception_list_items.json
@@ -0,0 +1,48 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "list_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "match_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v1/json/exception_lists.json b/_data/taps/schemas/impact/v1/json/exception_lists.json
new file mode 100644
index 000000000..48651e079
--- /dev/null
+++ b/_data/taps/schemas/impact/v1/json/exception_lists.json
@@ -0,0 +1,94 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "action_trackers": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deactivation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "items_uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number_of_items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v1/json/ftp_file_submissions.json b/_data/taps/schemas/impact/v1/json/ftp_file_submissions.json
new file mode 100644
index 000000000..ce204d262
--- /dev/null
+++ b/_data/taps/schemas/impact/v1/json/ftp_file_submissions.json
@@ -0,0 +1,72 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "batch_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "completion_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "errors_uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "submission_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "total_errors": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_records": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v1/json/invoices.json b/_data/taps/schemas/impact/v1/json/invoices.json
new file mode 100644
index 000000000..6c12129bf
--- /dev/null
+++ b/_data/taps/schemas/impact/v1/json/invoices.json
@@ -0,0 +1,141 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_items": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "actions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "due_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "event_month_year": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "net_item_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "paid_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_item_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "vat_item_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "media_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "media_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pdf": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_vat_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v1/json/media_partner_groups.json b/_data/taps/schemas/impact/v1/json/media_partner_groups.json
new file mode 100644
index 000000000..e86a077b6
--- /dev/null
+++ b/_data/taps/schemas/impact/v1/json/media_partner_groups.json
@@ -0,0 +1,64 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "media_partners": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "partner_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "partner_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "partner_uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v1/json/media_partners.json b/_data/taps/schemas/impact/v1/json/media_partners.json
new file mode 100644
index 000000000..06c48fb20
--- /dev/null
+++ b/_data/taps/schemas/impact/v1/json/media_partners.json
@@ -0,0 +1,263 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaigns": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "insertion_order_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "insertion_order_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "join_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contact": {
+ "additionalProperties": false,
+ "properties": {
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "groups": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "group_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "mp_value1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mp_value2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mp_value3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "partner_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "primary_promotional_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promoting_countries": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promotional_methods": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rating": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "relationship_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v1/json/notes.json b/_data/taps/schemas/impact/v1/json/notes.json
new file mode 100644
index 000000000..41af2b0f0
--- /dev/null
+++ b/_data/taps/schemas/impact/v1/json/notes.json
@@ -0,0 +1,82 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "attachments": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "content": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "media_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "media_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modification_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v1/json/phone_numbers.json b/_data/taps/schemas/impact/v1/json/phone_numbers.json
new file mode 100644
index 000000000..25213fcd3
--- /dev/null
+++ b/_data/taps/schemas/impact/v1/json/phone_numbers.json
@@ -0,0 +1,54 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "international_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_date_assigned": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_date_released": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v1/json/promo_codes.json b/_data/taps/schemas/impact/v1/json/promo_codes.json
new file mode 100644
index 000000000..8dca22f7d
--- /dev/null
+++ b/_data/taps/schemas/impact/v1/json/promo_codes.json
@@ -0,0 +1,397 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "assigned_partner_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "assigned_partner_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_discount_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "bogo_get_discount_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_discount_percent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "bogo_get_discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "credit_policy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_categories": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_default_promo_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deal_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_products": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "product_after_price_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "product_after_price_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_before_price_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "product_before_price_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deal_restricted_media_partner_groups": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deal_restricted_media_partners": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deal_scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deal_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "discount_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_maximum_percent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_percent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_percent_range_end": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_percent_range_start": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "gift": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "maximum_savings_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "maximum_savings_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "minimum_purchase_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "minimum_purchase_amount_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "purchase_limit_quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rebate_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "rebate_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "synch_ads_promo_codes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v1/json/report_metadata.json b/_data/taps/schemas/impact/v1/json/report_metadata.json
new file mode 100644
index 000000000..953742a2b
--- /dev/null
+++ b/_data/taps/schemas/impact/v1/json/report_metadata.json
@@ -0,0 +1,104 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "attributes": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "data_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "filters": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "data_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "run_uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v1/json/reports.json b/_data/taps/schemas/impact/v1/json/reports.json
new file mode 100644
index 000000000..401bae679
--- /dev/null
+++ b/_data/taps/schemas/impact/v1/json/reports.json
@@ -0,0 +1,36 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "meta_data_uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "run_uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v1/json/tracking_value_requests.json b/_data/taps/schemas/impact/v1/json/tracking_value_requests.json
new file mode 100644
index 000000000..42ba6f45d
--- /dev/null
+++ b/_data/taps/schemas/impact/v1/json/tracking_value_requests.json
@@ -0,0 +1,517 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "additional_instructions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_discount_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "bogo_get_discount_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_discount_percent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "bogo_get_discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_completed": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_needed": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_placed": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deal_categories": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_default_promo_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deal_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_products": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "product_after_price_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "product_after_price_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_before_price_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "product_before_price_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deal_restricted_media_partner_groups": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deal_restricted_media_partners": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deal_scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deal_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "discount_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_maximum_percent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_percent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_percent_range_end": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_percent_range_start": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gift": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "maximum_savings_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "maximum_savings_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "media_partner_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "media_partner_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "minimum_purchase_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "minimum_purchase_amount_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number_requested": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "phone_numbers": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "assigned_phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_phone_number_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "processing_comments": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promo_codes": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "approved_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "credit_policy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "match_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "requested_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "purchase_limit_quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rebate_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "rebate_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "request_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "synch_ads_promo_codes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unique_urls": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v1/json/unique_urls.json b/_data/taps/schemas/impact/v1/json/unique_urls.json
new file mode 100644
index 000000000..ae4d739ca
--- /dev/null
+++ b/_data/taps/schemas/impact/v1/json/unique_urls.json
@@ -0,0 +1,78 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_last_assigned": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_last_released": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "landing_page": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "media_partner_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "media_partner_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v2/impact-v2-foreign-keys.yml b/_data/taps/schemas/impact/v2/impact-v2-foreign-keys.yml
new file mode 100644
index 000000000..327269cf3
--- /dev/null
+++ b/_data/taps/schemas/impact/v2/impact-v2-foreign-keys.yml
@@ -0,0 +1,1979 @@
+tap: impact
+version: '1'
+keys:
+ _account_id:
+ - table: api_submissions
+ keys:
+ - account_id
+ - table: ftp_file_submissions
+ keys:
+ - account_id
+ action_inquiries_:
+ - table: action_inquiries
+ keys:
+ - id
+ _action_tracker_id:
+ - table: action_updates
+ keys:
+ - action_tracker_id
+ - table: actions
+ keys:
+ - action_tracker_id
+ - table: api_submissions
+ keys:
+ - action_tracker_id
+ - table: conversion_paths
+ keys:
+ - events.action_tracker_id
+ - table: exception_lists
+ keys:
+ - action_trackers.id
+ action_updates_action_update_id:
+ - table: action_updates
+ keys:
+ - action_update_id
+ actions_action_id:
+ - table: action_inquiries
+ keys:
+ - action_id
+ - table: action_updates
+ keys:
+ - action_id
+ - table: actions
+ keys:
+ - id
+ - table: conversion_paths
+ keys:
+ - events.action_id
+ ads_ad_id:
+ - table: action_updates
+ keys:
+ - ad_id
+ - table: actions
+ keys:
+ - ad_id
+ - table: ads
+ keys:
+ - id
+ - table: conversion_paths
+ keys:
+ - events.ad_id
+ _advertiser_id:
+ - table: catalogs
+ keys:
+ - advertiser_id
+ campaigns_campaign_id:
+ - table: action_inquiries
+ keys:
+ - campaign_id
+ - table: action_updates
+ keys:
+ - campaign_id
+ - table: actions
+ keys:
+ - campaign_id
+ - table: ads
+ keys:
+ - campaign_id
+ - table: api_submissions
+ keys:
+ - campaign_id
+ - table: campaigns
+ keys:
+ - id
+ - table: catalogs
+ keys:
+ - campaign_id
+ - table: clicks
+ keys:
+ - campaign_id
+ - table: contacts
+ keys:
+ - campaign_id
+ - table: conversion_paths
+ keys:
+ - campaign_id
+ - table: deals
+ keys:
+ - campaign_id
+ - table: exception_lists
+ keys:
+ - campaign_id
+ - table: invoices
+ keys:
+ - line_items.campaign_id
+ - table: media_partner_groups
+ keys:
+ - campaign_id
+ - table: media_partners
+ keys:
+ - campaigns.campaign_id
+ - table: notes
+ keys:
+ - campaign_id
+ - table: promo_codes
+ keys:
+ - campaign_id
+ - table: tracking_value_requests
+ keys:
+ - campaign_id
+ - table: unique_urls
+ keys:
+ - campaign_id
+ catalog_items_catalog_item_id:
+ - table: catalog_items
+ keys:
+ - id
+ catalogs_catalog_id:
+ - table: catalog_items
+ keys:
+ - catalog_id
+ - table: catalogs
+ keys:
+ - id
+ contacts_contact_id:
+ - table: contacts
+ keys:
+ - contact_id
+ _customer_id:
+ - table: action_updates
+ keys:
+ - customer_id
+ - table: actions
+ keys:
+ - customer_id
+ - table: conversion_paths
+ keys:
+ - customer_id
+ deals_deal_id:
+ - table: ads
+ keys:
+ - deal_id
+ - table: deals
+ keys:
+ - id
+ - table: promo_codes
+ keys:
+ - deal_id
+ - table: tracking_value_requests
+ keys:
+ - deal_id
+ exception_list_items_exception_list_item_id:
+ - table: exception_list_items
+ keys:
+ - exception_list_item_id
+ exception_lists_list_id:
+ - table: exception_list_items
+ keys:
+ - list_id
+ - table: exception_lists
+ keys:
+ - id
+ invoices_invoice_id:
+ - table: invoices
+ keys:
+ - id
+ _media_id:
+ - table: clicks
+ keys:
+ - media_id
+ - table: conversion_paths
+ keys:
+ - events.media_id
+ - table: invoices
+ keys:
+ - media_id
+ - table: notes
+ keys:
+ - media_id
+ media_partner_groups_group_id:
+ - table: media_partner_groups
+ keys:
+ - id
+ - table: media_partners
+ keys:
+ - groups.group_id
+ media_partners_media_partner_id:
+ - table: action_inquiries
+ keys:
+ - media_partner_id
+ - table: action_updates
+ keys:
+ - media_partner_id
+ - table: actions
+ keys:
+ - media_partner_id
+ - table: api_submissions
+ keys:
+ - media_partner_id
+ - table: media_partner_groups
+ keys:
+ - media_partners.partner_id
+ - table: media_partners
+ keys:
+ - id
+ - table: tracking_value_requests
+ keys:
+ - media_partner_id
+ - table: unique_urls
+ keys:
+ - media_partner_id
+ phone_numbers_phone_number_id:
+ - table: phone_numbers
+ keys:
+ - id
+ - table: tracking_value_requests
+ keys:
+ - phone_numbers.id
+ promo_codes_promo_code_id:
+ - table: promo_codes
+ keys:
+ - id
+ - table: tracking_value_requests
+ keys:
+ - promo_codes.id
+ reports_id:
+ - table: report_metadata
+ keys:
+ - id
+ - table: reports
+ keys:
+ - id
+ unique_urls_id:
+ - table: tracking_value_requests
+ keys:
+ - unique_urls.id
+ - table: unique_urls
+ keys:
+ - id
+tables:
+- table-name: api_submissions
+ join:
+ - table-name: ftp_file_submissions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: action_updates
+ keys:
+ - key: action_tracker_id
+ foreign-key: action_tracker_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: actions
+ keys:
+ - key: action_tracker_id
+ foreign-key: action_tracker_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: conversion_paths
+ keys:
+ - key: action_tracker_id
+ foreign-key: events.action_tracker_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: exception_lists
+ keys:
+ - key: action_tracker_id
+ foreign-key: action_trackers.id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: action_inquiries
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: ads
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partners.partner_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - key: media_partner_id
+ foreign-key: id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+- table-name: ftp_file_submissions
+ join:
+ - table-name: api_submissions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+- table-name: action_inquiries
+ join:
+ - table-name: action_updates
+ keys:
+ - key: action_id
+ foreign-key: action_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: actions
+ keys:
+ - key: action_id
+ foreign-key: id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: conversion_paths
+ keys:
+ - key: action_id
+ foreign-key: events.action_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: api_submissions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: exception_lists
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partners.partner_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - key: media_partner_id
+ foreign-key: id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+- table-name: action_updates
+ join:
+ - table-name: actions
+ keys:
+ - key: action_tracker_id
+ foreign-key: action_tracker_id
+ - key: action_id
+ foreign-key: id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: api_submissions
+ keys:
+ - key: action_tracker_id
+ foreign-key: action_tracker_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: conversion_paths
+ keys:
+ - key: action_tracker_id
+ foreign-key: events.action_tracker_id
+ - key: action_id
+ foreign-key: events.action_id
+ - key: ad_id
+ foreign-key: events.ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: exception_lists
+ keys:
+ - key: action_tracker_id
+ foreign-key: action_trackers.id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: action_inquiries
+ keys:
+ - key: action_id
+ foreign-key: action_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: ads
+ keys:
+ - key: ad_id
+ foreign-key: id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partners.partner_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - key: media_partner_id
+ foreign-key: id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+- table-name: actions
+ join:
+ - table-name: action_updates
+ keys:
+ - key: action_tracker_id
+ foreign-key: action_tracker_id
+ - key: id
+ foreign-key: action_id
+ - key: ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: api_submissions
+ keys:
+ - key: action_tracker_id
+ foreign-key: action_tracker_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: conversion_paths
+ keys:
+ - key: action_tracker_id
+ foreign-key: events.action_tracker_id
+ - key: id
+ foreign-key: events.action_id
+ - key: ad_id
+ foreign-key: events.ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: exception_lists
+ keys:
+ - key: action_tracker_id
+ foreign-key: action_trackers.id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: action_inquiries
+ keys:
+ - key: id
+ foreign-key: action_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: ads
+ keys:
+ - key: ad_id
+ foreign-key: id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partners.partner_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - key: media_partner_id
+ foreign-key: id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+- table-name: conversion_paths
+ join:
+ - table-name: action_updates
+ keys:
+ - key: events.action_tracker_id
+ foreign-key: action_tracker_id
+ - key: events.action_id
+ foreign-key: action_id
+ - key: events.ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: actions
+ keys:
+ - key: events.action_tracker_id
+ foreign-key: action_tracker_id
+ - key: events.action_id
+ foreign-key: id
+ - key: events.ad_id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: api_submissions
+ keys:
+ - key: events.action_tracker_id
+ foreign-key: action_tracker_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: exception_lists
+ keys:
+ - key: events.action_tracker_id
+ foreign-key: action_trackers.id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: action_inquiries
+ keys:
+ - key: events.action_id
+ foreign-key: action_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads
+ keys:
+ - key: events.ad_id
+ foreign-key: id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: events.media_id
+ foreign-key: media_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - key: events.media_id
+ foreign-key: media_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: events.media_id
+ foreign-key: media_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+- table-name: exception_lists
+ join:
+ - table-name: action_updates
+ keys:
+ - key: action_trackers.id
+ foreign-key: action_tracker_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: actions
+ keys:
+ - key: action_trackers.id
+ foreign-key: action_tracker_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: api_submissions
+ keys:
+ - key: action_trackers.id
+ foreign-key: action_tracker_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: conversion_paths
+ keys:
+ - key: action_trackers.id
+ foreign-key: events.action_tracker_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: action_inquiries
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: exception_list_items
+ keys:
+ - key: id
+ foreign-key: list_id
+- table-name: ads
+ join:
+ - table-name: action_updates
+ keys:
+ - key: id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: actions
+ keys:
+ - key: id
+ foreign-key: ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: conversion_paths
+ keys:
+ - key: id
+ foreign-key: events.ad_id
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: action_inquiries
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: api_submissions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: deal_id
+ foreign-key: id
+ - table-name: exception_lists
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: deal_id
+ foreign-key: deal_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: deal_id
+ foreign-key: deal_id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+- table-name: catalogs
+ join:
+ - table-name: action_inquiries
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: action_updates
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: actions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: api_submissions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: conversion_paths
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: exception_lists
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: catalog_items
+ keys:
+ - key: id
+ foreign-key: catalog_id
+- table-name: campaigns
+ join:
+ - table-name: action_inquiries
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: action_updates
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: actions
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: ads
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: api_submissions
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: catalogs
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: conversion_paths
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: exception_lists
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: media_partners
+ keys:
+ - key: id
+ foreign-key: campaigns.campaign_id
+ - table-name: notes
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: unique_urls
+ keys:
+ - key: id
+ foreign-key: campaign_id
+- table-name: clicks
+ join:
+ - table-name: action_inquiries
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: action_updates
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: actions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: api_submissions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: conversion_paths
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_id
+ foreign-key: events.media_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: exception_lists
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - key: media_id
+ foreign-key: media_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_id
+ foreign-key: media_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+- table-name: contacts
+ join:
+ - table-name: action_inquiries
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: action_updates
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: actions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: api_submissions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: conversion_paths
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: exception_lists
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+- table-name: deals
+ join:
+ - table-name: action_inquiries
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: action_updates
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: actions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: id
+ foreign-key: deal_id
+ - table-name: api_submissions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: conversion_paths
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: exception_lists
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: id
+ foreign-key: deal_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: id
+ foreign-key: deal_id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+- table-name: invoices
+ join:
+ - table-name: action_inquiries
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - table-name: action_updates
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - table-name: actions
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - table-name: ads
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - table-name: api_submissions
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - key: media_id
+ foreign-key: media_id
+ - table-name: contacts
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - table-name: conversion_paths
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - key: media_id
+ foreign-key: events.media_id
+ - table-name: deals
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - table-name: exception_lists
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - table-name: media_partners
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaigns.campaign_id
+ - table-name: notes
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - key: media_id
+ foreign-key: media_id
+ - table-name: promo_codes
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+ - table-name: unique_urls
+ keys:
+ - key: line_items.campaign_id
+ foreign-key: campaign_id
+- table-name: media_partner_groups
+ join:
+ - table-name: action_inquiries
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partners.partner_id
+ foreign-key: media_partner_id
+ - table-name: action_updates
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partners.partner_id
+ foreign-key: media_partner_id
+ - table-name: actions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partners.partner_id
+ foreign-key: media_partner_id
+ - table-name: ads
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: api_submissions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partners.partner_id
+ foreign-key: media_partner_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: conversion_paths
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: exception_lists
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - key: id
+ foreign-key: groups.group_id
+ - key: media_partners.partner_id
+ foreign-key: id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partners.partner_id
+ foreign-key: media_partner_id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partners.partner_id
+ foreign-key: media_partner_id
+- table-name: media_partners
+ join:
+ - table-name: action_inquiries
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - key: id
+ foreign-key: media_partner_id
+ - table-name: action_updates
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - key: id
+ foreign-key: media_partner_id
+ - table-name: actions
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - key: id
+ foreign-key: media_partner_id
+ - table-name: ads
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - table-name: api_submissions
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - key: id
+ foreign-key: media_partner_id
+ - table-name: campaigns
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - table-name: conversion_paths
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - table-name: exception_lists
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - key: groups.group_id
+ foreign-key: id
+ - key: id
+ foreign-key: media_partners.partner_id
+ - table-name: notes
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - key: id
+ foreign-key: media_partner_id
+ - table-name: unique_urls
+ keys:
+ - key: campaigns.campaign_id
+ foreign-key: campaign_id
+ - key: id
+ foreign-key: media_partner_id
+- table-name: notes
+ join:
+ - table-name: action_inquiries
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: action_updates
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: actions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: api_submissions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_id
+ foreign-key: media_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: conversion_paths
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_id
+ foreign-key: events.media_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: exception_lists
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - key: media_id
+ foreign-key: media_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+- table-name: promo_codes
+ join:
+ - table-name: action_inquiries
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: action_updates
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: actions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ads
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: deal_id
+ foreign-key: deal_id
+ - table-name: api_submissions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: conversion_paths
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: deal_id
+ foreign-key: id
+ - table-name: exception_lists
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: deal_id
+ foreign-key: deal_id
+ - key: id
+ foreign-key: promo_codes.id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+- table-name: tracking_value_requests
+ join:
+ - table-name: action_inquiries
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: action_updates
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: actions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: ads
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: deal_id
+ foreign-key: deal_id
+ - table-name: api_submissions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: conversion_paths
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: deal_id
+ foreign-key: id
+ - table-name: exception_lists
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partners.partner_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - key: media_partner_id
+ foreign-key: id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: deal_id
+ foreign-key: deal_id
+ - key: promo_codes.id
+ foreign-key: id
+ - table-name: unique_urls
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - key: unique_urls.id
+ foreign-key: id
+ - table-name: phone_numbers
+ keys:
+ - key: phone_numbers.id
+ foreign-key: id
+- table-name: unique_urls
+ join:
+ - table-name: action_inquiries
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: action_updates
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: actions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: ads
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: api_submissions
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: catalogs
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: clicks
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: contacts
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: conversion_paths
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: deals
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: exception_lists
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: invoices
+ keys:
+ - key: campaign_id
+ foreign-key: line_items.campaign_id
+ - table-name: media_partner_groups
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partners.partner_id
+ - table-name: media_partners
+ keys:
+ - key: campaign_id
+ foreign-key: campaigns.campaign_id
+ - key: media_partner_id
+ foreign-key: id
+ - table-name: notes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: promo_codes
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: tracking_value_requests
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - key: media_partner_id
+ foreign-key: media_partner_id
+ - key: id
+ foreign-key: unique_urls.id
+- table-name: catalog_items
+ join:
+ - table-name: catalogs
+ keys:
+ - key: catalog_id
+ foreign-key: id
+- table-name: exception_list_items
+ join:
+ - table-name: exception_lists
+ keys:
+ - key: list_id
+ foreign-key: id
+- table-name: phone_numbers
+ join:
+ - table-name: tracking_value_requests
+ keys:
+ - key: id
+ foreign-key: phone_numbers.id
+- table-name: report_metadata
+ join:
+ - table-name: reports
+ keys:
+ - key: id
+ foreign-key: id
+- table-name: reports
+ join:
+ - table-name: report_metadata
+ keys:
+ - key: id
+ foreign-key: id
diff --git a/_data/taps/schemas/impact/v2/impact-v2-tables.yml b/_data/taps/schemas/impact/v2/impact-v2-tables.yml
new file mode 100644
index 000000000..bfacfb84b
--- /dev/null
+++ b/_data/taps/schemas/impact/v2/impact-v2-tables.yml
@@ -0,0 +1,290 @@
+tap: impact
+version: '1'
+tap-repo-schemas: true
+tables:
+- name: actions
+ description: 'The `{{ table.name }}` table contains info about a campaign''s actions.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/actions.json
+ api-method: https://developer.impact.com/default#operations-Actions-GetActions
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: event_date
+- name: action_inquiries
+ description: 'The `{{ table.name }}` table contains info about a campaign''s action
+ inquiries.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/action_inquiries.json
+ api-method: https://developer.impact.com/default#operations-Action_Inquiries-GetActionInquiries
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: creation_date
+- name: action_updates
+ description: 'The `{{ table.name }}` table contains info about a campaign''s action
+ updates.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/action_updates.json
+ api-method: https://developer.impact.com/default#operations-Action_Updates-ListActionUpdates
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: update_date
+- name: ads
+ description: 'The `{{ table.name }}` table contains info about ads.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/ads.json
+ api-method: https://developer.impact.com/default#operations-Ads-ListAds
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: api_submissions
+ description: 'The `{{ table.name }}` table contains info about API submissions.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/api_submissions.json
+ api-method: https://developer.impact.com/default/documentation/Rest-Adv-v8#operations-API_Submissions-GetAPISubmissions
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: batch_id
+ replication-key: submission_date
+- name: campaigns
+ description: 'The `{{ table.name }}` table contains info about campaigns in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/campaigns.json
+ api-method: https://developer.impact.com/default#operations-Campaigns-GetCampaigns
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: catalogs
+ description: 'The `{{ table.name }}` table contains info about the catalogs in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/catalogs.json
+ api-method: https://developer.impact.com/default#operations-Catalogs-ListCatalogs
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: catalog_items
+ description: 'The `{{ table.name }}` table contains info about a catalog''s items.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/catalog_items.json
+ api-method: https://developer.impact.com/default#operations-Catalogs-ListCatalogs
+ table-details:
+ replication-method: Full Table
+ primary-key: catalog_item_id
+- name: clicks
+ description: 'The `{{ table.name }}` table contains info about a campaign''s clicks.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/clicks.json
+ api-method: https://developer.impact.com/default#operations-Clicks-GetClicks
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: event_date
+- name: company_information
+ description: 'The `{{ table.name }}` table contains details about companies.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/company_information.json
+ api-method: https://developer.impact.com/default#operations-Company_Information-GetCompanyInfo
+ table-details:
+ replication-method: Full Table
+ primary-key: company_name
+- name: contacts
+ description: 'The `{{ table.name }}` table contains info about a campaign''s contacts.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/contacts.json
+ api-method: https://developer.impact.com/default#operations-Contacts-GetContacts
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: conversion_paths
+ description: 'The `{{ table.name }}` table contains info about a campaign''s conversions.
+
+
+ **Note**: Your **Model ID** must be provided [in the integration''s settings](#add-stitch-data-source)
+ to replicate data for this table.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/conversion_paths.json
+ api-method: https://developer.impact.com/default/documentation/Rest-Adv-v8#operations-Conversion_Paths-GetConversionPaths
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - campaign_id
+ - customer_id
+ - model_id
+- name: deals
+ description: 'The `{{ table.name }}` table contains info about the deals in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/deals.json
+ api-method: https://developer.impact.com/default#operations-Deals-GetDeals
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: exception_lists
+ description: 'The `{{ table.name }}` table contains info about exception lists.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/exception_lists.json
+ api-method: https://developer.impact.com/default#operations-Exception_Lists-GetExceptionLists
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: exception_list_items
+ description: 'The `{{ table.name }}` table contains info about an exception list''s
+ items.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/exception_list_items.json
+ api-method: https://developer.impact.com/default#operations-Exception_Lists-GetExceptionListItems
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: ftp_file_submissions
+ description: 'The `{{ table.name }}` table contains info about FTP file submissions.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/ftp_file_submissions.json
+ api-method: https://developer.impact.com/default#operations-FTP_File_Submissions-GetFTPFileSubmissions
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: batch_id
+ replication-key: submission_date
+- name: invoices
+ description: 'The `{{ table.name }}` table contains info about the invoices in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/invoices.json
+ api-method: https://developer.impact.com/default#operations-Invoices-GetInvoices
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created_date
+- name: media_partners
+ description: 'The `{{ table.name }}` table contains info about the media partners
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/media_partners.json
+ api-method: https://developer.impact.com/default#operations-Partners-GetMediaPartners
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: media_partner_groups
+ description: 'The `{{ table.name }}` table contains info about a campaign''s media
+ partner groups.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/media_partner_groups.json
+ api-method: https://developer.impact.com/default#operations-Partner_Groups-GetMediaPartnerGroups
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: notes
+ description: 'The `{{ table.name }}` table contains info about a campaign''s notes.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/notes.json
+ api-method: https://developer.impact.com/default#operations-Notes-GetNotes
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: modification_date
+- name: phone_numbers
+ description: 'The `{{ table.name }}` table contains info about phone numbers.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/phone_numbers.json
+ api-method: https://developer.impact.com/default#operations-Phone_Numbers-GetPhoneNumbers
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: promo_codes
+ description: 'The `{{ table.name }}` table contains info about promo codes.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/promo_codes.json
+ api-method: https://developer.impact.com/default#operations-Promo_Codes-GetPromoCodes
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: reports
+ description: 'The `{{ table.name }}` table contains info about the reports in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/reports.json
+ api-method: https://developer.impact.com/default#operations-Reports-ListReports
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: report_metadata
+ description: 'The `{{ table.name }}` table contains info about metadata associated
+ with reports.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/report_metadata.json
+ api-method: https://developer.impact.com/default/documentation/Rest-Adv-v8#operations-Reports-GetReportMetadata
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: tracking_value_requests
+ description: 'The `{{ table.name }}` table contains info about tracking value requests.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/tracking_value_requests.json
+ api-method: https://developer.impact.com/default#operations-Tracking_Value_Requests-GetTrackingValueRequests
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: unique_urls
+ description: 'The `{{ table.name }}` table contains info about unique URLs.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-impact/blob/master/tap_impact/schemas/unique_urls.json
+ api-method: https://developer.impact.com/default#operations-Unique_Urls-GetUniqueUrls
+ table-details:
+ replication-method: Full Table
+ primary-key: id
diff --git a/_data/taps/schemas/impact/v2/json/action_inquiries.json b/_data/taps/schemas/impact/v2/json/action_inquiries.json
new file mode 100644
index 000000000..acd2f3ecf
--- /dev/null
+++ b/_data/taps/schemas/impact/v2/json/action_inquiries.json
@@ -0,0 +1,169 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "action_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "auto_approval_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "comments": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "comment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "expected_payout": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "final_payout": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inquiry_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "media_partner_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "media_partner_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reject_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resolution_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "resolution_deadline_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "resolution_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transaction_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v2/json/action_updates.json b/_data/taps/schemas/impact/v2/json/action_updates.json
new file mode 100644
index 000000000..816be2783
--- /dev/null
+++ b/_data/taps/schemas/impact/v2/json/action_updates.json
@@ -0,0 +1,170 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "action_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "action_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_tracker_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "action_uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "caller_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "clearing_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delta_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "delta_payout": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "disposition": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locking_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "media_partner_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shared_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state_detail": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state_detail_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "update_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v2/json/actions.json b/_data/taps/schemas/impact/v2/json/actions.json
new file mode 100644
index 000000000..5f83df68d
--- /dev/null
+++ b/_data/taps/schemas/impact/v2/json/actions.json
@@ -0,0 +1,241 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "action_tracker_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "action_tracker_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "caller_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cleared_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "client_cost": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_area": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_post_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delta_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "delta_payout": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "event_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "intended_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "intended_payout": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ip_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locking_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "media_partner_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "media_partner_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payout": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "promo_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referring_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "referring_domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referring_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shared_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v2/json/ads.json b/_data/taps/schemas/impact/v2/json/ads.json
new file mode 100644
index 000000000..a720850ac
--- /dev/null
+++ b/_data/taps/schemas/impact/v2/json/ads.json
@@ -0,0 +1,525 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "ad_code_template": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "allow_deep_linking": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "banner_alternative_tag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_discount_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "bogo_get_discount_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_discount_percent": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "bogo_get_discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "coupon_allow_custom_promo_code": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "coupon_link_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_ad_serving_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customisation_charge": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "deal_categories": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_default_promo_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deal_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_products": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "product_after_price_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "product_after_price_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_before_price_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "product_before_price_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deal_restricted_media_partner_groups": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deal_restricted_media_partners": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deal_scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deal_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "discount_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_maximum_percent": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "discount_percent": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "discount_percent_range_end": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "discount_percent_range_start": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "get_html_code_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gift": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iab_ad_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "labels": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "landing_page": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "limited_time_end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "limited_time_start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "link_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "maximum_savings_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "maximum_savings_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "minimum_purchase_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "minimum_purchase_amount_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mobile_ready": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_tracking": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "promo_code_tracking": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "purchase_limit_quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rebate_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "rebate_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "restricted_media_partner_groups": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "restricted_media_partners": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "season": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "synch_ads_promo_codes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "third_party_servable_ad_creative_height": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "third_party_servable_ad_creative_width": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "top_seller": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v2/json/api_submissions.json b/_data/taps/schemas/impact/v2/json/api_submissions.json
new file mode 100644
index 000000000..a26e58071
--- /dev/null
+++ b/_data/taps/schemas/impact/v2/json/api_submissions.json
@@ -0,0 +1,96 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "action_tracker_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "batch_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "completion_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "error_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "error_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "media_partner_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payload": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "submission_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v2/json/campaigns.json b/_data/taps/schemas/impact/v2/json/campaigns.json
new file mode 100644
index 000000000..f8e976e9d
--- /dev/null
+++ b/_data/taps/schemas/impact/v2/json/campaigns.json
@@ -0,0 +1,373 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "categories": {
+ "additionalProperties": false,
+ "properties": {
+ "additional_category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "additional_sub_categories": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "primary_category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "primary_sub_categories": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "company_contacts": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "direct_tracking_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "session_window_length": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unidentified_source_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "display_future_ads": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "display_servicing_agency": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gateway_tracking_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "campaign_tracking_template": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deep_link_domains": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deep_linking": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "default_landing_page": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "media_partner_tracking_template": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ssl_support": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "third_party_gateway_query_string_parameters": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "third_party_gateway_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unique_click_window_length": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unique_click_window_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "gift_card_payouts": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "identity_collapsing": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "impression_tracking": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "list_in_marketplace": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "long_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mobile_ready_ads": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promo_code_tracking": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "rating": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "resources": {
+ "additionalProperties": false,
+ "properties": {
+ "additional_related_links": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "link_display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "link_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "link_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "company_homepage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "example_landing_page": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "information_page": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "search_keywords": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_regions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "short_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_definition": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "third_party_impression_pixel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trademark_bidding": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "view_through_crediting": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v2/json/catalog_items.json b/_data/taps/schemas/impact/v2/json/catalog_items.json
new file mode 100644
index 000000000..181043d4a
--- /dev/null
+++ b/_data/taps/schemas/impact/v2/json/catalog_items.json
@@ -0,0 +1,417 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "additional_image_urls": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "adult": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "age_group": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "asin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bullets": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "catalog_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "catalog_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "colors": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "condition": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "current_price": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "estimated_ship_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "expiration_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "gender": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gtin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gtin_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inventory": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "is_parent": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "labels": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "launch_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "manufacturer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "manufacturing_cost": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "material": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mobile_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "money1": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "money2": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "money3": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "mpn": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "multi_pack": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "numeric1": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "numeric2": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "numeric3": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "original_format_category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_format_category_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "original_price": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "parent_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pattern": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_bid": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "shipping_height": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "shipping_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_length": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "shipping_length_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_rate": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "shipping_weight": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "shipping_weight_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_width": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stock_availability": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "weight": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "weight_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v2/json/catalogs.json b/_data/taps/schemas/impact/v2/json/catalogs.json
new file mode 100644
index 000000000..dc9f4c1d4
--- /dev/null
+++ b/_data/taps/schemas/impact/v2/json/catalogs.json
@@ -0,0 +1,72 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "advertiser_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "date_last_updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "filename": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "items_uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number_of_items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "upload_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v2/json/clicks.json b/_data/taps/schemas/impact/v2/json/clicks.json
new file mode 100644
index 000000000..c9b35278d
--- /dev/null
+++ b/_data/taps/schemas/impact/v2/json/clicks.json
@@ -0,0 +1,242 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "ad_campaign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_group": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ad_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bid_keyword": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "browser": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cpc_bid": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "customer_area": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_country\"": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "device_family": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "device_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ip_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "keyword": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "landing_page_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "match_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "media_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "media_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "os": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payout": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "product_sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "profile_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referring_domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referring_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "search_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shared_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "traffic_category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "traffic_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unique_click": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v2/json/company_information.json b/_data/taps/schemas/impact/v2/json/company_information.json
new file mode 100644
index 000000000..254432ee6
--- /dev/null
+++ b/_data/taps/schemas/impact/v2/json/company_information.json
@@ -0,0 +1,336 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "billing_address": {
+ "additionalProperties": false,
+ "properties": {
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "commercial_contact": {
+ "additionalProperties": false,
+ "properties": {
+ "cell_phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cell_phone_number_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "work_phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "work_phone_number_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "company_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "corporate_address": {
+ "additionalProperties": false,
+ "properties": {
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ein_ssn_foreign_tax_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "financial_contact": {
+ "additionalProperties": false,
+ "properties": {
+ "cell_phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cell_phone_number_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "work_phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "work_phone_number_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "indirect_tax_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "industry": {
+ "additionalProperties": false,
+ "properties": {
+ "industry_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "industry_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "minimum_contact_rating": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "organization_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "primary_phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "primary_phone_number_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "registered_for_indirect_tax": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "secondary_phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "secondary_phone_number_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "technical_contact": {
+ "additionalProperties": false,
+ "properties": {
+ "cell_phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cell_phone_number_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "work_phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "work_phone_number_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v2/json/contacts.json b/_data/taps/schemas/impact/v2/json/contacts.json
new file mode 100644
index 000000000..8e3b0977d
--- /dev/null
+++ b/_data/taps/schemas/impact/v2/json/contacts.json
@@ -0,0 +1,149 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "accounts": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "account": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cellphone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cellphone_number_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "labels": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "profile_image": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "work_phone_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "work_phone_number_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v2/json/conversion_paths.json b/_data/taps/schemas/impact/v2/json/conversion_paths.json
new file mode 100644
index 000000000..6dc0c1dbe
--- /dev/null
+++ b/_data/taps/schemas/impact/v2/json/conversion_paths.json
@@ -0,0 +1,597 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "channel_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cost": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "events": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "action_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "action_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "action_tracker_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "action_tracker_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_campaign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_distribution_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_group": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ad_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_site_location": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "app_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_package_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "attributed_credit": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "attributed_revenue": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "browser": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_area": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_post_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_1": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "date_2": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "date_3": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "deal_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "device_family": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "device_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "keyword": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "landing_page": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "match_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "media_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "media_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "money_1": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "money_2": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "money_3": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "numeric_1": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "numeric_2": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "numeric_3": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "order_discount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_margin": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "order_shipping": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "order_subtotal": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "order_tax": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "order_vat": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "os": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payout": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "platform": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "position_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "profile_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promocode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referring_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shared_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "site_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "step": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sub_id_1": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sub_id_2": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sub_id_3": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sub_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text_1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text_3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "traffic_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "latency": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "media_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "model_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "model_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referral_counts": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "revenue": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "steps": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v2/json/deals.json b/_data/taps/schemas/impact/v2/json/deals.json
new file mode 100644
index 000000000..84f30e833
--- /dev/null
+++ b/_data/taps/schemas/impact/v2/json/deals.json
@@ -0,0 +1,331 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "bogo_buy_image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_discount_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "bogo_get_discount_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_discount_percent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "bogo_get_discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "categories": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_promo_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "discount_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_maximum_percent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_percent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_percent_range_end": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_percent_range_start": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "gift": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "maximum_savings_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "maximum_savings_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "minimum_purchase_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "minimum_purchase_amount_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "products": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "product_after_price_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "product_after_price_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_before_price_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "product_before_price_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "purchase_limit_quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rebate_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "rebate_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "restricted_media_partner_groups": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "restricted_media_partners": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "synch_ads_promo_codes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v2/json/exception_list_items.json b/_data/taps/schemas/impact/v2/json/exception_list_items.json
new file mode 100644
index 000000000..a1b553a1a
--- /dev/null
+++ b/_data/taps/schemas/impact/v2/json/exception_list_items.json
@@ -0,0 +1,48 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "list_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "match_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v2/json/exception_lists.json b/_data/taps/schemas/impact/v2/json/exception_lists.json
new file mode 100644
index 000000000..48651e079
--- /dev/null
+++ b/_data/taps/schemas/impact/v2/json/exception_lists.json
@@ -0,0 +1,94 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "action_trackers": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deactivation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "items_uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number_of_items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v2/json/ftp_file_submissions.json b/_data/taps/schemas/impact/v2/json/ftp_file_submissions.json
new file mode 100644
index 000000000..ce204d262
--- /dev/null
+++ b/_data/taps/schemas/impact/v2/json/ftp_file_submissions.json
@@ -0,0 +1,72 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "batch_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "completion_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "errors_uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "submission_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "total_errors": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_records": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v2/json/invoices.json b/_data/taps/schemas/impact/v2/json/invoices.json
new file mode 100644
index 000000000..6c12129bf
--- /dev/null
+++ b/_data/taps/schemas/impact/v2/json/invoices.json
@@ -0,0 +1,141 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_items": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "actions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "due_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "event_month_year": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "net_item_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "paid_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_item_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "vat_item_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "media_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "media_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pdf": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_vat_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v2/json/media_partner_groups.json b/_data/taps/schemas/impact/v2/json/media_partner_groups.json
new file mode 100644
index 000000000..e86a077b6
--- /dev/null
+++ b/_data/taps/schemas/impact/v2/json/media_partner_groups.json
@@ -0,0 +1,64 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "media_partners": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "partner_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "partner_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "partner_uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v2/json/media_partners.json b/_data/taps/schemas/impact/v2/json/media_partners.json
new file mode 100644
index 000000000..06c48fb20
--- /dev/null
+++ b/_data/taps/schemas/impact/v2/json/media_partners.json
@@ -0,0 +1,263 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaigns": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "insertion_order_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "insertion_order_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "join_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contact": {
+ "additionalProperties": false,
+ "properties": {
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "groups": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "group_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "mp_value1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mp_value2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mp_value3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "partner_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "primary_promotional_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promoting_countries": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promotional_methods": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rating": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "relationship_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v2/json/notes.json b/_data/taps/schemas/impact/v2/json/notes.json
new file mode 100644
index 000000000..41af2b0f0
--- /dev/null
+++ b/_data/taps/schemas/impact/v2/json/notes.json
@@ -0,0 +1,82 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "attachments": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "content": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "media_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "media_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modification_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v2/json/phone_numbers.json b/_data/taps/schemas/impact/v2/json/phone_numbers.json
new file mode 100644
index 000000000..25213fcd3
--- /dev/null
+++ b/_data/taps/schemas/impact/v2/json/phone_numbers.json
@@ -0,0 +1,54 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "international_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_date_assigned": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_date_released": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v2/json/promo_codes.json b/_data/taps/schemas/impact/v2/json/promo_codes.json
new file mode 100644
index 000000000..8dca22f7d
--- /dev/null
+++ b/_data/taps/schemas/impact/v2/json/promo_codes.json
@@ -0,0 +1,397 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "assigned_partner_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "assigned_partner_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_discount_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "bogo_get_discount_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_discount_percent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "bogo_get_discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "credit_policy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_categories": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_default_promo_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deal_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_products": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "product_after_price_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "product_after_price_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_before_price_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "product_before_price_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deal_restricted_media_partner_groups": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deal_restricted_media_partners": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deal_scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deal_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "discount_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_maximum_percent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_percent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_percent_range_end": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_percent_range_start": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "gift": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "maximum_savings_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "maximum_savings_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "minimum_purchase_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "minimum_purchase_amount_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "purchase_limit_quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rebate_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "rebate_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "synch_ads_promo_codes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v2/json/report_metadata.json b/_data/taps/schemas/impact/v2/json/report_metadata.json
new file mode 100644
index 000000000..953742a2b
--- /dev/null
+++ b/_data/taps/schemas/impact/v2/json/report_metadata.json
@@ -0,0 +1,104 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "attributes": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "data_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "filters": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "data_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "run_uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v2/json/reports.json b/_data/taps/schemas/impact/v2/json/reports.json
new file mode 100644
index 000000000..401bae679
--- /dev/null
+++ b/_data/taps/schemas/impact/v2/json/reports.json
@@ -0,0 +1,36 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "meta_data_uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "run_uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v2/json/tracking_value_requests.json b/_data/taps/schemas/impact/v2/json/tracking_value_requests.json
new file mode 100644
index 000000000..42ba6f45d
--- /dev/null
+++ b/_data/taps/schemas/impact/v2/json/tracking_value_requests.json
@@ -0,0 +1,517 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "additional_instructions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_buy_scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_discount_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "bogo_get_discount_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_discount_percent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "bogo_get_discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bogo_get_scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_completed": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_needed": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_placed": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deal_categories": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_default_promo_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deal_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_products": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "product_after_price_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "product_after_price_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_before_price_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "product_before_price_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deal_restricted_media_partner_groups": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deal_restricted_media_partners": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deal_scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deal_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "discount_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_maximum_percent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_percent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_percent_range_end": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_percent_range_start": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gift": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "maximum_savings_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "maximum_savings_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "media_partner_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "media_partner_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "minimum_purchase_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "minimum_purchase_amount_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number_requested": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "phone_numbers": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "assigned_phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_phone_number_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "processing_comments": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promo_codes": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "approved_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "credit_policy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "match_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "requested_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "purchase_limit_quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rebate_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "rebate_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "request_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "synch_ads_promo_codes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unique_urls": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/impact/v2/json/unique_urls.json b/_data/taps/schemas/impact/v2/json/unique_urls.json
new file mode 100644
index 000000000..ae4d739ca
--- /dev/null
+++ b/_data/taps/schemas/impact/v2/json/unique_urls.json
@@ -0,0 +1,78 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_last_assigned": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_last_released": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "landing_page": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "media_partner_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "media_partner_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intacct/v1/intacct-v1-tables.yml b/_data/taps/schemas/intacct/v1/intacct-v1-tables.yml
new file mode 100644
index 000000000..b80e5065e
--- /dev/null
+++ b/_data/taps/schemas/intacct/v1/intacct-v1-tables.yml
@@ -0,0 +1,3 @@
+tap: intacct
+version: '1'
+tables: []
diff --git a/_data/taps/schemas/intercom/v02-02-2016/intercom-v02-02-2016-foreign-keys.yml b/_data/taps/schemas/intercom/v02-02-2016/intercom-v02-02-2016-foreign-keys.yml
new file mode 100644
index 000000000..b71159f47
--- /dev/null
+++ b/_data/taps/schemas/intercom/v02-02-2016/intercom-v02-02-2016-foreign-keys.yml
@@ -0,0 +1,305 @@
+tap: intercom
+version: 02-02-2016
+keys:
+ admins_id:
+ - table: admins
+ keys:
+ - id
+ - table: conversations
+ keys:
+ - conversation_parts.assigned_to
+ - assignee.id
+ authors_id:
+ - table: admins
+ keys:
+ - id
+ - table: contacts
+ keys:
+ - id
+ - table: users
+ keys:
+ - id
+ - table: conversations
+ keys:
+ - conversation_parts.author.id
+ companies_id:
+ - table: companies
+ keys:
+ - id
+ - table: contacts
+ keys:
+ - companies.id
+ - table: users
+ keys:
+ - companies.id
+ company_segments_id:
+ - table: company_segments
+ keys:
+ - id
+ - table: contacts
+ keys:
+ - segments.id
+ contacts_id:
+ - table: contacts
+ keys:
+ - id
+ - table: conversations
+ keys:
+ - user.id
+ conversations_id:
+ - table: conversations
+ keys:
+ - id
+ segments_id:
+ - table: companies
+ keys:
+ - segments.segments.id
+ - table: contacts
+ keys:
+ - segments.segments.id
+ - table: segments
+ keys:
+ - id
+ - table: users
+ keys:
+ - segments.segments.id
+ tags_id:
+ - table: companies
+ keys:
+ - tags.tags.id
+ - table: contacts
+ keys:
+ - tags.tags.id
+ - table: conversations
+ keys:
+ - tags.tags.id
+ - table: tags
+ keys:
+ - id
+ - table: users
+ keys:
+ - tags.tags.id
+ users_id:
+ - table: users
+ keys:
+ - id
+ - table: contacts
+ keys:
+ - id
+ - table: conversations
+ keys:
+ - user.id
+ - customers.id
+tables:
+- table-name: admins
+ join:
+ - table-name: conversations
+ keys:
+ - key: id
+ foreign-key: conversation_parts.assigned_to
+ - key: id
+ foreign-key: assignee.id
+ - key: id
+ foreign-key: conversation_parts.author.id
+ - table-name: contacts
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: users
+ keys:
+ - key: id
+ foreign-key: id
+- table-name: conversations
+ join:
+ - table-name: admins
+ keys:
+ - key: conversation_parts.assigned_to
+ foreign-key: id
+ - key: assignee.id
+ foreign-key: id
+ - key: conversation_parts.author.id
+ foreign-key: id
+ - table-name: contacts
+ keys:
+ - key: conversation_parts.author.id
+ foreign-key: id
+ - key: user.id
+ foreign-key: id
+ - key: tags.tags.id
+ foreign-key: tags.tags.id
+ - key: customers.id
+ foreign-key: id
+ - table-name: users
+ keys:
+ - key: conversation_parts.author.id
+ foreign-key: id
+ - key: tags.tags.id
+ foreign-key: tags.tags.id
+ - key: user.id
+ foreign-key: id
+ - key: customers.id
+ foreign-key: id
+ - table-name: companies
+ keys:
+ - key: tags.tags.id
+ foreign-key: tags.tags.id
+ - table-name: tags
+ keys:
+ - key: tags.tags.id
+ foreign-key: id
+- table-name: contacts
+ join:
+ - table-name: admins
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: users
+ keys:
+ - key: id
+ foreign-key: id
+ - key: companies.id
+ foreign-key: companies.id
+ - key: segments.segments.id
+ foreign-key: segments.segments.id
+ - key: tags.tags.id
+ foreign-key: tags.tags.id
+ - table-name: conversations
+ keys:
+ - key: id
+ foreign-key: conversation_parts.author.id
+ - key: id
+ foreign-key: user.id
+ - key: tags.tags.id
+ foreign-key: tags.tags.id
+ - key: id
+ foreign-key: customers.id
+ - table-name: companies
+ keys:
+ - key: companies.id
+ foreign-key: id
+ - key: segments.segments.id
+ foreign-key: segments.segments.id
+ - key: tags.tags.id
+ foreign-key: tags.tags.id
+ - table-name: company_segments
+ keys:
+ - key: segments.id
+ foreign-key: id
+ - table-name: segments
+ keys:
+ - key: segments.segments.id
+ foreign-key: id
+ - table-name: tags
+ keys:
+ - key: tags.tags.id
+ foreign-key: id
+- table-name: users
+ join:
+ - table-name: admins
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: contacts
+ keys:
+ - key: id
+ foreign-key: id
+ - key: companies.id
+ foreign-key: companies.id
+ - key: segments.segments.id
+ foreign-key: segments.segments.id
+ - key: tags.tags.id
+ foreign-key: tags.tags.id
+ - table-name: conversations
+ keys:
+ - key: id
+ foreign-key: conversation_parts.author.id
+ - key: tags.tags.id
+ foreign-key: tags.tags.id
+ - key: id
+ foreign-key: user.id
+ - key: id
+ foreign-key: customers.id
+ - table-name: companies
+ keys:
+ - key: companies.id
+ foreign-key: id
+ - key: segments.segments.id
+ foreign-key: segments.segments.id
+ - key: tags.tags.id
+ foreign-key: tags.tags.id
+ - table-name: segments
+ keys:
+ - key: segments.segments.id
+ foreign-key: id
+ - table-name: tags
+ keys:
+ - key: tags.tags.id
+ foreign-key: id
+- table-name: companies
+ join:
+ - table-name: contacts
+ keys:
+ - key: id
+ foreign-key: companies.id
+ - key: segments.segments.id
+ foreign-key: segments.segments.id
+ - key: tags.tags.id
+ foreign-key: tags.tags.id
+ - table-name: users
+ keys:
+ - key: id
+ foreign-key: companies.id
+ - key: segments.segments.id
+ foreign-key: segments.segments.id
+ - key: tags.tags.id
+ foreign-key: tags.tags.id
+ - table-name: segments
+ keys:
+ - key: segments.segments.id
+ foreign-key: id
+ - table-name: conversations
+ keys:
+ - key: tags.tags.id
+ foreign-key: tags.tags.id
+ - table-name: tags
+ keys:
+ - key: tags.tags.id
+ foreign-key: id
+- table-name: company_segments
+ join:
+ - table-name: contacts
+ keys:
+ - key: id
+ foreign-key: segments.id
+- table-name: segments
+ join:
+ - table-name: companies
+ keys:
+ - key: id
+ foreign-key: segments.segments.id
+ - table-name: contacts
+ keys:
+ - key: id
+ foreign-key: segments.segments.id
+ - table-name: users
+ keys:
+ - key: id
+ foreign-key: segments.segments.id
+- table-name: tags
+ join:
+ - table-name: companies
+ keys:
+ - key: id
+ foreign-key: tags.tags.id
+ - table-name: contacts
+ keys:
+ - key: id
+ foreign-key: tags.tags.id
+ - table-name: conversations
+ keys:
+ - key: id
+ foreign-key: tags.tags.id
+ - table-name: users
+ keys:
+ - key: id
+ foreign-key: tags.tags.id
diff --git a/_data/taps/schemas/intercom/v02-02-2016/intercom-v02-02-2016-tables.yml b/_data/taps/schemas/intercom/v02-02-2016/intercom-v02-02-2016-tables.yml
new file mode 100644
index 000000000..f6fe24449
--- /dev/null
+++ b/_data/taps/schemas/intercom/v02-02-2016/intercom-v02-02-2016-tables.yml
@@ -0,0 +1,134 @@
+tap: intercom
+version: 02-02-2016
+tables:
+- name: admins
+ description: 'The `{{ table.name }}` table contains info about the admins and teams
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.intercom.io/docs/admins
+ api-method: https://developers.intercom.io/docs/list-admins
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: companies
+ description: 'The `{{ table.name }}` table contains info about the companies (or
+ commercial organizations) that use your {{ integration.display_name }} product.
+
+
+ #### Custom Attributes
+
+
+ If applicable, Stitch will replicate custom fields related to `{{ table.name }}`
+ in Intercom.
+
+ '
+ links:
+ doc-link: https://developers.intercom.com/reference#companies
+ api-method: https://developers.intercom.com/reference#iterating-over-all-companies
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: company_segments
+ description: 'The `{{ table.name }}` table contains info about company segments.
+ A segment is a group of users that are defined by a set of rules.
+
+ '
+ links:
+ doc-link: https://developers.intercom.io/docs/companies
+ api-method: https://developers.intercom.io/docs/list-segments
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: contacts
+ description: 'The `{{ table.name }}` table contains info about the logged-out users,
+ or leads, of your {{ integration.display_name }} app.
+
+
+ **Note**: `contacts` is equivalent to the `leads` object in {{ integration.display_name
+ }}''s API. See [{{ integration.display_name }}''s documentation](https://developers.intercom.com/reference#leads){:target="new"}
+ for more info.
+
+
+ #### Custom Attributes
+
+
+ If applicable, Stitch will replicate custom fields related to `contacts` (leads)
+ in {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developers.intercom.com/reference#leads
+ api-method: https://developers.intercom.com/reference#list-leads
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: conversations
+ description: 'The `{{ table.name }}` table contains info about user conversations,
+ or conversations initiated by your end-users.
+
+
+ #### Conversation Parts
+
+ To reconstruct an entire conversation, use the `conversation_parts` associated
+ with the conversation. These are the individual elements - actions, messages,
+ and so on - that make up a conversation.
+
+
+ If your destination doesn''t natively support nested data structures, a subtable
+ named `conversations__conversation_parts` will be created. More info on this table
+ can be found below.
+
+ '
+ links:
+ doc-link: https://developers.intercom.com/reference#conversations
+ api-method: https://developers.intercom.io/docs/list-conversations
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: segments
+ description: 'The `{{ table.name }}` table contains info about the segments - or
+ groups of users defined by a set of rules - in your {{ integration.display_name
+ }} account.
+
+ '
+ links:
+ doc-link: https://developers.intercom.com/reference#segments
+ api-method: https://developers.intercom.io/docs/list-segments
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: tags
+ description: 'The `{{ table.name }}` table contains info about the tags in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.intercom.io/docs/tags
+ api-method: https://developers.intercom.io/docs/list-tags
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: users
+ description: 'The `{{ table.name }}` table contains info about the users in your
+ {{ integration.display_name }} account.
+
+
+ #### Custom Attributes
+
+
+ If applicable, Stitch will replicate custom fields related to `users` in {{ integration.display_name
+ }}.
+
+ '
+ links:
+ doc-link: https://developers.intercom.io/docs/users
+ api-method: https://developers.intercom.com/intercom-api-reference/reference#list-users
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
diff --git a/_data/taps/schemas/intercom/v02-02-2016/json/admins.json b/_data/taps/schemas/intercom/v02-02-2016/json/admins.json
new file mode 100644
index 000000000..54908e117
--- /dev/null
+++ b/_data/taps/schemas/intercom/v02-02-2016/json/admins.json
@@ -0,0 +1,46 @@
+{
+ "properties": {
+ "away_mode_enabled": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "away_mode_reassign": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "team_ids": {
+ "properties": {
+ "value": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intercom/v02-02-2016/json/companies.json b/_data/taps/schemas/intercom/v02-02-2016/json/companies.json
new file mode 100644
index 000000000..9d4528c90
--- /dev/null
+++ b/_data/taps/schemas/intercom/v02-02-2016/json/companies.json
@@ -0,0 +1,112 @@
+{
+ "properties": {
+ "company_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "custom_attributes": {
+ "type": [
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "monthly_spend": {
+ "type": [
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "plan": {
+ "type": [
+ "string"
+ ]
+ },
+ "remote_created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "segments": {
+ "properties": {
+ "segments": {
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "session_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "tags": {
+ "properties": {
+ "tags": {
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "user_count": {
+ "type": [
+ "number"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intercom/v02-02-2016/json/company_segments.json b/_data/taps/schemas/intercom/v02-02-2016/json/company_segments.json
new file mode 100644
index 000000000..1c4d93aeb
--- /dev/null
+++ b/_data/taps/schemas/intercom/v02-02-2016/json/company_segments.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "person_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intercom/v02-02-2016/json/contacts.json b/_data/taps/schemas/intercom/v02-02-2016/json/contacts.json
new file mode 100644
index 000000000..4c8d3a048
--- /dev/null
+++ b/_data/taps/schemas/intercom/v02-02-2016/json/contacts.json
@@ -0,0 +1,259 @@
+{
+ "properties": {
+ "avatar": {
+ "properties": {
+ "image_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "companies": {
+ "properties": {
+ "companies": {
+ "properties": {
+ "company_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_request_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "last_seen_ip": {
+ "type": [
+ "string"
+ ]
+ },
+ "location_data": {
+ "properties": {
+ "city_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "continent_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "country_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "integer"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "integer"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "region_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "timezone": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "segments": {
+ "properties": {
+ "segments": {
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "social_profiles": {
+ "properties": {
+ "social_profiles": {
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ },
+ "username": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "tags": {
+ "properties": {
+ "tags": {
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "unsubscribed_from_emails": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "user_agent_data": {
+ "type": [
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intercom/v02-02-2016/json/conversations.json b/_data/taps/schemas/intercom/v02-02-2016/json/conversations.json
new file mode 100644
index 000000000..224c4d7c9
--- /dev/null
+++ b/_data/taps/schemas/intercom/v02-02-2016/json/conversations.json
@@ -0,0 +1,311 @@
+{
+ "properties": {
+ "assignee": {
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "conversation_message": {
+ "properties": {
+ "attachments": {
+ "properties": {
+ "content_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "filesize": {
+ "type": [
+ "integer"
+ ]
+ },
+ "height": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ },
+ "width": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "author": {
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "body": {
+ "type": [
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "conversation_parts": {
+ "properties": {
+ "assigned_to": {
+ "type": [
+ "string"
+ ]
+ },
+ "attachments": {
+ "properties": {
+ "content_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "filesize": {
+ "type": [
+ "integer"
+ ]
+ },
+ "height": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ },
+ "width": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "author": {
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "body": {
+ "type": [
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "part_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "customers": {
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "open": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "read": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "snoozed_until": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "tags": {
+ "properties": {
+ "tags": {
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "total_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "user": {
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "waiting_since": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intercom/v02-02-2016/json/segments.json b/_data/taps/schemas/intercom/v02-02-2016/json/segments.json
new file mode 100644
index 000000000..1c4d93aeb
--- /dev/null
+++ b/_data/taps/schemas/intercom/v02-02-2016/json/segments.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "person_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intercom/v02-02-2016/json/tags.json b/_data/taps/schemas/intercom/v02-02-2016/json/tags.json
new file mode 100644
index 000000000..d0f753bf9
--- /dev/null
+++ b/_data/taps/schemas/intercom/v02-02-2016/json/tags.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intercom/v02-02-2016/json/users.json b/_data/taps/schemas/intercom/v02-02-2016/json/users.json
new file mode 100644
index 000000000..ac81ac4be
--- /dev/null
+++ b/_data/taps/schemas/intercom/v02-02-2016/json/users.json
@@ -0,0 +1,279 @@
+{
+ "properties": {
+ "anonymous": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "avatar": {
+ "properties": {
+ "image_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "companies": {
+ "properties": {
+ "companies": {
+ "properties": {
+ "company_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_request_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "last_seen_ip": {
+ "type": [
+ "string"
+ ]
+ },
+ "location_data": {
+ "properties": {
+ "city_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "continent_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "country_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "integer"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "integer"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "region_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "timezone": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "pseudonym": {
+ "type": [
+ "string"
+ ]
+ },
+ "segments": {
+ "properties": {
+ "segments": {
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "session_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "signed_up_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "social_profiles": {
+ "properties": {
+ "social_profiles": {
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ },
+ "username": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "tags": {
+ "properties": {
+ "tags": {
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "unsubscribed_from_emails": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "user_agent_data": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intercom/v1/intercom-v1-foreign-keys.yml b/_data/taps/schemas/intercom/v1/intercom-v1-foreign-keys.yml
new file mode 100644
index 000000000..6804f422c
--- /dev/null
+++ b/_data/taps/schemas/intercom/v1/intercom-v1-foreign-keys.yml
@@ -0,0 +1,394 @@
+tap: intercom
+version: '1'
+keys:
+ admins_admin_id:
+ - table: admins
+ keys:
+ - id
+ - table: company_attributes
+ keys:
+ - admin_id
+ - table: contact_attributes
+ keys:
+ - admin_id
+ - table: contacts
+ keys:
+ - owner_id
+ - table: conversation_parts
+ keys:
+ - assigned_to
+ - table: conversations
+ keys:
+ - conversation_rating.teammate.id
+ - tags.applied_by.id
+ - teammates.admins.id
+ - table: teams
+ keys:
+ - admin_ids
+ companies_id:
+ - table: companies
+ keys:
+ - id
+ - table: contacts
+ keys:
+ - companies.data.id
+ company_segments_id:
+ - table: company_segments
+ keys:
+ - id
+ conversations_id:
+ - table: conversations
+ keys:
+ - id
+ - table: conversation_parts
+ keys:
+ - conversation_id
+ contacts_id:
+ - table: contacts
+ keys:
+ - id
+ - table: conversations
+ keys:
+ - conversation_rating.customer.id
+ - customers.id
+ - contacts.id
+ segment_id:
+ - table: companies
+ keys:
+ - segments.id
+ - table: segments
+ keys:
+ - id
+ tags_id:
+ - table: contacts
+ keys:
+ - tags.data.id
+ - table: conversations
+ keys:
+ - tags.id
+ - table: companies
+ keys:
+ - tags.id
+ - table: tags
+ keys:
+ - id
+ teams_id:
+ - table: admins
+ keys:
+ - team_ids
+ - table: teams
+ keys:
+ - id
+tables:
+- table-name: admins
+ join:
+ - table-name: company_attributes
+ keys:
+ - key: id
+ foreign-key: admin_id
+ - table-name: contact_attributes
+ keys:
+ - key: id
+ foreign-key: admin_id
+ - table-name: contacts
+ keys:
+ - key: id
+ foreign-key: owner_id
+ - table-name: conversation_parts
+ keys:
+ - key: id
+ foreign-key: assigned_to
+ - table-name: conversations
+ keys:
+ - key: id
+ foreign-key: conversation_rating.teammate.id
+ - key: id
+ foreign-key: tags.applied_by.id
+ - key: id
+ foreign-key: teammates.admins.id
+ - table-name: teams
+ keys:
+ - key: id
+ foreign-key: admin_ids
+ - key: team_ids
+ foreign-key: id
+- table-name: company_attributes
+ join:
+ - table-name: admins
+ keys:
+ - key: admin_id
+ foreign-key: id
+ - table-name: contact_attributes
+ keys:
+ - key: admin_id
+ foreign-key: admin_id
+ - table-name: contacts
+ keys:
+ - key: admin_id
+ foreign-key: owner_id
+ - table-name: conversation_parts
+ keys:
+ - key: admin_id
+ foreign-key: assigned_to
+ - table-name: conversations
+ keys:
+ - key: admin_id
+ foreign-key: conversation_rating.teammate.id
+ - key: admin_id
+ foreign-key: tags.applied_by.id
+ - key: admin_id
+ foreign-key: teammates.admins.id
+ - table-name: teams
+ keys:
+ - key: admin_id
+ foreign-key: admin_ids
+- table-name: contact_attributes
+ join:
+ - table-name: admins
+ keys:
+ - key: admin_id
+ foreign-key: id
+ - table-name: company_attributes
+ keys:
+ - key: admin_id
+ foreign-key: admin_id
+ - table-name: contacts
+ keys:
+ - key: admin_id
+ foreign-key: owner_id
+ - table-name: conversation_parts
+ keys:
+ - key: admin_id
+ foreign-key: assigned_to
+ - table-name: conversations
+ keys:
+ - key: admin_id
+ foreign-key: conversation_rating.teammate.id
+ - key: admin_id
+ foreign-key: tags.applied_by.id
+ - key: admin_id
+ foreign-key: teammates.admins.id
+ - table-name: teams
+ keys:
+ - key: admin_id
+ foreign-key: admin_ids
+- table-name: contacts
+ join:
+ - table-name: admins
+ keys:
+ - key: owner_id
+ foreign-key: id
+ - table-name: company_attributes
+ keys:
+ - key: owner_id
+ foreign-key: admin_id
+ - table-name: contact_attributes
+ keys:
+ - key: owner_id
+ foreign-key: admin_id
+ - table-name: conversation_parts
+ keys:
+ - key: owner_id
+ foreign-key: assigned_to
+ - table-name: conversations
+ keys:
+ - key: owner_id
+ foreign-key: conversation_rating.teammate.id
+ - key: owner_id
+ foreign-key: tags.applied_by.id
+ - key: owner_id
+ foreign-key: teammates.admins.id
+ - key: id
+ foreign-key: conversation_rating.customer.id
+ - key: id
+ foreign-key: customers.id
+ - key: id
+ foreign-key: contacts.id
+ - key: tags.data.id
+ foreign-key: tags.id
+ - table-name: teams
+ keys:
+ - key: owner_id
+ foreign-key: admin_ids
+ - table-name: companies
+ keys:
+ - key: companies.data.id
+ foreign-key: id
+ - key: tags.data.id
+ foreign-key: tags.id
+ - table-name: tags
+ keys:
+ - key: tags.data.id
+ foreign-key: id
+- table-name: conversation_parts
+ join:
+ - table-name: admins
+ keys:
+ - key: assigned_to
+ foreign-key: id
+ - table-name: company_attributes
+ keys:
+ - key: assigned_to
+ foreign-key: admin_id
+ - table-name: contact_attributes
+ keys:
+ - key: assigned_to
+ foreign-key: admin_id
+ - table-name: contacts
+ keys:
+ - key: assigned_to
+ foreign-key: owner_id
+ - table-name: conversations
+ keys:
+ - key: assigned_to
+ foreign-key: conversation_rating.teammate.id
+ - key: assigned_to
+ foreign-key: tags.applied_by.id
+ - key: assigned_to
+ foreign-key: teammates.admins.id
+ - key: conversation_id
+ foreign-key: id
+ - table-name: teams
+ keys:
+ - key: assigned_to
+ foreign-key: admin_ids
+- table-name: conversations
+ join:
+ - table-name: admins
+ keys:
+ - key: conversation_rating.teammate.id
+ foreign-key: id
+ - key: tags.applied_by.id
+ foreign-key: id
+ - key: teammates.admins.id
+ foreign-key: id
+ - table-name: company_attributes
+ keys:
+ - key: conversation_rating.teammate.id
+ foreign-key: admin_id
+ - key: tags.applied_by.id
+ foreign-key: admin_id
+ - key: teammates.admins.id
+ foreign-key: admin_id
+ - table-name: contact_attributes
+ keys:
+ - key: conversation_rating.teammate.id
+ foreign-key: admin_id
+ - key: tags.applied_by.id
+ foreign-key: admin_id
+ - key: teammates.admins.id
+ foreign-key: admin_id
+ - table-name: contacts
+ keys:
+ - key: conversation_rating.teammate.id
+ foreign-key: owner_id
+ - key: tags.applied_by.id
+ foreign-key: owner_id
+ - key: teammates.admins.id
+ foreign-key: owner_id
+ - key: conversation_rating.customer.id
+ foreign-key: id
+ - key: customers.id
+ foreign-key: id
+ - key: contacts.id
+ foreign-key: id
+ - key: tags.id
+ foreign-key: tags.data.id
+ - table-name: conversation_parts
+ keys:
+ - key: conversation_rating.teammate.id
+ foreign-key: assigned_to
+ - key: tags.applied_by.id
+ foreign-key: assigned_to
+ - key: teammates.admins.id
+ foreign-key: assigned_to
+ - key: id
+ foreign-key: conversation_id
+ - table-name: teams
+ keys:
+ - key: conversation_rating.teammate.id
+ foreign-key: admin_ids
+ - key: tags.applied_by.id
+ foreign-key: admin_ids
+ - key: teammates.admins.id
+ foreign-key: admin_ids
+ - table-name: companies
+ keys:
+ - key: tags.id
+ foreign-key: tags.id
+ - table-name: tags
+ keys:
+ - key: tags.id
+ foreign-key: id
+- table-name: teams
+ join:
+ - table-name: admins
+ keys:
+ - key: admin_ids
+ foreign-key: id
+ - key: id
+ foreign-key: team_ids
+ - table-name: company_attributes
+ keys:
+ - key: admin_ids
+ foreign-key: admin_id
+ - table-name: contact_attributes
+ keys:
+ - key: admin_ids
+ foreign-key: admin_id
+ - table-name: contacts
+ keys:
+ - key: admin_ids
+ foreign-key: owner_id
+ - table-name: conversation_parts
+ keys:
+ - key: admin_ids
+ foreign-key: assigned_to
+ - table-name: conversations
+ keys:
+ - key: admin_ids
+ foreign-key: conversation_rating.teammate.id
+ - key: admin_ids
+ foreign-key: tags.applied_by.id
+ - key: admin_ids
+ foreign-key: teammates.admins.id
+- table-name: companies
+ join:
+ - table-name: contacts
+ keys:
+ - key: id
+ foreign-key: companies.data.id
+ - key: tags.id
+ foreign-key: tags.data.id
+ - table-name: segments
+ keys:
+ - key: segments.id
+ foreign-key: id
+ - table-name: conversations
+ keys:
+ - key: tags.id
+ foreign-key: tags.id
+ - table-name: tags
+ keys:
+ - key: tags.id
+ foreign-key: id
+- table-name: segments
+ join:
+ - table-name: companies
+ keys:
+ - key: id
+ foreign-key: segments.id
+- table-name: tags
+ join:
+ - table-name: contacts
+ keys:
+ - key: id
+ foreign-key: tags.data.id
+ - table-name: conversations
+ keys:
+ - key: id
+ foreign-key: tags.id
+ - table-name: companies
+ keys:
+ - key: id
+ foreign-key: tags.id
diff --git a/_data/taps/schemas/intercom/v1/intercom-v1-tables.yml b/_data/taps/schemas/intercom/v1/intercom-v1-tables.yml
new file mode 100644
index 000000000..07b01ff41
--- /dev/null
+++ b/_data/taps/schemas/intercom/v1/intercom-v1-tables.yml
@@ -0,0 +1,183 @@
+tap: intercom
+version: '1'
+tables:
+- name: admins
+ description: 'The `{{ table.name }}` table lists info about the admins in your {{
+ integration.display_name }} account. An admin is a user, or teammate, in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.intercom.com/intercom-api-reference/reference#admin-model
+ singer-schema: https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/admins.json
+ api-method: https://developers.intercom.com/intercom-api-reference/reference#list-admins
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: companies
+ description: 'The `{{ table.name }}` table contains info about companies that use
+ your {{ integration.display_name }} product.
+
+
+ #### Custom attributes {#company-custom-attributes}
+
+
+ If applicable, Stitch will replicate custom fields related to `{{ table.name }}`
+ in {{ integration.display_name }}.
+
+
+ #### Limitations {#company-limitations}
+
+
+ [{{ integration.display_name }}''s API limits the number of simultaneous requests]({{
+ table.api-method.doc-link }}){:target="new"} a single {{ integration.display_name
+ }} app, or connection, can make to the {{ table.api-method.name }} endpoint. Stitch
+ uses this endpoint to replicate company data. Currently, only one request can
+ occur at a time.
+
+
+ If multiple connections exist and they attempt to use this endpoint at the same
+ time, only the connection who made the request first will succeed.
+
+
+ This means that if Stitch attempts to extract data when another connection is
+ using the endpoint, Extraction will fail and an [error](TODO) will surface in
+ the Extraction Logs.
+
+
+ To prevent or minimize this issue, we recommend limiting the number of connections
+ a single workspace has or scheduling extraction jobs in Stitch around your other
+ connections'' usage.
+
+ '
+ links:
+ doc-link: https://developers.intercom.com/intercom-api-reference/v2.0/reference#company-model
+ singer-schema: https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/companies.json
+ api-method: https://developers.intercom.com/intercom-api-reference/v2.0/reference#iterating-over-all-companies
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: company_attributes
+ description: 'The `{{ table.name }}` lists data attributes for a specified company
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.intercom.com/intercom-api-reference/v2.0/reference#data-attribute-model
+ singer-schema: https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/company_attributes.json
+ api-method: https://developers.intercom.com/intercom-api-reference/v2.0/reference#list-data-attributes
+ table-details:
+ replication-method: Full Table
+ primary-key: name
+- name: company_segments
+ description: 'The `{{ table.name }}` table contains information about company segments
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.intercom.com/intercom-api-reference/v2.0/reference#company-model
+ singer-schema: https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/company_segments.json
+ api-method: https://developers.intercom.com/intercom-api-reference/v2.0/reference#list-segments
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: contacts
+ description: 'The `{{ table.name }}` table contains info about users and leads in
+ your {{ integration.display_name }} account.
+
+
+ #### Custom attributes
+
+
+ If applicable, Stitch will replicate custom fields related to `{{ table.name }}`
+ in {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developers.intercom.com/intercom-api-reference/v2.0/reference#contacts-model
+ singer-schema: https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/contacts.json
+ api-method: https://developers.intercom.com/intercom-api-reference/v2.0/reference#list-contacts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: contact_attributes
+ description: 'The `{{ table.name }}` table contains information about contact attributes
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.intercom.com/intercom-api-reference/v2.0/reference#data-attribute-model
+ singer-schema: https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/contact_attributes.json
+ api-method: https://developers.intercom.com/intercom-api-reference/v2.0/reference#list-data-attributes
+ table-details:
+ replication-method: Full Table
+ primary-key: name
+- name: conversations
+ description: 'The `{{ table.name }}` table contains info about user conversations
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.intercom.com/intercom-api-reference/v2.0/reference#conversation-model
+ singer-schema: https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/conversations.json
+ api-method: https://developers.intercom.com/intercom-api-reference/v2.0/reference#list-conversations
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: conversation_parts
+ description: 'The `{{ table.name }}` table lists the individual parts of conversations
+ in your {{ integration.display_name }} account.
+
+
+ **Note**: When this table is replicated, all conversation parts associated with
+ an updated conversation will be replicated.
+
+ '
+ links:
+ doc-link: https://developers.intercom.com/intercom-api-reference/v2.0/reference#conversation-model
+ singer-schema: https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/conversation_parts.json
+ api-method: https://developers.intercom.com/intercom-api-reference/v2.0/reference#retrieve-a-conversation
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: segments
+ description: The `{{ table.name }}` table contains information about segments within
+ your {{ integration.display_name }} account.
+ links:
+ doc-link: https://developers.intercom.com/intercom-api-reference/v2.0/reference#segment-model
+ singer-schema: https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/segments.json
+ api-method: https://developers.intercom.com/intercom-api-reference/v2.0/reference#list-segments
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: tags
+ description: 'The `{{ table.name }}` table contains information about tags within
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.intercom.com/intercom-api-reference/reference#tag-model
+ singer-schema: https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/tags.json
+ api-method: https://developers.intercom.com/intercom-api-reference/reference#list-tags-for-an-app
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: teams
+ description: 'The `{{ table.name }}` table contains information about teams in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.intercom.com/intercom-api-reference/reference#teams-model
+ singer-schema: https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/teams.json
+ api-method: https://developers.intercom.com/intercom-api-reference/reference#list-teams
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/intercom/v1/json/admins.json b/_data/taps/schemas/intercom/v1/json/admins.json
new file mode 100644
index 000000000..589cb7497
--- /dev/null
+++ b/_data/taps/schemas/intercom/v1/json/admins.json
@@ -0,0 +1,95 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "admin_ids": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "avatar": {
+ "additionalProperties": false,
+ "properties": {
+ "image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "away_mode_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "away_mode_reassign": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_inbox_seat": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "job_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "team_ids": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intercom/v1/json/companies.json b/_data/taps/schemas/intercom/v1/json/companies.json
new file mode 100644
index 000000000..1873486b0
--- /dev/null
+++ b/_data/taps/schemas/intercom/v1/json/companies.json
@@ -0,0 +1,169 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "company_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_attributes": {
+ "additionalProperties": true,
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "industry": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "monthly_spend": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "remote_created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "segments": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "session_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tags": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intercom/v1/json/company_attributes.json b/_data/taps/schemas/intercom/v1/json/company_attributes.json
new file mode 100644
index 000000000..c4443deb6
--- /dev/null
+++ b/_data/taps/schemas/intercom/v1/json/company_attributes.json
@@ -0,0 +1,103 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "admin_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "api_writable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "data_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "options": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ui_writable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intercom/v1/json/company_segments.json b/_data/taps/schemas/intercom/v1/json/company_segments.json
new file mode 100644
index 000000000..f48e9f3ec
--- /dev/null
+++ b/_data/taps/schemas/intercom/v1/json/company_segments.json
@@ -0,0 +1,42 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intercom/v1/json/contact_attributes.json b/_data/taps/schemas/intercom/v1/json/contact_attributes.json
new file mode 100644
index 000000000..0ae1a22a4
--- /dev/null
+++ b/_data/taps/schemas/intercom/v1/json/contact_attributes.json
@@ -0,0 +1,105 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "admin_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "api_writable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "data_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "options": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ui_writable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intercom/v1/json/contacts.json b/_data/taps/schemas/intercom/v1/json/contacts.json
new file mode 100644
index 000000000..110f2e187
--- /dev/null
+++ b/_data/taps/schemas/intercom/v1/json/contacts.json
@@ -0,0 +1,524 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "android_app_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "android_app_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "android_device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "android_last_seen_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "android_os_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "android_sdk_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avatar": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "browser": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "browser_language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "browser_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "companies": {
+ "additionalProperties": false,
+ "properties": {
+ "data": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "has_more": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "total_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_attributes": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_hard_bounced": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ios_app_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ios_app_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ios_device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ios_last_seen_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ios_os_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ios_sdk_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "language_override": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_contacted_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_email_clicked_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_email_opened_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_replied_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_seen_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "location": {
+ "additionalProperties": false,
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "marked_email_as_spam": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "additionalProperties": false,
+ "properties": {
+ "data": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "has_more": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "total_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "os": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "signed_up_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "social_profiles": {
+ "additionalProperties": false,
+ "properties": {
+ "data": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tags": {
+ "additionalProperties": false,
+ "properties": {
+ "data": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "has_more": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "total_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unsubscribed_from_emails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "workspace_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intercom/v1/json/conversation_parts.json b/_data/taps/schemas/intercom/v1/json/conversation_parts.json
new file mode 100644
index 000000000..8d60c25e3
--- /dev/null
+++ b/_data/taps/schemas/intercom/v1/json/conversation_parts.json
@@ -0,0 +1,175 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "assigned_to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "attachments": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "content_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "filesize": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "author": {
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversation_created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "conversation_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversation_total_parts": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversation_updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notified_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "part_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intercom/v1/json/conversations.json b/_data/taps/schemas/intercom/v1/json/conversations.json
new file mode 100644
index 000000000..26ec848a9
--- /dev/null
+++ b/_data/taps/schemas/intercom/v1/json/conversations.json
@@ -0,0 +1,779 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "assignee": {
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "contacts": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "conversation_message": {
+ "additionalProperties": false,
+ "properties": {
+ "attachments": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "content_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "filesize": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "author": {
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delivered_as": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "conversation_rating": {
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "rating": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "remark": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "teammate": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer_first_reply": {
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customers": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "first_contact_reply": {
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "open": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "priority": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "read": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "sent_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "sla_applied": {
+ "properties": {
+ "sla_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sla_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "snoozed_until": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "source": {
+ "additionalProperties": false,
+ "properties": {
+ "attachments": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "author": {
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delivered_as": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statistics": {
+ "properties": {
+ "count_assignments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "count_conversation_parts": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "count_reopens": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "first_admin_reply_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "first_assignment_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "first_close_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "first_contact_reply_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_admin_reply_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_assignment_admin_reply_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_assignment_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_close_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_closed_by_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_contact_reply_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "median_time_to_reply": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "time_to_admin_reply": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "time_to_assignment": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "time_to_first_close": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "time_to_last_close": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tags": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "applied_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "applied_by": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "teammates": {
+ "additionalProperties": false,
+ "properties": {
+ "admins": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "waiting_since": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intercom/v1/json/segments.json b/_data/taps/schemas/intercom/v1/json/segments.json
new file mode 100644
index 000000000..f48e9f3ec
--- /dev/null
+++ b/_data/taps/schemas/intercom/v1/json/segments.json
@@ -0,0 +1,42 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intercom/v1/json/tags.json b/_data/taps/schemas/intercom/v1/json/tags.json
new file mode 100644
index 000000000..953c3ef14
--- /dev/null
+++ b/_data/taps/schemas/intercom/v1/json/tags.json
@@ -0,0 +1,24 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intercom/v1/json/teams.json b/_data/taps/schemas/intercom/v1/json/teams.json
new file mode 100644
index 000000000..fca4ed781
--- /dev/null
+++ b/_data/taps/schemas/intercom/v1/json/teams.json
@@ -0,0 +1,37 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "admin_ids": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intercom/v2/intercom-v2-tables.yml b/_data/taps/schemas/intercom/v2/intercom-v2-tables.yml
new file mode 100644
index 000000000..d29917127
--- /dev/null
+++ b/_data/taps/schemas/intercom/v2/intercom-v2-tables.yml
@@ -0,0 +1,183 @@
+tap: intercom
+version: '2'
+tables:
+- name: admins
+ description: 'The `{{ table.name }}` table lists info about the admins in your {{
+ integration.display_name }} account. An admin is a user, or teammate, in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.intercom.com/intercom-api-reference/v2.5/reference/admin-model
+ singer-schema: https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/admins.json
+ api-method: https://developers.intercom.com/intercom-api-reference/v2.5/reference/list-admins
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: companies
+ description: 'The `{{ table.name }}` table contains info about companies that use
+ your {{ integration.display_name }} product.
+
+
+ #### Custom attributes {#company-custom-attributes}
+
+
+ If applicable, Stitch will replicate custom fields related to `{{ table.name }}`
+ in {{ integration.display_name }}.
+
+
+ #### Limitations {#company-limitations}
+
+
+ [{{ integration.display_name }}''s API limits the number of simultaneous requests]({{
+ table.api-method.doc-link }}){:target="new"} a single {{ integration.display_name
+ }} app, or connection, can make to the {{ table.api-method.name }} endpoint. Stitch
+ uses this endpoint to replicate company data. Currently, only one request can
+ occur at a time.
+
+
+ If multiple connections exist and they attempt to use this endpoint at the same
+ time, only the connection who made the request first will succeed.
+
+
+ This means that if Stitch attempts to extract data when another connection is
+ using the endpoint, Extraction will fail and an [error](TODO) will surface in
+ the Extraction Logs.
+
+
+ To prevent or minimize this issue, we recommend limiting the number of connections
+ a single workspace has or scheduling extraction jobs in Stitch around your other
+ connections'' usage.
+
+ '
+ links:
+ doc-link: https://developers.intercom.com/intercom-api-reference/v2.5/reference/company-model
+ singer-schema: https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/companies.json
+ api-method: https://developers.intercom.com/intercom-api-reference/v2.5/reference/iterating-over-all-companies
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: company_attributes
+ description: 'The `{{ table.name }}` lists data attributes for a specified company
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.intercom.com/intercom-api-reference/v2.5/reference/data-attribute-model
+ singer-schema: https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/company_attributes.json
+ api-method: https://developers.intercom.com/intercom-api-reference/v2.5/reference/list-data-attributes
+ table-details:
+ replication-method: Full Table
+ primary-key: _sdc_record_hash
+- name: company_segments
+ description: 'The `{{ table.name }}` table contains information about company segments
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.intercom.com/intercom-api-reference/v2.5/reference/segment-model
+ singer-schema: https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/company_segments.json
+ api-method: https://developers.intercom.com/intercom-api-reference/v2.5/reference/list-segments
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: contacts
+ description: 'The `{{ table.name }}` table contains info about users and leads in
+ your {{ integration.display_name }} account.
+
+
+ #### Custom attributes
+
+
+ If applicable, Stitch will replicate custom fields related to `{{ table.name }}`
+ in {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developers.intercom.com/intercom-api-reference/v2.5/reference/contacts-model
+ singer-schema: https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/contacts.json
+ api-method: https://developers.intercom.com/intercom-api-reference/v2.5/reference/list-contacts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: contact_attributes
+ description: 'The `{{ table.name }}` table contains information about contact attributes
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.intercom.com/intercom-api-reference/v2.5/reference/data-attribute-model
+ singer-schema: https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/contact_attributes.json
+ api-method: https://developers.intercom.com/intercom-api-reference/v2.5/reference/list-data-attributes
+ table-details:
+ replication-method: Full Table
+ primary-key: _sdc_record_hash
+- name: conversations
+ description: 'The `{{ table.name }}` table contains info about user conversations
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.intercom.com/intercom-api-reference/v2.5/reference/conversation-model
+ singer-schema: https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/conversations.json
+ api-method: https://developers.intercom.com/intercom-api-reference/v2.5/reference/list-conversations
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: conversation_parts
+ description: 'The `{{ table.name }}` table lists the individual parts of conversations
+ in your {{ integration.display_name }} account.
+
+
+ **Note**: When this table is replicated, all conversation parts associated with
+ an updated conversation will be replicated.
+
+ '
+ links:
+ doc-link: https://developers.intercom.com/intercom-api-reference/v2.5/reference/conversation-model
+ singer-schema: https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/conversation_parts.json
+ api-method: https://developers.intercom.com/intercom-api-reference/v2.5/reference/retrieve-a-conversation
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: segments
+ description: The `{{ table.name }}` table contains information about segments within
+ your {{ integration.display_name }} account.
+ links:
+ doc-link: https://developers.intercom.com/intercom-api-reference/v2.5/reference/segment-model
+ singer-schema: https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/segments.json
+ api-method: https://developers.intercom.com/intercom-api-reference/v2.5/reference/list-segments
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: tags
+ description: 'The `{{ table.name }}` table contains information about tags within
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.intercom.com/intercom-api-reference/v2.5/reference/tag-model
+ singer-schema: https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/tags.json
+ api-method: https://developers.intercom.com/intercom-api-reference/v2.5/reference/list-tags-for-an-app
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: teams
+ description: 'The `{{ table.name }}` table contains information about teams in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.intercom.com/intercom-api-reference/v2.5/reference/teams-model
+ singer-schema: https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/teams.json
+ api-method: https://developers.intercom.com/intercom-api-reference/v2.5/reference/list-teams
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/intercom/v2/json/admins.json b/_data/taps/schemas/intercom/v2/json/admins.json
new file mode 100644
index 000000000..589cb7497
--- /dev/null
+++ b/_data/taps/schemas/intercom/v2/json/admins.json
@@ -0,0 +1,95 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "admin_ids": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "avatar": {
+ "additionalProperties": false,
+ "properties": {
+ "image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "away_mode_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "away_mode_reassign": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_inbox_seat": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "job_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "team_ids": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intercom/v2/json/companies.json b/_data/taps/schemas/intercom/v2/json/companies.json
new file mode 100644
index 000000000..316f72702
--- /dev/null
+++ b/_data/taps/schemas/intercom/v2/json/companies.json
@@ -0,0 +1,175 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "company_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_attributes": {
+ "additionalProperties": true,
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "industry": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_request_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "monthly_spend": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "remote_created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "segments": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "session_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tags": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intercom/v2/json/company_attributes.json b/_data/taps/schemas/intercom/v2/json/company_attributes.json
new file mode 100644
index 000000000..9d957163d
--- /dev/null
+++ b/_data/taps/schemas/intercom/v2/json/company_attributes.json
@@ -0,0 +1,115 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "_sdc_record_hash": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "admin_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "api_writable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "data_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "options": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ui_writable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intercom/v2/json/company_segments.json b/_data/taps/schemas/intercom/v2/json/company_segments.json
new file mode 100644
index 000000000..65f92b4a6
--- /dev/null
+++ b/_data/taps/schemas/intercom/v2/json/company_segments.json
@@ -0,0 +1,48 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "person_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intercom/v2/json/contact_attributes.json b/_data/taps/schemas/intercom/v2/json/contact_attributes.json
new file mode 100644
index 000000000..37cb2cc82
--- /dev/null
+++ b/_data/taps/schemas/intercom/v2/json/contact_attributes.json
@@ -0,0 +1,117 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "_sdc_record_hash": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "admin_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "api_writable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "data_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "options": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ui_writable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intercom/v2/json/contacts.json b/_data/taps/schemas/intercom/v2/json/contacts.json
new file mode 100644
index 000000000..fcbdbdb6a
--- /dev/null
+++ b/_data/taps/schemas/intercom/v2/json/contacts.json
@@ -0,0 +1,446 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "android_app_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "android_app_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "android_device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "android_last_seen_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "android_os_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "android_sdk_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avatar": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "browser": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "browser_language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "browser_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "companies": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_attributes": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_hard_bounced": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ios_app_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ios_app_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ios_device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ios_last_seen_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ios_os_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ios_sdk_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "language_override": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_contacted_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_email_clicked_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_email_opened_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_replied_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_seen_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "location": {
+ "additionalProperties": false,
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "continent_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "marked_email_as_spam": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "additionalProperties": false,
+ "properties": {
+ "data": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "has_more": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "total_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "os": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "signed_up_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "social_profiles": {
+ "additionalProperties": false,
+ "properties": {
+ "data": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tags": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unsubscribed_from_emails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "workspace_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intercom/v2/json/conversation_parts.json b/_data/taps/schemas/intercom/v2/json/conversation_parts.json
new file mode 100644
index 000000000..c1d0b4c48
--- /dev/null
+++ b/_data/taps/schemas/intercom/v2/json/conversation_parts.json
@@ -0,0 +1,181 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "assigned_to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "attachments": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "content_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "filesize": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "author": {
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversation_created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "conversation_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversation_total_parts": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversation_updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notified_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "part_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "redacted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intercom/v2/json/conversations.json b/_data/taps/schemas/intercom/v2/json/conversations.json
new file mode 100644
index 000000000..2e2f63b49
--- /dev/null
+++ b/_data/taps/schemas/intercom/v2/json/conversations.json
@@ -0,0 +1,862 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "admin_assignee_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "assignee": {
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "contacts": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "conversation_message": {
+ "additionalProperties": false,
+ "properties": {
+ "attachments": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "content_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "filesize": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "author": {
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delivered_as": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "conversation_rating": {
+ "additionalProperties": false,
+ "properties": {
+ "contact": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "rating": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "remark": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "teammate": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_attributes": {
+ "additionalProperties": true,
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customer_first_reply": {
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customers": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "first_contact_reply": {
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "open": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "priority": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "read": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "sent_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "sla_applied": {
+ "properties": {
+ "sla_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sla_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "snoozed_until": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "source": {
+ "additionalProperties": false,
+ "properties": {
+ "attachments": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "author": {
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delivered_as": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "redacted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statistics": {
+ "properties": {
+ "count_assignments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "count_conversation_parts": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "count_reopens": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "first_admin_reply_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "first_assignment_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "first_close_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "first_contact_reply_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_admin_reply_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_assignment_admin_reply_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_assignment_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_close_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_closed_by": {
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_closed_by_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_contact_reply_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "median_time_to_reply": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "time_to_admin_reply": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "time_to_assignment": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "time_to_first_close": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "time_to_last_close": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tags": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "applied_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "applied_by": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "team_assignee_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "teammates": {
+ "additionalProperties": false,
+ "properties": {
+ "admins": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "waiting_since": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intercom/v2/json/segments.json b/_data/taps/schemas/intercom/v2/json/segments.json
new file mode 100644
index 000000000..65f92b4a6
--- /dev/null
+++ b/_data/taps/schemas/intercom/v2/json/segments.json
@@ -0,0 +1,48 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "person_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intercom/v2/json/tags.json b/_data/taps/schemas/intercom/v2/json/tags.json
new file mode 100644
index 000000000..953c3ef14
--- /dev/null
+++ b/_data/taps/schemas/intercom/v2/json/tags.json
@@ -0,0 +1,24 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/intercom/v2/json/teams.json b/_data/taps/schemas/intercom/v2/json/teams.json
new file mode 100644
index 000000000..fca4ed781
--- /dev/null
+++ b/_data/taps/schemas/intercom/v2/json/teams.json
@@ -0,0 +1,37 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "admin_ids": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/invoiced/v1/invoiced-v1-foreign-keys.yml b/_data/taps/schemas/invoiced/v1/invoiced-v1-foreign-keys.yml
new file mode 100644
index 000000000..c59694da6
--- /dev/null
+++ b/_data/taps/schemas/invoiced/v1/invoiced-v1-foreign-keys.yml
@@ -0,0 +1,217 @@
+tap: invoiced
+version: '1'
+keys:
+ customers_customer:
+ - table: credit_notes
+ keys:
+ - customer
+ - table: customers
+ keys:
+ - id
+ - table: estimates
+ keys:
+ - customer
+ - table: invoices
+ keys:
+ - customer
+ - table: subscriptions
+ keys:
+ - customer
+ - table: transactions
+ keys:
+ - customer
+ estimates_id:
+ - table: estimates
+ keys:
+ - id
+ invoices_id:
+ - table: credit_notes
+ keys:
+ - id
+ - table: estimates
+ keys:
+ - id
+ - table: invoices
+ keys:
+ - id
+ - table: transactions
+ keys:
+ - id
+ _plan:
+ - table: subscriptions
+ keys:
+ - plan
+ - addons.plan
+ subscriptions_subscription:
+ - table: invoices
+ keys:
+ - subscription
+ - table: subscriptions
+ keys:
+ - id
+ transactions_id:
+ - table: transactions
+ keys:
+ - id
+ - parent_transaction
+tables:
+- table-name: credit_notes
+ join:
+ - table-name: customers
+ keys:
+ - key: customer
+ foreign-key: id
+ - table-name: estimates
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: id
+ foreign-key: id
+ - table-name: invoices
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: id
+ foreign-key: id
+ - table-name: subscriptions
+ keys:
+ - key: customer
+ foreign-key: customer
+ - table-name: transactions
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: id
+ foreign-key: id
+- table-name: customers
+ join:
+ - table-name: credit_notes
+ keys:
+ - key: id
+ foreign-key: customer
+ - table-name: estimates
+ keys:
+ - key: id
+ foreign-key: customer
+ - table-name: invoices
+ keys:
+ - key: id
+ foreign-key: customer
+ - table-name: subscriptions
+ keys:
+ - key: id
+ foreign-key: customer
+ - table-name: transactions
+ keys:
+ - key: id
+ foreign-key: customer
+- table-name: estimates
+ join:
+ - table-name: credit_notes
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: id
+ foreign-key: id
+ - table-name: customers
+ keys:
+ - key: customer
+ foreign-key: id
+ - table-name: invoices
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: id
+ foreign-key: id
+ - table-name: subscriptions
+ keys:
+ - key: customer
+ foreign-key: customer
+ - table-name: transactions
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: id
+ foreign-key: id
+- table-name: invoices
+ join:
+ - table-name: credit_notes
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: id
+ foreign-key: id
+ - table-name: customers
+ keys:
+ - key: customer
+ foreign-key: id
+ - table-name: estimates
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: id
+ foreign-key: id
+ - table-name: subscriptions
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: subscription
+ foreign-key: id
+ - table-name: transactions
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: id
+ foreign-key: id
+- table-name: subscriptions
+ join:
+ - table-name: credit_notes
+ keys:
+ - key: customer
+ foreign-key: customer
+ - table-name: customers
+ keys:
+ - key: customer
+ foreign-key: id
+ - table-name: estimates
+ keys:
+ - key: customer
+ foreign-key: customer
+ - table-name: invoices
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: id
+ foreign-key: subscription
+ - table-name: transactions
+ keys:
+ - key: customer
+ foreign-key: customer
+- table-name: transactions
+ join:
+ - table-name: credit_notes
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: id
+ foreign-key: id
+ - table-name: customers
+ keys:
+ - key: customer
+ foreign-key: id
+ - table-name: estimates
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: id
+ foreign-key: id
+ - table-name: invoices
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: id
+ foreign-key: id
+ - table-name: subscriptions
+ keys:
+ - key: customer
+ foreign-key: customer
diff --git a/_data/taps/schemas/invoiced/v1/invoiced-v1-tables.yml b/_data/taps/schemas/invoiced/v1/invoiced-v1-tables.yml
new file mode 100644
index 000000000..ef62938c0
--- /dev/null
+++ b/_data/taps/schemas/invoiced/v1/invoiced-v1-tables.yml
@@ -0,0 +1,91 @@
+tap: invoiced
+version: '1'
+tap-repo-schemas: true
+tables:
+- name: credit_notes
+ description: 'The `{{ table.name }}` table contains info about the credit notes
+ in your {{ integration.display_name }} account. A credit note represents a balance
+ you owe to a customer.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-invoiced/blob/master/tap_invoiced/schemas/credit_notes.json
+ api-method: https://developer.invoiced.com/api/#list-all-credit-notes
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: customers
+ description: 'The `{{ table.name }}` table contains info about the customers in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-invoiced/blob/master/tap_invoiced/schemas/customers.json
+ api-method: https://developer.invoiced.com/api/#list-all-customers
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: invoices
+ description: 'The `{{ table.name }}` table contains info about the invoices in your
+ {{ integration.display_name }} account. An invoice represents a balance owed to
+ you by a customer.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-invoiced/blob/master/tap_invoiced/schemas/invoices.json
+ api-method: https://developer.invoiced.com/api/#list-all-invoices
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: plans
+ description: 'The `{{ table.name }}` table contains info about the plans in your
+ {{ integration.display_name }} account. A plan describes a fixed amount that is
+ billed to customers over a recurring interval.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-invoiced/blob/master/tap_invoiced/schemas/plans.json
+ api-method: https://developer.invoiced.com/api/#list-all-plans
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: subscriptions
+ description: 'The `{{ table.name }}` table contains info about the subscriptions
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-invoiced/blob/master/tap_invoiced/schemas/subscriptions.json
+ api-method: https://developer.invoiced.com/api/#list-all-subscriptions
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: transactions
+ description: 'The `{{ table.name }}` table contains info about the transactions
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-invoiced/blob/master/tap_invoiced/schemas/transactions.json
+ api-method: https://developer.invoiced.com/api/#list-all-transactions
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: estimates
+ description: 'The `{{ table.name }}` table contains info about the estimates in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-invoiced/blob/master/tap_invoiced/schemas/estimates.json
+ api-method: https://developer.invoiced.com/api/#list-all-estimates
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
diff --git a/_data/taps/schemas/invoiced/v1/json/credit_notes.json b/_data/taps/schemas/invoiced/v1/json/credit_notes.json
new file mode 100644
index 000000000..4d0687d35
--- /dev/null
+++ b/_data/taps/schemas/invoiced/v1/json/credit_notes.json
@@ -0,0 +1,156 @@
+{
+ "properties": {
+ "balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "closed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "discounts": {
+ "items": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "draft": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "invoice": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "items": {
+ "items": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "paid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subtotal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "taxes": {
+ "items": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "total": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/invoiced/v1/json/customers.json b/_data/taps/schemas/invoiced/v1/json/customers.json
new file mode 100644
index 000000000..e55ef841e
--- /dev/null
+++ b/_data/taps/schemas/invoiced/v1/json/customers.json
@@ -0,0 +1,203 @@
+{
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "attention_to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "autopay": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "chase": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "chasing_cadence": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "credit_hold": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "credit_limit": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "next_chase_step": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_customer": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "payment_source": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "payment_terms": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sign_up_page": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "taxes": {
+ "items": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/invoiced/v1/json/estimates.json b/_data/taps/schemas/invoiced/v1/json/estimates.json
new file mode 100644
index 000000000..43f179b1f
--- /dev/null
+++ b/_data/taps/schemas/invoiced/v1/json/estimates.json
@@ -0,0 +1,193 @@
+{
+ "properties": {
+ "approval": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "approved": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "closed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deposit": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "deposit_paid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "discounts": {
+ "items": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "draft": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "expiration_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "invoice": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "items": {
+ "items": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "paid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "payment_terms": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subtotal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "taxes": {
+ "items": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "total": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/invoiced/v1/json/invoices.json b/_data/taps/schemas/invoiced/v1/json/invoices.json
new file mode 100644
index 000000000..015b365ab
--- /dev/null
+++ b/_data/taps/schemas/invoiced/v1/json/invoices.json
@@ -0,0 +1,192 @@
+{
+ "properties": {
+ "attempt_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "autopay": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "closed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "discounts": {
+ "items": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "draft": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "due_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "items": {
+ "items": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "needs_attention": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "next_payment_attempt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "paid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "payment_terms": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subtotal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "taxes": {
+ "items": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "total": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/invoiced/v1/json/plans.json b/_data/taps/schemas/invoiced/v1/json/plans.json
new file mode 100644
index 000000000..70f5ab8ae
--- /dev/null
+++ b/_data/taps/schemas/invoiced/v1/json/plans.json
@@ -0,0 +1,106 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "catalog_item": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pricing_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tiers": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/invoiced/v1/json/subscriptions.json b/_data/taps/schemas/invoiced/v1/json/subscriptions.json
new file mode 100644
index 000000000..22e843307
--- /dev/null
+++ b/_data/taps/schemas/invoiced/v1/json/subscriptions.json
@@ -0,0 +1,187 @@
+{
+ "properties": {
+ "addons": {
+ "items": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "approval": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "cancel_at_period_end": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "canceled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "contract_period_end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "contract_period_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "contract_renewal_cycles": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "contract_renewal_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cycles": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discounts": {
+ "items": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "mrr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "period_end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "period_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "plan": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "recurring_total": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "renewed_last": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "renews_next": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxes": {
+ "items": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/invoiced/v1/json/transactions.json b/_data/taps/schemas/invoiced/v1/json/transactions.json
new file mode 100644
index 000000000..9a5c97a1a
--- /dev/null
+++ b/_data/taps/schemas/invoiced/v1/json/transactions.json
@@ -0,0 +1,124 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "credit_note": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "failure_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "invoice": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_transaction": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "payment_source": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/iterable-core/v1/iterable-core-v1-foreign-keys.yml b/_data/taps/schemas/iterable-core/v1/iterable-core-v1-foreign-keys.yml
new file mode 100644
index 000000000..072546e04
--- /dev/null
+++ b/_data/taps/schemas/iterable-core/v1/iterable-core-v1-foreign-keys.yml
@@ -0,0 +1,1082 @@
+tap: iterable-core
+version: '1'
+keys:
+ campaigns_id:
+ - table: campaigns
+ keys:
+ - id
+ - table: email_bounce
+ keys:
+ - campaignId
+ - table: email_click
+ keys:
+ - campaignId
+ - campaignId
+ - table: email_complaint
+ keys:
+ - campaignId
+ - table: email_open
+ keys:
+ - campaignId
+ - table: email_send
+ keys:
+ - campaignId
+ - table: email_send_skip
+ keys:
+ - campaignId
+ - table: email_subscribe
+ keys:
+ - campaignId
+ - table: email_unsubscribe
+ keys:
+ - campaignId
+ - table: templates
+ keys:
+ - campaignId
+ channels_id:
+ - table: channels
+ keys:
+ - id
+ - table: email_send
+ keys:
+ - channelId
+ - table: email_send_skip
+ keys:
+ - channelId
+ - table: email_subscribe
+ keys:
+ - channelIds.items
+ - table: email_unsubscribe
+ keys:
+ - channelIds.items
+ - channelId
+ - table: message_types
+ keys:
+ - channelId
+ users_email:
+ - table: users
+ keys:
+ - email
+ - table: email_bounce
+ keys:
+ - email
+ - table: email_click
+ keys:
+ - email
+ - table: email_complaint
+ keys:
+ - email
+ - table: email_open
+ keys:
+ - email
+ - table: email_send
+ keys:
+ - email
+ - table: email_send_skip
+ keys:
+ - email
+ - table: email_subscribe
+ keys:
+ - email
+ - table: email_unsubscribe
+ keys:
+ - email
+ - table: list_users
+ keys:
+ - email
+ lists_id:
+ - table: lists
+ keys:
+ - id
+ - table: list_users
+ keys:
+ - listId
+ message_types_id:
+ - table: message_types
+ keys:
+ - id
+ - table: templates
+ keys:
+ - messageTypeId
+ templates_templateId:
+ - table: templates
+ keys:
+ - templateId
+ - table: campaigns
+ keys:
+ - templateId
+ - table: email_bounce
+ keys:
+ - templateId
+ - table: email_click
+ keys:
+ - templateId
+ - table: email_complaint
+ keys:
+ - templateId
+ - table: email_open
+ keys:
+ - templateId
+ - table: email_send
+ keys:
+ - templateId
+ - table: email_send_skip
+ keys:
+ - templateId
+ - table: email_subscribe
+ keys:
+ - templateId
+ - table: email_unsubscribe
+ keys:
+ - templateId
+tables:
+- table-name: campaigns
+ join:
+ - table-name: email_bounce
+ keys:
+ - key: id
+ foreign-key: campaignId
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_click
+ keys:
+ - key: id
+ foreign-key: campaignId
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_complaint
+ keys:
+ - key: id
+ foreign-key: campaignId
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_open
+ keys:
+ - key: id
+ foreign-key: campaignId
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_send
+ keys:
+ - key: id
+ foreign-key: campaignId
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_send_skip
+ keys:
+ - key: id
+ foreign-key: campaignId
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_subscribe
+ keys:
+ - key: id
+ foreign-key: campaignId
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_unsubscribe
+ keys:
+ - key: id
+ foreign-key: campaignId
+ - key: templateId
+ foreign-key: templateId
+ - table-name: templates
+ keys:
+ - key: id
+ foreign-key: campaignId
+ - key: templateId
+ foreign-key: templateId
+- table-name: email_bounce
+ join:
+ - table-name: campaigns
+ keys:
+ - key: campaignId
+ foreign-key: id
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_click
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_complaint
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_open
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_send
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_send_skip
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_subscribe
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_unsubscribe
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: templates
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: templateId
+ foreign-key: templateId
+ - table-name: users
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: list_users
+ keys:
+ - key: email
+ foreign-key: email
+- table-name: email_click
+ join:
+ - table-name: campaigns
+ keys:
+ - key: campaignId
+ foreign-key: id
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_bounce
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_complaint
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_open
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_send
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_send_skip
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_subscribe
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_unsubscribe
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: templates
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: templateId
+ foreign-key: templateId
+ - table-name: users
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: list_users
+ keys:
+ - key: email
+ foreign-key: email
+- table-name: email_complaint
+ join:
+ - table-name: campaigns
+ keys:
+ - key: campaignId
+ foreign-key: id
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_bounce
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_click
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_open
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_send
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_send_skip
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_subscribe
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_unsubscribe
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: templates
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: templateId
+ foreign-key: templateId
+ - table-name: users
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: list_users
+ keys:
+ - key: email
+ foreign-key: email
+- table-name: email_open
+ join:
+ - table-name: campaigns
+ keys:
+ - key: campaignId
+ foreign-key: id
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_bounce
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_click
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_complaint
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_send
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_send_skip
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_subscribe
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_unsubscribe
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: templates
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: templateId
+ foreign-key: templateId
+ - table-name: users
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: list_users
+ keys:
+ - key: email
+ foreign-key: email
+- table-name: email_send
+ join:
+ - table-name: campaigns
+ keys:
+ - key: campaignId
+ foreign-key: id
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_bounce
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_click
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_complaint
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_open
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_send_skip
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: channelId
+ foreign-key: channelId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_subscribe
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: channelId
+ foreign-key: channelIds.items
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_unsubscribe
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: channelId
+ foreign-key: channelIds.items
+ - key: channelId
+ foreign-key: channelId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: templates
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: templateId
+ foreign-key: templateId
+ - table-name: channels
+ keys:
+ - key: channelId
+ foreign-key: id
+ - table-name: message_types
+ keys:
+ - key: channelId
+ foreign-key: channelId
+ - table-name: users
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: list_users
+ keys:
+ - key: email
+ foreign-key: email
+- table-name: email_send_skip
+ join:
+ - table-name: campaigns
+ keys:
+ - key: campaignId
+ foreign-key: id
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_bounce
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_click
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_complaint
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_open
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_send
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: channelId
+ foreign-key: channelId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_subscribe
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: channelId
+ foreign-key: channelIds.items
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_unsubscribe
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: channelId
+ foreign-key: channelIds.items
+ - key: channelId
+ foreign-key: channelId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: templates
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: templateId
+ foreign-key: templateId
+ - table-name: channels
+ keys:
+ - key: channelId
+ foreign-key: id
+ - table-name: message_types
+ keys:
+ - key: channelId
+ foreign-key: channelId
+ - table-name: users
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: list_users
+ keys:
+ - key: email
+ foreign-key: email
+- table-name: email_subscribe
+ join:
+ - table-name: campaigns
+ keys:
+ - key: campaignId
+ foreign-key: id
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_bounce
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_click
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_complaint
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_open
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_send
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: channelIds.items
+ foreign-key: channelId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_send_skip
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: channelIds.items
+ foreign-key: channelId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_unsubscribe
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: channelIds.items
+ foreign-key: channelIds.items
+ - key: channelIds.items
+ foreign-key: channelId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: templates
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: templateId
+ foreign-key: templateId
+ - table-name: channels
+ keys:
+ - key: channelIds.items
+ foreign-key: id
+ - table-name: message_types
+ keys:
+ - key: channelIds.items
+ foreign-key: channelId
+ - table-name: users
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: list_users
+ keys:
+ - key: email
+ foreign-key: email
+- table-name: email_unsubscribe
+ join:
+ - table-name: campaigns
+ keys:
+ - key: campaignId
+ foreign-key: id
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_bounce
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_click
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_complaint
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_open
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_send
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: channelIds.items
+ foreign-key: channelId
+ - key: channelId
+ foreign-key: channelId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_send_skip
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: channelIds.items
+ foreign-key: channelId
+ - key: channelId
+ foreign-key: channelId
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_subscribe
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: channelIds.items
+ foreign-key: channelIds.items
+ - key: channelId
+ foreign-key: channelIds.items
+ - key: email
+ foreign-key: email
+ - key: templateId
+ foreign-key: templateId
+ - table-name: templates
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: templateId
+ foreign-key: templateId
+ - table-name: channels
+ keys:
+ - key: channelIds.items
+ foreign-key: id
+ - key: channelId
+ foreign-key: id
+ - table-name: message_types
+ keys:
+ - key: channelIds.items
+ foreign-key: channelId
+ - key: channelId
+ foreign-key: channelId
+ - table-name: users
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: list_users
+ keys:
+ - key: email
+ foreign-key: email
+- table-name: templates
+ join:
+ - table-name: campaigns
+ keys:
+ - key: campaignId
+ foreign-key: id
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_bounce
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_click
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_complaint
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_open
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_send
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_send_skip
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_subscribe
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: templateId
+ foreign-key: templateId
+ - table-name: email_unsubscribe
+ keys:
+ - key: campaignId
+ foreign-key: campaignId
+ - key: templateId
+ foreign-key: templateId
+ - table-name: message_types
+ keys:
+ - key: messageTypeId
+ foreign-key: id
+- table-name: channels
+ join:
+ - table-name: email_send
+ keys:
+ - key: id
+ foreign-key: channelId
+ - table-name: email_send_skip
+ keys:
+ - key: id
+ foreign-key: channelId
+ - table-name: email_subscribe
+ keys:
+ - key: id
+ foreign-key: channelIds.items
+ - table-name: email_unsubscribe
+ keys:
+ - key: id
+ foreign-key: channelIds.items
+ - key: id
+ foreign-key: channelId
+ - table-name: message_types
+ keys:
+ - key: id
+ foreign-key: channelId
+- table-name: message_types
+ join:
+ - table-name: channels
+ keys:
+ - key: channelId
+ foreign-key: id
+ - table-name: email_send
+ keys:
+ - key: channelId
+ foreign-key: channelId
+ - table-name: email_send_skip
+ keys:
+ - key: channelId
+ foreign-key: channelId
+ - table-name: email_subscribe
+ keys:
+ - key: channelId
+ foreign-key: channelIds.items
+ - table-name: email_unsubscribe
+ keys:
+ - key: channelId
+ foreign-key: channelIds.items
+ - key: channelId
+ foreign-key: channelId
+ - table-name: templates
+ keys:
+ - key: id
+ foreign-key: messageTypeId
+- table-name: users
+ join:
+ - table-name: email_bounce
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: email_click
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: email_complaint
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: email_open
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: email_send
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: email_send_skip
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: email_subscribe
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: email_unsubscribe
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: list_users
+ keys:
+ - key: email
+ foreign-key: email
+- table-name: list_users
+ join:
+ - table-name: users
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: email_bounce
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: email_click
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: email_complaint
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: email_open
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: email_send
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: email_send_skip
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: email_subscribe
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: email_unsubscribe
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: lists
+ keys:
+ - key: listId
+ foreign-key: id
+- table-name: lists
+ join:
+ - table-name: list_users
+ keys:
+ - key: id
+ foreign-key: listId
diff --git a/_data/taps/schemas/iterable-core/v1/iterable-core-v1-tables.yml b/_data/taps/schemas/iterable-core/v1/iterable-core-v1-tables.yml
new file mode 100644
index 000000000..8aa660b7d
--- /dev/null
+++ b/_data/taps/schemas/iterable-core/v1/iterable-core-v1-tables.yml
@@ -0,0 +1,194 @@
+tap: iterable-core
+version: '1'
+tables:
+- name: campaigns
+ description: 'The **{{ table.name }}** table contains information about campaigns
+ in your {{ integration.display_name }} projcect.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-iterable/tree/master/tap_iterable/schemas/campaigns.json
+ api-method: https://api.iterable.com/api/docs#campaigns_campaigns
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+- name: channels
+ description: 'The **{{ table.name }}** table contains information about all channels
+ within your {{ integration.display_name }} project.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-iterable/tree/master/tap_iterable/schemas/channels.json
+ api-method: https://api.iterable.com/api/docs#channels_channels
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: email_bounce
+ description: 'The **{{ table.name }}** table contains information about bounced
+ emails within your {{ integration.display_name }} campaign.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-iterable/tree/master/tap_iterable/schemas/email_bounce.json
+ api-method: https://api.iterable.com/api/docs#export_exportDataJson
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: email
+ replication-key: createdAt
+- name: email_click
+ description: 'The **{{ table.name }}** table contains information about clicks on
+ your {{ integration.display_name }} email campaign.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-iterable/tree/master/tap_iterable/schemas/email_click.json
+ api-method: https://api.iterable.com/api/docs#export_exportDataJson
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: email
+ replication-key: createdAt
+- name: email_complaint
+ description: 'The **{{ table.name }}** table contains information about email recipients
+ that sent complaints for your {{ integration.display_name }} campain.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-iterable/tree/master/tap_iterable/schemas/email_complaint.json
+ api-method: https://api.iterable.com/api/docs#export_exportDataJson
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: email
+ replication-key: createdAt
+- name: email_open
+ description: 'The **{{ table.name }}** table contains information about email recipients
+ that opened your {{ integration.display_name }} campaign.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-iterable/tree/master/tap_iterable/schemas/email_open.json
+ api-method: https://api.iterable.com/api/docs#export_exportDataJson
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: email
+ replication-key: createdAt
+- name: email_send
+ description: 'The **{{ table.name }}** table contains information about campaign
+ emails you sent in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-iterable/tree/master/tap_iterable/schemas/email_send.json
+ api-method: https://api.iterable.com/api/docs#export_exportDataJson
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: email
+ replication-key: createdAt
+- name: email_send_skip
+ description: 'The **{{ table.name }}** table contains information about campaign
+ email recipients that were skipped in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-iterable/tree/master/tap_iterable/schemas/email_send_skip.json
+ api-method: https://api.iterable.com/api/docs#export_exportDataJson
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: email
+ replication-key: createdAt
+- name: email_subscribe
+ description: 'The **{{ table.name }}** table contains information about emails subscribed
+ to your {{ integration.display_name }} campaign.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-iterable/tree/master/tap_iterable/schemas/email_subscribe.json
+ api-method: https://api.iterable.com/api/docs#export_exportDataJson
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: email
+ replication-key: createdAt
+- name: email_unsubscribe
+ description: 'The **{{ table.name }}** table contains information about emails unsubscribed
+ from your {{ integration.display_name }} campaign.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-iterable/tree/master/tap_iterable/schemas/email_unsubscribe.json
+ api-method: https://api.iterable.com/api/docs#export_exportDataJson
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: email
+ replication-key: createdAt
+- name: lists
+ description: 'The **{{ table.name }}** tablecontains information about lists within
+ your {{ integration.display_name }} project.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-iterable/tree/master/tap_iterable/schemas/lists.json
+ api-method: https://api.iterable.com/api/docs#lists_getLists
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: list_users
+ description: 'The **{{ table.name }}** table contains information about users in
+ a list in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-iterable/tree/master/tap_iterable/schemas/list_users.json
+ api-method: https://api.iterable.com/api/docs#lists_getLists_0
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - email
+ - listId
+- name: message_types
+ description: 'The **{{ table.name }}** table contains information about all message
+ types within your {{ integration.display_name }} project.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-iterable/tree/master/tap_iterable/schemas/message_types.json
+ api-method: https://api.iterable.com/api/docs#messageTypes_messageTypes
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: metadata
+ description: 'The **{{ table.name }}** table contains the metadata for a single
+ key in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-iterable/tree/master/tap_iterable/schemas/metadata.json
+ api-method: https://api.iterable.com/api/docs#metadata_get
+ table-details:
+ replication-method: Full Table
+ primary-key: key
+- name: templates
+ description: 'The **{{ table.name }}** table contains information about project
+ templates in you {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-iterable/tree/master/tap_iterable/schemas/templates.json
+ api-method: https://api.iterable.com/api/docs#templates_getTemplates
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: templateId
+ replication-key: updatedAt
+- name: users
+ description: 'The **{{ table.name }}** table contains information about all users
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://api.iterable.com/api/docs#export_exportDataJson
+ singer-schema: https://github.com/singer-io/tap-iterable/tree/master/tap_iterable/schemas/users.json
+ api-method: ttps://api.iterable.com/api/docs#export_exportDataJson
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: email
+ replication-key: profileUpdatedAt
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/iterable-core/v1/json/campaigns.json b/_data/taps/schemas/iterable-core/v1/json/campaigns.json
new file mode 100644
index 000000000..d01a4423d
--- /dev/null
+++ b/_data/taps/schemas/iterable-core/v1/json/campaigns.json
@@ -0,0 +1,129 @@
+{
+ "properties": {
+ "campaignState": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "createdByUserId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "endedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "labels": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "listIds": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "messageMedium": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recurringCampaignId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sendSize": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "startAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "suppressionListIds": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "templateId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updatedByUserId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "workflowId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/iterable-core/v1/json/channels.json b/_data/taps/schemas/iterable-core/v1/json/channels.json
new file mode 100644
index 000000000..bc0639649
--- /dev/null
+++ b/_data/taps/schemas/iterable-core/v1/json/channels.json
@@ -0,0 +1,32 @@
+{
+ "properties": {
+ "channelType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "messageMedium": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/iterable-core/v1/json/email_bounce.json b/_data/taps/schemas/iterable-core/v1/json/email_bounce.json
new file mode 100644
index 000000000..865b26f93
--- /dev/null
+++ b/_data/taps/schemas/iterable-core/v1/json/email_bounce.json
@@ -0,0 +1,76 @@
+{
+ "properties": {
+ "campaignId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eventName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "itblInternal": {
+ "properties": {
+ "documentCreatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "documentUpdatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "messageId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recipientState": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "templateId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/iterable-core/v1/json/email_click.json b/_data/taps/schemas/iterable-core/v1/json/email_click.json
new file mode 100644
index 000000000..54b7ff2f5
--- /dev/null
+++ b/_data/taps/schemas/iterable-core/v1/json/email_click.json
@@ -0,0 +1,118 @@
+{
+ "properties": {
+ "campaignId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contentId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eventName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hrefIndex": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "itblInternal": {
+ "properties": {
+ "documentCreatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "documentUpdatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "messageId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "templateId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "userAgent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "userAgentDevice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/iterable-core/v1/json/email_complaint.json b/_data/taps/schemas/iterable-core/v1/json/email_complaint.json
new file mode 100644
index 000000000..9af62676d
--- /dev/null
+++ b/_data/taps/schemas/iterable-core/v1/json/email_complaint.json
@@ -0,0 +1,70 @@
+{
+ "properties": {
+ "campaignId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eventName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "itblInternal": {
+ "properties": {
+ "documentCreatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "documentUpdatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "messageId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recipientState": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "templateId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/iterable-core/v1/json/email_open.json b/_data/taps/schemas/iterable-core/v1/json/email_open.json
new file mode 100644
index 000000000..d7a94aa34
--- /dev/null
+++ b/_data/taps/schemas/iterable-core/v1/json/email_open.json
@@ -0,0 +1,112 @@
+{
+ "properties": {
+ "campaignId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contentId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eventName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "itblInternal": {
+ "properties": {
+ "documentCreatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "documentUpdatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "messageId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "proxySource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "templateId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "userAgent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "userAgentDevice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/iterable-core/v1/json/email_send.json b/_data/taps/schemas/iterable-core/v1/json/email_send.json
new file mode 100644
index 000000000..51be429e8
--- /dev/null
+++ b/_data/taps/schemas/iterable-core/v1/json/email_send.json
@@ -0,0 +1,261 @@
+{
+ "properties": {
+ "campaignId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "catalogCollectionCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "catalogLookupCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "channelId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "contentId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "espName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "itblInternal": {
+ "properties": {
+ "documentCreatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "documentUpdatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "messageBusId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "messageId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "messageTypeId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "productRecommendationCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "templateId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "transactionalData": {
+ "properties": {
+ "campaignId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "categories": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "compare_at_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eventName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eventUpdatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "handle": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "imageUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inventory": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "itblInternal": {
+ "properties": {
+ "documentCreatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "documentUpdatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "templateId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vendor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/iterable-core/v1/json/email_send_skip.json b/_data/taps/schemas/iterable-core/v1/json/email_send_skip.json
new file mode 100644
index 000000000..2333cf361
--- /dev/null
+++ b/_data/taps/schemas/iterable-core/v1/json/email_send_skip.json
@@ -0,0 +1,237 @@
+{
+ "properties": {
+ "campaignId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "channelId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "contentId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "itblInternal": {
+ "properties": {
+ "documentCreatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "documentUpdatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "messageId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "messageTypeId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "templateId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "transactionalData": {
+ "properties": {
+ "campaignId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "categories": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "compare_at_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eventName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eventUpdatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "handle": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "imageUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inventory": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "itblInternal": {
+ "properties": {
+ "documentCreatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "documentUpdatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "templateId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vendor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/iterable-core/v1/json/email_subscribe.json b/_data/taps/schemas/iterable-core/v1/json/email_subscribe.json
new file mode 100644
index 000000000..446ddc2d4
--- /dev/null
+++ b/_data/taps/schemas/iterable-core/v1/json/email_subscribe.json
@@ -0,0 +1,112 @@
+{
+ "properties": {
+ "campaignId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "channelIds": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailListId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "emailListIds": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "eventName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "itblInternal": {
+ "properties": {
+ "documentCreatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "documentUpdatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "profileUpdatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "signupSource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "templateId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "userId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "workflowId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/iterable-core/v1/json/email_unsubscribe.json b/_data/taps/schemas/iterable-core/v1/json/email_unsubscribe.json
new file mode 100644
index 000000000..ed3170ff4
--- /dev/null
+++ b/_data/taps/schemas/iterable-core/v1/json/email_unsubscribe.json
@@ -0,0 +1,125 @@
+{
+ "properties": {
+ "bounceMessage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaignId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "channelId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "channelIds": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailListId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "emailListIds": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "eventName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "itblInternal": {
+ "properties": {
+ "documentCreatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "documentUpdatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "messageId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recipientState": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "templateId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unsubSource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "workflowId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/iterable-core/v1/json/list_users.json b/_data/taps/schemas/iterable-core/v1/json/list_users.json
new file mode 100644
index 000000000..ec285ba4d
--- /dev/null
+++ b/_data/taps/schemas/iterable-core/v1/json/list_users.json
@@ -0,0 +1,26 @@
+{
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "listId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/iterable-core/v1/json/lists.json b/_data/taps/schemas/iterable-core/v1/json/lists.json
new file mode 100644
index 000000000..f54c15b8f
--- /dev/null
+++ b/_data/taps/schemas/iterable-core/v1/json/lists.json
@@ -0,0 +1,38 @@
+{
+ "properties": {
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "listType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/iterable-core/v1/json/message_types.json b/_data/taps/schemas/iterable-core/v1/json/message_types.json
new file mode 100644
index 000000000..f50c1c871
--- /dev/null
+++ b/_data/taps/schemas/iterable-core/v1/json/message_types.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "channelId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptionPolicy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/iterable-core/v1/json/metadata.json b/_data/taps/schemas/iterable-core/v1/json/metadata.json
new file mode 100644
index 000000000..c1e931d0b
--- /dev/null
+++ b/_data/taps/schemas/iterable-core/v1/json/metadata.json
@@ -0,0 +1,131 @@
+{
+ "properties": {
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lastModified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "table": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "properties": {
+ "categories": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "compare_at_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "handle": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "imageUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inventory": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vendor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/iterable-core/v1/json/templates.json b/_data/taps/schemas/iterable-core/v1/json/templates.json
new file mode 100644
index 000000000..88a5a80b8
--- /dev/null
+++ b/_data/taps/schemas/iterable-core/v1/json/templates.json
@@ -0,0 +1,56 @@
+{
+ "properties": {
+ "campaignId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "clientTemplateId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creatorUserId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "messageTypeId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "templateId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/iterable-core/v1/json/users.json b/_data/taps/schemas/iterable-core/v1/json/users.json
new file mode 100644
index 000000000..6fee2e027
--- /dev/null
+++ b/_data/taps/schemas/iterable-core/v1/json/users.json
@@ -0,0 +1,1830 @@
+{
+ "properties": {
+ "CCProvider": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Industry": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accessIp": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "acquisition_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "actively_seeking": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "age": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "auctionDigest": {
+ "anyOf": [
+ {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ {
+ "items": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ ]
+ },
+ "auctionDigest.auctionDateLocation": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "auctionDigest.auctionHouse": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "auctionDigest.auctionImageUrl": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "auctionDigest.auctionInfo": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "auctionDigest.name": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "averageOrderValue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "badgeCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "bestFriend": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "booked_activity_before": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "booked_package_before": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "browserTokens": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "congressional Districts": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "counties": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "current_employer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "current_employer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_last_booked_package": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "daysSinceLastOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "designation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "devices": {
+ "anyOf": [
+ {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ {
+ "items": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ ]
+ },
+ "devices.applicationName": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "devices.endpointEnabled": {
+ "items": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "devices.platform": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "devices.platformEndpoint": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "devices.token": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailListIds": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "estimatedSizing": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "experience": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "favoriteAnimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "favoriteCategories": {
+ "anyOf": [
+ {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ {
+ "items": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ ]
+ },
+ "favoriteCategories.category": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "favoriteCategory": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "favoriteCuisine": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "favoriteItem": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "favoriteProduct": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "favoriteRestaurant": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "favoriteShowCategories": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "favorite_category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "favoritedShows": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fb_follow": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "featuredDeal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "firstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gender": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hasMobileApp": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "highestBidPrice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "house Districts": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "industry": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "installedDropbox": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "installed_sync": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "interested_in_detergent": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "interested_in_soap": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "interested_in_toilet_paper": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "invoice": {
+ "anyOf": [
+ {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ {
+ "items": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ ]
+ },
+ "invoice.customAmount": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "invoice.customSubTotal": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "invoice.customerEmail": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "invoice.customerName": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "invoice.invoiceDate": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "invoice.invoiceNumber": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "invoice.merchantName": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "invoice.totalDue": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "is_active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_available": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "itblInternal.emailDomain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "jobRecommendations": {
+ "anyOf": [
+ {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ {
+ "items": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ ]
+ },
+ "jobRecommendations.applicationURL": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "jobRecommendations.description": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "jobRecommendations.id": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "jobRecommendations.imageUrl": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "jobRecommendations.name": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "job_categories_interested": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "job_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lastAccessedAgent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lastKnownLatitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "lastKnownLongitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "lastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lastOrderlocation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lastOrderrestaurant": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_game_played": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_purchased": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_purchased_category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_session_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "level": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lifetime Dontation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lifetime_Spent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "loyalty_member": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "loyalty_points": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "loyalty_program": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "major": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "marketSmith_subscription": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "merchantId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "newListedVehicles": {
+ "anyOf": [
+ {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ {
+ "items": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ ]
+ },
+ "newListedVehicles.category": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "newListedVehicles.imageUrl": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "newListedVehicles.miles": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "newListedVehicles.name": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "newListedVehicles.noHagglePrice": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "newListedVehicles.price": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "newListedVehicles.sku": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "offers": {
+ "anyOf": [
+ {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ {
+ "items": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ ]
+ },
+ "offers.Intro APR": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "offers.categories": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "offers.description": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "offers.id": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "offers.imageUrl": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "offers.intro APR": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "offers.name": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "offers.quantity": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "offers.sku": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "offers.url": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "onboardingCohort": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "paid_user": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "passively_seeking": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "phoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phoneNumberDetails": {
+ "anyOf": [
+ {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ {
+ "items": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ ]
+ },
+ "phoneNumberDetails.carrier": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "phoneNumberDetails.countryCodeISO": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "phoneNumberDetails.lineType": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "phoneNumberDetails.updatedAt": {
+ "items": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "profileUpdatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "promoCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "readingList": {
+ "anyOf": [
+ {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ {
+ "items": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ ]
+ },
+ "readingList.avgRating": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "readingList.bookAuthor": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "readingList.bookName": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "readingList.imageUrl": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "recommendedVehicles": {
+ "anyOf": [
+ {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ {
+ "items": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ ]
+ },
+ "recommendedVehicles.TrueCar Estimate": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "recommendedVehicles.category": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "recommendedVehicles.estimateDescription": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "recommendedVehicles.imageUrl": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "recommendedVehicles.name": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "recommendedVehicles.sku": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "scheduled_ride": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "selected_games": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "senate Districts": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shoppingCartItems": {
+ "anyOf": [
+ {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ {
+ "items": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ ]
+ },
+ "shoppingCartItems.categories": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "shoppingCartItems.description": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "shoppingCartItems.id": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "shoppingCartItems.imageUrl": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "shoppingCartItems.name": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "shoppingCartItems.price": {
+ "items": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "shoppingCartItems.quantity": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "shoppingCartItems.sku": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "shoppingCartItems.url": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "shopppingCartTotal": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "should_receive_recommendation": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "signupDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "signupSource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "streetAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "swingTrader_subscription": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tagline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "times donated": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "times_purchased": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "totalOrderCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "totalOrders": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "totalPurchases": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "totalSpent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_playtime": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "university_interest": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unsubscribedChannelIds": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "unsubscribedMessageTypeIds": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "uploaded_resume": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "userId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vegetarian_menu": {
+ "anyOf": [
+ {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ {
+ "items": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ ]
+ },
+ "vegetarian_menu.featured_item_availability": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "vegetarian_menu.featured_item_description": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "vegetarian_menu.featured_item_id": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "vegetarian_menu.featured_item_image_url": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "vegetarian_menu.featured_item_menu_availability": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "vegetarian_menu.featured_item_menu_date": {
+ "items": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "vip": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "wishList": {
+ "anyOf": [
+ {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ {
+ "items": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ ]
+ },
+ "wishList.name": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "wishList.price": {
+ "items": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/jira/v1/jira-v1-foreign-keys.yml b/_data/taps/schemas/jira/v1/jira-v1-foreign-keys.yml
new file mode 100644
index 000000000..f646a11d9
--- /dev/null
+++ b/_data/taps/schemas/jira/v1/jira-v1-foreign-keys.yml
@@ -0,0 +1,428 @@
+tap: jira
+version: '1'
+keys:
+ changelogs_:
+ - table: changelogs
+ keys:
+ - id
+ issue_comments_issueCommentId:
+ - table: issue_comments
+ keys:
+ - id
+ issues_issueId:
+ - table: changelogs
+ keys:
+ - issueId
+ - table: issue_comments
+ keys:
+ - issueId
+ - table: issue_transitions
+ keys:
+ - issueId
+ - table: issues
+ keys:
+ - id
+ - table: worklogs
+ keys:
+ - issueId
+ issue_transitions_issueTransitionId:
+ - table: issue_transitions
+ keys:
+ - id
+ project_types_projectTypeKey:
+ - table: project_types
+ keys:
+ - key
+ project_categories_projectCategoryId:
+ - table: project_categories
+ keys:
+ - id
+ - table: projects
+ keys:
+ - projectCategory.id
+ projects_projectId:
+ - table: projects
+ keys:
+ - id
+ - table: versions
+ keys:
+ - projectId
+ resolutions_resolutionId:
+ - table: resolutions
+ keys:
+ - id
+ roles_roleId:
+ - table: roles
+ keys:
+ - id
+ users_key:
+ - table: changelogs
+ keys:
+ - author.key
+ - table: issue_comments
+ keys:
+ - author.key
+ - updateAuthor.key
+ - table: issues
+ keys:
+ - fields.attachment.author.key
+ - table: projects
+ keys:
+ - components.assignee.key
+ - components.lead.key
+ - components.realAssignee.key
+ - lead.key
+ - table: users
+ keys:
+ - key
+ - table: worklogs
+ keys:
+ - author.key
+ - updateAuthor.key
+ versions_versionId:
+ - table: versions
+ keys:
+ - id
+ worklogs_worklogId:
+ - table: worklogs
+ keys:
+ - id
+tables:
+- table-name: changelogs
+ join:
+ - table-name: issue_comments
+ keys:
+ - key: issueId
+ foreign-key: issueId
+ - key: author.key
+ foreign-key: author.key
+ - key: author.key
+ foreign-key: updateAuthor.key
+ - table-name: issue_transitions
+ keys:
+ - key: issueId
+ foreign-key: issueId
+ - table-name: issues
+ keys:
+ - key: issueId
+ foreign-key: id
+ - key: author.key
+ foreign-key: fields.attachment.author.key
+ - table-name: worklogs
+ keys:
+ - key: issueId
+ foreign-key: issueId
+ - key: author.key
+ foreign-key: author.key
+ - key: author.key
+ foreign-key: updateAuthor.key
+ - table-name: projects
+ keys:
+ - key: author.key
+ foreign-key: components.assignee.key
+ - key: author.key
+ foreign-key: components.lead.key
+ - key: author.key
+ foreign-key: components.realAssignee.key
+ - key: author.key
+ foreign-key: lead.key
+ - table-name: users
+ keys:
+ - key: author.key
+ foreign-key: key
+- table-name: issue_comments
+ join:
+ - table-name: changelogs
+ keys:
+ - key: issueId
+ foreign-key: issueId
+ - key: author.key
+ foreign-key: author.key
+ - key: updateAuthor.key
+ foreign-key: author.key
+ - table-name: issue_transitions
+ keys:
+ - key: issueId
+ foreign-key: issueId
+ - table-name: issues
+ keys:
+ - key: issueId
+ foreign-key: id
+ - key: author.key
+ foreign-key: fields.attachment.author.key
+ - key: updateAuthor.key
+ foreign-key: fields.attachment.author.key
+ - table-name: worklogs
+ keys:
+ - key: issueId
+ foreign-key: issueId
+ - key: author.key
+ foreign-key: author.key
+ - key: updateAuthor.key
+ foreign-key: author.key
+ - key: author.key
+ foreign-key: updateAuthor.key
+ - key: updateAuthor.key
+ foreign-key: updateAuthor.key
+ - table-name: projects
+ keys:
+ - key: author.key
+ foreign-key: components.assignee.key
+ - key: updateAuthor.key
+ foreign-key: components.assignee.key
+ - key: author.key
+ foreign-key: components.lead.key
+ - key: updateAuthor.key
+ foreign-key: components.lead.key
+ - key: author.key
+ foreign-key: components.realAssignee.key
+ - key: updateAuthor.key
+ foreign-key: components.realAssignee.key
+ - key: author.key
+ foreign-key: lead.key
+ - key: updateAuthor.key
+ foreign-key: lead.key
+ - table-name: users
+ keys:
+ - key: author.key
+ foreign-key: key
+ - key: updateAuthor.key
+ foreign-key: key
+- table-name: issue_transitions
+ join:
+ - table-name: changelogs
+ keys:
+ - key: issueId
+ foreign-key: issueId
+ - table-name: issue_comments
+ keys:
+ - key: issueId
+ foreign-key: issueId
+ - table-name: issues
+ keys:
+ - key: issueId
+ foreign-key: id
+ - table-name: worklogs
+ keys:
+ - key: issueId
+ foreign-key: issueId
+- table-name: issues
+ join:
+ - table-name: changelogs
+ keys:
+ - key: id
+ foreign-key: issueId
+ - key: fields.attachment.author.key
+ foreign-key: author.key
+ - table-name: issue_comments
+ keys:
+ - key: id
+ foreign-key: issueId
+ - key: fields.attachment.author.key
+ foreign-key: author.key
+ - key: fields.attachment.author.key
+ foreign-key: updateAuthor.key
+ - table-name: issue_transitions
+ keys:
+ - key: id
+ foreign-key: issueId
+ - table-name: worklogs
+ keys:
+ - key: id
+ foreign-key: issueId
+ - key: fields.attachment.author.key
+ foreign-key: author.key
+ - key: fields.attachment.author.key
+ foreign-key: updateAuthor.key
+ - table-name: projects
+ keys:
+ - key: fields.attachment.author.key
+ foreign-key: components.assignee.key
+ - key: fields.attachment.author.key
+ foreign-key: components.lead.key
+ - key: fields.attachment.author.key
+ foreign-key: components.realAssignee.key
+ - key: fields.attachment.author.key
+ foreign-key: lead.key
+ - table-name: users
+ keys:
+ - key: fields.attachment.author.key
+ foreign-key: key
+- table-name: worklogs
+ join:
+ - table-name: changelogs
+ keys:
+ - key: issueId
+ foreign-key: issueId
+ - key: author.key
+ foreign-key: author.key
+ - key: updateAuthor.key
+ foreign-key: author.key
+ - table-name: issue_comments
+ keys:
+ - key: issueId
+ foreign-key: issueId
+ - key: author.key
+ foreign-key: author.key
+ - key: updateAuthor.key
+ foreign-key: author.key
+ - key: author.key
+ foreign-key: updateAuthor.key
+ - key: updateAuthor.key
+ foreign-key: updateAuthor.key
+ - table-name: issue_transitions
+ keys:
+ - key: issueId
+ foreign-key: issueId
+ - table-name: issues
+ keys:
+ - key: issueId
+ foreign-key: id
+ - key: author.key
+ foreign-key: fields.attachment.author.key
+ - key: updateAuthor.key
+ foreign-key: fields.attachment.author.key
+ - table-name: projects
+ keys:
+ - key: author.key
+ foreign-key: components.assignee.key
+ - key: updateAuthor.key
+ foreign-key: components.assignee.key
+ - key: author.key
+ foreign-key: components.lead.key
+ - key: updateAuthor.key
+ foreign-key: components.lead.key
+ - key: author.key
+ foreign-key: components.realAssignee.key
+ - key: updateAuthor.key
+ foreign-key: components.realAssignee.key
+ - key: author.key
+ foreign-key: lead.key
+ - key: updateAuthor.key
+ foreign-key: lead.key
+ - table-name: users
+ keys:
+ - key: author.key
+ foreign-key: key
+ - key: updateAuthor.key
+ foreign-key: key
+- table-name: project_categories
+ join:
+ - table-name: projects
+ keys:
+ - key: id
+ foreign-key: projectCategory.id
+- table-name: projects
+ join:
+ - table-name: project_categories
+ keys:
+ - key: projectCategory.id
+ foreign-key: id
+ - table-name: versions
+ keys:
+ - key: id
+ foreign-key: projectId
+ - table-name: changelogs
+ keys:
+ - key: components.assignee.key
+ foreign-key: author.key
+ - key: components.lead.key
+ foreign-key: author.key
+ - key: components.realAssignee.key
+ foreign-key: author.key
+ - key: lead.key
+ foreign-key: author.key
+ - table-name: issue_comments
+ keys:
+ - key: components.assignee.key
+ foreign-key: author.key
+ - key: components.lead.key
+ foreign-key: author.key
+ - key: components.realAssignee.key
+ foreign-key: author.key
+ - key: lead.key
+ foreign-key: author.key
+ - key: components.assignee.key
+ foreign-key: updateAuthor.key
+ - key: components.lead.key
+ foreign-key: updateAuthor.key
+ - key: components.realAssignee.key
+ foreign-key: updateAuthor.key
+ - key: lead.key
+ foreign-key: updateAuthor.key
+ - table-name: issues
+ keys:
+ - key: components.assignee.key
+ foreign-key: fields.attachment.author.key
+ - key: components.lead.key
+ foreign-key: fields.attachment.author.key
+ - key: components.realAssignee.key
+ foreign-key: fields.attachment.author.key
+ - key: lead.key
+ foreign-key: fields.attachment.author.key
+ - table-name: users
+ keys:
+ - key: components.assignee.key
+ foreign-key: key
+ - key: components.lead.key
+ foreign-key: key
+ - key: components.realAssignee.key
+ foreign-key: key
+ - key: lead.key
+ foreign-key: key
+ - table-name: worklogs
+ keys:
+ - key: components.assignee.key
+ foreign-key: author.key
+ - key: components.lead.key
+ foreign-key: author.key
+ - key: components.realAssignee.key
+ foreign-key: author.key
+ - key: lead.key
+ foreign-key: author.key
+ - key: components.assignee.key
+ foreign-key: updateAuthor.key
+ - key: components.lead.key
+ foreign-key: updateAuthor.key
+ - key: components.realAssignee.key
+ foreign-key: updateAuthor.key
+ - key: lead.key
+ foreign-key: updateAuthor.key
+- table-name: versions
+ join:
+ - table-name: projects
+ keys:
+ - key: projectId
+ foreign-key: id
+- table-name: users
+ join:
+ - table-name: changelogs
+ keys:
+ - key: key
+ foreign-key: author.key
+ - table-name: issue_comments
+ keys:
+ - key: key
+ foreign-key: author.key
+ - key: key
+ foreign-key: updateAuthor.key
+ - table-name: issues
+ keys:
+ - key: key
+ foreign-key: fields.attachment.author.key
+ - table-name: projects
+ keys:
+ - key: key
+ foreign-key: components.assignee.key
+ - key: key
+ foreign-key: components.lead.key
+ - key: key
+ foreign-key: components.realAssignee.key
+ - key: key
+ foreign-key: lead.key
+ - table-name: worklogs
+ keys:
+ - key: key
+ foreign-key: author.key
+ - key: key
+ foreign-key: updateAuthor.key
diff --git a/_data/taps/schemas/jira/v1/jira-v1-tables.yml b/_data/taps/schemas/jira/v1/jira-v1-tables.yml
new file mode 100644
index 000000000..04b69a261
--- /dev/null
+++ b/_data/taps/schemas/jira/v1/jira-v1-tables.yml
@@ -0,0 +1,221 @@
+tap: jira
+version: '1'
+tables:
+- name: changelogs
+ description: 'The `{{ table.name }}` table contains info about the changelogs associated
+ with an issue.
+
+
+ #### Replication requirements {#replication-requirements-changelogs}
+
+
+ To replicate this data:
+
+
+ 1. The [`issues`](#issues) table must also be set to replicate. **Note**: When
+ an issue is updated, all the changelogs for that issue will also be replicated.
+
+
+ 2. The `Browse Projects` [project {{ integration.display_name }} permission]({{
+ integration.project-permissions-doc }}){:target="new"} is required. Refer to [{{
+ integration.display_name }}''s API documentation]({{ table.doc-link }}){:target="new"}
+ for more info.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-jira/blob/master/tap_jira/schemas/changelogs.json
+ api-method: https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-issue-issueIdOrKey-changelog-get
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: issues
+ description: "The `issues` table contains info about the issues in your {{ integration.display_name\
+ \ }} instance. This table only contains core issue data - some data is located\
+ \ in other tables, such as [`changelogs`](#changelogs), [`issue_comments`](#issue_comments),\
+ \ and [`issue_transitions`](#issue_transitions).\n\n**Note**: To replicate this\
+ \ data, the `Browse projects` [project {{ integration.display_name }} permission]({{\
+ \ integration.project-permissions-doc }}){:target=\"new\"} for the project that\
+ \ the issue is in is required. Refer to [{{ integration.display_name }}'s API\
+ \ documentation]({{ table.doc-link }}){:target=\"new\"} for more info.\n\n####\
+ \ Identifying deleted issues\n\nWhen an issue is hard-deleted in JIRA, the record\
+ \ for the issue will remain in your destination. This is due to the nature of\
+ \ Stitch [Replication Keys]({{ link.replication.rep-keys | prepend: baseurl }})\
+ \ and the design of JIRA's API:\n\n- **Replication Keys**: This table uses the\
+ \ values in the `{{ replication-keys | strip }}` column to identify new and updated\
+ \ data for replication. If a record is hard-deleted, there won't be a value for\
+ \ Stitch to check and thus no way to identify the change, meaning the record will\
+ \ remain in the destination.\n- **JIRA's API**: Currently, JIRA's API doesn't\
+ \ include a way to identify deleted issues.\n\nTo identify deleted issues, [Atlassian's\
+ \ suggested workaround](https://answers.atlassian.com/questions/75537/how-do-i-find-if-an-issue-has-been-deleted){:target=\"\
+ new\"} is:\n\n1. Create a status in JIRA that will be applied to issues you want\
+ \ to delete.\n2. **Before deleting the issue, apply the status**.\n3. Allow Stitch\
+ \ to extract and load the updated data into your destination.\n4. Delete the issue.\n\
+ 5. After Stitch finishes loading the data, use the `fields__status__name` field\
+ \ in your queries to filter issues with the deleted status you applied in step\
+ \ 2. For example, the following query would return any issues that had been marked\
+ \ with a the deleted status:\n\n ```sql\n SELECT *\n FROM stitch_jira.issues\n\
+ \ WHERE fields__status__name = 'Deleted'\n ```\n"
+ links:
+ doc-link: https://docs.atlassian.com/jira/REST/ondemand/#api/2/issue-getIssue
+ singer-schema: https://github.com/singer-io/tap-jira/blob/master/tap_jira/schemas/issues.json
+ api-method: https://docs.atlassian.com/jira/REST/cloud/#api/2/search-search
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: issue_comments
+ description: 'The `{{ table.name }}` table contains info about comments made on
+ issues.
+
+
+ #### Replication requirements {#replication-requirements-issue-comments}
+
+
+ To replicate this data:
+
+
+ 1. The [`issues`](#issues) table must also be set to replicate. **Note**: When
+ an issue is updated, all the comments for that issue will also be replicated.
+
+ 2. The `Browse Projects` [project {{ integration.display_name }} permission]({{
+ integration.project-permissions-doc }}){:target="new"} is required. Refer to [{{
+ integration.display_name }}''s API documentation]({{ table.doc-link }}){:target="new"}
+ for more info.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-jira/blob/master/tap_jira/schemas/issue_comments.json
+ api-method: https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-issue-issueIdOrKey-comment-get
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: issue_transitions
+ description: "The `{{ table.name }}` table contains info about issue transitions.\n\
+ \n#### Replication requirements {#replication-requirements-issue-transitions}\n\
+ \nTo replicate this data:\n\n1. The [`issues`](#issues) table must also be set\
+ \ to replicate. **Note**: When an issue is updated, all the transitions for that\
+ \ issue will also be replicated.\n 2. The `Browse Projects` [project {{ integration.display_name\
+ \ }} permission]({{ integration.project-permissions-doc }}){:target=\"new\"} is\
+ \ required. Refer to [{{ integration.display_name }}'s API documentation]({{ table.doc-link\
+ \ }}){:target=\"new\"} for more info.\n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-jira/blob/master/tap_jira/schemas/issue_transitions.json
+ api-method: https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-issue-issueIdOrKey-transitions-get
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: project_categories
+ description: 'The `{{ table.name }}` table contains info about project categories.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-jira/blob/master/tap_jira/schemas/project_categories.json
+ api-method: https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-projectCategory-get
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: project_types
+ description: 'The `{{ table.name }}` table contains info about project types.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-jira/blob/master/tap_jira/schemas/project_types.json
+ api-method: https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-project-type-get
+ table-details:
+ replication-method: Full Table
+ primary-key: key
+- name: resolutions
+ description: 'The `{{ table.name }}` table contains info about issue resolutions.
+
+
+ **Note**: To replicate this data, the `Administer {{ integration.display_name
+ }}` [global {{ integration.display_name }} permission]({{ integration.global-permissions-doc
+ }}){:target="new"} is required. Refer to [{{ integration.display_name }}''s API
+ documentation]({{ table.doc-link }}){:target="new"} for more info.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-jira/blob/master/tap_jira/schemas/resolutions.json
+ api-method: https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-projectCategory-post
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: roles
+ description: 'The `{{ table.name }}` table contains info about the project roles
+ in your {{ integration.display_name }} account.
+
+
+ **Note**: To replicate this data, the `Administer {{ integration.display_name
+ }}` [global {{ integration.display_name }} permission]({{ integration.global-permissions-doc
+ }}){:target="new"} is required. Refer to [{{ integration.display_name }}''s API
+ documentation]({{ table.doc-link }}){:target="new"} for more info.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-jira/blob/master/tap_jira/schemas/roles.json
+ api-method: https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-role-get
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: users
+ description: 'The `{{ table.name }}` table contains info about the users in your
+ {{ integration.display_name }} account.
+
+
+ **Note**: To replicate this data, the `Administer {{ integration.display_name
+ }}` [global {{ integration.display_name }} permission]({{ integration.global-permissions-doc
+ }}){:target="new"} is required. Refer to [{{ integration.display_name }}''s API
+ documentation]({{ table.doc-link }}){:target="new"} for more info.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-jira/blob/master/tap_jira/schemas/users.json
+ api-method: https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-user-search-get
+ table-details:
+ replication-method: Full Table
+ primary-key: key
+- name: versions
+ description: "The `{{ table.name }}` table contains info about versions in your\
+ \ {{ integration.display_name }} account.\n\n#### Replication requirements\n\n\
+ **Note**: To replicate this data:\n\n 1. The [`projects`](#projects) table must\
+ \ also be set to replicate, and\n 2. The `Browse Projects` [project {{ integration.display_name\
+ \ }} permission]({{ integration.project-permissions-doc }}){:target=\"new\"} is\
+ \ required. Refer to [{{ integration.display_name }}'s API documentation]({{ table.doc-link\
+ \ }}){:target=\"new\"} for more info.\n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-jira/blob/master/tap_jira/schemas/versions.json
+ api-method: https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-project-projectIdOrKey-versions-get
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: worklogs
+ description: 'The `{{ table.name }}` table contains info about the worklogs in your
+ {{ integration.display_name }} account.
+
+
+ **Note**: For a worklog to be replicated, it must be set as `Viewable by All Users`,
+ or the integration [authenticating user]() (visible in the integration''s {{ app.page-names.int-settings
+ }} page), must be a member of the project role/group with permission to view the
+ worklog.
+
+
+ If you''re missing worklogs, verify that you have the required permissions to
+ access the worklog.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-jira/blob/master/tap_jira/schemas/worklogs.json
+ api-method: https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-worklog-updated-get
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated
+- name: projects
+ description: The `{{ table.name }}` table contains info about projects in your {{
+ integration.display_name }} account.
+ links:
+ singer-schema: https://github.com/singer-io/tap-jira/blob/master/tap_jira/schemas/projects.json
+ doc-link: https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-projects/#api-rest-api-2-project-get
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/jira/v1/json/changelogs.json b/_data/taps/schemas/jira/v1/json/changelogs.json
new file mode 100644
index 000000000..5042a2ac1
--- /dev/null
+++ b/_data/taps/schemas/jira/v1/json/changelogs.json
@@ -0,0 +1,399 @@
+{
+ "definitions": {
+ "history-metadata-participant": {
+ "properties": {
+ "avatarUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "displayNameKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "History Metadata Participant",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "properties": {
+ "author": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatarUrls": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "User",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "historyMetadata": {
+ "properties": {
+ "activityDescription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "activityDescriptionKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "actor": {
+ "properties": {
+ "avatarUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "displayNameKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "History Metadata Participant",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "cause": {
+ "properties": {
+ "avatarUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "displayNameKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "History Metadata Participant",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "descriptionKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailDescription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailDescriptionKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "extraData": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "generator": {
+ "properties": {
+ "avatarUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "displayNameKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "History Metadata Participant",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "History Metadata",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issueId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "items": {
+ "items": {
+ "properties": {
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fieldId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fieldtype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "from": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fromString": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "toString": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Change Item",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "title": "Change History",
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/jira/v1/json/issue_comments.json b/_data/taps/schemas/jira/v1/json/issue_comments.json
new file mode 100644
index 000000000..5a552a2a3
--- /dev/null
+++ b/_data/taps/schemas/jira/v1/json/issue_comments.json
@@ -0,0 +1,319 @@
+{
+ "definitions": {
+ "user": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatarUrls": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "User",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "properties": {
+ "author": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatarUrls": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "User",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issueId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "jsdPublic": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "properties": {
+ "items": {
+ "properties": {
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {}
+ },
+ "title": "Entity Property",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "renderedBody": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updateAuthor": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatarUrls": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "User",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "visibility": {
+ "properties": {
+ "type": {
+ "enum": [
+ "group",
+ "role"
+ ],
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Visibility",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "title": "Comment",
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/jira/v1/json/issue_transitions.json b/_data/taps/schemas/jira/v1/json/issue_transitions.json
new file mode 100644
index 000000000..922a28d97
--- /dev/null
+++ b/_data/taps/schemas/jira/v1/json/issue_transitions.json
@@ -0,0 +1,386 @@
+{
+ "definitions": {
+ "field-meta": {
+ "properties": {
+ "allowedValues": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "autoCompleteUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "defaultValue": {},
+ "hasDefaultValue": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operations": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "schema": {
+ "properties": {
+ "custom": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "system": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Json Type",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "title": "Field Meta",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "json-type": {
+ "properties": {
+ "custom": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "system": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Json Type",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "properties": {
+ "expand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fields": {
+ "patternProperties": {
+ ".+": {
+ "properties": {
+ "allowedValues": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "autoCompleteUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "defaultValue": {},
+ "hasDefaultValue": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operations": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "schema": {
+ "properties": {
+ "custom": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "system": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Json Type",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "title": "Field Meta",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "hasScreen": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "isConditional": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "isGlobal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "isInitial": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "issueId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to": {
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iconUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statusCategory": {
+ "properties": {
+ "colorName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Status Category",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statusColor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Status",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "title": "Transition",
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/jira/v1/json/issues.json b/_data/taps/schemas/jira/v1/json/issues.json
new file mode 100644
index 000000000..c964333ed
--- /dev/null
+++ b/_data/taps/schemas/jira/v1/json/issues.json
@@ -0,0 +1,784 @@
+{
+ "definitions": {
+ "attachment": {
+ "properties": {
+ "author": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatarUrls": {
+ "properties": {
+ "16x16": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "24x24": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "32x32": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "48x48": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "content": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "filename": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mimeType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumbnail": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "field-meta": {
+ "properties": {
+ "allowedValues": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "autoCompleteUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "defaultValue": {},
+ "hasDefaultValue": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operations": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "schema": {
+ "properties": {
+ "custom": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "system": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Json Type",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "required": [
+ "required"
+ ],
+ "title": "Field Meta",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "json-type": {
+ "properties": {
+ "custom": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "system": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Json Type",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "simple-link": {
+ "properties": {
+ "href": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iconClass": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "styleClass": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "weight": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "title": "Simple Link",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "properties": {
+ "editmeta": {
+ "properties": {
+ "fields": {
+ "patternProperties": {
+ ".+": {
+ "properties": {
+ "allowedValues": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "autoCompleteUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "defaultValue": {},
+ "hasDefaultValue": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operations": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "schema": {
+ "properties": {
+ "custom": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "system": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Json Type",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "required": [
+ "required"
+ ],
+ "title": "Field Meta",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "title": "Edit Meta",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "expand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fields": {
+ "patternProperties": {
+ ".+": {}
+ },
+ "properties": {
+ "attachment": {
+ "items": {
+ "properties": {
+ "author": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatarUrls": {
+ "properties": {
+ "16x16": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "24x24": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "32x32": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "48x48": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "content": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "filename": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mimeType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumbnail": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "lastViewed": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "fieldsToInclude": {
+ "title": "Included Fields",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "names": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "properties": {
+ "properties": {
+ "properties": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "title": "Properties",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "renderedFields": {
+ "patternProperties": {
+ ".+": {}
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "schema": {
+ "patternProperties": {
+ ".+": {
+ "properties": {
+ "custom": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "system": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Json Type",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "versionedRepresentations": {
+ "patternProperties": {
+ ".+": {
+ "patternProperties": {
+ ".+": {}
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "title": "Issue",
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/jira/v1/json/project_categories.json b/_data/taps/schemas/jira/v1/json/project_categories.json
new file mode 100644
index 000000000..316cba6b6
--- /dev/null
+++ b/_data/taps/schemas/jira/v1/json/project_categories.json
@@ -0,0 +1,33 @@
+{
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Project Category",
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/jira/v1/json/project_types.json b/_data/taps/schemas/jira/v1/json/project_types.json
new file mode 100644
index 000000000..4da7f8d48
--- /dev/null
+++ b/_data/taps/schemas/jira/v1/json/project_types.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "descriptionI18nKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "formattedKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "icon": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Project Type",
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/jira/v1/json/projects.json b/_data/taps/schemas/jira/v1/json/projects.json
new file mode 100644
index 000000000..b8c7d9a32
--- /dev/null
+++ b/_data/taps/schemas/jira/v1/json/projects.json
@@ -0,0 +1,1241 @@
+{
+ "definitions": {
+ "simple-list-wrapper": {
+ "properties": {
+ "items": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Group",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "max-results": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "title": "Simple List Wrapper",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "user": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "applicationRoles": {
+ "properties": {
+ "items": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Group",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "max-results": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "title": "Simple List Wrapper",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "avatarUrls": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "groups": {
+ "properties": {
+ "items": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Group",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "max-results": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "title": "Simple List Wrapper",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "User",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "properties": {
+ "assigneeType": {
+ "enum": [
+ "PROJECT_LEAD",
+ "UNASSIGNED"
+ ],
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avatarUrls": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "components": {
+ "items": {
+ "properties": {
+ "assignee": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "applicationRoles": {
+ "properties": {
+ "items": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Group",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "max-results": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "title": "Simple List Wrapper",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "avatarUrls": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "groups": {
+ "properties": {
+ "items": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Group",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "max-results": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "title": "Simple List Wrapper",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "User",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "assigneeType": {
+ "enum": [
+ "PROJECT_DEFAULT",
+ "COMPONENT_LEAD",
+ "PROJECT_LEAD",
+ "UNASSIGNED"
+ ],
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "isAssigneeTypeValid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "lead": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "applicationRoles": {
+ "properties": {
+ "items": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Group",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "max-results": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "title": "Simple List Wrapper",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "avatarUrls": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "groups": {
+ "properties": {
+ "items": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Group",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "max-results": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "title": "Simple List Wrapper",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "User",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "leadUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "project": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "projectId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "realAssignee": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "applicationRoles": {
+ "properties": {
+ "items": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Group",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "max-results": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "title": "Simple List Wrapper",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "avatarUrls": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "groups": {
+ "properties": {
+ "items": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Group",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "max-results": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "title": "Simple List Wrapper",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "User",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "realAssigneeType": {
+ "enum": [
+ "PROJECT_DEFAULT",
+ "COMPONENT_LEAD",
+ "PROJECT_LEAD",
+ "UNASSIGNED"
+ ],
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Component",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issueTypes": {
+ "items": {
+ "properties": {
+ "avatarId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iconUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subtask": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "title": "Issue Type",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lead": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "applicationRoles": {
+ "properties": {
+ "items": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Group",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "max-results": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "title": "Simple List Wrapper",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "avatarUrls": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "groups": {
+ "properties": {
+ "items": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Group",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "max-results": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "title": "Simple List Wrapper",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "User",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "projectCategory": {
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Project Category",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "projectKeys": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "projectTypeKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "roles": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "simplified": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Project",
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/jira/v1/json/resolutions.json b/_data/taps/schemas/jira/v1/json/resolutions.json
new file mode 100644
index 000000000..f429828ec
--- /dev/null
+++ b/_data/taps/schemas/jira/v1/json/resolutions.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iconUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Resolution",
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/jira/v1/json/roles.json b/_data/taps/schemas/jira/v1/json/roles.json
new file mode 100644
index 000000000..4a555f7aa
--- /dev/null
+++ b/_data/taps/schemas/jira/v1/json/roles.json
@@ -0,0 +1,79 @@
+{
+ "id": "https://docs.atlassian.com/jira/REST/schema/project-role#",
+ "properties": {
+ "actors": {
+ "items": {
+ "properties": {
+ "avatarUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Role Actor",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Project Role",
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/jira/v1/json/users.json b/_data/taps/schemas/jira/v1/json/users.json
new file mode 100644
index 000000000..6c98184ec
--- /dev/null
+++ b/_data/taps/schemas/jira/v1/json/users.json
@@ -0,0 +1,83 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accountType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatarUrls": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "User",
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/jira/v1/json/versions.json b/_data/taps/schemas/jira/v1/json/versions.json
new file mode 100644
index 000000000..09778d76f
--- /dev/null
+++ b/_data/taps/schemas/jira/v1/json/versions.json
@@ -0,0 +1,184 @@
+{
+ "properties": {
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "moveUnfixedIssuesTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operations": {
+ "items": {
+ "properties": {
+ "href": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iconClass": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "styleClass": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "weight": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "title": "Simple Link",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "overdue": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "project": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "projectId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "releaseDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "released": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "remotelinks": {
+ "items": {
+ "properties": {
+ "link": {},
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Remote Entity Link",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "userReleaseDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "userStartDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "title": "Version",
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/jira/v1/json/worklogs.json b/_data/taps/schemas/jira/v1/json/worklogs.json
new file mode 100644
index 000000000..ec04322ae
--- /dev/null
+++ b/_data/taps/schemas/jira/v1/json/worklogs.json
@@ -0,0 +1,325 @@
+{
+ "definitions": {
+ "user": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatarUrls": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "User",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "properties": {
+ "author": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatarUrls": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "User",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "comment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issueId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "properties": {
+ "items": {
+ "properties": {
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {}
+ },
+ "title": "Entity Property",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "started": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "timeSpent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeSpentSeconds": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updateAuthor": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatarUrls": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "User",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "visibility": {
+ "properties": {
+ "type": {
+ "enum": [
+ "group",
+ "role"
+ ],
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Visibility",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "title": "Worklog",
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/jira/v2/jira-v2-foreign-keys.yml b/_data/taps/schemas/jira/v2/jira-v2-foreign-keys.yml
new file mode 100644
index 000000000..b09a2b4d9
--- /dev/null
+++ b/_data/taps/schemas/jira/v2/jira-v2-foreign-keys.yml
@@ -0,0 +1,754 @@
+tap: jira
+version: '2'
+keys:
+ changelogs_:
+ - table: changelogs
+ keys:
+ - id
+ components_:
+ - table: component
+ keys:
+ - id
+ issue_comments_issueCommentId:
+ - table: issue_comments
+ keys:
+ - id
+ issues_issueId:
+ - table: changelogs
+ keys:
+ - issueId
+ - table: issue_comments
+ keys:
+ - issueId
+ - table: issue_transitions
+ keys:
+ - issueId
+ - table: issues
+ keys:
+ - id
+ - table: worklogs
+ keys:
+ - issueId
+ issue_transitions_issueTransitionId:
+ - table: issue_transitions
+ keys:
+ - id
+ project_types_projectTypeKey:
+ - table: project_types
+ keys:
+ - key
+ project_categories_projectCategoryId:
+ - table: project_categories
+ keys:
+ - id
+ - table: projects
+ keys:
+ - projectCategory.id
+ projects_projectId:
+ - table: components
+ keys:
+ - componentBean.projectId
+ - projectId
+ - table: projects
+ keys:
+ - id
+ - table: versions
+ keys:
+ - projectId
+ resolutions_resolutionId:
+ - table: resolutions
+ keys:
+ - id
+ roles_roleId:
+ - table: roles
+ keys:
+ - id
+ users_accountId:
+ - table: changelogs
+ keys:
+ - author.accountId
+ - table: components
+ keys:
+ - assignee.accountId
+ - componentBean.assignee.accountId
+ - componentBean.lead.accountId
+ - componentBean.realAssignee.accountId
+ - lead.accountId
+ - realAssignee.accountId
+ - table: issue_comments
+ keys:
+ - author.accountId
+ - updateAuthor.accountId
+ - table: issues
+ keys:
+ - fields.attachment.author.accountId
+ - table: projects
+ keys:
+ - components.assignee.accountId
+ - components.lead.accountId
+ - components.realAssignee.accountId
+ - lead.accountId
+ - table: users
+ keys:
+ - accountId
+ - table: worklogs
+ keys:
+ - author.accountId
+ - updateAuthor.accountId
+ versions_versionId:
+ - table: versions
+ keys:
+ - id
+ worklogs_worklogId:
+ - table: worklogs
+ keys:
+ - id
+tables:
+- table-name: changelogs
+ join:
+ - table-name: issue_comments
+ keys:
+ - key: issueId
+ foreign-key: issueId
+ - key: author.accountId
+ foreign-key: author.accountId
+ - key: author.accountId
+ foreign-key: updateAuthor.accountId
+ - table-name: issue_transitions
+ keys:
+ - key: issueId
+ foreign-key: issueId
+ - table-name: issues
+ keys:
+ - key: issueId
+ foreign-key: id
+ - key: author.accountId
+ foreign-key: fields.attachment.author.accountId
+ - table-name: worklogs
+ keys:
+ - key: issueId
+ foreign-key: issueId
+ - key: author.accountId
+ foreign-key: author.accountId
+ - key: author.accountId
+ foreign-key: updateAuthor.accountId
+ - table-name: components
+ keys:
+ - key: author.accountId
+ foreign-key: assignee.accountId
+ - key: author.accountId
+ foreign-key: componentBean.assignee.accountId
+ - key: author.accountId
+ foreign-key: componentBean.lead.accountId
+ - key: author.accountId
+ foreign-key: componentBean.realAssignee.accountId
+ - key: author.accountId
+ foreign-key: lead.accountId
+ - key: author.accountId
+ foreign-key: realAssignee.accountId
+ - table-name: projects
+ keys:
+ - key: author.accountId
+ foreign-key: components.assignee.accountId
+ - key: author.accountId
+ foreign-key: components.lead.accountId
+ - key: author.accountId
+ foreign-key: components.realAssignee.accountId
+ - key: author.accountId
+ foreign-key: lead.accountId
+ - table-name: users
+ keys:
+ - key: author.accountId
+ foreign-key: accountId
+- table-name: issue_comments
+ join:
+ - table-name: changelogs
+ keys:
+ - key: issueId
+ foreign-key: issueId
+ - key: author.accountId
+ foreign-key: author.accountId
+ - key: updateAuthor.accountId
+ foreign-key: author.accountId
+ - table-name: issue_transitions
+ keys:
+ - key: issueId
+ foreign-key: issueId
+ - table-name: issues
+ keys:
+ - key: issueId
+ foreign-key: id
+ - key: author.accountId
+ foreign-key: fields.attachment.author.accountId
+ - key: updateAuthor.accountId
+ foreign-key: fields.attachment.author.accountId
+ - table-name: worklogs
+ keys:
+ - key: issueId
+ foreign-key: issueId
+ - key: author.accountId
+ foreign-key: author.accountId
+ - key: updateAuthor.accountId
+ foreign-key: author.accountId
+ - key: author.accountId
+ foreign-key: updateAuthor.accountId
+ - key: updateAuthor.accountId
+ foreign-key: updateAuthor.accountId
+ - table-name: components
+ keys:
+ - key: author.accountId
+ foreign-key: assignee.accountId
+ - key: updateAuthor.accountId
+ foreign-key: assignee.accountId
+ - key: author.accountId
+ foreign-key: componentBean.assignee.accountId
+ - key: updateAuthor.accountId
+ foreign-key: componentBean.assignee.accountId
+ - key: author.accountId
+ foreign-key: componentBean.lead.accountId
+ - key: updateAuthor.accountId
+ foreign-key: componentBean.lead.accountId
+ - key: author.accountId
+ foreign-key: componentBean.realAssignee.accountId
+ - key: updateAuthor.accountId
+ foreign-key: componentBean.realAssignee.accountId
+ - key: author.accountId
+ foreign-key: lead.accountId
+ - key: updateAuthor.accountId
+ foreign-key: lead.accountId
+ - key: author.accountId
+ foreign-key: realAssignee.accountId
+ - key: updateAuthor.accountId
+ foreign-key: realAssignee.accountId
+ - table-name: projects
+ keys:
+ - key: author.accountId
+ foreign-key: components.assignee.accountId
+ - key: updateAuthor.accountId
+ foreign-key: components.assignee.accountId
+ - key: author.accountId
+ foreign-key: components.lead.accountId
+ - key: updateAuthor.accountId
+ foreign-key: components.lead.accountId
+ - key: author.accountId
+ foreign-key: components.realAssignee.accountId
+ - key: updateAuthor.accountId
+ foreign-key: components.realAssignee.accountId
+ - key: author.accountId
+ foreign-key: lead.accountId
+ - key: updateAuthor.accountId
+ foreign-key: lead.accountId
+ - table-name: users
+ keys:
+ - key: author.accountId
+ foreign-key: accountId
+ - key: updateAuthor.accountId
+ foreign-key: accountId
+- table-name: issue_transitions
+ join:
+ - table-name: changelogs
+ keys:
+ - key: issueId
+ foreign-key: issueId
+ - table-name: issue_comments
+ keys:
+ - key: issueId
+ foreign-key: issueId
+ - table-name: issues
+ keys:
+ - key: issueId
+ foreign-key: id
+ - table-name: worklogs
+ keys:
+ - key: issueId
+ foreign-key: issueId
+- table-name: issues
+ join:
+ - table-name: changelogs
+ keys:
+ - key: id
+ foreign-key: issueId
+ - key: fields.attachment.author.accountId
+ foreign-key: author.accountId
+ - table-name: issue_comments
+ keys:
+ - key: id
+ foreign-key: issueId
+ - key: fields.attachment.author.accountId
+ foreign-key: author.accountId
+ - key: fields.attachment.author.accountId
+ foreign-key: updateAuthor.accountId
+ - table-name: issue_transitions
+ keys:
+ - key: id
+ foreign-key: issueId
+ - table-name: worklogs
+ keys:
+ - key: id
+ foreign-key: issueId
+ - key: fields.attachment.author.accountId
+ foreign-key: author.accountId
+ - key: fields.attachment.author.accountId
+ foreign-key: updateAuthor.accountId
+ - table-name: components
+ keys:
+ - key: fields.attachment.author.accountId
+ foreign-key: assignee.accountId
+ - key: fields.attachment.author.accountId
+ foreign-key: componentBean.assignee.accountId
+ - key: fields.attachment.author.accountId
+ foreign-key: componentBean.lead.accountId
+ - key: fields.attachment.author.accountId
+ foreign-key: componentBean.realAssignee.accountId
+ - key: fields.attachment.author.accountId
+ foreign-key: lead.accountId
+ - key: fields.attachment.author.accountId
+ foreign-key: realAssignee.accountId
+ - table-name: projects
+ keys:
+ - key: fields.attachment.author.accountId
+ foreign-key: components.assignee.accountId
+ - key: fields.attachment.author.accountId
+ foreign-key: components.lead.accountId
+ - key: fields.attachment.author.accountId
+ foreign-key: components.realAssignee.accountId
+ - key: fields.attachment.author.accountId
+ foreign-key: lead.accountId
+ - table-name: users
+ keys:
+ - key: fields.attachment.author.accountId
+ foreign-key: accountId
+- table-name: worklogs
+ join:
+ - table-name: changelogs
+ keys:
+ - key: issueId
+ foreign-key: issueId
+ - key: author.accountId
+ foreign-key: author.accountId
+ - key: updateAuthor.accountId
+ foreign-key: author.accountId
+ - table-name: issue_comments
+ keys:
+ - key: issueId
+ foreign-key: issueId
+ - key: author.accountId
+ foreign-key: author.accountId
+ - key: updateAuthor.accountId
+ foreign-key: author.accountId
+ - key: author.accountId
+ foreign-key: updateAuthor.accountId
+ - key: updateAuthor.accountId
+ foreign-key: updateAuthor.accountId
+ - table-name: issue_transitions
+ keys:
+ - key: issueId
+ foreign-key: issueId
+ - table-name: issues
+ keys:
+ - key: issueId
+ foreign-key: id
+ - key: author.accountId
+ foreign-key: fields.attachment.author.accountId
+ - key: updateAuthor.accountId
+ foreign-key: fields.attachment.author.accountId
+ - table-name: components
+ keys:
+ - key: author.accountId
+ foreign-key: assignee.accountId
+ - key: updateAuthor.accountId
+ foreign-key: assignee.accountId
+ - key: author.accountId
+ foreign-key: componentBean.assignee.accountId
+ - key: updateAuthor.accountId
+ foreign-key: componentBean.assignee.accountId
+ - key: author.accountId
+ foreign-key: componentBean.lead.accountId
+ - key: updateAuthor.accountId
+ foreign-key: componentBean.lead.accountId
+ - key: author.accountId
+ foreign-key: componentBean.realAssignee.accountId
+ - key: updateAuthor.accountId
+ foreign-key: componentBean.realAssignee.accountId
+ - key: author.accountId
+ foreign-key: lead.accountId
+ - key: updateAuthor.accountId
+ foreign-key: lead.accountId
+ - key: author.accountId
+ foreign-key: realAssignee.accountId
+ - key: updateAuthor.accountId
+ foreign-key: realAssignee.accountId
+ - table-name: projects
+ keys:
+ - key: author.accountId
+ foreign-key: components.assignee.accountId
+ - key: updateAuthor.accountId
+ foreign-key: components.assignee.accountId
+ - key: author.accountId
+ foreign-key: components.lead.accountId
+ - key: updateAuthor.accountId
+ foreign-key: components.lead.accountId
+ - key: author.accountId
+ foreign-key: components.realAssignee.accountId
+ - key: updateAuthor.accountId
+ foreign-key: components.realAssignee.accountId
+ - key: author.accountId
+ foreign-key: lead.accountId
+ - key: updateAuthor.accountId
+ foreign-key: lead.accountId
+ - table-name: users
+ keys:
+ - key: author.accountId
+ foreign-key: accountId
+ - key: updateAuthor.accountId
+ foreign-key: accountId
+- table-name: project_categories
+ join:
+ - table-name: projects
+ keys:
+ - key: id
+ foreign-key: projectCategory.id
+- table-name: projects
+ join:
+ - table-name: project_categories
+ keys:
+ - key: projectCategory.id
+ foreign-key: id
+ - table-name: components
+ keys:
+ - key: id
+ foreign-key: componentBean.projectId
+ - key: id
+ foreign-key: projectId
+ - key: components.assignee.accountId
+ foreign-key: assignee.accountId
+ - key: components.lead.accountId
+ foreign-key: assignee.accountId
+ - key: components.realAssignee.accountId
+ foreign-key: assignee.accountId
+ - key: lead.accountId
+ foreign-key: assignee.accountId
+ - key: components.assignee.accountId
+ foreign-key: componentBean.assignee.accountId
+ - key: components.lead.accountId
+ foreign-key: componentBean.assignee.accountId
+ - key: components.realAssignee.accountId
+ foreign-key: componentBean.assignee.accountId
+ - key: lead.accountId
+ foreign-key: componentBean.assignee.accountId
+ - key: components.assignee.accountId
+ foreign-key: componentBean.lead.accountId
+ - key: components.lead.accountId
+ foreign-key: componentBean.lead.accountId
+ - key: components.realAssignee.accountId
+ foreign-key: componentBean.lead.accountId
+ - key: lead.accountId
+ foreign-key: componentBean.lead.accountId
+ - key: components.assignee.accountId
+ foreign-key: componentBean.realAssignee.accountId
+ - key: components.lead.accountId
+ foreign-key: componentBean.realAssignee.accountId
+ - key: components.realAssignee.accountId
+ foreign-key: componentBean.realAssignee.accountId
+ - key: lead.accountId
+ foreign-key: componentBean.realAssignee.accountId
+ - key: components.assignee.accountId
+ foreign-key: lead.accountId
+ - key: components.lead.accountId
+ foreign-key: lead.accountId
+ - key: components.realAssignee.accountId
+ foreign-key: lead.accountId
+ - key: lead.accountId
+ foreign-key: lead.accountId
+ - key: components.assignee.accountId
+ foreign-key: realAssignee.accountId
+ - key: components.lead.accountId
+ foreign-key: realAssignee.accountId
+ - key: components.realAssignee.accountId
+ foreign-key: realAssignee.accountId
+ - key: lead.accountId
+ foreign-key: realAssignee.accountId
+ - table-name: versions
+ keys:
+ - key: id
+ foreign-key: projectId
+ - table-name: changelogs
+ keys:
+ - key: components.assignee.accountId
+ foreign-key: author.accountId
+ - key: components.lead.accountId
+ foreign-key: author.accountId
+ - key: components.realAssignee.accountId
+ foreign-key: author.accountId
+ - key: lead.accountId
+ foreign-key: author.accountId
+ - table-name: issue_comments
+ keys:
+ - key: components.assignee.accountId
+ foreign-key: author.accountId
+ - key: components.lead.accountId
+ foreign-key: author.accountId
+ - key: components.realAssignee.accountId
+ foreign-key: author.accountId
+ - key: lead.accountId
+ foreign-key: author.accountId
+ - key: components.assignee.accountId
+ foreign-key: updateAuthor.accountId
+ - key: components.lead.accountId
+ foreign-key: updateAuthor.accountId
+ - key: components.realAssignee.accountId
+ foreign-key: updateAuthor.accountId
+ - key: lead.accountId
+ foreign-key: updateAuthor.accountId
+ - table-name: issues
+ keys:
+ - key: components.assignee.accountId
+ foreign-key: fields.attachment.author.accountId
+ - key: components.lead.accountId
+ foreign-key: fields.attachment.author.accountId
+ - key: components.realAssignee.accountId
+ foreign-key: fields.attachment.author.accountId
+ - key: lead.accountId
+ foreign-key: fields.attachment.author.accountId
+ - table-name: users
+ keys:
+ - key: components.assignee.accountId
+ foreign-key: accountId
+ - key: components.lead.accountId
+ foreign-key: accountId
+ - key: components.realAssignee.accountId
+ foreign-key: accountId
+ - key: lead.accountId
+ foreign-key: accountId
+ - table-name: worklogs
+ keys:
+ - key: components.assignee.accountId
+ foreign-key: author.accountId
+ - key: components.lead.accountId
+ foreign-key: author.accountId
+ - key: components.realAssignee.accountId
+ foreign-key: author.accountId
+ - key: lead.accountId
+ foreign-key: author.accountId
+ - key: components.assignee.accountId
+ foreign-key: updateAuthor.accountId
+ - key: components.lead.accountId
+ foreign-key: updateAuthor.accountId
+ - key: components.realAssignee.accountId
+ foreign-key: updateAuthor.accountId
+ - key: lead.accountId
+ foreign-key: updateAuthor.accountId
+- table-name: components
+ join:
+ - table-name: projects
+ keys:
+ - key: componentBean.projectId
+ foreign-key: id
+ - key: projectId
+ foreign-key: id
+ - key: assignee.accountId
+ foreign-key: components.assignee.accountId
+ - key: componentBean.assignee.accountId
+ foreign-key: components.assignee.accountId
+ - key: componentBean.lead.accountId
+ foreign-key: components.assignee.accountId
+ - key: componentBean.realAssignee.accountId
+ foreign-key: components.assignee.accountId
+ - key: lead.accountId
+ foreign-key: components.assignee.accountId
+ - key: realAssignee.accountId
+ foreign-key: components.assignee.accountId
+ - key: assignee.accountId
+ foreign-key: components.lead.accountId
+ - key: componentBean.assignee.accountId
+ foreign-key: components.lead.accountId
+ - key: componentBean.lead.accountId
+ foreign-key: components.lead.accountId
+ - key: componentBean.realAssignee.accountId
+ foreign-key: components.lead.accountId
+ - key: lead.accountId
+ foreign-key: components.lead.accountId
+ - key: realAssignee.accountId
+ foreign-key: components.lead.accountId
+ - key: assignee.accountId
+ foreign-key: components.realAssignee.accountId
+ - key: componentBean.assignee.accountId
+ foreign-key: components.realAssignee.accountId
+ - key: componentBean.lead.accountId
+ foreign-key: components.realAssignee.accountId
+ - key: componentBean.realAssignee.accountId
+ foreign-key: components.realAssignee.accountId
+ - key: lead.accountId
+ foreign-key: components.realAssignee.accountId
+ - key: realAssignee.accountId
+ foreign-key: components.realAssignee.accountId
+ - key: assignee.accountId
+ foreign-key: lead.accountId
+ - key: componentBean.assignee.accountId
+ foreign-key: lead.accountId
+ - key: componentBean.lead.accountId
+ foreign-key: lead.accountId
+ - key: componentBean.realAssignee.accountId
+ foreign-key: lead.accountId
+ - key: lead.accountId
+ foreign-key: lead.accountId
+ - key: realAssignee.accountId
+ foreign-key: lead.accountId
+ - table-name: versions
+ keys:
+ - key: componentBean.projectId
+ foreign-key: projectId
+ - key: projectId
+ foreign-key: projectId
+ - table-name: changelogs
+ keys:
+ - key: assignee.accountId
+ foreign-key: author.accountId
+ - key: componentBean.assignee.accountId
+ foreign-key: author.accountId
+ - key: componentBean.lead.accountId
+ foreign-key: author.accountId
+ - key: componentBean.realAssignee.accountId
+ foreign-key: author.accountId
+ - key: lead.accountId
+ foreign-key: author.accountId
+ - key: realAssignee.accountId
+ foreign-key: author.accountId
+ - table-name: issue_comments
+ keys:
+ - key: assignee.accountId
+ foreign-key: author.accountId
+ - key: componentBean.assignee.accountId
+ foreign-key: author.accountId
+ - key: componentBean.lead.accountId
+ foreign-key: author.accountId
+ - key: componentBean.realAssignee.accountId
+ foreign-key: author.accountId
+ - key: lead.accountId
+ foreign-key: author.accountId
+ - key: realAssignee.accountId
+ foreign-key: author.accountId
+ - key: assignee.accountId
+ foreign-key: updateAuthor.accountId
+ - key: componentBean.assignee.accountId
+ foreign-key: updateAuthor.accountId
+ - key: componentBean.lead.accountId
+ foreign-key: updateAuthor.accountId
+ - key: componentBean.realAssignee.accountId
+ foreign-key: updateAuthor.accountId
+ - key: lead.accountId
+ foreign-key: updateAuthor.accountId
+ - key: realAssignee.accountId
+ foreign-key: updateAuthor.accountId
+ - table-name: issues
+ keys:
+ - key: assignee.accountId
+ foreign-key: fields.attachment.author.accountId
+ - key: componentBean.assignee.accountId
+ foreign-key: fields.attachment.author.accountId
+ - key: componentBean.lead.accountId
+ foreign-key: fields.attachment.author.accountId
+ - key: componentBean.realAssignee.accountId
+ foreign-key: fields.attachment.author.accountId
+ - key: lead.accountId
+ foreign-key: fields.attachment.author.accountId
+ - key: realAssignee.accountId
+ foreign-key: fields.attachment.author.accountId
+ - table-name: users
+ keys:
+ - key: assignee.accountId
+ foreign-key: accountId
+ - key: componentBean.assignee.accountId
+ foreign-key: accountId
+ - key: componentBean.lead.accountId
+ foreign-key: accountId
+ - key: componentBean.realAssignee.accountId
+ foreign-key: accountId
+ - key: lead.accountId
+ foreign-key: accountId
+ - key: realAssignee.accountId
+ foreign-key: accountId
+ - table-name: worklogs
+ keys:
+ - key: assignee.accountId
+ foreign-key: author.accountId
+ - key: componentBean.assignee.accountId
+ foreign-key: author.accountId
+ - key: componentBean.lead.accountId
+ foreign-key: author.accountId
+ - key: componentBean.realAssignee.accountId
+ foreign-key: author.accountId
+ - key: lead.accountId
+ foreign-key: author.accountId
+ - key: realAssignee.accountId
+ foreign-key: author.accountId
+ - key: assignee.accountId
+ foreign-key: updateAuthor.accountId
+ - key: componentBean.assignee.accountId
+ foreign-key: updateAuthor.accountId
+ - key: componentBean.lead.accountId
+ foreign-key: updateAuthor.accountId
+ - key: componentBean.realAssignee.accountId
+ foreign-key: updateAuthor.accountId
+ - key: lead.accountId
+ foreign-key: updateAuthor.accountId
+ - key: realAssignee.accountId
+ foreign-key: updateAuthor.accountId
+- table-name: versions
+ join:
+ - table-name: components
+ keys:
+ - key: projectId
+ foreign-key: componentBean.projectId
+ - key: projectId
+ foreign-key: projectId
+ - table-name: projects
+ keys:
+ - key: projectId
+ foreign-key: id
+- table-name: users
+ join:
+ - table-name: changelogs
+ keys:
+ - key: accountId
+ foreign-key: author.accountId
+ - table-name: components
+ keys:
+ - key: accountId
+ foreign-key: assignee.accountId
+ - key: accountId
+ foreign-key: componentBean.assignee.accountId
+ - key: accountId
+ foreign-key: componentBean.lead.accountId
+ - key: accountId
+ foreign-key: componentBean.realAssignee.accountId
+ - key: accountId
+ foreign-key: lead.accountId
+ - key: accountId
+ foreign-key: realAssignee.accountId
+ - table-name: issue_comments
+ keys:
+ - key: accountId
+ foreign-key: author.accountId
+ - key: accountId
+ foreign-key: updateAuthor.accountId
+ - table-name: issues
+ keys:
+ - key: accountId
+ foreign-key: fields.attachment.author.accountId
+ - table-name: projects
+ keys:
+ - key: accountId
+ foreign-key: components.assignee.accountId
+ - key: accountId
+ foreign-key: components.lead.accountId
+ - key: accountId
+ foreign-key: components.realAssignee.accountId
+ - key: accountId
+ foreign-key: lead.accountId
+ - table-name: worklogs
+ keys:
+ - key: accountId
+ foreign-key: author.accountId
+ - key: accountId
+ foreign-key: updateAuthor.accountId
diff --git a/_data/taps/schemas/jira/v2/jira-v2-tables.yml b/_data/taps/schemas/jira/v2/jira-v2-tables.yml
new file mode 100644
index 000000000..423925a38
--- /dev/null
+++ b/_data/taps/schemas/jira/v2/jira-v2-tables.yml
@@ -0,0 +1,242 @@
+tap: jira
+version: '2'
+tables:
+- name: changelogs
+ description: 'The `{{ table.name }}` table contains info about the changelogs associated
+ with an issue.
+
+
+ **Note**: Due to a {{ integration.display_name }} limitation in the endpoint Stitch
+ uses to replicate changelogs, only the 100 most recent changelogs for any individual
+ issue can be replicated. Refer to [{{ integration.display_name }}''s documentation](https://confluence.atlassian.com/jirakb/jira-cloud-rest-api-limits-the-number-of-changelogs-returned-938840277.html){:target="new"}
+ for more info.
+
+
+ #### Replication requirements {#replication-requirements-changelogs}
+
+
+ To replicate this data:
+
+
+ 1. The [`issues`](#issues) table must also be set to replicate. **Note**: When
+ an issue is updated, all available changelogs for that issue will also be replicated.
+
+
+ 2. The `Browse Projects` [project {{ integration.display_name }} permission]({{
+ integration.project-permissions-doc }}){:target="new"} is required. Refer to [{{
+ integration.display_name }}''s API documentation]({{ table.doc-link }}){:target="new"}
+ for more info.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-jira/blob/master/tap_jira/schemas/changelogs.json
+ api-method: https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-issue-issueIdOrKey-changelog-get
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: components
+ description: "The `{{ table.name }}` table contains info about components in projects\
+ \ in your {{ integration.display_name }} account.\n\n#### Replication requirements\n\
+ \n**Note**: To replicate this data:\n\n 1. The [`projects`](#projects) table\
+ \ must also be set to replicate, and\n 2. The `Browse Projects` [project {{\
+ \ integration.display_name }} permission]({{ integration.project-permissions-doc\
+ \ }}){:target=\"new\"} is required. Refer to [{{ integration.display_name }}'s\
+ \ API documentation]({{ table.doc-link }}){:target=\"new\"} for more info.\n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-jira/blob/master/tap_jira/schemas/components.json
+ api-method: https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-project-components/#api-rest-api-2-project-projectidorkey-component-get
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: issues
+ description: "The `issues` table contains info about the issues in your {{ integration.display_name\
+ \ }} instance. This table only contains core issue data - some data is located\
+ \ in other tables, such as [`changelogs`](#changelogs), [`issue_comments`](#issue_comments),\
+ \ and [`issue_transitions`](#issue_transitions).\n\n**Note**: To replicate this\
+ \ data, the `Browse projects` [project {{ integration.display_name }} permission]({{\
+ \ integration.project-permissions-doc }}){:target=\"new\"} for the project that\
+ \ the issue is in is required. Refer to [{{ integration.display_name }}'s API\
+ \ documentation]({{ table.doc-link }}){:target=\"new\"} for more info.\n\n####\
+ \ Identifying deleted issues\n\nWhen an issue is hard-deleted in JIRA, the record\
+ \ for the issue will remain in your destination. This is due to the nature of\
+ \ Stitch [Replication Keys]({{ link.replication.rep-keys | prepend: baseurl }})\
+ \ and the design of JIRA's API:\n\n- **Replication Keys**: This table uses the\
+ \ values in the `{{ replication-keys | strip }}` column to identify new and updated\
+ \ data for replication. If a record is hard-deleted, there won't be a value for\
+ \ Stitch to check and thus no way to identify the change, meaning the record will\
+ \ remain in the destination.\n- **JIRA's API**: Currently, JIRA's API doesn't\
+ \ include a way to identify deleted issues.\n\nTo identify deleted issues, [Atlassian's\
+ \ suggested workaround](https://answers.atlassian.com/questions/75537/how-do-i-find-if-an-issue-has-been-deleted){:target=\"\
+ new\"} is:\n\n1. Create a status in JIRA that will be applied to issues you want\
+ \ to delete.\n2. **Before deleting the issue, apply the status**.\n3. Allow Stitch\
+ \ to extract and load the updated data into your destination.\n4. Delete the issue.\n\
+ 5. After Stitch finishes loading the data, use the `fields__status__name` field\
+ \ in your queries to filter issues with the deleted status you applied in step\
+ \ 2. For example, the following query would return any issues that had been marked\
+ \ with a the deleted status:\n\n ```sql\n SELECT *\n FROM stitch_jira.issues\n\
+ \ WHERE fields__status__name = 'Deleted'\n ```\n"
+ links:
+ doc-link: https://docs.atlassian.com/jira/REST/ondemand/#api/2/issue-getIssue
+ singer-schema: https://github.com/singer-io/tap-jira/blob/master/tap_jira/schemas/issues.json
+ api-method: https://docs.atlassian.com/jira/REST/cloud/#api/2/search-search
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: issue_comments
+ description: 'The `{{ table.name }}` table contains info about comments made on
+ issues.
+
+
+ #### Replication requirements {#replication-requirements-issue-comments}
+
+
+ To replicate this data:
+
+
+ 1. The [`issues`](#issues) table must also be set to replicate. **Note**: When
+ an issue is updated, all the comments for that issue will also be replicated.
+
+ 2. The `Browse Projects` [project {{ integration.display_name }} permission]({{
+ integration.project-permissions-doc }}){:target="new"} is required. Refer to [{{
+ integration.display_name }}''s API documentation]({{ table.doc-link }}){:target="new"}
+ for more info.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-jira/blob/master/tap_jira/schemas/issue_comments.json
+ api-method: https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-issue-issueIdOrKey-comment-get
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: issue_transitions
+ description: "The `{{ table.name }}` table contains info about issue transitions.\n\
+ \n#### Replication requirements {#replication-requirements-issue-transitions}\n\
+ \nTo replicate this data:\n\n1. The [`issues`](#issues) table must also be set\
+ \ to replicate. **Note**: When an issue is updated, all the transitions for that\
+ \ issue will also be replicated.\n 2. The `Browse Projects` [project {{ integration.display_name\
+ \ }} permission]({{ integration.project-permissions-doc }}){:target=\"new\"} is\
+ \ required. Refer to [{{ integration.display_name }}'s API documentation]({{ table.doc-link\
+ \ }}){:target=\"new\"} for more info.\n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-jira/blob/master/tap_jira/schemas/issue_transitions.json
+ api-method: https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-issue-issueIdOrKey-transitions-get
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-key: id
+- name: project_categories
+ description: 'The `{{ table.name }}` table contains info about project categories.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-jira/blob/master/tap_jira/schemas/project_categories.json
+ api-method: https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-projectCategory-get
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: project_types
+ description: 'The `{{ table.name }}` table contains info about project types.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-jira/blob/master/tap_jira/schemas/project_types.json
+ api-method: https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-project-type-get
+ table-details:
+ replication-method: Full Table
+ primary-key: key
+- name: resolutions
+ description: 'The `{{ table.name }}` table contains info about issue resolutions.
+
+
+ **Note**: To replicate this data, the `Administer {{ integration.display_name
+ }}` [global {{ integration.display_name }} permission]({{ integration.global-permissions-doc
+ }}){:target="new"} is required. Refer to [{{ integration.display_name }}''s API
+ documentation]({{ table.doc-link }}){:target="new"} for more info.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-jira/blob/master/tap_jira/schemas/resolutions.json
+ api-method: https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-projectCategory-post
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: roles
+ description: 'The `{{ table.name }}` table contains info about the project roles
+ in your {{ integration.display_name }} account.
+
+
+ **Note**: To replicate this data, the `Administer {{ integration.display_name
+ }}` [global {{ integration.display_name }} permission]({{ integration.global-permissions-doc
+ }}){:target="new"} is required. Refer to [{{ integration.display_name }}''s API
+ documentation]({{ table.doc-link }}){:target="new"} for more info.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-jira/blob/master/tap_jira/schemas/roles.json
+ api-method: https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-role-get
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: users
+ description: 'The `{{ table.name }}` table contains info about the users in your
+ {{ integration.display_name }} account.
+
+
+ **Note**: To replicate this data, the `Administer {{ integration.display_name
+ }}` [global {{ integration.display_name }} permission]({{ integration.global-permissions-doc
+ }}){:target="new"} is required. Refer to [{{ integration.display_name }}''s API
+ documentation]({{ table.doc-link }}){:target="new"} for more info.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-jira/blob/master/tap_jira/schemas/users.json
+ api-method: https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-user-search-get
+ table-details:
+ replication-method: Full Table
+ primary-key: accountId
+- name: versions
+ description: "The `{{ table.name }}` table contains info about versions in your\
+ \ {{ integration.display_name }} account.\n\n#### Replication requirements\n\n\
+ **Note**: To replicate this data:\n\n 1. The [`projects`](#projects) table must\
+ \ also be set to replicate, and\n 2. The `Browse Projects` [project {{ integration.display_name\
+ \ }} permission]({{ integration.project-permissions-doc }}){:target=\"new\"} is\
+ \ required. Refer to [{{ integration.display_name }}'s API documentation]({{ table.doc-link\
+ \ }}){:target=\"new\"} for more info.\n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-jira/blob/master/tap_jira/schemas/versions.json
+ api-method: https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-project-projectIdOrKey-versions-get
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: worklogs
+ description: 'The `{{ table.name }}` table contains info about the worklogs in your
+ {{ integration.display_name }} account.
+
+
+ **Note**: For a worklog to be replicated, it must be set as `Viewable by All Users`,
+ or the integration [authenticating user]() (visible in the integration''s {{ app.page-names.int-settings
+ }} page), must be a member of the project role/group with permission to view the
+ worklog.
+
+
+ If you''re missing worklogs, verify that you have the required permissions to
+ access the worklog.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-jira/blob/master/tap_jira/schemas/worklogs.json
+ api-method: https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-worklog-updated-get
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated
+- name: projects
+ description: The `{{ table.name }}` table contains info about projects in your {{
+ integration.display_name }} account.
+ links:
+ singer-schema: https://github.com/singer-io/tap-jira/blob/master/tap_jira/schemas/projects.json
+ doc-link: https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-projects/#api-rest-api-2-project-get
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/jira/v2/json/changelogs.json b/_data/taps/schemas/jira/v2/json/changelogs.json
new file mode 100644
index 000000000..5042a2ac1
--- /dev/null
+++ b/_data/taps/schemas/jira/v2/json/changelogs.json
@@ -0,0 +1,399 @@
+{
+ "definitions": {
+ "history-metadata-participant": {
+ "properties": {
+ "avatarUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "displayNameKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "History Metadata Participant",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "properties": {
+ "author": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatarUrls": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "User",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "historyMetadata": {
+ "properties": {
+ "activityDescription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "activityDescriptionKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "actor": {
+ "properties": {
+ "avatarUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "displayNameKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "History Metadata Participant",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "cause": {
+ "properties": {
+ "avatarUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "displayNameKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "History Metadata Participant",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "descriptionKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailDescription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailDescriptionKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "extraData": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "generator": {
+ "properties": {
+ "avatarUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "displayNameKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "History Metadata Participant",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "History Metadata",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issueId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "items": {
+ "items": {
+ "properties": {
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fieldId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fieldtype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "from": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fromString": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "toString": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Change Item",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "title": "Change History",
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/jira/v2/json/components.json b/_data/taps/schemas/jira/v2/json/components.json
new file mode 100644
index 000000000..57b197898
--- /dev/null
+++ b/_data/taps/schemas/jira/v2/json/components.json
@@ -0,0 +1,514 @@
+{
+ "properties": {
+ "assignee": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatarUrls": {
+ "properties": {
+ "16x16": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "24x24": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "32x32": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "48x48": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "assigneeType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "componentBean": {
+ "properties": {
+ "assignee": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatarUrls": {
+ "properties": {
+ "16x16": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "24x24": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "32x32": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "48x48": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "assigneeType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "isAssigneeTypeValid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "lead": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatarUrls": {
+ "properties": {
+ "16x16": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "24x24": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "32x32": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "48x48": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "project": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "projectId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "realAssignee": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatarUrls": {
+ "properties": {
+ "16x16": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "24x24": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "32x32": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "48x48": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "realAssigneeType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "isAssigneeTypeValid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "issueCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lead": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatarUrls": {
+ "properties": {
+ "16x16": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "24x24": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "32x32": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "48x48": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "project": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "projectId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "realAssignee": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatarUrls": {
+ "properties": {
+ "16x16": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "24x24": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "32x32": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "48x48": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "realAssigneeType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/jira/v2/json/issue_comments.json b/_data/taps/schemas/jira/v2/json/issue_comments.json
new file mode 100644
index 000000000..5a552a2a3
--- /dev/null
+++ b/_data/taps/schemas/jira/v2/json/issue_comments.json
@@ -0,0 +1,319 @@
+{
+ "definitions": {
+ "user": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatarUrls": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "User",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "properties": {
+ "author": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatarUrls": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "User",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issueId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "jsdPublic": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "properties": {
+ "items": {
+ "properties": {
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {}
+ },
+ "title": "Entity Property",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "renderedBody": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updateAuthor": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatarUrls": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "User",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "visibility": {
+ "properties": {
+ "type": {
+ "enum": [
+ "group",
+ "role"
+ ],
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Visibility",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "title": "Comment",
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/jira/v2/json/issue_transitions.json b/_data/taps/schemas/jira/v2/json/issue_transitions.json
new file mode 100644
index 000000000..922a28d97
--- /dev/null
+++ b/_data/taps/schemas/jira/v2/json/issue_transitions.json
@@ -0,0 +1,386 @@
+{
+ "definitions": {
+ "field-meta": {
+ "properties": {
+ "allowedValues": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "autoCompleteUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "defaultValue": {},
+ "hasDefaultValue": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operations": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "schema": {
+ "properties": {
+ "custom": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "system": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Json Type",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "title": "Field Meta",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "json-type": {
+ "properties": {
+ "custom": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "system": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Json Type",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "properties": {
+ "expand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fields": {
+ "patternProperties": {
+ ".+": {
+ "properties": {
+ "allowedValues": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "autoCompleteUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "defaultValue": {},
+ "hasDefaultValue": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operations": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "schema": {
+ "properties": {
+ "custom": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "system": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Json Type",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "title": "Field Meta",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "hasScreen": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "isConditional": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "isGlobal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "isInitial": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "issueId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to": {
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iconUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statusCategory": {
+ "properties": {
+ "colorName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Status Category",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statusColor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Status",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "title": "Transition",
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/jira/v2/json/issues.json b/_data/taps/schemas/jira/v2/json/issues.json
new file mode 100644
index 000000000..c964333ed
--- /dev/null
+++ b/_data/taps/schemas/jira/v2/json/issues.json
@@ -0,0 +1,784 @@
+{
+ "definitions": {
+ "attachment": {
+ "properties": {
+ "author": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatarUrls": {
+ "properties": {
+ "16x16": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "24x24": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "32x32": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "48x48": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "content": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "filename": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mimeType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumbnail": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "field-meta": {
+ "properties": {
+ "allowedValues": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "autoCompleteUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "defaultValue": {},
+ "hasDefaultValue": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operations": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "schema": {
+ "properties": {
+ "custom": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "system": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Json Type",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "required": [
+ "required"
+ ],
+ "title": "Field Meta",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "json-type": {
+ "properties": {
+ "custom": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "system": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Json Type",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "simple-link": {
+ "properties": {
+ "href": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iconClass": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "styleClass": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "weight": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "title": "Simple Link",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "properties": {
+ "editmeta": {
+ "properties": {
+ "fields": {
+ "patternProperties": {
+ ".+": {
+ "properties": {
+ "allowedValues": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "autoCompleteUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "defaultValue": {},
+ "hasDefaultValue": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operations": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "schema": {
+ "properties": {
+ "custom": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "system": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Json Type",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "required": [
+ "required"
+ ],
+ "title": "Field Meta",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "title": "Edit Meta",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "expand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fields": {
+ "patternProperties": {
+ ".+": {}
+ },
+ "properties": {
+ "attachment": {
+ "items": {
+ "properties": {
+ "author": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatarUrls": {
+ "properties": {
+ "16x16": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "24x24": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "32x32": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "48x48": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "content": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "filename": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mimeType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumbnail": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "lastViewed": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "fieldsToInclude": {
+ "title": "Included Fields",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "names": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "properties": {
+ "properties": {
+ "properties": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "title": "Properties",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "renderedFields": {
+ "patternProperties": {
+ ".+": {}
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "schema": {
+ "patternProperties": {
+ ".+": {
+ "properties": {
+ "custom": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "system": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Json Type",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "versionedRepresentations": {
+ "patternProperties": {
+ ".+": {
+ "patternProperties": {
+ ".+": {}
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "title": "Issue",
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/jira/v2/json/project_categories.json b/_data/taps/schemas/jira/v2/json/project_categories.json
new file mode 100644
index 000000000..316cba6b6
--- /dev/null
+++ b/_data/taps/schemas/jira/v2/json/project_categories.json
@@ -0,0 +1,33 @@
+{
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Project Category",
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/jira/v2/json/project_types.json b/_data/taps/schemas/jira/v2/json/project_types.json
new file mode 100644
index 000000000..4da7f8d48
--- /dev/null
+++ b/_data/taps/schemas/jira/v2/json/project_types.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "descriptionI18nKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "formattedKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "icon": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Project Type",
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/jira/v2/json/projects.json b/_data/taps/schemas/jira/v2/json/projects.json
new file mode 100644
index 000000000..b8c7d9a32
--- /dev/null
+++ b/_data/taps/schemas/jira/v2/json/projects.json
@@ -0,0 +1,1241 @@
+{
+ "definitions": {
+ "simple-list-wrapper": {
+ "properties": {
+ "items": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Group",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "max-results": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "title": "Simple List Wrapper",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "user": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "applicationRoles": {
+ "properties": {
+ "items": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Group",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "max-results": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "title": "Simple List Wrapper",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "avatarUrls": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "groups": {
+ "properties": {
+ "items": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Group",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "max-results": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "title": "Simple List Wrapper",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "User",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "properties": {
+ "assigneeType": {
+ "enum": [
+ "PROJECT_LEAD",
+ "UNASSIGNED"
+ ],
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avatarUrls": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "components": {
+ "items": {
+ "properties": {
+ "assignee": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "applicationRoles": {
+ "properties": {
+ "items": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Group",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "max-results": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "title": "Simple List Wrapper",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "avatarUrls": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "groups": {
+ "properties": {
+ "items": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Group",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "max-results": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "title": "Simple List Wrapper",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "User",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "assigneeType": {
+ "enum": [
+ "PROJECT_DEFAULT",
+ "COMPONENT_LEAD",
+ "PROJECT_LEAD",
+ "UNASSIGNED"
+ ],
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "isAssigneeTypeValid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "lead": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "applicationRoles": {
+ "properties": {
+ "items": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Group",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "max-results": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "title": "Simple List Wrapper",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "avatarUrls": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "groups": {
+ "properties": {
+ "items": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Group",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "max-results": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "title": "Simple List Wrapper",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "User",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "leadUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "project": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "projectId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "realAssignee": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "applicationRoles": {
+ "properties": {
+ "items": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Group",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "max-results": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "title": "Simple List Wrapper",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "avatarUrls": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "groups": {
+ "properties": {
+ "items": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Group",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "max-results": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "title": "Simple List Wrapper",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "User",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "realAssigneeType": {
+ "enum": [
+ "PROJECT_DEFAULT",
+ "COMPONENT_LEAD",
+ "PROJECT_LEAD",
+ "UNASSIGNED"
+ ],
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Component",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issueTypes": {
+ "items": {
+ "properties": {
+ "avatarId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iconUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subtask": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "title": "Issue Type",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lead": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "applicationRoles": {
+ "properties": {
+ "items": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Group",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "max-results": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "title": "Simple List Wrapper",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "avatarUrls": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "groups": {
+ "properties": {
+ "items": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Group",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "max-results": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "title": "Simple List Wrapper",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "User",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "projectCategory": {
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Project Category",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "projectKeys": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "projectTypeKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "roles": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "simplified": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Project",
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/jira/v2/json/resolutions.json b/_data/taps/schemas/jira/v2/json/resolutions.json
new file mode 100644
index 000000000..f429828ec
--- /dev/null
+++ b/_data/taps/schemas/jira/v2/json/resolutions.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iconUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Resolution",
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/jira/v2/json/roles.json b/_data/taps/schemas/jira/v2/json/roles.json
new file mode 100644
index 000000000..4a555f7aa
--- /dev/null
+++ b/_data/taps/schemas/jira/v2/json/roles.json
@@ -0,0 +1,79 @@
+{
+ "id": "https://docs.atlassian.com/jira/REST/schema/project-role#",
+ "properties": {
+ "actors": {
+ "items": {
+ "properties": {
+ "avatarUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Role Actor",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Project Role",
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/jira/v2/json/users.json b/_data/taps/schemas/jira/v2/json/users.json
new file mode 100644
index 000000000..6c98184ec
--- /dev/null
+++ b/_data/taps/schemas/jira/v2/json/users.json
@@ -0,0 +1,83 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accountType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatarUrls": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "User",
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/jira/v2/json/versions.json b/_data/taps/schemas/jira/v2/json/versions.json
new file mode 100644
index 000000000..09778d76f
--- /dev/null
+++ b/_data/taps/schemas/jira/v2/json/versions.json
@@ -0,0 +1,184 @@
+{
+ "properties": {
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "moveUnfixedIssuesTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operations": {
+ "items": {
+ "properties": {
+ "href": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iconClass": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "styleClass": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "weight": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "title": "Simple Link",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "overdue": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "project": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "projectId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "releaseDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "released": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "remotelinks": {
+ "items": {
+ "properties": {
+ "link": {},
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Remote Entity Link",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "userReleaseDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "userStartDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "title": "Version",
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/jira/v2/json/worklogs.json b/_data/taps/schemas/jira/v2/json/worklogs.json
new file mode 100644
index 000000000..ec04322ae
--- /dev/null
+++ b/_data/taps/schemas/jira/v2/json/worklogs.json
@@ -0,0 +1,325 @@
+{
+ "definitions": {
+ "user": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatarUrls": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "User",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "properties": {
+ "author": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatarUrls": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "User",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "comment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issueId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "properties": {
+ "items": {
+ "properties": {
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {}
+ },
+ "title": "Entity Property",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "started": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "timeSpent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeSpentSeconds": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updateAuthor": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatarUrls": {
+ "patternProperties": {
+ ".+": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "User",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "visibility": {
+ "properties": {
+ "type": {
+ "enum": [
+ "group",
+ "role"
+ ],
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Visibility",
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "title": "Worklog",
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/klaviyo/v1/json/bounce.json b/_data/taps/schemas/klaviyo/v1/json/bounce.json
new file mode 100644
index 000000000..6d96f1d71
--- /dev/null
+++ b/_data/taps/schemas/klaviyo/v1/json/bounce.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "datetime": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_properties": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "person": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statistic_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/klaviyo/v1/json/campaigns.json b/_data/taps/schemas/klaviyo/v1/json/campaigns.json
new file mode 100644
index 000000000..804a2eb96
--- /dev/null
+++ b/_data/taps/schemas/klaviyo/v1/json/campaigns.json
@@ -0,0 +1,150 @@
+{
+ "properties": {
+ "campaign_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "excluded_lists": {},
+ "from_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "from_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_segmented": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "list_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lists": {},
+ "message_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "num_recipients": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "send_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "sent_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "template": {
+ "properties": {
+ "html": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "template_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/klaviyo/v1/json/click.json b/_data/taps/schemas/klaviyo/v1/json/click.json
new file mode 100644
index 000000000..6d96f1d71
--- /dev/null
+++ b/_data/taps/schemas/klaviyo/v1/json/click.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "datetime": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_properties": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "person": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statistic_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/klaviyo/v1/json/clicked_sms.json b/_data/taps/schemas/klaviyo/v1/json/clicked_sms.json
new file mode 100644
index 000000000..6d96f1d71
--- /dev/null
+++ b/_data/taps/schemas/klaviyo/v1/json/clicked_sms.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "datetime": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_properties": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "person": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statistic_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/klaviyo/v1/json/consented_to_receive.json b/_data/taps/schemas/klaviyo/v1/json/consented_to_receive.json
new file mode 100644
index 000000000..6d96f1d71
--- /dev/null
+++ b/_data/taps/schemas/klaviyo/v1/json/consented_to_receive.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "datetime": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_properties": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "person": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statistic_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/klaviyo/v1/json/dropped_email.json b/_data/taps/schemas/klaviyo/v1/json/dropped_email.json
new file mode 100644
index 000000000..6d96f1d71
--- /dev/null
+++ b/_data/taps/schemas/klaviyo/v1/json/dropped_email.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "datetime": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_properties": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "person": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statistic_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/klaviyo/v1/json/failed_to_deliver.json b/_data/taps/schemas/klaviyo/v1/json/failed_to_deliver.json
new file mode 100644
index 000000000..6d96f1d71
--- /dev/null
+++ b/_data/taps/schemas/klaviyo/v1/json/failed_to_deliver.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "datetime": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_properties": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "person": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statistic_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/klaviyo/v1/json/failed_to_deliver_automated_response.json b/_data/taps/schemas/klaviyo/v1/json/failed_to_deliver_automated_response.json
new file mode 100644
index 000000000..6d96f1d71
--- /dev/null
+++ b/_data/taps/schemas/klaviyo/v1/json/failed_to_deliver_automated_response.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "datetime": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_properties": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "person": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statistic_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/klaviyo/v1/json/global_exclusions.json b/_data/taps/schemas/klaviyo/v1/json/global_exclusions.json
new file mode 100644
index 000000000..b1497ef7f
--- /dev/null
+++ b/_data/taps/schemas/klaviyo/v1/json/global_exclusions.json
@@ -0,0 +1,32 @@
+{
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/klaviyo/v1/json/lists.json b/_data/taps/schemas/klaviyo/v1/json/lists.json
new file mode 100644
index 000000000..938ece1eb
--- /dev/null
+++ b/_data/taps/schemas/klaviyo/v1/json/lists.json
@@ -0,0 +1,56 @@
+{
+ "properties": {
+ "created": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "folder": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "list_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "person_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/klaviyo/v1/json/mark_as_spam.json b/_data/taps/schemas/klaviyo/v1/json/mark_as_spam.json
new file mode 100644
index 000000000..6d96f1d71
--- /dev/null
+++ b/_data/taps/schemas/klaviyo/v1/json/mark_as_spam.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "datetime": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_properties": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "person": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statistic_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/klaviyo/v1/json/open.json b/_data/taps/schemas/klaviyo/v1/json/open.json
new file mode 100644
index 000000000..6d96f1d71
--- /dev/null
+++ b/_data/taps/schemas/klaviyo/v1/json/open.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "datetime": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_properties": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "person": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statistic_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/klaviyo/v1/json/receive.json b/_data/taps/schemas/klaviyo/v1/json/receive.json
new file mode 100644
index 000000000..6d96f1d71
--- /dev/null
+++ b/_data/taps/schemas/klaviyo/v1/json/receive.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "datetime": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_properties": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "person": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statistic_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/klaviyo/v1/json/received_automated_response.json b/_data/taps/schemas/klaviyo/v1/json/received_automated_response.json
new file mode 100644
index 000000000..6d96f1d71
--- /dev/null
+++ b/_data/taps/schemas/klaviyo/v1/json/received_automated_response.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "datetime": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_properties": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "person": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statistic_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/klaviyo/v1/json/received_sms.json b/_data/taps/schemas/klaviyo/v1/json/received_sms.json
new file mode 100644
index 000000000..6d96f1d71
--- /dev/null
+++ b/_data/taps/schemas/klaviyo/v1/json/received_sms.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "datetime": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_properties": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "person": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statistic_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/klaviyo/v1/json/sent_sms.json b/_data/taps/schemas/klaviyo/v1/json/sent_sms.json
new file mode 100644
index 000000000..6d96f1d71
--- /dev/null
+++ b/_data/taps/schemas/klaviyo/v1/json/sent_sms.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "datetime": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_properties": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "person": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statistic_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/klaviyo/v1/json/subscribe_list.json b/_data/taps/schemas/klaviyo/v1/json/subscribe_list.json
new file mode 100644
index 000000000..6d96f1d71
--- /dev/null
+++ b/_data/taps/schemas/klaviyo/v1/json/subscribe_list.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "datetime": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_properties": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "person": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statistic_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/klaviyo/v1/json/unsub_list.json b/_data/taps/schemas/klaviyo/v1/json/unsub_list.json
new file mode 100644
index 000000000..6d96f1d71
--- /dev/null
+++ b/_data/taps/schemas/klaviyo/v1/json/unsub_list.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "datetime": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_properties": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "person": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statistic_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/klaviyo/v1/json/unsubscribe.json b/_data/taps/schemas/klaviyo/v1/json/unsubscribe.json
new file mode 100644
index 000000000..6d96f1d71
--- /dev/null
+++ b/_data/taps/schemas/klaviyo/v1/json/unsubscribe.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "datetime": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_properties": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "person": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statistic_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/klaviyo/v1/json/unsubscribed_from_sms.json b/_data/taps/schemas/klaviyo/v1/json/unsubscribed_from_sms.json
new file mode 100644
index 000000000..6d96f1d71
--- /dev/null
+++ b/_data/taps/schemas/klaviyo/v1/json/unsubscribed_from_sms.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "datetime": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_properties": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "person": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statistic_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/klaviyo/v1/json/update_email_preferences.json b/_data/taps/schemas/klaviyo/v1/json/update_email_preferences.json
new file mode 100644
index 000000000..6d96f1d71
--- /dev/null
+++ b/_data/taps/schemas/klaviyo/v1/json/update_email_preferences.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "datetime": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_properties": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "person": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statistic_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/klaviyo/v1/klaviyo-v1-tables.yml b/_data/taps/schemas/klaviyo/v1/klaviyo-v1-tables.yml
new file mode 100644
index 000000000..63dfc1ff5
--- /dev/null
+++ b/_data/taps/schemas/klaviyo/v1/klaviyo-v1-tables.yml
@@ -0,0 +1,247 @@
+tap: klaviyo
+version: '1'
+tap-repo-schemas: true
+tables:
+- name: bounce
+ description: 'The `{{ table.name }}` table contains metrics related to `Bounced
+ Email` events.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-klaviyo/blob/master/tap_klaviyo/schemas/bounce.json
+ api-method: https://www.klaviyo.com/docs/api/metrics
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: timestamp
+- name: campaigns
+ description: 'The {{ table.name }} table contains info about the campaigns in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-klaviyo/blob/master/tap_klaviyo/schemas/campaigns.json
+ api-method: https://apidocs.klaviyo.com/reference/campaigns#get-campaigns
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: click
+ description: 'The `{{ table.name }}` table contains metrics related to `Clicked
+ Email` events.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-klaviyo/blob/master/tap_klaviyo/schemas/click.json
+ api-method: https://www.klaviyo.com/docs/api/metrics
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: timestamp
+- name: clicked_sms
+ description: 'The `{{ table.name }}` table contains metrics related to `Clicked
+ SMS` events.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-klaviyo/blob/master/tap_klaviyo/schemas/clicked_sms.json
+ api-method: https://www.klaviyo.com/docs/api/metrics
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: timestamp
+- name: consented_to_receive
+ description: 'The `{{ table.name }}` table contains metrics related to `Consented
+ to Receive SMS` events.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-klaviyo/blob/master/tap_klaviyo/schemas/consented_to_receive.json
+ api-method: https://www.klaviyo.com/docs/api/metrics
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: timestamp
+- name: dropped_email
+ description: 'The `{{ table.name }}` table contains metrics related to `Clicked
+ Email` events.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-klaviyo/blob/master/tap_klaviyo/schemas/dropped_email.json
+ api-method: https://www.klaviyo.com/docs/api/metrics
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: timestamp
+- name: failed_to_deliver
+ description: 'The `{{ table.name }}` table contains metrics related to `Failed to
+ Deliver SMS` events.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-klaviyo/blob/master/tap_klaviyo/schemas/failed_to_deliver.json
+ api-method: https://www.klaviyo.com/docs/api/metrics
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: timestamp
+- name: failed_to_deliver_automated_response
+ description: 'The `{{ table.name }}` table contains metrics related to `Failed to
+ Deliver Automated Response SMS` events.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-klaviyo/blob/master/tap_klaviyo/schemas/failed_to_deliver_automated_response.json
+ api-method: https://www.klaviyo.com/docs/api/metrics
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: timestamp
+- name: global_exclusions
+ description: 'The {{ table.name }} table contains info about the global exclusions
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-klaviyo/blob/master/tap_klaviyo/schemas/global_exclusions.json
+ api-method: https://apidocs.klaviyo.com/reference/lists-segments#get-global-exclusions
+ table-details:
+ replication-method: Full Table
+ primary-key: email
+- name: lists
+ description: 'The {{ table.name }} table contains info about the lists in your {{
+ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-klaviyo/blob/master/tap_klaviyo/schemas/lists.json
+ api-method: https://apidocs.klaviyo.com/reference/lists-segments#get-lists
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: mark_as_spam
+ description: 'The `{{ table.name }}` table contains metrics related to `Marked Email
+ as Spam` events.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-klaviyo/blob/master/tap_klaviyo/schemas/mark_as_spam.json
+ api-method: https://www.klaviyo.com/docs/api/metrics
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: timestamp
+- name: open
+ description: 'The `{{ table.name }}` table contains metrics related to `Opened Email`
+ events.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-klaviyo/blob/master/tap_klaviyo/schemas/open.json
+ api-method: https://www.klaviyo.com/docs/api/metrics
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: timestamp
+- name: receive
+ description: 'The `{{ table.name }}` table contains metrics related to `Received
+ Email` events.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-klaviyo/blob/master/tap_klaviyo/schemas/receive.json
+ api-method: https://www.klaviyo.com/docs/api/metrics
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: timestamp
+- name: received_automated_response
+ description: 'The `{{ table.name }}` table contains metrics related to `Received
+ Automated Response SMS` events.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-klaviyo/blob/master/tap_klaviyo/schemas/received_automated_response.json
+ api-method: https://www.klaviyo.com/docs/api/metrics
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: timestamp
+- name: received_sms
+ description: 'The `{{ table.name }}` table contains metrics related to `Received
+ SMS` events.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-klaviyo/blob/master/tap_klaviyo/schemas/received_sms.json
+ api-method: https://www.klaviyo.com/docs/api/metrics
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: timestamp
+- name: sent_sms
+ description: 'The `{{ table.name }}` table contains metrics related to `Sent SMS`
+ events.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-klaviyo/blob/master/tap_klaviyo/schemas/sent_sms.json
+ api-method: https://www.klaviyo.com/docs/api/metrics
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: timestamp
+- name: subscribe_list
+ description: 'The `{{ table.name }}` table contains metrics related to `Subscribed
+ to List` events.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-klaviyo/blob/master/tap_klaviyo/schemas/subscribe_list.json
+ api-method: https://www.klaviyo.com/docs/api/metrics
+ table-details:
+ replication-method: Key-based Incremental
+ replication-key: timestamp
+- name: unsubscribe
+ description: 'The `{{ table.name }}` table contains metrics related to `Unsubscribed`
+ events.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-klaviyo/blob/master/tap_klaviyo/schemas/unsubscribe.json
+ api-method: https://www.klaviyo.com/docs/api/metrics
+ table-details:
+ replication-method: Key-based Incremental
+ replication-key: timestamp
+- name: unsub_list
+ description: 'The `{{ table.name }}` table contains metrics related to `Unsubscribed
+ from List` events.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-klaviyo/blob/master/tap_klaviyo/schemas/unsub_list.json
+ api-method: https://www.klaviyo.com/docs/api/metrics
+ table-details:
+ replication-method: Key-based Incremental
+ replication-key: timestamp
+- name: update_email_preferences
+ description: 'The `{{ table.name }}` table contains metrics related to `Updated
+ Email Preferences` events.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-klaviyo/blob/master/tap_klaviyo/schemas/update_email_preferences.json
+ api-method: https://www.klaviyo.com/docs/api/metrics
+ table-details:
+ replication-method: Key-based Incremental
+ replication-key: timestamp
+- name: unsubscribed_from_sms
+ description: The `{{ table.name }}` table contains metrics related to `Unsubscribed
+ from SMS` events.
+ links:
+ singer-schema: https://github.com/singer-io/tap-klaviyo/blob/master/tap_klaviyo/schemas/unsubscribed_from_sms.json
+ api-method: https://www.klaviyo.com/docs/api/metrics
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: timestamp
diff --git a/_data/taps/schemas/kustomer/v1/json/conversations.json b/_data/taps/schemas/kustomer/v1/json/conversations.json
new file mode 100644
index 000000000..7791a2c19
--- /dev/null
+++ b/_data/taps/schemas/kustomer/v1/json/conversations.json
@@ -0,0 +1,1668 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "assigned_teams": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "assigned_users": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "channels": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "custom": {
+ "additionalProperties": false,
+ "properties": {
+ "auto_response_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "business_area_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "case_id_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "close_out_tree": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contact_reason_tree": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "desk_ticket_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issue_report_tree": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "new_primary_menu_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_number_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_status_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "return_requested_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "return_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rma_id_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "serial_number_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shopify_order_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "yale_call_reason_tree": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "yale_connectivity_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "yale_finish_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "yale_model_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "yale_notes_txt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "yale_resolution_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "yale_serial_number_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customer": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "direction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "done_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ended": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "ended_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ended_by": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ended_by_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ended_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_done": {
+ "additionalProperties": false,
+ "properties": {
+ "assigned_teams": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "assigned_users": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "business_time": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by_teams": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "last_message_direction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_message_direction_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "message_count_by_channel": {
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sms": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "voice": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "note_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "outbound_message_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "outbound_message_count_by_channel": {
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sms": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "voice": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "time": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "first_message_in": {
+ "additionalProperties": false,
+ "properties": {
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "direction_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sent_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "first_message_out": {
+ "additionalProperties": false,
+ "properties": {
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by_teams": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "direction_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sent_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "first_response": {
+ "additionalProperties": false,
+ "properties": {
+ "assigned_teams": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "assigned_users": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "business_time": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by_teams": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "response_time": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sent_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "time": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "first_response_since_last_done": {
+ "additionalProperties": false,
+ "properties": {
+ "assigned_teams": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "assigned_users": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "business_time": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by_teams": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "response_time": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sent_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "time": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "imported_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_activity_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_done": {
+ "additionalProperties": false,
+ "properties": {
+ "assigned_teams": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "assigned_users": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "business_time": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by_teams": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "last_message_direction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_message_direction_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "message_count_by_channel": {
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sms": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "voice": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "note_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "outbound_message_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "outbound_message_count_by_channel": {
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sms": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "voice": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "time": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_message_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_message_direction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_message_in": {
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sent_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_message_out": {
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sent_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_message_unresponded_to": {
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sent_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_message_unresponded_to_since_last_done": {
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sent_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_received_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_response": {
+ "additionalProperties": false,
+ "properties": {
+ "assigned_teams": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "assigned_users": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "business_time": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by_teams": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "time": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "links": {
+ "additionalProperties": false,
+ "properties": {
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "merged_target": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "message_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "modified_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modified_by": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "org": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "outbound_message_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "preview": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "priority": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "queue": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "reopen_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "rev": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "role_group_versions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "satisfaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "satisfaction_level": {
+ "additionalProperties": false,
+ "properties": {
+ "sent_by_teams": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "sla": {
+ "additionalProperties": false,
+ "properties": {
+ "breach": {
+ "additionalProperties": false,
+ "properties": {
+ "at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metric": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "breached": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "matched_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metrics": {
+ "additionalProperties": false,
+ "properties": {
+ "first_response": {
+ "additionalProperties": false,
+ "properties": {
+ "breach_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "satisfied_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "longest_unresponded_message": {
+ "additionalProperties": false,
+ "properties": {
+ "breach_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "satisfied_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "summary": {
+ "additionalProperties": false,
+ "properties": {
+ "first_breach_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "satisfied_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "sla_data": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "sla_version": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "snooze": {
+ "additionalProperties": false,
+ "properties": {
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "snooze_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggested_shortcuts": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggested_tags": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "total_done": {
+ "additionalProperties": false,
+ "properties": {
+ "business_time": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "time": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_open": {
+ "additionalProperties": false,
+ "properties": {
+ "business_time": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "business_time_since_last_done": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "time": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "time_since_last_done": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_snooze": {
+ "additionalProperties": false,
+ "properties": {
+ "business_time": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "time": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/kustomer/v1/json/customers.json b/_data/taps/schemas/kustomer/v1/json/customers.json
new file mode 100644
index 000000000..47a4c3608
--- /dev/null
+++ b/_data/taps/schemas/kustomer/v1/json/customers.json
@@ -0,0 +1,982 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "active_users": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "birthday_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversation_counts": {
+ "additionalProperties": false,
+ "properties": {
+ "all": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "done": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "open": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "snoozed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "custom": {
+ "additionalProperties": false,
+ "properties": {
+ "accepts_marketing_bool": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "activation_date_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_version_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "august_id_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "august_serial_number_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bridge_date_installed_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bridge_serial_number_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "connect_firmware_version_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "connect_serial_number_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "doorbell_date_installed_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "doorbell_firmware_version_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "doorbell_serial_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "firmware_version_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "keypad_firmware_version_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "keypad_installed_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "keypad_serial_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_autoresponse_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_order_id_num": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "last_order_name_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latest_csat_num": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "latest_nps_num": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "lock_date_installed_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lock_firmware_version_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lock_serial_number_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "orders_count_num": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "os00_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner_guest_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "products_owned_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "proof_of_purchase_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "purchase_date_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sales_force_id_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_spent_num": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_icon": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emails": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_ids": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "facebook_ids": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gender": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "imported_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "instagram_ids": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_activity_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_conversation": {
+ "additionalProperties": false,
+ "properties": {
+ "channels": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sentiment": {
+ "additionalProperties": false,
+ "properties": {
+ "confidence": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "polarity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tags": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_customer_activity_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_message_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_message_in": {
+ "additionalProperties": false,
+ "properties": {
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sent_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sentiment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_message_out": {
+ "additionalProperties": false,
+ "properties": {
+ "sent_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_message_unresponded_to": {
+ "additionalProperties": false,
+ "properties": {
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sent_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_seen_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "links": {
+ "additionalProperties": false,
+ "properties": {
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locations": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modified_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modified_by": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "org": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "phones": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "preview": {
+ "additionalProperties": false,
+ "properties": {
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preview_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "progressive_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recent_items": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "meta": {
+ "additionalProperties": false,
+ "properties": {
+ "klass_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "recent_location": {
+ "additionalProperties": false,
+ "properties": {
+ "updated_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "rev": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "role_group_versions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "satisfaction_level": {
+ "additionalProperties": false,
+ "properties": {
+ "first_satisfaction": {
+ "additionalProperties": false,
+ "properties": {
+ "sent_by_teams": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_satisfaction": {
+ "additionalProperties": false,
+ "properties": {
+ "sent_by_teams": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "sentiment": {
+ "additionalProperties": false,
+ "properties": {
+ "confidence": {
+ "type": "number"
+ },
+ "polarity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shared_emails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shared_external_ids": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shared_phones": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shared_socials": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "signed_up_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "smooch_ids": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "socials": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "time_zone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "urls": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "watchers": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "whatsapps": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/kustomer/v1/json/kobjects.json b/_data/taps/schemas/kustomer/v1/json/kobjects.json
new file mode 100644
index 000000000..f44ea791e
--- /dev/null
+++ b/_data/taps/schemas/kustomer/v1/json/kobjects.json
@@ -0,0 +1,234 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom": {
+ "additionalProperties": false,
+ "properties": {
+ "billing_status_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "comment_txt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delighted_link_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_number_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_updated_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "purchase_amount_num": {
+ "type": "integer"
+ },
+ "score_num": {
+ "type": "integer"
+ },
+ "shipping_address_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_country_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_state_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_zip_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "skus_txt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "special_instructions_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_price_num": {
+ "type": "number"
+ },
+ "total_price_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customer": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "icon": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "klass": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "links": {
+ "additionalProperties": false,
+ "properties": {
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "org": {
+ "additionalProperties": false,
+ "properties": {
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/kustomer/v1/json/messages.json b/_data/taps/schemas/kustomer/v1/json/messages.json
new file mode 100644
index 000000000..99dfc3c16
--- /dev/null
+++ b/_data/taps/schemas/kustomer/v1/json/messages.json
@@ -0,0 +1,240 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom": {
+ "additionalProperties": false,
+ "properties": {
+ "billing_status_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "comment_txt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delighted_link_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_number_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_updated_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "purchase_amount_num": {
+ "type": "integer"
+ },
+ "score_num": {
+ "type": "integer"
+ },
+ "shipping_address_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_country_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_state_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_zip_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "skus_txt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "special_instructions_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_price_num": {
+ "type": "number"
+ },
+ "total_price_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customer": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "icon": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "images": {
+ "type": "array"
+ },
+ "klass": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "links": {
+ "additionalProperties": false,
+ "properties": {
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "org": {
+ "additionalProperties": false,
+ "properties": {
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tags": {
+ "type": "array"
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/kustomer/v1/json/notes.json b/_data/taps/schemas/kustomer/v1/json/notes.json
new file mode 100644
index 000000000..a106af754
--- /dev/null
+++ b/_data/taps/schemas/kustomer/v1/json/notes.json
@@ -0,0 +1,238 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversation": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_by": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customer": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "deleted_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted_by": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "imported_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "links": {
+ "additionalProperties": false,
+ "properties": {
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "modified_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "modified_by": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "org": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user_mentions": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/kustomer/v1/json/shortcuts.json b/_data/taps/schemas/kustomer/v1/json/shortcuts.json
new file mode 100644
index 000000000..bd5f0dfd6
--- /dev/null
+++ b/_data/taps/schemas/kustomer/v1/json/shortcuts.json
@@ -0,0 +1,519 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "conversation": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "additionalProperties": false,
+ "properties": {
+ "operator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tags": {
+ "additionalProperties": false,
+ "properties": {
+ "operator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_by": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "draft": {
+ "additionalProperties": false,
+ "properties": {
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_private": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "links": {
+ "additionalProperties": false,
+ "properties": {
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "modified_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modified_by": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "org": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "payload": {
+ "additionalProperties": false,
+ "properties": {
+ "text": {
+ "additionalProperties": false,
+ "properties": {
+ "blocks": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "data": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "depth": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "entity_ranges": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "key": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "length": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "offset": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "inline_style_ranges": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "length": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "offset": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "style": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "entity_map": {
+ "additionalProperties": false,
+ "properties": {
+ "0": {
+ "additionalProperties": false,
+ "properties": {
+ "data": {
+ "additionalProperties": false,
+ "properties": {
+ "fallback_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "mutability": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "1": {
+ "additionalProperties": false,
+ "properties": {
+ "data": {
+ "additionalProperties": false,
+ "properties": {
+ "fallback_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "mutability": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "2": {
+ "additionalProperties": false,
+ "properties": {
+ "data": {
+ "additionalProperties": false,
+ "properties": {
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "mutability": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "3": {
+ "additionalProperties": false,
+ "properties": {
+ "data": {
+ "additionalProperties": false,
+ "properties": {
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "mutability": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/kustomer/v1/json/tags.json b/_data/taps/schemas/kustomer/v1/json/tags.json
new file mode 100644
index 000000000..a93bba178
--- /dev/null
+++ b/_data/taps/schemas/kustomer/v1/json/tags.json
@@ -0,0 +1,132 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_by": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "links": {
+ "additionalProperties": false,
+ "properties": {
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "modified_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modified_by": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "org": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/kustomer/v1/json/teams.json b/_data/taps/schemas/kustomer/v1/json/teams.json
new file mode 100644
index 000000000..496a7de17
--- /dev/null
+++ b/_data/taps/schemas/kustomer/v1/json/teams.json
@@ -0,0 +1,197 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_by": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "deleted_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deleted_by": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "icon": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "links": {
+ "additionalProperties": false,
+ "properties": {
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "members": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "modified_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modified_by": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "org": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "role_groups": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/kustomer/v1/json/users.json b/_data/taps/schemas/kustomer/v1/json/users.json
new file mode 100644
index 000000000..37168a054
--- /dev/null
+++ b/_data/taps/schemas/kustomer/v1/json/users.json
@@ -0,0 +1,230 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_by": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "deleted_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_signature": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_verified_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_email_verified_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "links": {
+ "additionalProperties": false,
+ "properties": {
+ "self": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "mobile": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modified_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modified_by": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "org": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "password": {
+ "additionalProperties": false,
+ "properties": {
+ "allow_new": {
+ "type": "boolean"
+ },
+ "force_new": {
+ "type": "boolean"
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "role_groups": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "roles": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/kustomer/v1/kustomer-v1-foreign-keys.yml b/_data/taps/schemas/kustomer/v1/kustomer-v1-foreign-keys.yml
new file mode 100644
index 000000000..556c9024e
--- /dev/null
+++ b/_data/taps/schemas/kustomer/v1/kustomer-v1-foreign-keys.yml
@@ -0,0 +1,40 @@
+tap: kustomer
+version: '1'
+keys:
+ users_id:
+ - table: users
+ keys:
+ - id
+ teams_id:
+ - table: teams
+ keys:
+ - id
+ tags_id:
+ - table: tags
+ keys:
+ - id
+ shortcuts_id:
+ - table: shortcuts
+ keys:
+ - id
+ notes_id:
+ - table: notes
+ keys:
+ - id
+ kobjects_id:
+ - table: kobjects
+ keys:
+ - id
+ customers_id:
+ - table: customers
+ keys:
+ - id
+ conversations_id:
+ - table: conversations
+ keys:
+ - id
+ messages_id:
+ - table: messages
+ keys:
+ - id
+tables: []
diff --git a/_data/taps/schemas/kustomer/v1/kustomer-v1-tables.yml b/_data/taps/schemas/kustomer/v1/kustomer-v1-tables.yml
new file mode 100644
index 000000000..8e6cfae4c
--- /dev/null
+++ b/_data/taps/schemas/kustomer/v1/kustomer-v1-tables.yml
@@ -0,0 +1,121 @@
+tap: kustomer
+version: '1'
+tables:
+- name: conversations
+ description: 'The `{{ table.name }}` table contains information about conversations
+ in the {{ integration.display_name }} app.
+
+ '
+ links:
+ doc-link: https://dev.kustomer.com/v1/conversations/
+ singer-schema: https://github.com/singer-io/tap-kustomer/blob/master/tap_kustomer/schemas/conversations.json
+ api-method: https://dev.kustomer.com/v1/conversations/get-conversations
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: customers
+ description: 'The `{{ table.name }}` table contains information about customers
+ in the {{ integration.display_name }} app.
+
+ '
+ links:
+ doc-link: https://dev.kustomer.com/v1/customers/
+ singer-schema: https://github.com/singer-io/tap-kustomer/blob/master/tap_kustomer/schemas/customers.json
+ api-method: https://dev.kustomer.com/v1/customers/get-customers
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: kobjects
+ description: 'The `{{ table.name }}` table contains information about {{ integration.display_name
+ }} objects in the {{ integration.display_name }} app.
+
+ '
+ links:
+ doc-link: https://dev.kustomer.com/v1/klasses/
+ singer-schema: https://github.com/singer-io/tap-kustomer/blob/master/tap_kustomer/schemas/kobjects.json
+ api-method: https://dev.kustomer.com/v1/klasses/get-kobject
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: messages
+ description: 'The `{{ table.name }}` table contains information about messages in
+ the {{ integration.display_name }} app.
+
+ '
+ links:
+ doc-link: https://dev.kustomer.com/v1/messages/
+ singer-schema: https://github.com/singer-io/tap-kustomer/blob/master/tap_kustomer/schemas/messages.json
+ api-method: https://dev.kustomer.com/v1/messages/get-message
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: notes
+ description: 'The `{{ table.name }}` table contains information about notes in the
+ {{ integration.display_name }} app.
+
+ '
+ links:
+ doc-link: https://dev.kustomer.com/v1/notes/
+ singer-schema: https://github.com/singer-io/tap-kustomer/blob/master/tap_kustomer/schemas/notes.json
+ api-method: https://dev.kustomer.com/v1/notes/get-notes
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: shortcuts
+ description: 'The `{{ table.name }}` table contains information about shortcuts
+ in the {{ integration.display_name }} app.
+
+ '
+ links:
+ doc-link: https://dev.kustomer.com/v1/shortcuts
+ singer-schema: https://github.com/singer-io/tap-kustomer/blob/master/tap_kustomer/schemas/shortcuts.json
+ api-method: https://dev.kustomer.com/v1/shortcuts/KaRhy9CmfHsmaG4gZ
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: tags
+ description: 'The `{{ table.name }}` table contains information about tags in the
+ {{ integration.display_name }} app.
+
+ '
+ links:
+ doc-link: https://dev.kustomer.com/v1/tags/
+ singer-schema: https://github.com/singer-io/tap-kustomer/blob/master/tap_kustomer/schemas/tags.json
+ api-method: https://dev.kustomer.com/v1/tags/NWydnz3xaPBWCePQp
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: teams
+ description: 'The `{{ table.name }}` table contains information about teams in the
+ {{ integration.display_name }} app.
+
+ '
+ links:
+ doc-link: https://dev.kustomer.com/v1/teams/
+ singer-schema: https://github.com/singer-io/tap-kustomer/blob/master/tap_kustomer/schemas/teams.json
+ api-method: https://dev.kustomer.com/v1/teams/get-team
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: users
+ description: 'The `{{ table.name }}` table contains information about users in the
+ {{ integration.display_name }} app.
+
+ '
+ links:
+ doc-link: https://dev.kustomer.com/v1/users/
+ singer-schema: https://github.com/singer-io/tap-kustomer/blob/master/tap_kustomer/schemas/users.json
+ api-method: https://dev.kustomer.com/v1/users/get-user
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/lever/v1/json/archive_reasons.json b/_data/taps/schemas/lever/v1/json/archive_reasons.json
new file mode 100644
index 000000000..199f65b6d
--- /dev/null
+++ b/_data/taps/schemas/lever/v1/json/archive_reasons.json
@@ -0,0 +1,11 @@
+{
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "text": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/lever/v1/json/candidate_applications.json b/_data/taps/schemas/lever/v1/json/candidate_applications.json
new file mode 100644
index 000000000..21fb10f4f
--- /dev/null
+++ b/_data/taps/schemas/lever/v1/json/candidate_applications.json
@@ -0,0 +1,57 @@
+{
+ "properties": {
+ "archived": {},
+ "candidateId": {
+ "type": "string"
+ },
+ "comments": {},
+ "company": {},
+ "createdAt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "customQuestions": {},
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": "string"
+ },
+ "links": {},
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {},
+ "posting": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postingHiringManager": {},
+ "postingOwner": {},
+ "requisitionForHire": {},
+ "resume": {},
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/lever/v1/json/candidate_offers.json b/_data/taps/schemas/lever/v1/json/candidate_offers.json
new file mode 100644
index 000000000..00bc19c09
--- /dev/null
+++ b/_data/taps/schemas/lever/v1/json/candidate_offers.json
@@ -0,0 +1,120 @@
+{
+ "properties": {
+ "approvedAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "creator": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "fields": {
+ "items": {
+ "properties": {
+ "identifier": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "text": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": "string"
+ },
+ "sentAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "signatures": {
+ "properties": {
+ "email": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "firstOpenedAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "lastOpenedAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "role": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signed": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "signedAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "status": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/lever/v1/json/candidate_referrals.json b/_data/taps/schemas/lever/v1/json/candidate_referrals.json
new file mode 100644
index 000000000..51b08ab36
--- /dev/null
+++ b/_data/taps/schemas/lever/v1/json/candidate_referrals.json
@@ -0,0 +1,123 @@
+{
+ "properties": {
+ "baseTemplateId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "completedAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "fields": {
+ "items": {
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "options": {
+ "items": {
+ "properties": {
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "prompt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "id": {
+ "type": "string"
+ },
+ "instructions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referrer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/lever/v1/json/candidate_resumes.json b/_data/taps/schemas/lever/v1/json/candidate_resumes.json
new file mode 100644
index 000000000..db5aca153
--- /dev/null
+++ b/_data/taps/schemas/lever/v1/json/candidate_resumes.json
@@ -0,0 +1,28 @@
+{
+ "properties": {
+ "createdAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "file": {
+ "properties": {},
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "id": {
+ "type": "string"
+ },
+ "parsedData": {
+ "properties": {},
+ "type": [
+ "object",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/lever/v1/json/candidates.json b/_data/taps/schemas/lever/v1/json/candidates.json
new file mode 100644
index 000000000..6b8478c1c
--- /dev/null
+++ b/_data/taps/schemas/lever/v1/json/candidates.json
@@ -0,0 +1,217 @@
+{
+ "properties": {
+ "applications": {
+ "items": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "archived": {
+ "properties": {
+ "archivedAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "reason": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "contact": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "dataProtection": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "emails": {
+ "items": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "followers": {
+ "items": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "headline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": "string"
+ },
+ "isAnonymized": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "lastAdvancedAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "lastInteractionAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "links": {
+ "items": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "location": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "origin": {
+ "type": "string"
+ },
+ "owner": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "phones": {
+ "items": {
+ "properties": {
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "resume": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "snoozedUntil": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "sources": {
+ "items": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "stage": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "stageChanges": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "urls": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/lever/v1/json/opportunities.json b/_data/taps/schemas/lever/v1/json/opportunities.json
new file mode 100644
index 000000000..bd3be635c
--- /dev/null
+++ b/_data/taps/schemas/lever/v1/json/opportunities.json
@@ -0,0 +1,210 @@
+{
+ "properties": {
+ "applications": {
+ "items": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "archived": {
+ "properties": {
+ "archivedAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "reason": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "contact": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "dataProtection": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "emails": {
+ "items": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "followers": {
+ "items": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "headline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": "string"
+ },
+ "isAnonymized": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "lastAdvancedAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "lastInteractionAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "links": {
+ "items": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "location": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "origin": {
+ "type": "string"
+ },
+ "owner": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "phones": {
+ "items": {
+ "properties": {
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "snoozedUntil": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "sources": {
+ "items": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "stage": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "stageChanges": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "urls": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/lever/v1/json/opportunity_applications.json b/_data/taps/schemas/lever/v1/json/opportunity_applications.json
new file mode 100644
index 000000000..21fb10f4f
--- /dev/null
+++ b/_data/taps/schemas/lever/v1/json/opportunity_applications.json
@@ -0,0 +1,57 @@
+{
+ "properties": {
+ "archived": {},
+ "candidateId": {
+ "type": "string"
+ },
+ "comments": {},
+ "company": {},
+ "createdAt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "customQuestions": {},
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": "string"
+ },
+ "links": {},
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {},
+ "posting": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postingHiringManager": {},
+ "postingOwner": {},
+ "requisitionForHire": {},
+ "resume": {},
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/lever/v1/json/opportunity_offers.json b/_data/taps/schemas/lever/v1/json/opportunity_offers.json
new file mode 100644
index 000000000..6028f7dc1
--- /dev/null
+++ b/_data/taps/schemas/lever/v1/json/opportunity_offers.json
@@ -0,0 +1,240 @@
+{
+ "properties": {
+ "approved": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "approvedAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "creator": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "fields": {
+ "items": {
+ "properties": {
+ "identifier": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "text": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": "string"
+ },
+ "opportunityId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "posting": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "sentAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "sentDocument": {
+ "properties": {
+ "downloadUrl": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "fileName": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "uploadedAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "signatures": {
+ "properties": {
+ "candidate": {
+ "properties": {
+ "email": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "firstOpenedAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "lastOpenedAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "role": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signed": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "signedAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "email": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "firstOpenedAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "lastOpenedAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "role": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signed": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "signedAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "signedDocument": {
+ "properties": {
+ "downloadUrl": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "fileName": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "uploadedAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "status": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/lever/v1/json/opportunity_referrals.json b/_data/taps/schemas/lever/v1/json/opportunity_referrals.json
new file mode 100644
index 000000000..51b08ab36
--- /dev/null
+++ b/_data/taps/schemas/lever/v1/json/opportunity_referrals.json
@@ -0,0 +1,123 @@
+{
+ "properties": {
+ "baseTemplateId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "completedAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "fields": {
+ "items": {
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "options": {
+ "items": {
+ "properties": {
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "prompt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "id": {
+ "type": "string"
+ },
+ "instructions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referrer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/lever/v1/json/opportunity_resumes.json b/_data/taps/schemas/lever/v1/json/opportunity_resumes.json
new file mode 100644
index 000000000..db5aca153
--- /dev/null
+++ b/_data/taps/schemas/lever/v1/json/opportunity_resumes.json
@@ -0,0 +1,28 @@
+{
+ "properties": {
+ "createdAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "file": {
+ "properties": {},
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "id": {
+ "type": "string"
+ },
+ "parsedData": {
+ "properties": {},
+ "type": [
+ "object",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/lever/v1/json/postings.json b/_data/taps/schemas/lever/v1/json/postings.json
new file mode 100644
index 000000000..ca68d97c3
--- /dev/null
+++ b/_data/taps/schemas/lever/v1/json/postings.json
@@ -0,0 +1,190 @@
+{
+ "properties": {
+ "categories": {
+ "properties": {
+ "commitment": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "department": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "level": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "location": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "team": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "content": {
+ "properties": {
+ "closing": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "customQuestions": {
+ "items": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": "array"
+ },
+ "description": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "lists": {
+ "items": {
+ "properties": {
+ "content": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "text": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "distributionChannels": {
+ "items": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "followers": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "hiringManager": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "id": {
+ "type": "string"
+ },
+ "owner": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "reqCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "state": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "text": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "urls": {
+ "properties": {
+ "apply": {
+ "type": "string"
+ },
+ "list": {
+ "type": "string"
+ },
+ "show": {
+ "type": "string"
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "user": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/lever/v1/json/requisitions.json b/_data/taps/schemas/lever/v1/json/requisitions.json
new file mode 100644
index 000000000..d02b3a325
--- /dev/null
+++ b/_data/taps/schemas/lever/v1/json/requisitions.json
@@ -0,0 +1,106 @@
+{
+ "properties": {
+ "backfill": {
+ "type": "boolean"
+ },
+ "compensationBand": {},
+ "createdAt": {
+ "type": "date-time"
+ },
+ "creator": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "customFields": {},
+ "department": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "employmentStatus": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "headcountHired": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "headcountTotal": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "hiringManager": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "id": {
+ "type": "string"
+ },
+ "internalNotes": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "location": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "offerIds": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "owner": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "postings": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "requisitionCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "status": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "team": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/lever/v1/json/sources.json b/_data/taps/schemas/lever/v1/json/sources.json
new file mode 100644
index 000000000..6b296c6aa
--- /dev/null
+++ b/_data/taps/schemas/lever/v1/json/sources.json
@@ -0,0 +1,11 @@
+{
+ "properties": {
+ "count": {
+ "type": "integer"
+ },
+ "text": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/lever/v1/json/stages.json b/_data/taps/schemas/lever/v1/json/stages.json
new file mode 100644
index 000000000..199f65b6d
--- /dev/null
+++ b/_data/taps/schemas/lever/v1/json/stages.json
@@ -0,0 +1,11 @@
+{
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "text": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/lever/v1/json/users.json b/_data/taps/schemas/lever/v1/json/users.json
new file mode 100644
index 000000000..a039765b0
--- /dev/null
+++ b/_data/taps/schemas/lever/v1/json/users.json
@@ -0,0 +1,56 @@
+{
+ "properties": {
+ "accessRole": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "deactivatedAt": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "email": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "externalDirectoryId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "photo": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "username": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/lever/v1/lever-v1-foreign-keys.yml b/_data/taps/schemas/lever/v1/lever-v1-foreign-keys.yml
new file mode 100644
index 000000000..51160b69b
--- /dev/null
+++ b/_data/taps/schemas/lever/v1/lever-v1-foreign-keys.yml
@@ -0,0 +1,1906 @@
+tap: lever
+version: '1'
+keys:
+ archive_reasons_:
+ - table: archive_reasons
+ keys:
+ - id
+ - table: candidate_applications
+ keys:
+ - archived.reason
+ - table: candidates
+ keys:
+ - archived.reason
+ - table: opportunity_applications
+ keys:
+ - archived.reason
+ - table: opportunities
+ keys:
+ - archived.reason
+ opportunity_applications_:
+ - table: candidate_applications
+ keys:
+ - id
+ - table: candidates
+ keys:
+ - applications
+ - table: opportunities
+ keys:
+ - applications
+ - table: opportunity_applications
+ keys:
+ - id
+ _contact:
+ - table: candidates
+ keys:
+ - contact
+ - table: opportunities
+ keys:
+ - contact
+ opportunity_offers_:
+ - table: candidate_offers
+ keys:
+ - id
+ - table: opportunity_offers
+ keys:
+ - id
+ - table: requisitions
+ keys:
+ - offerIds
+ opportunities_opportunityId:
+ - table: candidate_applications
+ keys:
+ - candidateId
+ - table: candidates
+ keys:
+ - id
+ - table: opportunity_applications
+ keys:
+ - candidateId
+ - table: opportunity_offers
+ keys:
+ - opportunityId
+ - table: opportunities
+ keys:
+ - id
+ postings_posting:
+ - table: candidate_applications
+ keys:
+ - posting
+ - table: opportunity_applications
+ keys:
+ - posting
+ - table: opportunity_offers
+ keys:
+ - posting
+ - table: postings
+ keys:
+ - id
+ - table: requisitions
+ keys:
+ - postings
+ opportunity_referrals_:
+ - table: candidate_referrals
+ keys:
+ - id
+ - table: opportunity_referrals
+ keys:
+ - id
+ opportunity_resumes_:
+ - table: candidate_resumes
+ keys:
+ - id
+ - table: opportunity_resumes
+ keys:
+ - id
+ requisitions_:
+ - table: candidate_applications
+ keys:
+ - requisitionForHire.id
+ - table: opportunity_applications
+ keys:
+ - requisitionForHire.id
+ - table: requisitions
+ keys:
+ - id
+ sources_:
+ - table: candidates
+ keys:
+ - sources
+ stages_stage:
+ - table: candidates
+ keys:
+ - stage
+ - stageChanges.toStageId
+ - table: opportunities
+ keys:
+ - stage
+ - stageChanges.toStageId
+ - table: stages
+ keys:
+ - id
+ users_user:
+ - table: candidate_applications
+ keys:
+ - postingHiringManager
+ - postingOwner
+ - requisitionForHire.hiringManagerOnHire
+ - user
+ - table: candidate_offers
+ keys:
+ - creator
+ - table: candidate_referrals
+ keys:
+ - referrer
+ - user
+ - table: candidates
+ keys:
+ - followers
+ - owner
+ - stageChanges.userId
+ - table: opportunities
+ keys:
+ - followers
+ - owner
+ - stageChanges.userId
+ - table: opportunity_applications
+ keys:
+ - postingHiringManager
+ - postingOwner
+ - requisitionForHire.hiringManagerOnHire
+ - user
+ - table: opportunity_offers
+ keys:
+ - creator
+ - table: opportunity_referrals
+ keys:
+ - referrer
+ - user
+ - table: postings
+ keys:
+ - followers
+ - hiringManager
+ - owner
+ - user
+ - table: requisitions
+ keys:
+ - creator
+ - hiringManager
+ - owner
+tables:
+- table-name: archive_reasons
+ join:
+ - table-name: candidate_applications
+ keys:
+ - key: id
+ foreign-key: archived.reason
+ - table-name: candidates
+ keys:
+ - key: id
+ foreign-key: archived.reason
+ - table-name: opportunity_applications
+ keys:
+ - key: id
+ foreign-key: archived.reason
+ - table-name: opportunities
+ keys:
+ - key: id
+ foreign-key: archived.reason
+- table-name: candidate_applications
+ join:
+ - table-name: archive_reasons
+ keys:
+ - key: archived.reason
+ foreign-key: id
+ - table-name: candidates
+ keys:
+ - key: archived.reason
+ foreign-key: archived.reason
+ - key: id
+ foreign-key: applications
+ - key: candidateId
+ foreign-key: id
+ - key: postingHiringManager
+ foreign-key: followers
+ - key: postingOwner
+ foreign-key: followers
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: followers
+ - key: user
+ foreign-key: followers
+ - key: postingHiringManager
+ foreign-key: owner
+ - key: postingOwner
+ foreign-key: owner
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: owner
+ - key: user
+ foreign-key: owner
+ - key: postingHiringManager
+ foreign-key: stageChanges.userId
+ - key: postingOwner
+ foreign-key: stageChanges.userId
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: stageChanges.userId
+ - key: user
+ foreign-key: stageChanges.userId
+ - table-name: opportunity_applications
+ keys:
+ - key: archived.reason
+ foreign-key: archived.reason
+ - key: id
+ foreign-key: id
+ - key: candidateId
+ foreign-key: candidateId
+ - key: posting
+ foreign-key: posting
+ - key: requisitionForHire.id
+ foreign-key: requisitionForHire.id
+ - key: postingHiringManager
+ foreign-key: postingHiringManager
+ - key: postingOwner
+ foreign-key: postingHiringManager
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: postingHiringManager
+ - key: user
+ foreign-key: postingHiringManager
+ - key: postingHiringManager
+ foreign-key: postingOwner
+ - key: postingOwner
+ foreign-key: postingOwner
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: postingOwner
+ - key: user
+ foreign-key: postingOwner
+ - key: postingHiringManager
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: postingOwner
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: user
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: postingHiringManager
+ foreign-key: user
+ - key: postingOwner
+ foreign-key: user
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: user
+ - key: user
+ foreign-key: user
+ - table-name: opportunities
+ keys:
+ - key: archived.reason
+ foreign-key: archived.reason
+ - key: id
+ foreign-key: applications
+ - key: candidateId
+ foreign-key: id
+ - key: postingHiringManager
+ foreign-key: followers
+ - key: postingOwner
+ foreign-key: followers
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: followers
+ - key: user
+ foreign-key: followers
+ - key: postingHiringManager
+ foreign-key: owner
+ - key: postingOwner
+ foreign-key: owner
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: owner
+ - key: user
+ foreign-key: owner
+ - key: postingHiringManager
+ foreign-key: stageChanges.userId
+ - key: postingOwner
+ foreign-key: stageChanges.userId
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: stageChanges.userId
+ - key: user
+ foreign-key: stageChanges.userId
+ - table-name: opportunity_offers
+ keys:
+ - key: candidateId
+ foreign-key: opportunityId
+ - key: posting
+ foreign-key: posting
+ - key: postingHiringManager
+ foreign-key: creator
+ - key: postingOwner
+ foreign-key: creator
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: creator
+ - key: user
+ foreign-key: creator
+ - table-name: postings
+ keys:
+ - key: posting
+ foreign-key: id
+ - key: postingHiringManager
+ foreign-key: followers
+ - key: postingOwner
+ foreign-key: followers
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: followers
+ - key: user
+ foreign-key: followers
+ - key: postingHiringManager
+ foreign-key: hiringManager
+ - key: postingOwner
+ foreign-key: hiringManager
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: hiringManager
+ - key: user
+ foreign-key: hiringManager
+ - key: postingHiringManager
+ foreign-key: owner
+ - key: postingOwner
+ foreign-key: owner
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: owner
+ - key: user
+ foreign-key: owner
+ - key: postingHiringManager
+ foreign-key: user
+ - key: postingOwner
+ foreign-key: user
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: user
+ - key: user
+ foreign-key: user
+ - table-name: requisitions
+ keys:
+ - key: posting
+ foreign-key: postings
+ - key: requisitionForHire.id
+ foreign-key: id
+ - key: postingHiringManager
+ foreign-key: creator
+ - key: postingOwner
+ foreign-key: creator
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: creator
+ - key: user
+ foreign-key: creator
+ - key: postingHiringManager
+ foreign-key: hiringManager
+ - key: postingOwner
+ foreign-key: hiringManager
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: hiringManager
+ - key: user
+ foreign-key: hiringManager
+ - key: postingHiringManager
+ foreign-key: owner
+ - key: postingOwner
+ foreign-key: owner
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: owner
+ - key: user
+ foreign-key: owner
+ - table-name: candidate_offers
+ keys:
+ - key: postingHiringManager
+ foreign-key: creator
+ - key: postingOwner
+ foreign-key: creator
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: creator
+ - key: user
+ foreign-key: creator
+ - table-name: candidate_referrals
+ keys:
+ - key: postingHiringManager
+ foreign-key: referrer
+ - key: postingOwner
+ foreign-key: referrer
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: referrer
+ - key: user
+ foreign-key: referrer
+ - key: postingHiringManager
+ foreign-key: user
+ - key: postingOwner
+ foreign-key: user
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: user
+ - key: user
+ foreign-key: user
+ - table-name: opportunity_referrals
+ keys:
+ - key: postingHiringManager
+ foreign-key: referrer
+ - key: postingOwner
+ foreign-key: referrer
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: referrer
+ - key: user
+ foreign-key: referrer
+ - key: postingHiringManager
+ foreign-key: user
+ - key: postingOwner
+ foreign-key: user
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: user
+ - key: user
+ foreign-key: user
+- table-name: candidates
+ join:
+ - table-name: archive_reasons
+ keys:
+ - key: archived.reason
+ foreign-key: id
+ - table-name: candidate_applications
+ keys:
+ - key: archived.reason
+ foreign-key: archived.reason
+ - key: applications
+ foreign-key: id
+ - key: id
+ foreign-key: candidateId
+ - key: followers
+ foreign-key: postingHiringManager
+ - key: owner
+ foreign-key: postingHiringManager
+ - key: stageChanges.userId
+ foreign-key: postingHiringManager
+ - key: followers
+ foreign-key: postingOwner
+ - key: owner
+ foreign-key: postingOwner
+ - key: stageChanges.userId
+ foreign-key: postingOwner
+ - key: followers
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: owner
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: stageChanges.userId
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: followers
+ foreign-key: user
+ - key: owner
+ foreign-key: user
+ - key: stageChanges.userId
+ foreign-key: user
+ - table-name: opportunity_applications
+ keys:
+ - key: archived.reason
+ foreign-key: archived.reason
+ - key: applications
+ foreign-key: id
+ - key: id
+ foreign-key: candidateId
+ - key: followers
+ foreign-key: postingHiringManager
+ - key: owner
+ foreign-key: postingHiringManager
+ - key: stageChanges.userId
+ foreign-key: postingHiringManager
+ - key: followers
+ foreign-key: postingOwner
+ - key: owner
+ foreign-key: postingOwner
+ - key: stageChanges.userId
+ foreign-key: postingOwner
+ - key: followers
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: owner
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: stageChanges.userId
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: followers
+ foreign-key: user
+ - key: owner
+ foreign-key: user
+ - key: stageChanges.userId
+ foreign-key: user
+ - table-name: opportunities
+ keys:
+ - key: archived.reason
+ foreign-key: archived.reason
+ - key: applications
+ foreign-key: applications
+ - key: contact
+ foreign-key: contact
+ - key: id
+ foreign-key: id
+ - key: stage
+ foreign-key: stage
+ - key: stageChanges.toStageId
+ foreign-key: stage
+ - key: stage
+ foreign-key: stageChanges.toStageId
+ - key: stageChanges.toStageId
+ foreign-key: stageChanges.toStageId
+ - key: followers
+ foreign-key: followers
+ - key: owner
+ foreign-key: followers
+ - key: stageChanges.userId
+ foreign-key: followers
+ - key: followers
+ foreign-key: owner
+ - key: owner
+ foreign-key: owner
+ - key: stageChanges.userId
+ foreign-key: owner
+ - key: followers
+ foreign-key: stageChanges.userId
+ - key: owner
+ foreign-key: stageChanges.userId
+ - key: stageChanges.userId
+ foreign-key: stageChanges.userId
+ - table-name: opportunity_offers
+ keys:
+ - key: id
+ foreign-key: opportunityId
+ - key: followers
+ foreign-key: creator
+ - key: owner
+ foreign-key: creator
+ - key: stageChanges.userId
+ foreign-key: creator
+ - table-name: stages
+ keys:
+ - key: stage
+ foreign-key: id
+ - key: stageChanges.toStageId
+ foreign-key: id
+ - table-name: candidate_offers
+ keys:
+ - key: followers
+ foreign-key: creator
+ - key: owner
+ foreign-key: creator
+ - key: stageChanges.userId
+ foreign-key: creator
+ - table-name: candidate_referrals
+ keys:
+ - key: followers
+ foreign-key: referrer
+ - key: owner
+ foreign-key: referrer
+ - key: stageChanges.userId
+ foreign-key: referrer
+ - key: followers
+ foreign-key: user
+ - key: owner
+ foreign-key: user
+ - key: stageChanges.userId
+ foreign-key: user
+ - table-name: opportunity_referrals
+ keys:
+ - key: followers
+ foreign-key: referrer
+ - key: owner
+ foreign-key: referrer
+ - key: stageChanges.userId
+ foreign-key: referrer
+ - key: followers
+ foreign-key: user
+ - key: owner
+ foreign-key: user
+ - key: stageChanges.userId
+ foreign-key: user
+ - table-name: postings
+ keys:
+ - key: followers
+ foreign-key: followers
+ - key: owner
+ foreign-key: followers
+ - key: stageChanges.userId
+ foreign-key: followers
+ - key: followers
+ foreign-key: hiringManager
+ - key: owner
+ foreign-key: hiringManager
+ - key: stageChanges.userId
+ foreign-key: hiringManager
+ - key: followers
+ foreign-key: owner
+ - key: owner
+ foreign-key: owner
+ - key: stageChanges.userId
+ foreign-key: owner
+ - key: followers
+ foreign-key: user
+ - key: owner
+ foreign-key: user
+ - key: stageChanges.userId
+ foreign-key: user
+ - table-name: requisitions
+ keys:
+ - key: followers
+ foreign-key: creator
+ - key: owner
+ foreign-key: creator
+ - key: stageChanges.userId
+ foreign-key: creator
+ - key: followers
+ foreign-key: hiringManager
+ - key: owner
+ foreign-key: hiringManager
+ - key: stageChanges.userId
+ foreign-key: hiringManager
+ - key: followers
+ foreign-key: owner
+ - key: owner
+ foreign-key: owner
+ - key: stageChanges.userId
+ foreign-key: owner
+- table-name: opportunity_applications
+ join:
+ - table-name: archive_reasons
+ keys:
+ - key: archived.reason
+ foreign-key: id
+ - table-name: candidate_applications
+ keys:
+ - key: archived.reason
+ foreign-key: archived.reason
+ - key: id
+ foreign-key: id
+ - key: candidateId
+ foreign-key: candidateId
+ - key: posting
+ foreign-key: posting
+ - key: requisitionForHire.id
+ foreign-key: requisitionForHire.id
+ - key: postingHiringManager
+ foreign-key: postingHiringManager
+ - key: postingOwner
+ foreign-key: postingHiringManager
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: postingHiringManager
+ - key: user
+ foreign-key: postingHiringManager
+ - key: postingHiringManager
+ foreign-key: postingOwner
+ - key: postingOwner
+ foreign-key: postingOwner
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: postingOwner
+ - key: user
+ foreign-key: postingOwner
+ - key: postingHiringManager
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: postingOwner
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: user
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: postingHiringManager
+ foreign-key: user
+ - key: postingOwner
+ foreign-key: user
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: user
+ - key: user
+ foreign-key: user
+ - table-name: candidates
+ keys:
+ - key: archived.reason
+ foreign-key: archived.reason
+ - key: id
+ foreign-key: applications
+ - key: candidateId
+ foreign-key: id
+ - key: postingHiringManager
+ foreign-key: followers
+ - key: postingOwner
+ foreign-key: followers
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: followers
+ - key: user
+ foreign-key: followers
+ - key: postingHiringManager
+ foreign-key: owner
+ - key: postingOwner
+ foreign-key: owner
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: owner
+ - key: user
+ foreign-key: owner
+ - key: postingHiringManager
+ foreign-key: stageChanges.userId
+ - key: postingOwner
+ foreign-key: stageChanges.userId
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: stageChanges.userId
+ - key: user
+ foreign-key: stageChanges.userId
+ - table-name: opportunities
+ keys:
+ - key: archived.reason
+ foreign-key: archived.reason
+ - key: id
+ foreign-key: applications
+ - key: candidateId
+ foreign-key: id
+ - key: postingHiringManager
+ foreign-key: followers
+ - key: postingOwner
+ foreign-key: followers
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: followers
+ - key: user
+ foreign-key: followers
+ - key: postingHiringManager
+ foreign-key: owner
+ - key: postingOwner
+ foreign-key: owner
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: owner
+ - key: user
+ foreign-key: owner
+ - key: postingHiringManager
+ foreign-key: stageChanges.userId
+ - key: postingOwner
+ foreign-key: stageChanges.userId
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: stageChanges.userId
+ - key: user
+ foreign-key: stageChanges.userId
+ - table-name: opportunity_offers
+ keys:
+ - key: candidateId
+ foreign-key: opportunityId
+ - key: posting
+ foreign-key: posting
+ - key: postingHiringManager
+ foreign-key: creator
+ - key: postingOwner
+ foreign-key: creator
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: creator
+ - key: user
+ foreign-key: creator
+ - table-name: postings
+ keys:
+ - key: posting
+ foreign-key: id
+ - key: postingHiringManager
+ foreign-key: followers
+ - key: postingOwner
+ foreign-key: followers
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: followers
+ - key: user
+ foreign-key: followers
+ - key: postingHiringManager
+ foreign-key: hiringManager
+ - key: postingOwner
+ foreign-key: hiringManager
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: hiringManager
+ - key: user
+ foreign-key: hiringManager
+ - key: postingHiringManager
+ foreign-key: owner
+ - key: postingOwner
+ foreign-key: owner
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: owner
+ - key: user
+ foreign-key: owner
+ - key: postingHiringManager
+ foreign-key: user
+ - key: postingOwner
+ foreign-key: user
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: user
+ - key: user
+ foreign-key: user
+ - table-name: requisitions
+ keys:
+ - key: posting
+ foreign-key: postings
+ - key: requisitionForHire.id
+ foreign-key: id
+ - key: postingHiringManager
+ foreign-key: creator
+ - key: postingOwner
+ foreign-key: creator
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: creator
+ - key: user
+ foreign-key: creator
+ - key: postingHiringManager
+ foreign-key: hiringManager
+ - key: postingOwner
+ foreign-key: hiringManager
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: hiringManager
+ - key: user
+ foreign-key: hiringManager
+ - key: postingHiringManager
+ foreign-key: owner
+ - key: postingOwner
+ foreign-key: owner
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: owner
+ - key: user
+ foreign-key: owner
+ - table-name: candidate_offers
+ keys:
+ - key: postingHiringManager
+ foreign-key: creator
+ - key: postingOwner
+ foreign-key: creator
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: creator
+ - key: user
+ foreign-key: creator
+ - table-name: candidate_referrals
+ keys:
+ - key: postingHiringManager
+ foreign-key: referrer
+ - key: postingOwner
+ foreign-key: referrer
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: referrer
+ - key: user
+ foreign-key: referrer
+ - key: postingHiringManager
+ foreign-key: user
+ - key: postingOwner
+ foreign-key: user
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: user
+ - key: user
+ foreign-key: user
+ - table-name: opportunity_referrals
+ keys:
+ - key: postingHiringManager
+ foreign-key: referrer
+ - key: postingOwner
+ foreign-key: referrer
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: referrer
+ - key: user
+ foreign-key: referrer
+ - key: postingHiringManager
+ foreign-key: user
+ - key: postingOwner
+ foreign-key: user
+ - key: requisitionForHire.hiringManagerOnHire
+ foreign-key: user
+ - key: user
+ foreign-key: user
+- table-name: opportunities
+ join:
+ - table-name: archive_reasons
+ keys:
+ - key: archived.reason
+ foreign-key: id
+ - table-name: candidate_applications
+ keys:
+ - key: archived.reason
+ foreign-key: archived.reason
+ - key: applications
+ foreign-key: id
+ - key: id
+ foreign-key: candidateId
+ - key: followers
+ foreign-key: postingHiringManager
+ - key: owner
+ foreign-key: postingHiringManager
+ - key: stageChanges.userId
+ foreign-key: postingHiringManager
+ - key: followers
+ foreign-key: postingOwner
+ - key: owner
+ foreign-key: postingOwner
+ - key: stageChanges.userId
+ foreign-key: postingOwner
+ - key: followers
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: owner
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: stageChanges.userId
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: followers
+ foreign-key: user
+ - key: owner
+ foreign-key: user
+ - key: stageChanges.userId
+ foreign-key: user
+ - table-name: candidates
+ keys:
+ - key: archived.reason
+ foreign-key: archived.reason
+ - key: applications
+ foreign-key: applications
+ - key: contact
+ foreign-key: contact
+ - key: id
+ foreign-key: id
+ - key: stage
+ foreign-key: stage
+ - key: stageChanges.toStageId
+ foreign-key: stage
+ - key: stage
+ foreign-key: stageChanges.toStageId
+ - key: stageChanges.toStageId
+ foreign-key: stageChanges.toStageId
+ - key: followers
+ foreign-key: followers
+ - key: owner
+ foreign-key: followers
+ - key: stageChanges.userId
+ foreign-key: followers
+ - key: followers
+ foreign-key: owner
+ - key: owner
+ foreign-key: owner
+ - key: stageChanges.userId
+ foreign-key: owner
+ - key: followers
+ foreign-key: stageChanges.userId
+ - key: owner
+ foreign-key: stageChanges.userId
+ - key: stageChanges.userId
+ foreign-key: stageChanges.userId
+ - table-name: opportunity_applications
+ keys:
+ - key: archived.reason
+ foreign-key: archived.reason
+ - key: applications
+ foreign-key: id
+ - key: id
+ foreign-key: candidateId
+ - key: followers
+ foreign-key: postingHiringManager
+ - key: owner
+ foreign-key: postingHiringManager
+ - key: stageChanges.userId
+ foreign-key: postingHiringManager
+ - key: followers
+ foreign-key: postingOwner
+ - key: owner
+ foreign-key: postingOwner
+ - key: stageChanges.userId
+ foreign-key: postingOwner
+ - key: followers
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: owner
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: stageChanges.userId
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: followers
+ foreign-key: user
+ - key: owner
+ foreign-key: user
+ - key: stageChanges.userId
+ foreign-key: user
+ - table-name: opportunity_offers
+ keys:
+ - key: id
+ foreign-key: opportunityId
+ - key: followers
+ foreign-key: creator
+ - key: owner
+ foreign-key: creator
+ - key: stageChanges.userId
+ foreign-key: creator
+ - table-name: stages
+ keys:
+ - key: stage
+ foreign-key: id
+ - key: stageChanges.toStageId
+ foreign-key: id
+ - table-name: candidate_offers
+ keys:
+ - key: followers
+ foreign-key: creator
+ - key: owner
+ foreign-key: creator
+ - key: stageChanges.userId
+ foreign-key: creator
+ - table-name: candidate_referrals
+ keys:
+ - key: followers
+ foreign-key: referrer
+ - key: owner
+ foreign-key: referrer
+ - key: stageChanges.userId
+ foreign-key: referrer
+ - key: followers
+ foreign-key: user
+ - key: owner
+ foreign-key: user
+ - key: stageChanges.userId
+ foreign-key: user
+ - table-name: opportunity_referrals
+ keys:
+ - key: followers
+ foreign-key: referrer
+ - key: owner
+ foreign-key: referrer
+ - key: stageChanges.userId
+ foreign-key: referrer
+ - key: followers
+ foreign-key: user
+ - key: owner
+ foreign-key: user
+ - key: stageChanges.userId
+ foreign-key: user
+ - table-name: postings
+ keys:
+ - key: followers
+ foreign-key: followers
+ - key: owner
+ foreign-key: followers
+ - key: stageChanges.userId
+ foreign-key: followers
+ - key: followers
+ foreign-key: hiringManager
+ - key: owner
+ foreign-key: hiringManager
+ - key: stageChanges.userId
+ foreign-key: hiringManager
+ - key: followers
+ foreign-key: owner
+ - key: owner
+ foreign-key: owner
+ - key: stageChanges.userId
+ foreign-key: owner
+ - key: followers
+ foreign-key: user
+ - key: owner
+ foreign-key: user
+ - key: stageChanges.userId
+ foreign-key: user
+ - table-name: requisitions
+ keys:
+ - key: followers
+ foreign-key: creator
+ - key: owner
+ foreign-key: creator
+ - key: stageChanges.userId
+ foreign-key: creator
+ - key: followers
+ foreign-key: hiringManager
+ - key: owner
+ foreign-key: hiringManager
+ - key: stageChanges.userId
+ foreign-key: hiringManager
+ - key: followers
+ foreign-key: owner
+ - key: owner
+ foreign-key: owner
+ - key: stageChanges.userId
+ foreign-key: owner
+- table-name: candidate_offers
+ join:
+ - table-name: opportunity_offers
+ keys:
+ - key: id
+ foreign-key: id
+ - key: creator
+ foreign-key: creator
+ - table-name: requisitions
+ keys:
+ - key: id
+ foreign-key: offerIds
+ - key: creator
+ foreign-key: creator
+ - key: creator
+ foreign-key: hiringManager
+ - key: creator
+ foreign-key: owner
+ - table-name: candidate_applications
+ keys:
+ - key: creator
+ foreign-key: postingHiringManager
+ - key: creator
+ foreign-key: postingOwner
+ - key: creator
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: creator
+ foreign-key: user
+ - table-name: candidate_referrals
+ keys:
+ - key: creator
+ foreign-key: referrer
+ - key: creator
+ foreign-key: user
+ - table-name: candidates
+ keys:
+ - key: creator
+ foreign-key: followers
+ - key: creator
+ foreign-key: owner
+ - key: creator
+ foreign-key: stageChanges.userId
+ - table-name: opportunities
+ keys:
+ - key: creator
+ foreign-key: followers
+ - key: creator
+ foreign-key: owner
+ - key: creator
+ foreign-key: stageChanges.userId
+ - table-name: opportunity_applications
+ keys:
+ - key: creator
+ foreign-key: postingHiringManager
+ - key: creator
+ foreign-key: postingOwner
+ - key: creator
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: creator
+ foreign-key: user
+ - table-name: opportunity_referrals
+ keys:
+ - key: creator
+ foreign-key: referrer
+ - key: creator
+ foreign-key: user
+ - table-name: postings
+ keys:
+ - key: creator
+ foreign-key: followers
+ - key: creator
+ foreign-key: hiringManager
+ - key: creator
+ foreign-key: owner
+ - key: creator
+ foreign-key: user
+- table-name: opportunity_offers
+ join:
+ - table-name: candidate_offers
+ keys:
+ - key: id
+ foreign-key: id
+ - key: creator
+ foreign-key: creator
+ - table-name: requisitions
+ keys:
+ - key: id
+ foreign-key: offerIds
+ - key: posting
+ foreign-key: postings
+ - key: creator
+ foreign-key: creator
+ - key: creator
+ foreign-key: hiringManager
+ - key: creator
+ foreign-key: owner
+ - table-name: candidate_applications
+ keys:
+ - key: opportunityId
+ foreign-key: candidateId
+ - key: posting
+ foreign-key: posting
+ - key: creator
+ foreign-key: postingHiringManager
+ - key: creator
+ foreign-key: postingOwner
+ - key: creator
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: creator
+ foreign-key: user
+ - table-name: candidates
+ keys:
+ - key: opportunityId
+ foreign-key: id
+ - key: creator
+ foreign-key: followers
+ - key: creator
+ foreign-key: owner
+ - key: creator
+ foreign-key: stageChanges.userId
+ - table-name: opportunity_applications
+ keys:
+ - key: opportunityId
+ foreign-key: candidateId
+ - key: posting
+ foreign-key: posting
+ - key: creator
+ foreign-key: postingHiringManager
+ - key: creator
+ foreign-key: postingOwner
+ - key: creator
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: creator
+ foreign-key: user
+ - table-name: opportunities
+ keys:
+ - key: opportunityId
+ foreign-key: id
+ - key: creator
+ foreign-key: followers
+ - key: creator
+ foreign-key: owner
+ - key: creator
+ foreign-key: stageChanges.userId
+ - table-name: postings
+ keys:
+ - key: posting
+ foreign-key: id
+ - key: creator
+ foreign-key: followers
+ - key: creator
+ foreign-key: hiringManager
+ - key: creator
+ foreign-key: owner
+ - key: creator
+ foreign-key: user
+ - table-name: candidate_referrals
+ keys:
+ - key: creator
+ foreign-key: referrer
+ - key: creator
+ foreign-key: user
+ - table-name: opportunity_referrals
+ keys:
+ - key: creator
+ foreign-key: referrer
+ - key: creator
+ foreign-key: user
+- table-name: requisitions
+ join:
+ - table-name: candidate_offers
+ keys:
+ - key: offerIds
+ foreign-key: id
+ - key: creator
+ foreign-key: creator
+ - key: hiringManager
+ foreign-key: creator
+ - key: owner
+ foreign-key: creator
+ - table-name: opportunity_offers
+ keys:
+ - key: offerIds
+ foreign-key: id
+ - key: postings
+ foreign-key: posting
+ - key: creator
+ foreign-key: creator
+ - key: hiringManager
+ foreign-key: creator
+ - key: owner
+ foreign-key: creator
+ - table-name: candidate_applications
+ keys:
+ - key: postings
+ foreign-key: posting
+ - key: id
+ foreign-key: requisitionForHire.id
+ - key: creator
+ foreign-key: postingHiringManager
+ - key: hiringManager
+ foreign-key: postingHiringManager
+ - key: owner
+ foreign-key: postingHiringManager
+ - key: creator
+ foreign-key: postingOwner
+ - key: hiringManager
+ foreign-key: postingOwner
+ - key: owner
+ foreign-key: postingOwner
+ - key: creator
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: hiringManager
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: owner
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: creator
+ foreign-key: user
+ - key: hiringManager
+ foreign-key: user
+ - key: owner
+ foreign-key: user
+ - table-name: opportunity_applications
+ keys:
+ - key: postings
+ foreign-key: posting
+ - key: id
+ foreign-key: requisitionForHire.id
+ - key: creator
+ foreign-key: postingHiringManager
+ - key: hiringManager
+ foreign-key: postingHiringManager
+ - key: owner
+ foreign-key: postingHiringManager
+ - key: creator
+ foreign-key: postingOwner
+ - key: hiringManager
+ foreign-key: postingOwner
+ - key: owner
+ foreign-key: postingOwner
+ - key: creator
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: hiringManager
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: owner
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: creator
+ foreign-key: user
+ - key: hiringManager
+ foreign-key: user
+ - key: owner
+ foreign-key: user
+ - table-name: postings
+ keys:
+ - key: postings
+ foreign-key: id
+ - key: creator
+ foreign-key: followers
+ - key: hiringManager
+ foreign-key: followers
+ - key: owner
+ foreign-key: followers
+ - key: creator
+ foreign-key: hiringManager
+ - key: hiringManager
+ foreign-key: hiringManager
+ - key: owner
+ foreign-key: hiringManager
+ - key: creator
+ foreign-key: owner
+ - key: hiringManager
+ foreign-key: owner
+ - key: owner
+ foreign-key: owner
+ - key: creator
+ foreign-key: user
+ - key: hiringManager
+ foreign-key: user
+ - key: owner
+ foreign-key: user
+ - table-name: candidate_referrals
+ keys:
+ - key: creator
+ foreign-key: referrer
+ - key: hiringManager
+ foreign-key: referrer
+ - key: owner
+ foreign-key: referrer
+ - key: creator
+ foreign-key: user
+ - key: hiringManager
+ foreign-key: user
+ - key: owner
+ foreign-key: user
+ - table-name: candidates
+ keys:
+ - key: creator
+ foreign-key: followers
+ - key: hiringManager
+ foreign-key: followers
+ - key: owner
+ foreign-key: followers
+ - key: creator
+ foreign-key: owner
+ - key: hiringManager
+ foreign-key: owner
+ - key: owner
+ foreign-key: owner
+ - key: creator
+ foreign-key: stageChanges.userId
+ - key: hiringManager
+ foreign-key: stageChanges.userId
+ - key: owner
+ foreign-key: stageChanges.userId
+ - table-name: opportunities
+ keys:
+ - key: creator
+ foreign-key: followers
+ - key: hiringManager
+ foreign-key: followers
+ - key: owner
+ foreign-key: followers
+ - key: creator
+ foreign-key: owner
+ - key: hiringManager
+ foreign-key: owner
+ - key: owner
+ foreign-key: owner
+ - key: creator
+ foreign-key: stageChanges.userId
+ - key: hiringManager
+ foreign-key: stageChanges.userId
+ - key: owner
+ foreign-key: stageChanges.userId
+ - table-name: opportunity_referrals
+ keys:
+ - key: creator
+ foreign-key: referrer
+ - key: hiringManager
+ foreign-key: referrer
+ - key: owner
+ foreign-key: referrer
+ - key: creator
+ foreign-key: user
+ - key: hiringManager
+ foreign-key: user
+ - key: owner
+ foreign-key: user
+- table-name: postings
+ join:
+ - table-name: candidate_applications
+ keys:
+ - key: id
+ foreign-key: posting
+ - key: followers
+ foreign-key: postingHiringManager
+ - key: hiringManager
+ foreign-key: postingHiringManager
+ - key: owner
+ foreign-key: postingHiringManager
+ - key: user
+ foreign-key: postingHiringManager
+ - key: followers
+ foreign-key: postingOwner
+ - key: hiringManager
+ foreign-key: postingOwner
+ - key: owner
+ foreign-key: postingOwner
+ - key: user
+ foreign-key: postingOwner
+ - key: followers
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: hiringManager
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: owner
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: user
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: followers
+ foreign-key: user
+ - key: hiringManager
+ foreign-key: user
+ - key: owner
+ foreign-key: user
+ - key: user
+ foreign-key: user
+ - table-name: opportunity_applications
+ keys:
+ - key: id
+ foreign-key: posting
+ - key: followers
+ foreign-key: postingHiringManager
+ - key: hiringManager
+ foreign-key: postingHiringManager
+ - key: owner
+ foreign-key: postingHiringManager
+ - key: user
+ foreign-key: postingHiringManager
+ - key: followers
+ foreign-key: postingOwner
+ - key: hiringManager
+ foreign-key: postingOwner
+ - key: owner
+ foreign-key: postingOwner
+ - key: user
+ foreign-key: postingOwner
+ - key: followers
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: hiringManager
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: owner
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: user
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: followers
+ foreign-key: user
+ - key: hiringManager
+ foreign-key: user
+ - key: owner
+ foreign-key: user
+ - key: user
+ foreign-key: user
+ - table-name: opportunity_offers
+ keys:
+ - key: id
+ foreign-key: posting
+ - key: followers
+ foreign-key: creator
+ - key: hiringManager
+ foreign-key: creator
+ - key: owner
+ foreign-key: creator
+ - key: user
+ foreign-key: creator
+ - table-name: requisitions
+ keys:
+ - key: id
+ foreign-key: postings
+ - key: followers
+ foreign-key: creator
+ - key: hiringManager
+ foreign-key: creator
+ - key: owner
+ foreign-key: creator
+ - key: user
+ foreign-key: creator
+ - key: followers
+ foreign-key: hiringManager
+ - key: hiringManager
+ foreign-key: hiringManager
+ - key: owner
+ foreign-key: hiringManager
+ - key: user
+ foreign-key: hiringManager
+ - key: followers
+ foreign-key: owner
+ - key: hiringManager
+ foreign-key: owner
+ - key: owner
+ foreign-key: owner
+ - key: user
+ foreign-key: owner
+ - table-name: candidate_offers
+ keys:
+ - key: followers
+ foreign-key: creator
+ - key: hiringManager
+ foreign-key: creator
+ - key: owner
+ foreign-key: creator
+ - key: user
+ foreign-key: creator
+ - table-name: candidate_referrals
+ keys:
+ - key: followers
+ foreign-key: referrer
+ - key: hiringManager
+ foreign-key: referrer
+ - key: owner
+ foreign-key: referrer
+ - key: user
+ foreign-key: referrer
+ - key: followers
+ foreign-key: user
+ - key: hiringManager
+ foreign-key: user
+ - key: owner
+ foreign-key: user
+ - key: user
+ foreign-key: user
+ - table-name: candidates
+ keys:
+ - key: followers
+ foreign-key: followers
+ - key: hiringManager
+ foreign-key: followers
+ - key: owner
+ foreign-key: followers
+ - key: user
+ foreign-key: followers
+ - key: followers
+ foreign-key: owner
+ - key: hiringManager
+ foreign-key: owner
+ - key: owner
+ foreign-key: owner
+ - key: user
+ foreign-key: owner
+ - key: followers
+ foreign-key: stageChanges.userId
+ - key: hiringManager
+ foreign-key: stageChanges.userId
+ - key: owner
+ foreign-key: stageChanges.userId
+ - key: user
+ foreign-key: stageChanges.userId
+ - table-name: opportunities
+ keys:
+ - key: followers
+ foreign-key: followers
+ - key: hiringManager
+ foreign-key: followers
+ - key: owner
+ foreign-key: followers
+ - key: user
+ foreign-key: followers
+ - key: followers
+ foreign-key: owner
+ - key: hiringManager
+ foreign-key: owner
+ - key: owner
+ foreign-key: owner
+ - key: user
+ foreign-key: owner
+ - key: followers
+ foreign-key: stageChanges.userId
+ - key: hiringManager
+ foreign-key: stageChanges.userId
+ - key: owner
+ foreign-key: stageChanges.userId
+ - key: user
+ foreign-key: stageChanges.userId
+ - table-name: opportunity_referrals
+ keys:
+ - key: followers
+ foreign-key: referrer
+ - key: hiringManager
+ foreign-key: referrer
+ - key: owner
+ foreign-key: referrer
+ - key: user
+ foreign-key: referrer
+ - key: followers
+ foreign-key: user
+ - key: hiringManager
+ foreign-key: user
+ - key: owner
+ foreign-key: user
+ - key: user
+ foreign-key: user
+- table-name: candidate_referrals
+ join:
+ - table-name: opportunity_referrals
+ keys:
+ - key: id
+ foreign-key: id
+ - key: referrer
+ foreign-key: referrer
+ - key: user
+ foreign-key: referrer
+ - key: referrer
+ foreign-key: user
+ - key: user
+ foreign-key: user
+ - table-name: candidate_applications
+ keys:
+ - key: referrer
+ foreign-key: postingHiringManager
+ - key: user
+ foreign-key: postingHiringManager
+ - key: referrer
+ foreign-key: postingOwner
+ - key: user
+ foreign-key: postingOwner
+ - key: referrer
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: user
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: referrer
+ foreign-key: user
+ - key: user
+ foreign-key: user
+ - table-name: candidate_offers
+ keys:
+ - key: referrer
+ foreign-key: creator
+ - key: user
+ foreign-key: creator
+ - table-name: candidates
+ keys:
+ - key: referrer
+ foreign-key: followers
+ - key: user
+ foreign-key: followers
+ - key: referrer
+ foreign-key: owner
+ - key: user
+ foreign-key: owner
+ - key: referrer
+ foreign-key: stageChanges.userId
+ - key: user
+ foreign-key: stageChanges.userId
+ - table-name: opportunities
+ keys:
+ - key: referrer
+ foreign-key: followers
+ - key: user
+ foreign-key: followers
+ - key: referrer
+ foreign-key: owner
+ - key: user
+ foreign-key: owner
+ - key: referrer
+ foreign-key: stageChanges.userId
+ - key: user
+ foreign-key: stageChanges.userId
+ - table-name: opportunity_applications
+ keys:
+ - key: referrer
+ foreign-key: postingHiringManager
+ - key: user
+ foreign-key: postingHiringManager
+ - key: referrer
+ foreign-key: postingOwner
+ - key: user
+ foreign-key: postingOwner
+ - key: referrer
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: user
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: referrer
+ foreign-key: user
+ - key: user
+ foreign-key: user
+ - table-name: opportunity_offers
+ keys:
+ - key: referrer
+ foreign-key: creator
+ - key: user
+ foreign-key: creator
+ - table-name: postings
+ keys:
+ - key: referrer
+ foreign-key: followers
+ - key: user
+ foreign-key: followers
+ - key: referrer
+ foreign-key: hiringManager
+ - key: user
+ foreign-key: hiringManager
+ - key: referrer
+ foreign-key: owner
+ - key: user
+ foreign-key: owner
+ - key: referrer
+ foreign-key: user
+ - key: user
+ foreign-key: user
+ - table-name: requisitions
+ keys:
+ - key: referrer
+ foreign-key: creator
+ - key: user
+ foreign-key: creator
+ - key: referrer
+ foreign-key: hiringManager
+ - key: user
+ foreign-key: hiringManager
+ - key: referrer
+ foreign-key: owner
+ - key: user
+ foreign-key: owner
+- table-name: opportunity_referrals
+ join:
+ - table-name: candidate_referrals
+ keys:
+ - key: id
+ foreign-key: id
+ - key: referrer
+ foreign-key: referrer
+ - key: user
+ foreign-key: referrer
+ - key: referrer
+ foreign-key: user
+ - key: user
+ foreign-key: user
+ - table-name: candidate_applications
+ keys:
+ - key: referrer
+ foreign-key: postingHiringManager
+ - key: user
+ foreign-key: postingHiringManager
+ - key: referrer
+ foreign-key: postingOwner
+ - key: user
+ foreign-key: postingOwner
+ - key: referrer
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: user
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: referrer
+ foreign-key: user
+ - key: user
+ foreign-key: user
+ - table-name: candidate_offers
+ keys:
+ - key: referrer
+ foreign-key: creator
+ - key: user
+ foreign-key: creator
+ - table-name: candidates
+ keys:
+ - key: referrer
+ foreign-key: followers
+ - key: user
+ foreign-key: followers
+ - key: referrer
+ foreign-key: owner
+ - key: user
+ foreign-key: owner
+ - key: referrer
+ foreign-key: stageChanges.userId
+ - key: user
+ foreign-key: stageChanges.userId
+ - table-name: opportunities
+ keys:
+ - key: referrer
+ foreign-key: followers
+ - key: user
+ foreign-key: followers
+ - key: referrer
+ foreign-key: owner
+ - key: user
+ foreign-key: owner
+ - key: referrer
+ foreign-key: stageChanges.userId
+ - key: user
+ foreign-key: stageChanges.userId
+ - table-name: opportunity_applications
+ keys:
+ - key: referrer
+ foreign-key: postingHiringManager
+ - key: user
+ foreign-key: postingHiringManager
+ - key: referrer
+ foreign-key: postingOwner
+ - key: user
+ foreign-key: postingOwner
+ - key: referrer
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: user
+ foreign-key: requisitionForHire.hiringManagerOnHire
+ - key: referrer
+ foreign-key: user
+ - key: user
+ foreign-key: user
+ - table-name: opportunity_offers
+ keys:
+ - key: referrer
+ foreign-key: creator
+ - key: user
+ foreign-key: creator
+ - table-name: postings
+ keys:
+ - key: referrer
+ foreign-key: followers
+ - key: user
+ foreign-key: followers
+ - key: referrer
+ foreign-key: hiringManager
+ - key: user
+ foreign-key: hiringManager
+ - key: referrer
+ foreign-key: owner
+ - key: user
+ foreign-key: owner
+ - key: referrer
+ foreign-key: user
+ - key: user
+ foreign-key: user
+ - table-name: requisitions
+ keys:
+ - key: referrer
+ foreign-key: creator
+ - key: user
+ foreign-key: creator
+ - key: referrer
+ foreign-key: hiringManager
+ - key: user
+ foreign-key: hiringManager
+ - key: referrer
+ foreign-key: owner
+ - key: user
+ foreign-key: owner
+- table-name: candidate_resumes
+ join:
+ - table-name: opportunity_resumes
+ keys:
+ - key: id
+ foreign-key: id
+- table-name: opportunity_resumes
+ join:
+ - table-name: candidate_resumes
+ keys:
+ - key: id
+ foreign-key: id
+- table-name: stages
+ join:
+ - table-name: candidates
+ keys:
+ - key: id
+ foreign-key: stage
+ - key: id
+ foreign-key: stageChanges.toStageId
+ - table-name: opportunities
+ keys:
+ - key: id
+ foreign-key: stage
+ - key: id
+ foreign-key: stageChanges.toStageId
diff --git a/_data/taps/schemas/lever/v1/lever-v1-issues.txt b/_data/taps/schemas/lever/v1/lever-v1-issues.txt
new file mode 100644
index 000000000..a5b5347b8
--- /dev/null
+++ b/_data/taps/schemas/lever/v1/lever-v1-issues.txt
@@ -0,0 +1,10 @@
+Key archived.reason not found in _data/taps/schemas/lever/v1/json/candidate_applications.json
+Key requisitionForHire.hiringManagerOnHire not found in _data/taps/schemas/lever/v1/json/candidate_applications.json
+Key requisitionForHire.id not found in _data/taps/schemas/lever/v1/json/candidate_applications.json
+Key stageChanges.userId not found in _data/taps/schemas/lever/v1/json/candidates.json
+Key stageChanges.toStageId not found in _data/taps/schemas/lever/v1/json/candidates.json
+Key archived.reason not found in _data/taps/schemas/lever/v1/json/opportunity_applications.json
+Key requisitionForHire.id not found in _data/taps/schemas/lever/v1/json/opportunity_applications.json
+Key requisitionForHire.hiringManagerOnHire not found in _data/taps/schemas/lever/v1/json/opportunity_applications.json
+Key stageChanges.userId not found in _data/taps/schemas/lever/v1/json/opportunities.json
+Key stageChanges.toStageId not found in _data/taps/schemas/lever/v1/json/opportunities.json
diff --git a/_data/taps/schemas/lever/v1/lever-v1-tables.yml b/_data/taps/schemas/lever/v1/lever-v1-tables.yml
new file mode 100644
index 000000000..8e897edfb
--- /dev/null
+++ b/_data/taps/schemas/lever/v1/lever-v1-tables.yml
@@ -0,0 +1,262 @@
+tap: lever
+version: '1'
+tables:
+- name: archive_reasons
+ description: 'The `{{ table.name }}` table contains info about the reasons candidates
+ have exited your active hiring pipeline. Refer to [{{ integration.display_name
+ }}''s documentation](https://help.lever.co/hc/articles/204502125){:target="new"}
+ for more info.
+
+ '
+ links:
+ doc-link: https://hire.lever.co/developer/documentation#archive-reasons
+ singer-schema: https://github.com/singer-io/tap-lever/blob/master/tap_lever/schemas/archive_reasons.json
+ api-method: https://hire.lever.co/developer/documentation#list-all-archive-reasons
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: candidates
+ description: 'The `{{ table.name }}` table contains info about candidates, or individuals
+ who''ve been added to your {{ integration.display_name }} account as potential
+ fits for job opportunities.
+
+
+ **Note**: This table must be set to replicate in order to replicate the `candidate_applications`,
+ `candidate_offers`, `candidate_referrals`, and `candidate_resumes` tables.
+
+
+ During Extraction, this table will be replicated before any other selected `candidate_*`
+ tables. Then, for every candidate, Stitch will query for every candidate''s applications,
+ offers, referrals, and resumes.
+
+
+ For example: During Extraction, Stitch replicates a candidate with `id: 12345`
+ from {{ integration.display_name }}''s `/candidates` endpoint.
+
+
+ Using `id: 12345`, Stitch will then query for the rest of the candidate''s data:
+
+
+ - `/candidates/12345/applications`
+
+ - `/candidates/12345/offers`
+
+ - `/candidates/12345/referrals`
+
+ - `/candidates/12345/resumes`
+
+ '
+ links:
+ doc-link: https://hire.lever.co/developer/documentation#candidates
+ singer-schema: https://github.com/singer-io/tap-lever/blob/master/tap_lever/schemas/candidates.json
+ api-method: https://hire.lever.co/developer/documentation#list-all-candidates
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: candidate_applications
+ description: 'The `{{ table.name }}` table contains info about candidate applications
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://hire.lever.co/developer/documentation#applications
+ singer-schema: https://github.com/singer-io/tap-lever/blob/master/tap_lever/schemas/candidate_applications.json
+ api-method: https://hire.lever.co/developer/documentation#list-all-applications
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: candidate_offers
+ description: 'The `{{ table.name }}` table contains data sent to candidates about
+ [`opportunities`](#opportunities) via {{ integration.display_name }}''s Offers
+ feature.
+
+ '
+ links:
+ doc-link: https://hire.lever.co/developer/documentation#offers
+ singer-schema: https://github.com/singer-io/tap-lever/blob/master/tap_lever/schemas/candidate_offers.json
+ api-method: https://hire.lever.co/developer/documentation#list-all-offers
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: candidate_referrals
+ description: 'The `{{ table.name }}` table contains info about the referrals in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://hire.lever.co/developer/documentation#referrals
+ singer-schema: https://github.com/singer-io/tap-lever/blob/master/tap_lever/schemas/candidate_referrals.json
+ api-method: https://hire.lever.co/developer/documentation#list-all-referrals
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: candidate_resumes
+ description: 'The `{{ table.name }}` table contains info about candidate resumes.
+
+ '
+ links:
+ doc-link: https://hire.lever.co/developer/documentation#resumes
+ singer-schema: https://github.com/singer-io/tap-lever/blob/master/tap_lever/schemas/candidate_resumes.json
+ api-method: https://hire.lever.co/developer/documentation#list-all-resumes
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: opportunities
+ description: 'The `{{ table.name }}` table contains info about opportunities. In
+ {{ integration.display_name }}, an opportunity represents each of an individual
+ candidate''s unique candidacies or journeys through your hiring pipeline for a
+ position. A candidate can be associated with multiple opportunities.
+
+
+ **Note**: This table must be set to replicate in order to replicate the `opportunity_applications`,
+ `opportunity_offers`, `opportunity_referrals`, and `opportunity_resumes` tables.
+
+
+ During Extraction, this table will be replicated before any other selected `opportunity_*`
+ tables. Then, for every opportunity, Stitch will query for every opportunity''s
+ applications, offers, referrals, and resumes.
+
+
+ For example: During Extraction, Stitch replicates an opportunity with `id: 12345`
+ from {{ integration.display_name }}''s `/opportunities` endpoint.
+
+
+ Using `id: 12345`, Stitch will then query for the rest of the opportunity''s data:
+
+
+ - `/opportunities/12345/applications`
+
+ - `/opportunities/12345/offers`
+
+ - `/opportunities/12345/referrals`
+
+ - `/opportunities/12345/resumes`
+
+ '
+ links:
+ doc-link: https://hire.lever.co/developer/documentation#opportunities
+ singer-schema: https://github.com/singer-io/tap-lever/blob/master/tap_lever/schemas/opportunities.json
+ api-method: https://hire.lever.co/developer/documentation#list-all-opportunities
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: opportunity_applications
+ description: 'The `{{ table.name }}` table contains info about candidate applications
+ in your {{ integration.display_name }} account.
+
+
+ **Note**: To replicate this table, the [`opportunities`](#opportunities) table
+ must be set to replicate.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-lever/blob/master/tap_lever/schemas/opportunity_applications.json
+ api-method: https://hire.lever.co/developer/documentation#list-all-opportunities
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: opportunity_offers
+ description: "The `{{ table.name }}` table contains info about \n\n**Note**: To\
+ \ replicate this table, the [`opportunities`](#opportunities) table must be set\
+ \ to replicate.\n"
+ links:
+ doc-link: https://hire.lever.co/developer/documentation#opportunities
+ singer-schema: https://github.com/singer-io/tap-lever/blob/master/tap_lever/schemas/opportunity_offers.json
+ api-method: https://hire.lever.co/developer/documentation#list-all-opportunities
+ table-details:
+ replication-method: Key-based Incremental
+- name: opportunity_referrals
+ description: 'The `{{ table.name }}` table contains info about the referrals in
+ your {{ integration.display_name }} account.
+
+
+ **Note**: To replicate this table, the [`opportunities`](#opportunities) table
+ must be set to replicate.
+
+ '
+ links:
+ doc-link: https://hire.lever.co/developer/documentation#opportunities
+ singer-schema: https://github.com/singer-io/tap-lever/blob/master/tap_lever/schemas/opportunity_referrals.json
+ api-method: https://hire.lever.co/developer/documentation#list-all-opportunities
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: opportunity_resumes
+ description: 'The `{{ table.name }}` table contains info about candidate resumes.
+
+
+ **Note**: To replicate this table, the [`opportunities`](#opportunities) table
+ must be set to replicate.
+
+ '
+ links:
+ doc-link: https://hire.lever.co/developer/documentation#opportunities
+ singer-schema: https://github.com/singer-io/tap-lever/blob/master/tap_lever/schemas/opportunity_resumes.json
+ api-method: https://hire.lever.co/developer/documentation#list-all-opportunities
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: postings
+ description: 'The `{{ table.name }}` table contains info about job postings in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://hire.lever.co/developer/documentation#postings
+ singer-schema: https://github.com/singer-io/tap-lever/blob/master/tap_lever/schemas/postings.json
+ api-method: https://hire.lever.co/developer/documentation#list-all-postings
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+- name: requisitions
+ description: 'The `{{ table.name }}` table contains info about requisitions in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://hire.lever.co/developer/documentation#requisitions
+ singer-schema: https://github.com/singer-io/tap-lever/blob/master/tap_lever/schemas/requisitions.json
+ api-method: https://hire.lever.co/developer/documentation#list-all-requisitions
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: createdAt
+- name: sources
+ description: 'The `{{ table.name }}` table contains info about sources, or the ways
+ that candidates enter into your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://hire.lever.co/developer/documentation#sources
+ singer-schema: https://github.com/singer-io/tap-lever/blob/master/tap_lever/schemas/sources.json
+ api-method: https://hire.lever.co/developer/documentation#list-all-sources
+ table-details:
+ replication-method: Full Table
+ primary-key: text
+- name: stages
+ description: 'The `{{ table.name }}` table contains info about stages, or the steps
+ in the recruiting workflow in your hiring pipeline.
+
+ '
+ links:
+ doc-link: https://hire.lever.co/developer/documentation#stages
+ singer-schema: https://github.com/singer-io/tap-lever/blob/master/tap_lever/schemas/stages.json
+ api-method: https://hire.lever.co/developer/documentation#list-all-stages
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: users
+ description: 'The `{{ table.name }}` table contains info about the users in your
+ {{ integration.display_name }} account. A user includes anyone who has been invited
+ to {{ integration.display_name }} to collaborate on recruiting efforts.
+
+ '
+ links:
+ doc-link: https://hire.lever.co/developer/documentation#users
+ singer-schema: https://github.com/singer-io/tap-lever/blob/master/tap_lever/schemas/users.json
+ api-method: https://hire.lever.co/developer/documentation#list-all-users
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/linkedin-ads/v1/json/account_users.json b/_data/taps/schemas/linkedin-ads/v1/json/account_users.json
new file mode 100644
index 000000000..aa3f00b05
--- /dev/null
+++ b/_data/taps/schemas/linkedin-ads/v1/json/account_users.json
@@ -0,0 +1,87 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "change_audit_stamps": {
+ "additionalProperties": false,
+ "properties": {
+ "created": {
+ "additionalProperties": false,
+ "properties": {
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_modified": {
+ "additionalProperties": false,
+ "properties": {
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_modified_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "role": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_person_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/linkedin-ads/v1/json/accounts.json b/_data/taps/schemas/linkedin-ads/v1/json/accounts.json
new file mode 100644
index 000000000..765550f3d
--- /dev/null
+++ b/_data/taps/schemas/linkedin-ads/v1/json/accounts.json
@@ -0,0 +1,184 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "change_audit_stamps": {
+ "additionalProperties": false,
+ "properties": {
+ "created": {
+ "additionalProperties": false,
+ "properties": {
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_modified": {
+ "additionalProperties": false,
+ "properties": {
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_modified_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notified_on_campaign_optimization": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "notified_on_creative_approval": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "notified_on_creative_rejection": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "notified_on_end_of_campaign": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_organization_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reference_person_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "serving_statuses": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_budget": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_budget_ends_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "version": {
+ "additionalProperties": false,
+ "properties": {
+ "version_tag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/linkedin-ads/v1/json/ad_analytics_by_campaign.json b/_data/taps/schemas/linkedin-ads/v1/json/ad_analytics_by_campaign.json
new file mode 100644
index 000000000..46da8a63e
--- /dev/null
+++ b/_data/taps/schemas/linkedin-ads/v1/json/ad_analytics_by_campaign.json
@@ -0,0 +1,496 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "action_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ad_unit_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "approximate_unique_impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "card_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "card_impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "comment_likes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "comments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "company_page_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversion_value_in_local_currency": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_in_local_currency": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_in_usd": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "date_range": {
+ "additionalProperties": false,
+ "properties": {
+ "end": {
+ "additionalProperties": false,
+ "properties": {
+ "day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "start": {
+ "additionalProperties": false,
+ "properties": {
+ "day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "end_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "external_website_conversions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "external_website_post_click_conversions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "external_website_post_view_conversions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "follows": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "full_screen_plays": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "landing_page_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lead_generation_mail_contact_info_shares": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lead_generation_mail_interest_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "likes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "one_click_lead_form_opens": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "one_click_leads": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "opens": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "other_engagements": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pivot": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pivot_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pivot_values": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "reactions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sends": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shares": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "start_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "text_url_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_engagements": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_first_quartile_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_midpoint_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_starts": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_third_quartile_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_card_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_card_impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_comment_likes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_comments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_company_page_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_external_website_conversions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_external_website_post_click_conversions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_external_website_post_view_conversions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_follows": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_full_screen_plays": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_landing_page_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_likes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_one_click_lead_form_opens": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_one_click_leads": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_other_engagements": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_reactions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_shares": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_total_engagements": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_video_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_video_first_quartile_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_video_midpoint_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_video_starts": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_video_third_quartile_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_video_views": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/linkedin-ads/v1/json/ad_analytics_by_creative.json b/_data/taps/schemas/linkedin-ads/v1/json/ad_analytics_by_creative.json
new file mode 100644
index 000000000..a3db44f82
--- /dev/null
+++ b/_data/taps/schemas/linkedin-ads/v1/json/ad_analytics_by_creative.json
@@ -0,0 +1,496 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "action_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ad_unit_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "approximate_unique_impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "card_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "card_impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "comment_likes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "comments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "company_page_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversion_value_in_local_currency": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_in_local_currency": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_in_usd": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "creative": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creative_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "date_range": {
+ "additionalProperties": false,
+ "properties": {
+ "end": {
+ "additionalProperties": false,
+ "properties": {
+ "day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "start": {
+ "additionalProperties": false,
+ "properties": {
+ "day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "end_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "external_website_conversions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "external_website_post_click_conversions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "external_website_post_view_conversions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "follows": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "full_screen_plays": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "landing_page_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lead_generation_mail_contact_info_shares": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lead_generation_mail_interest_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "likes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "one_click_lead_form_opens": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "one_click_leads": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "opens": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "other_engagements": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pivot": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pivot_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pivot_values": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "reactions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sends": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shares": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "start_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "text_url_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_engagements": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_first_quartile_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_midpoint_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_starts": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_third_quartile_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_card_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_card_impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_comment_likes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_comments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_company_page_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_external_website_conversions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_external_website_post_click_conversions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_external_website_post_view_conversions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_follows": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_full_screen_plays": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_landing_page_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_likes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_one_click_lead_form_opens": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_one_click_leads": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_other_engagements": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_reactions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_shares": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_total_engagements": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_video_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_video_first_quartile_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_video_midpoint_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_video_starts": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_video_third_quartile_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_video_views": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/linkedin-ads/v1/json/campaign_groups.json b/_data/taps/schemas/linkedin-ads/v1/json/campaign_groups.json
new file mode 100644
index 000000000..c5095e768
--- /dev/null
+++ b/_data/taps/schemas/linkedin-ads/v1/json/campaign_groups.json
@@ -0,0 +1,127 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "backfilled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "change_audit_stamps": {
+ "additionalProperties": false,
+ "properties": {
+ "created": {
+ "additionalProperties": false,
+ "properties": {
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_modified": {
+ "additionalProperties": false,
+ "properties": {
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_modified_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "run_schedule": {
+ "additionalProperties": false,
+ "properties": {
+ "end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "serving_statuses": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/linkedin-ads/v1/json/campaigns.json b/_data/taps/schemas/linkedin-ads/v1/json/campaigns.json
new file mode 100644
index 000000000..996877a2b
--- /dev/null
+++ b/_data/taps/schemas/linkedin-ads/v1/json/campaigns.json
@@ -0,0 +1,461 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "associated_entity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "associated_entity_organization_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "associated_entity_person_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "audience_expansion_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "campaign_group": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "change_audit_stamps": {
+ "additionalProperties": false,
+ "properties": {
+ "created": {
+ "additionalProperties": false,
+ "properties": {
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_modified": {
+ "additionalProperties": false,
+ "properties": {
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "cost_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creative_selection": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "daily_budget": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_modified_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "locale": {
+ "additionalProperties": false,
+ "properties": {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "offsite_delivery_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "optimization_target_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "run_schedule": {
+ "additionalProperties": false,
+ "properties": {
+ "end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "serving_statuses": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targeting": {
+ "additionalProperties": false,
+ "properties": {
+ "excluded_targeting_facets": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "values": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "included_targeting_facets": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "values": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "targeting_criteria": {
+ "additionalProperties": false,
+ "properties": {
+ "exclude": {
+ "properties": {
+ "or": {
+ "properties": {
+ "urn:li:ad_targeting_facet:followed_companies": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "urn:li:ad_targeting_facet:seniorities": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "urn:li:ad_targeting_facet:staff_count_ranges": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "urn:li:ad_targeting_facet:titles": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "include": {
+ "additionalProperties": false,
+ "properties": {
+ "and": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "values": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_cost": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "version": {
+ "additionalProperties": false,
+ "properties": {
+ "version_tag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/linkedin-ads/v1/json/creatives.json b/_data/taps/schemas/linkedin-ads/v1/json/creatives.json
new file mode 100644
index 000000000..23a832f92
--- /dev/null
+++ b/_data/taps/schemas/linkedin-ads/v1/json/creatives.json
@@ -0,0 +1,178 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "campaign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "change_audit_stamps": {
+ "additionalProperties": false,
+ "properties": {
+ "created": {
+ "additionalProperties": false,
+ "properties": {
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_modified": {
+ "additionalProperties": false,
+ "properties": {
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_modified_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_share_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "review": {
+ "additionalProperties": false,
+ "properties": {
+ "review_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "variables": {
+ "additionalProperties": false,
+ "properties": {
+ "click_uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "values": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "version": {
+ "additionalProperties": false,
+ "properties": {
+ "version_tag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/linkedin-ads/v1/json/video_ads.json b/_data/taps/schemas/linkedin-ads/v1/json/video_ads.json
new file mode 100644
index 000000000..f62e9097a
--- /dev/null
+++ b/_data/taps/schemas/linkedin-ads/v1/json/video_ads.json
@@ -0,0 +1,111 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "change_audit_stamps": {
+ "additionalProperties": false,
+ "properties": {
+ "created": {
+ "additionalProperties": false,
+ "properties": {
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_modified": {
+ "additionalProperties": false,
+ "properties": {
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "content_reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_reference_share_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "content_reference_ucg_post_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_modified_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner_organization_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/linkedin-ads/v1/linkedin-ads-v1-foreign-keys.yml b/_data/taps/schemas/linkedin-ads/v1/linkedin-ads-v1-foreign-keys.yml
new file mode 100644
index 000000000..de38783e5
--- /dev/null
+++ b/_data/taps/schemas/linkedin-ads/v1/linkedin-ads-v1-foreign-keys.yml
@@ -0,0 +1,188 @@
+tap: linkedin-ads
+version: '1'
+keys:
+ accounts_id:
+ - table: account_users
+ keys:
+ - account_id
+ - table: accounts
+ keys:
+ - id
+ - table: campaigns
+ keys:
+ - account_id
+ - table: campaign_groups
+ keys:
+ - account_id
+ - table: video_ads
+ keys:
+ - account_id
+ _:
+ - table: video_ads
+ keys:
+ - owner_organization_id
+ account_users_user_person_id:
+ - table: account_users
+ keys:
+ - user_person_id
+ campaign_groups_id:
+ - table: campaign_groups
+ keys:
+ - id
+ - table: campaigns
+ keys:
+ - campaign_group_id
+ campaigns_id:
+ - table: campaigns
+ keys:
+ - id
+ - table: creatives
+ keys:
+ - campaign_id
+ - table: ad_analytics_by_campaign
+ keys:
+ - campaign_id
+ creatives_id:
+ - table: creatives
+ keys:
+ - id
+ - table: ad_analytics_by_creative
+ keys:
+ - creative_id
+ video_ads_content_reference:
+ - table: video_ads
+ keys:
+ - content_reference
+tables:
+- table-name: account_users
+ join:
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: campaign_groups
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: video_ads
+ keys:
+ - key: account_id
+ foreign-key: account_id
+- table-name: accounts
+ join:
+ - table-name: account_users
+ keys:
+ - key: id
+ foreign-key: account_id
+ - table-name: campaigns
+ keys:
+ - key: id
+ foreign-key: account_id
+ - table-name: campaign_groups
+ keys:
+ - key: id
+ foreign-key: account_id
+ - table-name: video_ads
+ keys:
+ - key: id
+ foreign-key: account_id
+- table-name: campaigns
+ join:
+ - table-name: account_users
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: id
+ - table-name: campaign_groups
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: campaign_group_id
+ foreign-key: id
+ - table-name: video_ads
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: creatives
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: ad_analytics_by_campaign
+ keys:
+ - key: id
+ foreign-key: campaign_id
+- table-name: campaign_groups
+ join:
+ - table-name: account_users
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: id
+ foreign-key: campaign_group_id
+ - table-name: video_ads
+ keys:
+ - key: account_id
+ foreign-key: account_id
+- table-name: video_ads
+ join:
+ - table-name: account_users
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: campaign_groups
+ keys:
+ - key: account_id
+ foreign-key: account_id
+- table-name: creatives
+ join:
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: ad_analytics_by_campaign
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ad_analytics_by_creative
+ keys:
+ - key: id
+ foreign-key: creative_id
+- table-name: ad_analytics_by_campaign
+ join:
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: creatives
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+- table-name: ad_analytics_by_creative
+ join:
+ - table-name: creatives
+ keys:
+ - key: creative_id
+ foreign-key: id
diff --git a/_data/taps/schemas/linkedin-ads/v1/linkedin-ads-v1-tables.yml b/_data/taps/schemas/linkedin-ads/v1/linkedin-ads-v1-tables.yml
new file mode 100644
index 000000000..a01e75234
--- /dev/null
+++ b/_data/taps/schemas/linkedin-ads/v1/linkedin-ads-v1-tables.yml
@@ -0,0 +1,121 @@
+tap: linkedin-ads
+version: '1'
+tables:
+- name: accounts
+ description: 'The `{{ table.name }}` table contains info about your {{ integration.display_name
+ }} ad accounts.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/accounts.json
+ api-method: https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-accounts#search-for-accounts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_time
+- name: account_users
+ description: 'The `{{ table.name }}` table contains info about the users who have
+ permissions to an ad account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/account_users.json
+ api-method: https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-account-users#find-ad-account-users-by-accounts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - account_id
+ - user_person_id
+ replication-key: last_modified_time
+- name: ad_analytics_by_campaign
+ description: 'The `{{ table.name }}` table contains analytics data for ads, segmented
+ by campaign.
+
+
+ To replicate data from this table, you must also select the parent `campaigns`
+ table.
+
+
+ **Note**: This table is replicated using an attribution window of {{ integration.attribution-window
+ }}. Refer to the [Replication](#replication) section for more info.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/ad_analytics_by_campaign.json
+ api-method: https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads-reporting/ads-reporting#analytics-finder
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - campaign_id
+ - start_at
+ replication-key: end_at
+- name: ad_analytics_by_creative
+ description: 'The `{{ table.name }}` table contains info about ad analytics, segmented
+ by creative.
+
+
+ To replicate data from this table, you must also select the parent `creatives`
+ table.
+
+
+ **Note**: This table is replicated using an attribution window of {{ integration.attribution-window
+ }}. Refer to the [Replication](#replication) section for more info.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/ad_analytics_by_creative.json
+ api-method: https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads-reporting/ads-reporting#analytics-finder
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - creative_id
+ - start_at
+ replication-key: end_at
+- name: campaigns
+ description: 'The `{{ table.name }}` table contains info about the campaigns in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/campaigns.json
+ api-method: https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-campaigns#search-for-campaigns
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_time
+- name: campaign_groups
+ description: 'The `{{ table.name }}` table contains info about the campaign groups
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/campaign_groups.json
+ api-method: https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-campaign-groups#search-for-campaign-groups
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_time
+- name: creatives
+ description: 'The `{{ table.name }}` table contains info about the creatives in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/creatives.json
+ api-method: https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-creatives#search-for-creatives
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_time
+- name: video_ads
+ description: 'The `{{ table.name }}` table contains info about the video ads in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/video_ads.json
+ api-method: https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/advertising-targeting/create-and-manage-video#finders
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: content_reference
+ replication-key: last_modified_time
diff --git a/_data/taps/schemas/linkedin-ads/v2/json/account_users.json b/_data/taps/schemas/linkedin-ads/v2/json/account_users.json
new file mode 100644
index 000000000..bbf717804
--- /dev/null
+++ b/_data/taps/schemas/linkedin-ads/v2/json/account_users.json
@@ -0,0 +1,96 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign_contact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "change_audit_stamps": {
+ "additionalProperties": false,
+ "properties": {
+ "created": {
+ "additionalProperties": false,
+ "properties": {
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_modified": {
+ "additionalProperties": false,
+ "properties": {
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_modified_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "role": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_person_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/linkedin-ads/v2/json/accounts.json b/_data/taps/schemas/linkedin-ads/v2/json/accounts.json
new file mode 100644
index 000000000..b34feea53
--- /dev/null
+++ b/_data/taps/schemas/linkedin-ads/v2/json/accounts.json
@@ -0,0 +1,199 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "change_audit_stamps": {
+ "additionalProperties": false,
+ "properties": {
+ "created": {
+ "additionalProperties": false,
+ "properties": {
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_modified": {
+ "additionalProperties": false,
+ "properties": {
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_modified_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notified_on_campaign_optimization": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "notified_on_creative_approval": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "notified_on_creative_rejection": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "notified_on_end_of_campaign": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "notified_on_new_features_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_organization_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reference_person_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "serving_statuses": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "test": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "total_budget": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_budget_ends_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "version": {
+ "additionalProperties": false,
+ "properties": {
+ "version_tag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/linkedin-ads/v2/json/ad_analytics_by_campaign.json b/_data/taps/schemas/linkedin-ads/v2/json/ad_analytics_by_campaign.json
new file mode 100644
index 000000000..b7b7f5577
--- /dev/null
+++ b/_data/taps/schemas/linkedin-ads/v2/json/ad_analytics_by_campaign.json
@@ -0,0 +1,754 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "action_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ad_unit_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "approximate_unique_impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "average_daily_reach_metrics": {
+ "additionalProperties": false,
+ "properties": {
+ "approximate_cost_in_currency_per_thousand_members_reached": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "approximate_frequency": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "approximate_reach": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "average_previous_seven_day_reach_metrics": {
+ "additionalProperties": false,
+ "properties": {
+ "approximate_cost_in_currency_per_thousand_members_reached": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "approximate_frequency": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "approximate_reach": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "average_previous_thirty_day_reach_metrics": {
+ "additionalProperties": false,
+ "properties": {
+ "approximate_cost_in_currency_per_thousand_members_reached": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "approximate_frequency": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "approximate_reach": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "campaign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "card_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "card_impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "comment_likes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "comments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "company_page_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversion_value_in_local_currency": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_in_local_currency": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_in_usd": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "date_range": {
+ "additionalProperties": false,
+ "properties": {
+ "end": {
+ "additionalProperties": false,
+ "properties": {
+ "day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "start": {
+ "additionalProperties": false,
+ "properties": {
+ "day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "document_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "document_first_quartile_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "document_midpoint_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "document_third_quartile_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "download_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "end_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "external_website_conversions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "external_website_post_click_conversions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "external_website_post_view_conversions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "follows": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "full_screen_plays": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "job_applications": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "job_apply_clicks": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "landing_page_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lead_generation_mail_contact_info_shares": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lead_generation_mail_interested_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "likes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "one_click_lead_form_opens": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "one_click_leads": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "opens": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "other_engagements": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pivot": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pivot_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pivot_values": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "post_click_job_applications": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "post_click_job_apply_clicks": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "post_click_registrations": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "post_view_job_applications": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "post_view_job_apply_clicks": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "post_view_registrations": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "reactions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "registrations": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "sends": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shares": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "start_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "talent_leads": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "text_url_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_engagements": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_first_quartile_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_midpoint_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_starts": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_third_quartile_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_card_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_card_impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_comment_likes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_comments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_company_page_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_document_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_document_first_quartile_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_document_midpoint_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_document_third_quartile_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_download_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_external_website_conversions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_external_website_post_click_conversions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_external_website_post_view_conversions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_follows": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_full_screen_plays": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_job_applications": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "viral_job_apply_clicks": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "viral_landing_page_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_likes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_one_click_lead_form_opens": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_one_click_leads": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_other_engagements": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_post_click_job_applications": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "viral_post_click_job_apply_clicks": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "viral_post_click_registrations": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "viral_post_view_job_applications": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "viral_post_view_job_apply_clicks": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "viral_post_view_registrations": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "viral_reactions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_registrations": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "viral_shares": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_total_engagements": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_video_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_video_first_quartile_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_video_midpoint_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_video_starts": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_video_third_quartile_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_video_views": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/linkedin-ads/v2/json/ad_analytics_by_creative.json b/_data/taps/schemas/linkedin-ads/v2/json/ad_analytics_by_creative.json
new file mode 100644
index 000000000..d1307c70f
--- /dev/null
+++ b/_data/taps/schemas/linkedin-ads/v2/json/ad_analytics_by_creative.json
@@ -0,0 +1,754 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "action_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ad_unit_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "approximate_unique_impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "average_daily_reach_metrics": {
+ "additionalProperties": false,
+ "properties": {
+ "approximate_cost_in_currency_per_thousand_members_reached": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "approximate_frequency": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "approximate_reach": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "average_previous_seven_day_reach_metrics": {
+ "additionalProperties": false,
+ "properties": {
+ "approximate_cost_in_currency_per_thousand_members_reached": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "approximate_frequency": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "approximate_reach": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "average_previous_thirty_day_reach_metrics": {
+ "additionalProperties": false,
+ "properties": {
+ "approximate_cost_in_currency_per_thousand_members_reached": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "approximate_frequency": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "approximate_reach": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "card_impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "comment_likes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "comments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "company_page_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversion_value_in_local_currency": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_in_local_currency": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_in_usd": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "creative": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creative_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "date_range": {
+ "additionalProperties": false,
+ "properties": {
+ "end": {
+ "additionalProperties": false,
+ "properties": {
+ "day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "start": {
+ "additionalProperties": false,
+ "properties": {
+ "day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "document_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "document_first_quartile_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "document_midpoint_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "document_third_quartile_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "download_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "end_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "external_website_conversions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "external_website_post_click_conversions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "external_website_post_view_conversions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "follows": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "full_screen_plays": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "job_applications": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "job_apply_clicks": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "landing_page_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lead_generation_mail_contact_info_shares": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lead_generation_mail_interested_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "likes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "one_click_lead_form_opens": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "one_click_leads": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "opens": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "other_engagements": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pivot": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pivot_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pivot_values": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "post_click_job_applications": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "post_click_job_apply_clicks": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "post_click_registrations": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "post_view_job_applications": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "post_view_job_apply_clicks": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "post_view_registrations": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "reactions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "registrations": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "sends": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shares": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "start_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "talent_leads": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "text_url_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_engagements": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_first_quartile_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_midpoint_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_starts": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_third_quartile_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_card_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_card_impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_comment_likes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_comments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_company_page_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_document_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_document_first_quartile_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_document_midpoint_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_document_third_quartile_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_download_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_external_website_conversions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_external_website_post_click_conversions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_external_website_post_view_conversions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_follows": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_full_screen_plays": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_job_applications": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "viral_job_apply_clicks": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "viral_landing_page_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_likes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_one_click_lead_form_opens": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_one_click_leads": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_other_engagements": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_post_click_job_applications": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "viral_post_click_job_apply_clicks": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "viral_post_click_registrations": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "viral_post_view_job_applications": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "viral_post_view_job_apply_clicks": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "viral_post_view_registrations": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "viral_reactions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_registrations": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_shares": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_total_engagements": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_video_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_video_first_quartile_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_video_midpoint_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_video_starts": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_video_third_quartile_completions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "viral_video_views": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/linkedin-ads/v2/json/campaign_groups.json b/_data/taps/schemas/linkedin-ads/v2/json/campaign_groups.json
new file mode 100644
index 000000000..2c7f0819d
--- /dev/null
+++ b/_data/taps/schemas/linkedin-ads/v2/json/campaign_groups.json
@@ -0,0 +1,169 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "allowed_campaign_types": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "backfilled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "change_audit_stamps": {
+ "additionalProperties": false,
+ "properties": {
+ "created": {
+ "additionalProperties": false,
+ "properties": {
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_modified": {
+ "additionalProperties": false,
+ "properties": {
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_modified_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "run_schedule": {
+ "additionalProperties": false,
+ "properties": {
+ "end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "serving_statuses": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "test": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "total_budget": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/linkedin-ads/v2/json/campaigns.json b/_data/taps/schemas/linkedin-ads/v2/json/campaigns.json
new file mode 100644
index 000000000..70b7c8dc8
--- /dev/null
+++ b/_data/taps/schemas/linkedin-ads/v2/json/campaigns.json
@@ -0,0 +1,590 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "associated_entity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "associated_entity_organization_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "associated_entity_person_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "audience_expansion_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "campaign_group": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "change_audit_stamps": {
+ "additionalProperties": false,
+ "properties": {
+ "created": {
+ "additionalProperties": false,
+ "properties": {
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_modified": {
+ "additionalProperties": false,
+ "properties": {
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "cost_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creative_selection": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "daily_budget": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_modified_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "locale": {
+ "additionalProperties": false,
+ "properties": {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "objective_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "offsite_delivery_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "offsite_preferences": {
+ "additionalProperties": false,
+ "properties": {
+ "iab_categories": {
+ "additionalProperties": false,
+ "properties": {
+ "exclude": {
+ "additionalProperties": false,
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "include": {
+ "additionalProperties": false,
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "publisher_restriction_files": {
+ "additionalProperties": false,
+ "properties": {
+ "exclude": {
+ "additionalProperties": false,
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "optimization_target_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pacing_strategy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "run_schedule": {
+ "additionalProperties": false,
+ "properties": {
+ "end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "serving_statuses": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targeting": {
+ "additionalProperties": false,
+ "properties": {
+ "excluded_targeting_facets": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "values": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "included_targeting_facets": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "values": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "targeting_criteria": {
+ "additionalProperties": false,
+ "properties": {
+ "exclude": {
+ "properties": {
+ "or": {
+ "properties": {
+ "urn:li:ad_targeting_facet:followed_companies": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "urn:li:ad_targeting_facet:seniorities": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "urn:li:ad_targeting_facet:staff_count_ranges": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "urn:li:ad_targeting_facet:titles": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "include": {
+ "additionalProperties": false,
+ "properties": {
+ "and": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "values": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "test": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "total_budget": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_cost": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "version": {
+ "additionalProperties": false,
+ "properties": {
+ "version_tag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "version_tag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/linkedin-ads/v2/json/creatives.json b/_data/taps/schemas/linkedin-ads/v2/json/creatives.json
new file mode 100644
index 000000000..bdc32f8c7
--- /dev/null
+++ b/_data/taps/schemas/linkedin-ads/v2/json/creatives.json
@@ -0,0 +1,135 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "content": {
+ "additionalProperties": false,
+ "properties": {
+ "reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text_ad": {
+ "additionalProperties": false,
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "headline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "landing_page": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "intended_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_serving": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_test": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_modified_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_modified_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "serving_hold_reasons": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/linkedin-ads/v2/json/video_ads.json b/_data/taps/schemas/linkedin-ads/v2/json/video_ads.json
new file mode 100644
index 000000000..87c1441d7
--- /dev/null
+++ b/_data/taps/schemas/linkedin-ads/v2/json/video_ads.json
@@ -0,0 +1,114 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "change_audit_stamps": {
+ "additionalProperties": false,
+ "properties": {
+ "created": {
+ "additionalProperties": false,
+ "properties": {
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_modified": {
+ "additionalProperties": false,
+ "properties": {
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "content_reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_reference_share_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "content_reference_ucg_post_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_modified_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner_organization_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/linkedin-ads/v2/linkedin-ads-v2-foreign-keys.yml b/_data/taps/schemas/linkedin-ads/v2/linkedin-ads-v2-foreign-keys.yml
new file mode 100644
index 000000000..ac9694e11
--- /dev/null
+++ b/_data/taps/schemas/linkedin-ads/v2/linkedin-ads-v2-foreign-keys.yml
@@ -0,0 +1,188 @@
+tap: linkedin-ads
+version: '2'
+keys:
+ accounts_id:
+ - table: account_users
+ keys:
+ - account_id
+ - table: accounts
+ keys:
+ - id
+ - table: campaigns
+ keys:
+ - account_id
+ - table: campaign_groups
+ keys:
+ - account_id
+ - table: video_ads
+ keys:
+ - account_id
+ _:
+ - table: video_ads
+ keys:
+ - owner_organization_id
+ account_users_user_person_id:
+ - table: account_users
+ keys:
+ - user_person_id
+ campaign_groups_id:
+ - table: campaign_groups
+ keys:
+ - id
+ - table: campaigns
+ keys:
+ - campaign_group_id
+ campaigns_id:
+ - table: campaigns
+ keys:
+ - id
+ - table: creatives
+ keys:
+ - campaign_id
+ - table: ad_analytics_by_campaign
+ keys:
+ - campaign_id
+ creatives_id:
+ - table: creatives
+ keys:
+ - id
+ - table: ad_analytics_by_creative
+ keys:
+ - creative_id
+ video_ads_content_reference:
+ - table: video_ads
+ keys:
+ - content_reference
+tables:
+- table-name: account_users
+ join:
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: campaign_groups
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: video_ads
+ keys:
+ - key: account_id
+ foreign-key: account_id
+- table-name: accounts
+ join:
+ - table-name: account_users
+ keys:
+ - key: id
+ foreign-key: account_id
+ - table-name: campaigns
+ keys:
+ - key: id
+ foreign-key: account_id
+ - table-name: campaign_groups
+ keys:
+ - key: id
+ foreign-key: account_id
+ - table-name: video_ads
+ keys:
+ - key: id
+ foreign-key: account_id
+- table-name: campaigns
+ join:
+ - table-name: account_users
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: id
+ - table-name: campaign_groups
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: campaign_group_id
+ foreign-key: id
+ - table-name: video_ads
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: creatives
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: ad_analytics_by_campaign
+ keys:
+ - key: id
+ foreign-key: campaign_id
+- table-name: campaign_groups
+ join:
+ - table-name: account_users
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: id
+ foreign-key: campaign_group_id
+ - table-name: video_ads
+ keys:
+ - key: account_id
+ foreign-key: account_id
+- table-name: video_ads
+ join:
+ - table-name: account_users
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: campaign_groups
+ keys:
+ - key: account_id
+ foreign-key: account_id
+- table-name: creatives
+ join:
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: ad_analytics_by_campaign
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: ad_analytics_by_creative
+ keys:
+ - key: id
+ foreign-key: creative_id
+- table-name: ad_analytics_by_campaign
+ join:
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: creatives
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+- table-name: ad_analytics_by_creative
+ join:
+ - table-name: creatives
+ keys:
+ - key: creative_id
+ foreign-key: id
diff --git a/_data/taps/schemas/linkedin-ads/v2/linkedin-ads-v2-tables.yml b/_data/taps/schemas/linkedin-ads/v2/linkedin-ads-v2-tables.yml
new file mode 100644
index 000000000..222385b89
--- /dev/null
+++ b/_data/taps/schemas/linkedin-ads/v2/linkedin-ads-v2-tables.yml
@@ -0,0 +1,111 @@
+tap: linkedin-ads
+version: '2'
+tables:
+- name: accounts
+ description: 'The `{{ table.name }}` table contains info about your {{ integration.display_name
+ }} ad accounts.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/accounts.json
+ api-method: https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-accounts?view=li-lms-2022-07&tabs=http#search-for-accounts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_time
+- name: account_users
+ description: 'The `{{ table.name }}` table contains info about the users who have
+ permissions to an ad account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/account_users.json
+ api-method: https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-account-users?view=li-lms-2022-07&tabs=http#find-ad-account-users-by-accounts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - account_id
+ - user_person_id
+ replication-key: last_modified_time
+- name: ad_analytics_by_campaign
+ description: 'The `{{ table.name }}` table contains analytics data for ads, segmented
+ by campaign.
+
+
+ **Note**: This table is replicated using an attribution window of {{ integration.attribution-window
+ }}. Refer to the [Replication](#replication) section for more info.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/ad_analytics_by_campaign.json
+ api-method: https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads-reporting/ads-reporting?view=li-lms-2022-07&tabs=http#analytics-finder
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - campaign_id
+ - start_at
+ replication-key: end_at
+- name: ad_analytics_by_creative
+ description: 'The `{{ table.name }}` table contains info about ad analytics, segmented
+ by creative.
+
+
+ **Note**: This table is replicated using an attribution window of {{ integration.attribution-window
+ }}. Refer to the [Replication](#replication) section for more info.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/ad_analytics_by_creative.json
+ api-method: https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads-reporting/ads-reporting?view=li-lms-2022-07&tabs=http#analytics-finder
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - creative_id
+ - start_at
+ replication-key: end_at
+- name: campaigns
+ description: 'The `{{ table.name }}` table contains info about the campaigns in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/campaigns.json
+ api-method: https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-campaigns?view=li-lms-2022-07&tabs=http#search-for-campaigns
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_time
+- name: campaign_groups
+ description: 'The `{{ table.name }}` table contains info about the campaign groups
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/campaign_groups.json
+ api-method: https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-campaign-groups?view=li-lms-2022-07&tabs=http#search-for-campaign-groups
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_time
+- name: creatives
+ description: The Creatives API contains all the data and information for visually
+ rendering an ad.
+ links:
+ doc-link: https://learn.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-creatives?view=li-lms-2023-01&tabs=http#search-for-creatives
+ singer-schema: https://github.com/singer-io/tap-linkedin-ads/tree/master/tap_linkedin_ads/schemas/creatives.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_at
+- name: video_ads
+ description: 'The `{{ table.name }}` table contains info about the video ads in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-linkedin-ads/blob/master/tap_linkedin_ads/schemas/video_ads.json
+ api-method: https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/advertising-targeting/create-and-manage-video?view=li-lms-unversioned&tabs=http&viewFallbackFrom=li-lms-2022-07#finders
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: content_reference
+ replication-key: last_modified_time
diff --git a/_data/taps/schemas/listrak/v1/json/lists.json b/_data/taps/schemas/listrak/v1/json/lists.json
new file mode 100644
index 000000000..7404d9482
--- /dev/null
+++ b/_data/taps/schemas/listrak/v1/json/lists.json
@@ -0,0 +1,159 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "BounceUnsubscribeCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "CreateDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DomainAliasEmail": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DomainAliasLink": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EnableBrowserLink": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "EnableDoubleOptin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "EnableDynamicContent": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "EnableGoogleAnalytics": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "EnableInternationalization": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "EnableListHygiene": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "EnableListRemoveHeader": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "EnableRSS": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "EnableRemovalLink": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "FromEmail": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FromName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "GoogleTrackingDomains": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ListID": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ListName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ShowAdvancedPersonalization": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ShowEmailList": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Vmta": {
+ "additionalProperties": false,
+ "properties": {
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "VmtaID": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "bounceHandling": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/listrak/v1/json/message_bounces.json b/_data/taps/schemas/listrak/v1/json/message_bounces.json
new file mode 100644
index 000000000..c0e727627
--- /dev/null
+++ b/_data/taps/schemas/listrak/v1/json/message_bounces.json
@@ -0,0 +1,47 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "BounceCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "BounceDate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BounceDetail": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BounceReason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MsgID": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/listrak/v1/json/message_clicks.json b/_data/taps/schemas/listrak/v1/json/message_clicks.json
new file mode 100644
index 000000000..020115b44
--- /dev/null
+++ b/_data/taps/schemas/listrak/v1/json/message_clicks.json
@@ -0,0 +1,41 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "ClickDate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LinkDescription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LinkUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MsgID": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/listrak/v1/json/message_opens.json b/_data/taps/schemas/listrak/v1/json/message_opens.json
new file mode 100644
index 000000000..f25d25594
--- /dev/null
+++ b/_data/taps/schemas/listrak/v1/json/message_opens.json
@@ -0,0 +1,29 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "ContactID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MsgID": {
+ "type": [
+ "integer"
+ ]
+ },
+ "OpenDate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/listrak/v1/json/message_reads.json b/_data/taps/schemas/listrak/v1/json/message_reads.json
new file mode 100644
index 000000000..bfa479a4b
--- /dev/null
+++ b/_data/taps/schemas/listrak/v1/json/message_reads.json
@@ -0,0 +1,29 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "ContactID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MsgID": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ReadDate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/listrak/v1/json/message_sends.json b/_data/taps/schemas/listrak/v1/json/message_sends.json
new file mode 100644
index 000000000..53168b54b
--- /dev/null
+++ b/_data/taps/schemas/listrak/v1/json/message_sends.json
@@ -0,0 +1,17 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MsgID": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/listrak/v1/json/message_unsubs.json b/_data/taps/schemas/listrak/v1/json/message_unsubs.json
new file mode 100644
index 000000000..7affe8133
--- /dev/null
+++ b/_data/taps/schemas/listrak/v1/json/message_unsubs.json
@@ -0,0 +1,41 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "AdditionDate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MsgID": {
+ "type": [
+ "integer"
+ ]
+ },
+ "RemovalDate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RemovalMethod": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/listrak/v1/json/messages.json b/_data/taps/schemas/listrak/v1/json/messages.json
new file mode 100644
index 000000000..fb461df74
--- /dev/null
+++ b/_data/taps/schemas/listrak/v1/json/messages.json
@@ -0,0 +1,119 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "AverageOrderValue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ClickCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ClickerCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ClickerPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ConversionCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "DeliverCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ListID": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "MsgID": {
+ "type": [
+ "integer"
+ ]
+ },
+ "NewClickerCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "OpenCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "OpenPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "OrderTotal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ReadCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ReadPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "RemoveCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "RemovePercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "RepeatClickerCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "SendDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/listrak/v1/json/subscribed_contacts.json b/_data/taps/schemas/listrak/v1/json/subscribed_contacts.json
new file mode 100644
index 000000000..906074b5e
--- /dev/null
+++ b/_data/taps/schemas/listrak/v1/json/subscribed_contacts.json
@@ -0,0 +1,34 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "AdditionDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "AdditionMethod": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ListID": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/listrak/v1/listrak-v1-foreign-keys.yml b/_data/taps/schemas/listrak/v1/listrak-v1-foreign-keys.yml
new file mode 100644
index 000000000..2d9ee658a
--- /dev/null
+++ b/_data/taps/schemas/listrak/v1/listrak-v1-foreign-keys.yml
@@ -0,0 +1,345 @@
+tap: listrak
+version: '1'
+keys:
+ subscribed_contacts_ContactID:
+ - table: message_bounces
+ keys:
+ - ContactID
+ - table: message_clicks
+ keys:
+ - ContactID
+ - table: message_opens
+ keys:
+ - ContactID
+ - table: message_reads
+ keys:
+ - ContactID
+ - table: message_unsubs
+ keys:
+ - ContactID
+ - table: subscribed_contacts
+ keys:
+ - ContactID
+ messages_MsgID:
+ - table: message_bounces
+ keys:
+ - MsgID
+ - table: message_clicks
+ keys:
+ - MsgID
+ - table: message_opens
+ keys:
+ - MsgID
+ - table: message_reads
+ keys:
+ - MsgID
+ - table: message_sends
+ keys:
+ - MsgID
+ - table: message_unsubs
+ keys:
+ - MsgID
+ - table: messages
+ keys:
+ - MsgID
+ lists_ListID:
+ - table: lists
+ keys:
+ - ListID
+ - table: messages
+ keys:
+ - ListID
+ - table: subscribed_contacts
+ keys:
+ - ListID
+tables:
+- table-name: message_bounces
+ join:
+ - table-name: message_clicks
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: message_opens
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: message_reads
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: message_unsubs
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: subscribed_contacts
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - table-name: message_sends
+ keys:
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: messages
+ keys:
+ - key: MsgID
+ foreign-key: MsgID
+- table-name: message_clicks
+ join:
+ - table-name: message_bounces
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: message_opens
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: message_reads
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: message_unsubs
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: subscribed_contacts
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - table-name: message_sends
+ keys:
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: messages
+ keys:
+ - key: MsgID
+ foreign-key: MsgID
+- table-name: message_opens
+ join:
+ - table-name: message_bounces
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: message_clicks
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: message_reads
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: message_unsubs
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: subscribed_contacts
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - table-name: message_sends
+ keys:
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: messages
+ keys:
+ - key: MsgID
+ foreign-key: MsgID
+- table-name: message_reads
+ join:
+ - table-name: message_bounces
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: message_clicks
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: message_opens
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: message_unsubs
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: subscribed_contacts
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - table-name: message_sends
+ keys:
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: messages
+ keys:
+ - key: MsgID
+ foreign-key: MsgID
+- table-name: message_unsubs
+ join:
+ - table-name: message_bounces
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: message_clicks
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: message_opens
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: message_reads
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: subscribed_contacts
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - table-name: message_sends
+ keys:
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: messages
+ keys:
+ - key: MsgID
+ foreign-key: MsgID
+- table-name: subscribed_contacts
+ join:
+ - table-name: message_bounces
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - table-name: message_clicks
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - table-name: message_opens
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - table-name: message_reads
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - table-name: message_unsubs
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - table-name: lists
+ keys:
+ - key: ListID
+ foreign-key: ListID
+ - table-name: messages
+ keys:
+ - key: ListID
+ foreign-key: ListID
+- table-name: message_sends
+ join:
+ - table-name: message_bounces
+ keys:
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: message_clicks
+ keys:
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: message_opens
+ keys:
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: message_reads
+ keys:
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: message_unsubs
+ keys:
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: messages
+ keys:
+ - key: MsgID
+ foreign-key: MsgID
+- table-name: messages
+ join:
+ - table-name: message_bounces
+ keys:
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: message_clicks
+ keys:
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: message_opens
+ keys:
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: message_reads
+ keys:
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: message_sends
+ keys:
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: message_unsubs
+ keys:
+ - key: MsgID
+ foreign-key: MsgID
+ - table-name: lists
+ keys:
+ - key: ListID
+ foreign-key: ListID
+ - table-name: subscribed_contacts
+ keys:
+ - key: ListID
+ foreign-key: ListID
+- table-name: lists
+ join:
+ - table-name: messages
+ keys:
+ - key: ListID
+ foreign-key: ListID
+ - table-name: subscribed_contacts
+ keys:
+ - key: ListID
+ foreign-key: ListID
diff --git a/_data/taps/schemas/listrak/v1/listrak-v1-tables.yml b/_data/taps/schemas/listrak/v1/listrak-v1-tables.yml
new file mode 100644
index 000000000..2444ad4dd
--- /dev/null
+++ b/_data/taps/schemas/listrak/v1/listrak-v1-tables.yml
@@ -0,0 +1,123 @@
+tap: listrak
+version: '1'
+tables:
+- name: lists
+ description: 'The `{{ table.name }}` table contains info about your contact lists.
+
+ '
+ links:
+ doc-link: null
+ singer-schema: https://github.com/singer-io/tap-listrak/blob/master/tap_listrak/schemas/lists.json
+ api-method: https://webservices.listrak.com/v31/IntegrationService.asmx?op=GetContactListCollection
+ table-details:
+ replication-method: Full Table
+ primary-key: ListID
+- name: messages
+ description: 'The `{{ table.name }}` table contains info about message statistics.
+
+ '
+ links:
+ doc-link: null
+ singer-schema: https://github.com/singer-io/tap-listrak/blob/master/tap_listrak/schemas/messages.json
+ api-method: https://webservices.listrak.com/v31/IntegrationService.asmx?op=ReportListMessageActivity
+ table-details:
+ replication-method: Full Table
+ primary-key: MsgID
+- name: message_bounces
+ description: 'The `{{ table.name }}` table contains info about contact bounces for
+ a message.
+
+ '
+ links:
+ doc-link: null
+ singer-schema: https://github.com/singer-io/tap-listrak/blob/master/tap_listrak/schemas/message_bounces.json
+ api-method: https://webservices.listrak.com/v31/IntegrationService.asmx?op=ReportRangeMessageContactBounces
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - MsgID
+ - EmailAddress
+- name: message_clicks
+ description: 'The `{{ table.name }}` table contains info about contact clicks for
+ a message.
+
+ '
+ links:
+ doc-link: null
+ singer-schema: https://github.com/singer-io/tap-listrak/blob/master/tap_listrak/schemas/message_clicks.json
+ api-method: https://webservices.listrak.com/v31/IntegrationService.asmx?op=ReportRangeMessageContactClick
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - MsgID
+ - EmailAddress
+- name: message_opens
+ description: 'The `{{ table.name }}` table contains info about contact opens for
+ a message.
+
+ '
+ links:
+ doc-link: null
+ singer-schema: https://github.com/singer-io/tap-listrak/blob/master/tap_listrak/schemas/message_opens.json
+ api-method: https://webservices.listrak.com/v31/IntegrationService.asmx?op=ReportRangeMessageContactOpen
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - MsgID
+ - EmailAddress
+- name: message_reads
+ description: 'The `{{ table.name }}` table contains info about contact reads for
+ a message.
+
+ '
+ links:
+ doc-link: null
+ singer-schema: https://github.com/singer-io/tap-listrak/blob/master/tap_listrak/schemas/message_reads.json
+ api-method: https://webservices.listrak.com/v31/IntegrationService.asmx?op=ReportRangeMessageContactRead
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - MsgID
+ - EmailAddress
+- name: message_sends
+ description: 'The `{{ table.name }}` table contains `MsgID` and `EmailAddress` pairs,
+ allowing you to identify the messages that your contacts have been sent.
+
+ '
+ links:
+ doc-link: null
+ singer-schema: https://github.com/singer-io/tap-listrak/blob/master/tap_listrak/schemas/message_sends.json
+ api-method: https://webservices.listrak.com/v31/IntegrationService.asmx?op=ReportMessageContactSent
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - MsgID
+ - EmailAddress
+- name: message_unsubs
+ description: 'The `{{ table.name }}` table contains info about contacts who requested
+ to be removed from a list from the supplied message.
+
+ '
+ links:
+ doc-link: null
+ singer-schema: https://github.com/singer-io/tap-listrak/blob/master/tap_listrak/schemas/message_unsubs.json
+ api-method: https://webservices.listrak.com/v31/IntegrationService.asmx?op=ReportRangeMessageContactRemoval
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - MsgID
+ - EmailAddress
+- name: subscribed_contacts
+ description: 'The `{{ table.name }}` table contains info about contacts who are
+ currently subscribed to the specified list.
+
+ '
+ links:
+ doc-link: null
+ singer-schema: https://github.com/singer-io/tap-listrak/blob/master/tap_listrak/schemas/subscribed_contacts.json
+ api-method: https://webservices.listrak.com/v31/IntegrationService.asmx?op=ReportRangeSubscribedContacts
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - ContactID
+ - ListID
diff --git a/_data/taps/schemas/liveperson/v1/json/agent_activity.json b/_data/taps/schemas/liveperson/v1/json/agent_activity.json
new file mode 100644
index 000000000..ca83afa50
--- /dev/null
+++ b/_data/taps/schemas/liveperson/v1/json/agent_activity.json
@@ -0,0 +1,123 @@
+{
+ "properties": {
+ "_meta": {
+ "properties": {
+ "endTime": {
+ "type": "integer"
+ },
+ "startTime": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "agentEmployeeId": {
+ "properties": {
+ "string": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "agentGroupID": {
+ "properties": {
+ "long": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "agentID": {
+ "properties": {
+ "long": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "agentLoginname": {
+ "properties": {
+ "string": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "agentNickname": {
+ "properties": {
+ "string": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "agentUsername": {
+ "properties": {
+ "string": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "concurrentEng": {
+ "properties": {
+ "long": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "type": "string"
+ },
+ "maxConcurrentEng": {
+ "properties": {
+ "long": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "prevConcurrentEng": {
+ "properties": {
+ "long": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "prevState": {
+ "properties": {
+ "long": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "state": {
+ "properties": {
+ "long": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "timestamp": {
+ "properties": {
+ "long": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "properties": {
+ "long": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/liveperson/v1/json/agent_groups.json b/_data/taps/schemas/liveperson/v1/json/agent_groups.json
new file mode 100644
index 000000000..1e454396a
--- /dev/null
+++ b/_data/taps/schemas/liveperson/v1/json/agent_groups.json
@@ -0,0 +1,23 @@
+{
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "description": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "isEnabled": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "parentGroupId": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/liveperson/v1/json/agent_state_distribution.json b/_data/taps/schemas/liveperson/v1/json/agent_state_distribution.json
new file mode 100644
index 000000000..a2a0dc36a
--- /dev/null
+++ b/_data/taps/schemas/liveperson/v1/json/agent_state_distribution.json
@@ -0,0 +1,15 @@
+{
+ "properties": {
+ "id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "metricsData": {},
+ "timestamp": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/liveperson/v1/json/agent_status.json b/_data/taps/schemas/liveperson/v1/json/agent_status.json
new file mode 100644
index 000000000..c21174c56
--- /dev/null
+++ b/_data/taps/schemas/liveperson/v1/json/agent_status.json
@@ -0,0 +1,20 @@
+{
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "enabled": {
+ "type": "boolean"
+ },
+ "id": {
+ "type": "string"
+ },
+ "state": {
+ "type": "string"
+ },
+ "text": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/liveperson/v1/json/engagement_history.json b/_data/taps/schemas/liveperson/v1/json/engagement_history.json
new file mode 100644
index 000000000..721e7a61c
--- /dev/null
+++ b/_data/taps/schemas/liveperson/v1/json/engagement_history.json
@@ -0,0 +1,956 @@
+{
+ "properties": {
+ "campaign": {
+ "properties": {
+ "behaviorSystemDefault": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "campaignEngagementId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaignEngagementName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaignId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaignName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "engagementAgentNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "engagementApplicationId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "engagementApplicationName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "engagementApplicationTypeId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "engagementApplicationTypeName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "engagementSource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "goalId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "goalName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lobId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lobName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locationId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locationName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "profileSystemDefault": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "visitorBehaviorId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visitorBehaviorName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visitorProfileId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visitorProfileName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "coBrowseSessions": {
+ "properties": {
+ "coBrowseSessionsList": {
+ "items": {
+ "properties": {
+ "agentId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "endReason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "endTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "endTimeL": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interactive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "sessionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "startTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "startTimeL": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "type": "string"
+ },
+ "info": {
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "agentDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "agentFullName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "agentGroupId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "agentGroupName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "agentId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "agentLoginName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "agentNickName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "alertedMCS": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "brandId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "browser": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "chatDataEnriched": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "chatMCS": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "chatRequestedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "chatRequestedTimeL": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "chatStartPage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "chatStartUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "closeReason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "closeReasonDescription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversationId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "csatRate": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "endReason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "endReasonDesc": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "endTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "endTimeL": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ended": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "engagementId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "engagementSequence": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "engagementSet": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "firstConversation": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "interactive": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "isAgentSurvey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "isInteractive": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "isPartial": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "isPostChatSurvey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "isPreChatSurvey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latestAgentFullName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latestAgentGroupId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "latestAgentGroupName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latestAgentId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latestAgentLoginName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latestAgentNickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latestQueueState": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latestSkillId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "latestSkillName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mcs": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "operatingSystem": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sharkEngagementId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "skillId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "skillName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "startReason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "startReasonDesc": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "startTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "startTimeL": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visitorId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visitorName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "lineScores": {
+ "items": {
+ "properties": {
+ "lineRawScore": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lineSeq": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mcs": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "required": [],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "sdes": {
+ "properties": {
+ "events": {
+ "items": {
+ "properties": {
+ "cartStatus": {},
+ "customerInfo": {},
+ "isAuthenticated": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "marketingCampaignInfo": {},
+ "purchase": {},
+ "sdeType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "serverTimeStamp": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "surveys": {
+ "properties": {
+ "postChat": {
+ "items": {
+ "properties": {
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "questionID": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "surveyID": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "timeL": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "values": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "preChat": {
+ "items": {
+ "properties": {
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "questionID": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "surveyID": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "timeL": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "values": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "transcript": {
+ "properties": {
+ "lines": {
+ "items": {
+ "properties": {
+ "agentId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cannedAnswerType": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "controlType": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "json": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lineSeq": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "timeL": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [],
+ "type": "object"
+ },
+ "visitorInfo": {
+ "properties": {
+ "browser": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "browserType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "countryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ipAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "isp": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operatingSystem": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "org": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "required": [],
+ "type": "object"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/liveperson/v1/json/messaging_interactions.json b/_data/taps/schemas/liveperson/v1/json/messaging_interactions.json
new file mode 100644
index 000000000..86355f9e3
--- /dev/null
+++ b/_data/taps/schemas/liveperson/v1/json/messaging_interactions.json
@@ -0,0 +1,1036 @@
+{
+ "properties": {
+ "agentParticipants": {
+ "items": {
+ "properties": {
+ "agentFullName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "agentGroupId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "agentGroupName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "agentId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "agentLoginName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "agentNickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "permission": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "timeL": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "userType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "userTypeName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "campaign": {
+ "properties": {
+ "behaviorSystemDefault": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "campaignEngagementId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaignEngagementName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaignId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaignName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "engagementAgentNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "engagementApplicationId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "engagementApplicationName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "engagementApplicationTypeId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "engagementApplicationTypeName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "engagementSource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "goalId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "goalName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lobId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lobName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locationId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locationName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "profileSystemDefault": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "visitorBehaviorId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visitorBehaviorName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visitorProfileId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visitorProfileName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "coBrowseSessions": {
+ "properties": {
+ "coBrowseSessionsList": {
+ "items": {
+ "properties": {
+ "agentId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "endReason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "endTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "endTimeL": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interactive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "sessionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "startTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "startTimeL": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "consumerParticipants": {
+ "items": {
+ "properties": {
+ "avatarURL": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "consumerName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "firstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "participantId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "timeL": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "conversationSurveys": {
+ "items": {
+ "properties": {
+ "surveyData": {
+ "items": {
+ "properties": {
+ "answer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "question": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "surveyStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "surveyType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "id": {
+ "type": "string"
+ },
+ "info": {
+ "properties": {
+ "agentDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "alertedMCS": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "brandId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "browser": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "closeReason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "closeReasonDescription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversationId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "csatRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "endTime": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "endTimeL": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "firstConversation": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "isPartial": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "latestAgentFullName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latestAgentGroupId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "latestAgentGroupName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latestAgentId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latestAgentLoginName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latestAgentNickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latestQueueState": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latestSkillId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "latestSkillName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mcs": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "operatingSystem": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "startTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "startTimeL": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "interactions": {
+ "items": {
+ "properties": {
+ "assignedAgentFullName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assignedAgentId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assignedAgentLoginName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assignedAgentNickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interactionTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "interactionTimeL": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interactiveSequence": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "messageRecords": {
+ "items": {
+ "properties": {
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dialogId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "messageData": {
+ "properties": {
+ "msg": {
+ "properties": {
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "messageId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "participantId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sentBy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "seq": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "timeL": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "messageScores": {
+ "items": {
+ "properties": {
+ "mcs": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "messageId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "messageRawScore": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "timeL": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "messageStatuses": {
+ "items": {
+ "properties": {
+ "messageDeliveryStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "messageId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "participantId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "participantType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "seq": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "timeL": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "monitoring": {
+ "properties": {
+ "browser": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversationStartPage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversationStartPageTitle": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "countryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ipAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "isp": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operatingSystem": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "org": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "sdes": {
+ "properties": {
+ "events": {
+ "items": {
+ "properties": {
+ "cartStatus": {},
+ "customerInfo": {},
+ "marketingCampaignInfo": {},
+ "purchase": {},
+ "sdeType": {},
+ "serverTimeStamp": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "serviceActivity": {}
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "summary": {
+ "properties": {
+ "lastUpdatedTime": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "transfers": {
+ "items": {
+ "properties": {
+ "assignedAgentId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sourceAgentFullName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sourceAgentId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sourceAgentLoginName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sourceAgentNickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sourceSkillId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sourceSkillName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targetSkillId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "targetSkillName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "timeL": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "unAuthSdes": {
+ "properties": {
+ "events": {
+ "items": {
+ "properties": {
+ "cartStatus": {},
+ "customerInfo": {},
+ "personalInfo": {},
+ "purchase": {},
+ "sdeType": {},
+ "serverTimeStamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/liveperson/v1/json/messaging_queue_health.json b/_data/taps/schemas/liveperson/v1/json/messaging_queue_health.json
new file mode 100644
index 000000000..c07c9c175
--- /dev/null
+++ b/_data/taps/schemas/liveperson/v1/json/messaging_queue_health.json
@@ -0,0 +1,125 @@
+{
+ "properties": {
+ "actionableAndConsumerLastMessage": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "actionableAndDuringTransfer": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "actionableAndManualSla": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "actionableConversations": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "avgWaitTimeForAgentAssignment_AfterTransfer": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "avgWaitTimeForAgentAssignment_AfterTransferFromAgent": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "avgWaitTimeForAgentAssignment_AfterTransferFromBot": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "avgWaitTimeForAgentAssignment_NewConversation": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "maxWaitTimeForAgentAssignment": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "maxWaitTimeForAgentAssignment_AfterTransferFromAgent": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "notActionableAndManualSla": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "notActionableConversations": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "notActionableDuringTransfer": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "skill": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "unassignedConversations": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "unassignedConversationsAndFirstTimeConsumer": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "waitTimeForAgentAssignment_50thPercentile": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "waitTimeForAgentAssignment_90thPercentile": {
+ "type": [
+ "number",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/liveperson/v1/json/queue_health.json b/_data/taps/schemas/liveperson/v1/json/queue_health.json
new file mode 100644
index 000000000..5d892c0dc
--- /dev/null
+++ b/_data/taps/schemas/liveperson/v1/json/queue_health.json
@@ -0,0 +1,74 @@
+{
+ "properties": {
+ "abandonedEng": {
+ "type": "number"
+ },
+ "abandonmentRate": {
+ "type": "number"
+ },
+ "availableSlotsCount": {
+ "type": "number"
+ },
+ "availableSlotsSum": {
+ "type": "number"
+ },
+ "averageAvailableSlots": {
+ "type": "number"
+ },
+ "averageQueueSize": {
+ "type": "number"
+ },
+ "avgTimeToAbandon": {
+ "type": "number"
+ },
+ "avgTimeToAnswer": {
+ "type": "number"
+ },
+ "connectedEng": {
+ "type": "number"
+ },
+ "currentAvailableSlots": {
+ "type": "number"
+ },
+ "currentQueueSize": {
+ "type": "number"
+ },
+ "enteredQEng": {
+ "type": "number"
+ },
+ "id": {
+ "type": "string"
+ },
+ "maxAvailableSlots": {
+ "type": "number"
+ },
+ "maxQueueSize": {
+ "type": "number"
+ },
+ "minAvailableSlots": {
+ "type": "number"
+ },
+ "minQueueSize": {
+ "type": "number"
+ },
+ "queueSizeCount": {
+ "type": "number"
+ },
+ "queueSizeSum": {
+ "type": "number"
+ },
+ "skill": {
+ "type": "string"
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "totalTimeToAbandon": {
+ "type": "number"
+ },
+ "totalTimeToAnswer": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/liveperson/v1/json/skills.json b/_data/taps/schemas/liveperson/v1/json/skills.json
new file mode 100644
index 000000000..3b91b0172
--- /dev/null
+++ b/_data/taps/schemas/liveperson/v1/json/skills.json
@@ -0,0 +1,17 @@
+{
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "pid": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/liveperson/v1/json/users.json b/_data/taps/schemas/liveperson/v1/json/users.json
new file mode 100644
index 000000000..b5afea3c6
--- /dev/null
+++ b/_data/taps/schemas/liveperson/v1/json/users.json
@@ -0,0 +1,17 @@
+{
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "id": {
+ "type": "string"
+ },
+ "loginName": {
+ "type": "string"
+ },
+ "pid": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/liveperson/v1/liveperson-v1-tables.yml b/_data/taps/schemas/liveperson/v1/liveperson-v1-tables.yml
new file mode 100644
index 000000000..f6dda4b2f
--- /dev/null
+++ b/_data/taps/schemas/liveperson/v1/liveperson-v1-tables.yml
@@ -0,0 +1,130 @@
+tap: liveperson
+version: '1'
+tables:
+- name: agent_activity
+ description: 'The `{{ table.name }}` table contains info about agent session data.
+ Activity data is a list of sessions that occur from the agent''s login time to
+ their logout time.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-liveperson/blob/master/tap_liveperson/schemas/agent_activity.json
+ api-method: https://developers.liveperson.com/data-access-api-methods-agent-activity.html
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: agent_groups
+ description: 'The `{{ table.name }}` table contains info about the agent groups
+ in your {{ integration.display_name }} account.
+
+
+ **Note**: Stitch will query for and replicate deleted agent groups.
+
+ '
+ links:
+ doc-link: https://developers.liveperson.com/agent-groups-api-overview.html#use-cases-for-the-agent-groups-api
+ singer-schema: https://github.com/singer-io/tap-liveperson/blob/master/tap_liveperson/schemas/agent_groups.json
+ api-method: https://developers.liveperson.com/agent-groups-api-methods-get-all-agent-groups.html#request
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: agent_state_distribution
+ description: The `{{ table.name }}` table contains info about the agent state distribution
+ in your {{ integration.display_name }} account.
+ links:
+ singer-schema: https://github.com/singer-io/tap-liveperson/blob/master/tap_liveperson/schemas/agent_state_distribution.json
+ api-method: https://developers.liveperson.com/operational-realtime-api-methods-agent-activity.html
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: agent_status
+ description: 'The `{{ table.name }}` table contains data for each of the agent statuses
+ in your {{ integration.display_name }} account.
+
+
+ **Note**: Stitch will query for and replicate deleted agent statuses.
+
+ '
+ links:
+ doc-link: https://developers.liveperson.com/agent-status-reason-api-overview.html#status-reason-object-description
+ singer-schema: https://github.com/singer-io/tap-liveperson/blob/master/tap_liveperson/schemas/agent_status.json
+ api-method: https://developers.liveperson.com/agent-status-reason-api-methods-agent-status-list.html#description
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: engagement_history
+ description: 'The `{{ table.name }}` table contains info about the engagements in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.liveperson.com/engagement-history-api-overview.html
+ singer-schema: https://github.com/singer-io/tap-liveperson/blob/master/tap_liveperson/schemas/engagement_history.json
+ api-method: https://developers.liveperson.com/engagement-history-api-methods.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: messaging_interactions
+ description: 'The `{{ table.name }}` table contains info about contact center messaging
+ interactions.
+
+ '
+ links:
+ doc-link: https://developers.liveperson.com/messaging-interactions-api-overview.html#getting-started
+ singer-schema: https://github.com/singer-io/tap-liveperson/blob/master/tap_liveperson/schemas/messaging_interactions.json
+ api-method: https://developers.liveperson.com/messaging-interactions-api-methods-conversations.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: messaging_queue_health
+ description: 'The `{{ table.name }}` table contains messaging queue-related metrics.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-liveperson/blob/master/tap_liveperson/schemas/messaging_queue_health.json
+ api-method: https://developers.liveperson.com/messaging-operations-api-methods-messaging-queue-health.html
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: queue_health
+ description: 'The `{{ table.name }}` table contains queue-related metrics.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-liveperson/blob/master/tap_liveperson/schemas/queue_health.json
+ api-method: https://developers.liveperson.com/operational-realtime-api-methods-queue-health.html
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: skills
+ description: 'The `{{ table.name }}` table contains info about the agent skills
+ in your {{ integration.display_name }} account.
+
+
+ **Note**: Stitch will query for and replicate deleted skills.
+
+ '
+ links:
+ doc-link: https://developers.liveperson.com/skills-api-overview.html
+ singer-schema: https://github.com/singer-io/tap-liveperson/blob/master/tap_liveperson/schemas/skills.json
+ api-method: https://developers.liveperson.com/skills-api-methods-get-all-skills.html
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: users
+ description: 'The `{{ table.name }}` table contains info about the users in your
+ {{ integration.display_name }} account. This includes agents, agent managers,
+ administrators, and campaign managers.
+
+
+ **Note**: Stitch will query for and replicate deleted users.
+
+ '
+ links:
+ doc-link: https://developers.liveperson.com/users-api-overview.html
+ singer-schema: https://github.com/singer-io/tap-liveperson/blob/master/tap_liveperson/schemas/users.json
+ api-method: https://developers.liveperson.com/users-api-methods-get-all-users.html
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/looker/v1/json/color_collections.json b/_data/taps/schemas/looker/v1/json/color_collections.json
new file mode 100644
index 000000000..beaa0ccb2
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/color_collections.json
@@ -0,0 +1,188 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "categoricalPalettes": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "colors": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "divergingPalettes": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stops": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "offset": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sequentialPalettes": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stops": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "offset": {
+ "multipleOf": 1e-16,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/connections.json b/_data/taps/schemas/looker/v1/json/connections.json
new file mode 100644
index 000000000..1632e75e2
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/connections.json
@@ -0,0 +1,391 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "after_connect_statements": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "certificate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "database": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "db_timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dialect": {
+ "additionalProperties": false,
+ "properties": {
+ "automatically_run_sql_runner_snippets": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "connection_tests": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "persistent_table_distkey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "persistent_table_indexes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "persistent_table_sortkeys": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "supports_cost_estimate": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "supports_inducer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "supports_streaming": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "supports_upload_tables": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "dialect_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "example": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "file_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "host": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "jdbc_additional_params": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_reap_at": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_regen_at": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "maintenance_cron": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_billing_gigabytes": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "max_connections": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "password": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pdt_context_override": {
+ "additionalProperties": false,
+ "properties": {
+ "after_connect_statements": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "certificate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "context": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "database": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "file_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_password": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "host": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "jdbc_additional_params": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "password": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "port": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "schema": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "pool_timeout": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "port": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "query_timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "schema": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "snippets": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "sql_runner_precache_tables": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ssl": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tmp_db_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_attribute_fields": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "user_db_credentials": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uses_oauth": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "verify_ssl": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/content_favorites.json b/_data/taps/schemas/looker/v1/json/content_favorites.json
new file mode 100644
index 000000000..385dd0dbb
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/content_favorites.json
@@ -0,0 +1,348 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "content_metadata_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dashboard": {
+ "additionalProperties": false,
+ "properties": {
+ "content_favorite_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_metadata_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "folder": {
+ "additionalProperties": false,
+ "properties": {
+ "child_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "content_metadata_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creator_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_embed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal_descendant": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "model": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "query_timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "readonly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "refresh_interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refresh_interval_to_i": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "space": {
+ "additionalProperties": false,
+ "properties": {
+ "child_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "content_metadata_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creator_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_embed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal_descendant": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "dashboard_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "look": {
+ "additionalProperties": false,
+ "properties": {
+ "content_metadata_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "look_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/content_metadata.json b/_data/taps/schemas/looker/v1/json/content_metadata.json
new file mode 100644
index 000000000..7653376ac
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/content_metadata.json
@@ -0,0 +1,75 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "content_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dashboard_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "folder_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inheriting_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inherits": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "look_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "slug": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "space_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/content_metadata_access.json b/_data/taps/schemas/looker/v1/json/content_metadata_access.json
new file mode 100644
index 000000000..d2c6426eb
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/content_metadata_access.json
@@ -0,0 +1,39 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "content_metadata_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "permission_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/content_views.json b/_data/taps/schemas/looker/v1/json/content_views.json
new file mode 100644
index 000000000..1f22bc88e
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/content_views.json
@@ -0,0 +1,69 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "content_metadata_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dashboard_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "favorite_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_viewed_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "look_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_of_week_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/dashboard_elements.json b/_data/taps/schemas/looker/v1/json/dashboard_elements.json
new file mode 100644
index 000000000..39a13af5c
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/dashboard_elements.json
@@ -0,0 +1,1248 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "alert_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "body_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body_text_as_html": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dashboard_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "edit_uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "look": {
+ "additionalProperties": false,
+ "properties": {
+ "content_favorite_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_metadata_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "deleted_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleter_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "embed_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "excel_file_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "favorite_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "folder": {
+ "additionalProperties": false,
+ "properties": {
+ "child_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "content_metadata_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creator_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_embed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal_descendant": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "folder_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "google_spreadsheet_formula": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_embed_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_run_on_load": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_accessed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_updater_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_viewed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "model": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "public": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "public_slug": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "public_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "query": {
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "column_limit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_fields": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expanded_share_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fields": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "fill_fields": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "filter_config": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "filter_expression": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "filters": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "has_table_calculations": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "limit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pivots": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "query_timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "row_total": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "runtime": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "share_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "slug": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sorts": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "subtotals": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "total": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vis_config": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "visible_ui_sections": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "query_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "short_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "space": {
+ "additionalProperties": false,
+ "properties": {
+ "child_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "content_metadata_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creator_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_embed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal_descendant": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "space_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "look_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lookml_link_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "merge_result_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note_display": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note_text_as_html": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "query": {
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "column_limit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_fields": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expanded_share_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fields": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "fill_fields": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "filter_config": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "filter_expression": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "filters": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "has_table_calculations": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "limit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pivots": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "query_timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "row_total": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "runtime": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "share_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "slug": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sorts": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "subtotals": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "total": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vis_config": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "visible_ui_sections": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "query_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refresh_interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refresh_interval_to_i": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "result_maker": {
+ "additionalProperties": false,
+ "properties": {
+ "dynamic_fields": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "filterables": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "listen": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "dashboard_filter_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "merge_result_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "query": {
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "column_limit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_fields": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expanded_share_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fields": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "fill_fields": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "filter_config": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "filter_expression": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "filters": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "has_table_calculations": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "limit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pivots": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "query_timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "row_total": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "runtime": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "share_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "slug": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sorts": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "subtotals": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "total": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vis_config": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "visible_ui_sections": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "query_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sorts": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "total": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "vis_config": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "result_maker_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subtitle_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title_hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "title_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/dashboard_filters.json b/_data/taps/schemas/looker/v1/json/dashboard_filters.json
new file mode 100644
index 000000000..540bfb1fb
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/dashboard_filters.json
@@ -0,0 +1,109 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "allow_multiple_values": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "dashboard_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dimension": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "explore": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "listens_to_filters": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "row": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ui_config": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/dashboard_layouts.json b/_data/taps/schemas/looker/v1/json/dashboard_layouts.json
new file mode 100644
index 000000000..637cdcbc1
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/dashboard_layouts.json
@@ -0,0 +1,138 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "column_width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "dashboard_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dashboard_layout_components": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "column": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "dashboard_element_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dashboard_layout_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "element_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_title_hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "row": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "vis_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "dashboard_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/dashboards.json b/_data/taps/schemas/looker/v1/json/dashboards.json
new file mode 100644
index 000000000..b667a01c4
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/dashboards.json
@@ -0,0 +1,282 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "content_favorite_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_metadata_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "folder": {
+ "additionalProperties": false,
+ "properties": {
+ "child_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "content_metadata_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creator_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_embed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal_descendant": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "model": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "query_timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "readonly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "refresh_interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refresh_interval_to_i": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "space": {
+ "additionalProperties": false,
+ "properties": {
+ "child_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "content_metadata_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creator_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_embed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal_descendant": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/datagroups.json b/_data/taps/schemas/looker/v1/json/datagroups.json
new file mode 100644
index 000000000..eacb3e8a7
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/datagroups.json
@@ -0,0 +1,63 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "model_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stale_before": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "trigger_check_at": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "trigger_error": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trigger_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "triggered_at": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/explores.json b/_data/taps/schemas/looker/v1/json/explores.json
new file mode 100644
index 000000000..a6ed0ce26
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/explores.json
@@ -0,0 +1,2335 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "access_filter_fields": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ],
+ "x-looker-deprecated": true
+ },
+ "access_filters": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_attribute": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "aliases": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "always_filter": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "can_explain": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "can_pivot_in_db": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "can_save": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "can_subtotal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "can_total": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "conditionally_filter": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "connection_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "errors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "details": {
+ "type": [
+ "null",
+ "any"
+ ]
+ },
+ "error_pos": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field_error": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "fields": {
+ "additionalProperties": false,
+ "properties": {
+ "dimensions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "align": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "can_filter": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "can_time_filter": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_filter_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enumerations": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "error": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field_group_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field_group_variant": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fill_style": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fiscal_month_offset": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "has_allowed_values": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_filter": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_fiscal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_numeric": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_timeframe": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label_from_parameter": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label_short": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lookml_link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "map_layer": {
+ "additionalProperties": false,
+ "properties": {
+ "extents_json_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "feature_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_zoom_level": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "min_zoom_level": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "projection": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "property_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "property_label_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "measure": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parameter": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "permanent": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "primary_key": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "project_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "requires_refresh_on_sort": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sortable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "source_file": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source_file_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql_case": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "condition": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "strict_value_format": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "suggest_dimension": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggest_explore": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggestable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "suggestions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "time_interval": {
+ "additionalProperties": false,
+ "properties": {
+ "count": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_attribute_filter_types": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "value_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "week_start_day": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "filters": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "align": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "can_filter": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "can_time_filter": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_filter_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enumerations": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "error": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field_group_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field_group_variant": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fill_style": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fiscal_month_offset": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "has_allowed_values": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_filter": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_fiscal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_numeric": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_timeframe": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label_from_parameter": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label_short": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lookml_link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "map_layer": {
+ "additionalProperties": false,
+ "properties": {
+ "extents_json_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "feature_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_zoom_level": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "min_zoom_level": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "projection": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "property_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "property_label_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "measure": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parameter": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "permanent": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "primary_key": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "project_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "requires_refresh_on_sort": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sortable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "source_file": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source_file_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql_case": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "condition": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "strict_value_format": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "suggest_dimension": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggest_explore": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggestable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "suggestions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "time_interval": {
+ "additionalProperties": false,
+ "properties": {
+ "count": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_attribute_filter_types": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "value_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "week_start_day": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "measures": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "align": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "can_filter": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "can_time_filter": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_filter_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enumerations": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "error": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field_group_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field_group_variant": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fill_style": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fiscal_month_offset": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "has_allowed_values": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_filter": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_fiscal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_numeric": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_timeframe": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label_from_parameter": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label_short": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lookml_link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "map_layer": {
+ "additionalProperties": false,
+ "properties": {
+ "extents_json_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "feature_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_zoom_level": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "min_zoom_level": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "projection": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "property_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "property_label_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "measure": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parameter": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "permanent": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "primary_key": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "project_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "requires_refresh_on_sort": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sortable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "source_file": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source_file_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql_case": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "condition": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "strict_value_format": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "suggest_dimension": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggest_explore": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggestable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "suggestions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "time_interval": {
+ "additionalProperties": false,
+ "properties": {
+ "count": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_attribute_filter_types": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "value_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "week_start_day": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "parameters": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "align": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "can_filter": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "can_time_filter": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_filter_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enumerations": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "error": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field_group_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field_group_variant": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fill_style": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fiscal_month_offset": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "has_allowed_values": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_filter": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_fiscal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_numeric": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_timeframe": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label_from_parameter": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label_short": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lookml_link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "map_layer": {
+ "additionalProperties": false,
+ "properties": {
+ "extents_json_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "feature_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_zoom_level": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "min_zoom_level": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "projection": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "property_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "property_label_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "measure": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parameter": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "permanent": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "primary_key": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "project_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "requires_refresh_on_sort": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sortable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "source_file": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source_file_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql_case": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "condition": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "strict_value_format": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "suggest_dimension": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggest_explore": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggestable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "suggestions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "time_interval": {
+ "additionalProperties": false,
+ "properties": {
+ "count": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_attribute_filter_types": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "value_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "week_start_day": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "files": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "group_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_timezone_support": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_fields": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "joins": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "dependent_fields": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "fields": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "foreign_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "from": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "outer_only": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "relationship": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "required_joins": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "sql_foreign_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql_on": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql_table_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "model_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "null_sort_treatment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "project_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "scopes": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "sets": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "source_file": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql_table_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "supported_measure_types": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "dimension_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "measure_types": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "supports_cost_estimate": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "view_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/folders.json b/_data/taps/schemas/looker/v1/json/folders.json
new file mode 100644
index 000000000..b79d12d7c
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/folders.json
@@ -0,0 +1,1074 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "child_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "content_metadata_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creator_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dashboards": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "content_favorite_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_metadata_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "folder": {
+ "additionalProperties": false,
+ "properties": {
+ "child_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "content_metadata_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creator_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_embed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal_descendant": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "model": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "query_timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "readonly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "refresh_interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refresh_interval_to_i": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "space": {
+ "additionalProperties": false,
+ "properties": {
+ "child_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "content_metadata_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creator_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_embed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal_descendant": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_embed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal_descendant": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "looks": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "content_favorite_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_metadata_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "dashboards": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "content_favorite_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_metadata_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "folder": {
+ "additionalProperties": false,
+ "properties": {
+ "child_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "content_metadata_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creator_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_embed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal_descendant": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "model": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "query_timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "readonly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "refresh_interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refresh_interval_to_i": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "space": {
+ "additionalProperties": false,
+ "properties": {
+ "child_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "content_metadata_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creator_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_embed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal_descendant": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "deleted_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleter_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "embed_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "excel_file_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "favorite_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "folder": {
+ "additionalProperties": false,
+ "properties": {
+ "child_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "content_metadata_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creator_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_embed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal_descendant": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "folder_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "google_spreadsheet_formula": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_embed_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_run_on_load": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_accessed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_updater_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_viewed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "model": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "public": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "public_slug": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "public_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "query_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "short_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "space": {
+ "additionalProperties": false,
+ "properties": {
+ "child_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "content_metadata_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creator_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_embed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal_descendant": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "space_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/git_branches.json b/_data/taps/schemas/looker/v1/json/git_branches.json
new file mode 100644
index 000000000..811c872d1
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/git_branches.json
@@ -0,0 +1,111 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "ahead_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "behind_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "commit_at": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "error": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_local": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_production": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_remote": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "personal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "readonly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ref": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "remote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "remote_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "remote_ref": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/groups.json b/_data/taps/schemas/looker/v1/json/groups.json
new file mode 100644
index 000000000..d6e9f85e3
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/groups.json
@@ -0,0 +1,57 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "can_add_to_content_metadata": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "contains_current_user": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "external_group_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "externally_managed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "include_by_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/groups_in_group.json b/_data/taps/schemas/looker/v1/json/groups_in_group.json
new file mode 100644
index 000000000..de503f9eb
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/groups_in_group.json
@@ -0,0 +1,63 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "can_add_to_content_metadata": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "contains_current_user": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "external_group_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "externally_managed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "include_by_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_group_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/integration_hubs.json b/_data/taps/schemas/looker/v1/json/integration_hubs.json
new file mode 100644
index 000000000..0e1bf8cca
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/integration_hubs.json
@@ -0,0 +1,69 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "authorization_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fetch_error_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_authorization_token": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "legal_agreement_required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "legal_agreement_signed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "legal_agreement_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "official": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/integrations.json b/_data/taps/schemas/looker/v1/json/integrations.json
new file mode 100644
index 000000000..c42e2f2db
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/integrations.json
@@ -0,0 +1,243 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "delegate_oauth": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "icon_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "installed_delegate_oauth": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "integration_hub_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "params": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "delegate_oauth_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_value": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "per_user": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "sensitive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "user_attribute_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "required_fields": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "all_tags": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "any_tag": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "supported_action_types": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "supported_download_settings": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "supported_formats": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "supported_formattings": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "supported_visualization_formattings": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "uses_oauth": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/lookml_dashboards.json b/_data/taps/schemas/looker/v1/json/lookml_dashboards.json
new file mode 100644
index 000000000..b667a01c4
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/lookml_dashboards.json
@@ -0,0 +1,282 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "content_favorite_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_metadata_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "folder": {
+ "additionalProperties": false,
+ "properties": {
+ "child_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "content_metadata_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creator_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_embed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal_descendant": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "model": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "query_timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "readonly": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "refresh_interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refresh_interval_to_i": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "space": {
+ "additionalProperties": false,
+ "properties": {
+ "child_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "content_metadata_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creator_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_embed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal_descendant": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/lookml_models.json b/_data/taps/schemas/looker/v1/json/lookml_models.json
new file mode 100644
index 000000000..6a01549e5
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/lookml_models.json
@@ -0,0 +1,96 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "allowed_db_connection_names": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "explores": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "has_content": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "project_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unlimited_db_connections": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/looks.json b/_data/taps/schemas/looker/v1/json/looks.json
new file mode 100644
index 000000000..bd77b726d
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/looks.json
@@ -0,0 +1,399 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "content_favorite_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_metadata_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "deleted_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleter_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "embed_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "excel_file_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "favorite_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "folder": {
+ "additionalProperties": false,
+ "properties": {
+ "child_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "content_metadata_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creator_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_embed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal_descendant": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "folder_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "google_spreadsheet_formula": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_embed_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_run_on_load": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_accessed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_updater_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_viewed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "model": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "public": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "public_slug": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "public_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "query_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "short_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "space": {
+ "additionalProperties": false,
+ "properties": {
+ "child_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "content_metadata_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creator_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_embed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_embed_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_personal_descendant": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_shared_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_users_root": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "space_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/merge_queries.json b/_data/taps/schemas/looker/v1/json/merge_queries.json
new file mode 100644
index 000000000..f163d7413
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/merge_queries.json
@@ -0,0 +1,120 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "column_limit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_fields": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pivots": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "result_maker_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sorts": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "source_queries": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "merge_fields": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source_field_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "query_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "total": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "vis_config": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/model_sets.json b/_data/taps/schemas/looker/v1/json/model_sets.json
new file mode 100644
index 000000000..aba841da2
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/model_sets.json
@@ -0,0 +1,51 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "all_access": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "built_in": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "models": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/models.json b/_data/taps/schemas/looker/v1/json/models.json
new file mode 100644
index 000000000..6a01549e5
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/models.json
@@ -0,0 +1,96 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "allowed_db_connection_names": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "explores": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "has_content": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "project_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unlimited_db_connections": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/permission_sets.json b/_data/taps/schemas/looker/v1/json/permission_sets.json
new file mode 100644
index 000000000..4898f693a
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/permission_sets.json
@@ -0,0 +1,51 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "all_access": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "built_in": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "permissions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/permissions.json b/_data/taps/schemas/looker/v1/json/permissions.json
new file mode 100644
index 000000000..3088e02d6
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/permissions.json
@@ -0,0 +1,27 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "permission": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/project_files.json b/_data/taps/schemas/looker/v1/json/project_files.json
new file mode 100644
index 000000000..431386b77
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/project_files.json
@@ -0,0 +1,90 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "editable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "extension": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_status": {
+ "additionalProperties": false,
+ "properties": {
+ "action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conflict": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "revertable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mime_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/projects.json b/_data/taps/schemas/looker/v1/json/projects.json
new file mode 100644
index 000000000..fbcc6506a
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/projects.json
@@ -0,0 +1,105 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "allow_warnings": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "deploy_secret": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "folders_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "git_password": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_password_user_attribute": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_remote_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_service_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_username_user_attribute": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_example": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pull_request_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unset_deploy_secret": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "uses_git": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "validation_required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/queries.json b/_data/taps/schemas/looker/v1/json/queries.json
new file mode 100644
index 000000000..d5fe6f395
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/queries.json
@@ -0,0 +1,196 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "column_limit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_fields": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expanded_share_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fields": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "fill_fields": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "filter_config": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "filter_expression": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "filters": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "has_table_calculations": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "limit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pivots": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "query_timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "row_total": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "runtime": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "share_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "slug": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sorts": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "subtotals": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "total": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vis_config": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "visible_ui_sections": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/query_history.json b/_data/taps/schemas/looker/v1/json/query_history.json
new file mode 100644
index 000000000..e7637cab7
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/query_history.json
@@ -0,0 +1,76 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "dashboard_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dims_hash_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "history_created_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "history_query_run_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "history_total_runtime": {
+ "multipleOf": 1e-20,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "look_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "query_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "query_model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "query_view": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "space_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/role_groups.json b/_data/taps/schemas/looker/v1/json/role_groups.json
new file mode 100644
index 000000000..e414eeedd
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/role_groups.json
@@ -0,0 +1,63 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "can_add_to_content_metadata": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "contains_current_user": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "external_group_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "externally_managed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "include_by_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/roles.json b/_data/taps/schemas/looker/v1/json/roles.json
new file mode 100644
index 000000000..129d942cb
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/roles.json
@@ -0,0 +1,147 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "model_set": {
+ "additionalProperties": false,
+ "properties": {
+ "all_access": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "built_in": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "models": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "model_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "permission_set": {
+ "additionalProperties": false,
+ "properties": {
+ "all_access": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "built_in": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "permissions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "permission_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "users_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/scheduled_plans.json b/_data/taps/schemas/looker/v1/json/scheduled_plans.json
new file mode 100644
index 000000000..026ed70a7
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/scheduled_plans.json
@@ -0,0 +1,316 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "color_theme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "crontab": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dashboard_filters": {
+ "type": [
+ "null",
+ "string"
+ ],
+ "x-looker-deprecated": true
+ },
+ "dashboard_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "datagroup": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "embed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "filters_string": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "include_links": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_run_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "long_tables": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "look_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lookml_dashboard_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "next_run_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "pdf_landscape": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "pdf_paper_size": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "query_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "require_change": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "require_no_results": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "require_results": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "run_as_recipient": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "run_once": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "scheduled_plan_destination": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "apply_formatting": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "apply_vis": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "looker_recipient": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parameters": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "scheduled_plan_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "secret_parameters": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "send_all_results": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user": {
+ "additionalProperties": false,
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/themes.json b/_data/taps/schemas/looker/v1/json/themes.json
new file mode 100644
index 000000000..09afa72b1
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/themes.json
@@ -0,0 +1,132 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "begin_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "end_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "settings": {
+ "additionalProperties": false,
+ "properties": {
+ "background_color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "base_font_size": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "color_collection_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "font_color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "font_family": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "font_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "info_button_color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "primary_button_color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "show_filters_bar": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "show_title": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "text_tile_text_color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tile_background_color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tile_text_color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title_color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "warn_button_color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/user_attribute_group_values.json b/_data/taps/schemas/looker/v1/json/user_attribute_group_values.json
new file mode 100644
index 000000000..16ac0a528
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/user_attribute_group_values.json
@@ -0,0 +1,45 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "group_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rank": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "user_attribute_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value_is_hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/user_attribute_values.json b/_data/taps/schemas/looker/v1/json/user_attribute_values.json
new file mode 100644
index 000000000..fe4f69470
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/user_attribute_values.json
@@ -0,0 +1,69 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "hidden_value_domain_whitelist": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rank": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_attribute_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_can_edit": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value_is_hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/user_attributes.json b/_data/taps/schemas/looker/v1/json/user_attributes.json
new file mode 100644
index 000000000..da77744a9
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/user_attributes.json
@@ -0,0 +1,75 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "default_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hidden_value_domain_whitelist": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_permanent": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_system": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_can_edit": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "user_can_view": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "value_is_hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/user_login_lockouts.json b/_data/taps/schemas/looker/v1/json/user_login_lockouts.json
new file mode 100644
index 000000000..7c73db1a8
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/user_login_lockouts.json
@@ -0,0 +1,63 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "auth_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fail_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lockout_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "remote_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/user_sessions.json b/_data/taps/schemas/looker/v1/json/user_sessions.json
new file mode 100644
index 000000000..9d9aecd37
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/user_sessions.json
@@ -0,0 +1,93 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "browser": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "credentials_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expires_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "extended_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "extended_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ip_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operating_system": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sudo_user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/users.json b/_data/taps/schemas/looker/v1/json/users.json
new file mode 100644
index 000000000..46a72aa08
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/users.json
@@ -0,0 +1,757 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avatar_url_without_sizing": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "credentials_api3": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_disabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "credentials_email": {
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "forced_password_reset_at_next_login": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_disabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "logged_in_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "password_reset_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "credentials_embed": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_group_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_disabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "logged_in_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "credentials_google": {
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "google_user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_disabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "logged_in_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "credentials_ldap": {
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_disabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ldap_dn": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ldap_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "logged_in_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "credentials_looker_openid": {
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_disabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "logged_in_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "logged_in_ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "credentials_oidc": {
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_disabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "logged_in_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "oidc_user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "credentials_saml": {
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_disabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "logged_in_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "saml_user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "credentials_totp": {
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_disabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "embed_group_space_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_ids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "home_folder_id": {
+ "additionalProperties": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "home_space_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_disabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "looker_versions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "models_dir_validated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "personal_folder_id": {
+ "additionalProperties": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "personal_space_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "presumed_looker_employee": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "role_ids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "roles_externally_managed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "sessions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "browser": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "credentials_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expires_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "extended_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "extended_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ip_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operating_system": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sudo_user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ui_state": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_looker_employee": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/versions.json b/_data/taps/schemas/looker/v1/json/versions.json
new file mode 100644
index 000000000..26c7b8b74
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/versions.json
@@ -0,0 +1,87 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "current_version": {
+ "additionalProperties": false,
+ "properties": {
+ "full_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "swagger_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "looker_release_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "supported_versions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "full_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "swagger_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/json/workspaces.json b/_data/taps/schemas/looker/v1/json/workspaces.json
new file mode 100644
index 000000000..c1ea05f85
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/json/workspaces.json
@@ -0,0 +1,126 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "projects": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "allow_warnings": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "deploy_secret": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "folders_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "git_password": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_password_user_attribute": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_remote_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_service_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_username_user_attribute": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_example": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pull_request_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unset_deploy_secret": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "uses_git": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "validation_required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/looker/v1/looker-v1-foreign-keys.yml b/_data/taps/schemas/looker/v1/looker-v1-foreign-keys.yml
new file mode 100644
index 000000000..d6468ade8
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/looker-v1-foreign-keys.yml
@@ -0,0 +1,5666 @@
+tap: looker
+version: '1'
+keys:
+ color_collections_color_collection_id:
+ - table: color_collections
+ keys:
+ - id
+ - table: themes
+ keys:
+ - settings.color_collection_id
+ content_favorites_content_favorite_id:
+ - table: content_favorites
+ keys:
+ - id
+ - dashboard.content_favorite_id
+ - table: dashboard_elements
+ keys:
+ - look.content_favorite_id
+ - table: dashboards
+ keys:
+ - content_favorite_id
+ - table: folders
+ keys:
+ - dashboards.content_favorite_id
+ - looks.content_favorite_id
+ - table: lookml_dashboards
+ keys:
+ - content_favorite_id
+ - table: looks
+ keys:
+ - content_favorite_id
+ content_metadata_content_metadata_id:
+ - table: content_favorites
+ keys:
+ - content_metadata_id
+ - dashboard.content_metadata_id
+ - dashboard.folder.content_metadata_id
+ - dashboard.space.content_metadata_id
+ - look.content_metadata_id
+ - table: content_metadata
+ keys:
+ - id
+ - parent_id
+ - table: content_metadata_access
+ keys:
+ - content_metadata_id
+ - table: content_views
+ keys:
+ - content_metadata_id
+ - table: dashboard_elements
+ keys:
+ - look.content_metadata_id
+ - look.folder.content_metadata_id
+ - look.space.content_metadata_id
+ - table: dashboards
+ keys:
+ - content_metadata_id
+ - folder.content_metadata_id
+ - space.content_metadata_id
+ - table: folders
+ keys:
+ - dashboards.folder.content_metadata_id
+ - dashboards.space.content_metadata_id
+ - looks.content_metadata_id
+ - looks.folder.content_metadata_id
+ - table: lookml_dashboards
+ keys:
+ - content_metadata_id
+ - folder.content_metadata_id
+ - space.content_metadata_id
+ - table: looks
+ keys:
+ - content_metadata_id
+ dashboards_dashboard_id:
+ - table: content_favorites
+ keys:
+ - dashboard.id
+ - dashboard_id
+ - table: content_metadata
+ keys:
+ - dashboard_id
+ - table: content_views
+ keys:
+ - dashboard_id
+ - table: dashboard_elements
+ keys:
+ - dashboard_id
+ - table: dashboard_filters
+ keys:
+ - dashboard_id
+ - table: dashboard_layouts
+ keys:
+ - dashboard_id
+ - table: dashboards
+ keys:
+ - id
+ - table: folders
+ keys:
+ - dashboards.id
+ - table: scheduled_plans
+ keys:
+ - dashboard_id
+ dashboard_elements_dashboard_element_id:
+ - table: dashboard_elements
+ keys:
+ - id
+ - table: dashboard_layouts
+ keys:
+ - dashboard_layout_components.dashboard_element_id
+ dashboard_filters_dashboard_filter_id:
+ - table: dashboard_filters
+ keys:
+ - id
+ dashboard_layouts_dashboard_layout_id:
+ - table: dashboard_layouts
+ keys:
+ - id
+ - dashboard_layout_components.dashboard_layout_id
+ folders_folder.id:
+ - table: content_favorites
+ keys:
+ - dashboard.folder.id
+ - dashboard.folder.parent_id
+ - table: dashboard_elements
+ keys:
+ - look.folder.id
+ - look.folder.parent_id
+ - look.folder_id
+ - table: dashboards
+ keys:
+ - folder.id
+ - folder.parent_id
+ - table: folders
+ keys:
+ - id
+ - dashboards.folder.id
+ - dashboards.folder.parent_id
+ - looks.folder.id
+ - looks.folder.parent_id
+ - parent_id
+ - table: lookml_dashboards
+ keys:
+ - folder.id
+ - folder.parent_id
+ - table: looks
+ keys:
+ - folder.id
+ - folder_id
+ - folder.parent_id
+ - table: users
+ keys:
+ - home_folder_id
+ - personal_folder_id
+ groups_group_id:
+ - table: content_metadata_access
+ keys:
+ - group_id
+ - table: content_views
+ keys:
+ - group_id
+ - table: groups
+ keys:
+ - id
+ - table: groups_in_group
+ keys:
+ - id
+ - parent_group_id
+ - table: user_attribute_group_values
+ keys:
+ - group_id
+ - table: users
+ keys:
+ - group_ids
+ integration_hubs_integration_hub_id:
+ - table: integration_hubs
+ keys:
+ - id
+ - table: integrations
+ keys:
+ - integration_hub_id
+ integrations_integration_id:
+ - table: integrations
+ keys:
+ - id
+ looks_look_id:
+ - table: content_favorites
+ keys:
+ - look_id
+ - look.id
+ - table: content_metadata
+ keys:
+ - look_id
+ - table: content_views
+ keys:
+ - look_id
+ - table: dashboard_elements
+ keys:
+ - look.id
+ - look_id
+ - table: folders
+ keys:
+ - looks.id
+ - table: looks
+ keys:
+ - id
+ - table: scheduled_plans
+ keys:
+ - look_id
+ versions_full_version:
+ - table: users
+ keys:
+ - looker_versions
+ - table: versions
+ keys:
+ - looker_release_version
+ - current_version.full_version
+ - supported_versions.full_version
+ lookml_dashboards_lookml_dashboard_id:
+ - table: lookml_dashboards
+ keys:
+ - id
+ - table: scheduled_plans
+ keys:
+ - lookml_dashboard_id
+ merge_queries_merge_query_id:
+ - table: merge_queries
+ keys:
+ - id
+ model_sets_model_set.id:
+ - table: model_sets
+ keys:
+ - id
+ - table: roles
+ keys:
+ - model_set.id
+ - model_set_id
+ models_model.id:
+ - table: content_favorites
+ keys:
+ - dashboard.model.id
+ - table: dashboard_elements
+ keys:
+ - look.model.id
+ - table: dashboards
+ keys:
+ - model.id
+ - table: folders
+ keys:
+ - dashboards.model.id
+ - looks.model.id
+ - table: lookml_dashboards
+ keys:
+ - model.id
+ - table: looks
+ keys:
+ - model.id
+ - table: roles
+ keys:
+ - model_set.models
+ permission_sets_permission_set_id:
+ - table: permission_sets
+ keys:
+ - id
+ - table: roles
+ keys:
+ - permission_set_id
+ - id
+ permissions_permissions:
+ - table: permission_sets
+ keys:
+ - permissions
+ project_files_:
+ - table: project_files
+ keys:
+ - id
+ projects_project_id:
+ - table: git_branches
+ keys:
+ - project_id
+ - table: project_files
+ keys:
+ - project_id
+ - table: projects
+ keys:
+ - id
+ - table: workspaces
+ keys:
+ - projects.id
+ queries_query.id:
+ - table: dashboard_elements
+ keys:
+ - look.query.id
+ - look.query_id
+ - query.id
+ - query_id
+ - result_maker.query.id
+ - result_maker.query_id
+ - table: folders
+ keys:
+ - looks.query_id
+ - table: looks
+ keys:
+ - query_id
+ - table: scheduled_plans
+ keys:
+ - query_id
+ - table: queries
+ keys:
+ - id
+ role_groups_role_group_id:
+ - table: role_groups
+ keys:
+ - id
+ roles_role_id:
+ - table: role_groups
+ keys:
+ - role_id
+ - table: roles
+ keys:
+ - id
+ - table: users
+ keys:
+ - role_ids
+ scheduled_plans_scheduled_plan_id:
+ - table: scheduled_plans
+ keys:
+ - id
+ - scheduled_plan_destination.scheduled_plan_id
+ spaces_space.id:
+ - table: content_favorites
+ keys:
+ - dashboard.space.id
+ - dashboard.space.parent_id
+ - table: content_metadata
+ keys:
+ - space_id
+ - table: dashboard_elements
+ keys:
+ - look.space.id
+ - look.space.parent_id
+ - table: dashboards
+ keys:
+ - space.id
+ - space.parent_id
+ - table: folders
+ keys:
+ - dashboards.space.id
+ - dashboards.space.parent_id
+ - looks.space.id
+ - looks.space.parent_id
+ - looks.space_id
+ - table: lookml_dashboards
+ keys:
+ - space.id
+ - space.parent_id
+ - table: looks
+ keys:
+ - space.id
+ - space.parent_id
+ - space_id
+ - table: users
+ keys:
+ - home_space_id
+ - personal_space_id
+ themes_theme_id:
+ - table: themes
+ keys:
+ - id
+ user_attribute_group_values_:
+ - table: user_attribute_group_values
+ keys:
+ - id
+ user_attributes_user_attribute_id:
+ - table: user_attributes
+ keys:
+ - id
+ - table: user_attribute_group_values
+ keys:
+ - user_attribute_id
+ user_sessions_sessions.id:
+ - table: user_sessions
+ keys:
+ - id
+ - table: users
+ keys:
+ - sessions.id
+ users_creator_id:
+ - table: connections
+ keys:
+ - user_id
+ - table: content_favorites
+ keys:
+ - dashboard.folder.creator_id
+ - dashboard.space.creator_id
+ - user_id
+ - table: content_views
+ keys:
+ - user_id
+ - table: dashboard_elements
+ keys:
+ - look.deleter_id
+ - look.folder.creator_id
+ - look.last_updater_id
+ - look.space.creator_id
+ - look.user.id
+ - look.user_id
+ - table: dashboards
+ keys:
+ - space.creator_id
+ - user_id
+ - table: folders
+ keys:
+ - creator_id
+ - dashboards.user_id
+ - dashboards.folder.creator_id
+ - dashboards.space.creator_id
+ - dashboards.user_id
+ - looks.deleter_id
+ - looks.last_updater_id
+ - looks.user.id
+ - table: lookml_dashboards
+ keys:
+ - folder.creator_id
+ - space.creator_id
+ - user_id
+ - table: looks
+ keys:
+ - deleter_id
+ - folder.creator_id
+ - user.id
+ - user_id
+ - table: scheduled_plans
+ keys:
+ - user.id
+ - user_id
+ - table: user_login_lockouts
+ keys:
+ - user_id
+ - table: users
+ keys:
+ - id
+tables:
+- table-name: color_collections
+ join:
+ - table-name: themes
+ keys:
+ - key: id
+ foreign-key: settings.color_collection_id
+- table-name: themes
+ join:
+ - table-name: color_collections
+ keys:
+ - key: settings.color_collection_id
+ foreign-key: id
+- table-name: content_favorites
+ join:
+ - table-name: dashboard_elements
+ keys:
+ - key: id
+ foreign-key: look.content_favorite_id
+ - key: dashboard.content_favorite_id
+ foreign-key: look.content_favorite_id
+ - key: content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: dashboard.content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: dashboard.folder.content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: dashboard.space.content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: look.content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: look.folder.content_metadata_id
+ - key: dashboard.content_metadata_id
+ foreign-key: look.folder.content_metadata_id
+ - key: dashboard.folder.content_metadata_id
+ foreign-key: look.folder.content_metadata_id
+ - key: dashboard.space.content_metadata_id
+ foreign-key: look.folder.content_metadata_id
+ - key: look.content_metadata_id
+ foreign-key: look.folder.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: look.space.content_metadata_id
+ - key: dashboard.content_metadata_id
+ foreign-key: look.space.content_metadata_id
+ - key: dashboard.folder.content_metadata_id
+ foreign-key: look.space.content_metadata_id
+ - key: dashboard.space.content_metadata_id
+ foreign-key: look.space.content_metadata_id
+ - key: look.content_metadata_id
+ foreign-key: look.space.content_metadata_id
+ - key: dashboard.id
+ foreign-key: dashboard_id
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - key: dashboard.folder.id
+ foreign-key: look.folder.id
+ - key: dashboard.folder.parent_id
+ foreign-key: look.folder.id
+ - key: dashboard.folder.id
+ foreign-key: look.folder.parent_id
+ - key: dashboard.folder.parent_id
+ foreign-key: look.folder.parent_id
+ - key: dashboard.folder.id
+ foreign-key: look.folder_id
+ - key: dashboard.folder.parent_id
+ foreign-key: look.folder_id
+ - key: look_id
+ foreign-key: look.id
+ - key: look.id
+ foreign-key: look.id
+ - key: look_id
+ foreign-key: look_id
+ - key: look.id
+ foreign-key: look_id
+ - key: dashboard.model.id
+ foreign-key: look.model.id
+ - key: dashboard.space.id
+ foreign-key: look.space.id
+ - key: dashboard.space.parent_id
+ foreign-key: look.space.id
+ - key: dashboard.space.id
+ foreign-key: look.space.parent_id
+ - key: dashboard.space.parent_id
+ foreign-key: look.space.parent_id
+ - key: dashboard.folder.creator_id
+ foreign-key: look.deleter_id
+ - key: dashboard.space.creator_id
+ foreign-key: look.deleter_id
+ - key: user_id
+ foreign-key: look.deleter_id
+ - key: dashboard.folder.creator_id
+ foreign-key: look.folder.creator_id
+ - key: dashboard.space.creator_id
+ foreign-key: look.folder.creator_id
+ - key: user_id
+ foreign-key: look.folder.creator_id
+ - key: dashboard.folder.creator_id
+ foreign-key: look.last_updater_id
+ - key: dashboard.space.creator_id
+ foreign-key: look.last_updater_id
+ - key: user_id
+ foreign-key: look.last_updater_id
+ - key: dashboard.folder.creator_id
+ foreign-key: look.space.creator_id
+ - key: dashboard.space.creator_id
+ foreign-key: look.space.creator_id
+ - key: user_id
+ foreign-key: look.space.creator_id
+ - key: dashboard.folder.creator_id
+ foreign-key: look.user.id
+ - key: dashboard.space.creator_id
+ foreign-key: look.user.id
+ - key: user_id
+ foreign-key: look.user.id
+ - key: dashboard.folder.creator_id
+ foreign-key: look.user_id
+ - key: dashboard.space.creator_id
+ foreign-key: look.user_id
+ - key: user_id
+ foreign-key: look.user_id
+ - table-name: dashboards
+ keys:
+ - key: id
+ foreign-key: content_favorite_id
+ - key: dashboard.content_favorite_id
+ foreign-key: content_favorite_id
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - key: dashboard.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: dashboard.folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: dashboard.space.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: look.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: dashboard.content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: dashboard.folder.content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: dashboard.space.content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: look.content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: dashboard.content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: dashboard.folder.content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: dashboard.space.content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: look.content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: dashboard.id
+ foreign-key: id
+ - key: dashboard_id
+ foreign-key: id
+ - key: dashboard.folder.id
+ foreign-key: folder.id
+ - key: dashboard.folder.parent_id
+ foreign-key: folder.id
+ - key: dashboard.folder.id
+ foreign-key: folder.parent_id
+ - key: dashboard.folder.parent_id
+ foreign-key: folder.parent_id
+ - key: dashboard.model.id
+ foreign-key: model.id
+ - key: dashboard.space.id
+ foreign-key: space.id
+ - key: dashboard.space.parent_id
+ foreign-key: space.id
+ - key: dashboard.space.id
+ foreign-key: space.parent_id
+ - key: dashboard.space.parent_id
+ foreign-key: space.parent_id
+ - key: dashboard.folder.creator_id
+ foreign-key: space.creator_id
+ - key: dashboard.space.creator_id
+ foreign-key: space.creator_id
+ - key: user_id
+ foreign-key: space.creator_id
+ - key: dashboard.folder.creator_id
+ foreign-key: user_id
+ - key: dashboard.space.creator_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: folders
+ keys:
+ - key: id
+ foreign-key: dashboards.content_favorite_id
+ - key: dashboard.content_favorite_id
+ foreign-key: dashboards.content_favorite_id
+ - key: id
+ foreign-key: looks.content_favorite_id
+ - key: dashboard.content_favorite_id
+ foreign-key: looks.content_favorite_id
+ - key: content_metadata_id
+ foreign-key: dashboards.folder.content_metadata_id
+ - key: dashboard.content_metadata_id
+ foreign-key: dashboards.folder.content_metadata_id
+ - key: dashboard.folder.content_metadata_id
+ foreign-key: dashboards.folder.content_metadata_id
+ - key: dashboard.space.content_metadata_id
+ foreign-key: dashboards.folder.content_metadata_id
+ - key: look.content_metadata_id
+ foreign-key: dashboards.folder.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: dashboards.space.content_metadata_id
+ - key: dashboard.content_metadata_id
+ foreign-key: dashboards.space.content_metadata_id
+ - key: dashboard.folder.content_metadata_id
+ foreign-key: dashboards.space.content_metadata_id
+ - key: dashboard.space.content_metadata_id
+ foreign-key: dashboards.space.content_metadata_id
+ - key: look.content_metadata_id
+ foreign-key: dashboards.space.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: looks.content_metadata_id
+ - key: dashboard.content_metadata_id
+ foreign-key: looks.content_metadata_id
+ - key: dashboard.folder.content_metadata_id
+ foreign-key: looks.content_metadata_id
+ - key: dashboard.space.content_metadata_id
+ foreign-key: looks.content_metadata_id
+ - key: look.content_metadata_id
+ foreign-key: looks.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: looks.folder.content_metadata_id
+ - key: dashboard.content_metadata_id
+ foreign-key: looks.folder.content_metadata_id
+ - key: dashboard.folder.content_metadata_id
+ foreign-key: looks.folder.content_metadata_id
+ - key: dashboard.space.content_metadata_id
+ foreign-key: looks.folder.content_metadata_id
+ - key: look.content_metadata_id
+ foreign-key: looks.folder.content_metadata_id
+ - key: dashboard.id
+ foreign-key: dashboards.id
+ - key: dashboard_id
+ foreign-key: dashboards.id
+ - key: dashboard.folder.id
+ foreign-key: id
+ - key: dashboard.folder.parent_id
+ foreign-key: id
+ - key: dashboard.folder.id
+ foreign-key: dashboards.folder.id
+ - key: dashboard.folder.parent_id
+ foreign-key: dashboards.folder.id
+ - key: dashboard.folder.id
+ foreign-key: dashboards.folder.parent_id
+ - key: dashboard.folder.parent_id
+ foreign-key: dashboards.folder.parent_id
+ - key: dashboard.folder.id
+ foreign-key: looks.folder.id
+ - key: dashboard.folder.parent_id
+ foreign-key: looks.folder.id
+ - key: dashboard.folder.id
+ foreign-key: looks.folder.parent_id
+ - key: dashboard.folder.parent_id
+ foreign-key: looks.folder.parent_id
+ - key: dashboard.folder.id
+ foreign-key: parent_id
+ - key: dashboard.folder.parent_id
+ foreign-key: parent_id
+ - key: look_id
+ foreign-key: looks.id
+ - key: look.id
+ foreign-key: looks.id
+ - key: dashboard.model.id
+ foreign-key: dashboards.model.id
+ - key: dashboard.model.id
+ foreign-key: looks.model.id
+ - key: dashboard.space.id
+ foreign-key: dashboards.space.id
+ - key: dashboard.space.parent_id
+ foreign-key: dashboards.space.id
+ - key: dashboard.space.id
+ foreign-key: dashboards.space.parent_id
+ - key: dashboard.space.parent_id
+ foreign-key: dashboards.space.parent_id
+ - key: dashboard.space.id
+ foreign-key: looks.space.id
+ - key: dashboard.space.parent_id
+ foreign-key: looks.space.id
+ - key: dashboard.space.id
+ foreign-key: looks.space.parent_id
+ - key: dashboard.space.parent_id
+ foreign-key: looks.space.parent_id
+ - key: dashboard.space.id
+ foreign-key: looks.space_id
+ - key: dashboard.space.parent_id
+ foreign-key: looks.space_id
+ - key: dashboard.folder.creator_id
+ foreign-key: creator_id
+ - key: dashboard.space.creator_id
+ foreign-key: creator_id
+ - key: user_id
+ foreign-key: creator_id
+ - key: dashboard.folder.creator_id
+ foreign-key: dashboards.user_id
+ - key: dashboard.space.creator_id
+ foreign-key: dashboards.user_id
+ - key: user_id
+ foreign-key: dashboards.user_id
+ - key: dashboard.folder.creator_id
+ foreign-key: dashboards.folder.creator_id
+ - key: dashboard.space.creator_id
+ foreign-key: dashboards.folder.creator_id
+ - key: user_id
+ foreign-key: dashboards.folder.creator_id
+ - key: dashboard.folder.creator_id
+ foreign-key: dashboards.space.creator_id
+ - key: dashboard.space.creator_id
+ foreign-key: dashboards.space.creator_id
+ - key: user_id
+ foreign-key: dashboards.space.creator_id
+ - key: dashboard.folder.creator_id
+ foreign-key: looks.deleter_id
+ - key: dashboard.space.creator_id
+ foreign-key: looks.deleter_id
+ - key: user_id
+ foreign-key: looks.deleter_id
+ - key: dashboard.folder.creator_id
+ foreign-key: looks.last_updater_id
+ - key: dashboard.space.creator_id
+ foreign-key: looks.last_updater_id
+ - key: user_id
+ foreign-key: looks.last_updater_id
+ - key: dashboard.folder.creator_id
+ foreign-key: looks.user.id
+ - key: dashboard.space.creator_id
+ foreign-key: looks.user.id
+ - key: user_id
+ foreign-key: looks.user.id
+ - table-name: lookml_dashboards
+ keys:
+ - key: id
+ foreign-key: content_favorite_id
+ - key: dashboard.content_favorite_id
+ foreign-key: content_favorite_id
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - key: dashboard.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: dashboard.folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: dashboard.space.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: look.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: dashboard.content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: dashboard.folder.content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: dashboard.space.content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: look.content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: dashboard.content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: dashboard.folder.content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: dashboard.space.content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: look.content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: dashboard.folder.id
+ foreign-key: folder.id
+ - key: dashboard.folder.parent_id
+ foreign-key: folder.id
+ - key: dashboard.folder.id
+ foreign-key: folder.parent_id
+ - key: dashboard.folder.parent_id
+ foreign-key: folder.parent_id
+ - key: dashboard.model.id
+ foreign-key: model.id
+ - key: dashboard.space.id
+ foreign-key: space.id
+ - key: dashboard.space.parent_id
+ foreign-key: space.id
+ - key: dashboard.space.id
+ foreign-key: space.parent_id
+ - key: dashboard.space.parent_id
+ foreign-key: space.parent_id
+ - key: dashboard.folder.creator_id
+ foreign-key: folder.creator_id
+ - key: dashboard.space.creator_id
+ foreign-key: folder.creator_id
+ - key: user_id
+ foreign-key: folder.creator_id
+ - key: dashboard.folder.creator_id
+ foreign-key: space.creator_id
+ - key: dashboard.space.creator_id
+ foreign-key: space.creator_id
+ - key: user_id
+ foreign-key: space.creator_id
+ - key: dashboard.folder.creator_id
+ foreign-key: user_id
+ - key: dashboard.space.creator_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: looks
+ keys:
+ - key: id
+ foreign-key: content_favorite_id
+ - key: dashboard.content_favorite_id
+ foreign-key: content_favorite_id
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - key: dashboard.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: dashboard.folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: dashboard.space.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: look.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: dashboard.folder.id
+ foreign-key: folder.id
+ - key: dashboard.folder.parent_id
+ foreign-key: folder.id
+ - key: dashboard.folder.id
+ foreign-key: folder_id
+ - key: dashboard.folder.parent_id
+ foreign-key: folder_id
+ - key: dashboard.folder.id
+ foreign-key: folder.parent_id
+ - key: dashboard.folder.parent_id
+ foreign-key: folder.parent_id
+ - key: look_id
+ foreign-key: id
+ - key: look.id
+ foreign-key: id
+ - key: dashboard.model.id
+ foreign-key: model.id
+ - key: dashboard.space.id
+ foreign-key: space.id
+ - key: dashboard.space.parent_id
+ foreign-key: space.id
+ - key: dashboard.space.id
+ foreign-key: space.parent_id
+ - key: dashboard.space.parent_id
+ foreign-key: space.parent_id
+ - key: dashboard.space.id
+ foreign-key: space_id
+ - key: dashboard.space.parent_id
+ foreign-key: space_id
+ - key: dashboard.folder.creator_id
+ foreign-key: deleter_id
+ - key: dashboard.space.creator_id
+ foreign-key: deleter_id
+ - key: user_id
+ foreign-key: deleter_id
+ - key: dashboard.folder.creator_id
+ foreign-key: folder.creator_id
+ - key: dashboard.space.creator_id
+ foreign-key: folder.creator_id
+ - key: user_id
+ foreign-key: folder.creator_id
+ - key: dashboard.folder.creator_id
+ foreign-key: user.id
+ - key: dashboard.space.creator_id
+ foreign-key: user.id
+ - key: user_id
+ foreign-key: user.id
+ - key: dashboard.folder.creator_id
+ foreign-key: user_id
+ - key: dashboard.space.creator_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: content_metadata
+ keys:
+ - key: content_metadata_id
+ foreign-key: id
+ - key: dashboard.content_metadata_id
+ foreign-key: id
+ - key: dashboard.folder.content_metadata_id
+ foreign-key: id
+ - key: dashboard.space.content_metadata_id
+ foreign-key: id
+ - key: look.content_metadata_id
+ foreign-key: id
+ - key: content_metadata_id
+ foreign-key: parent_id
+ - key: dashboard.content_metadata_id
+ foreign-key: parent_id
+ - key: dashboard.folder.content_metadata_id
+ foreign-key: parent_id
+ - key: dashboard.space.content_metadata_id
+ foreign-key: parent_id
+ - key: look.content_metadata_id
+ foreign-key: parent_id
+ - key: dashboard.id
+ foreign-key: dashboard_id
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - key: look_id
+ foreign-key: look_id
+ - key: look.id
+ foreign-key: look_id
+ - key: dashboard.space.id
+ foreign-key: space_id
+ - key: dashboard.space.parent_id
+ foreign-key: space_id
+ - table-name: content_metadata_access
+ keys:
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - key: dashboard.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: dashboard.folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: dashboard.space.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: look.content_metadata_id
+ foreign-key: content_metadata_id
+ - table-name: content_views
+ keys:
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - key: dashboard.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: dashboard.folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: dashboard.space.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: look.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: dashboard.id
+ foreign-key: dashboard_id
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - key: look_id
+ foreign-key: look_id
+ - key: look.id
+ foreign-key: look_id
+ - key: dashboard.folder.creator_id
+ foreign-key: user_id
+ - key: dashboard.space.creator_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: dashboard_filters
+ keys:
+ - key: dashboard.id
+ foreign-key: dashboard_id
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - table-name: dashboard_layouts
+ keys:
+ - key: dashboard.id
+ foreign-key: dashboard_id
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - table-name: scheduled_plans
+ keys:
+ - key: dashboard.id
+ foreign-key: dashboard_id
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - key: look_id
+ foreign-key: look_id
+ - key: look.id
+ foreign-key: look_id
+ - key: dashboard.folder.creator_id
+ foreign-key: user.id
+ - key: dashboard.space.creator_id
+ foreign-key: user.id
+ - key: user_id
+ foreign-key: user.id
+ - key: dashboard.folder.creator_id
+ foreign-key: user_id
+ - key: dashboard.space.creator_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: users
+ keys:
+ - key: dashboard.folder.id
+ foreign-key: home_folder_id
+ - key: dashboard.folder.parent_id
+ foreign-key: home_folder_id
+ - key: dashboard.folder.id
+ foreign-key: personal_folder_id
+ - key: dashboard.folder.parent_id
+ foreign-key: personal_folder_id
+ - key: dashboard.space.id
+ foreign-key: home_space_id
+ - key: dashboard.space.parent_id
+ foreign-key: home_space_id
+ - key: dashboard.space.id
+ foreign-key: personal_space_id
+ - key: dashboard.space.parent_id
+ foreign-key: personal_space_id
+ - key: dashboard.folder.creator_id
+ foreign-key: id
+ - key: dashboard.space.creator_id
+ foreign-key: id
+ - key: user_id
+ foreign-key: id
+ - table-name: roles
+ keys:
+ - key: dashboard.model.id
+ foreign-key: model_set.models
+ - table-name: connections
+ keys:
+ - key: dashboard.folder.creator_id
+ foreign-key: user_id
+ - key: dashboard.space.creator_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: user_login_lockouts
+ keys:
+ - key: dashboard.folder.creator_id
+ foreign-key: user_id
+ - key: dashboard.space.creator_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+- table-name: dashboard_elements
+ join:
+ - table-name: content_favorites
+ keys:
+ - key: look.content_favorite_id
+ foreign-key: id
+ - key: look.content_favorite_id
+ foreign-key: dashboard.content_favorite_id
+ - key: look.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: look.folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: look.space.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: look.content_metadata_id
+ foreign-key: dashboard.content_metadata_id
+ - key: look.folder.content_metadata_id
+ foreign-key: dashboard.content_metadata_id
+ - key: look.space.content_metadata_id
+ foreign-key: dashboard.content_metadata_id
+ - key: look.content_metadata_id
+ foreign-key: dashboard.folder.content_metadata_id
+ - key: look.folder.content_metadata_id
+ foreign-key: dashboard.folder.content_metadata_id
+ - key: look.space.content_metadata_id
+ foreign-key: dashboard.folder.content_metadata_id
+ - key: look.content_metadata_id
+ foreign-key: dashboard.space.content_metadata_id
+ - key: look.folder.content_metadata_id
+ foreign-key: dashboard.space.content_metadata_id
+ - key: look.space.content_metadata_id
+ foreign-key: dashboard.space.content_metadata_id
+ - key: look.content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: look.folder.content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: look.space.content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: dashboard_id
+ foreign-key: dashboard.id
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - key: look.folder.id
+ foreign-key: dashboard.folder.id
+ - key: look.folder.parent_id
+ foreign-key: dashboard.folder.id
+ - key: look.folder_id
+ foreign-key: dashboard.folder.id
+ - key: look.folder.id
+ foreign-key: dashboard.folder.parent_id
+ - key: look.folder.parent_id
+ foreign-key: dashboard.folder.parent_id
+ - key: look.folder_id
+ foreign-key: dashboard.folder.parent_id
+ - key: look.id
+ foreign-key: look_id
+ - key: look_id
+ foreign-key: look_id
+ - key: look.id
+ foreign-key: look.id
+ - key: look_id
+ foreign-key: look.id
+ - key: look.model.id
+ foreign-key: dashboard.model.id
+ - key: look.space.id
+ foreign-key: dashboard.space.id
+ - key: look.space.parent_id
+ foreign-key: dashboard.space.id
+ - key: look.space.id
+ foreign-key: dashboard.space.parent_id
+ - key: look.space.parent_id
+ foreign-key: dashboard.space.parent_id
+ - key: look.deleter_id
+ foreign-key: dashboard.folder.creator_id
+ - key: look.folder.creator_id
+ foreign-key: dashboard.folder.creator_id
+ - key: look.last_updater_id
+ foreign-key: dashboard.folder.creator_id
+ - key: look.space.creator_id
+ foreign-key: dashboard.folder.creator_id
+ - key: look.user.id
+ foreign-key: dashboard.folder.creator_id
+ - key: look.user_id
+ foreign-key: dashboard.folder.creator_id
+ - key: look.deleter_id
+ foreign-key: dashboard.space.creator_id
+ - key: look.folder.creator_id
+ foreign-key: dashboard.space.creator_id
+ - key: look.last_updater_id
+ foreign-key: dashboard.space.creator_id
+ - key: look.space.creator_id
+ foreign-key: dashboard.space.creator_id
+ - key: look.user.id
+ foreign-key: dashboard.space.creator_id
+ - key: look.user_id
+ foreign-key: dashboard.space.creator_id
+ - key: look.deleter_id
+ foreign-key: user_id
+ - key: look.folder.creator_id
+ foreign-key: user_id
+ - key: look.last_updater_id
+ foreign-key: user_id
+ - key: look.space.creator_id
+ foreign-key: user_id
+ - key: look.user.id
+ foreign-key: user_id
+ - key: look.user_id
+ foreign-key: user_id
+ - table-name: dashboards
+ keys:
+ - key: look.content_favorite_id
+ foreign-key: content_favorite_id
+ - key: look.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: look.folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: look.space.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: look.content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: look.folder.content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: look.space.content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: look.content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: look.folder.content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: look.space.content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: dashboard_id
+ foreign-key: id
+ - key: look.folder.id
+ foreign-key: folder.id
+ - key: look.folder.parent_id
+ foreign-key: folder.id
+ - key: look.folder_id
+ foreign-key: folder.id
+ - key: look.folder.id
+ foreign-key: folder.parent_id
+ - key: look.folder.parent_id
+ foreign-key: folder.parent_id
+ - key: look.folder_id
+ foreign-key: folder.parent_id
+ - key: look.model.id
+ foreign-key: model.id
+ - key: look.space.id
+ foreign-key: space.id
+ - key: look.space.parent_id
+ foreign-key: space.id
+ - key: look.space.id
+ foreign-key: space.parent_id
+ - key: look.space.parent_id
+ foreign-key: space.parent_id
+ - key: look.deleter_id
+ foreign-key: space.creator_id
+ - key: look.folder.creator_id
+ foreign-key: space.creator_id
+ - key: look.last_updater_id
+ foreign-key: space.creator_id
+ - key: look.space.creator_id
+ foreign-key: space.creator_id
+ - key: look.user.id
+ foreign-key: space.creator_id
+ - key: look.user_id
+ foreign-key: space.creator_id
+ - key: look.deleter_id
+ foreign-key: user_id
+ - key: look.folder.creator_id
+ foreign-key: user_id
+ - key: look.last_updater_id
+ foreign-key: user_id
+ - key: look.space.creator_id
+ foreign-key: user_id
+ - key: look.user.id
+ foreign-key: user_id
+ - key: look.user_id
+ foreign-key: user_id
+ - table-name: folders
+ keys:
+ - key: look.content_favorite_id
+ foreign-key: dashboards.content_favorite_id
+ - key: look.content_favorite_id
+ foreign-key: looks.content_favorite_id
+ - key: look.content_metadata_id
+ foreign-key: dashboards.folder.content_metadata_id
+ - key: look.folder.content_metadata_id
+ foreign-key: dashboards.folder.content_metadata_id
+ - key: look.space.content_metadata_id
+ foreign-key: dashboards.folder.content_metadata_id
+ - key: look.content_metadata_id
+ foreign-key: dashboards.space.content_metadata_id
+ - key: look.folder.content_metadata_id
+ foreign-key: dashboards.space.content_metadata_id
+ - key: look.space.content_metadata_id
+ foreign-key: dashboards.space.content_metadata_id
+ - key: look.content_metadata_id
+ foreign-key: looks.content_metadata_id
+ - key: look.folder.content_metadata_id
+ foreign-key: looks.content_metadata_id
+ - key: look.space.content_metadata_id
+ foreign-key: looks.content_metadata_id
+ - key: look.content_metadata_id
+ foreign-key: looks.folder.content_metadata_id
+ - key: look.folder.content_metadata_id
+ foreign-key: looks.folder.content_metadata_id
+ - key: look.space.content_metadata_id
+ foreign-key: looks.folder.content_metadata_id
+ - key: dashboard_id
+ foreign-key: dashboards.id
+ - key: look.folder.id
+ foreign-key: id
+ - key: look.folder.parent_id
+ foreign-key: id
+ - key: look.folder_id
+ foreign-key: id
+ - key: look.folder.id
+ foreign-key: dashboards.folder.id
+ - key: look.folder.parent_id
+ foreign-key: dashboards.folder.id
+ - key: look.folder_id
+ foreign-key: dashboards.folder.id
+ - key: look.folder.id
+ foreign-key: dashboards.folder.parent_id
+ - key: look.folder.parent_id
+ foreign-key: dashboards.folder.parent_id
+ - key: look.folder_id
+ foreign-key: dashboards.folder.parent_id
+ - key: look.folder.id
+ foreign-key: looks.folder.id
+ - key: look.folder.parent_id
+ foreign-key: looks.folder.id
+ - key: look.folder_id
+ foreign-key: looks.folder.id
+ - key: look.folder.id
+ foreign-key: looks.folder.parent_id
+ - key: look.folder.parent_id
+ foreign-key: looks.folder.parent_id
+ - key: look.folder_id
+ foreign-key: looks.folder.parent_id
+ - key: look.folder.id
+ foreign-key: parent_id
+ - key: look.folder.parent_id
+ foreign-key: parent_id
+ - key: look.folder_id
+ foreign-key: parent_id
+ - key: look.id
+ foreign-key: looks.id
+ - key: look_id
+ foreign-key: looks.id
+ - key: look.model.id
+ foreign-key: dashboards.model.id
+ - key: look.model.id
+ foreign-key: looks.model.id
+ - key: look.query.id
+ foreign-key: looks.query_id
+ - key: look.query_id
+ foreign-key: looks.query_id
+ - key: query.id
+ foreign-key: looks.query_id
+ - key: query_id
+ foreign-key: looks.query_id
+ - key: result_maker.query.id
+ foreign-key: looks.query_id
+ - key: result_maker.query_id
+ foreign-key: looks.query_id
+ - key: look.space.id
+ foreign-key: dashboards.space.id
+ - key: look.space.parent_id
+ foreign-key: dashboards.space.id
+ - key: look.space.id
+ foreign-key: dashboards.space.parent_id
+ - key: look.space.parent_id
+ foreign-key: dashboards.space.parent_id
+ - key: look.space.id
+ foreign-key: looks.space.id
+ - key: look.space.parent_id
+ foreign-key: looks.space.id
+ - key: look.space.id
+ foreign-key: looks.space.parent_id
+ - key: look.space.parent_id
+ foreign-key: looks.space.parent_id
+ - key: look.space.id
+ foreign-key: looks.space_id
+ - key: look.space.parent_id
+ foreign-key: looks.space_id
+ - key: look.deleter_id
+ foreign-key: creator_id
+ - key: look.folder.creator_id
+ foreign-key: creator_id
+ - key: look.last_updater_id
+ foreign-key: creator_id
+ - key: look.space.creator_id
+ foreign-key: creator_id
+ - key: look.user.id
+ foreign-key: creator_id
+ - key: look.user_id
+ foreign-key: creator_id
+ - key: look.deleter_id
+ foreign-key: dashboards.user_id
+ - key: look.folder.creator_id
+ foreign-key: dashboards.user_id
+ - key: look.last_updater_id
+ foreign-key: dashboards.user_id
+ - key: look.space.creator_id
+ foreign-key: dashboards.user_id
+ - key: look.user.id
+ foreign-key: dashboards.user_id
+ - key: look.user_id
+ foreign-key: dashboards.user_id
+ - key: look.deleter_id
+ foreign-key: dashboards.folder.creator_id
+ - key: look.folder.creator_id
+ foreign-key: dashboards.folder.creator_id
+ - key: look.last_updater_id
+ foreign-key: dashboards.folder.creator_id
+ - key: look.space.creator_id
+ foreign-key: dashboards.folder.creator_id
+ - key: look.user.id
+ foreign-key: dashboards.folder.creator_id
+ - key: look.user_id
+ foreign-key: dashboards.folder.creator_id
+ - key: look.deleter_id
+ foreign-key: dashboards.space.creator_id
+ - key: look.folder.creator_id
+ foreign-key: dashboards.space.creator_id
+ - key: look.last_updater_id
+ foreign-key: dashboards.space.creator_id
+ - key: look.space.creator_id
+ foreign-key: dashboards.space.creator_id
+ - key: look.user.id
+ foreign-key: dashboards.space.creator_id
+ - key: look.user_id
+ foreign-key: dashboards.space.creator_id
+ - key: look.deleter_id
+ foreign-key: looks.deleter_id
+ - key: look.folder.creator_id
+ foreign-key: looks.deleter_id
+ - key: look.last_updater_id
+ foreign-key: looks.deleter_id
+ - key: look.space.creator_id
+ foreign-key: looks.deleter_id
+ - key: look.user.id
+ foreign-key: looks.deleter_id
+ - key: look.user_id
+ foreign-key: looks.deleter_id
+ - key: look.deleter_id
+ foreign-key: looks.last_updater_id
+ - key: look.folder.creator_id
+ foreign-key: looks.last_updater_id
+ - key: look.last_updater_id
+ foreign-key: looks.last_updater_id
+ - key: look.space.creator_id
+ foreign-key: looks.last_updater_id
+ - key: look.user.id
+ foreign-key: looks.last_updater_id
+ - key: look.user_id
+ foreign-key: looks.last_updater_id
+ - key: look.deleter_id
+ foreign-key: looks.user.id
+ - key: look.folder.creator_id
+ foreign-key: looks.user.id
+ - key: look.last_updater_id
+ foreign-key: looks.user.id
+ - key: look.space.creator_id
+ foreign-key: looks.user.id
+ - key: look.user.id
+ foreign-key: looks.user.id
+ - key: look.user_id
+ foreign-key: looks.user.id
+ - table-name: lookml_dashboards
+ keys:
+ - key: look.content_favorite_id
+ foreign-key: content_favorite_id
+ - key: look.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: look.folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: look.space.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: look.content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: look.folder.content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: look.space.content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: look.content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: look.folder.content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: look.space.content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: look.folder.id
+ foreign-key: folder.id
+ - key: look.folder.parent_id
+ foreign-key: folder.id
+ - key: look.folder_id
+ foreign-key: folder.id
+ - key: look.folder.id
+ foreign-key: folder.parent_id
+ - key: look.folder.parent_id
+ foreign-key: folder.parent_id
+ - key: look.folder_id
+ foreign-key: folder.parent_id
+ - key: look.model.id
+ foreign-key: model.id
+ - key: look.space.id
+ foreign-key: space.id
+ - key: look.space.parent_id
+ foreign-key: space.id
+ - key: look.space.id
+ foreign-key: space.parent_id
+ - key: look.space.parent_id
+ foreign-key: space.parent_id
+ - key: look.deleter_id
+ foreign-key: folder.creator_id
+ - key: look.folder.creator_id
+ foreign-key: folder.creator_id
+ - key: look.last_updater_id
+ foreign-key: folder.creator_id
+ - key: look.space.creator_id
+ foreign-key: folder.creator_id
+ - key: look.user.id
+ foreign-key: folder.creator_id
+ - key: look.user_id
+ foreign-key: folder.creator_id
+ - key: look.deleter_id
+ foreign-key: space.creator_id
+ - key: look.folder.creator_id
+ foreign-key: space.creator_id
+ - key: look.last_updater_id
+ foreign-key: space.creator_id
+ - key: look.space.creator_id
+ foreign-key: space.creator_id
+ - key: look.user.id
+ foreign-key: space.creator_id
+ - key: look.user_id
+ foreign-key: space.creator_id
+ - key: look.deleter_id
+ foreign-key: user_id
+ - key: look.folder.creator_id
+ foreign-key: user_id
+ - key: look.last_updater_id
+ foreign-key: user_id
+ - key: look.space.creator_id
+ foreign-key: user_id
+ - key: look.user.id
+ foreign-key: user_id
+ - key: look.user_id
+ foreign-key: user_id
+ - table-name: looks
+ keys:
+ - key: look.content_favorite_id
+ foreign-key: content_favorite_id
+ - key: look.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: look.folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: look.space.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: look.folder.id
+ foreign-key: folder.id
+ - key: look.folder.parent_id
+ foreign-key: folder.id
+ - key: look.folder_id
+ foreign-key: folder.id
+ - key: look.folder.id
+ foreign-key: folder_id
+ - key: look.folder.parent_id
+ foreign-key: folder_id
+ - key: look.folder_id
+ foreign-key: folder_id
+ - key: look.folder.id
+ foreign-key: folder.parent_id
+ - key: look.folder.parent_id
+ foreign-key: folder.parent_id
+ - key: look.folder_id
+ foreign-key: folder.parent_id
+ - key: look.id
+ foreign-key: id
+ - key: look_id
+ foreign-key: id
+ - key: look.model.id
+ foreign-key: model.id
+ - key: look.query.id
+ foreign-key: query_id
+ - key: look.query_id
+ foreign-key: query_id
+ - key: query.id
+ foreign-key: query_id
+ - key: query_id
+ foreign-key: query_id
+ - key: result_maker.query.id
+ foreign-key: query_id
+ - key: result_maker.query_id
+ foreign-key: query_id
+ - key: look.space.id
+ foreign-key: space.id
+ - key: look.space.parent_id
+ foreign-key: space.id
+ - key: look.space.id
+ foreign-key: space.parent_id
+ - key: look.space.parent_id
+ foreign-key: space.parent_id
+ - key: look.space.id
+ foreign-key: space_id
+ - key: look.space.parent_id
+ foreign-key: space_id
+ - key: look.deleter_id
+ foreign-key: deleter_id
+ - key: look.folder.creator_id
+ foreign-key: deleter_id
+ - key: look.last_updater_id
+ foreign-key: deleter_id
+ - key: look.space.creator_id
+ foreign-key: deleter_id
+ - key: look.user.id
+ foreign-key: deleter_id
+ - key: look.user_id
+ foreign-key: deleter_id
+ - key: look.deleter_id
+ foreign-key: folder.creator_id
+ - key: look.folder.creator_id
+ foreign-key: folder.creator_id
+ - key: look.last_updater_id
+ foreign-key: folder.creator_id
+ - key: look.space.creator_id
+ foreign-key: folder.creator_id
+ - key: look.user.id
+ foreign-key: folder.creator_id
+ - key: look.user_id
+ foreign-key: folder.creator_id
+ - key: look.deleter_id
+ foreign-key: user.id
+ - key: look.folder.creator_id
+ foreign-key: user.id
+ - key: look.last_updater_id
+ foreign-key: user.id
+ - key: look.space.creator_id
+ foreign-key: user.id
+ - key: look.user.id
+ foreign-key: user.id
+ - key: look.user_id
+ foreign-key: user.id
+ - key: look.deleter_id
+ foreign-key: user_id
+ - key: look.folder.creator_id
+ foreign-key: user_id
+ - key: look.last_updater_id
+ foreign-key: user_id
+ - key: look.space.creator_id
+ foreign-key: user_id
+ - key: look.user.id
+ foreign-key: user_id
+ - key: look.user_id
+ foreign-key: user_id
+ - table-name: content_metadata
+ keys:
+ - key: look.content_metadata_id
+ foreign-key: id
+ - key: look.folder.content_metadata_id
+ foreign-key: id
+ - key: look.space.content_metadata_id
+ foreign-key: id
+ - key: look.content_metadata_id
+ foreign-key: parent_id
+ - key: look.folder.content_metadata_id
+ foreign-key: parent_id
+ - key: look.space.content_metadata_id
+ foreign-key: parent_id
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - key: look.id
+ foreign-key: look_id
+ - key: look_id
+ foreign-key: look_id
+ - key: look.space.id
+ foreign-key: space_id
+ - key: look.space.parent_id
+ foreign-key: space_id
+ - table-name: content_metadata_access
+ keys:
+ - key: look.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: look.folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: look.space.content_metadata_id
+ foreign-key: content_metadata_id
+ - table-name: content_views
+ keys:
+ - key: look.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: look.folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: look.space.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - key: look.id
+ foreign-key: look_id
+ - key: look_id
+ foreign-key: look_id
+ - key: look.deleter_id
+ foreign-key: user_id
+ - key: look.folder.creator_id
+ foreign-key: user_id
+ - key: look.last_updater_id
+ foreign-key: user_id
+ - key: look.space.creator_id
+ foreign-key: user_id
+ - key: look.user.id
+ foreign-key: user_id
+ - key: look.user_id
+ foreign-key: user_id
+ - table-name: dashboard_filters
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - table-name: dashboard_layouts
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - key: id
+ foreign-key: dashboard_layout_components.dashboard_element_id
+ - table-name: scheduled_plans
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - key: look.id
+ foreign-key: look_id
+ - key: look_id
+ foreign-key: look_id
+ - key: look.query.id
+ foreign-key: query_id
+ - key: look.query_id
+ foreign-key: query_id
+ - key: query.id
+ foreign-key: query_id
+ - key: query_id
+ foreign-key: query_id
+ - key: result_maker.query.id
+ foreign-key: query_id
+ - key: result_maker.query_id
+ foreign-key: query_id
+ - key: look.deleter_id
+ foreign-key: user.id
+ - key: look.folder.creator_id
+ foreign-key: user.id
+ - key: look.last_updater_id
+ foreign-key: user.id
+ - key: look.space.creator_id
+ foreign-key: user.id
+ - key: look.user.id
+ foreign-key: user.id
+ - key: look.user_id
+ foreign-key: user.id
+ - key: look.deleter_id
+ foreign-key: user_id
+ - key: look.folder.creator_id
+ foreign-key: user_id
+ - key: look.last_updater_id
+ foreign-key: user_id
+ - key: look.space.creator_id
+ foreign-key: user_id
+ - key: look.user.id
+ foreign-key: user_id
+ - key: look.user_id
+ foreign-key: user_id
+ - table-name: users
+ keys:
+ - key: look.folder.id
+ foreign-key: home_folder_id
+ - key: look.folder.parent_id
+ foreign-key: home_folder_id
+ - key: look.folder_id
+ foreign-key: home_folder_id
+ - key: look.folder.id
+ foreign-key: personal_folder_id
+ - key: look.folder.parent_id
+ foreign-key: personal_folder_id
+ - key: look.folder_id
+ foreign-key: personal_folder_id
+ - key: look.space.id
+ foreign-key: home_space_id
+ - key: look.space.parent_id
+ foreign-key: home_space_id
+ - key: look.space.id
+ foreign-key: personal_space_id
+ - key: look.space.parent_id
+ foreign-key: personal_space_id
+ - key: look.deleter_id
+ foreign-key: id
+ - key: look.folder.creator_id
+ foreign-key: id
+ - key: look.last_updater_id
+ foreign-key: id
+ - key: look.space.creator_id
+ foreign-key: id
+ - key: look.user.id
+ foreign-key: id
+ - key: look.user_id
+ foreign-key: id
+ - table-name: roles
+ keys:
+ - key: look.model.id
+ foreign-key: model_set.models
+ - table-name: queries
+ keys:
+ - key: look.query.id
+ foreign-key: id
+ - key: look.query_id
+ foreign-key: id
+ - key: query.id
+ foreign-key: id
+ - key: query_id
+ foreign-key: id
+ - key: result_maker.query.id
+ foreign-key: id
+ - key: result_maker.query_id
+ foreign-key: id
+ - table-name: connections
+ keys:
+ - key: look.deleter_id
+ foreign-key: user_id
+ - key: look.folder.creator_id
+ foreign-key: user_id
+ - key: look.last_updater_id
+ foreign-key: user_id
+ - key: look.space.creator_id
+ foreign-key: user_id
+ - key: look.user.id
+ foreign-key: user_id
+ - key: look.user_id
+ foreign-key: user_id
+ - table-name: user_login_lockouts
+ keys:
+ - key: look.deleter_id
+ foreign-key: user_id
+ - key: look.folder.creator_id
+ foreign-key: user_id
+ - key: look.last_updater_id
+ foreign-key: user_id
+ - key: look.space.creator_id
+ foreign-key: user_id
+ - key: look.user.id
+ foreign-key: user_id
+ - key: look.user_id
+ foreign-key: user_id
+- table-name: dashboards
+ join:
+ - table-name: content_favorites
+ keys:
+ - key: content_favorite_id
+ foreign-key: id
+ - key: content_favorite_id
+ foreign-key: dashboard.content_favorite_id
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: content_metadata_id
+ foreign-key: dashboard.content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: dashboard.content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: dashboard.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: dashboard.folder.content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: dashboard.folder.content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: dashboard.folder.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: dashboard.space.content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: dashboard.space.content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: dashboard.space.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: id
+ foreign-key: dashboard.id
+ - key: id
+ foreign-key: dashboard_id
+ - key: folder.id
+ foreign-key: dashboard.folder.id
+ - key: folder.parent_id
+ foreign-key: dashboard.folder.id
+ - key: folder.id
+ foreign-key: dashboard.folder.parent_id
+ - key: folder.parent_id
+ foreign-key: dashboard.folder.parent_id
+ - key: model.id
+ foreign-key: dashboard.model.id
+ - key: space.id
+ foreign-key: dashboard.space.id
+ - key: space.parent_id
+ foreign-key: dashboard.space.id
+ - key: space.id
+ foreign-key: dashboard.space.parent_id
+ - key: space.parent_id
+ foreign-key: dashboard.space.parent_id
+ - key: space.creator_id
+ foreign-key: dashboard.folder.creator_id
+ - key: user_id
+ foreign-key: dashboard.folder.creator_id
+ - key: space.creator_id
+ foreign-key: dashboard.space.creator_id
+ - key: user_id
+ foreign-key: dashboard.space.creator_id
+ - key: space.creator_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: dashboard_elements
+ keys:
+ - key: content_favorite_id
+ foreign-key: look.content_favorite_id
+ - key: content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: look.folder.content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: look.folder.content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: look.folder.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: look.space.content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: look.space.content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: look.space.content_metadata_id
+ - key: id
+ foreign-key: dashboard_id
+ - key: folder.id
+ foreign-key: look.folder.id
+ - key: folder.parent_id
+ foreign-key: look.folder.id
+ - key: folder.id
+ foreign-key: look.folder.parent_id
+ - key: folder.parent_id
+ foreign-key: look.folder.parent_id
+ - key: folder.id
+ foreign-key: look.folder_id
+ - key: folder.parent_id
+ foreign-key: look.folder_id
+ - key: model.id
+ foreign-key: look.model.id
+ - key: space.id
+ foreign-key: look.space.id
+ - key: space.parent_id
+ foreign-key: look.space.id
+ - key: space.id
+ foreign-key: look.space.parent_id
+ - key: space.parent_id
+ foreign-key: look.space.parent_id
+ - key: space.creator_id
+ foreign-key: look.deleter_id
+ - key: user_id
+ foreign-key: look.deleter_id
+ - key: space.creator_id
+ foreign-key: look.folder.creator_id
+ - key: user_id
+ foreign-key: look.folder.creator_id
+ - key: space.creator_id
+ foreign-key: look.last_updater_id
+ - key: user_id
+ foreign-key: look.last_updater_id
+ - key: space.creator_id
+ foreign-key: look.space.creator_id
+ - key: user_id
+ foreign-key: look.space.creator_id
+ - key: space.creator_id
+ foreign-key: look.user.id
+ - key: user_id
+ foreign-key: look.user.id
+ - key: space.creator_id
+ foreign-key: look.user_id
+ - key: user_id
+ foreign-key: look.user_id
+ - table-name: folders
+ keys:
+ - key: content_favorite_id
+ foreign-key: dashboards.content_favorite_id
+ - key: content_favorite_id
+ foreign-key: looks.content_favorite_id
+ - key: content_metadata_id
+ foreign-key: dashboards.folder.content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: dashboards.folder.content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: dashboards.folder.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: dashboards.space.content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: dashboards.space.content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: dashboards.space.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: looks.content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: looks.content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: looks.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: looks.folder.content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: looks.folder.content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: looks.folder.content_metadata_id
+ - key: id
+ foreign-key: dashboards.id
+ - key: folder.id
+ foreign-key: id
+ - key: folder.parent_id
+ foreign-key: id
+ - key: folder.id
+ foreign-key: dashboards.folder.id
+ - key: folder.parent_id
+ foreign-key: dashboards.folder.id
+ - key: folder.id
+ foreign-key: dashboards.folder.parent_id
+ - key: folder.parent_id
+ foreign-key: dashboards.folder.parent_id
+ - key: folder.id
+ foreign-key: looks.folder.id
+ - key: folder.parent_id
+ foreign-key: looks.folder.id
+ - key: folder.id
+ foreign-key: looks.folder.parent_id
+ - key: folder.parent_id
+ foreign-key: looks.folder.parent_id
+ - key: folder.id
+ foreign-key: parent_id
+ - key: folder.parent_id
+ foreign-key: parent_id
+ - key: model.id
+ foreign-key: dashboards.model.id
+ - key: model.id
+ foreign-key: looks.model.id
+ - key: space.id
+ foreign-key: dashboards.space.id
+ - key: space.parent_id
+ foreign-key: dashboards.space.id
+ - key: space.id
+ foreign-key: dashboards.space.parent_id
+ - key: space.parent_id
+ foreign-key: dashboards.space.parent_id
+ - key: space.id
+ foreign-key: looks.space.id
+ - key: space.parent_id
+ foreign-key: looks.space.id
+ - key: space.id
+ foreign-key: looks.space.parent_id
+ - key: space.parent_id
+ foreign-key: looks.space.parent_id
+ - key: space.id
+ foreign-key: looks.space_id
+ - key: space.parent_id
+ foreign-key: looks.space_id
+ - key: space.creator_id
+ foreign-key: creator_id
+ - key: user_id
+ foreign-key: creator_id
+ - key: space.creator_id
+ foreign-key: dashboards.user_id
+ - key: user_id
+ foreign-key: dashboards.user_id
+ - key: space.creator_id
+ foreign-key: dashboards.folder.creator_id
+ - key: user_id
+ foreign-key: dashboards.folder.creator_id
+ - key: space.creator_id
+ foreign-key: dashboards.space.creator_id
+ - key: user_id
+ foreign-key: dashboards.space.creator_id
+ - key: space.creator_id
+ foreign-key: looks.deleter_id
+ - key: user_id
+ foreign-key: looks.deleter_id
+ - key: space.creator_id
+ foreign-key: looks.last_updater_id
+ - key: user_id
+ foreign-key: looks.last_updater_id
+ - key: space.creator_id
+ foreign-key: looks.user.id
+ - key: user_id
+ foreign-key: looks.user.id
+ - table-name: lookml_dashboards
+ keys:
+ - key: content_favorite_id
+ foreign-key: content_favorite_id
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: folder.id
+ foreign-key: folder.id
+ - key: folder.parent_id
+ foreign-key: folder.id
+ - key: folder.id
+ foreign-key: folder.parent_id
+ - key: folder.parent_id
+ foreign-key: folder.parent_id
+ - key: model.id
+ foreign-key: model.id
+ - key: space.id
+ foreign-key: space.id
+ - key: space.parent_id
+ foreign-key: space.id
+ - key: space.id
+ foreign-key: space.parent_id
+ - key: space.parent_id
+ foreign-key: space.parent_id
+ - key: space.creator_id
+ foreign-key: folder.creator_id
+ - key: user_id
+ foreign-key: folder.creator_id
+ - key: space.creator_id
+ foreign-key: space.creator_id
+ - key: user_id
+ foreign-key: space.creator_id
+ - key: space.creator_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: looks
+ keys:
+ - key: content_favorite_id
+ foreign-key: content_favorite_id
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: folder.id
+ foreign-key: folder.id
+ - key: folder.parent_id
+ foreign-key: folder.id
+ - key: folder.id
+ foreign-key: folder_id
+ - key: folder.parent_id
+ foreign-key: folder_id
+ - key: folder.id
+ foreign-key: folder.parent_id
+ - key: folder.parent_id
+ foreign-key: folder.parent_id
+ - key: model.id
+ foreign-key: model.id
+ - key: space.id
+ foreign-key: space.id
+ - key: space.parent_id
+ foreign-key: space.id
+ - key: space.id
+ foreign-key: space.parent_id
+ - key: space.parent_id
+ foreign-key: space.parent_id
+ - key: space.id
+ foreign-key: space_id
+ - key: space.parent_id
+ foreign-key: space_id
+ - key: space.creator_id
+ foreign-key: deleter_id
+ - key: user_id
+ foreign-key: deleter_id
+ - key: space.creator_id
+ foreign-key: folder.creator_id
+ - key: user_id
+ foreign-key: folder.creator_id
+ - key: space.creator_id
+ foreign-key: user.id
+ - key: user_id
+ foreign-key: user.id
+ - key: space.creator_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: content_metadata
+ keys:
+ - key: content_metadata_id
+ foreign-key: id
+ - key: folder.content_metadata_id
+ foreign-key: id
+ - key: space.content_metadata_id
+ foreign-key: id
+ - key: content_metadata_id
+ foreign-key: parent_id
+ - key: folder.content_metadata_id
+ foreign-key: parent_id
+ - key: space.content_metadata_id
+ foreign-key: parent_id
+ - key: id
+ foreign-key: dashboard_id
+ - key: space.id
+ foreign-key: space_id
+ - key: space.parent_id
+ foreign-key: space_id
+ - table-name: content_metadata_access
+ keys:
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: content_metadata_id
+ - table-name: content_views
+ keys:
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: id
+ foreign-key: dashboard_id
+ - key: space.creator_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: dashboard_filters
+ keys:
+ - key: id
+ foreign-key: dashboard_id
+ - table-name: dashboard_layouts
+ keys:
+ - key: id
+ foreign-key: dashboard_id
+ - table-name: scheduled_plans
+ keys:
+ - key: id
+ foreign-key: dashboard_id
+ - key: space.creator_id
+ foreign-key: user.id
+ - key: user_id
+ foreign-key: user.id
+ - key: space.creator_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: users
+ keys:
+ - key: folder.id
+ foreign-key: home_folder_id
+ - key: folder.parent_id
+ foreign-key: home_folder_id
+ - key: folder.id
+ foreign-key: personal_folder_id
+ - key: folder.parent_id
+ foreign-key: personal_folder_id
+ - key: space.id
+ foreign-key: home_space_id
+ - key: space.parent_id
+ foreign-key: home_space_id
+ - key: space.id
+ foreign-key: personal_space_id
+ - key: space.parent_id
+ foreign-key: personal_space_id
+ - key: space.creator_id
+ foreign-key: id
+ - key: user_id
+ foreign-key: id
+ - table-name: roles
+ keys:
+ - key: model.id
+ foreign-key: model_set.models
+ - table-name: connections
+ keys:
+ - key: space.creator_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: user_login_lockouts
+ keys:
+ - key: space.creator_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+- table-name: folders
+ join:
+ - table-name: content_favorites
+ keys:
+ - key: dashboards.content_favorite_id
+ foreign-key: id
+ - key: looks.content_favorite_id
+ foreign-key: id
+ - key: dashboards.content_favorite_id
+ foreign-key: dashboard.content_favorite_id
+ - key: looks.content_favorite_id
+ foreign-key: dashboard.content_favorite_id
+ - key: dashboards.folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: dashboards.space.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: looks.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: looks.folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: dashboards.folder.content_metadata_id
+ foreign-key: dashboard.content_metadata_id
+ - key: dashboards.space.content_metadata_id
+ foreign-key: dashboard.content_metadata_id
+ - key: looks.content_metadata_id
+ foreign-key: dashboard.content_metadata_id
+ - key: looks.folder.content_metadata_id
+ foreign-key: dashboard.content_metadata_id
+ - key: dashboards.folder.content_metadata_id
+ foreign-key: dashboard.folder.content_metadata_id
+ - key: dashboards.space.content_metadata_id
+ foreign-key: dashboard.folder.content_metadata_id
+ - key: looks.content_metadata_id
+ foreign-key: dashboard.folder.content_metadata_id
+ - key: looks.folder.content_metadata_id
+ foreign-key: dashboard.folder.content_metadata_id
+ - key: dashboards.folder.content_metadata_id
+ foreign-key: dashboard.space.content_metadata_id
+ - key: dashboards.space.content_metadata_id
+ foreign-key: dashboard.space.content_metadata_id
+ - key: looks.content_metadata_id
+ foreign-key: dashboard.space.content_metadata_id
+ - key: looks.folder.content_metadata_id
+ foreign-key: dashboard.space.content_metadata_id
+ - key: dashboards.folder.content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: dashboards.space.content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: looks.content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: looks.folder.content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: dashboards.id
+ foreign-key: dashboard.id
+ - key: dashboards.id
+ foreign-key: dashboard_id
+ - key: id
+ foreign-key: dashboard.folder.id
+ - key: dashboards.folder.id
+ foreign-key: dashboard.folder.id
+ - key: dashboards.folder.parent_id
+ foreign-key: dashboard.folder.id
+ - key: looks.folder.id
+ foreign-key: dashboard.folder.id
+ - key: looks.folder.parent_id
+ foreign-key: dashboard.folder.id
+ - key: parent_id
+ foreign-key: dashboard.folder.id
+ - key: id
+ foreign-key: dashboard.folder.parent_id
+ - key: dashboards.folder.id
+ foreign-key: dashboard.folder.parent_id
+ - key: dashboards.folder.parent_id
+ foreign-key: dashboard.folder.parent_id
+ - key: looks.folder.id
+ foreign-key: dashboard.folder.parent_id
+ - key: looks.folder.parent_id
+ foreign-key: dashboard.folder.parent_id
+ - key: parent_id
+ foreign-key: dashboard.folder.parent_id
+ - key: looks.id
+ foreign-key: look_id
+ - key: looks.id
+ foreign-key: look.id
+ - key: dashboards.model.id
+ foreign-key: dashboard.model.id
+ - key: looks.model.id
+ foreign-key: dashboard.model.id
+ - key: dashboards.space.id
+ foreign-key: dashboard.space.id
+ - key: dashboards.space.parent_id
+ foreign-key: dashboard.space.id
+ - key: looks.space.id
+ foreign-key: dashboard.space.id
+ - key: looks.space.parent_id
+ foreign-key: dashboard.space.id
+ - key: looks.space_id
+ foreign-key: dashboard.space.id
+ - key: dashboards.space.id
+ foreign-key: dashboard.space.parent_id
+ - key: dashboards.space.parent_id
+ foreign-key: dashboard.space.parent_id
+ - key: looks.space.id
+ foreign-key: dashboard.space.parent_id
+ - key: looks.space.parent_id
+ foreign-key: dashboard.space.parent_id
+ - key: looks.space_id
+ foreign-key: dashboard.space.parent_id
+ - key: creator_id
+ foreign-key: dashboard.folder.creator_id
+ - key: dashboards.user_id
+ foreign-key: dashboard.folder.creator_id
+ - key: dashboards.folder.creator_id
+ foreign-key: dashboard.folder.creator_id
+ - key: dashboards.space.creator_id
+ foreign-key: dashboard.folder.creator_id
+ - key: looks.deleter_id
+ foreign-key: dashboard.folder.creator_id
+ - key: looks.last_updater_id
+ foreign-key: dashboard.folder.creator_id
+ - key: looks.user.id
+ foreign-key: dashboard.folder.creator_id
+ - key: creator_id
+ foreign-key: dashboard.space.creator_id
+ - key: dashboards.user_id
+ foreign-key: dashboard.space.creator_id
+ - key: dashboards.folder.creator_id
+ foreign-key: dashboard.space.creator_id
+ - key: dashboards.space.creator_id
+ foreign-key: dashboard.space.creator_id
+ - key: looks.deleter_id
+ foreign-key: dashboard.space.creator_id
+ - key: looks.last_updater_id
+ foreign-key: dashboard.space.creator_id
+ - key: looks.user.id
+ foreign-key: dashboard.space.creator_id
+ - key: creator_id
+ foreign-key: user_id
+ - key: dashboards.user_id
+ foreign-key: user_id
+ - key: dashboards.folder.creator_id
+ foreign-key: user_id
+ - key: dashboards.space.creator_id
+ foreign-key: user_id
+ - key: looks.deleter_id
+ foreign-key: user_id
+ - key: looks.last_updater_id
+ foreign-key: user_id
+ - key: looks.user.id
+ foreign-key: user_id
+ - table-name: dashboard_elements
+ keys:
+ - key: dashboards.content_favorite_id
+ foreign-key: look.content_favorite_id
+ - key: looks.content_favorite_id
+ foreign-key: look.content_favorite_id
+ - key: dashboards.folder.content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: dashboards.space.content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: looks.content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: looks.folder.content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: dashboards.folder.content_metadata_id
+ foreign-key: look.folder.content_metadata_id
+ - key: dashboards.space.content_metadata_id
+ foreign-key: look.folder.content_metadata_id
+ - key: looks.content_metadata_id
+ foreign-key: look.folder.content_metadata_id
+ - key: looks.folder.content_metadata_id
+ foreign-key: look.folder.content_metadata_id
+ - key: dashboards.folder.content_metadata_id
+ foreign-key: look.space.content_metadata_id
+ - key: dashboards.space.content_metadata_id
+ foreign-key: look.space.content_metadata_id
+ - key: looks.content_metadata_id
+ foreign-key: look.space.content_metadata_id
+ - key: looks.folder.content_metadata_id
+ foreign-key: look.space.content_metadata_id
+ - key: dashboards.id
+ foreign-key: dashboard_id
+ - key: id
+ foreign-key: look.folder.id
+ - key: dashboards.folder.id
+ foreign-key: look.folder.id
+ - key: dashboards.folder.parent_id
+ foreign-key: look.folder.id
+ - key: looks.folder.id
+ foreign-key: look.folder.id
+ - key: looks.folder.parent_id
+ foreign-key: look.folder.id
+ - key: parent_id
+ foreign-key: look.folder.id
+ - key: id
+ foreign-key: look.folder.parent_id
+ - key: dashboards.folder.id
+ foreign-key: look.folder.parent_id
+ - key: dashboards.folder.parent_id
+ foreign-key: look.folder.parent_id
+ - key: looks.folder.id
+ foreign-key: look.folder.parent_id
+ - key: looks.folder.parent_id
+ foreign-key: look.folder.parent_id
+ - key: parent_id
+ foreign-key: look.folder.parent_id
+ - key: id
+ foreign-key: look.folder_id
+ - key: dashboards.folder.id
+ foreign-key: look.folder_id
+ - key: dashboards.folder.parent_id
+ foreign-key: look.folder_id
+ - key: looks.folder.id
+ foreign-key: look.folder_id
+ - key: looks.folder.parent_id
+ foreign-key: look.folder_id
+ - key: parent_id
+ foreign-key: look.folder_id
+ - key: looks.id
+ foreign-key: look.id
+ - key: looks.id
+ foreign-key: look_id
+ - key: dashboards.model.id
+ foreign-key: look.model.id
+ - key: looks.model.id
+ foreign-key: look.model.id
+ - key: looks.query_id
+ foreign-key: look.query.id
+ - key: looks.query_id
+ foreign-key: look.query_id
+ - key: looks.query_id
+ foreign-key: query.id
+ - key: looks.query_id
+ foreign-key: query_id
+ - key: looks.query_id
+ foreign-key: result_maker.query.id
+ - key: looks.query_id
+ foreign-key: result_maker.query_id
+ - key: dashboards.space.id
+ foreign-key: look.space.id
+ - key: dashboards.space.parent_id
+ foreign-key: look.space.id
+ - key: looks.space.id
+ foreign-key: look.space.id
+ - key: looks.space.parent_id
+ foreign-key: look.space.id
+ - key: looks.space_id
+ foreign-key: look.space.id
+ - key: dashboards.space.id
+ foreign-key: look.space.parent_id
+ - key: dashboards.space.parent_id
+ foreign-key: look.space.parent_id
+ - key: looks.space.id
+ foreign-key: look.space.parent_id
+ - key: looks.space.parent_id
+ foreign-key: look.space.parent_id
+ - key: looks.space_id
+ foreign-key: look.space.parent_id
+ - key: creator_id
+ foreign-key: look.deleter_id
+ - key: dashboards.user_id
+ foreign-key: look.deleter_id
+ - key: dashboards.folder.creator_id
+ foreign-key: look.deleter_id
+ - key: dashboards.space.creator_id
+ foreign-key: look.deleter_id
+ - key: looks.deleter_id
+ foreign-key: look.deleter_id
+ - key: looks.last_updater_id
+ foreign-key: look.deleter_id
+ - key: looks.user.id
+ foreign-key: look.deleter_id
+ - key: creator_id
+ foreign-key: look.folder.creator_id
+ - key: dashboards.user_id
+ foreign-key: look.folder.creator_id
+ - key: dashboards.folder.creator_id
+ foreign-key: look.folder.creator_id
+ - key: dashboards.space.creator_id
+ foreign-key: look.folder.creator_id
+ - key: looks.deleter_id
+ foreign-key: look.folder.creator_id
+ - key: looks.last_updater_id
+ foreign-key: look.folder.creator_id
+ - key: looks.user.id
+ foreign-key: look.folder.creator_id
+ - key: creator_id
+ foreign-key: look.last_updater_id
+ - key: dashboards.user_id
+ foreign-key: look.last_updater_id
+ - key: dashboards.folder.creator_id
+ foreign-key: look.last_updater_id
+ - key: dashboards.space.creator_id
+ foreign-key: look.last_updater_id
+ - key: looks.deleter_id
+ foreign-key: look.last_updater_id
+ - key: looks.last_updater_id
+ foreign-key: look.last_updater_id
+ - key: looks.user.id
+ foreign-key: look.last_updater_id
+ - key: creator_id
+ foreign-key: look.space.creator_id
+ - key: dashboards.user_id
+ foreign-key: look.space.creator_id
+ - key: dashboards.folder.creator_id
+ foreign-key: look.space.creator_id
+ - key: dashboards.space.creator_id
+ foreign-key: look.space.creator_id
+ - key: looks.deleter_id
+ foreign-key: look.space.creator_id
+ - key: looks.last_updater_id
+ foreign-key: look.space.creator_id
+ - key: looks.user.id
+ foreign-key: look.space.creator_id
+ - key: creator_id
+ foreign-key: look.user.id
+ - key: dashboards.user_id
+ foreign-key: look.user.id
+ - key: dashboards.folder.creator_id
+ foreign-key: look.user.id
+ - key: dashboards.space.creator_id
+ foreign-key: look.user.id
+ - key: looks.deleter_id
+ foreign-key: look.user.id
+ - key: looks.last_updater_id
+ foreign-key: look.user.id
+ - key: looks.user.id
+ foreign-key: look.user.id
+ - key: creator_id
+ foreign-key: look.user_id
+ - key: dashboards.user_id
+ foreign-key: look.user_id
+ - key: dashboards.folder.creator_id
+ foreign-key: look.user_id
+ - key: dashboards.space.creator_id
+ foreign-key: look.user_id
+ - key: looks.deleter_id
+ foreign-key: look.user_id
+ - key: looks.last_updater_id
+ foreign-key: look.user_id
+ - key: looks.user.id
+ foreign-key: look.user_id
+ - table-name: dashboards
+ keys:
+ - key: dashboards.content_favorite_id
+ foreign-key: content_favorite_id
+ - key: looks.content_favorite_id
+ foreign-key: content_favorite_id
+ - key: dashboards.folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: dashboards.space.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: looks.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: looks.folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: dashboards.folder.content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: dashboards.space.content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: looks.content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: looks.folder.content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: dashboards.folder.content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: dashboards.space.content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: looks.content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: looks.folder.content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: dashboards.id
+ foreign-key: id
+ - key: id
+ foreign-key: folder.id
+ - key: dashboards.folder.id
+ foreign-key: folder.id
+ - key: dashboards.folder.parent_id
+ foreign-key: folder.id
+ - key: looks.folder.id
+ foreign-key: folder.id
+ - key: looks.folder.parent_id
+ foreign-key: folder.id
+ - key: parent_id
+ foreign-key: folder.id
+ - key: id
+ foreign-key: folder.parent_id
+ - key: dashboards.folder.id
+ foreign-key: folder.parent_id
+ - key: dashboards.folder.parent_id
+ foreign-key: folder.parent_id
+ - key: looks.folder.id
+ foreign-key: folder.parent_id
+ - key: looks.folder.parent_id
+ foreign-key: folder.parent_id
+ - key: parent_id
+ foreign-key: folder.parent_id
+ - key: dashboards.model.id
+ foreign-key: model.id
+ - key: looks.model.id
+ foreign-key: model.id
+ - key: dashboards.space.id
+ foreign-key: space.id
+ - key: dashboards.space.parent_id
+ foreign-key: space.id
+ - key: looks.space.id
+ foreign-key: space.id
+ - key: looks.space.parent_id
+ foreign-key: space.id
+ - key: looks.space_id
+ foreign-key: space.id
+ - key: dashboards.space.id
+ foreign-key: space.parent_id
+ - key: dashboards.space.parent_id
+ foreign-key: space.parent_id
+ - key: looks.space.id
+ foreign-key: space.parent_id
+ - key: looks.space.parent_id
+ foreign-key: space.parent_id
+ - key: looks.space_id
+ foreign-key: space.parent_id
+ - key: creator_id
+ foreign-key: space.creator_id
+ - key: dashboards.user_id
+ foreign-key: space.creator_id
+ - key: dashboards.folder.creator_id
+ foreign-key: space.creator_id
+ - key: dashboards.space.creator_id
+ foreign-key: space.creator_id
+ - key: looks.deleter_id
+ foreign-key: space.creator_id
+ - key: looks.last_updater_id
+ foreign-key: space.creator_id
+ - key: looks.user.id
+ foreign-key: space.creator_id
+ - key: creator_id
+ foreign-key: user_id
+ - key: dashboards.user_id
+ foreign-key: user_id
+ - key: dashboards.folder.creator_id
+ foreign-key: user_id
+ - key: dashboards.space.creator_id
+ foreign-key: user_id
+ - key: looks.deleter_id
+ foreign-key: user_id
+ - key: looks.last_updater_id
+ foreign-key: user_id
+ - key: looks.user.id
+ foreign-key: user_id
+ - table-name: lookml_dashboards
+ keys:
+ - key: dashboards.content_favorite_id
+ foreign-key: content_favorite_id
+ - key: looks.content_favorite_id
+ foreign-key: content_favorite_id
+ - key: dashboards.folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: dashboards.space.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: looks.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: looks.folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: dashboards.folder.content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: dashboards.space.content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: looks.content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: looks.folder.content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: dashboards.folder.content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: dashboards.space.content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: looks.content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: looks.folder.content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: id
+ foreign-key: folder.id
+ - key: dashboards.folder.id
+ foreign-key: folder.id
+ - key: dashboards.folder.parent_id
+ foreign-key: folder.id
+ - key: looks.folder.id
+ foreign-key: folder.id
+ - key: looks.folder.parent_id
+ foreign-key: folder.id
+ - key: parent_id
+ foreign-key: folder.id
+ - key: id
+ foreign-key: folder.parent_id
+ - key: dashboards.folder.id
+ foreign-key: folder.parent_id
+ - key: dashboards.folder.parent_id
+ foreign-key: folder.parent_id
+ - key: looks.folder.id
+ foreign-key: folder.parent_id
+ - key: looks.folder.parent_id
+ foreign-key: folder.parent_id
+ - key: parent_id
+ foreign-key: folder.parent_id
+ - key: dashboards.model.id
+ foreign-key: model.id
+ - key: looks.model.id
+ foreign-key: model.id
+ - key: dashboards.space.id
+ foreign-key: space.id
+ - key: dashboards.space.parent_id
+ foreign-key: space.id
+ - key: looks.space.id
+ foreign-key: space.id
+ - key: looks.space.parent_id
+ foreign-key: space.id
+ - key: looks.space_id
+ foreign-key: space.id
+ - key: dashboards.space.id
+ foreign-key: space.parent_id
+ - key: dashboards.space.parent_id
+ foreign-key: space.parent_id
+ - key: looks.space.id
+ foreign-key: space.parent_id
+ - key: looks.space.parent_id
+ foreign-key: space.parent_id
+ - key: looks.space_id
+ foreign-key: space.parent_id
+ - key: creator_id
+ foreign-key: folder.creator_id
+ - key: dashboards.user_id
+ foreign-key: folder.creator_id
+ - key: dashboards.folder.creator_id
+ foreign-key: folder.creator_id
+ - key: dashboards.space.creator_id
+ foreign-key: folder.creator_id
+ - key: looks.deleter_id
+ foreign-key: folder.creator_id
+ - key: looks.last_updater_id
+ foreign-key: folder.creator_id
+ - key: looks.user.id
+ foreign-key: folder.creator_id
+ - key: creator_id
+ foreign-key: space.creator_id
+ - key: dashboards.user_id
+ foreign-key: space.creator_id
+ - key: dashboards.folder.creator_id
+ foreign-key: space.creator_id
+ - key: dashboards.space.creator_id
+ foreign-key: space.creator_id
+ - key: looks.deleter_id
+ foreign-key: space.creator_id
+ - key: looks.last_updater_id
+ foreign-key: space.creator_id
+ - key: looks.user.id
+ foreign-key: space.creator_id
+ - key: creator_id
+ foreign-key: user_id
+ - key: dashboards.user_id
+ foreign-key: user_id
+ - key: dashboards.folder.creator_id
+ foreign-key: user_id
+ - key: dashboards.space.creator_id
+ foreign-key: user_id
+ - key: looks.deleter_id
+ foreign-key: user_id
+ - key: looks.last_updater_id
+ foreign-key: user_id
+ - key: looks.user.id
+ foreign-key: user_id
+ - table-name: looks
+ keys:
+ - key: dashboards.content_favorite_id
+ foreign-key: content_favorite_id
+ - key: looks.content_favorite_id
+ foreign-key: content_favorite_id
+ - key: dashboards.folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: dashboards.space.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: looks.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: looks.folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: id
+ foreign-key: folder.id
+ - key: dashboards.folder.id
+ foreign-key: folder.id
+ - key: dashboards.folder.parent_id
+ foreign-key: folder.id
+ - key: looks.folder.id
+ foreign-key: folder.id
+ - key: looks.folder.parent_id
+ foreign-key: folder.id
+ - key: parent_id
+ foreign-key: folder.id
+ - key: id
+ foreign-key: folder_id
+ - key: dashboards.folder.id
+ foreign-key: folder_id
+ - key: dashboards.folder.parent_id
+ foreign-key: folder_id
+ - key: looks.folder.id
+ foreign-key: folder_id
+ - key: looks.folder.parent_id
+ foreign-key: folder_id
+ - key: parent_id
+ foreign-key: folder_id
+ - key: id
+ foreign-key: folder.parent_id
+ - key: dashboards.folder.id
+ foreign-key: folder.parent_id
+ - key: dashboards.folder.parent_id
+ foreign-key: folder.parent_id
+ - key: looks.folder.id
+ foreign-key: folder.parent_id
+ - key: looks.folder.parent_id
+ foreign-key: folder.parent_id
+ - key: parent_id
+ foreign-key: folder.parent_id
+ - key: looks.id
+ foreign-key: id
+ - key: dashboards.model.id
+ foreign-key: model.id
+ - key: looks.model.id
+ foreign-key: model.id
+ - key: looks.query_id
+ foreign-key: query_id
+ - key: dashboards.space.id
+ foreign-key: space.id
+ - key: dashboards.space.parent_id
+ foreign-key: space.id
+ - key: looks.space.id
+ foreign-key: space.id
+ - key: looks.space.parent_id
+ foreign-key: space.id
+ - key: looks.space_id
+ foreign-key: space.id
+ - key: dashboards.space.id
+ foreign-key: space.parent_id
+ - key: dashboards.space.parent_id
+ foreign-key: space.parent_id
+ - key: looks.space.id
+ foreign-key: space.parent_id
+ - key: looks.space.parent_id
+ foreign-key: space.parent_id
+ - key: looks.space_id
+ foreign-key: space.parent_id
+ - key: dashboards.space.id
+ foreign-key: space_id
+ - key: dashboards.space.parent_id
+ foreign-key: space_id
+ - key: looks.space.id
+ foreign-key: space_id
+ - key: looks.space.parent_id
+ foreign-key: space_id
+ - key: looks.space_id
+ foreign-key: space_id
+ - key: creator_id
+ foreign-key: deleter_id
+ - key: dashboards.user_id
+ foreign-key: deleter_id
+ - key: dashboards.folder.creator_id
+ foreign-key: deleter_id
+ - key: dashboards.space.creator_id
+ foreign-key: deleter_id
+ - key: looks.deleter_id
+ foreign-key: deleter_id
+ - key: looks.last_updater_id
+ foreign-key: deleter_id
+ - key: looks.user.id
+ foreign-key: deleter_id
+ - key: creator_id
+ foreign-key: folder.creator_id
+ - key: dashboards.user_id
+ foreign-key: folder.creator_id
+ - key: dashboards.folder.creator_id
+ foreign-key: folder.creator_id
+ - key: dashboards.space.creator_id
+ foreign-key: folder.creator_id
+ - key: looks.deleter_id
+ foreign-key: folder.creator_id
+ - key: looks.last_updater_id
+ foreign-key: folder.creator_id
+ - key: looks.user.id
+ foreign-key: folder.creator_id
+ - key: creator_id
+ foreign-key: user.id
+ - key: dashboards.user_id
+ foreign-key: user.id
+ - key: dashboards.folder.creator_id
+ foreign-key: user.id
+ - key: dashboards.space.creator_id
+ foreign-key: user.id
+ - key: looks.deleter_id
+ foreign-key: user.id
+ - key: looks.last_updater_id
+ foreign-key: user.id
+ - key: looks.user.id
+ foreign-key: user.id
+ - key: creator_id
+ foreign-key: user_id
+ - key: dashboards.user_id
+ foreign-key: user_id
+ - key: dashboards.folder.creator_id
+ foreign-key: user_id
+ - key: dashboards.space.creator_id
+ foreign-key: user_id
+ - key: looks.deleter_id
+ foreign-key: user_id
+ - key: looks.last_updater_id
+ foreign-key: user_id
+ - key: looks.user.id
+ foreign-key: user_id
+ - table-name: content_metadata
+ keys:
+ - key: dashboards.folder.content_metadata_id
+ foreign-key: id
+ - key: dashboards.space.content_metadata_id
+ foreign-key: id
+ - key: looks.content_metadata_id
+ foreign-key: id
+ - key: looks.folder.content_metadata_id
+ foreign-key: id
+ - key: dashboards.folder.content_metadata_id
+ foreign-key: parent_id
+ - key: dashboards.space.content_metadata_id
+ foreign-key: parent_id
+ - key: looks.content_metadata_id
+ foreign-key: parent_id
+ - key: looks.folder.content_metadata_id
+ foreign-key: parent_id
+ - key: dashboards.id
+ foreign-key: dashboard_id
+ - key: looks.id
+ foreign-key: look_id
+ - key: dashboards.space.id
+ foreign-key: space_id
+ - key: dashboards.space.parent_id
+ foreign-key: space_id
+ - key: looks.space.id
+ foreign-key: space_id
+ - key: looks.space.parent_id
+ foreign-key: space_id
+ - key: looks.space_id
+ foreign-key: space_id
+ - table-name: content_metadata_access
+ keys:
+ - key: dashboards.folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: dashboards.space.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: looks.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: looks.folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - table-name: content_views
+ keys:
+ - key: dashboards.folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: dashboards.space.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: looks.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: looks.folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: dashboards.id
+ foreign-key: dashboard_id
+ - key: looks.id
+ foreign-key: look_id
+ - key: creator_id
+ foreign-key: user_id
+ - key: dashboards.user_id
+ foreign-key: user_id
+ - key: dashboards.folder.creator_id
+ foreign-key: user_id
+ - key: dashboards.space.creator_id
+ foreign-key: user_id
+ - key: looks.deleter_id
+ foreign-key: user_id
+ - key: looks.last_updater_id
+ foreign-key: user_id
+ - key: looks.user.id
+ foreign-key: user_id
+ - table-name: dashboard_filters
+ keys:
+ - key: dashboards.id
+ foreign-key: dashboard_id
+ - table-name: dashboard_layouts
+ keys:
+ - key: dashboards.id
+ foreign-key: dashboard_id
+ - table-name: scheduled_plans
+ keys:
+ - key: dashboards.id
+ foreign-key: dashboard_id
+ - key: looks.id
+ foreign-key: look_id
+ - key: looks.query_id
+ foreign-key: query_id
+ - key: creator_id
+ foreign-key: user.id
+ - key: dashboards.user_id
+ foreign-key: user.id
+ - key: dashboards.folder.creator_id
+ foreign-key: user.id
+ - key: dashboards.space.creator_id
+ foreign-key: user.id
+ - key: looks.deleter_id
+ foreign-key: user.id
+ - key: looks.last_updater_id
+ foreign-key: user.id
+ - key: looks.user.id
+ foreign-key: user.id
+ - key: creator_id
+ foreign-key: user_id
+ - key: dashboards.user_id
+ foreign-key: user_id
+ - key: dashboards.folder.creator_id
+ foreign-key: user_id
+ - key: dashboards.space.creator_id
+ foreign-key: user_id
+ - key: looks.deleter_id
+ foreign-key: user_id
+ - key: looks.last_updater_id
+ foreign-key: user_id
+ - key: looks.user.id
+ foreign-key: user_id
+ - table-name: users
+ keys:
+ - key: id
+ foreign-key: home_folder_id
+ - key: dashboards.folder.id
+ foreign-key: home_folder_id
+ - key: dashboards.folder.parent_id
+ foreign-key: home_folder_id
+ - key: looks.folder.id
+ foreign-key: home_folder_id
+ - key: looks.folder.parent_id
+ foreign-key: home_folder_id
+ - key: parent_id
+ foreign-key: home_folder_id
+ - key: id
+ foreign-key: personal_folder_id
+ - key: dashboards.folder.id
+ foreign-key: personal_folder_id
+ - key: dashboards.folder.parent_id
+ foreign-key: personal_folder_id
+ - key: looks.folder.id
+ foreign-key: personal_folder_id
+ - key: looks.folder.parent_id
+ foreign-key: personal_folder_id
+ - key: parent_id
+ foreign-key: personal_folder_id
+ - key: dashboards.space.id
+ foreign-key: home_space_id
+ - key: dashboards.space.parent_id
+ foreign-key: home_space_id
+ - key: looks.space.id
+ foreign-key: home_space_id
+ - key: looks.space.parent_id
+ foreign-key: home_space_id
+ - key: looks.space_id
+ foreign-key: home_space_id
+ - key: dashboards.space.id
+ foreign-key: personal_space_id
+ - key: dashboards.space.parent_id
+ foreign-key: personal_space_id
+ - key: looks.space.id
+ foreign-key: personal_space_id
+ - key: looks.space.parent_id
+ foreign-key: personal_space_id
+ - key: looks.space_id
+ foreign-key: personal_space_id
+ - key: creator_id
+ foreign-key: id
+ - key: dashboards.user_id
+ foreign-key: id
+ - key: dashboards.folder.creator_id
+ foreign-key: id
+ - key: dashboards.space.creator_id
+ foreign-key: id
+ - key: looks.deleter_id
+ foreign-key: id
+ - key: looks.last_updater_id
+ foreign-key: id
+ - key: looks.user.id
+ foreign-key: id
+ - table-name: roles
+ keys:
+ - key: dashboards.model.id
+ foreign-key: model_set.models
+ - key: looks.model.id
+ foreign-key: model_set.models
+ - table-name: queries
+ keys:
+ - key: looks.query_id
+ foreign-key: id
+ - table-name: connections
+ keys:
+ - key: creator_id
+ foreign-key: user_id
+ - key: dashboards.user_id
+ foreign-key: user_id
+ - key: dashboards.folder.creator_id
+ foreign-key: user_id
+ - key: dashboards.space.creator_id
+ foreign-key: user_id
+ - key: looks.deleter_id
+ foreign-key: user_id
+ - key: looks.last_updater_id
+ foreign-key: user_id
+ - key: looks.user.id
+ foreign-key: user_id
+ - table-name: user_login_lockouts
+ keys:
+ - key: creator_id
+ foreign-key: user_id
+ - key: dashboards.user_id
+ foreign-key: user_id
+ - key: dashboards.folder.creator_id
+ foreign-key: user_id
+ - key: dashboards.space.creator_id
+ foreign-key: user_id
+ - key: looks.deleter_id
+ foreign-key: user_id
+ - key: looks.last_updater_id
+ foreign-key: user_id
+ - key: looks.user.id
+ foreign-key: user_id
+- table-name: lookml_dashboards
+ join:
+ - table-name: content_favorites
+ keys:
+ - key: content_favorite_id
+ foreign-key: id
+ - key: content_favorite_id
+ foreign-key: dashboard.content_favorite_id
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: content_metadata_id
+ foreign-key: dashboard.content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: dashboard.content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: dashboard.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: dashboard.folder.content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: dashboard.folder.content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: dashboard.folder.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: dashboard.space.content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: dashboard.space.content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: dashboard.space.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: folder.id
+ foreign-key: dashboard.folder.id
+ - key: folder.parent_id
+ foreign-key: dashboard.folder.id
+ - key: folder.id
+ foreign-key: dashboard.folder.parent_id
+ - key: folder.parent_id
+ foreign-key: dashboard.folder.parent_id
+ - key: model.id
+ foreign-key: dashboard.model.id
+ - key: space.id
+ foreign-key: dashboard.space.id
+ - key: space.parent_id
+ foreign-key: dashboard.space.id
+ - key: space.id
+ foreign-key: dashboard.space.parent_id
+ - key: space.parent_id
+ foreign-key: dashboard.space.parent_id
+ - key: folder.creator_id
+ foreign-key: dashboard.folder.creator_id
+ - key: space.creator_id
+ foreign-key: dashboard.folder.creator_id
+ - key: user_id
+ foreign-key: dashboard.folder.creator_id
+ - key: folder.creator_id
+ foreign-key: dashboard.space.creator_id
+ - key: space.creator_id
+ foreign-key: dashboard.space.creator_id
+ - key: user_id
+ foreign-key: dashboard.space.creator_id
+ - key: folder.creator_id
+ foreign-key: user_id
+ - key: space.creator_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: dashboard_elements
+ keys:
+ - key: content_favorite_id
+ foreign-key: look.content_favorite_id
+ - key: content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: look.folder.content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: look.folder.content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: look.folder.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: look.space.content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: look.space.content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: look.space.content_metadata_id
+ - key: folder.id
+ foreign-key: look.folder.id
+ - key: folder.parent_id
+ foreign-key: look.folder.id
+ - key: folder.id
+ foreign-key: look.folder.parent_id
+ - key: folder.parent_id
+ foreign-key: look.folder.parent_id
+ - key: folder.id
+ foreign-key: look.folder_id
+ - key: folder.parent_id
+ foreign-key: look.folder_id
+ - key: model.id
+ foreign-key: look.model.id
+ - key: space.id
+ foreign-key: look.space.id
+ - key: space.parent_id
+ foreign-key: look.space.id
+ - key: space.id
+ foreign-key: look.space.parent_id
+ - key: space.parent_id
+ foreign-key: look.space.parent_id
+ - key: folder.creator_id
+ foreign-key: look.deleter_id
+ - key: space.creator_id
+ foreign-key: look.deleter_id
+ - key: user_id
+ foreign-key: look.deleter_id
+ - key: folder.creator_id
+ foreign-key: look.folder.creator_id
+ - key: space.creator_id
+ foreign-key: look.folder.creator_id
+ - key: user_id
+ foreign-key: look.folder.creator_id
+ - key: folder.creator_id
+ foreign-key: look.last_updater_id
+ - key: space.creator_id
+ foreign-key: look.last_updater_id
+ - key: user_id
+ foreign-key: look.last_updater_id
+ - key: folder.creator_id
+ foreign-key: look.space.creator_id
+ - key: space.creator_id
+ foreign-key: look.space.creator_id
+ - key: user_id
+ foreign-key: look.space.creator_id
+ - key: folder.creator_id
+ foreign-key: look.user.id
+ - key: space.creator_id
+ foreign-key: look.user.id
+ - key: user_id
+ foreign-key: look.user.id
+ - key: folder.creator_id
+ foreign-key: look.user_id
+ - key: space.creator_id
+ foreign-key: look.user_id
+ - key: user_id
+ foreign-key: look.user_id
+ - table-name: dashboards
+ keys:
+ - key: content_favorite_id
+ foreign-key: content_favorite_id
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: folder.id
+ foreign-key: folder.id
+ - key: folder.parent_id
+ foreign-key: folder.id
+ - key: folder.id
+ foreign-key: folder.parent_id
+ - key: folder.parent_id
+ foreign-key: folder.parent_id
+ - key: model.id
+ foreign-key: model.id
+ - key: space.id
+ foreign-key: space.id
+ - key: space.parent_id
+ foreign-key: space.id
+ - key: space.id
+ foreign-key: space.parent_id
+ - key: space.parent_id
+ foreign-key: space.parent_id
+ - key: folder.creator_id
+ foreign-key: space.creator_id
+ - key: space.creator_id
+ foreign-key: space.creator_id
+ - key: user_id
+ foreign-key: space.creator_id
+ - key: folder.creator_id
+ foreign-key: user_id
+ - key: space.creator_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: folders
+ keys:
+ - key: content_favorite_id
+ foreign-key: dashboards.content_favorite_id
+ - key: content_favorite_id
+ foreign-key: looks.content_favorite_id
+ - key: content_metadata_id
+ foreign-key: dashboards.folder.content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: dashboards.folder.content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: dashboards.folder.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: dashboards.space.content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: dashboards.space.content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: dashboards.space.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: looks.content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: looks.content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: looks.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: looks.folder.content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: looks.folder.content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: looks.folder.content_metadata_id
+ - key: folder.id
+ foreign-key: id
+ - key: folder.parent_id
+ foreign-key: id
+ - key: folder.id
+ foreign-key: dashboards.folder.id
+ - key: folder.parent_id
+ foreign-key: dashboards.folder.id
+ - key: folder.id
+ foreign-key: dashboards.folder.parent_id
+ - key: folder.parent_id
+ foreign-key: dashboards.folder.parent_id
+ - key: folder.id
+ foreign-key: looks.folder.id
+ - key: folder.parent_id
+ foreign-key: looks.folder.id
+ - key: folder.id
+ foreign-key: looks.folder.parent_id
+ - key: folder.parent_id
+ foreign-key: looks.folder.parent_id
+ - key: folder.id
+ foreign-key: parent_id
+ - key: folder.parent_id
+ foreign-key: parent_id
+ - key: model.id
+ foreign-key: dashboards.model.id
+ - key: model.id
+ foreign-key: looks.model.id
+ - key: space.id
+ foreign-key: dashboards.space.id
+ - key: space.parent_id
+ foreign-key: dashboards.space.id
+ - key: space.id
+ foreign-key: dashboards.space.parent_id
+ - key: space.parent_id
+ foreign-key: dashboards.space.parent_id
+ - key: space.id
+ foreign-key: looks.space.id
+ - key: space.parent_id
+ foreign-key: looks.space.id
+ - key: space.id
+ foreign-key: looks.space.parent_id
+ - key: space.parent_id
+ foreign-key: looks.space.parent_id
+ - key: space.id
+ foreign-key: looks.space_id
+ - key: space.parent_id
+ foreign-key: looks.space_id
+ - key: folder.creator_id
+ foreign-key: creator_id
+ - key: space.creator_id
+ foreign-key: creator_id
+ - key: user_id
+ foreign-key: creator_id
+ - key: folder.creator_id
+ foreign-key: dashboards.user_id
+ - key: space.creator_id
+ foreign-key: dashboards.user_id
+ - key: user_id
+ foreign-key: dashboards.user_id
+ - key: folder.creator_id
+ foreign-key: dashboards.folder.creator_id
+ - key: space.creator_id
+ foreign-key: dashboards.folder.creator_id
+ - key: user_id
+ foreign-key: dashboards.folder.creator_id
+ - key: folder.creator_id
+ foreign-key: dashboards.space.creator_id
+ - key: space.creator_id
+ foreign-key: dashboards.space.creator_id
+ - key: user_id
+ foreign-key: dashboards.space.creator_id
+ - key: folder.creator_id
+ foreign-key: looks.deleter_id
+ - key: space.creator_id
+ foreign-key: looks.deleter_id
+ - key: user_id
+ foreign-key: looks.deleter_id
+ - key: folder.creator_id
+ foreign-key: looks.last_updater_id
+ - key: space.creator_id
+ foreign-key: looks.last_updater_id
+ - key: user_id
+ foreign-key: looks.last_updater_id
+ - key: folder.creator_id
+ foreign-key: looks.user.id
+ - key: space.creator_id
+ foreign-key: looks.user.id
+ - key: user_id
+ foreign-key: looks.user.id
+ - table-name: looks
+ keys:
+ - key: content_favorite_id
+ foreign-key: content_favorite_id
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: folder.id
+ foreign-key: folder.id
+ - key: folder.parent_id
+ foreign-key: folder.id
+ - key: folder.id
+ foreign-key: folder_id
+ - key: folder.parent_id
+ foreign-key: folder_id
+ - key: folder.id
+ foreign-key: folder.parent_id
+ - key: folder.parent_id
+ foreign-key: folder.parent_id
+ - key: model.id
+ foreign-key: model.id
+ - key: space.id
+ foreign-key: space.id
+ - key: space.parent_id
+ foreign-key: space.id
+ - key: space.id
+ foreign-key: space.parent_id
+ - key: space.parent_id
+ foreign-key: space.parent_id
+ - key: space.id
+ foreign-key: space_id
+ - key: space.parent_id
+ foreign-key: space_id
+ - key: folder.creator_id
+ foreign-key: deleter_id
+ - key: space.creator_id
+ foreign-key: deleter_id
+ - key: user_id
+ foreign-key: deleter_id
+ - key: folder.creator_id
+ foreign-key: folder.creator_id
+ - key: space.creator_id
+ foreign-key: folder.creator_id
+ - key: user_id
+ foreign-key: folder.creator_id
+ - key: folder.creator_id
+ foreign-key: user.id
+ - key: space.creator_id
+ foreign-key: user.id
+ - key: user_id
+ foreign-key: user.id
+ - key: folder.creator_id
+ foreign-key: user_id
+ - key: space.creator_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: content_metadata
+ keys:
+ - key: content_metadata_id
+ foreign-key: id
+ - key: folder.content_metadata_id
+ foreign-key: id
+ - key: space.content_metadata_id
+ foreign-key: id
+ - key: content_metadata_id
+ foreign-key: parent_id
+ - key: folder.content_metadata_id
+ foreign-key: parent_id
+ - key: space.content_metadata_id
+ foreign-key: parent_id
+ - key: space.id
+ foreign-key: space_id
+ - key: space.parent_id
+ foreign-key: space_id
+ - table-name: content_metadata_access
+ keys:
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: content_metadata_id
+ - table-name: content_views
+ keys:
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - key: folder.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: space.content_metadata_id
+ foreign-key: content_metadata_id
+ - key: folder.creator_id
+ foreign-key: user_id
+ - key: space.creator_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: users
+ keys:
+ - key: folder.id
+ foreign-key: home_folder_id
+ - key: folder.parent_id
+ foreign-key: home_folder_id
+ - key: folder.id
+ foreign-key: personal_folder_id
+ - key: folder.parent_id
+ foreign-key: personal_folder_id
+ - key: space.id
+ foreign-key: home_space_id
+ - key: space.parent_id
+ foreign-key: home_space_id
+ - key: space.id
+ foreign-key: personal_space_id
+ - key: space.parent_id
+ foreign-key: personal_space_id
+ - key: folder.creator_id
+ foreign-key: id
+ - key: space.creator_id
+ foreign-key: id
+ - key: user_id
+ foreign-key: id
+ - table-name: scheduled_plans
+ keys:
+ - key: id
+ foreign-key: lookml_dashboard_id
+ - key: folder.creator_id
+ foreign-key: user.id
+ - key: space.creator_id
+ foreign-key: user.id
+ - key: user_id
+ foreign-key: user.id
+ - key: folder.creator_id
+ foreign-key: user_id
+ - key: space.creator_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: roles
+ keys:
+ - key: model.id
+ foreign-key: model_set.models
+ - table-name: connections
+ keys:
+ - key: folder.creator_id
+ foreign-key: user_id
+ - key: space.creator_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: user_login_lockouts
+ keys:
+ - key: folder.creator_id
+ foreign-key: user_id
+ - key: space.creator_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+- table-name: looks
+ join:
+ - table-name: content_favorites
+ keys:
+ - key: content_favorite_id
+ foreign-key: id
+ - key: content_favorite_id
+ foreign-key: dashboard.content_favorite_id
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - key: content_metadata_id
+ foreign-key: dashboard.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: dashboard.folder.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: dashboard.space.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: folder.id
+ foreign-key: dashboard.folder.id
+ - key: folder_id
+ foreign-key: dashboard.folder.id
+ - key: folder.parent_id
+ foreign-key: dashboard.folder.id
+ - key: folder.id
+ foreign-key: dashboard.folder.parent_id
+ - key: folder_id
+ foreign-key: dashboard.folder.parent_id
+ - key: folder.parent_id
+ foreign-key: dashboard.folder.parent_id
+ - key: id
+ foreign-key: look_id
+ - key: id
+ foreign-key: look.id
+ - key: model.id
+ foreign-key: dashboard.model.id
+ - key: space.id
+ foreign-key: dashboard.space.id
+ - key: space.parent_id
+ foreign-key: dashboard.space.id
+ - key: space_id
+ foreign-key: dashboard.space.id
+ - key: space.id
+ foreign-key: dashboard.space.parent_id
+ - key: space.parent_id
+ foreign-key: dashboard.space.parent_id
+ - key: space_id
+ foreign-key: dashboard.space.parent_id
+ - key: deleter_id
+ foreign-key: dashboard.folder.creator_id
+ - key: folder.creator_id
+ foreign-key: dashboard.folder.creator_id
+ - key: user.id
+ foreign-key: dashboard.folder.creator_id
+ - key: user_id
+ foreign-key: dashboard.folder.creator_id
+ - key: deleter_id
+ foreign-key: dashboard.space.creator_id
+ - key: folder.creator_id
+ foreign-key: dashboard.space.creator_id
+ - key: user.id
+ foreign-key: dashboard.space.creator_id
+ - key: user_id
+ foreign-key: dashboard.space.creator_id
+ - key: deleter_id
+ foreign-key: user_id
+ - key: folder.creator_id
+ foreign-key: user_id
+ - key: user.id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: dashboard_elements
+ keys:
+ - key: content_favorite_id
+ foreign-key: look.content_favorite_id
+ - key: content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: look.folder.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: look.space.content_metadata_id
+ - key: folder.id
+ foreign-key: look.folder.id
+ - key: folder_id
+ foreign-key: look.folder.id
+ - key: folder.parent_id
+ foreign-key: look.folder.id
+ - key: folder.id
+ foreign-key: look.folder.parent_id
+ - key: folder_id
+ foreign-key: look.folder.parent_id
+ - key: folder.parent_id
+ foreign-key: look.folder.parent_id
+ - key: folder.id
+ foreign-key: look.folder_id
+ - key: folder_id
+ foreign-key: look.folder_id
+ - key: folder.parent_id
+ foreign-key: look.folder_id
+ - key: id
+ foreign-key: look.id
+ - key: id
+ foreign-key: look_id
+ - key: model.id
+ foreign-key: look.model.id
+ - key: query_id
+ foreign-key: look.query.id
+ - key: query_id
+ foreign-key: look.query_id
+ - key: query_id
+ foreign-key: query.id
+ - key: query_id
+ foreign-key: query_id
+ - key: query_id
+ foreign-key: result_maker.query.id
+ - key: query_id
+ foreign-key: result_maker.query_id
+ - key: space.id
+ foreign-key: look.space.id
+ - key: space.parent_id
+ foreign-key: look.space.id
+ - key: space_id
+ foreign-key: look.space.id
+ - key: space.id
+ foreign-key: look.space.parent_id
+ - key: space.parent_id
+ foreign-key: look.space.parent_id
+ - key: space_id
+ foreign-key: look.space.parent_id
+ - key: deleter_id
+ foreign-key: look.deleter_id
+ - key: folder.creator_id
+ foreign-key: look.deleter_id
+ - key: user.id
+ foreign-key: look.deleter_id
+ - key: user_id
+ foreign-key: look.deleter_id
+ - key: deleter_id
+ foreign-key: look.folder.creator_id
+ - key: folder.creator_id
+ foreign-key: look.folder.creator_id
+ - key: user.id
+ foreign-key: look.folder.creator_id
+ - key: user_id
+ foreign-key: look.folder.creator_id
+ - key: deleter_id
+ foreign-key: look.last_updater_id
+ - key: folder.creator_id
+ foreign-key: look.last_updater_id
+ - key: user.id
+ foreign-key: look.last_updater_id
+ - key: user_id
+ foreign-key: look.last_updater_id
+ - key: deleter_id
+ foreign-key: look.space.creator_id
+ - key: folder.creator_id
+ foreign-key: look.space.creator_id
+ - key: user.id
+ foreign-key: look.space.creator_id
+ - key: user_id
+ foreign-key: look.space.creator_id
+ - key: deleter_id
+ foreign-key: look.user.id
+ - key: folder.creator_id
+ foreign-key: look.user.id
+ - key: user.id
+ foreign-key: look.user.id
+ - key: user_id
+ foreign-key: look.user.id
+ - key: deleter_id
+ foreign-key: look.user_id
+ - key: folder.creator_id
+ foreign-key: look.user_id
+ - key: user.id
+ foreign-key: look.user_id
+ - key: user_id
+ foreign-key: look.user_id
+ - table-name: dashboards
+ keys:
+ - key: content_favorite_id
+ foreign-key: content_favorite_id
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - key: content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: folder.id
+ foreign-key: folder.id
+ - key: folder_id
+ foreign-key: folder.id
+ - key: folder.parent_id
+ foreign-key: folder.id
+ - key: folder.id
+ foreign-key: folder.parent_id
+ - key: folder_id
+ foreign-key: folder.parent_id
+ - key: folder.parent_id
+ foreign-key: folder.parent_id
+ - key: model.id
+ foreign-key: model.id
+ - key: space.id
+ foreign-key: space.id
+ - key: space.parent_id
+ foreign-key: space.id
+ - key: space_id
+ foreign-key: space.id
+ - key: space.id
+ foreign-key: space.parent_id
+ - key: space.parent_id
+ foreign-key: space.parent_id
+ - key: space_id
+ foreign-key: space.parent_id
+ - key: deleter_id
+ foreign-key: space.creator_id
+ - key: folder.creator_id
+ foreign-key: space.creator_id
+ - key: user.id
+ foreign-key: space.creator_id
+ - key: user_id
+ foreign-key: space.creator_id
+ - key: deleter_id
+ foreign-key: user_id
+ - key: folder.creator_id
+ foreign-key: user_id
+ - key: user.id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: folders
+ keys:
+ - key: content_favorite_id
+ foreign-key: dashboards.content_favorite_id
+ - key: content_favorite_id
+ foreign-key: looks.content_favorite_id
+ - key: content_metadata_id
+ foreign-key: dashboards.folder.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: dashboards.space.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: looks.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: looks.folder.content_metadata_id
+ - key: folder.id
+ foreign-key: id
+ - key: folder_id
+ foreign-key: id
+ - key: folder.parent_id
+ foreign-key: id
+ - key: folder.id
+ foreign-key: dashboards.folder.id
+ - key: folder_id
+ foreign-key: dashboards.folder.id
+ - key: folder.parent_id
+ foreign-key: dashboards.folder.id
+ - key: folder.id
+ foreign-key: dashboards.folder.parent_id
+ - key: folder_id
+ foreign-key: dashboards.folder.parent_id
+ - key: folder.parent_id
+ foreign-key: dashboards.folder.parent_id
+ - key: folder.id
+ foreign-key: looks.folder.id
+ - key: folder_id
+ foreign-key: looks.folder.id
+ - key: folder.parent_id
+ foreign-key: looks.folder.id
+ - key: folder.id
+ foreign-key: looks.folder.parent_id
+ - key: folder_id
+ foreign-key: looks.folder.parent_id
+ - key: folder.parent_id
+ foreign-key: looks.folder.parent_id
+ - key: folder.id
+ foreign-key: parent_id
+ - key: folder_id
+ foreign-key: parent_id
+ - key: folder.parent_id
+ foreign-key: parent_id
+ - key: id
+ foreign-key: looks.id
+ - key: model.id
+ foreign-key: dashboards.model.id
+ - key: model.id
+ foreign-key: looks.model.id
+ - key: query_id
+ foreign-key: looks.query_id
+ - key: space.id
+ foreign-key: dashboards.space.id
+ - key: space.parent_id
+ foreign-key: dashboards.space.id
+ - key: space_id
+ foreign-key: dashboards.space.id
+ - key: space.id
+ foreign-key: dashboards.space.parent_id
+ - key: space.parent_id
+ foreign-key: dashboards.space.parent_id
+ - key: space_id
+ foreign-key: dashboards.space.parent_id
+ - key: space.id
+ foreign-key: looks.space.id
+ - key: space.parent_id
+ foreign-key: looks.space.id
+ - key: space_id
+ foreign-key: looks.space.id
+ - key: space.id
+ foreign-key: looks.space.parent_id
+ - key: space.parent_id
+ foreign-key: looks.space.parent_id
+ - key: space_id
+ foreign-key: looks.space.parent_id
+ - key: space.id
+ foreign-key: looks.space_id
+ - key: space.parent_id
+ foreign-key: looks.space_id
+ - key: space_id
+ foreign-key: looks.space_id
+ - key: deleter_id
+ foreign-key: creator_id
+ - key: folder.creator_id
+ foreign-key: creator_id
+ - key: user.id
+ foreign-key: creator_id
+ - key: user_id
+ foreign-key: creator_id
+ - key: deleter_id
+ foreign-key: dashboards.user_id
+ - key: folder.creator_id
+ foreign-key: dashboards.user_id
+ - key: user.id
+ foreign-key: dashboards.user_id
+ - key: user_id
+ foreign-key: dashboards.user_id
+ - key: deleter_id
+ foreign-key: dashboards.folder.creator_id
+ - key: folder.creator_id
+ foreign-key: dashboards.folder.creator_id
+ - key: user.id
+ foreign-key: dashboards.folder.creator_id
+ - key: user_id
+ foreign-key: dashboards.folder.creator_id
+ - key: deleter_id
+ foreign-key: dashboards.space.creator_id
+ - key: folder.creator_id
+ foreign-key: dashboards.space.creator_id
+ - key: user.id
+ foreign-key: dashboards.space.creator_id
+ - key: user_id
+ foreign-key: dashboards.space.creator_id
+ - key: deleter_id
+ foreign-key: looks.deleter_id
+ - key: folder.creator_id
+ foreign-key: looks.deleter_id
+ - key: user.id
+ foreign-key: looks.deleter_id
+ - key: user_id
+ foreign-key: looks.deleter_id
+ - key: deleter_id
+ foreign-key: looks.last_updater_id
+ - key: folder.creator_id
+ foreign-key: looks.last_updater_id
+ - key: user.id
+ foreign-key: looks.last_updater_id
+ - key: user_id
+ foreign-key: looks.last_updater_id
+ - key: deleter_id
+ foreign-key: looks.user.id
+ - key: folder.creator_id
+ foreign-key: looks.user.id
+ - key: user.id
+ foreign-key: looks.user.id
+ - key: user_id
+ foreign-key: looks.user.id
+ - table-name: lookml_dashboards
+ keys:
+ - key: content_favorite_id
+ foreign-key: content_favorite_id
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - key: content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: folder.id
+ foreign-key: folder.id
+ - key: folder_id
+ foreign-key: folder.id
+ - key: folder.parent_id
+ foreign-key: folder.id
+ - key: folder.id
+ foreign-key: folder.parent_id
+ - key: folder_id
+ foreign-key: folder.parent_id
+ - key: folder.parent_id
+ foreign-key: folder.parent_id
+ - key: model.id
+ foreign-key: model.id
+ - key: space.id
+ foreign-key: space.id
+ - key: space.parent_id
+ foreign-key: space.id
+ - key: space_id
+ foreign-key: space.id
+ - key: space.id
+ foreign-key: space.parent_id
+ - key: space.parent_id
+ foreign-key: space.parent_id
+ - key: space_id
+ foreign-key: space.parent_id
+ - key: deleter_id
+ foreign-key: folder.creator_id
+ - key: folder.creator_id
+ foreign-key: folder.creator_id
+ - key: user.id
+ foreign-key: folder.creator_id
+ - key: user_id
+ foreign-key: folder.creator_id
+ - key: deleter_id
+ foreign-key: space.creator_id
+ - key: folder.creator_id
+ foreign-key: space.creator_id
+ - key: user.id
+ foreign-key: space.creator_id
+ - key: user_id
+ foreign-key: space.creator_id
+ - key: deleter_id
+ foreign-key: user_id
+ - key: folder.creator_id
+ foreign-key: user_id
+ - key: user.id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: content_metadata
+ keys:
+ - key: content_metadata_id
+ foreign-key: id
+ - key: content_metadata_id
+ foreign-key: parent_id
+ - key: id
+ foreign-key: look_id
+ - key: space.id
+ foreign-key: space_id
+ - key: space.parent_id
+ foreign-key: space_id
+ - key: space_id
+ foreign-key: space_id
+ - table-name: content_metadata_access
+ keys:
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - table-name: content_views
+ keys:
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - key: id
+ foreign-key: look_id
+ - key: deleter_id
+ foreign-key: user_id
+ - key: folder.creator_id
+ foreign-key: user_id
+ - key: user.id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: users
+ keys:
+ - key: folder.id
+ foreign-key: home_folder_id
+ - key: folder_id
+ foreign-key: home_folder_id
+ - key: folder.parent_id
+ foreign-key: home_folder_id
+ - key: folder.id
+ foreign-key: personal_folder_id
+ - key: folder_id
+ foreign-key: personal_folder_id
+ - key: folder.parent_id
+ foreign-key: personal_folder_id
+ - key: space.id
+ foreign-key: home_space_id
+ - key: space.parent_id
+ foreign-key: home_space_id
+ - key: space_id
+ foreign-key: home_space_id
+ - key: space.id
+ foreign-key: personal_space_id
+ - key: space.parent_id
+ foreign-key: personal_space_id
+ - key: space_id
+ foreign-key: personal_space_id
+ - key: deleter_id
+ foreign-key: id
+ - key: folder.creator_id
+ foreign-key: id
+ - key: user.id
+ foreign-key: id
+ - key: user_id
+ foreign-key: id
+ - table-name: scheduled_plans
+ keys:
+ - key: id
+ foreign-key: look_id
+ - key: query_id
+ foreign-key: query_id
+ - key: deleter_id
+ foreign-key: user.id
+ - key: folder.creator_id
+ foreign-key: user.id
+ - key: user.id
+ foreign-key: user.id
+ - key: user_id
+ foreign-key: user.id
+ - key: deleter_id
+ foreign-key: user_id
+ - key: folder.creator_id
+ foreign-key: user_id
+ - key: user.id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: roles
+ keys:
+ - key: model.id
+ foreign-key: model_set.models
+ - table-name: queries
+ keys:
+ - key: query_id
+ foreign-key: id
+ - table-name: connections
+ keys:
+ - key: deleter_id
+ foreign-key: user_id
+ - key: folder.creator_id
+ foreign-key: user_id
+ - key: user.id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: user_login_lockouts
+ keys:
+ - key: deleter_id
+ foreign-key: user_id
+ - key: folder.creator_id
+ foreign-key: user_id
+ - key: user.id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+- table-name: content_metadata
+ join:
+ - table-name: content_favorites
+ keys:
+ - key: id
+ foreign-key: content_metadata_id
+ - key: parent_id
+ foreign-key: content_metadata_id
+ - key: id
+ foreign-key: dashboard.content_metadata_id
+ - key: parent_id
+ foreign-key: dashboard.content_metadata_id
+ - key: id
+ foreign-key: dashboard.folder.content_metadata_id
+ - key: parent_id
+ foreign-key: dashboard.folder.content_metadata_id
+ - key: id
+ foreign-key: dashboard.space.content_metadata_id
+ - key: parent_id
+ foreign-key: dashboard.space.content_metadata_id
+ - key: id
+ foreign-key: look.content_metadata_id
+ - key: parent_id
+ foreign-key: look.content_metadata_id
+ - key: dashboard_id
+ foreign-key: dashboard.id
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - key: look_id
+ foreign-key: look_id
+ - key: look_id
+ foreign-key: look.id
+ - key: space_id
+ foreign-key: dashboard.space.id
+ - key: space_id
+ foreign-key: dashboard.space.parent_id
+ - table-name: content_metadata_access
+ keys:
+ - key: id
+ foreign-key: content_metadata_id
+ - key: parent_id
+ foreign-key: content_metadata_id
+ - table-name: content_views
+ keys:
+ - key: id
+ foreign-key: content_metadata_id
+ - key: parent_id
+ foreign-key: content_metadata_id
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - key: look_id
+ foreign-key: look_id
+ - table-name: dashboard_elements
+ keys:
+ - key: id
+ foreign-key: look.content_metadata_id
+ - key: parent_id
+ foreign-key: look.content_metadata_id
+ - key: id
+ foreign-key: look.folder.content_metadata_id
+ - key: parent_id
+ foreign-key: look.folder.content_metadata_id
+ - key: id
+ foreign-key: look.space.content_metadata_id
+ - key: parent_id
+ foreign-key: look.space.content_metadata_id
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - key: look_id
+ foreign-key: look.id
+ - key: look_id
+ foreign-key: look_id
+ - key: space_id
+ foreign-key: look.space.id
+ - key: space_id
+ foreign-key: look.space.parent_id
+ - table-name: dashboards
+ keys:
+ - key: id
+ foreign-key: content_metadata_id
+ - key: parent_id
+ foreign-key: content_metadata_id
+ - key: id
+ foreign-key: folder.content_metadata_id
+ - key: parent_id
+ foreign-key: folder.content_metadata_id
+ - key: id
+ foreign-key: space.content_metadata_id
+ - key: parent_id
+ foreign-key: space.content_metadata_id
+ - key: dashboard_id
+ foreign-key: id
+ - key: space_id
+ foreign-key: space.id
+ - key: space_id
+ foreign-key: space.parent_id
+ - table-name: folders
+ keys:
+ - key: id
+ foreign-key: dashboards.folder.content_metadata_id
+ - key: parent_id
+ foreign-key: dashboards.folder.content_metadata_id
+ - key: id
+ foreign-key: dashboards.space.content_metadata_id
+ - key: parent_id
+ foreign-key: dashboards.space.content_metadata_id
+ - key: id
+ foreign-key: looks.content_metadata_id
+ - key: parent_id
+ foreign-key: looks.content_metadata_id
+ - key: id
+ foreign-key: looks.folder.content_metadata_id
+ - key: parent_id
+ foreign-key: looks.folder.content_metadata_id
+ - key: dashboard_id
+ foreign-key: dashboards.id
+ - key: look_id
+ foreign-key: looks.id
+ - key: space_id
+ foreign-key: dashboards.space.id
+ - key: space_id
+ foreign-key: dashboards.space.parent_id
+ - key: space_id
+ foreign-key: looks.space.id
+ - key: space_id
+ foreign-key: looks.space.parent_id
+ - key: space_id
+ foreign-key: looks.space_id
+ - table-name: lookml_dashboards
+ keys:
+ - key: id
+ foreign-key: content_metadata_id
+ - key: parent_id
+ foreign-key: content_metadata_id
+ - key: id
+ foreign-key: folder.content_metadata_id
+ - key: parent_id
+ foreign-key: folder.content_metadata_id
+ - key: id
+ foreign-key: space.content_metadata_id
+ - key: parent_id
+ foreign-key: space.content_metadata_id
+ - key: space_id
+ foreign-key: space.id
+ - key: space_id
+ foreign-key: space.parent_id
+ - table-name: looks
+ keys:
+ - key: id
+ foreign-key: content_metadata_id
+ - key: parent_id
+ foreign-key: content_metadata_id
+ - key: look_id
+ foreign-key: id
+ - key: space_id
+ foreign-key: space.id
+ - key: space_id
+ foreign-key: space.parent_id
+ - key: space_id
+ foreign-key: space_id
+ - table-name: dashboard_filters
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - table-name: dashboard_layouts
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - table-name: scheduled_plans
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - key: look_id
+ foreign-key: look_id
+ - table-name: users
+ keys:
+ - key: space_id
+ foreign-key: home_space_id
+ - key: space_id
+ foreign-key: personal_space_id
+- table-name: content_metadata_access
+ join:
+ - table-name: content_favorites
+ keys:
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - key: content_metadata_id
+ foreign-key: dashboard.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: dashboard.folder.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: dashboard.space.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: look.content_metadata_id
+ - table-name: content_metadata
+ keys:
+ - key: content_metadata_id
+ foreign-key: id
+ - key: content_metadata_id
+ foreign-key: parent_id
+ - table-name: content_views
+ keys:
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - key: group_id
+ foreign-key: group_id
+ - table-name: dashboard_elements
+ keys:
+ - key: content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: look.folder.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: look.space.content_metadata_id
+ - table-name: dashboards
+ keys:
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - key: content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: space.content_metadata_id
+ - table-name: folders
+ keys:
+ - key: content_metadata_id
+ foreign-key: dashboards.folder.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: dashboards.space.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: looks.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: looks.folder.content_metadata_id
+ - table-name: lookml_dashboards
+ keys:
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - key: content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: space.content_metadata_id
+ - table-name: looks
+ keys:
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - table-name: groups
+ keys:
+ - key: group_id
+ foreign-key: id
+ - table-name: groups_in_group
+ keys:
+ - key: group_id
+ foreign-key: id
+ - key: group_id
+ foreign-key: parent_group_id
+ - table-name: user_attribute_group_values
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: users
+ keys:
+ - key: group_id
+ foreign-key: group_ids
+- table-name: content_views
+ join:
+ - table-name: content_favorites
+ keys:
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - key: content_metadata_id
+ foreign-key: dashboard.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: dashboard.folder.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: dashboard.space.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: dashboard_id
+ foreign-key: dashboard.id
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - key: look_id
+ foreign-key: look_id
+ - key: look_id
+ foreign-key: look.id
+ - key: user_id
+ foreign-key: dashboard.folder.creator_id
+ - key: user_id
+ foreign-key: dashboard.space.creator_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: content_metadata
+ keys:
+ - key: content_metadata_id
+ foreign-key: id
+ - key: content_metadata_id
+ foreign-key: parent_id
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - key: look_id
+ foreign-key: look_id
+ - table-name: content_metadata_access
+ keys:
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - key: group_id
+ foreign-key: group_id
+ - table-name: dashboard_elements
+ keys:
+ - key: content_metadata_id
+ foreign-key: look.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: look.folder.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: look.space.content_metadata_id
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - key: look_id
+ foreign-key: look.id
+ - key: look_id
+ foreign-key: look_id
+ - key: user_id
+ foreign-key: look.deleter_id
+ - key: user_id
+ foreign-key: look.folder.creator_id
+ - key: user_id
+ foreign-key: look.last_updater_id
+ - key: user_id
+ foreign-key: look.space.creator_id
+ - key: user_id
+ foreign-key: look.user.id
+ - key: user_id
+ foreign-key: look.user_id
+ - table-name: dashboards
+ keys:
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - key: content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: dashboard_id
+ foreign-key: id
+ - key: user_id
+ foreign-key: space.creator_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: folders
+ keys:
+ - key: content_metadata_id
+ foreign-key: dashboards.folder.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: dashboards.space.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: looks.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: looks.folder.content_metadata_id
+ - key: dashboard_id
+ foreign-key: dashboards.id
+ - key: look_id
+ foreign-key: looks.id
+ - key: user_id
+ foreign-key: creator_id
+ - key: user_id
+ foreign-key: dashboards.user_id
+ - key: user_id
+ foreign-key: dashboards.folder.creator_id
+ - key: user_id
+ foreign-key: dashboards.space.creator_id
+ - key: user_id
+ foreign-key: looks.deleter_id
+ - key: user_id
+ foreign-key: looks.last_updater_id
+ - key: user_id
+ foreign-key: looks.user.id
+ - table-name: lookml_dashboards
+ keys:
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - key: content_metadata_id
+ foreign-key: folder.content_metadata_id
+ - key: content_metadata_id
+ foreign-key: space.content_metadata_id
+ - key: user_id
+ foreign-key: folder.creator_id
+ - key: user_id
+ foreign-key: space.creator_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: looks
+ keys:
+ - key: content_metadata_id
+ foreign-key: content_metadata_id
+ - key: look_id
+ foreign-key: id
+ - key: user_id
+ foreign-key: deleter_id
+ - key: user_id
+ foreign-key: folder.creator_id
+ - key: user_id
+ foreign-key: user.id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: dashboard_filters
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - table-name: dashboard_layouts
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - table-name: scheduled_plans
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - key: look_id
+ foreign-key: look_id
+ - key: user_id
+ foreign-key: user.id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: groups
+ keys:
+ - key: group_id
+ foreign-key: id
+ - table-name: groups_in_group
+ keys:
+ - key: group_id
+ foreign-key: id
+ - key: group_id
+ foreign-key: parent_group_id
+ - table-name: user_attribute_group_values
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: users
+ keys:
+ - key: group_id
+ foreign-key: group_ids
+ - key: user_id
+ foreign-key: id
+ - table-name: connections
+ keys:
+ - key: user_id
+ foreign-key: user_id
+ - table-name: user_login_lockouts
+ keys:
+ - key: user_id
+ foreign-key: user_id
+- table-name: dashboard_filters
+ join:
+ - table-name: content_favorites
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboard.id
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - table-name: content_metadata
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - table-name: content_views
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - table-name: dashboard_elements
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - table-name: dashboard_layouts
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - table-name: dashboards
+ keys:
+ - key: dashboard_id
+ foreign-key: id
+ - table-name: folders
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboards.id
+ - table-name: scheduled_plans
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboard_id
+- table-name: dashboard_layouts
+ join:
+ - table-name: content_favorites
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboard.id
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - table-name: content_metadata
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - table-name: content_views
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - table-name: dashboard_elements
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - key: dashboard_layout_components.dashboard_element_id
+ foreign-key: id
+ - table-name: dashboard_filters
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - table-name: dashboards
+ keys:
+ - key: dashboard_id
+ foreign-key: id
+ - table-name: folders
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboards.id
+ - table-name: scheduled_plans
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboard_id
+- table-name: scheduled_plans
+ join:
+ - table-name: content_favorites
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboard.id
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - key: look_id
+ foreign-key: look_id
+ - key: look_id
+ foreign-key: look.id
+ - key: user.id
+ foreign-key: dashboard.folder.creator_id
+ - key: user_id
+ foreign-key: dashboard.folder.creator_id
+ - key: user.id
+ foreign-key: dashboard.space.creator_id
+ - key: user_id
+ foreign-key: dashboard.space.creator_id
+ - key: user.id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: content_metadata
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - key: look_id
+ foreign-key: look_id
+ - table-name: content_views
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - key: look_id
+ foreign-key: look_id
+ - key: user.id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: dashboard_elements
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - key: look_id
+ foreign-key: look.id
+ - key: look_id
+ foreign-key: look_id
+ - key: query_id
+ foreign-key: look.query.id
+ - key: query_id
+ foreign-key: look.query_id
+ - key: query_id
+ foreign-key: query.id
+ - key: query_id
+ foreign-key: query_id
+ - key: query_id
+ foreign-key: result_maker.query.id
+ - key: query_id
+ foreign-key: result_maker.query_id
+ - key: user.id
+ foreign-key: look.deleter_id
+ - key: user_id
+ foreign-key: look.deleter_id
+ - key: user.id
+ foreign-key: look.folder.creator_id
+ - key: user_id
+ foreign-key: look.folder.creator_id
+ - key: user.id
+ foreign-key: look.last_updater_id
+ - key: user_id
+ foreign-key: look.last_updater_id
+ - key: user.id
+ foreign-key: look.space.creator_id
+ - key: user_id
+ foreign-key: look.space.creator_id
+ - key: user.id
+ foreign-key: look.user.id
+ - key: user_id
+ foreign-key: look.user.id
+ - key: user.id
+ foreign-key: look.user_id
+ - key: user_id
+ foreign-key: look.user_id
+ - table-name: dashboard_filters
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - table-name: dashboard_layouts
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboard_id
+ - table-name: dashboards
+ keys:
+ - key: dashboard_id
+ foreign-key: id
+ - key: user.id
+ foreign-key: space.creator_id
+ - key: user_id
+ foreign-key: space.creator_id
+ - key: user.id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: folders
+ keys:
+ - key: dashboard_id
+ foreign-key: dashboards.id
+ - key: look_id
+ foreign-key: looks.id
+ - key: query_id
+ foreign-key: looks.query_id
+ - key: user.id
+ foreign-key: creator_id
+ - key: user_id
+ foreign-key: creator_id
+ - key: user.id
+ foreign-key: dashboards.user_id
+ - key: user_id
+ foreign-key: dashboards.user_id
+ - key: user.id
+ foreign-key: dashboards.folder.creator_id
+ - key: user_id
+ foreign-key: dashboards.folder.creator_id
+ - key: user.id
+ foreign-key: dashboards.space.creator_id
+ - key: user_id
+ foreign-key: dashboards.space.creator_id
+ - key: user.id
+ foreign-key: looks.deleter_id
+ - key: user_id
+ foreign-key: looks.deleter_id
+ - key: user.id
+ foreign-key: looks.last_updater_id
+ - key: user_id
+ foreign-key: looks.last_updater_id
+ - key: user.id
+ foreign-key: looks.user.id
+ - key: user_id
+ foreign-key: looks.user.id
+ - table-name: looks
+ keys:
+ - key: look_id
+ foreign-key: id
+ - key: query_id
+ foreign-key: query_id
+ - key: user.id
+ foreign-key: deleter_id
+ - key: user_id
+ foreign-key: deleter_id
+ - key: user.id
+ foreign-key: folder.creator_id
+ - key: user_id
+ foreign-key: folder.creator_id
+ - key: user.id
+ foreign-key: user.id
+ - key: user_id
+ foreign-key: user.id
+ - key: user.id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: lookml_dashboards
+ keys:
+ - key: lookml_dashboard_id
+ foreign-key: id
+ - key: user.id
+ foreign-key: folder.creator_id
+ - key: user_id
+ foreign-key: folder.creator_id
+ - key: user.id
+ foreign-key: space.creator_id
+ - key: user_id
+ foreign-key: space.creator_id
+ - key: user.id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: queries
+ keys:
+ - key: query_id
+ foreign-key: id
+ - table-name: connections
+ keys:
+ - key: user.id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: user_login_lockouts
+ keys:
+ - key: user.id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: users
+ keys:
+ - key: user.id
+ foreign-key: id
+ - key: user_id
+ foreign-key: id
+- table-name: users
+ join:
+ - table-name: content_favorites
+ keys:
+ - key: home_folder_id
+ foreign-key: dashboard.folder.id
+ - key: personal_folder_id
+ foreign-key: dashboard.folder.id
+ - key: home_folder_id
+ foreign-key: dashboard.folder.parent_id
+ - key: personal_folder_id
+ foreign-key: dashboard.folder.parent_id
+ - key: home_space_id
+ foreign-key: dashboard.space.id
+ - key: personal_space_id
+ foreign-key: dashboard.space.id
+ - key: home_space_id
+ foreign-key: dashboard.space.parent_id
+ - key: personal_space_id
+ foreign-key: dashboard.space.parent_id
+ - key: id
+ foreign-key: dashboard.folder.creator_id
+ - key: id
+ foreign-key: dashboard.space.creator_id
+ - key: id
+ foreign-key: user_id
+ - table-name: dashboard_elements
+ keys:
+ - key: home_folder_id
+ foreign-key: look.folder.id
+ - key: personal_folder_id
+ foreign-key: look.folder.id
+ - key: home_folder_id
+ foreign-key: look.folder.parent_id
+ - key: personal_folder_id
+ foreign-key: look.folder.parent_id
+ - key: home_folder_id
+ foreign-key: look.folder_id
+ - key: personal_folder_id
+ foreign-key: look.folder_id
+ - key: home_space_id
+ foreign-key: look.space.id
+ - key: personal_space_id
+ foreign-key: look.space.id
+ - key: home_space_id
+ foreign-key: look.space.parent_id
+ - key: personal_space_id
+ foreign-key: look.space.parent_id
+ - key: id
+ foreign-key: look.deleter_id
+ - key: id
+ foreign-key: look.folder.creator_id
+ - key: id
+ foreign-key: look.last_updater_id
+ - key: id
+ foreign-key: look.space.creator_id
+ - key: id
+ foreign-key: look.user.id
+ - key: id
+ foreign-key: look.user_id
+ - table-name: dashboards
+ keys:
+ - key: home_folder_id
+ foreign-key: folder.id
+ - key: personal_folder_id
+ foreign-key: folder.id
+ - key: home_folder_id
+ foreign-key: folder.parent_id
+ - key: personal_folder_id
+ foreign-key: folder.parent_id
+ - key: home_space_id
+ foreign-key: space.id
+ - key: personal_space_id
+ foreign-key: space.id
+ - key: home_space_id
+ foreign-key: space.parent_id
+ - key: personal_space_id
+ foreign-key: space.parent_id
+ - key: id
+ foreign-key: space.creator_id
+ - key: id
+ foreign-key: user_id
+ - table-name: folders
+ keys:
+ - key: home_folder_id
+ foreign-key: id
+ - key: personal_folder_id
+ foreign-key: id
+ - key: home_folder_id
+ foreign-key: dashboards.folder.id
+ - key: personal_folder_id
+ foreign-key: dashboards.folder.id
+ - key: home_folder_id
+ foreign-key: dashboards.folder.parent_id
+ - key: personal_folder_id
+ foreign-key: dashboards.folder.parent_id
+ - key: home_folder_id
+ foreign-key: looks.folder.id
+ - key: personal_folder_id
+ foreign-key: looks.folder.id
+ - key: home_folder_id
+ foreign-key: looks.folder.parent_id
+ - key: personal_folder_id
+ foreign-key: looks.folder.parent_id
+ - key: home_folder_id
+ foreign-key: parent_id
+ - key: personal_folder_id
+ foreign-key: parent_id
+ - key: home_space_id
+ foreign-key: dashboards.space.id
+ - key: personal_space_id
+ foreign-key: dashboards.space.id
+ - key: home_space_id
+ foreign-key: dashboards.space.parent_id
+ - key: personal_space_id
+ foreign-key: dashboards.space.parent_id
+ - key: home_space_id
+ foreign-key: looks.space.id
+ - key: personal_space_id
+ foreign-key: looks.space.id
+ - key: home_space_id
+ foreign-key: looks.space.parent_id
+ - key: personal_space_id
+ foreign-key: looks.space.parent_id
+ - key: home_space_id
+ foreign-key: looks.space_id
+ - key: personal_space_id
+ foreign-key: looks.space_id
+ - key: id
+ foreign-key: creator_id
+ - key: id
+ foreign-key: dashboards.user_id
+ - key: id
+ foreign-key: dashboards.folder.creator_id
+ - key: id
+ foreign-key: dashboards.space.creator_id
+ - key: id
+ foreign-key: looks.deleter_id
+ - key: id
+ foreign-key: looks.last_updater_id
+ - key: id
+ foreign-key: looks.user.id
+ - table-name: lookml_dashboards
+ keys:
+ - key: home_folder_id
+ foreign-key: folder.id
+ - key: personal_folder_id
+ foreign-key: folder.id
+ - key: home_folder_id
+ foreign-key: folder.parent_id
+ - key: personal_folder_id
+ foreign-key: folder.parent_id
+ - key: home_space_id
+ foreign-key: space.id
+ - key: personal_space_id
+ foreign-key: space.id
+ - key: home_space_id
+ foreign-key: space.parent_id
+ - key: personal_space_id
+ foreign-key: space.parent_id
+ - key: id
+ foreign-key: folder.creator_id
+ - key: id
+ foreign-key: space.creator_id
+ - key: id
+ foreign-key: user_id
+ - table-name: looks
+ keys:
+ - key: home_folder_id
+ foreign-key: folder.id
+ - key: personal_folder_id
+ foreign-key: folder.id
+ - key: home_folder_id
+ foreign-key: folder_id
+ - key: personal_folder_id
+ foreign-key: folder_id
+ - key: home_folder_id
+ foreign-key: folder.parent_id
+ - key: personal_folder_id
+ foreign-key: folder.parent_id
+ - key: home_space_id
+ foreign-key: space.id
+ - key: personal_space_id
+ foreign-key: space.id
+ - key: home_space_id
+ foreign-key: space.parent_id
+ - key: personal_space_id
+ foreign-key: space.parent_id
+ - key: home_space_id
+ foreign-key: space_id
+ - key: personal_space_id
+ foreign-key: space_id
+ - key: id
+ foreign-key: deleter_id
+ - key: id
+ foreign-key: folder.creator_id
+ - key: id
+ foreign-key: user.id
+ - key: id
+ foreign-key: user_id
+ - table-name: content_metadata_access
+ keys:
+ - key: group_ids
+ foreign-key: group_id
+ - table-name: content_views
+ keys:
+ - key: group_ids
+ foreign-key: group_id
+ - key: id
+ foreign-key: user_id
+ - table-name: groups
+ keys:
+ - key: group_ids
+ foreign-key: id
+ - table-name: groups_in_group
+ keys:
+ - key: group_ids
+ foreign-key: id
+ - key: group_ids
+ foreign-key: parent_group_id
+ - table-name: user_attribute_group_values
+ keys:
+ - key: group_ids
+ foreign-key: group_id
+ - table-name: versions
+ keys:
+ - key: looker_versions
+ foreign-key: looker_release_version
+ - key: looker_versions
+ foreign-key: current_version.full_version
+ - key: looker_versions
+ foreign-key: supported_versions.full_version
+ - table-name: role_groups
+ keys:
+ - key: role_ids
+ foreign-key: role_id
+ - table-name: roles
+ keys:
+ - key: role_ids
+ foreign-key: id
+ - table-name: content_metadata
+ keys:
+ - key: home_space_id
+ foreign-key: space_id
+ - key: personal_space_id
+ foreign-key: space_id
+ - table-name: user_sessions
+ keys:
+ - key: sessions.id
+ foreign-key: id
+ - table-name: connections
+ keys:
+ - key: id
+ foreign-key: user_id
+ - table-name: scheduled_plans
+ keys:
+ - key: id
+ foreign-key: user.id
+ - key: id
+ foreign-key: user_id
+ - table-name: user_login_lockouts
+ keys:
+ - key: id
+ foreign-key: user_id
+- table-name: groups
+ join:
+ - table-name: content_metadata_access
+ keys:
+ - key: id
+ foreign-key: group_id
+ - table-name: content_views
+ keys:
+ - key: id
+ foreign-key: group_id
+ - table-name: groups_in_group
+ keys:
+ - key: id
+ foreign-key: id
+ - key: id
+ foreign-key: parent_group_id
+ - table-name: user_attribute_group_values
+ keys:
+ - key: id
+ foreign-key: group_id
+ - table-name: users
+ keys:
+ - key: id
+ foreign-key: group_ids
+- table-name: groups_in_group
+ join:
+ - table-name: content_metadata_access
+ keys:
+ - key: id
+ foreign-key: group_id
+ - key: parent_group_id
+ foreign-key: group_id
+ - table-name: content_views
+ keys:
+ - key: id
+ foreign-key: group_id
+ - key: parent_group_id
+ foreign-key: group_id
+ - table-name: groups
+ keys:
+ - key: id
+ foreign-key: id
+ - key: parent_group_id
+ foreign-key: id
+ - table-name: user_attribute_group_values
+ keys:
+ - key: id
+ foreign-key: group_id
+ - key: parent_group_id
+ foreign-key: group_id
+ - table-name: users
+ keys:
+ - key: id
+ foreign-key: group_ids
+ - key: parent_group_id
+ foreign-key: group_ids
+- table-name: user_attribute_group_values
+ join:
+ - table-name: content_metadata_access
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: content_views
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: groups
+ keys:
+ - key: group_id
+ foreign-key: id
+ - table-name: groups_in_group
+ keys:
+ - key: group_id
+ foreign-key: id
+ - key: group_id
+ foreign-key: parent_group_id
+ - table-name: users
+ keys:
+ - key: group_id
+ foreign-key: group_ids
+ - table-name: user_attributes
+ keys:
+ - key: user_attribute_id
+ foreign-key: id
+- table-name: integration_hubs
+ join:
+ - table-name: integrations
+ keys:
+ - key: id
+ foreign-key: integration_hub_id
+- table-name: integrations
+ join:
+ - table-name: integration_hubs
+ keys:
+ - key: integration_hub_id
+ foreign-key: id
+- table-name: versions
+ join:
+ - table-name: users
+ keys:
+ - key: looker_release_version
+ foreign-key: looker_versions
+ - key: current_version.full_version
+ foreign-key: looker_versions
+ - key: supported_versions.full_version
+ foreign-key: looker_versions
+- table-name: model_sets
+ join:
+ - table-name: roles
+ keys:
+ - key: id
+ foreign-key: model_set.id
+ - key: id
+ foreign-key: model_set_id
+- table-name: roles
+ join:
+ - table-name: model_sets
+ keys:
+ - key: model_set.id
+ foreign-key: id
+ - key: model_set_id
+ foreign-key: id
+ - table-name: content_favorites
+ keys:
+ - key: model_set.models
+ foreign-key: dashboard.model.id
+ - table-name: dashboard_elements
+ keys:
+ - key: model_set.models
+ foreign-key: look.model.id
+ - table-name: dashboards
+ keys:
+ - key: model_set.models
+ foreign-key: model.id
+ - table-name: folders
+ keys:
+ - key: model_set.models
+ foreign-key: dashboards.model.id
+ - key: model_set.models
+ foreign-key: looks.model.id
+ - table-name: lookml_dashboards
+ keys:
+ - key: model_set.models
+ foreign-key: model.id
+ - table-name: looks
+ keys:
+ - key: model_set.models
+ foreign-key: model.id
+ - table-name: permission_sets
+ keys:
+ - key: permission_set_id
+ foreign-key: id
+ - key: id
+ foreign-key: id
+ - table-name: role_groups
+ keys:
+ - key: id
+ foreign-key: role_id
+ - table-name: users
+ keys:
+ - key: id
+ foreign-key: role_ids
+- table-name: permission_sets
+ join:
+ - table-name: roles
+ keys:
+ - key: id
+ foreign-key: permission_set_id
+ - key: id
+ foreign-key: id
+- table-name: project_files
+ join:
+ - table-name: git_branches
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: projects
+ keys:
+ - key: project_id
+ foreign-key: id
+ - table-name: workspaces
+ keys:
+ - key: project_id
+ foreign-key: projects.id
+- table-name: git_branches
+ join:
+ - table-name: project_files
+ keys:
+ - key: project_id
+ foreign-key: project_id
+ - table-name: projects
+ keys:
+ - key: project_id
+ foreign-key: id
+ - table-name: workspaces
+ keys:
+ - key: project_id
+ foreign-key: projects.id
+- table-name: projects
+ join:
+ - table-name: git_branches
+ keys:
+ - key: id
+ foreign-key: project_id
+ - table-name: project_files
+ keys:
+ - key: id
+ foreign-key: project_id
+ - table-name: workspaces
+ keys:
+ - key: id
+ foreign-key: projects.id
+- table-name: workspaces
+ join:
+ - table-name: git_branches
+ keys:
+ - key: projects.id
+ foreign-key: project_id
+ - table-name: project_files
+ keys:
+ - key: projects.id
+ foreign-key: project_id
+ - table-name: projects
+ keys:
+ - key: projects.id
+ foreign-key: id
+- table-name: queries
+ join:
+ - table-name: dashboard_elements
+ keys:
+ - key: id
+ foreign-key: look.query.id
+ - key: id
+ foreign-key: look.query_id
+ - key: id
+ foreign-key: query.id
+ - key: id
+ foreign-key: query_id
+ - key: id
+ foreign-key: result_maker.query.id
+ - key: id
+ foreign-key: result_maker.query_id
+ - table-name: folders
+ keys:
+ - key: id
+ foreign-key: looks.query_id
+ - table-name: looks
+ keys:
+ - key: id
+ foreign-key: query_id
+ - table-name: scheduled_plans
+ keys:
+ - key: id
+ foreign-key: query_id
+- table-name: role_groups
+ join:
+ - table-name: roles
+ keys:
+ - key: role_id
+ foreign-key: id
+ - table-name: users
+ keys:
+ - key: role_id
+ foreign-key: role_ids
+- table-name: user_attributes
+ join:
+ - table-name: user_attribute_group_values
+ keys:
+ - key: id
+ foreign-key: user_attribute_id
+- table-name: user_sessions
+ join:
+ - table-name: users
+ keys:
+ - key: id
+ foreign-key: sessions.id
+- table-name: connections
+ join:
+ - table-name: content_favorites
+ keys:
+ - key: user_id
+ foreign-key: dashboard.folder.creator_id
+ - key: user_id
+ foreign-key: dashboard.space.creator_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: content_views
+ keys:
+ - key: user_id
+ foreign-key: user_id
+ - table-name: dashboard_elements
+ keys:
+ - key: user_id
+ foreign-key: look.deleter_id
+ - key: user_id
+ foreign-key: look.folder.creator_id
+ - key: user_id
+ foreign-key: look.last_updater_id
+ - key: user_id
+ foreign-key: look.space.creator_id
+ - key: user_id
+ foreign-key: look.user.id
+ - key: user_id
+ foreign-key: look.user_id
+ - table-name: dashboards
+ keys:
+ - key: user_id
+ foreign-key: space.creator_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: folders
+ keys:
+ - key: user_id
+ foreign-key: creator_id
+ - key: user_id
+ foreign-key: dashboards.user_id
+ - key: user_id
+ foreign-key: dashboards.folder.creator_id
+ - key: user_id
+ foreign-key: dashboards.space.creator_id
+ - key: user_id
+ foreign-key: looks.deleter_id
+ - key: user_id
+ foreign-key: looks.last_updater_id
+ - key: user_id
+ foreign-key: looks.user.id
+ - table-name: lookml_dashboards
+ keys:
+ - key: user_id
+ foreign-key: folder.creator_id
+ - key: user_id
+ foreign-key: space.creator_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: looks
+ keys:
+ - key: user_id
+ foreign-key: deleter_id
+ - key: user_id
+ foreign-key: folder.creator_id
+ - key: user_id
+ foreign-key: user.id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: scheduled_plans
+ keys:
+ - key: user_id
+ foreign-key: user.id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: user_login_lockouts
+ keys:
+ - key: user_id
+ foreign-key: user_id
+ - table-name: users
+ keys:
+ - key: user_id
+ foreign-key: id
+- table-name: user_login_lockouts
+ join:
+ - table-name: connections
+ keys:
+ - key: user_id
+ foreign-key: user_id
+ - table-name: content_favorites
+ keys:
+ - key: user_id
+ foreign-key: dashboard.folder.creator_id
+ - key: user_id
+ foreign-key: dashboard.space.creator_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: content_views
+ keys:
+ - key: user_id
+ foreign-key: user_id
+ - table-name: dashboard_elements
+ keys:
+ - key: user_id
+ foreign-key: look.deleter_id
+ - key: user_id
+ foreign-key: look.folder.creator_id
+ - key: user_id
+ foreign-key: look.last_updater_id
+ - key: user_id
+ foreign-key: look.space.creator_id
+ - key: user_id
+ foreign-key: look.user.id
+ - key: user_id
+ foreign-key: look.user_id
+ - table-name: dashboards
+ keys:
+ - key: user_id
+ foreign-key: space.creator_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: folders
+ keys:
+ - key: user_id
+ foreign-key: creator_id
+ - key: user_id
+ foreign-key: dashboards.user_id
+ - key: user_id
+ foreign-key: dashboards.folder.creator_id
+ - key: user_id
+ foreign-key: dashboards.space.creator_id
+ - key: user_id
+ foreign-key: looks.deleter_id
+ - key: user_id
+ foreign-key: looks.last_updater_id
+ - key: user_id
+ foreign-key: looks.user.id
+ - table-name: lookml_dashboards
+ keys:
+ - key: user_id
+ foreign-key: folder.creator_id
+ - key: user_id
+ foreign-key: space.creator_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: looks
+ keys:
+ - key: user_id
+ foreign-key: deleter_id
+ - key: user_id
+ foreign-key: folder.creator_id
+ - key: user_id
+ foreign-key: user.id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: scheduled_plans
+ keys:
+ - key: user_id
+ foreign-key: user.id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: users
+ keys:
+ - key: user_id
+ foreign-key: id
diff --git a/_data/taps/schemas/looker/v1/looker-v1-tables.yml b/_data/taps/schemas/looker/v1/looker-v1-tables.yml
new file mode 100644
index 000000000..685ca0765
--- /dev/null
+++ b/_data/taps/schemas/looker/v1/looker-v1-tables.yml
@@ -0,0 +1,490 @@
+tap: looker
+version: '1'
+tables:
+- name: color_collections
+ description: 'The `{{ table.name }}` table contains information about color collections
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/color_collections.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/color-collection#get_all_color_collections
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: connections
+ description: 'The `{{ table.name }}` table contains information about connections
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/connections.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/connection#get_all_connections
+ table-details:
+ replication-method: Full Table
+ primary-key: name
+- name: content_favorites
+ description: 'The `{{ table.name }}` table contains info about users'' favorite
+ content in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/content_favorites.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/content#search_favorite_contents
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: content_metadata
+ description: 'The `{{ table.name }}` table contains information about content metadata
+ in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/content_metadata.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/content#get_all_content_metadatas
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: content_metadata_access
+ description: 'The `{{ table.name }}` table contains information about content metadata
+ access records in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/content_metadata_access.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/content#get_all_content_metadata_accesses
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: content_views
+ description: 'The `{{ table.name }}` table contains info about user content views
+ recorded in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/content_views.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/user#search_users
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: dashboards
+ description: 'The `{{ table.name }}` table contains information about all active
+ dashboards in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/dashboards.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/dashboard#get_all_dashboards
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: dashboard_elements
+ description: 'The `{{ table.name }}` table contains information about all dashboard
+ elements in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/dashboard_elements.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/dashboard#get_all_dashboardelements
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: dashboard_filters
+ description: 'The `{{ table.name }}` table contains information about all dashboard
+ filters in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/dashboard_filters.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/dashboard#get_all_dashboard_filters
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: dashboard_layouts
+ description: 'The `{{ table.name }}` table contains information about all dashboard
+ layouts in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/dashboard_layouts.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/dashboard#get_all_dashboardlayouts
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: datagroups
+ description: 'The `{{ table.name }}` table contains information about all datagroups
+ in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/datagroups.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/datagroup#get_all_datagroups
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: explores
+ description: 'The `{{ table.name }}` table contains information about LookML model
+ explores in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/explores.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/lookml-model#get_lookml_model_explore
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: folders
+ description: 'The `{{ table.name }}` table contains information about all folders
+ in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/folders.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/folder#get_all_folders
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: git_branches
+ description: 'The `{{ table.name }}` table contains info about the git branches
+ associated with projects in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/git_branches.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/project#get_all_git_branches
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - name
+ - project_id
+- name: groups
+ description: 'The `{{ table.name }}` table contains information about all groups
+ in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/groups.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/group#get_all_groups
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: groups_in_group
+ description: 'The `{{ table.name }}` table contains info about the groups contained
+ within groups in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/groups_in_group.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/group#get_all_groups_in_group
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: integrations
+ description: 'The `{{ table.name }}` table contains information about all integrations
+ in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/integrations.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/integration#get_all_integrations
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: integration_hubs
+ description: 'The `{{ table.name }}` table contains information about Integration
+ Hubs in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/integration_hubs.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/integration#get_all_integration_hubs
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: lookml_dashboards
+ description: 'The `{{ table.name }}` table contains information about LookML dashboards
+ in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/lookml_dashboards.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/dashboard#get_all_dashboards
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: lookml_models
+ description: 'The `{{ table.name }}` table contains information about all LookML
+ models in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/lookml_models.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/lookml-model#get_all_lookml_models
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - name
+ - project_name
+- name: looks
+ description: 'The `{{ table.name }}` table contains information about all active
+ looks in your {{ integration.display_name }} account. **Note**: Based on [{{ integration.display_name
+ }}''s documentation]({{ table.api-method.doc-link }}){:target="new"}, this table
+ doesn''t include soft-deleted looks.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/looks.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/look#get_all_looks
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: merge_queries
+ description: 'The `{{ table.name }}` table contains info about the merge queries
+ in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/merge_queries.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/query#get_merge_query
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: models
+ description: 'The `{{ table.name }}` table contains information about individual
+ models in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/models.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/lookml-model#get_lookml_model
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - name
+ - project_name
+- name: model_sets
+ description: 'The `{{ table.name }}` table contains info about the role model sets
+ in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/model_sets.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/role#get_all_model_sets
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: permissions
+ description: 'The `{{ table.name }}` table contains info about the permissions listed
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/permissions.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/role#get_all_permissions
+ table-details:
+ replication-method: Full Table
+ primary-key: permission
+- name: permission_sets
+ description: 'The `{{ table.name }}` table contains info about the role permission
+ sets in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/permission_sets.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/role#get_all_permission_sets
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: projects
+ description: 'The `{{ table.name }}` table contains info about the projects in your
+ {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/projects.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/project#get_all_projects
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: project_files
+ description: 'The `{{ table.name }}` table contains info about the files associated
+ with projects in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/project_files.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/project#get_all_project_files
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: queries
+ description: 'The `{{ table.name }}` table contains info about the queries that
+ exist in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/queries.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/query#get_query
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: query_history
+ description: 'The `{{ table.name }}` table contains query history data pulled from
+ {{ integration.display_name }}''s [History Explore](https://docs.looker.com/admin-options/tutorials/i__looker){:target="new"},
+ or `i__looker` database, for queries run in the past seven days.
+
+
+ To extract this data, Sttich will submit a query with [the properties in this
+ file](https://github.com/singer-io/tap-looker/blob/master/tap_looker/streams.py#L363){:target="new"}
+ to the {{ integration.display_name }} API. The results of Stitch''s query are
+ then extracted and replicated to your destination.
+
+
+ **Note**: Stitch''s {{ integration.display_name }} integration only replicates
+ the **past seven days** of query history at any given time.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/query_history.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/query#run_inline_query
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - dims_hash_key
+ - history_created_date
+ - query_id
+- name: roles
+ description: 'The `{{ table.name }}` table contains info about the user roles in
+ your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/roles.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/role#get_all_roles
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: role_groups
+ description: 'The `{{ table.name }}` table contains info about the role groups in
+ your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/role_groups.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/role#get_role_groups
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: scheduled_plans
+ description: 'The `{{ table.name }}` table contains info about all scheduled plans
+ in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/scheduled_plans.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/scheduled-plan#get_all_scheduled_plans
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: themes
+ description: 'The `{{ table.name }}` table contains info about the themes in your
+ {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/themes.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/theme#get_all_themes
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: users
+ description: 'The `{{ table.name }}` table contains info about users associated
+ with your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/users.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/user#get_all_users
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: user_attributes
+ description: 'The `{{ table.name }}` table contains info about user attributes in
+ your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/user_attributes.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/user-attribute#get_all_user_attributes
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: user_attribute_group_values
+ description: 'The `{{ table.name }}` table contains info about the values of user
+ attributes defined by user groups in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/user_attribute_group_values.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/user-attribute#get_user_attribute_group_values
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: user_attribute_values
+ description: 'The `{{ table.name }}` table contains info about the values for user
+ attributes defined in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/user_attribute_values.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/user#get_user_attribute_values
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - user_attribute_id
+ - user_id
+- name: user_login_lockouts
+ description: 'The `{{ table.name }}` table contains info about lockouts for user
+ logins associated with your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/user_login_lockouts.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/auth#get_all_user_login_lockouts
+ table-details:
+ replication-method: Full Table
+ primary-key: key
+- name: user_sessions
+ description: 'The `{{ table.name }}` table contains info about user web login sessions
+ associated with your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/user_sessions.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/user#get_all_web_login_sessions
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: versions
+ description: 'The `{{ table.name }}` table contains info about the API versions
+ supported by your {{ integration.display_name }} instance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/versions.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/config#get_apiversion
+ table-details:
+ replication-method: Full Table
+ primary-key: looker_release_version
+- name: workspaces
+ description: 'The `{{ table.name }}` table contains info about the workspaces available
+ to the user who authorized the {{ integration.display_name }} integration in Stitch.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-looker/blob/master/tap_looker/schemas/workspaces.json
+ api-method: https://docs.looker.com/reference/api-and-integration/api-reference/v3.1/workspace#get_all_workspaces
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/lookml/v1/json/model_files.json b/_data/taps/schemas/lookml/v1/json/model_files.json
new file mode 100644
index 000000000..be6bbf5b0
--- /dev/null
+++ b/_data/taps/schemas/lookml/v1/json/model_files.json
@@ -0,0 +1,90 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "content": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "download_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_owner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/lookml/v1/json/models.json b/_data/taps/schemas/lookml/v1/json/models.json
new file mode 100644
index 000000000..fcf085e8b
--- /dev/null
+++ b/_data/taps/schemas/lookml/v1/json/models.json
@@ -0,0 +1,684 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "access_grants": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "allowed_values": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_attribute": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "case_sensitive": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "connection": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "datagroups": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "max_cache_age": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql_trigger": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "explores": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "access_filters": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_attribute": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "always_filter": {
+ "additionalProperties": false,
+ "properties": {
+ "filters": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "always_join": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "cancel_grouping_fields": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "case_sensitive": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conditionally_filter": {
+ "additionalProperties": false,
+ "properties": {
+ "filters": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "unless": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "extends": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "extension": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fields": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "from": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "joins": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "fields": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "foreign_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "from": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "outer_only": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "relationship": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "required_access_grants": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "required_joins": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "sql_foreign_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql_on": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql_table_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql_where": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "persist_for": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "persist_with": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "required_access_grants": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "sql_always_having": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql_always_where": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql_table_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "symmetric_aggregates": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "fiscal_month_offset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_owner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "includes": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "map_layers": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "extents_json_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "feature_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "file": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_zoom_level": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "min_zoom_level": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "projection": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "property_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "property_label_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "named_value_formats": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "strict_value_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "persist_for": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "persist_with": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "week_start_day": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/lookml/v1/json/view_files.json b/_data/taps/schemas/lookml/v1/json/view_files.json
new file mode 100644
index 000000000..be6bbf5b0
--- /dev/null
+++ b/_data/taps/schemas/lookml/v1/json/view_files.json
@@ -0,0 +1,90 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "content": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "download_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_owner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/lookml/v1/json/views.json b/_data/taps/schemas/lookml/v1/json/views.json
new file mode 100644
index 000000000..20cbb755b
--- /dev/null
+++ b/_data/taps/schemas/lookml/v1/json/views.json
@@ -0,0 +1,2009 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "derived_table": {
+ "additionalProperties": false,
+ "properties": {
+ "cluster_keys": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "create_process": {
+ "additionalProperties": false,
+ "properties": {
+ "sql_steps": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "datagroup_trigger": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "distribution": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "distribution_style": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "explore_source": {
+ "additionalProperties": false,
+ "properties": {
+ "bind_filters": {
+ "additionalProperties": false,
+ "properties": {
+ "from_field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to_field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "columns": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "derived_columns": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "expression_custom_filter": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "filters": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "limit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sort": {
+ "additionalProperties": false,
+ "properties": {
+ "desc": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "indexes": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "partition_keys": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "persist_for": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sortkeys": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "sql": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql_create": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql_trigger_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "dimension_groups": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "alias": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "allow_fill": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bypass_suggest_restrictions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "can_filter": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "convert_tz": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "datatype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "drill_fields": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "fanout_on": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "full_suggestions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_item_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "intervals": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_by_field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "required_access_grants": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "skip_drill_filter": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql_end": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql_start": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggest_dimension": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggest_explore": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggestable": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "timeframes": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "dimensions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "actions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "form_params": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "default": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "form_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "icon_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "params": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_attribute_params": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_attribute": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "alias": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "alpha_sort": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bypass_suggest_restrictions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "can_filter": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "case": {
+ "additionalProperties": false,
+ "properties": {
+ "whens": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "case_sensitive": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "convert_tz": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "datatype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "drill_fields": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "fanout_on": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "full_suggestions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_item_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label_from_parameter": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "links": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "icon_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "map_layer_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_by_field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "primary_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "required_access_grants": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "required_fields": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "skip_drill_filter": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql_end": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql_latitude": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql_longitude": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql_start": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "style": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggest_dimension": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggest_explore": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggest_persist_for": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggestable": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggestions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tiers": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value_format_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "extends": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "extension": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "filters": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "alias": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "bypass_suggest_restrictions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "case_sensitive": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "convert_tz": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "datatype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "full_suggestions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_item_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "required_access_grants": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "required_fields": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "sql": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggest_dimension": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggest_explore": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggest_persist_for": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggestable": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggestions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "git_owner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "git_repository": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "measures": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "actions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "form_params": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "default": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "form_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "icon_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "params": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_attribute_params": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_attribute": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "alias": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "approximate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "approximate_threshold": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "can_filter": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "convert_tz": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "datatype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "direction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "drill_fields": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "fanout_on": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "filters": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "group_item_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label_from_parameter": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "links": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "icon_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "list_field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percentile": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "precision": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "required_access_grants": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "required_fields": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "sql": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql_distinct_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggest_dimension": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggest_explore": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggestable": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value_format_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parameters": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "alias": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "allowed_values": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "bypass_suggest_restrictions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "convert_tz": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "full_suggestions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "required_access_grants": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "required_fields": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "suggest_dimension": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggest_explore": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggest_persist_for": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggestable": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggestions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "required_access_grants": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "sets": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "fields": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "sha": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sql_table_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suggestions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/lookml/v1/lookml-v1-tables.yml b/_data/taps/schemas/lookml/v1/lookml-v1-tables.yml
new file mode 100644
index 000000000..60daab06e
--- /dev/null
+++ b/_data/taps/schemas/lookml/v1/lookml-v1-tables.yml
@@ -0,0 +1,65 @@
+tap: lookml
+version: '1'
+tables:
+- name: models
+ description: 'The `{{ table.name }}` table contains information about the model
+ file parse items in your GitHub account using the `lkml` filter.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-lookml/blob/master/tap_lookml/schemas/models.json
+ api-method: https://docs.github.com/en/rest/reference/search#search-code
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - git_owner
+ - git_repository
+ - path
+- name: model_files
+ description: 'The `{{ table.name }}` table contains information about model files
+ in your GitHub about using the Git API Search **filename** and **extension filters**
+ for `model` and `lkml`.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-lookml/blob/master/tap_lookml/schemas/model_files.json
+ api-method: https://docs.github.com/en/rest/reference/search#search-code
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - git_owner
+ - git_repository
+ - path
+ replication-key: last_modified
+- name: views
+ description: 'The `{{ table.name }}` table contains information about the view file
+ parse items in your GitHub account using the `lkml` filter.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-lookml/blob/master/tap_lookml/schemas/views.json
+ api-method: https://docs.github.com/en/rest/reference/search#search-code
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - git_owner
+ - git_repository
+ - path
+ replication-key: last_modified
+- name: view_files
+ description: 'The `{{ table.name }}` table contains information about view files,
+ using the Git API Search **filename** and **extension filters** for `views` and
+ `lkml`.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-lookml/blob/master/tap_lookml/schemas/view_files.json
+ api-method: https://docs.github.com/en/rest/reference/search#search-code
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - git_owner
+ - git_repository
+ - path
+ replication-key: last_modified
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/mailchimp/v1/json/automations.json b/_data/taps/schemas/mailchimp/v1/json/automations.json
new file mode 100644
index 000000000..fd02beee6
--- /dev/null
+++ b/_data/taps/schemas/mailchimp/v1/json/automations.json
@@ -0,0 +1,350 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "create_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "emails_sent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "recipients": {
+ "additionalProperties": false,
+ "properties": {
+ "list_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "list_is_active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "list_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "segment_opts": {
+ "additionalProperties": false,
+ "properties": {
+ "conditions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "condition_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "op": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "match": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "saved_segment_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "store_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "report_summary": {
+ "additionalProperties": true,
+ "properties": {
+ "click_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "open_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "opens": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscriber_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unique_opens": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "settings": {
+ "additionalProperties": false,
+ "properties": {
+ "authenticate": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "auto_footer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "from_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inline_css": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "reply_to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "use_conversation": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking": {
+ "additionalProperties": false,
+ "properties": {
+ "capsule": {
+ "additionalProperties": false,
+ "properties": {
+ "notes": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "clicktale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ecomm360": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "goal_tracking": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "google_analytics": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_clicks": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "opens": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "salesforce": {
+ "additionalProperties": false,
+ "properties": {
+ "campaign": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text_clicks": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trigger_settings": {
+ "additionalProperties": true,
+ "properties": {
+ "runtime": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "workflow_emails_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "workflow_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "workflow_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mailchimp/v1/json/campaigns.json b/_data/taps/schemas/mailchimp/v1/json/campaigns.json
new file mode 100644
index 000000000..287287a34
--- /dev/null
+++ b/_data/taps/schemas/mailchimp/v1/json/campaigns.json
@@ -0,0 +1,458 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "archive_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "create_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "delivery_status": {
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "emails_sent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "has_logo_merge_tag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "long_archive_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "needs_block_refresh": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "recipients": {
+ "additionalProperties": false,
+ "properties": {
+ "list_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "list_is_active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "list_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recipient_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "segment_opts": {
+ "additionalProperties": false,
+ "properties": {
+ "conditions": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "condition_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "op": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "match": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prebuilt_segment_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "saved_segment_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "segment_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "report_summary": {
+ "additionalProperties": false,
+ "properties": {
+ "click_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ecommerce": {
+ "additionalProperties": false,
+ "properties": {
+ "total_orders": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_revenue": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_spent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "open_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "opens": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscriber_clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unique_opens": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "resendable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "send_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "settings": {
+ "additionalProperties": false,
+ "properties": {
+ "authenticate": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "auto_footer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "auto_tweet": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "drag_and_drop": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "fb_comments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "folder_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "from_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inline_css": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "preview_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reply_to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject_line": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "template_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timewarp": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "use_conversation": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "social_card": {
+ "additionalProperties": false,
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking": {
+ "additionalProperties": false,
+ "properties": {
+ "clicktale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ecomm360": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "goal_tracking": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "google_analytics": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_clicks": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "opens": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "text_clicks": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "web_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mailchimp/v1/json/list_members.json b/_data/taps/schemas/mailchimp/v1/json/list_members.json
new file mode 100644
index 000000000..5a4c5cdbf
--- /dev/null
+++ b/_data/taps/schemas/mailchimp/v1/json/list_members.json
@@ -0,0 +1,211 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_client": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "ip_opt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ip_signup": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_changed": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "list_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location": {
+ "additionalProperties": false,
+ "properties": {
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dstoff": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "gmtoff": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "member_rating": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "merge_fields": {},
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stats": {
+ "additionalProperties": false,
+ "properties": {
+ "avg_click_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_open_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tags_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "timestamp_opt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "timestamp_signup": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "unique_email_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unsubscribe_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vip": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "web_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mailchimp/v1/json/list_segment_members.json b/_data/taps/schemas/mailchimp/v1/json/list_segment_members.json
new file mode 100644
index 000000000..f5efe7790
--- /dev/null
+++ b/_data/taps/schemas/mailchimp/v1/json/list_segment_members.json
@@ -0,0 +1,163 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_client": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "interests": {},
+ "ip_opt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ip_signup": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_changed": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "list_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location": {
+ "additionalProperties": false,
+ "properties": {
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dstoff": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "gmtoff": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "member_rating": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "merge_fields": {},
+ "stats": {
+ "additionalProperties": false,
+ "properties": {
+ "avg_click_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_open_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp_opt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "timestamp_signup": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unique_email_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vip": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mailchimp/v1/json/list_segments.json b/_data/taps/schemas/mailchimp/v1/json/list_segments.json
new file mode 100644
index 000000000..f0223b2ca
--- /dev/null
+++ b/_data/taps/schemas/mailchimp/v1/json/list_segments.json
@@ -0,0 +1,101 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "list_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "member_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "options": {
+ "additionalProperties": false,
+ "properties": {
+ "conditions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "condition_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "op": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "match": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mailchimp/v1/json/lists.json b/_data/taps/schemas/mailchimp/v1/json/lists.json
new file mode 100644
index 000000000..5ca407e5f
--- /dev/null
+++ b/_data/taps/schemas/mailchimp/v1/json/lists.json
@@ -0,0 +1,312 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "beamer_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_defaults": {
+ "additionalProperties": false,
+ "properties": {
+ "from_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "from_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "contact": {
+ "additionalProperties": false,
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "double_optin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "email_type_option": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_welcome": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "list_rating": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "marketing_permissions": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "modules": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notify_on_subscribe": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notify_on_unsubscribe": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "permission_reminder": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stats": {
+ "additionalProperties": false,
+ "properties": {
+ "avg_sub_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avg_unsub_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "campaign_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "campaign_last_sent": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cleaned_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cleaned_count_since_send": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "click_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "last_sub_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_unsub_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "member_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "member_count_since_send": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "merge_field_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "open_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "target_sub_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unsubscribe_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unsubscribe_count_since_send": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "subscribe_url_long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscribe_url_short": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "use_archive_bar": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "visibility": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "web_id": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mailchimp/v1/json/reports_email_activity.json b/_data/taps/schemas/mailchimp/v1/json/reports_email_activity.json
new file mode 100644
index 000000000..cc15b84a5
--- /dev/null
+++ b/_data/taps/schemas/mailchimp/v1/json/reports_email_activity.json
@@ -0,0 +1,63 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "list_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "list_is_active": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mailchimp/v1/json/unsubscribes.json b/_data/taps/schemas/mailchimp/v1/json/unsubscribes.json
new file mode 100644
index 000000000..ed74305f9
--- /dev/null
+++ b/_data/taps/schemas/mailchimp/v1/json/unsubscribes.json
@@ -0,0 +1,55 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "campaign_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "list_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "list_is_active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "merge_fields": {},
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "vip": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mailchimp/v1/mailchimp-v1-foreign-keys.yml b/_data/taps/schemas/mailchimp/v1/mailchimp-v1-foreign-keys.yml
new file mode 100644
index 000000000..860a44555
--- /dev/null
+++ b/_data/taps/schemas/mailchimp/v1/mailchimp-v1-foreign-keys.yml
@@ -0,0 +1,223 @@
+tap: mailchimp
+version: '1'
+keys:
+ automations_automation_id:
+ - table: automations
+ keys:
+ - id
+ campaigns_campaign_id:
+ - table: campaigns
+ keys:
+ - id
+ - table: reports_email_activity
+ keys:
+ - campaign_id
+ lists_list_id:
+ - table: automations
+ keys:
+ - recipients.list_id
+ - table: campaigns
+ keys:
+ - recipients.list_id
+ - table: list_members
+ keys:
+ - list_id
+ - table: list_segment_members
+ keys:
+ - list_id
+ - table: list_segments
+ keys:
+ - list_id
+ - table: lists
+ keys:
+ - id
+ - table: reports_email_activity
+ keys:
+ - list_id
+tables:
+- table-name: automations
+ join:
+ - table-name: campaigns
+ keys:
+ - key: recipients.list_id
+ foreign-key: recipients.list_id
+ - table-name: list_members
+ keys:
+ - key: recipients.list_id
+ foreign-key: list_id
+ - table-name: list_segment_members
+ keys:
+ - key: recipients.list_id
+ foreign-key: list_id
+ - table-name: list_segments
+ keys:
+ - key: recipients.list_id
+ foreign-key: list_id
+ - table-name: lists
+ keys:
+ - key: recipients.list_id
+ foreign-key: id
+ - table-name: reports_email_activity
+ keys:
+ - key: recipients.list_id
+ foreign-key: list_id
+- table-name: campaigns
+ join:
+ - table-name: reports_email_activity
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - key: recipients.list_id
+ foreign-key: list_id
+ - table-name: automations
+ keys:
+ - key: recipients.list_id
+ foreign-key: recipients.list_id
+ - table-name: list_members
+ keys:
+ - key: recipients.list_id
+ foreign-key: list_id
+ - table-name: list_segment_members
+ keys:
+ - key: recipients.list_id
+ foreign-key: list_id
+ - table-name: list_segments
+ keys:
+ - key: recipients.list_id
+ foreign-key: list_id
+ - table-name: lists
+ keys:
+ - key: recipients.list_id
+ foreign-key: id
+- table-name: reports_email_activity
+ join:
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - key: list_id
+ foreign-key: recipients.list_id
+ - table-name: automations
+ keys:
+ - key: list_id
+ foreign-key: recipients.list_id
+ - table-name: list_members
+ keys:
+ - key: list_id
+ foreign-key: list_id
+ - table-name: list_segment_members
+ keys:
+ - key: list_id
+ foreign-key: list_id
+ - table-name: list_segments
+ keys:
+ - key: list_id
+ foreign-key: list_id
+ - table-name: lists
+ keys:
+ - key: list_id
+ foreign-key: id
+- table-name: list_members
+ join:
+ - table-name: automations
+ keys:
+ - key: list_id
+ foreign-key: recipients.list_id
+ - table-name: campaigns
+ keys:
+ - key: list_id
+ foreign-key: recipients.list_id
+ - table-name: list_segment_members
+ keys:
+ - key: list_id
+ foreign-key: list_id
+ - table-name: list_segments
+ keys:
+ - key: list_id
+ foreign-key: list_id
+ - table-name: lists
+ keys:
+ - key: list_id
+ foreign-key: id
+ - table-name: reports_email_activity
+ keys:
+ - key: list_id
+ foreign-key: list_id
+- table-name: list_segment_members
+ join:
+ - table-name: automations
+ keys:
+ - key: list_id
+ foreign-key: recipients.list_id
+ - table-name: campaigns
+ keys:
+ - key: list_id
+ foreign-key: recipients.list_id
+ - table-name: list_members
+ keys:
+ - key: list_id
+ foreign-key: list_id
+ - table-name: list_segments
+ keys:
+ - key: list_id
+ foreign-key: list_id
+ - table-name: lists
+ keys:
+ - key: list_id
+ foreign-key: id
+ - table-name: reports_email_activity
+ keys:
+ - key: list_id
+ foreign-key: list_id
+- table-name: list_segments
+ join:
+ - table-name: automations
+ keys:
+ - key: list_id
+ foreign-key: recipients.list_id
+ - table-name: campaigns
+ keys:
+ - key: list_id
+ foreign-key: recipients.list_id
+ - table-name: list_members
+ keys:
+ - key: list_id
+ foreign-key: list_id
+ - table-name: list_segment_members
+ keys:
+ - key: list_id
+ foreign-key: list_id
+ - table-name: lists
+ keys:
+ - key: list_id
+ foreign-key: id
+ - table-name: reports_email_activity
+ keys:
+ - key: list_id
+ foreign-key: list_id
+- table-name: lists
+ join:
+ - table-name: automations
+ keys:
+ - key: id
+ foreign-key: recipients.list_id
+ - table-name: campaigns
+ keys:
+ - key: id
+ foreign-key: recipients.list_id
+ - table-name: list_members
+ keys:
+ - key: id
+ foreign-key: list_id
+ - table-name: list_segment_members
+ keys:
+ - key: id
+ foreign-key: list_id
+ - table-name: list_segments
+ keys:
+ - key: id
+ foreign-key: list_id
+ - table-name: reports_email_activity
+ keys:
+ - key: id
+ foreign-key: list_id
diff --git a/_data/taps/schemas/mailchimp/v1/mailchimp-v1-tables.yml b/_data/taps/schemas/mailchimp/v1/mailchimp-v1-tables.yml
new file mode 100644
index 000000000..cd8ab9dfb
--- /dev/null
+++ b/_data/taps/schemas/mailchimp/v1/mailchimp-v1-tables.yml
@@ -0,0 +1,108 @@
+tap: mailchimp
+version: '1'
+tables:
+- name: automations
+ description: 'The `{{ table.name }}` table contains summary info about your {{ integration.display_name
+ }} account''s automations. In {{ integration.display_name }}, an automation is
+ a feature that sends a series of emails to subscribers when triggered by a specific
+ date, activity, or event.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-mailchimp/blob/master/tap_mailchimp/schemas/automations.json
+ api-method: https://developer.mailchimp.com/documentation/mailchimp/reference/automations/#read-get_automations
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ replication-key: create_time
+- name: campaigns
+ description: 'The `{{ table.name }}` table contains info about the campaigns in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-mailchimp/blob/master/tap_mailchimp/schemas/campaigns.json
+ api-method: https://developer.mailchimp.com/documentation/mailchimp/reference/campaigns/#read-get_campaigns
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: lists
+ description: 'The `{{ table.name }}` table contains info about all the lists in
+ your {{ integration.display_name }} account. A list is also known as an audience,
+ and is where all contacts are stored and managed in {{ integration.display_name
+ }}.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-mailchimp/blob/master/tap_mailchimp/schemas/lists.json
+ api-method: https://developer.mailchimp.com/documentation/mailchimp/reference/lists/#read-get_lists
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: list_members
+ description: 'The `{{ table.name }}` table contains info about the members in a
+ specific {{ integration.display_name }} list, including currently subscribed,
+ unsubscribed, and bounced members.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-mailchimp/blob/master/tap_mailchimp/schemas/list_members.json
+ api-method: https://developer.mailchimp.com/documentation/mailchimp/reference/lists/members/#read-get_lists_list_id_members
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - id
+ - list_id
+ replication-key: last_changed
+- name: list_segments
+ description: 'The `{{ table.name }}` table contains info about the available segments
+ for a specific list.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-mailchimp/blob/master/tap_mailchimp/schemas/list_segments.json
+ api-method: https://developer.mailchimp.com/documentation/mailchimp/reference/lists/segments/#read-get_lists_list_id_segments
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ replication-key: updated_at
+- name: list_segment_members
+ description: 'The `{{ table.name }}` table contains info about members in a [saved
+ segment](https://mailchimp.com/help/save-and-manage-segments/){:target="new"}
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-mailchimp/blob/master/tap_mailchimp/schemas/list_segment_members.json
+ api-method: https://developer.mailchimp.com/documentation/mailchimp/reference/lists/segments/members/#read-get_lists_list_id_segments_segment_id_members
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: reports_email_activity
+ description: 'The `{{ table.name }}` table contains info about a member''s subscriber
+ activity in a specific campaign.
+
+ '
+ links:
+ doc-link: https://developer.mailchimp.com/documentation/mailchimp/reference/reports/email-activity/
+ singer-schema: https://github.com/singer-io/tap-mailchimp/blob/master/tap_mailchimp/schemas/reports_email_activity.json
+ api-method: https://developer.mailchimp.com/documentation/mailchimp/guides/how-to-use-batch-operations/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - action
+ - campaign_id
+ - email_id
+ - timestamp
+- name: unsubscribes
+ description: 'The `{{ table.name }}` table contains info about members who have
+ unsubscribed from a specific campaign.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-mailchimp/blob/master/tap_mailchimp/schemas/unsubscribes.json
+ api-method: https://developer.mailchimp.com/documentation/mailchimp/reference/reports/unsubscribed/#read-get_reports_campaign_id_unsubscribed
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - campaign_id
+ - email_id
diff --git a/_data/taps/schemas/mailshake/v1/json/campaigns.json b/_data/taps/schemas/mailshake/v1/json/campaigns.json
new file mode 100644
index 000000000..6da8bb553
--- /dev/null
+++ b/_data/taps/schemas/mailshake/v1/json/campaigns.json
@@ -0,0 +1,156 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "actionDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "endedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "isPaused": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "messages": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "campaignId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "isPaused": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "replyToID": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sender": {
+ "additionalProperties": false,
+ "properties": {
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fromName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mailshake/v1/json/clicks.json b/_data/taps/schemas/mailshake/v1/json/clicks.json
new file mode 100644
index 000000000..07dd998e9
--- /dev/null
+++ b/_data/taps/schemas/mailshake/v1/json/clicks.json
@@ -0,0 +1,200 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "actionDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "campaign": {
+ "additionalProperties": false,
+ "properties": {
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "isDuplicate": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "message": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "recipient": {
+ "additionalProperties": false,
+ "properties": {
+ "action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fields": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "first": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fullName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "isPaused": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mailshake/v1/json/leads.json b/_data/taps/schemas/mailshake/v1/json/leads.json
new file mode 100644
index 000000000..1959110f9
--- /dev/null
+++ b/_data/taps/schemas/mailshake/v1/json/leads.json
@@ -0,0 +1,179 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "assignedTo": {
+ "additionalProperties": false,
+ "properties": {
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fullName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "campaign": {
+ "additionalProperties": false,
+ "properties": {
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastStatusChangeDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "openedDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "recipient": {
+ "additionalProperties": false,
+ "properties": {
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fields": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "first": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fullName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mailshake/v1/json/opens.json b/_data/taps/schemas/mailshake/v1/json/opens.json
new file mode 100644
index 000000000..90d4225ea
--- /dev/null
+++ b/_data/taps/schemas/mailshake/v1/json/opens.json
@@ -0,0 +1,194 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "actionDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "campaign": {
+ "additionalProperties": false,
+ "properties": {
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "isDuplicate": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "message": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "recipient": {
+ "additionalProperties": false,
+ "properties": {
+ "action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fields": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "first": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fullName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "isPaused": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mailshake/v1/json/recipients.json b/_data/taps/schemas/mailshake/v1/json/recipients.json
new file mode 100644
index 000000000..1515e6c76
--- /dev/null
+++ b/_data/taps/schemas/mailshake/v1/json/recipients.json
@@ -0,0 +1,68 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaignId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fields": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "first": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fullName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mailshake/v1/json/replies.json b/_data/taps/schemas/mailshake/v1/json/replies.json
new file mode 100644
index 000000000..0dbe59f45
--- /dev/null
+++ b/_data/taps/schemas/mailshake/v1/json/replies.json
@@ -0,0 +1,236 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "actionDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign": {
+ "additionalProperties": false,
+ "properties": {
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "externalConversationID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "externalID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "externalRawMessageID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "message": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "plainTextBody": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rawBody": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recipient": {
+ "additionalProperties": false,
+ "properties": {
+ "action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fields": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "first": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fullName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "isPaused": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mailshake/v1/json/senders.json b/_data/taps/schemas/mailshake/v1/json/senders.json
new file mode 100644
index 000000000..bba8c8598
--- /dev/null
+++ b/_data/taps/schemas/mailshake/v1/json/senders.json
@@ -0,0 +1,42 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fromName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "offerType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mailshake/v1/json/sent_messages.json b/_data/taps/schemas/mailshake/v1/json/sent_messages.json
new file mode 100644
index 000000000..6567211b7
--- /dev/null
+++ b/_data/taps/schemas/mailshake/v1/json/sent_messages.json
@@ -0,0 +1,293 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "actionDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign": {
+ "additionalProperties": false,
+ "properties": {
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "externalConversationID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "externalID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "externalRawMessageID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "from": {
+ "additionalProperties": false,
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fullName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "message": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plainTextBody": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rawBody": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recipient": {
+ "additionalProperties": false,
+ "properties": {
+ "action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fields": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "first": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fullName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "isPaused": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fullName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mailshake/v1/json/team_members.json b/_data/taps/schemas/mailshake/v1/json/team_members.json
new file mode 100644
index 000000000..e18d944be
--- /dev/null
+++ b/_data/taps/schemas/mailshake/v1/json/team_members.json
@@ -0,0 +1,72 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "emailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fullName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "isDisabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "isTeamAdmin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "teamBlockedDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "teamID": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "teamName": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mailshake/v1/mailshake-v1-foreign-keys.yml b/_data/taps/schemas/mailshake/v1/mailshake-v1-foreign-keys.yml
new file mode 100644
index 000000000..33060624a
--- /dev/null
+++ b/_data/taps/schemas/mailshake/v1/mailshake-v1-foreign-keys.yml
@@ -0,0 +1,402 @@
+tap: mailshake
+version: '1'
+keys:
+ campaigns_id:
+ - table: campaigns
+ keys:
+ - id
+ - messages.id
+ - table: clicks
+ keys:
+ - campaign.id
+ - table: leads
+ keys:
+ - campaign.id
+ - table: opens
+ keys:
+ - campaign.id
+ - table: recipients
+ keys:
+ - campaignId
+ - table: replies
+ keys:
+ - campaign.id
+ - table: sent_messages
+ keys:
+ - campaign.id
+ _id:
+ - table: campaigns
+ keys:
+ - messages.id
+ - table: clicks
+ keys:
+ - parent.message.id
+ - table: opens
+ keys:
+ - parent.message.id
+ - table: replies
+ keys:
+ - parent.message.id
+ - table: sent_messages
+ keys:
+ - message.id
+ recipients_id:
+ - table: clicks
+ keys:
+ - recipient.id
+ - table: leads
+ keys:
+ - recipient.id
+ - table: opens
+ keys:
+ - recipient.id
+ - table: recipients
+ keys:
+ - id
+ - table: replies
+ keys:
+ - parent.message.id
+ - table: sent_messages
+ keys:
+ - recipient.id
+ senders_id:
+ - table: campaigns
+ keys:
+ - sender.id
+ - table: senders
+ keys:
+ - id
+ team_members_id:
+ - table: leads
+ keys:
+ - assignedTo.id
+ - table: team_members
+ keys:
+ - id
+tables:
+- table-name: campaigns
+ join:
+ - table-name: clicks
+ keys:
+ - key: id
+ foreign-key: campaign.id
+ - key: messages.id
+ foreign-key: campaign.id
+ - key: messages.id
+ foreign-key: parent.message.id
+ - table-name: leads
+ keys:
+ - key: id
+ foreign-key: campaign.id
+ - key: messages.id
+ foreign-key: campaign.id
+ - table-name: opens
+ keys:
+ - key: id
+ foreign-key: campaign.id
+ - key: messages.id
+ foreign-key: campaign.id
+ - key: messages.id
+ foreign-key: parent.message.id
+ - table-name: recipients
+ keys:
+ - key: id
+ foreign-key: campaignId
+ - key: messages.id
+ foreign-key: campaignId
+ - table-name: replies
+ keys:
+ - key: id
+ foreign-key: campaign.id
+ - key: messages.id
+ foreign-key: campaign.id
+ - key: messages.id
+ foreign-key: parent.message.id
+ - table-name: sent_messages
+ keys:
+ - key: id
+ foreign-key: campaign.id
+ - key: messages.id
+ foreign-key: campaign.id
+ - key: messages.id
+ foreign-key: message.id
+ - table-name: senders
+ keys:
+ - key: sender.id
+ foreign-key: id
+- table-name: clicks
+ join:
+ - table-name: campaigns
+ keys:
+ - key: campaign.id
+ foreign-key: id
+ - key: campaign.id
+ foreign-key: messages.id
+ - key: parent.message.id
+ foreign-key: messages.id
+ - table-name: leads
+ keys:
+ - key: campaign.id
+ foreign-key: campaign.id
+ - key: recipient.id
+ foreign-key: recipient.id
+ - table-name: opens
+ keys:
+ - key: campaign.id
+ foreign-key: campaign.id
+ - key: parent.message.id
+ foreign-key: parent.message.id
+ - key: recipient.id
+ foreign-key: recipient.id
+ - table-name: recipients
+ keys:
+ - key: campaign.id
+ foreign-key: campaignId
+ - key: recipient.id
+ foreign-key: id
+ - table-name: replies
+ keys:
+ - key: campaign.id
+ foreign-key: campaign.id
+ - key: parent.message.id
+ foreign-key: parent.message.id
+ - key: recipient.id
+ foreign-key: parent.message.id
+ - table-name: sent_messages
+ keys:
+ - key: campaign.id
+ foreign-key: campaign.id
+ - key: parent.message.id
+ foreign-key: message.id
+ - key: recipient.id
+ foreign-key: recipient.id
+- table-name: leads
+ join:
+ - table-name: campaigns
+ keys:
+ - key: campaign.id
+ foreign-key: id
+ - key: campaign.id
+ foreign-key: messages.id
+ - table-name: clicks
+ keys:
+ - key: campaign.id
+ foreign-key: campaign.id
+ - key: recipient.id
+ foreign-key: recipient.id
+ - table-name: opens
+ keys:
+ - key: campaign.id
+ foreign-key: campaign.id
+ - key: recipient.id
+ foreign-key: recipient.id
+ - table-name: recipients
+ keys:
+ - key: campaign.id
+ foreign-key: campaignId
+ - key: recipient.id
+ foreign-key: id
+ - table-name: replies
+ keys:
+ - key: campaign.id
+ foreign-key: campaign.id
+ - key: recipient.id
+ foreign-key: parent.message.id
+ - table-name: sent_messages
+ keys:
+ - key: campaign.id
+ foreign-key: campaign.id
+ - key: recipient.id
+ foreign-key: recipient.id
+ - table-name: team_members
+ keys:
+ - key: assignedTo.id
+ foreign-key: id
+- table-name: opens
+ join:
+ - table-name: campaigns
+ keys:
+ - key: campaign.id
+ foreign-key: id
+ - key: campaign.id
+ foreign-key: messages.id
+ - key: parent.message.id
+ foreign-key: messages.id
+ - table-name: clicks
+ keys:
+ - key: campaign.id
+ foreign-key: campaign.id
+ - key: parent.message.id
+ foreign-key: parent.message.id
+ - key: recipient.id
+ foreign-key: recipient.id
+ - table-name: leads
+ keys:
+ - key: campaign.id
+ foreign-key: campaign.id
+ - key: recipient.id
+ foreign-key: recipient.id
+ - table-name: recipients
+ keys:
+ - key: campaign.id
+ foreign-key: campaignId
+ - key: recipient.id
+ foreign-key: id
+ - table-name: replies
+ keys:
+ - key: campaign.id
+ foreign-key: campaign.id
+ - key: parent.message.id
+ foreign-key: parent.message.id
+ - key: recipient.id
+ foreign-key: parent.message.id
+ - table-name: sent_messages
+ keys:
+ - key: campaign.id
+ foreign-key: campaign.id
+ - key: parent.message.id
+ foreign-key: message.id
+ - key: recipient.id
+ foreign-key: recipient.id
+- table-name: recipients
+ join:
+ - table-name: campaigns
+ keys:
+ - key: campaignId
+ foreign-key: id
+ - key: campaignId
+ foreign-key: messages.id
+ - table-name: clicks
+ keys:
+ - key: campaignId
+ foreign-key: campaign.id
+ - key: id
+ foreign-key: recipient.id
+ - table-name: leads
+ keys:
+ - key: campaignId
+ foreign-key: campaign.id
+ - key: id
+ foreign-key: recipient.id
+ - table-name: opens
+ keys:
+ - key: campaignId
+ foreign-key: campaign.id
+ - key: id
+ foreign-key: recipient.id
+ - table-name: replies
+ keys:
+ - key: campaignId
+ foreign-key: campaign.id
+ - key: id
+ foreign-key: parent.message.id
+ - table-name: sent_messages
+ keys:
+ - key: campaignId
+ foreign-key: campaign.id
+ - key: id
+ foreign-key: recipient.id
+- table-name: replies
+ join:
+ - table-name: campaigns
+ keys:
+ - key: campaign.id
+ foreign-key: id
+ - key: campaign.id
+ foreign-key: messages.id
+ - key: parent.message.id
+ foreign-key: messages.id
+ - table-name: clicks
+ keys:
+ - key: campaign.id
+ foreign-key: campaign.id
+ - key: parent.message.id
+ foreign-key: parent.message.id
+ - key: parent.message.id
+ foreign-key: recipient.id
+ - table-name: leads
+ keys:
+ - key: campaign.id
+ foreign-key: campaign.id
+ - key: parent.message.id
+ foreign-key: recipient.id
+ - table-name: opens
+ keys:
+ - key: campaign.id
+ foreign-key: campaign.id
+ - key: parent.message.id
+ foreign-key: parent.message.id
+ - key: parent.message.id
+ foreign-key: recipient.id
+ - table-name: recipients
+ keys:
+ - key: campaign.id
+ foreign-key: campaignId
+ - key: parent.message.id
+ foreign-key: id
+ - table-name: sent_messages
+ keys:
+ - key: campaign.id
+ foreign-key: campaign.id
+ - key: parent.message.id
+ foreign-key: message.id
+ - key: parent.message.id
+ foreign-key: recipient.id
+- table-name: sent_messages
+ join:
+ - table-name: campaigns
+ keys:
+ - key: campaign.id
+ foreign-key: id
+ - key: campaign.id
+ foreign-key: messages.id
+ - key: message.id
+ foreign-key: messages.id
+ - table-name: clicks
+ keys:
+ - key: campaign.id
+ foreign-key: campaign.id
+ - key: message.id
+ foreign-key: parent.message.id
+ - key: recipient.id
+ foreign-key: recipient.id
+ - table-name: leads
+ keys:
+ - key: campaign.id
+ foreign-key: campaign.id
+ - key: recipient.id
+ foreign-key: recipient.id
+ - table-name: opens
+ keys:
+ - key: campaign.id
+ foreign-key: campaign.id
+ - key: message.id
+ foreign-key: parent.message.id
+ - key: recipient.id
+ foreign-key: recipient.id
+ - table-name: recipients
+ keys:
+ - key: campaign.id
+ foreign-key: campaignId
+ - key: recipient.id
+ foreign-key: id
+ - table-name: replies
+ keys:
+ - key: campaign.id
+ foreign-key: campaign.id
+ - key: message.id
+ foreign-key: parent.message.id
+ - key: recipient.id
+ foreign-key: parent.message.id
+- table-name: senders
+ join:
+ - table-name: campaigns
+ keys:
+ - key: id
+ foreign-key: sender.id
+- table-name: team_members
+ join:
+ - table-name: leads
+ keys:
+ - key: id
+ foreign-key: assignedTo.id
diff --git a/_data/taps/schemas/mailshake/v1/mailshake-v1-tables.yml b/_data/taps/schemas/mailshake/v1/mailshake-v1-tables.yml
new file mode 100644
index 000000000..3f932b81f
--- /dev/null
+++ b/_data/taps/schemas/mailshake/v1/mailshake-v1-tables.yml
@@ -0,0 +1,107 @@
+tap: mailshake
+version: '1'
+tables:
+- name: campaigns
+ description: 'The `{{ table.name }}` table contains info about your team''s campaigns.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-mailshake/blob/master/tap_mailshake/schemas/campaigns.json
+ api-method: https://api-docs.mailshake.com/?shell#List
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: clicks
+ description: 'The `{{ table.name }}` table contains info about recent click activity.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-mailshake/blob/master/tap_mailshake/schemas/clicks.json
+ api-method: https://api-docs.mailshake.com/?shell#Clicks
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: actionDate
+- name: leads
+ description: 'The `{{ table.name }}` table contains info about the leads in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-mailshake/blob/master/tap_mailshake/schemas/leads.json
+ api-method: https://api-docs.mailshake.com/?shell#List59
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: opens
+ description: 'The `{{ table.name }}` table contains info about recently opened emails.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-mailshake/blob/master/tap_mailshake/schemas/opens.json
+ api-method: https://api-docs.mailshake.com/?shell#Opens
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: actionDate
+- name: recipients
+ description: 'The `{{ table.name }}` table contains info about the recipients in
+ a campaign.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-mailshake/blob/master/tap_mailshake/schemas/recipients.json
+ api-method: https://api-docs.mailshake.com/?shell#List33
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: replies
+ description: 'The `{{ table.name }}` table contains info about recent replies to
+ your emails.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-mailshake/blob/master/tap_mailshake/schemas/replies.json
+ api-method: https://api-docs.mailshake.com/?shell#Replies
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: actionDate
+- name: senders
+ description: 'The `{{ table.name }}` table contains info about your team''s senders.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-mailshake/blob/master/tap_mailshake/schemas/senders.json
+ api-method: https://api-docs.mailshake.com/?shell#List75
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: sent_messages
+ description: 'The `{{ table.name }}` table contains info about recently sent emails.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-mailshake/blob/master/tap_mailshake/schemas/sent_messages.json
+ api-method: https://api-docs.mailshake.com/?shell#Sent
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: actionDate
+- name: team_members
+ description: 'The `{{ table.name }}` table contains info about the individual members
+ of your team.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-mailshake/blob/master/tap_mailshake/schemas/team_members.json
+ api-method: https://api-docs.mailshake.com/?shell#List-Members
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: teamID
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/mambu/v1/json/activities.json b/_data/taps/schemas/mambu/v1/json/activities.json
new file mode 100644
index 000000000..8c0828f09
--- /dev/null
+++ b/_data/taps/schemas/mambu/v1/json/activities.json
@@ -0,0 +1,148 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "branch_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "client_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "client_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field_changes": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "branchKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "clientKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field_change_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "loanAccountKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "loanProductKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "new_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "loan_account_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "loan_product_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "transaction_ID": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v1/json/branches.json b/_data/taps/schemas/mambu/v1/json/branches.json
new file mode 100644
index 000000000..c0ffd54c2
--- /dev/null
+++ b/_data/taps/schemas/mambu/v1/json/branches.json
@@ -0,0 +1,238 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "addresses": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "parent_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postcode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "branch_holidays": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_anually_recurring": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_field_sets": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "custom_field_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_values": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "custom_field_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v1/json/cards.json b/_data/taps/schemas/mambu/v1/json/cards.json
new file mode 100644
index 000000000..1dafd85af
--- /dev/null
+++ b/_data/taps/schemas/mambu/v1/json/cards.json
@@ -0,0 +1,18 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "deposit_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v1/json/centres.json b/_data/taps/schemas/mambu/v1/json/centres.json
new file mode 100644
index 000000000..0731ce2fe
--- /dev/null
+++ b/_data/taps/schemas/mambu/v1/json/centres.json
@@ -0,0 +1,192 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "addresses": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "parent_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postcode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "assigned_branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_field_sets": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "custom_field_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_values": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "custom_field_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "meeting_day": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v1/json/clients.json b/_data/taps/schemas/mambu/v1/json/clients.json
new file mode 100644
index 000000000..ed5d57836
--- /dev/null
+++ b/_data/taps/schemas/mambu/v1/json/clients.json
@@ -0,0 +1,352 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "activation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "addresses": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "parent_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postcode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "approved_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "assigned_centre_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "birth_date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "client_role_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "closed_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_field_sets": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "custom_field_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_values": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "custom_field_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gender": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_loan_cycle": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "home_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id_documents": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "client_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "document_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "document_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "identification_document_template_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "issuing_authority": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "valid_until": {
+ "type": [
+ "null",
+ "date"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "middle_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "migration_event_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mobile_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preferred_language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "profile_picture_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "profile_signature_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v1/json/communications.json b/_data/taps/schemas/mambu/v1/json/communications.json
new file mode 100644
index 000000000..10354c8aa
--- /dev/null
+++ b/_data/taps/schemas/mambu/v1/json/communications.json
@@ -0,0 +1,182 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "client_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_field_sets": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "custom_field_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_values": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "custom_field_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deposit_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "failure_cause": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "failure_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "loan_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "num_retries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repayment_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "send_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "sender_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "template_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v1/json/credit_arrangements.json b/_data/taps/schemas/mambu/v1/json/credit_arrangements.json
new file mode 100644
index 000000000..0f41fb77e
--- /dev/null
+++ b/_data/taps/schemas/mambu/v1/json/credit_arrangements.json
@@ -0,0 +1,146 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "approved_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "available_credit_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "consumed_credit_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_field_sets": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "custom_field_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_values": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "custom_field_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expire_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "holder_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sub_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v1/json/custom_field_sets.json b/_data/taps/schemas/mambu/v1/json/custom_field_sets.json
new file mode 100644
index 000000000..1ec7f5734
--- /dev/null
+++ b/_data/taps/schemas/mambu/v1/json/custom_field_sets.json
@@ -0,0 +1,321 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amounts": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "custom_field_product_settings": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "custom_field_encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "link_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "custom_field_selection_options": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "score": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "data_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "edit_rights": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_accessible_by_all_users": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "roles": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unique": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "value_length": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "values": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "view_rights": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_accessible_by_all_users": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "roles": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v1/json/deposit_accounts.json b/_data/taps/schemas/mambu/v1/json/deposit_accounts.json
new file mode 100644
index 000000000..16b96e61d
--- /dev/null
+++ b/_data/taps/schemas/mambu/v1/json/deposit_accounts.json
@@ -0,0 +1,634 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_holder_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accrued_amounts": {
+ "additionalProperties": false,
+ "properties": {
+ "interest_accrued": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "overdraft_interest_accrued": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "technical_overdraft_interest_accrued": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "activation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "approved_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "assigned_branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_centre_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "balances": {
+ "additionalProperties": false,
+ "properties": {
+ "available_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fees_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "hold_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "locked_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "overdraft_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "overdraft_interest_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "technical_overdraft_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "technical_overdraft_interest_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "closed_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "credit_arrangement_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_sets": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "custom_field_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_values": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "custom_field_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "interest_payment_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "interest_payment_dates": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "interest_payment_point": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "interest_rate_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_rate_terms": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_tiers": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ending_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ending_day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "internal_controls": {
+ "additionalProperties": false,
+ "properties": {
+ "max_withdrawal_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "recommended_deposit_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "target_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_account_appraisal_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_interest_calculation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_interest_stored_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_overdraft_interest_review_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_sent_to_arrears_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "linked_settlement_account_keys": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "locked_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "maturity_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "migration_event_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "overdraft_interest_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "interest_rate_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_rate_review_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate_review_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_terms": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_tiers": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ending_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ending_day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "interest_spread": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "overdraft_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "allowed_overdraft": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "overdraft_expiry_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "overdraft_limit": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "product_type_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "withholding_tax_source_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v1/json/deposit_products.json b/_data/taps/schemas/mambu/v1/json/deposit_products.json
new file mode 100644
index 000000000..6fbe74149
--- /dev/null
+++ b/_data/taps/schemas/mambu/v1/json/deposit_products.json
@@ -0,0 +1,907 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "accounting_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "activated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_arbitrary_fees": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_offset": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_overdraft": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_technical_overdraft": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "available_product_branches": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "collect_interest_when_locked": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currencies": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency_symbol_position": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "digits_after_decimal": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_base_currency": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "symbol": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "custom_field_values": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field": {
+ "additionalProperties": false,
+ "properties": {
+ "amounts": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "custom_field_selection_options": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "score": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "custom_field_set": {
+ "additionalProperties": false,
+ "properties": {
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "data_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "edit_rights": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_accessible_by_all_users": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "roles": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unique": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "value_length": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "values": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "view_rights": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_accessible_by_all_users": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "roles": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "custom_field_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_set_group_index": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "parent_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "for_all_branches": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "for_groups": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "for_individuals": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id_generator_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id_pattern": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_accrued_accounting_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_calculation_balance": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_days_in_year": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_paid_into_account": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "interest_payment_point": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "accrue_interest_after_maturity": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_terms": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_tiers": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ending_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ending_day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "line_of_credit_requirement": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "maturity_period_limit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_overdraft_limit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "min_opening_balance": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "overdraft_days_in_year": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "overdraft_interest_rate_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "accrue_interest_after_maturity": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_terms": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_tiers": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ending_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ending_day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "product_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "savings_fees": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "amortization_profile": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fee_amortization_upon_reschedule_option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fee_application": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fee_product_rules": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trigger": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "savings_product_rules": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "templates": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "withholding_tax_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v1/json/deposit_transactions.json b/_data/taps/schemas/mambu/v1/json/deposit_transactions.json
new file mode 100644
index 000000000..53df02536
--- /dev/null
+++ b/_data/taps/schemas/mambu/v1/json/deposit_transactions.json
@@ -0,0 +1,521 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_balances": {
+ "additionalProperties": false,
+ "properties": {
+ "total_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "adjustment_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "affected_amounts": {
+ "additionalProperties": false,
+ "properties": {
+ "fees_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fraction_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "funds_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "overdraft_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "overdraft_fees_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "overdraft_interest_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "technical_overdraft_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "technical_overdraft_interest_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "booking_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_transaction": {
+ "additionalProperties": false,
+ "properties": {
+ "advice": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "card_acceptor": {
+ "additionalProperties": false,
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mcc": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_authorization_reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_transaction_time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "centre_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_sets": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "custom_field_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_values": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "custom_field_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fees": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "predefined_fee_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "trigger": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "linked_loan_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "migration_event_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxes": {
+ "additionalProperties": false,
+ "properties": {
+ "tax_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "terms": {
+ "additionalProperties": false,
+ "properties": {
+ "interest_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "interest_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "overdraft_interest_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "index_interest_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "overdraft_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "overdraft_limit": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "till_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_details": {
+ "additionalProperties": false,
+ "properties": {
+ "transaction_channel_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_channel_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "transfer_details": {
+ "additionalProperties": false,
+ "properties": {
+ "linked_deposit_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "linked_loan_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v1/json/gl_accounts.json b/_data/taps/schemas/mambu/v1/json/gl_accounts.json
new file mode 100644
index 000000000..4439a342b
--- /dev/null
+++ b/_data/taps/schemas/mambu/v1/json/gl_accounts.json
@@ -0,0 +1,129 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "activated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_manual_journal_entries": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_symbol_position": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "digits_after_decimal": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_base_currency": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "symbol": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entry_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gl_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "strip_trailing_zeros": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v1/json/gl_journal_entries.json b/_data/taps/schemas/mambu/v1/json/gl_journal_entries.json
new file mode 100644
index 000000000..c8d673b0a
--- /dev/null
+++ b/_data/taps/schemas/mambu/v1/json/gl_journal_entries.json
@@ -0,0 +1,204 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "booking_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entry_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "entry_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gl_account": {
+ "additionalProperties": false,
+ "properties": {
+ "activated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_manual_journal_entries": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_symbol_position": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "digits_after_decimal": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_base_currency": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "symbol": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entry_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gl_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "strip_trailing_zeros": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "product_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v1/json/groups.json b/_data/taps/schemas/mambu/v1/json/groups.json
new file mode 100644
index 000000000..65653a9e3
--- /dev/null
+++ b/_data/taps/schemas/mambu/v1/json/groups.json
@@ -0,0 +1,290 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "addresses": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "parent_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postcode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "assigned_branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_centre_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_field_sets": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "custom_field_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_values": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "custom_field_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_members": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "client_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "roles": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_role_name_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "group_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_role_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "home_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "loan_cycle": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "migration_event_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mobile_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preferred_language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v1/json/index_rate_sources.json b/_data/taps/schemas/mambu/v1/json/index_rate_sources.json
new file mode 100644
index 000000000..edce875a3
--- /dev/null
+++ b/_data/taps/schemas/mambu/v1/json/index_rate_sources.json
@@ -0,0 +1,30 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v1/json/installments.json b/_data/taps/schemas/mambu/v1/json/installments.json
new file mode 100644
index 000000000..c7486d814
--- /dev/null
+++ b/_data/taps/schemas/mambu/v1/json/installments.json
@@ -0,0 +1,288 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "due_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fee": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "additionalProperties": false,
+ "properties": {
+ "due": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expected": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "paid": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tax": {
+ "additionalProperties": false,
+ "properties": {
+ "due": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expected": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "paid": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "interest": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "additionalProperties": false,
+ "properties": {
+ "due": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expected": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "paid": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tax": {
+ "additionalProperties": false,
+ "properties": {
+ "due": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expected": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "paid": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_paid_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "penalty": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "additionalProperties": false,
+ "properties": {
+ "due": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expected": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "paid": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tax": {
+ "additionalProperties": false,
+ "properties": {
+ "due": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expected": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "paid": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "principal": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "additionalProperties": false,
+ "properties": {
+ "due": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expected": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "paid": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "repaid_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v1/json/loan_accounts.json b/_data/taps/schemas/mambu/v1/json/loan_accounts.json
new file mode 100644
index 000000000..7cc1b2b16
--- /dev/null
+++ b/_data/taps/schemas/mambu/v1/json/loan_accounts.json
@@ -0,0 +1,1128 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_arrears_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "date_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "monthly_tolerance_day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "non_working_days_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tolerance_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tolerance_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "account_holder_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_sub_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accrued_interest": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "accrued_penalty": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "activation_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "allow_offset": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "approved_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "arrears_tolerance_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "assets": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "asset_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deposit_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "guarantor_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "guarantor_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "assigned_branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_centre_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "balances": {
+ "additionalProperties": false,
+ "properties": {
+ "fees_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fees_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fees_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_from_arrears_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_from_arrears_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_from_arrears_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "penalty_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "penalty_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "penalty_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "redraw_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "closed_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "credit_arrangement_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_sets": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "custom_field_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_values": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "custom_field_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "days_in_arrears": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "days_late": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "disbursement_details": {
+ "additionalProperties": false,
+ "properties": {
+ "disbursement_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expected_disbursement_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "fees": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "predefined_fee_encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "first_repayment_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "transaction_details": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "internal_transfer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "target_deposit_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_channel_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_channel_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding_sources": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "asset_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deposit_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "guarantor_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "guarantor_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_commission": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "share_percentage": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "future_payments_acceptance": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "guarantors": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "asset_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deposit_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "guarantor_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "guarantor_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_commission": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_from_arrears_accrued": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "accrue_interest_after_maturity": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "interest_application_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_balance_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_rate_review_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate_review_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_spread": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_appraisal_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_interest_applied_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_interest_review_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_locked_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_set_to_arrears_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_tax_rate_review_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "late_payments_recalculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "loan_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "loan_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locked_operations": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "migration_event_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "penalty_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "loan_penalty_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "penalty_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "prepayment_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "apply_interest_on_prepayment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "elements_recalculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prepayment_recalculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "principal-paid_installment_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "principal_payment_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "include_fees_in_floor_amount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "include_interest_in_floor_amount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "percentage": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_ceiling_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_floor_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_due_amount_floor": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_due_payment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "product_type_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rescheduled_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "schedule_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "default_first_repayment_due_date_offset": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fixed_days_of_month": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "grace_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "grace_period_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_custom_schedule": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "payment_plan": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to_installment": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "periodic_payment": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_repayment_interval": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "repayment_installments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "repayment_period_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "repayment_period_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repayment_schedule_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "schedule_due_dates_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "short_month_handling_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "settlement_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tranches": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "disbursement_details": {
+ "additionalProperties": false,
+ "properties": {
+ "disbursement_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expected_disbursement_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tranch_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v1/json/loan_products.json b/_data/taps/schemas/mambu/v1/json/loan_products.json
new file mode 100644
index 000000000..b0a8593df
--- /dev/null
+++ b/_data/taps/schemas/mambu/v1/json/loan_products.json
@@ -0,0 +1,976 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_initial_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_linking_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "accounting_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "activated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_arbitrary_fees": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_collateral": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_guarantors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "amortization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "apply_interest_on_prepayment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "arrears_date_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "arrears_non_working_days_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "arrears_tolerance_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "auto_create_linked_accounts": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "auto_link_accounts": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "automatically_close_dormant_accounts": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_field_values": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field": {
+ "additionalProperties": false,
+ "properties": {
+ "amounts": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "custom_field_selection_options": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "score": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "custom_field_set": {
+ "additionalProperties": false,
+ "properties": {
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "data_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "edit_rights": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_accessible_by_all_users": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "roles": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unique": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "value_length": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "values": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "view_rights": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_accessible_by_all_users": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "roles": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "custom_field_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_set_group_index": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "parent_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "days_in_year": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "declining_balance_prepayment_recalculation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_loan_amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_num_installments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "default_principal_repayment_interval": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "default_repayment_period_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "for_hybrid_groups": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "for_individuals": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "for_pure_groups": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "future_payments_acceptance": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "grace_period_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id_generator_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id_pattern": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_accrued_accounting_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_application_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_balance_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "default_interest_rate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_terms": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "is_investor_funds_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "late_payments_recalculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_of_credit_requirement": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "loan_fees": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "amoritization_profile": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amortization_interval_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "frequency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "period_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "period_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fee_application": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fee_product_rules": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trigger": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "loan_penalty_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "loan_product_rules": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "loan_product_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "loan_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_number_of_disbursement_tranches": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prepayment_acceptance": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_security_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_collateral_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_guarantors_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_investor_funds_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "required_guaranties": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "repayment_allocation_order": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "repayment_currency_rounding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repayment_elements_rounding_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repayment_period_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repayment_rescheduling_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repayment_schedule_edit_options": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "repayment_schedule_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "required_guaranty_percentage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rounding_repayment_schedule_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "schedule_due_dates_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "schedule_interest_days_count_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "settlement_options": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxes_on_fees_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "taxes_on_interest_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "taxes_on_penalty_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "templates": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v1/json/loan_repayments.json b/_data/taps/schemas/mambu/v1/json/loan_repayments.json
new file mode 100644
index 000000000..67de732d9
--- /dev/null
+++ b/_data/taps/schemas/mambu/v1/json/loan_repayments.json
@@ -0,0 +1,114 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "due_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fees_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fees_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "parent_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "penalty_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "penalty_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_fees_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_fees_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_interest_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_interest_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_penalty_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_penalty_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v1/json/loan_transactions.json b/_data/taps/schemas/mambu/v1/json/loan_transactions.json
new file mode 100644
index 000000000..950782b67
--- /dev/null
+++ b/_data/taps/schemas/mambu/v1/json/loan_transactions.json
@@ -0,0 +1,507 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_balances": {
+ "additionalProperties": false,
+ "properties": {
+ "advance_position": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "arrears_position": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expected_principal_redraw": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "redraw_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "adjustment_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "affected_amounts": {
+ "additionalProperties": false,
+ "properties": {
+ "fees_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fraction_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "funds_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "overdraft_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "overdraft_fees_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "overdraft_interest_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "technical_overdraft_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "technical_overdraft_interest_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "booking_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "centre_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_field_sets": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "custom_field_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_values": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "custom_field_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "custom_payment_amounts": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "custom_payment_amount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_on_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fees": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "predefined_fee_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "trigger": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "linked_loan_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "migration_event_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "original_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_loan_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxes": {
+ "additionalProperties": false,
+ "properties": {
+ "deferred_tax_on_interest_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_interest_from_arrears_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_on_fees_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_on_interest_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_on_penalty_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "terms": {
+ "additionalProperties": false,
+ "properties": {
+ "interest_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "index_interest_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "principal_payment_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_payment_percentage": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "till_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_details": {
+ "additionalProperties": false,
+ "properties": {
+ "transaction_channel_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_channel_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "transfer_details": {
+ "additionalProperties": false,
+ "properties": {
+ "linked_deposit_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "linked_loan_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v1/json/tasks.json b/_data/taps/schemas/mambu/v1/json/tasks.json
new file mode 100644
index 000000000..f1de5120c
--- /dev/null
+++ b/_data/taps/schemas/mambu/v1/json/tasks.json
@@ -0,0 +1,134 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "assigned_user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by_full_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by_user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_field_sets": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "custom_field_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_values": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "custom_field_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "due_date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "task_link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "task_link_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v1/json/users.json b/_data/taps/schemas/mambu/v1/json/users.json
new file mode 100644
index 000000000..027a8a385
--- /dev/null
+++ b/_data/taps/schemas/mambu/v1/json/users.json
@@ -0,0 +1,253 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "access": {
+ "additionalProperties": false,
+ "properties": {
+ "administrator_access": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "api_access": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "can_manage_all_branches": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "can_manage_entities_assigned_to_other_officers": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "credit_officer_access": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mambu_access": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "managed_branches": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "permissions": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "support_access": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "teller_access": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "assigned_branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_field_sets": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "custom_field_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_values": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "custom_field_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "home_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_logged_in_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mobile_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "two_factor_authentication": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "user_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v1/mambu-v1-foreign-keys.yml b/_data/taps/schemas/mambu/v1/mambu-v1-foreign-keys.yml
new file mode 100644
index 000000000..3fadf7c2f
--- /dev/null
+++ b/_data/taps/schemas/mambu/v1/mambu-v1-foreign-keys.yml
@@ -0,0 +1,1423 @@
+tap: mambu
+version: '1'
+keys:
+ branches_encoded_key:
+ - table: branches
+ keys:
+ - encoded_key
+ - table: centres
+ keys:
+ - assigned_branch_key
+ - table: deposit_transactions
+ keys:
+ - branch_key
+ - table: groups
+ keys:
+ - assigned_branch_key
+ - table: loan_accounts
+ keys:
+ - assigned_branch_key
+ - table: loan_transactions
+ keys:
+ - branch_key
+ - table: users
+ keys:
+ - access.managed_branches.branch_key
+ centres_encoded_key:
+ - table: centres
+ keys:
+ - encoded_key
+ - table: clients
+ keys:
+ - assigned_centre_key
+ - table: deposit_transactions
+ keys:
+ - centre_key
+ - table: groups
+ keys:
+ - assigned_centre_key
+ - table: loan_accounts
+ keys:
+ - assigned_centre_key
+ - table: loan_transactions
+ keys:
+ - centre_key
+ clients_encoded_key:
+ - table: communications
+ keys:
+ - client_key
+ - table: groups
+ keys:
+ - group_members.client_key
+ communications_encoded_key:
+ - table: communications
+ keys:
+ - encoded_key
+ credit_arrangements_encoded_key:
+ - table: credit_arrangements
+ keys:
+ - encoded_key
+ - table: deposit_accounts
+ keys:
+ - credit_arrangement_key
+ - table: loan_accounts
+ keys:
+ - credit_arrangement_key
+ custom_field_sets_custom_field_set_id:
+ - table: branches
+ keys:
+ - custom_field_sets.custom_field_set_id
+ - table: centres
+ keys:
+ - custom_field_sets.custom_field_set_id
+ - table: clients
+ keys:
+ - custom_field_sets.custom_field_set_id
+ - table: credit_arrangements
+ keys:
+ - custom_field_sets.custom_field_set_id
+ - table: communications
+ keys:
+ - custom_field_sets.custom_field_set_id
+ - table: deposit_accounts
+ keys:
+ - custom_field_sets.custom_field_set_id
+ - table: deposit_transactions
+ keys:
+ - custom_field_sets.custom_field_set_id
+ - table: groups
+ keys:
+ - custom_field_sets.custom_field_set_id
+ - table: loan_accounts
+ keys:
+ - custom_field_sets.custom_field_set_id
+ - table: loan_transactions
+ keys:
+ - custom_field_sets.custom_field_set_id
+ - table: tasks
+ keys:
+ - custom_field_sets.custom_field_set_id
+ - table: users
+ keys:
+ - custom_field_sets.custom_field_set_id
+ custom_field_sets_custom_field_id:
+ - table: branches
+ keys:
+ - custom_field_sets.custom_field_values.custom_field_id
+ - table: centres
+ keys:
+ - custom_field_sets.custom_field_values.custom_field_id
+ - table: clients
+ keys:
+ - custom_field_sets.custom_field_values.custom_field_id
+ - table: communications
+ keys:
+ - custom_field_sets.custom_field_values.custom_field_id
+ - table: credit_arrangements
+ keys:
+ - custom_field_sets.custom_field_values.custom_field_id
+ - table: custom_field_sets
+ keys:
+ - custom_fields.id
+ - table: deposit_accounts
+ keys:
+ - custom_field_sets.custom_field_values.custom_field_id
+ - table: deposit_transactions
+ keys:
+ - custom_field_sets.custom_field_values.custom_field_id
+ - table: groups
+ keys:
+ - custom_field_sets.custom_field_values.custom_field_id
+ - table: loan_accounts
+ keys:
+ - custom_field_sets.custom_field_values.custom_field_id
+ - table: loan_transactions
+ keys:
+ - custom_field_sets.custom_field_values.custom_field_id
+ - table: tasks
+ keys:
+ - custom_field_sets.custom_field_values.custom_field_id
+ - table: users
+ keys:
+ - custom_field_sets.custom_field_values.custom_field_id
+ deposit_accounts_encoded_key:
+ - table: communications
+ keys:
+ - deposit_account_key
+ deposit_products_id:
+ - table: deposit_products
+ keys:
+ - id
+ groups_encoded_key:
+ - table: communications
+ keys:
+ - group_key
+ deposit_transactions_linked_deposit_transaction_key:
+ - table: deposit_transactions
+ keys:
+ - transfer_details.linked_deposit_transaction_key
+ - table: loan_transactions
+ keys:
+ - transfer_details.linked_deposit_transaction_key
+ loan_transactions_linked_loan_transaction_key:
+ - table: deposit_transactions
+ keys:
+ - linked_loan_transaction_key
+ - table: loan_transactions
+ keys:
+ - linked_loan_transaction_key
+ loan_accounts_encoded_key:
+ - table: communications
+ keys:
+ - loan_account_key
+ loan_transactions_encoded_key:
+ - table: loan_transactions
+ keys:
+ - encoded_key
+ loan_transactions_parent_loan_transaction_key:
+ - table: loan_transactions
+ keys:
+ - parent_loan_transaction_key
+ users_encoded_key:
+ - table: clients
+ keys:
+ - assigned_user_key
+ - table: communications
+ keys:
+ - user_key
+ - sender_key
+ - table: deposit_transactions
+ keys:
+ - user_key
+ - table: groups
+ keys:
+ - assigned_user_key
+ - table: loan_accounts
+ keys:
+ - assigned_user_key
+ - table: loan_transactions
+ keys:
+ - user_key
+ - table: tasks
+ keys:
+ - created_by_user_key
+ - assigned_user_key
+tables:
+- table-name: branches
+ join:
+ - table-name: centres
+ keys:
+ - key: encoded_key
+ foreign-key: assigned_branch_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: deposit_transactions
+ keys:
+ - key: encoded_key
+ foreign-key: branch_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: groups
+ keys:
+ - key: encoded_key
+ foreign-key: assigned_branch_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: loan_accounts
+ keys:
+ - key: encoded_key
+ foreign-key: assigned_branch_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: loan_transactions
+ keys:
+ - key: encoded_key
+ foreign-key: branch_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: users
+ keys:
+ - key: encoded_key
+ foreign-key: access.managed_branches.branch_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: clients
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: credit_arrangements
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: communications
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: deposit_accounts
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: tasks
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: custom_field_sets
+ keys:
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+- table-name: centres
+ join:
+ - table-name: branches
+ keys:
+ - key: assigned_branch_key
+ foreign-key: encoded_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: deposit_transactions
+ keys:
+ - key: assigned_branch_key
+ foreign-key: branch_key
+ - key: encoded_key
+ foreign-key: centre_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: groups
+ keys:
+ - key: assigned_branch_key
+ foreign-key: assigned_branch_key
+ - key: encoded_key
+ foreign-key: assigned_centre_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: loan_accounts
+ keys:
+ - key: assigned_branch_key
+ foreign-key: assigned_branch_key
+ - key: encoded_key
+ foreign-key: assigned_centre_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: loan_transactions
+ keys:
+ - key: assigned_branch_key
+ foreign-key: branch_key
+ - key: encoded_key
+ foreign-key: centre_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: users
+ keys:
+ - key: assigned_branch_key
+ foreign-key: access.managed_branches.branch_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: clients
+ keys:
+ - key: encoded_key
+ foreign-key: assigned_centre_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: credit_arrangements
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: communications
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: deposit_accounts
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: tasks
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: custom_field_sets
+ keys:
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+- table-name: deposit_transactions
+ join:
+ - table-name: branches
+ keys:
+ - key: branch_key
+ foreign-key: encoded_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: centres
+ keys:
+ - key: branch_key
+ foreign-key: assigned_branch_key
+ - key: centre_key
+ foreign-key: encoded_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: groups
+ keys:
+ - key: branch_key
+ foreign-key: assigned_branch_key
+ - key: centre_key
+ foreign-key: assigned_centre_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_accounts
+ keys:
+ - key: branch_key
+ foreign-key: assigned_branch_key
+ - key: centre_key
+ foreign-key: assigned_centre_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_transactions
+ keys:
+ - key: branch_key
+ foreign-key: branch_key
+ - key: centre_key
+ foreign-key: centre_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: transfer_details.linked_deposit_transaction_key
+ foreign-key: transfer_details.linked_deposit_transaction_key
+ - key: linked_loan_transaction_key
+ foreign-key: linked_loan_transaction_key
+ - key: user_key
+ foreign-key: user_key
+ - table-name: users
+ keys:
+ - key: branch_key
+ foreign-key: access.managed_branches.branch_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: clients
+ keys:
+ - key: centre_key
+ foreign-key: assigned_centre_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: credit_arrangements
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: communications
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: user_key
+ foreign-key: user_key
+ - key: user_key
+ foreign-key: sender_key
+ - table-name: deposit_accounts
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: tasks
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: user_key
+ foreign-key: created_by_user_key
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: custom_field_sets
+ keys:
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+- table-name: groups
+ join:
+ - table-name: branches
+ keys:
+ - key: assigned_branch_key
+ foreign-key: encoded_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: centres
+ keys:
+ - key: assigned_branch_key
+ foreign-key: assigned_branch_key
+ - key: assigned_centre_key
+ foreign-key: encoded_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: deposit_transactions
+ keys:
+ - key: assigned_branch_key
+ foreign-key: branch_key
+ - key: assigned_centre_key
+ foreign-key: centre_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: loan_accounts
+ keys:
+ - key: assigned_branch_key
+ foreign-key: assigned_branch_key
+ - key: assigned_centre_key
+ foreign-key: assigned_centre_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_transactions
+ keys:
+ - key: assigned_branch_key
+ foreign-key: branch_key
+ - key: assigned_centre_key
+ foreign-key: centre_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: users
+ keys:
+ - key: assigned_branch_key
+ foreign-key: access.managed_branches.branch_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: clients
+ keys:
+ - key: assigned_centre_key
+ foreign-key: assigned_centre_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: communications
+ keys:
+ - key: group_members.client_key
+ foreign-key: client_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: assigned_user_key
+ foreign-key: user_key
+ - key: assigned_user_key
+ foreign-key: sender_key
+ - table-name: credit_arrangements
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: deposit_accounts
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: tasks
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: assigned_user_key
+ foreign-key: created_by_user_key
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: custom_field_sets
+ keys:
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+- table-name: loan_accounts
+ join:
+ - table-name: branches
+ keys:
+ - key: assigned_branch_key
+ foreign-key: encoded_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: centres
+ keys:
+ - key: assigned_branch_key
+ foreign-key: assigned_branch_key
+ - key: assigned_centre_key
+ foreign-key: encoded_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: deposit_transactions
+ keys:
+ - key: assigned_branch_key
+ foreign-key: branch_key
+ - key: assigned_centre_key
+ foreign-key: centre_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: groups
+ keys:
+ - key: assigned_branch_key
+ foreign-key: assigned_branch_key
+ - key: assigned_centre_key
+ foreign-key: assigned_centre_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_transactions
+ keys:
+ - key: assigned_branch_key
+ foreign-key: branch_key
+ - key: assigned_centre_key
+ foreign-key: centre_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: users
+ keys:
+ - key: assigned_branch_key
+ foreign-key: access.managed_branches.branch_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: clients
+ keys:
+ - key: assigned_centre_key
+ foreign-key: assigned_centre_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: credit_arrangements
+ keys:
+ - key: credit_arrangement_key
+ foreign-key: encoded_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: deposit_accounts
+ keys:
+ - key: credit_arrangement_key
+ foreign-key: credit_arrangement_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: communications
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: assigned_user_key
+ foreign-key: user_key
+ - key: assigned_user_key
+ foreign-key: sender_key
+ - table-name: tasks
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: assigned_user_key
+ foreign-key: created_by_user_key
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: custom_field_sets
+ keys:
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+- table-name: loan_transactions
+ join:
+ - table-name: branches
+ keys:
+ - key: branch_key
+ foreign-key: encoded_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: centres
+ keys:
+ - key: branch_key
+ foreign-key: assigned_branch_key
+ - key: centre_key
+ foreign-key: encoded_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: deposit_transactions
+ keys:
+ - key: branch_key
+ foreign-key: branch_key
+ - key: centre_key
+ foreign-key: centre_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: transfer_details.linked_deposit_transaction_key
+ foreign-key: transfer_details.linked_deposit_transaction_key
+ - key: linked_loan_transaction_key
+ foreign-key: linked_loan_transaction_key
+ - key: user_key
+ foreign-key: user_key
+ - table-name: groups
+ keys:
+ - key: branch_key
+ foreign-key: assigned_branch_key
+ - key: centre_key
+ foreign-key: assigned_centre_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_accounts
+ keys:
+ - key: branch_key
+ foreign-key: assigned_branch_key
+ - key: centre_key
+ foreign-key: assigned_centre_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: users
+ keys:
+ - key: branch_key
+ foreign-key: access.managed_branches.branch_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: clients
+ keys:
+ - key: centre_key
+ foreign-key: assigned_centre_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: credit_arrangements
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: communications
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: user_key
+ foreign-key: user_key
+ - key: user_key
+ foreign-key: sender_key
+ - table-name: deposit_accounts
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: tasks
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: user_key
+ foreign-key: created_by_user_key
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: custom_field_sets
+ keys:
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+- table-name: users
+ join:
+ - table-name: branches
+ keys:
+ - key: access.managed_branches.branch_key
+ foreign-key: encoded_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: centres
+ keys:
+ - key: access.managed_branches.branch_key
+ foreign-key: assigned_branch_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: deposit_transactions
+ keys:
+ - key: access.managed_branches.branch_key
+ foreign-key: branch_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: groups
+ keys:
+ - key: access.managed_branches.branch_key
+ foreign-key: assigned_branch_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: loan_accounts
+ keys:
+ - key: access.managed_branches.branch_key
+ foreign-key: assigned_branch_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: loan_transactions
+ keys:
+ - key: access.managed_branches.branch_key
+ foreign-key: branch_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: clients
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: credit_arrangements
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: communications
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: deposit_accounts
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: tasks
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: custom_field_sets
+ keys:
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+- table-name: clients
+ join:
+ - table-name: centres
+ keys:
+ - key: assigned_centre_key
+ foreign-key: encoded_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: deposit_transactions
+ keys:
+ - key: assigned_centre_key
+ foreign-key: centre_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: groups
+ keys:
+ - key: assigned_centre_key
+ foreign-key: assigned_centre_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_accounts
+ keys:
+ - key: assigned_centre_key
+ foreign-key: assigned_centre_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_transactions
+ keys:
+ - key: assigned_centre_key
+ foreign-key: centre_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: branches
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: credit_arrangements
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: communications
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: assigned_user_key
+ foreign-key: user_key
+ - key: assigned_user_key
+ foreign-key: sender_key
+ - table-name: deposit_accounts
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: tasks
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: assigned_user_key
+ foreign-key: created_by_user_key
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: users
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: custom_field_sets
+ keys:
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+- table-name: communications
+ join:
+ - table-name: groups
+ keys:
+ - key: client_key
+ foreign-key: group_members.client_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: user_key
+ foreign-key: assigned_user_key
+ - key: sender_key
+ foreign-key: assigned_user_key
+ - table-name: branches
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: centres
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: clients
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: user_key
+ foreign-key: assigned_user_key
+ - key: sender_key
+ foreign-key: assigned_user_key
+ - table-name: credit_arrangements
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: deposit_accounts
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: deposit_transactions
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: user_key
+ foreign-key: user_key
+ - key: sender_key
+ foreign-key: user_key
+ - table-name: loan_accounts
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: user_key
+ foreign-key: assigned_user_key
+ - key: sender_key
+ foreign-key: assigned_user_key
+ - table-name: loan_transactions
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: user_key
+ foreign-key: user_key
+ - key: sender_key
+ foreign-key: user_key
+ - table-name: tasks
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: user_key
+ foreign-key: created_by_user_key
+ - key: sender_key
+ foreign-key: created_by_user_key
+ - key: user_key
+ foreign-key: assigned_user_key
+ - key: sender_key
+ foreign-key: assigned_user_key
+ - table-name: users
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: custom_field_sets
+ keys:
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+- table-name: credit_arrangements
+ join:
+ - table-name: deposit_accounts
+ keys:
+ - key: encoded_key
+ foreign-key: credit_arrangement_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: loan_accounts
+ keys:
+ - key: encoded_key
+ foreign-key: credit_arrangement_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: branches
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: centres
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: clients
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: communications
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: deposit_transactions
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: groups
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: loan_transactions
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: tasks
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: users
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: custom_field_sets
+ keys:
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+- table-name: deposit_accounts
+ join:
+ - table-name: credit_arrangements
+ keys:
+ - key: credit_arrangement_key
+ foreign-key: encoded_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: loan_accounts
+ keys:
+ - key: credit_arrangement_key
+ foreign-key: credit_arrangement_key
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: branches
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: centres
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: clients
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: communications
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: deposit_transactions
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: groups
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: loan_transactions
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: tasks
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: users
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: custom_field_sets
+ keys:
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+- table-name: tasks
+ join:
+ - table-name: branches
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: centres
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: clients
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: created_by_user_key
+ foreign-key: assigned_user_key
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: credit_arrangements
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: communications
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: created_by_user_key
+ foreign-key: user_key
+ - key: assigned_user_key
+ foreign-key: user_key
+ - key: created_by_user_key
+ foreign-key: sender_key
+ - key: assigned_user_key
+ foreign-key: sender_key
+ - table-name: deposit_accounts
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: deposit_transactions
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: created_by_user_key
+ foreign-key: user_key
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: groups
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: created_by_user_key
+ foreign-key: assigned_user_key
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_accounts
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: created_by_user_key
+ foreign-key: assigned_user_key
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_transactions
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - key: created_by_user_key
+ foreign-key: user_key
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: users
+ keys:
+ - key: custom_field_sets.custom_field_set_id
+ foreign-key: custom_field_sets.custom_field_set_id
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: custom_field_sets
+ keys:
+ - key: custom_field_sets.custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+- table-name: custom_field_sets
+ join:
+ - table-name: branches
+ keys:
+ - key: custom_fields.id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: centres
+ keys:
+ - key: custom_fields.id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: clients
+ keys:
+ - key: custom_fields.id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: communications
+ keys:
+ - key: custom_fields.id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: credit_arrangements
+ keys:
+ - key: custom_fields.id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: deposit_accounts
+ keys:
+ - key: custom_fields.id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: deposit_transactions
+ keys:
+ - key: custom_fields.id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: groups
+ keys:
+ - key: custom_fields.id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: loan_accounts
+ keys:
+ - key: custom_fields.id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: loan_transactions
+ keys:
+ - key: custom_fields.id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: tasks
+ keys:
+ - key: custom_fields.id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
+ - table-name: users
+ keys:
+ - key: custom_fields.id
+ foreign-key: custom_field_sets.custom_field_values.custom_field_id
diff --git a/_data/taps/schemas/mambu/v1/mambu-v1-tables.yml b/_data/taps/schemas/mambu/v1/mambu-v1-tables.yml
new file mode 100644
index 000000000..a8a25db1c
--- /dev/null
+++ b/_data/taps/schemas/mambu/v1/mambu-v1-tables.yml
@@ -0,0 +1,265 @@
+tap: mambu
+version: '1'
+tables:
+- name: activities
+ description: 'This table contains information about activities.
+
+ '
+ links:
+ doc-link: https://support.mambu.com/docs/activities-api
+ singer-schema: https://github.com/singer-io/tap-mambu/tree/v1.3.3/tap_mambu/schemas/activities.json
+ api-method: https://api.mambu.com/v1/#activities-get-all-activities
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: encoded_key
+ replication-key: timestamp
+- name: branches
+ description: 'This table contains information about branches.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/tree/v1.3.3/tap_mambu/schemas/branches.json
+ api-method: https://api.mambu.com/?http#branches-getall
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: cards
+ description: 'This table contains information about cards.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/tree/v1.3.3/tap_mambu/schemas/cards.json
+ api-method: https://api.mambu.com/?http#depositaccounts-getallcards
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - deposit_id
+ - reference_token
+ parent-table: deposit_account
+- name: centres
+ description: 'This table contains information about centres.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/tree/v1.3.3/tap_mambu/schemas/centres.json
+ api-method: https://api.mambu.com/?http#centres-getall
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: clients
+ description: 'This table contains information about clients.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/tree/v1.3.3/tap_mambu/schemas/clients.json
+ api-method: https://api.mambu.com/?http#clients-search
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: communications
+ description: 'This table contains information about communications.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/tree/v1.3.3/tap_mambu/schemas/communications.json
+ api-method: https://api.mambu.com/?http#communications-search
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: encoded_key
+ replication-key: creation_date
+- name: credit_arrangements
+ description: 'This table contains information about credit arrangements.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/tree/v1.3.3/tap_mambu/schemas/credit_arrangements.json
+ api-method: https://api.mambu.com/?http#creditarrangements-getall
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: custom_field_sets
+ description: 'This table contains information about custom field sets.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/tree/v1.3.3/tap_mambu/schemas/custom_field_sets.json
+ api-method: https://api.mambu.com/v1/#custom-field-sets-get-custom-field-sets
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: deposit_accounts
+ description: 'This table contains information about deposit accounts.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/tree/v1.3.3/tap_mambu/schemas/deposit_accounts.json
+ api-method: https://api.mambu.com/?http#depositaccounts-getall
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: deposit_products
+ description: 'This table contains information about deposit (savings) products.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/tree/v1.3.3/tap_mambu/schemas/deposit_products.json
+ api-method: https://api.mambu.com/v1/#savings-products-get-savings-products
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: deposit_transactions
+ description: 'This table contains information about deposit transactions.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/tree/v1.3.3/tap_mambu/schemas/deposit_transactions.json
+ api-method: https://api.mambu.com/?http#deposittransactions-search
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: encoded_key
+ replication-key: creation_date
+- name: gl_accounts
+ description: 'This table contains information about general ledger accounts.
+
+ '
+ links:
+ doc-link: https://support.mambu.com/docs/gl-accounts-api
+ singer-schema: https://github.com/singer-io/tap-mambu/tree/v1.3.3/tap_mambu/schemas/gl_accounts.json
+ api-method: https://api.mambu.com/v1/#general-ledger-accounts-get-all-gl-accounts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: gl_code
+ replication-key: last_modified_date
+- name: gl_journal_entries
+ description: 'This table contains information about general ledger entries.
+
+ '
+ links:
+ doc-link: https://support.mambu.com/docs/gl-journal-entries-api
+ singer-schema: https://github.com/singer-io/tap-mambu/tree/v1.3.3/tap_mambu/schemas/gl_journal_entries.json
+ api-method: https://api.mambu.com/v1/#gl-journal-entries-search-for-gl-journal-entries
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: entry_id
+ replication-key: booking_date
+- name: groups
+ description: 'This table contains information about groups.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/tree/v1.3.3/tap_mambu/schemas/groups.json
+ api-method: https://api.mambu.com/?http#groups-search
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: index_rate_sources
+ description: 'This table contains information about index rate sources.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-mambu/tree/v1.3.3/tap_mambu/schemas/index_rate_sources.json
+ api-method: https://api.mambu.com/#mambu-api-v2-index-rate-sources
+ table-details:
+ replication-method: Full Table
+ primary-key: encoded_key
+- name: installments
+ description: 'This table contains information about installments for a loan.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/#mambu-api-v2-installments
+ singer-schema: https://github.com/singer-io/tap-mambu/tree/v1.3.3/tap_mambu/schemas/installments.json
+ api-method: https://api.mambu.com/#installments-getall
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: encoded_key
+ replication-key: last_paid_date
+- name: loan_accounts
+ description: This table contains information about Loan Accounts.
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/tree/v1.3.3/tap_mambu/schemas/loan_accounts.json
+ api-method: https://api.mambu.com/?http#loanaccounts-getall
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: loan_products
+ description: 'This table contains information about loan products.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/tree/v1.3.3/tap_mambu/schemas/loan_products.json
+ api-method: https://api.mambu.com/v1/#loan-products-get-all-loan-products
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: loan_repayments
+ description: 'This is a child table of `loan_accounts`, containing information exclusively
+ about loan repayments.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-mambu/tree/v1.3.3/tap_mambu/schemas/loan_repayments.json
+ api-method: https://api.mambu.com/v1/#loan-accounts-get-repayments-for-a-loan-account
+ table-details:
+ replication-method: Full Table
+ primary-key: encoded_key
+ parent-table: loan_account
+- name: loan_transactions
+ description: 'This table contains information about loan transactions.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/tree/v1.3.3/tap_mambu/schemas/loan_transactions.json
+ api-method: https://api.mambu.com/?http#loantransactions-getall
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: encoded_key
+ replication-key: creation_date
+- name: tasks
+ description: 'This table contains information about tasks.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/tree/v1.3.3/tap_mambu/schemas/tasks.json
+ api-method: https://api.mambu.com/?http#tasks-getall
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: users
+ description: 'This table contains information about users.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/tree/v1.3.3/tap_mambu/schemas/users.json
+ api-method: https://api.mambu.com/?http#users-getall
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/mambu/v2/json/activities.json b/_data/taps/schemas/mambu/v2/json/activities.json
new file mode 100644
index 000000000..8c0828f09
--- /dev/null
+++ b/_data/taps/schemas/mambu/v2/json/activities.json
@@ -0,0 +1,148 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "branch_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "client_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "client_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field_changes": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "branchKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "clientKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field_change_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "loanAccountKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "loanProductKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "new_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "loan_account_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "loan_product_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "transaction_ID": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v2/json/audit_trail.json b/_data/taps/schemas/mambu/v2/json/audit_trail.json
new file mode 100644
index 000000000..cb00e2cc3
--- /dev/null
+++ b/_data/taps/schemas/mambu/v2/json/audit_trail.json
@@ -0,0 +1,78 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "client_ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "occurred_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "request_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "request_payload": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "request_uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_fragment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "response_code": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "response_payload": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_agent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v2/json/branches.json b/_data/taps/schemas/mambu/v2/json/branches.json
new file mode 100644
index 000000000..ec3f797f2
--- /dev/null
+++ b/_data/taps/schemas/mambu/v2/json/branches.json
@@ -0,0 +1,222 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "addresses": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "parent_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postcode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "branch_holidays": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_anually_recurring": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v2/json/cards.json b/_data/taps/schemas/mambu/v2/json/cards.json
new file mode 100644
index 000000000..1dafd85af
--- /dev/null
+++ b/_data/taps/schemas/mambu/v2/json/cards.json
@@ -0,0 +1,18 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "deposit_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v2/json/centres.json b/_data/taps/schemas/mambu/v2/json/centres.json
new file mode 100644
index 000000000..6334f9d4e
--- /dev/null
+++ b/_data/taps/schemas/mambu/v2/json/centres.json
@@ -0,0 +1,176 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "addresses": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "parent_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postcode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "assigned_branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "meeting_day": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v2/json/clients.json b/_data/taps/schemas/mambu/v2/json/clients.json
new file mode 100644
index 000000000..4352fc833
--- /dev/null
+++ b/_data/taps/schemas/mambu/v2/json/clients.json
@@ -0,0 +1,342 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "activation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "addresses": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "parent_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postcode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "approved_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "assigned_branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_centre_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "birth_date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "client_role_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "closed_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gender": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_loan_cycle": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "home_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id_documents": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "client_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "document_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "document_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "identification_document_template_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "issuing_authority": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "valid_until": {
+ "type": [
+ "null",
+ "date"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "middle_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "migration_event_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mobile_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preferred_language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "profile_picture_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "profile_signature_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v2/json/communications.json b/_data/taps/schemas/mambu/v2/json/communications.json
new file mode 100644
index 000000000..3c9da2efc
--- /dev/null
+++ b/_data/taps/schemas/mambu/v2/json/communications.json
@@ -0,0 +1,166 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "client_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deposit_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "failure_cause": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "failure_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "loan_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "num_retries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repayment_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "send_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "sender_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "template_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v2/json/credit_arrangements.json b/_data/taps/schemas/mambu/v2/json/credit_arrangements.json
new file mode 100644
index 000000000..0a338de01
--- /dev/null
+++ b/_data/taps/schemas/mambu/v2/json/credit_arrangements.json
@@ -0,0 +1,130 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "approved_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "available_credit_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "consumed_credit_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expire_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "holder_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sub_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v2/json/custom_field_sets.json b/_data/taps/schemas/mambu/v2/json/custom_field_sets.json
new file mode 100644
index 000000000..1ec7f5734
--- /dev/null
+++ b/_data/taps/schemas/mambu/v2/json/custom_field_sets.json
@@ -0,0 +1,321 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amounts": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "custom_field_product_settings": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "custom_field_encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "link_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "custom_field_selection_options": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "score": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "data_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "edit_rights": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_accessible_by_all_users": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "roles": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unique": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "value_length": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "values": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "view_rights": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_accessible_by_all_users": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "roles": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v2/json/deposit_accounts.json b/_data/taps/schemas/mambu/v2/json/deposit_accounts.json
new file mode 100644
index 000000000..ff6841df0
--- /dev/null
+++ b/_data/taps/schemas/mambu/v2/json/deposit_accounts.json
@@ -0,0 +1,618 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_holder_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accrued_amounts": {
+ "additionalProperties": false,
+ "properties": {
+ "interest_accrued": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "overdraft_interest_accrued": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "technical_overdraft_interest_accrued": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "activation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "approved_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "assigned_branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_centre_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "balances": {
+ "additionalProperties": false,
+ "properties": {
+ "available_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fees_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "hold_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "locked_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "overdraft_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "overdraft_interest_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "technical_overdraft_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "technical_overdraft_interest_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "closed_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "credit_arrangement_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_fields": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "interest_payment_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "interest_payment_dates": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "interest_payment_point": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "interest_rate_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_rate_terms": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_tiers": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ending_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ending_day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "internal_controls": {
+ "additionalProperties": false,
+ "properties": {
+ "max_withdrawal_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "recommended_deposit_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "target_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_account_appraisal_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_interest_calculation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_interest_stored_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_overdraft_interest_review_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_sent_to_arrears_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "linked_settlement_account_keys": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "locked_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "maturity_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "migration_event_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "overdraft_interest_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "interest_rate_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_rate_review_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate_review_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_terms": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_tiers": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ending_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ending_day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "interest_spread": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "overdraft_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "allowed_overdraft": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "overdraft_expiry_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "overdraft_limit": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "product_type_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "withholding_tax_source_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v2/json/deposit_products.json b/_data/taps/schemas/mambu/v2/json/deposit_products.json
new file mode 100644
index 000000000..6fbe74149
--- /dev/null
+++ b/_data/taps/schemas/mambu/v2/json/deposit_products.json
@@ -0,0 +1,907 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "accounting_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "activated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_arbitrary_fees": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_offset": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_overdraft": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_technical_overdraft": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "available_product_branches": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "collect_interest_when_locked": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currencies": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency_symbol_position": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "digits_after_decimal": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_base_currency": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "symbol": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "custom_field_values": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field": {
+ "additionalProperties": false,
+ "properties": {
+ "amounts": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "custom_field_selection_options": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "score": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "custom_field_set": {
+ "additionalProperties": false,
+ "properties": {
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "data_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "edit_rights": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_accessible_by_all_users": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "roles": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unique": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "value_length": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "values": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "view_rights": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_accessible_by_all_users": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "roles": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "custom_field_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_set_group_index": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "parent_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "for_all_branches": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "for_groups": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "for_individuals": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id_generator_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id_pattern": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_accrued_accounting_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_calculation_balance": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_days_in_year": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_paid_into_account": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "interest_payment_point": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "accrue_interest_after_maturity": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_terms": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_tiers": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ending_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ending_day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "line_of_credit_requirement": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "maturity_period_limit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_overdraft_limit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "min_opening_balance": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "overdraft_days_in_year": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "overdraft_interest_rate_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "accrue_interest_after_maturity": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_terms": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_tiers": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ending_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ending_day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "product_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "savings_fees": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "amortization_profile": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fee_amortization_upon_reschedule_option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fee_application": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fee_product_rules": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trigger": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "savings_product_rules": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "templates": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "withholding_tax_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v2/json/deposit_transactions.json b/_data/taps/schemas/mambu/v2/json/deposit_transactions.json
new file mode 100644
index 000000000..eb9b43d64
--- /dev/null
+++ b/_data/taps/schemas/mambu/v2/json/deposit_transactions.json
@@ -0,0 +1,796 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_balances": {
+ "additionalProperties": false,
+ "properties": {
+ "total_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "adjustment_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "affected_amounts": {
+ "additionalProperties": false,
+ "properties": {
+ "fees_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fraction_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "funds_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "overdraft_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "overdraft_fees_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "overdraft_interest_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "technical_overdraft_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "technical_overdraft_interest_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "booking_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_transaction": {
+ "additionalProperties": false,
+ "properties": {
+ "advice": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "card_acceptor": {
+ "additionalProperties": false,
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mcc": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_authorization_reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_transaction_time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "centre_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_fields": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fees": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "predefined_fee_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "trigger": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "linked_loan_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "migration_event_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_details": {
+ "additionalProperties": false,
+ "properties": {
+ "creditor": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "creditor_account": {
+ "additionalProperties": false,
+ "properties": {
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "identification": {
+ "additionalProperties": false,
+ "properties": {
+ "iban": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "other": {
+ "additionalProperties": false,
+ "properties": {
+ "identification": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "creditor_agent": {
+ "additionalProperties": false,
+ "properties": {
+ "financial_institution_identification": {
+ "additionalProperties": false,
+ "properties": {
+ "bic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "debtor": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "debtor_account": {
+ "additionalProperties": false,
+ "properties": {
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "identification": {
+ "additionalProperties": false,
+ "properties": {
+ "iban": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "other": {
+ "additionalProperties": false,
+ "properties": {
+ "identification": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "debtor_agent": {
+ "additionalProperties": false,
+ "properties": {
+ "financial_institution_identification": {
+ "additionalProperties": false,
+ "properties": {
+ "bic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "payment_identification": {
+ "additionalProperties": false,
+ "properties": {
+ "end_to_end_identification": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "instruction_identification": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_identification": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "payment_type_information": {
+ "additionalProperties": false,
+ "properties": {
+ "service_level": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "remittance_information": {
+ "additionalProperties": false,
+ "properties": {
+ "structured": {
+ "additionalProperties": false,
+ "properties": {
+ "creditor_reference_information": {
+ "additionalProperties": false,
+ "properties": {
+ "reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_issuer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "unstructured": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "taxes": {
+ "additionalProperties": false,
+ "properties": {
+ "tax_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "terms": {
+ "additionalProperties": false,
+ "properties": {
+ "interest_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "interest_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "overdraft_interest_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "index_interest_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "overdraft_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "overdraft_limit": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "till_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_details": {
+ "additionalProperties": false,
+ "properties": {
+ "transaction_channel_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_channel_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "transfer_details": {
+ "additionalProperties": false,
+ "properties": {
+ "linked_deposit_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "linked_loan_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v2/json/gl_accounts.json b/_data/taps/schemas/mambu/v2/json/gl_accounts.json
new file mode 100644
index 000000000..4439a342b
--- /dev/null
+++ b/_data/taps/schemas/mambu/v2/json/gl_accounts.json
@@ -0,0 +1,129 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "activated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_manual_journal_entries": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_symbol_position": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "digits_after_decimal": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_base_currency": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "symbol": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entry_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gl_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "strip_trailing_zeros": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v2/json/gl_journal_entries.json b/_data/taps/schemas/mambu/v2/json/gl_journal_entries.json
new file mode 100644
index 000000000..c8d673b0a
--- /dev/null
+++ b/_data/taps/schemas/mambu/v2/json/gl_journal_entries.json
@@ -0,0 +1,204 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "booking_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entry_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "entry_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gl_account": {
+ "additionalProperties": false,
+ "properties": {
+ "activated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_manual_journal_entries": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_symbol_position": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "digits_after_decimal": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_base_currency": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "symbol": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entry_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gl_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "strip_trailing_zeros": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "product_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v2/json/groups.json b/_data/taps/schemas/mambu/v2/json/groups.json
new file mode 100644
index 000000000..7ad2b91bd
--- /dev/null
+++ b/_data/taps/schemas/mambu/v2/json/groups.json
@@ -0,0 +1,274 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "addresses": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "parent_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postcode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "assigned_branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_centre_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_members": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "client_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "roles": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_role_name_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "group_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_role_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "home_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "loan_cycle": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "migration_event_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mobile_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preferred_language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v2/json/index_rate_sources.json b/_data/taps/schemas/mambu/v2/json/index_rate_sources.json
new file mode 100644
index 000000000..edce875a3
--- /dev/null
+++ b/_data/taps/schemas/mambu/v2/json/index_rate_sources.json
@@ -0,0 +1,30 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v2/json/installments.json b/_data/taps/schemas/mambu/v2/json/installments.json
new file mode 100644
index 000000000..055dc8e1b
--- /dev/null
+++ b/_data/taps/schemas/mambu/v2/json/installments.json
@@ -0,0 +1,294 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "due_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fee": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "additionalProperties": false,
+ "properties": {
+ "due": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expected": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "paid": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tax": {
+ "additionalProperties": false,
+ "properties": {
+ "due": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expected": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "paid": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "interest": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "additionalProperties": false,
+ "properties": {
+ "due": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expected": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "paid": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tax": {
+ "additionalProperties": false,
+ "properties": {
+ "due": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expected": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "paid": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_paid_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "penalty": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "additionalProperties": false,
+ "properties": {
+ "due": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expected": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "paid": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tax": {
+ "additionalProperties": false,
+ "properties": {
+ "due": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expected": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "paid": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "principal": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "additionalProperties": false,
+ "properties": {
+ "due": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expected": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "paid": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "repaid_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v2/json/interest_accrual_breakdown.json b/_data/taps/schemas/mambu/v2/json/interest_accrual_breakdown.json
new file mode 100644
index 000000000..143c439b8
--- /dev/null
+++ b/_data/taps/schemas/mambu/v2/json/interest_accrual_breakdown.json
@@ -0,0 +1,189 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "booking_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "branch_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "entry_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "entry_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "foreign_amount": {
+ "additionalProperties": false,
+ "properties": {
+ "accounting_rate": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "from_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "to_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "currency": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "gl_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gl_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gl_account_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gl_account_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_entry_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v2/json/loan_accounts.json b/_data/taps/schemas/mambu/v2/json/loan_accounts.json
new file mode 100644
index 000000000..1be29b900
--- /dev/null
+++ b/_data/taps/schemas/mambu/v2/json/loan_accounts.json
@@ -0,0 +1,1139 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_arrears_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "date_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "monthly_tolerance_day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "non_working_days_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tolerance_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tolerance_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "account_holder_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_sub_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accrued_interest": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "accrued_penalty": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "activation_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "allow_offset": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "approved_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "arrears_tolerance_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "assets": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "asset_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deposit_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "guarantor_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "guarantor_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "assigned_branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_centre_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "balances": {
+ "additionalProperties": false,
+ "properties": {
+ "fees_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fees_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fees_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_from_arrears_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_from_arrears_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_from_arrears_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "penalty_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "penalty_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "penalty_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "redraw_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "closed_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "credit_arrangement_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "custom_fields": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "days_in_arrears": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "days_late": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "disbursement_details": {
+ "additionalProperties": false,
+ "properties": {
+ "disbursement_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expected_disbursement_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "fees": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "predefined_fee_encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "first_repayment_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "transaction_details": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "internal_transfer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "target_deposit_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_channel_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_channel_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding_sources": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "asset_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deposit_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "guarantor_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "guarantor_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_commission": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "share_percentage": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "future_payments_acceptance": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "guarantors": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "asset_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deposit_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "guarantor_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "guarantor_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_commission": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_from_arrears_accrued": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "accrue_interest_after_maturity": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "interest_application_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_balance_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_rate_review_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate_review_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_spread": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_account_appraisal_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_appraisal_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_interest_applied_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_interest_review_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_locked_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_set_to_arrears_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_tax_rate_review_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "late_payments_recalculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "loan_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "loan_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locked_operations": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "migration_event_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "penalty_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "loan_penalty_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "penalty_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "prepayment_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "apply_interest_on_prepayment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "elements_recalculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prepayment_recalculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "principal-paid_installment_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "principal_payment_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "include_fees_in_floor_amount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "include_interest_in_floor_amount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "percentage": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_ceiling_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_floor_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_due_amount_floor": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_due_payment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "product_type_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rescheduled_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "schedule_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "default_first_repayment_due_date_offset": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fixed_days_of_month": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "grace_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "grace_period_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_custom_schedule": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "payment_plan": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to_installment": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "periodic_payment": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_repayment_interval": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "repayment_installments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "repayment_period_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "repayment_period_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repayment_schedule_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "schedule_due_dates_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "short_month_handling_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "settlement_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tranches": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "disbursement_details": {
+ "additionalProperties": false,
+ "properties": {
+ "disbursement_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expected_disbursement_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tranch_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v2/json/loan_products.json b/_data/taps/schemas/mambu/v2/json/loan_products.json
new file mode 100644
index 000000000..b0a8593df
--- /dev/null
+++ b/_data/taps/schemas/mambu/v2/json/loan_products.json
@@ -0,0 +1,976 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_initial_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_linking_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "accounting_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "activated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_arbitrary_fees": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_collateral": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_guarantors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "amortization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "apply_interest_on_prepayment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "arrears_date_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "arrears_non_working_days_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "arrears_tolerance_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "auto_create_linked_accounts": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "auto_link_accounts": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "automatically_close_dormant_accounts": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_field_values": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field": {
+ "additionalProperties": false,
+ "properties": {
+ "amounts": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "custom_field_selection_options": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "score": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "custom_field_set": {
+ "additionalProperties": false,
+ "properties": {
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "data_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "edit_rights": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_accessible_by_all_users": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "roles": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unique": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "value_length": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "values": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "view_rights": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_accessible_by_all_users": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "roles": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "custom_field_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_field_set_group_index": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "parent_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "days_in_year": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "declining_balance_prepayment_recalculation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_loan_amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_num_installments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "default_principal_repayment_interval": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "default_repayment_period_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "for_hybrid_groups": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "for_individuals": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "for_pure_groups": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "future_payments_acceptance": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "grace_period_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id_generator_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id_pattern": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_accrued_accounting_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_application_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_balance_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "default_interest_rate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_terms": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "is_investor_funds_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "late_payments_recalculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_of_credit_requirement": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "loan_fees": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "amoritization_profile": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amortization_interval_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "frequency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "period_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "period_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fee_application": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fee_product_rules": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trigger": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "loan_penalty_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "loan_product_rules": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "loan_product_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "loan_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_number_of_disbursement_tranches": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prepayment_acceptance": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_security_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_collateral_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_guarantors_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_investor_funds_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "required_guaranties": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "repayment_allocation_order": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "repayment_currency_rounding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repayment_elements_rounding_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repayment_period_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repayment_rescheduling_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repayment_schedule_edit_options": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "repayment_schedule_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "required_guaranty_percentage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rounding_repayment_schedule_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "schedule_due_dates_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "schedule_interest_days_count_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "settlement_options": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxes_on_fees_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "taxes_on_interest_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "taxes_on_penalty_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "templates": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v2/json/loan_repayments.json b/_data/taps/schemas/mambu/v2/json/loan_repayments.json
new file mode 100644
index 000000000..67de732d9
--- /dev/null
+++ b/_data/taps/schemas/mambu/v2/json/loan_repayments.json
@@ -0,0 +1,114 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "due_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fees_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fees_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "parent_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "penalty_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "penalty_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_fees_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_fees_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_interest_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_interest_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_penalty_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_penalty_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v2/json/loan_transactions.json b/_data/taps/schemas/mambu/v2/json/loan_transactions.json
new file mode 100644
index 000000000..014141f2e
--- /dev/null
+++ b/_data/taps/schemas/mambu/v2/json/loan_transactions.json
@@ -0,0 +1,692 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_balances": {
+ "additionalProperties": false,
+ "properties": {
+ "advance_position": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "arrears_position": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expected_principal_redraw": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "redraw_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "adjustment_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "affected_amounts": {
+ "additionalProperties": false,
+ "properties": {
+ "deferred_interest_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fees_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fraction_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "funders_interest_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "funds_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_from_arrears_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "organization_commission_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "overdraft_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "overdraft_fees_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "overdraft_interest_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "payment_holidays_interest_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "penalty_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "technical_overdraft_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "technical_overdraft_interest_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "booking_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_transaction": {
+ "additionalProperties": false,
+ "properties": {
+ "advice": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "card_acceptor": {
+ "additionalProperties": false,
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mcc": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "street": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_authorization_reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_transaction_time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "centre_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "custom_fields": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "custom_payment_amounts": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "custom_payment_amount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "predefined_fee_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_on_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fees": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "predefined_fee_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "trigger": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "installment_encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "linked_loan_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "migration_event_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "original_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_loan_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prepayment_recalculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxes": {
+ "additionalProperties": false,
+ "properties": {
+ "deferred_tax_on_interest_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_interest_from_arrears_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_on_fees_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_on_interest_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_on_interest_from_arrears_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_on_payment_holidays_interest": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_on_penalty_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "terms": {
+ "additionalProperties": false,
+ "properties": {
+ "interest_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "index_interest_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_rate": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "periodic_payment": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_payment_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_payment_percentage": {
+ "maximum": 1000000000000000,
+ "minimum": -1000000000000000,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "till_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_details": {
+ "additionalProperties": false,
+ "properties": {
+ "transaction_channel_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_channel_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "transfer_details": {
+ "additionalProperties": false,
+ "properties": {
+ "linked_deposit_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "linked_loan_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v2/json/tasks.json b/_data/taps/schemas/mambu/v2/json/tasks.json
new file mode 100644
index 000000000..9c2c5b3d2
--- /dev/null
+++ b/_data/taps/schemas/mambu/v2/json/tasks.json
@@ -0,0 +1,130 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "assigned_user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by_full_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by_user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "due_date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "task_link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "task_link_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "task_link_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v2/json/users.json b/_data/taps/schemas/mambu/v2/json/users.json
new file mode 100644
index 000000000..b622af3ce
--- /dev/null
+++ b/_data/taps/schemas/mambu/v2/json/users.json
@@ -0,0 +1,237 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "access": {
+ "additionalProperties": false,
+ "properties": {
+ "administrator_access": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "api_access": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "can_manage_all_branches": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "can_manage_entities_assigned_to_other_officers": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "credit_officer_access": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mambu_access": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "managed_branches": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "permissions": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "support_access": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "teller_access": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "assigned_branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "home_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_logged_in_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mobile_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "two_factor_authentication": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "user_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v2/mambu-v2-foreign-keys.yml b/_data/taps/schemas/mambu/v2/mambu-v2-foreign-keys.yml
new file mode 100644
index 000000000..804d1ca51
--- /dev/null
+++ b/_data/taps/schemas/mambu/v2/mambu-v2-foreign-keys.yml
@@ -0,0 +1,2270 @@
+tap: mambu
+version: '2'
+keys:
+ activities_encoded_key:
+ - table: activities
+ keys:
+ - encoded_key
+ branches_encoded_key:
+ - table: branches
+ keys:
+ - encoded_key
+ - table: centres
+ keys:
+ - assigned_branch_key
+ - table: deposit_transactions
+ keys:
+ - branch_key
+ - table: groups
+ keys:
+ - assigned_branch_key
+ - table: loan_accounts
+ keys:
+ - assigned_branch_key
+ - table: loan_transactions
+ keys:
+ - branch_key
+ - table: users
+ keys:
+ - access.managed_branches.branch_key
+ centres_encoded_key:
+ - table: centres
+ keys:
+ - encoded_key
+ - table: clients
+ keys:
+ - assigned_centre_key
+ - table: deposit_transactions
+ keys:
+ - centre_key
+ - table: groups
+ keys:
+ - assigned_centre_key
+ - table: loan_accounts
+ keys:
+ - assigned_centre_key
+ - table: loan_transactions
+ keys:
+ - centre_key
+ clients_client_key:
+ - table: activities
+ keys:
+ - client_key
+ - table: clients
+ keys:
+ - encoded_key
+ - table: communications
+ keys:
+ - client_key
+ - table: groups
+ keys:
+ - group_members.client_key
+ communications_encoded_key:
+ - table: communications
+ keys:
+ - encoded_key
+ credit_arrangements_credit_arrangement_key:
+ - table: credit_arrangements
+ keys:
+ - encoded_key
+ - table: deposit_accounts
+ keys:
+ - credit_arrangement_key
+ - table: loan_accounts
+ keys:
+ - credit_arrangement_key
+ custom_field_sets_custom_fields.field_set_id:
+ - table: branches
+ keys:
+ - custom_fields.field_set_id
+ - table: centres
+ keys:
+ - custom_fields.field_set_id
+ - table: clients
+ keys:
+ - custom_fields.field_set_id
+ - table: communications
+ keys:
+ - custom_fields.field_set_id
+ - table: credit_arrangements
+ keys:
+ - custom_fields.field_set_id
+ - table: custom_field_sets
+ keys:
+ - id
+ - table: deposit_accounts
+ keys:
+ - custom_fields.field_set_id
+ - table: deposit_products
+ keys:
+ - custom_field_values.custom_field.custom_field_set.id
+ - table: deposit_transactions
+ keys:
+ - custom_fields.field_set_id
+ - table: groups
+ keys:
+ - custom_fields.field_set_id
+ - table: loan_accounts
+ keys:
+ - custom_fields.field_set_id
+ - table: loan_products
+ keys:
+ - custom_field_values.custom_field.custom_field_set.id
+ - table: loan_transactions
+ keys:
+ - custom_fields.field_set_id
+ - table: tasks
+ keys:
+ - custom_fields.field_set_id
+ - table: users
+ keys:
+ - custom_fields.field_set_id
+ custom_field_sets_custom_fields.id:
+ - table: branches
+ keys:
+ - custom_fields.id
+ - table: centres
+ keys:
+ - custom_fields.id
+ - table: clients
+ keys:
+ - custom_fields.id
+ - table: communications
+ keys:
+ - custom_fields.id
+ - table: credit_arrangements
+ keys:
+ - custom_fields.id
+ - table: custom_field_sets
+ keys:
+ - custom_fields.id
+ - table: deposit_accounts
+ keys:
+ - custom_fields.id
+ - table: deposit_products
+ keys:
+ - custom_field_values.custom_field.id
+ - custom_field_values.custom_field_id
+ - table: deposit_transactions
+ keys:
+ - custom_fields.id
+ - table: groups
+ keys:
+ - custom_fields.id
+ - table: loan_accounts
+ keys:
+ - custom_fields.id
+ - table: loan_products
+ keys:
+ - custom_field_values.custom_field.id
+ - custom_field_values.custom_field_id
+ - table: loan_transactions
+ keys:
+ - custom_fields.id
+ - table: tasks
+ keys:
+ - custom_fields.id
+ - table: users
+ keys:
+ - custom_fields.id
+ deposits_deposit_id:
+ - table: cards
+ keys:
+ - deposit_id
+ deposit_accounts_deposit_account_key:
+ - table: communications
+ keys:
+ - deposit_account_key
+ - table: deposit_accounts
+ keys:
+ - encoded_key
+ - table: loan_accounts
+ keys:
+ - disbursement_details.transaction_details.target_deposit_account_key
+ - funding_sources.deposit_account_key
+ - guarantors.deposit_account_key
+ deposit_products_id:
+ - table: deposit_products
+ keys:
+ - id
+ deposit_transactions_transfer_details.linked_deposit_transaction_key:
+ - table: deposit_transactions
+ keys:
+ - transfer_details.linked_deposit_transaction_key
+ - table: loan_transactions
+ keys:
+ - transfer_details.linked_deposit_transaction_key
+ gl_accounts_gl_code:
+ - table: gl_accounts
+ keys:
+ - gl_code
+ - table: gl_journal_entries
+ keys:
+ - gl_account.gl_code
+ groups_group_key:
+ - table: communications
+ keys:
+ - group_key
+ - table: groups
+ keys:
+ - encoded_key
+ index_rate_sources_:
+ - table: index_rate_sources
+ keys:
+ - ''
+ installments_:
+ - table: installments
+ keys:
+ - encoded_key
+ loan_accounts_encoded_key:
+ - table: communications
+ keys:
+ - loan_account_key
+ - table: loan_accounts
+ keys:
+ - encoded_key
+ loan_products_:
+ - table: loan_products
+ keys:
+ - encoded_key
+ loan_transactions_linked_loan_transaction_key:
+ - table: deposit_transactions
+ keys:
+ - linked_loan_transaction_key
+ - transfer_details.linked_loan_transaction_key
+ - table: loan_transactions
+ keys:
+ - encoded_key
+ - linked_loan_transaction_key
+ - parent_loan_transaction_key
+ - transfer_details.linked_loan_transaction_key
+ users_user_key:
+ - table: activities
+ keys:
+ - user_key
+ - table: clients
+ keys:
+ - assigned_user_key
+ - table: communications
+ keys:
+ - user_key
+ - sender_key
+ - table: deposit_transactions
+ keys:
+ - user_key
+ - table: gl_journal_entries
+ keys:
+ - user_key
+ - table: groups
+ keys:
+ - assigned_user_key
+ - table: loan_accounts
+ keys:
+ - assigned_user_key
+ - table: loan_transactions
+ keys:
+ - user_key
+ - table: tasks
+ keys:
+ - created_by_user_key
+ - assigned_user_key
+ - table: users
+ keys:
+ - encoded_key
+tables:
+- table-name: activities
+ join:
+ - table-name: clients
+ keys:
+ - key: client_key
+ foreign-key: encoded_key
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: communications
+ keys:
+ - key: client_key
+ foreign-key: client_key
+ - key: user_key
+ foreign-key: user_key
+ - key: user_key
+ foreign-key: sender_key
+ - table-name: groups
+ keys:
+ - key: client_key
+ foreign-key: group_members.client_key
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: deposit_transactions
+ keys:
+ - key: user_key
+ foreign-key: user_key
+ - table-name: gl_journal_entries
+ keys:
+ - key: user_key
+ foreign-key: user_key
+ - table-name: loan_accounts
+ keys:
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_transactions
+ keys:
+ - key: user_key
+ foreign-key: user_key
+ - table-name: tasks
+ keys:
+ - key: user_key
+ foreign-key: created_by_user_key
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: users
+ keys:
+ - key: user_key
+ foreign-key: encoded_key
+- table-name: branches
+ join:
+ - table-name: centres
+ keys:
+ - key: encoded_key
+ foreign-key: assigned_branch_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_transactions
+ keys:
+ - key: encoded_key
+ foreign-key: branch_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: groups
+ keys:
+ - key: encoded_key
+ foreign-key: assigned_branch_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: loan_accounts
+ keys:
+ - key: encoded_key
+ foreign-key: assigned_branch_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: loan_transactions
+ keys:
+ - key: encoded_key
+ foreign-key: branch_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: users
+ keys:
+ - key: encoded_key
+ foreign-key: access.managed_branches.branch_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: clients
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: communications
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: credit_arrangements
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: custom_field_sets
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_accounts
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_products
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_field_values.custom_field.custom_field_set.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field_id
+ - table-name: loan_products
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_field_values.custom_field.custom_field_set.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field_id
+ - table-name: tasks
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+- table-name: centres
+ join:
+ - table-name: branches
+ keys:
+ - key: assigned_branch_key
+ foreign-key: encoded_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_transactions
+ keys:
+ - key: assigned_branch_key
+ foreign-key: branch_key
+ - key: encoded_key
+ foreign-key: centre_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: groups
+ keys:
+ - key: assigned_branch_key
+ foreign-key: assigned_branch_key
+ - key: encoded_key
+ foreign-key: assigned_centre_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: loan_accounts
+ keys:
+ - key: assigned_branch_key
+ foreign-key: assigned_branch_key
+ - key: encoded_key
+ foreign-key: assigned_centre_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: loan_transactions
+ keys:
+ - key: assigned_branch_key
+ foreign-key: branch_key
+ - key: encoded_key
+ foreign-key: centre_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: users
+ keys:
+ - key: assigned_branch_key
+ foreign-key: access.managed_branches.branch_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: clients
+ keys:
+ - key: encoded_key
+ foreign-key: assigned_centre_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: communications
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: credit_arrangements
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: custom_field_sets
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_accounts
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_products
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_field_values.custom_field.custom_field_set.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field_id
+ - table-name: loan_products
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_field_values.custom_field.custom_field_set.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field_id
+ - table-name: tasks
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+- table-name: deposit_transactions
+ join:
+ - table-name: branches
+ keys:
+ - key: branch_key
+ foreign-key: encoded_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: centres
+ keys:
+ - key: branch_key
+ foreign-key: assigned_branch_key
+ - key: centre_key
+ foreign-key: encoded_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: groups
+ keys:
+ - key: branch_key
+ foreign-key: assigned_branch_key
+ - key: centre_key
+ foreign-key: assigned_centre_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_accounts
+ keys:
+ - key: branch_key
+ foreign-key: assigned_branch_key
+ - key: centre_key
+ foreign-key: assigned_centre_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_transactions
+ keys:
+ - key: branch_key
+ foreign-key: branch_key
+ - key: centre_key
+ foreign-key: centre_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: transfer_details.linked_deposit_transaction_key
+ foreign-key: transfer_details.linked_deposit_transaction_key
+ - key: linked_loan_transaction_key
+ foreign-key: encoded_key
+ - key: transfer_details.linked_loan_transaction_key
+ foreign-key: encoded_key
+ - key: linked_loan_transaction_key
+ foreign-key: linked_loan_transaction_key
+ - key: transfer_details.linked_loan_transaction_key
+ foreign-key: linked_loan_transaction_key
+ - key: linked_loan_transaction_key
+ foreign-key: parent_loan_transaction_key
+ - key: transfer_details.linked_loan_transaction_key
+ foreign-key: parent_loan_transaction_key
+ - key: linked_loan_transaction_key
+ foreign-key: transfer_details.linked_loan_transaction_key
+ - key: transfer_details.linked_loan_transaction_key
+ foreign-key: transfer_details.linked_loan_transaction_key
+ - key: user_key
+ foreign-key: user_key
+ - table-name: users
+ keys:
+ - key: branch_key
+ foreign-key: access.managed_branches.branch_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: user_key
+ foreign-key: encoded_key
+ - table-name: clients
+ keys:
+ - key: centre_key
+ foreign-key: assigned_centre_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: communications
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: user_key
+ foreign-key: user_key
+ - key: user_key
+ foreign-key: sender_key
+ - table-name: credit_arrangements
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: custom_field_sets
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_accounts
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_products
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_field_values.custom_field.custom_field_set.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field_id
+ - table-name: loan_products
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_field_values.custom_field.custom_field_set.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field_id
+ - table-name: tasks
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: user_key
+ foreign-key: created_by_user_key
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: activities
+ keys:
+ - key: user_key
+ foreign-key: user_key
+ - table-name: gl_journal_entries
+ keys:
+ - key: user_key
+ foreign-key: user_key
+- table-name: groups
+ join:
+ - table-name: branches
+ keys:
+ - key: assigned_branch_key
+ foreign-key: encoded_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: centres
+ keys:
+ - key: assigned_branch_key
+ foreign-key: assigned_branch_key
+ - key: assigned_centre_key
+ foreign-key: encoded_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_transactions
+ keys:
+ - key: assigned_branch_key
+ foreign-key: branch_key
+ - key: assigned_centre_key
+ foreign-key: centre_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: loan_accounts
+ keys:
+ - key: assigned_branch_key
+ foreign-key: assigned_branch_key
+ - key: assigned_centre_key
+ foreign-key: assigned_centre_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_transactions
+ keys:
+ - key: assigned_branch_key
+ foreign-key: branch_key
+ - key: assigned_centre_key
+ foreign-key: centre_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: users
+ keys:
+ - key: assigned_branch_key
+ foreign-key: access.managed_branches.branch_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: assigned_user_key
+ foreign-key: encoded_key
+ - table-name: clients
+ keys:
+ - key: assigned_centre_key
+ foreign-key: assigned_centre_key
+ - key: group_members.client_key
+ foreign-key: encoded_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: activities
+ keys:
+ - key: group_members.client_key
+ foreign-key: client_key
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: communications
+ keys:
+ - key: group_members.client_key
+ foreign-key: client_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: encoded_key
+ foreign-key: group_key
+ - key: assigned_user_key
+ foreign-key: user_key
+ - key: assigned_user_key
+ foreign-key: sender_key
+ - table-name: credit_arrangements
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: custom_field_sets
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_accounts
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_products
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_field_values.custom_field.custom_field_set.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field_id
+ - table-name: loan_products
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_field_values.custom_field.custom_field_set.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field_id
+ - table-name: tasks
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: assigned_user_key
+ foreign-key: created_by_user_key
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: gl_journal_entries
+ keys:
+ - key: assigned_user_key
+ foreign-key: user_key
+- table-name: loan_accounts
+ join:
+ - table-name: branches
+ keys:
+ - key: assigned_branch_key
+ foreign-key: encoded_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: centres
+ keys:
+ - key: assigned_branch_key
+ foreign-key: assigned_branch_key
+ - key: assigned_centre_key
+ foreign-key: encoded_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_transactions
+ keys:
+ - key: assigned_branch_key
+ foreign-key: branch_key
+ - key: assigned_centre_key
+ foreign-key: centre_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: groups
+ keys:
+ - key: assigned_branch_key
+ foreign-key: assigned_branch_key
+ - key: assigned_centre_key
+ foreign-key: assigned_centre_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_transactions
+ keys:
+ - key: assigned_branch_key
+ foreign-key: branch_key
+ - key: assigned_centre_key
+ foreign-key: centre_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: users
+ keys:
+ - key: assigned_branch_key
+ foreign-key: access.managed_branches.branch_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: assigned_user_key
+ foreign-key: encoded_key
+ - table-name: clients
+ keys:
+ - key: assigned_centre_key
+ foreign-key: assigned_centre_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: credit_arrangements
+ keys:
+ - key: credit_arrangement_key
+ foreign-key: encoded_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_accounts
+ keys:
+ - key: credit_arrangement_key
+ foreign-key: credit_arrangement_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: disbursement_details.transaction_details.target_deposit_account_key
+ foreign-key: encoded_key
+ - key: funding_sources.deposit_account_key
+ foreign-key: encoded_key
+ - key: guarantors.deposit_account_key
+ foreign-key: encoded_key
+ - table-name: communications
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: disbursement_details.transaction_details.target_deposit_account_key
+ foreign-key: deposit_account_key
+ - key: funding_sources.deposit_account_key
+ foreign-key: deposit_account_key
+ - key: guarantors.deposit_account_key
+ foreign-key: deposit_account_key
+ - key: encoded_key
+ foreign-key: loan_account_key
+ - key: assigned_user_key
+ foreign-key: user_key
+ - key: assigned_user_key
+ foreign-key: sender_key
+ - table-name: custom_field_sets
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_products
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_field_values.custom_field.custom_field_set.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field_id
+ - table-name: loan_products
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_field_values.custom_field.custom_field_set.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field_id
+ - table-name: tasks
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: assigned_user_key
+ foreign-key: created_by_user_key
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: activities
+ keys:
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: gl_journal_entries
+ keys:
+ - key: assigned_user_key
+ foreign-key: user_key
+- table-name: loan_transactions
+ join:
+ - table-name: branches
+ keys:
+ - key: branch_key
+ foreign-key: encoded_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: centres
+ keys:
+ - key: branch_key
+ foreign-key: assigned_branch_key
+ - key: centre_key
+ foreign-key: encoded_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_transactions
+ keys:
+ - key: branch_key
+ foreign-key: branch_key
+ - key: centre_key
+ foreign-key: centre_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: transfer_details.linked_deposit_transaction_key
+ foreign-key: transfer_details.linked_deposit_transaction_key
+ - key: encoded_key
+ foreign-key: linked_loan_transaction_key
+ - key: linked_loan_transaction_key
+ foreign-key: linked_loan_transaction_key
+ - key: parent_loan_transaction_key
+ foreign-key: linked_loan_transaction_key
+ - key: transfer_details.linked_loan_transaction_key
+ foreign-key: linked_loan_transaction_key
+ - key: encoded_key
+ foreign-key: transfer_details.linked_loan_transaction_key
+ - key: linked_loan_transaction_key
+ foreign-key: transfer_details.linked_loan_transaction_key
+ - key: parent_loan_transaction_key
+ foreign-key: transfer_details.linked_loan_transaction_key
+ - key: transfer_details.linked_loan_transaction_key
+ foreign-key: transfer_details.linked_loan_transaction_key
+ - key: user_key
+ foreign-key: user_key
+ - table-name: groups
+ keys:
+ - key: branch_key
+ foreign-key: assigned_branch_key
+ - key: centre_key
+ foreign-key: assigned_centre_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_accounts
+ keys:
+ - key: branch_key
+ foreign-key: assigned_branch_key
+ - key: centre_key
+ foreign-key: assigned_centre_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: users
+ keys:
+ - key: branch_key
+ foreign-key: access.managed_branches.branch_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: user_key
+ foreign-key: encoded_key
+ - table-name: clients
+ keys:
+ - key: centre_key
+ foreign-key: assigned_centre_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: communications
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: user_key
+ foreign-key: user_key
+ - key: user_key
+ foreign-key: sender_key
+ - table-name: credit_arrangements
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: custom_field_sets
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_accounts
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_products
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_field_values.custom_field.custom_field_set.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field_id
+ - table-name: loan_products
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_field_values.custom_field.custom_field_set.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field_id
+ - table-name: tasks
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: user_key
+ foreign-key: created_by_user_key
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: activities
+ keys:
+ - key: user_key
+ foreign-key: user_key
+ - table-name: gl_journal_entries
+ keys:
+ - key: user_key
+ foreign-key: user_key
+- table-name: users
+ join:
+ - table-name: branches
+ keys:
+ - key: access.managed_branches.branch_key
+ foreign-key: encoded_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: centres
+ keys:
+ - key: access.managed_branches.branch_key
+ foreign-key: assigned_branch_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_transactions
+ keys:
+ - key: access.managed_branches.branch_key
+ foreign-key: branch_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: encoded_key
+ foreign-key: user_key
+ - table-name: groups
+ keys:
+ - key: access.managed_branches.branch_key
+ foreign-key: assigned_branch_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: encoded_key
+ foreign-key: assigned_user_key
+ - table-name: loan_accounts
+ keys:
+ - key: access.managed_branches.branch_key
+ foreign-key: assigned_branch_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: encoded_key
+ foreign-key: assigned_user_key
+ - table-name: loan_transactions
+ keys:
+ - key: access.managed_branches.branch_key
+ foreign-key: branch_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: encoded_key
+ foreign-key: user_key
+ - table-name: clients
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: encoded_key
+ foreign-key: assigned_user_key
+ - table-name: communications
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: encoded_key
+ foreign-key: user_key
+ - key: encoded_key
+ foreign-key: sender_key
+ - table-name: credit_arrangements
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: custom_field_sets
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_accounts
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_products
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_field_values.custom_field.custom_field_set.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field_id
+ - table-name: loan_products
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_field_values.custom_field.custom_field_set.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field_id
+ - table-name: tasks
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: encoded_key
+ foreign-key: created_by_user_key
+ - key: encoded_key
+ foreign-key: assigned_user_key
+ - table-name: activities
+ keys:
+ - key: encoded_key
+ foreign-key: user_key
+ - table-name: gl_journal_entries
+ keys:
+ - key: encoded_key
+ foreign-key: user_key
+- table-name: clients
+ join:
+ - table-name: centres
+ keys:
+ - key: assigned_centre_key
+ foreign-key: encoded_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_transactions
+ keys:
+ - key: assigned_centre_key
+ foreign-key: centre_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: groups
+ keys:
+ - key: assigned_centre_key
+ foreign-key: assigned_centre_key
+ - key: encoded_key
+ foreign-key: group_members.client_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_accounts
+ keys:
+ - key: assigned_centre_key
+ foreign-key: assigned_centre_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_transactions
+ keys:
+ - key: assigned_centre_key
+ foreign-key: centre_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: activities
+ keys:
+ - key: encoded_key
+ foreign-key: client_key
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: communications
+ keys:
+ - key: encoded_key
+ foreign-key: client_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: assigned_user_key
+ foreign-key: user_key
+ - key: assigned_user_key
+ foreign-key: sender_key
+ - table-name: branches
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: credit_arrangements
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: custom_field_sets
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_accounts
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_products
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_field_values.custom_field.custom_field_set.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field_id
+ - table-name: loan_products
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_field_values.custom_field.custom_field_set.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field_id
+ - table-name: tasks
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: assigned_user_key
+ foreign-key: created_by_user_key
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: users
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: assigned_user_key
+ foreign-key: encoded_key
+ - table-name: gl_journal_entries
+ keys:
+ - key: assigned_user_key
+ foreign-key: user_key
+- table-name: communications
+ join:
+ - table-name: activities
+ keys:
+ - key: client_key
+ foreign-key: client_key
+ - key: user_key
+ foreign-key: user_key
+ - key: sender_key
+ foreign-key: user_key
+ - table-name: clients
+ keys:
+ - key: client_key
+ foreign-key: encoded_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: user_key
+ foreign-key: assigned_user_key
+ - key: sender_key
+ foreign-key: assigned_user_key
+ - table-name: groups
+ keys:
+ - key: client_key
+ foreign-key: group_members.client_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: group_key
+ foreign-key: encoded_key
+ - key: user_key
+ foreign-key: assigned_user_key
+ - key: sender_key
+ foreign-key: assigned_user_key
+ - table-name: branches
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: centres
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: credit_arrangements
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: custom_field_sets
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_accounts
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: deposit_account_key
+ foreign-key: encoded_key
+ - table-name: deposit_products
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_field_values.custom_field.custom_field_set.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field_id
+ - table-name: deposit_transactions
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: user_key
+ foreign-key: user_key
+ - key: sender_key
+ foreign-key: user_key
+ - table-name: loan_accounts
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: deposit_account_key
+ foreign-key: disbursement_details.transaction_details.target_deposit_account_key
+ - key: deposit_account_key
+ foreign-key: funding_sources.deposit_account_key
+ - key: deposit_account_key
+ foreign-key: guarantors.deposit_account_key
+ - key: loan_account_key
+ foreign-key: encoded_key
+ - key: user_key
+ foreign-key: assigned_user_key
+ - key: sender_key
+ foreign-key: assigned_user_key
+ - table-name: loan_products
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_field_values.custom_field.custom_field_set.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field_id
+ - table-name: loan_transactions
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: user_key
+ foreign-key: user_key
+ - key: sender_key
+ foreign-key: user_key
+ - table-name: tasks
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: user_key
+ foreign-key: created_by_user_key
+ - key: sender_key
+ foreign-key: created_by_user_key
+ - key: user_key
+ foreign-key: assigned_user_key
+ - key: sender_key
+ foreign-key: assigned_user_key
+ - table-name: users
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: user_key
+ foreign-key: encoded_key
+ - key: sender_key
+ foreign-key: encoded_key
+ - table-name: gl_journal_entries
+ keys:
+ - key: user_key
+ foreign-key: user_key
+ - key: sender_key
+ foreign-key: user_key
+- table-name: credit_arrangements
+ join:
+ - table-name: deposit_accounts
+ keys:
+ - key: encoded_key
+ foreign-key: credit_arrangement_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: loan_accounts
+ keys:
+ - key: encoded_key
+ foreign-key: credit_arrangement_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: branches
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: centres
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: clients
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: communications
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: custom_field_sets
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_products
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_field_values.custom_field.custom_field_set.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field_id
+ - table-name: deposit_transactions
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: groups
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: loan_products
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_field_values.custom_field.custom_field_set.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field_id
+ - table-name: loan_transactions
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: tasks
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: users
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+- table-name: deposit_accounts
+ join:
+ - table-name: credit_arrangements
+ keys:
+ - key: credit_arrangement_key
+ foreign-key: encoded_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: loan_accounts
+ keys:
+ - key: credit_arrangement_key
+ foreign-key: credit_arrangement_key
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: encoded_key
+ foreign-key: disbursement_details.transaction_details.target_deposit_account_key
+ - key: encoded_key
+ foreign-key: funding_sources.deposit_account_key
+ - key: encoded_key
+ foreign-key: guarantors.deposit_account_key
+ - table-name: branches
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: centres
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: clients
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: communications
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: encoded_key
+ foreign-key: deposit_account_key
+ - table-name: custom_field_sets
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_products
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_field_values.custom_field.custom_field_set.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field_id
+ - table-name: deposit_transactions
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: groups
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: loan_products
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_field_values.custom_field.custom_field_set.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field_id
+ - table-name: loan_transactions
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: tasks
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: users
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+- table-name: custom_field_sets
+ join:
+ - table-name: branches
+ keys:
+ - key: id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: centres
+ keys:
+ - key: id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: clients
+ keys:
+ - key: id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: communications
+ keys:
+ - key: id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: credit_arrangements
+ keys:
+ - key: id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_accounts
+ keys:
+ - key: id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_products
+ keys:
+ - key: id
+ foreign-key: custom_field_values.custom_field.custom_field_set.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field_id
+ - table-name: deposit_transactions
+ keys:
+ - key: id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: groups
+ keys:
+ - key: id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: loan_accounts
+ keys:
+ - key: id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: loan_products
+ keys:
+ - key: id
+ foreign-key: custom_field_values.custom_field.custom_field_set.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field_id
+ - table-name: loan_transactions
+ keys:
+ - key: id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: tasks
+ keys:
+ - key: id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: users
+ keys:
+ - key: id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+- table-name: deposit_products
+ join:
+ - table-name: branches
+ keys:
+ - key: custom_field_values.custom_field.custom_field_set.id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_fields.id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+ - table-name: centres
+ keys:
+ - key: custom_field_values.custom_field.custom_field_set.id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_fields.id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+ - table-name: clients
+ keys:
+ - key: custom_field_values.custom_field.custom_field_set.id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_fields.id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+ - table-name: communications
+ keys:
+ - key: custom_field_values.custom_field.custom_field_set.id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_fields.id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+ - table-name: credit_arrangements
+ keys:
+ - key: custom_field_values.custom_field.custom_field_set.id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_fields.id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+ - table-name: custom_field_sets
+ keys:
+ - key: custom_field_values.custom_field.custom_field_set.id
+ foreign-key: id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_fields.id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+ - table-name: deposit_accounts
+ keys:
+ - key: custom_field_values.custom_field.custom_field_set.id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_fields.id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+ - table-name: deposit_transactions
+ keys:
+ - key: custom_field_values.custom_field.custom_field_set.id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_fields.id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+ - table-name: groups
+ keys:
+ - key: custom_field_values.custom_field.custom_field_set.id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_fields.id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+ - table-name: loan_accounts
+ keys:
+ - key: custom_field_values.custom_field.custom_field_set.id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_fields.id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+ - table-name: loan_products
+ keys:
+ - key: custom_field_values.custom_field.custom_field_set.id
+ foreign-key: custom_field_values.custom_field.custom_field_set.id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_field_values.custom_field_id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_field_values.custom_field_id
+ - table-name: loan_transactions
+ keys:
+ - key: custom_field_values.custom_field.custom_field_set.id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_fields.id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+ - table-name: tasks
+ keys:
+ - key: custom_field_values.custom_field.custom_field_set.id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_fields.id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+ - table-name: users
+ keys:
+ - key: custom_field_values.custom_field.custom_field_set.id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_fields.id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+- table-name: loan_products
+ join:
+ - table-name: branches
+ keys:
+ - key: custom_field_values.custom_field.custom_field_set.id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_fields.id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+ - table-name: centres
+ keys:
+ - key: custom_field_values.custom_field.custom_field_set.id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_fields.id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+ - table-name: clients
+ keys:
+ - key: custom_field_values.custom_field.custom_field_set.id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_fields.id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+ - table-name: communications
+ keys:
+ - key: custom_field_values.custom_field.custom_field_set.id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_fields.id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+ - table-name: credit_arrangements
+ keys:
+ - key: custom_field_values.custom_field.custom_field_set.id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_fields.id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+ - table-name: custom_field_sets
+ keys:
+ - key: custom_field_values.custom_field.custom_field_set.id
+ foreign-key: id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_fields.id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+ - table-name: deposit_accounts
+ keys:
+ - key: custom_field_values.custom_field.custom_field_set.id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_fields.id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+ - table-name: deposit_products
+ keys:
+ - key: custom_field_values.custom_field.custom_field_set.id
+ foreign-key: custom_field_values.custom_field.custom_field_set.id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_field_values.custom_field_id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_field_values.custom_field_id
+ - table-name: deposit_transactions
+ keys:
+ - key: custom_field_values.custom_field.custom_field_set.id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_fields.id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+ - table-name: groups
+ keys:
+ - key: custom_field_values.custom_field.custom_field_set.id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_fields.id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+ - table-name: loan_accounts
+ keys:
+ - key: custom_field_values.custom_field.custom_field_set.id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_fields.id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+ - table-name: loan_transactions
+ keys:
+ - key: custom_field_values.custom_field.custom_field_set.id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_fields.id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+ - table-name: tasks
+ keys:
+ - key: custom_field_values.custom_field.custom_field_set.id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_fields.id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+ - table-name: users
+ keys:
+ - key: custom_field_values.custom_field.custom_field_set.id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_field_values.custom_field.id
+ foreign-key: custom_fields.id
+ - key: custom_field_values.custom_field_id
+ foreign-key: custom_fields.id
+- table-name: tasks
+ join:
+ - table-name: branches
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: centres
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: clients
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: created_by_user_key
+ foreign-key: assigned_user_key
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: communications
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: created_by_user_key
+ foreign-key: user_key
+ - key: assigned_user_key
+ foreign-key: user_key
+ - key: created_by_user_key
+ foreign-key: sender_key
+ - key: assigned_user_key
+ foreign-key: sender_key
+ - table-name: credit_arrangements
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: custom_field_sets
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_accounts
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - table-name: deposit_products
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_field_values.custom_field.custom_field_set.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field_id
+ - table-name: deposit_transactions
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: created_by_user_key
+ foreign-key: user_key
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: groups
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: created_by_user_key
+ foreign-key: assigned_user_key
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_accounts
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: created_by_user_key
+ foreign-key: assigned_user_key
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_products
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_field_values.custom_field.custom_field_set.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field.id
+ - key: custom_fields.id
+ foreign-key: custom_field_values.custom_field_id
+ - table-name: loan_transactions
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: created_by_user_key
+ foreign-key: user_key
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: users
+ keys:
+ - key: custom_fields.field_set_id
+ foreign-key: custom_fields.field_set_id
+ - key: custom_fields.id
+ foreign-key: custom_fields.id
+ - key: created_by_user_key
+ foreign-key: encoded_key
+ - key: assigned_user_key
+ foreign-key: encoded_key
+ - table-name: activities
+ keys:
+ - key: created_by_user_key
+ foreign-key: user_key
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: gl_journal_entries
+ keys:
+ - key: created_by_user_key
+ foreign-key: user_key
+ - key: assigned_user_key
+ foreign-key: user_key
+- table-name: gl_accounts
+ join:
+ - table-name: gl_journal_entries
+ keys:
+ - key: gl_code
+ foreign-key: gl_account.gl_code
+- table-name: gl_journal_entries
+ join:
+ - table-name: gl_accounts
+ keys:
+ - key: gl_account.gl_code
+ foreign-key: gl_code
+ - table-name: activities
+ keys:
+ - key: user_key
+ foreign-key: user_key
+ - table-name: clients
+ keys:
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: communications
+ keys:
+ - key: user_key
+ foreign-key: user_key
+ - key: user_key
+ foreign-key: sender_key
+ - table-name: deposit_transactions
+ keys:
+ - key: user_key
+ foreign-key: user_key
+ - table-name: groups
+ keys:
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_accounts
+ keys:
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_transactions
+ keys:
+ - key: user_key
+ foreign-key: user_key
+ - table-name: tasks
+ keys:
+ - key: user_key
+ foreign-key: created_by_user_key
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: users
+ keys:
+ - key: user_key
+ foreign-key: encoded_key
diff --git a/_data/taps/schemas/mambu/v2/mambu-v2-tables.yml b/_data/taps/schemas/mambu/v2/mambu-v2-tables.yml
new file mode 100644
index 000000000..8634dd808
--- /dev/null
+++ b/_data/taps/schemas/mambu/v2/mambu-v2-tables.yml
@@ -0,0 +1,297 @@
+tap: mambu
+version: '2'
+tap-repo-schemas: true
+tables:
+- name: activities
+ description: 'This table contains information about activities.
+
+ '
+ links:
+ doc-link: https://support.mambu.com/docs/activities-api
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/activities.json
+ api-method: https://api.mambu.com/v1/#activities-get-all-activities
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: encoded_key
+ replication-key: timestamp
+- name: audit_trail
+ description: 'This table contains information about activities that have been performed
+ in the Mambu Core Banking system.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/audit_trail.json
+ api-method: https://support.mambu.com/docs/audit-trail
+ table-details:
+ replication-method: Key-based Incremental
+ replication-key: occurred_at
+- name: branches
+ description: 'This table contains information about branches.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/branches.json
+ api-method: https://api.mambu.com/?http#branches-getall
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: cards
+ description: 'This table contains information about cards.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/cards.json
+ api-method: https://api.mambu.com/?http#depositaccounts-getallcards
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - deposit_id
+ - reference_token
+ parent-table: deposit_account
+- name: centres
+ description: 'This table contains information about centres.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/centres.json
+ api-method: https://api.mambu.com/?http#centres-getall
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: clients
+ description: 'This table contains information about clients.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/clients.json
+ api-method: https://api.mambu.com/?http#clients-search
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: communications
+ description: 'This table contains information about communications.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/communications.json
+ api-method: https://api.mambu.com/?http#communications-search
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: encoded_key
+ replication-key: creation_date
+- name: credit_arrangements
+ description: 'This table contains information about credit arrangements.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/credit_arrangements.json
+ api-method: https://api.mambu.com/?http#creditarrangements-getall
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: custom_field_sets
+ description: 'This table contains information about custom field sets.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/custom_field_sets.json
+ api-method: https://api.mambu.com/v1/#custom-field-sets-get-custom-field-sets
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: deposit_accounts
+ description: 'This table contains information about deposit accounts.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/deposit_accounts.json
+ api-method: https://api.mambu.com/?http#deposit-accounts-search
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: deposit_products
+ description: 'This table contains information about deposit (savings) products.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/deposit_products.json
+ api-method: https://api.mambu.com/v1/#savings-products-get-savings-products
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: deposit_transactions
+ description: 'This table contains information about deposit transactions.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/deposit_transactions.json
+ api-method: https://api.mambu.com/?http#deposittransactions-search
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: encoded_key
+ replication-key: creation_date
+- name: gl_accounts
+ description: 'This table contains information about general ledger accounts.
+
+ '
+ links:
+ doc-link: https://support.mambu.com/docs/gl-accounts-api
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/gl_accounts.json
+ api-method: https://api.mambu.com/v1/#general-ledger-accounts-get-all-gl-accounts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: gl_code
+ replication-key: last_modified_date
+- name: gl_journal_entries
+ description: 'This table contains information about general ledger entries.
+
+ '
+ links:
+ doc-link: https://support.mambu.com/docs/gl-journal-entries-api
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/gl_journal_entries.json
+ api-method: https://api.mambu.com/v1/#gl-journal-entries-search-for-gl-journal-entries
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: entry_id
+ replication-key: booking_date
+- name: groups
+ description: 'This table contains information about groups.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/groups.json
+ api-method: https://api.mambu.com/?http#groups-search
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: index_rate_sources
+ description: 'This table contains information about index rate sources.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/index_rate_sources.json
+ api-method: https://api.mambu.com/#mambu-api-v2-index-rate-sources
+ table-details:
+ replication-method: Full Table
+ primary-key: encoded_key
+- name: installments
+ description: 'This table contains information about installments for a loan.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/#mambu-api-v2-installments
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/installments.json
+ api-method: https://api.mambu.com/#installments-getall
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: encoded_key
+ replication-key: last_paid_date
+- name: loan_accounts
+ description: This table contains information about Loan Accounts.
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/loan_accounts.json
+ api-method: https://api.mambu.com/?http#loan-accounts-search
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: loan_products
+ description: 'This table contains information about loan products.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/loan_products.json
+ api-method: https://api.mambu.com/v1/#loan-products-get-all-loan-products
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: loan_repayments
+ description: 'This is a child table of `loan_accounts`, containing information exclusively
+ about loan repayments.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/loan_repayments.json
+ api-method: https://api.mambu.com/v1/#loan-accounts-get-repayments-for-a-loan-account
+ table-details:
+ replication-method: Full Table
+ primary-key: encoded_key
+ parent-table: loan_account
+- name: loan_transactions
+ description: 'This table contains information about loan transactions.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/loan_transactions.json
+ api-method: https://api.mambu.com/?http#loantransactions-getall
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: encoded_key
+ replication-key: creation_date
+- name: tasks
+ description: 'This table contains information about tasks.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/tasks.json
+ api-method: https://api.mambu.com/?http#tasks-getall
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: users
+ description: 'This table contains information about users.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/users.json
+ api-method: https://api.mambu.com/?http#users-getall
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: loan_products
+ description: 'This table contains information about loan products.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/loan_products.json
+ api-method: https://api.mambu.com/v1/#loan-products-get-all-loan-products
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: interest_accrual_breakdown
+ description: This table contains information about interest accruals.
+ links:
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/helpers/schemas/interest_accrual_breakdown.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: entry_id
+ replication-key: creation_date
diff --git a/_data/taps/schemas/mambu/v4/json/activities.json b/_data/taps/schemas/mambu/v4/json/activities.json
new file mode 100644
index 000000000..d8b61820e
--- /dev/null
+++ b/_data/taps/schemas/mambu/v4/json/activities.json
@@ -0,0 +1,238 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "assigned_centre_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "branch_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "centre_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "centre_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "client_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "client_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field_changes": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field_change_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field_detail_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field_detail_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "new_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "gl_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gl_accounts_closure_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_of_credit_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "loan_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "loan_account_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "loan_product_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "loan_product_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "savings_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "savings_account_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "savings_product_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "savings_product_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "task_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "task_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v4/json/audit_trail.json b/_data/taps/schemas/mambu/v4/json/audit_trail.json
new file mode 100644
index 000000000..cb00e2cc3
--- /dev/null
+++ b/_data/taps/schemas/mambu/v4/json/audit_trail.json
@@ -0,0 +1,78 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "client_ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "occurred_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "request_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "request_payload": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "request_uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_fragment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "response_code": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "response_payload": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_agent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v4/json/branches.json b/_data/taps/schemas/mambu/v4/json/branches.json
new file mode 100644
index 000000000..d28e2aec3
--- /dev/null
+++ b/_data/taps/schemas/mambu/v4/json/branches.json
@@ -0,0 +1,208 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "addresses": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "parent_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postcode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "branch_holidays": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_annually_recurring": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v4/json/cards.json b/_data/taps/schemas/mambu/v4/json/cards.json
new file mode 100644
index 000000000..1dafd85af
--- /dev/null
+++ b/_data/taps/schemas/mambu/v4/json/cards.json
@@ -0,0 +1,18 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "deposit_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v4/json/centres.json b/_data/taps/schemas/mambu/v4/json/centres.json
new file mode 100644
index 000000000..f701a0485
--- /dev/null
+++ b/_data/taps/schemas/mambu/v4/json/centres.json
@@ -0,0 +1,156 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "addresses": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "parent_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postcode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "assigned_branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "meeting_day": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v4/json/clients.json b/_data/taps/schemas/mambu/v4/json/clients.json
new file mode 100644
index 000000000..34a544dce
--- /dev/null
+++ b/_data/taps/schemas/mambu/v4/json/clients.json
@@ -0,0 +1,462 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "activation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "addresses": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "parent_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postcode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "approved_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "assigned_branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_centre_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "birth_date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "client_role_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "closed_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gender": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_keys": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "group_loan_cycle": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "home_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id_documents": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "attachments": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "file_size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "location": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "client_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "document_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "document_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "identification_document_template_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "issuing_authority": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "valid_until": {
+ "type": [
+ "null",
+ "date"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "loan_cycle": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "middle_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "migration_event_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mobile_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mobile_phone2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "portal_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_logged_in_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "portal_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "preferred_language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "profile_picture_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "profile_signature_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v4/json/communications.json b/_data/taps/schemas/mambu/v4/json/communications.json
new file mode 100644
index 000000000..ac2adb3aa
--- /dev/null
+++ b/_data/taps/schemas/mambu/v4/json/communications.json
@@ -0,0 +1,146 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "client_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "deposit_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "failure_cause": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "failure_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "loan_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "num_retries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repayment_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "send_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "sender_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "template_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v4/json/credit_arrangements.json b/_data/taps/schemas/mambu/v4/json/credit_arrangements.json
new file mode 100644
index 000000000..e7248387d
--- /dev/null
+++ b/_data/taps/schemas/mambu/v4/json/credit_arrangements.json
@@ -0,0 +1,137 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "approved_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "available_credit_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "closed_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "consumed_credit_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expire_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "exposure_limit_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "holder_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sub_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v4/json/custom_field_sets.json b/_data/taps/schemas/mambu/v4/json/custom_field_sets.json
new file mode 100644
index 000000000..6ee0af480
--- /dev/null
+++ b/_data/taps/schemas/mambu/v4/json/custom_field_sets.json
@@ -0,0 +1,280 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "available_for": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "dependent_field_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "built_in_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field_size": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "edit_rights": {
+ "additionalProperties": false,
+ "properties": {
+ "all_users": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "roles": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "selection_options": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "available_options": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "score": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "selection_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "for_selection_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "for_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "object_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "value_validation_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "unique": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "validation_pattern": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "view_rights": {
+ "additionalProperties": false,
+ "properties": {
+ "all_users": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "roles": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v4/json/deposit_accounts.json b/_data/taps/schemas/mambu/v4/json/deposit_accounts.json
new file mode 100644
index 000000000..c3cb45b19
--- /dev/null
+++ b/_data/taps/schemas/mambu/v4/json/deposit_accounts.json
@@ -0,0 +1,636 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_holder_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accrued_amounts": {
+ "additionalProperties": false,
+ "properties": {
+ "interest_accrued": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "negative_interest_accrued": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "overdraft_interest_accrued": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "technical_overdraft_interest_accrued": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "activation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "approved_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "assigned_branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_centre_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "balances": {
+ "additionalProperties": false,
+ "properties": {
+ "available_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "blocked_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fees_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "forward_available_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "hold_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "locked_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "overdraft_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "overdraft_interest_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "technical_overdraft_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "technical_overdraft_interest_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "closed_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "credit_arrangement_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "interest_payment_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "interest_payment_dates": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "interest_payment_point": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "interest_rate_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_rate_review_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate_review_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_terms": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_tiers": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ending_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ending_day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "interest_spread": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "internal_controls": {
+ "additionalProperties": false,
+ "properties": {
+ "max_deposit_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "max_withdrawal_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "recommended_deposit_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "target_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_account_appraisal_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_interest_calculation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_interest_stored_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_overdraft_interest_review_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_set_to_arrears_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "linked_settlement_account_keys": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "locked_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "maturity_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "migration_event_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "overdraft_interest_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "interest_rate_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_rate_review_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate_review_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_terms": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_tiers": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ending_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ending_day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "interest_spread": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "overdraft_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "allow_overdraft": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "overdraft_expiry_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "overdraft_limit": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "product_type_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "withholding_tax_source_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v4/json/deposit_products.json b/_data/taps/schemas/mambu/v4/json/deposit_products.json
new file mode 100644
index 000000000..aeced6e35
--- /dev/null
+++ b/_data/taps/schemas/mambu/v4/json/deposit_products.json
@@ -0,0 +1,927 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "accounting_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "accounting_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accounting_rules": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "financial_resource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gl_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "interest_accrued_accounting_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "availability_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "available_for": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "branch_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "available_product_branches": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "for_all_branches": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "credit_arrangement_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "credit_arrangement_requirement": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "currency_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "currencies": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fees_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "allow_arbitrary_fees": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "fees": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "accounting_rules": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "financial_resource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gl_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "amount_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "apply_date_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fee_application": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trigger": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "collect_interest_when_locked": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "days_in_year": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_calculation_balance": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_paid_into_account": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "interest_payment_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "interest_payment_dates": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "interest_payment_point": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "interest_rate_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "accrue_interest_after_maturity": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_negative_interest_rate": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_source_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate": {
+ "additionalProperties": false,
+ "properties": {
+ "default_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "max_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "min_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "interest_rate_review_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate_review_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_terms": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_tiers": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ending_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ending_day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "maximum_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "internal_controls": {
+ "additionalProperties": false,
+ "properties": {
+ "dormancy_period_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "max_withdrawal_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "opening_balance": {
+ "additionalProperties": false,
+ "properties": {
+ "default_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "max_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "min_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "recommended_deposit_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "maturity_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "maturity_period": {
+ "additionalProperties": false,
+ "properties": {
+ "default_value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "max_value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "min_value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "maturity_period_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "new_account_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "id_generator_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id_pattern": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "offset_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "allow_offset": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "overdraft_interest_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "days_in_year": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_calculation_balance": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "index_source_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate": {
+ "additionalProperties": false,
+ "properties": {
+ "default_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "max_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "min_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "interest_rate_review_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate_review_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_terms": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_tiers": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ending_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "overdraft_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "allow_overdraft": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_technical_overdraft": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "max_overdraft_limit": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "withholding_tax_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "templates": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v4/json/deposit_transactions.json b/_data/taps/schemas/mambu/v4/json/deposit_transactions.json
new file mode 100644
index 000000000..6e10ec678
--- /dev/null
+++ b/_data/taps/schemas/mambu/v4/json/deposit_transactions.json
@@ -0,0 +1,825 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_balances": {
+ "additionalProperties": false,
+ "properties": {
+ "total_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "adjustment_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "affected_amounts": {
+ "additionalProperties": false,
+ "properties": {
+ "fees_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fraction_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "funds_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "overdraft_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "overdraft_fees_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "overdraft_interest_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "technical_overdraft_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "technical_overdraft_interest_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "block_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "booking_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_transaction": {
+ "additionalProperties": false,
+ "properties": {
+ "advice": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "card_acceptor": {
+ "additionalProperties": false,
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mcc": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "street": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_authorization_reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_transaction_time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "centre_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fees": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "predefined_fee_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "trigger": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "hold_external_reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_accrued_amounts": {
+ "additionalProperties": false,
+ "properties": {
+ "interest_accrued": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "negative_interest_accrued": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "overdraft_interest_accrued": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "technical_overdraft_interest_accrued": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "migration_event_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_details": {
+ "additionalProperties": false,
+ "properties": {
+ "creditor": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "creditor_account": {
+ "additionalProperties": false,
+ "properties": {
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "identification": {
+ "additionalProperties": false,
+ "properties": {
+ "iban": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "other": {
+ "additionalProperties": false,
+ "properties": {
+ "identification": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "creditor_agent": {
+ "additionalProperties": false,
+ "properties": {
+ "financial_institution_identification": {
+ "additionalProperties": false,
+ "properties": {
+ "bic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "debtor": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "debtor_account": {
+ "additionalProperties": false,
+ "properties": {
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "identification": {
+ "additionalProperties": false,
+ "properties": {
+ "iban": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "other": {
+ "additionalProperties": false,
+ "properties": {
+ "identification": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "debtor_agent": {
+ "additionalProperties": false,
+ "properties": {
+ "financial_institution_identification": {
+ "additionalProperties": false,
+ "properties": {
+ "bic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "payment_identification": {
+ "additionalProperties": false,
+ "properties": {
+ "end_to_end_identification": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "instruction_identification": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_identification": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "payment_type_information": {
+ "additionalProperties": false,
+ "properties": {
+ "service_level": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "remittance_information": {
+ "additionalProperties": false,
+ "properties": {
+ "structured": {
+ "additionalProperties": false,
+ "properties": {
+ "creditor_reference_information": {
+ "additionalProperties": false,
+ "properties": {
+ "reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_issuer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "unstructured": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "payment_order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxes": {
+ "additionalProperties": false,
+ "properties": {
+ "tax_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "terms": {
+ "additionalProperties": false,
+ "properties": {
+ "interest_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "index_interest_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "overdraft_interest_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "index_interest_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "overdraft_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "overdraft_limit": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "till_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_details": {
+ "additionalProperties": false,
+ "properties": {
+ "transaction_channel_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_channel_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "transfer_details": {
+ "additionalProperties": false,
+ "properties": {
+ "linked_deposit_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "linked_loan_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v4/json/gl_accounts.json b/_data/taps/schemas/mambu/v4/json/gl_accounts.json
new file mode 100644
index 000000000..190d900af
--- /dev/null
+++ b/_data/taps/schemas/mambu/v4/json/gl_accounts.json
@@ -0,0 +1,113 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "activated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_manual_journal_entries": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gl_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "migration_event_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "strip_trailing_zeros": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v4/json/gl_journal_entries.json b/_data/taps/schemas/mambu/v4/json/gl_journal_entries.json
new file mode 100644
index 000000000..85c7262d9
--- /dev/null
+++ b/_data/taps/schemas/mambu/v4/json/gl_journal_entries.json
@@ -0,0 +1,281 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "assigned_branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "booking_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entry_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "foreign_amount": {
+ "additionalProperties": false,
+ "properties": {
+ "accounting_rate": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "from_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "to_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "currency": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "gl_account": {
+ "additionalProperties": false,
+ "properties": {
+ "activated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_manual_journal_entries": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gl_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "migration_event_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "strip_trailing_zeros": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reversal_entry_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v4/json/groups.json b/_data/taps/schemas/mambu/v4/json/groups.json
new file mode 100644
index 000000000..774bebd3e
--- /dev/null
+++ b/_data/taps/schemas/mambu/v4/json/groups.json
@@ -0,0 +1,260 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "addresses": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "parent_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postcode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "assigned_branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_centre_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_members": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "client_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "roles": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_role_name_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role_name_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "group_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_role_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "home_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "loan_cycle": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "migration_event_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mobile_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preferred_language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v4/json/index_rate_sources.json b/_data/taps/schemas/mambu/v4/json/index_rate_sources.json
new file mode 100644
index 000000000..3b9876800
--- /dev/null
+++ b/_data/taps/schemas/mambu/v4/json/index_rate_sources.json
@@ -0,0 +1,50 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "custom_fields": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v4/json/installments.json b/_data/taps/schemas/mambu/v4/json/installments.json
new file mode 100644
index 000000000..7abd0e868
--- /dev/null
+++ b/_data/taps/schemas/mambu/v4/json/installments.json
@@ -0,0 +1,399 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "custom_fields": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "due_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fee": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "additionalProperties": false,
+ "properties": {
+ "due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expected": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expected_unapplied": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tax": {
+ "additionalProperties": false,
+ "properties": {
+ "due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expected": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "fee_details": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "additionalProperties": false,
+ "properties": {
+ "due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expected": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "reduced": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax": {
+ "additionalProperties": false,
+ "properties": {
+ "due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expected": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "reduced": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "interest": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "additionalProperties": false,
+ "properties": {
+ "due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expected": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tax": {
+ "additionalProperties": false,
+ "properties": {
+ "due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expected": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "is_payment_holiday": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_paid_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "penalty": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "additionalProperties": false,
+ "properties": {
+ "due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expected": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tax": {
+ "additionalProperties": false,
+ "properties": {
+ "due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expected": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "principal": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "additionalProperties": false,
+ "properties": {
+ "due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expected": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "repaid_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v4/json/interest_accrual_breakdown.json b/_data/taps/schemas/mambu/v4/json/interest_accrual_breakdown.json
new file mode 100644
index 000000000..8f9bdb5b1
--- /dev/null
+++ b/_data/taps/schemas/mambu/v4/json/interest_accrual_breakdown.json
@@ -0,0 +1,203 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "booking_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "branch_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "entry_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "entry_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "foreign_amount": {
+ "additionalProperties": false,
+ "properties": {
+ "accounting_rate": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "from_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "to_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "currency": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "gl_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gl_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gl_account_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gl_account_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_entry_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v4/json/loan_accounts.json b/_data/taps/schemas/mambu/v4/json/loan_accounts.json
new file mode 100644
index 000000000..555ccc750
--- /dev/null
+++ b/_data/taps/schemas/mambu/v4/json/loan_accounts.json
@@ -0,0 +1,1388 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_arrears_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "date_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "monthly_tolerance_day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "non_working_days_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tolerance_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tolerance_floor_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tolerance_percentage_of_outstanding_principal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tolerance_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "account_holder_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_sub_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accrued_interest": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "accrued_penalty": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "activation_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "allow_offset": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "approved_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "arrears_tolerance_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "assets": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "asset_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deposit_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "guarantor_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "guarantor_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "original_currency": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "assigned_branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_centre_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "balances": {
+ "additionalProperties": false,
+ "properties": {
+ "fees_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fees_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fees_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "hold_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_from_arrears_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_from_arrears_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_from_arrears_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "penalty_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "penalty_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "penalty_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "redraw_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "closed_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "credit_arrangement_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "days_in_arrears": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "days_late": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "disbursement_details": {
+ "additionalProperties": false,
+ "properties": {
+ "disbursement_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expected_disbursement_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "fees": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "predefined_fee_encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "first_repayment_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "transaction_details": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "internal_transfer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "target_deposit_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_channel_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_channel_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding_sources": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "asset_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deposit_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "guarantor_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "guarantor_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_commission": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "share_percentage": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "future_payments_acceptance": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "guarantors": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "asset_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deposit_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "guarantor_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "guarantor_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_accrued_in_billing_cycle": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_commission": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_from_arrears_accrued": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "account_interest_rate_settings": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_source_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_rate_ceiling_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_rate_floor_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_rate_review_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate_review_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_spread": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "valid_from": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "accrue_interest_after_maturity": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "accrue_late_interest": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "interest_application_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_balance_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_rate_review_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate_review_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_spread": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_account_appraisal_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_interest_applied_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_interest_review_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_locked_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_set_to_arrears_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_tax_rate_review_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "late_payments_recalculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "loan_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "loan_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locked_operations": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "migration_event_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modify_interest_for_first_installment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_holidays_accrued_interest": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "penalty_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "loan_penalty_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "penalty_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "planned_installment_fees": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "apply_on_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "installment_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "installment_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "predefined_fee_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "prepayment_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "apply_interest_on_prepayment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "elements_recalculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prepayment_recalculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "principal_paid_installment_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "principal_payment_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "include_fees_in_floor_amount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "include_interest_in_floor_amount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "percentage": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_ceiling_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_floor_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_due_amount_floor": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_due_payment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "product_type_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "redraw_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "restrict_next_due_withdrawal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "rescheduled_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "schedule_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "billing_cycle": {
+ "additionalProperties": false,
+ "properties": {
+ "days": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "default_first_repayment_due_date_offset": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fixed_days_of_month": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "grace_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "grace_period_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_custom_schedule": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "payment_plan": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to_installment": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "periodic_payment": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "preview_schedule": {
+ "additionalProperties": false,
+ "properties": {
+ "number_of_previewed_instalments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "principal_repayment_interval": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "repayment_installments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "repayment_period_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "repayment_period_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repayment_schedule_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "schedule_due_dates_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "short_month_handling_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "settlement_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "termination_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "tranches": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "disbursement_details": {
+ "additionalProperties": false,
+ "properties": {
+ "disbursement_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expected_disbursement_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fees": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "predefined_fee_encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "tranche_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v4/json/loan_products.json b/_data/taps/schemas/mambu/v4/json/loan_products.json
new file mode 100644
index 000000000..784772f55
--- /dev/null
+++ b/_data/taps/schemas/mambu/v4/json/loan_products.json
@@ -0,0 +1,1800 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_link_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "linkable_deposit_product_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "linked_account_options": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "settlement_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "accounting_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "accounting_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accounting_rules": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "financial_resource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gl_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_channel_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "interest_accrual_calculation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_accrued_accounting_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "adjust_interest_for_first_installment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_custom_repayment_allocation": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "arrears_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "date_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "monthly_tolerance_day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "non_working_days_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tolerance_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tolerance_floor_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tolerance_percentage_of_outstanding_principal": {
+ "additionalProperties": false,
+ "properties": {
+ "default_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "max_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "min_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tolerance_period": {
+ "additionalProperties": false,
+ "properties": {
+ "default_value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "min_value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "availability_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "available_for": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "branch_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "available_product_branches": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "for_all_branches": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "credit_arrangement_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "credit_arrangement_requirement": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "currency": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fees_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "allow_arbitrary_fees": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "fees": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "accounting_rules": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "financial_resource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gl_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_channel_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "amortization_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "amortization_profile": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fee_amortization_upon_reschedule_refinance_option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "frequency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interval_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "period_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "period_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "amount_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "apply_date_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fee_application": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percentage_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "taxable_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trigger": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "funding_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "funder_interest_commission": {
+ "additionalProperties": false,
+ "properties": {
+ "default_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "min_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "funder_interest_commission_allocation_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lock_funds_at_approval": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "organization_interest_commission": {
+ "additionalProperties": false,
+ "properties": {
+ "default_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "min_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "required_funds": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "grace_period_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "grace_period": {
+ "additionalProperties": false,
+ "properties": {
+ "default_value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "min_value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "grace_period_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "accrue_late_interest": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "compounding_frequency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "days_in_year": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_rate_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "accrue_interest_after_maturity": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_negative_interest_rate": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_source_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_charge_frequency_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate": {
+ "additionalProperties": false,
+ "properties": {
+ "default_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "max_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "min_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "interest_rate_ceiling_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_rate_floor_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_rate_review_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate_review_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_terms": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_tiers": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ending_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "interest_application_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_balance_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_settings": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "index_source_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate": {
+ "additionalProperties": false,
+ "properties": {
+ "default_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "max_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "min_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "interest_rate_ceiling_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_rate_floor_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_rate_review_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interest_rate_review_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interest_rate_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "interest_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "schedule_interest_days_count_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "internal_controls": {
+ "additionalProperties": false,
+ "properties": {
+ "dormancy_period_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "four_eyes_principle": {
+ "additionalProperties": false,
+ "properties": {
+ "active_for_loan_approval": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "lock_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "capping_constraint_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "capping_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "capping_percentage": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "lock_period_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "loan_amount_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "loan_amount": {
+ "additionalProperties": false,
+ "properties": {
+ "default_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "min_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tranche_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "max_number_of_tranches": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "new_account_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "account_initial_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id_generator_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id_pattern": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "offset_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "allow_offset": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "payment_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "amortization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "late_payments_recalculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prepayment_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "apply_interest_on_prepayment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "elements_recalculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "future_payments_acceptance": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prepayment_acceptance": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prepayment_recalculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "principal_paid_installment_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "principal_payment_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "additionalProperties": false,
+ "properties": {
+ "default_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "min_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "default_principal_repayment_interval": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "include_fees_in_floor_amount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "include_interest_in_floor_amount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "percentage": {
+ "additionalProperties": false,
+ "properties": {
+ "default_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "min_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "principal_ceiling_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_floor_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_due_amount_floor": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_due_payment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "repayment_allocation_order": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "penalty_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "loan_penalty_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "loan_penalty_grace_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "penalty_rate": {
+ "additionalProperties": false,
+ "properties": {
+ "default_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "min_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "redraw_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "allow_redraw": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "schedule_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "billing_cycles": {
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "start_days": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "default_repayment_period_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "first_repayment_due_date_offset": {
+ "additionalProperties": false,
+ "properties": {
+ "default_value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "min_value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "fixed_days_of_month": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "interest_accrual_since": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "num_installments": {
+ "additionalProperties": false,
+ "properties": {
+ "default_value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "min_value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "preview_schedule": {
+ "additionalProperties": false,
+ "properties": {
+ "number_of_previewed_instalments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "preview_schedule_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "repayment_period_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repayment_rescheduling_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repayment_schedule_edit_options": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "repayment_schedule_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rounding_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "repayment_currency_rounding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repayment_elements_rounding_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rounding_repayment_schedule_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "schedule_due_dates_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "short_month_handling_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "security_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "is_collateral_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_guarantors_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "required_guaranties": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "tax_calculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_source_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxes_on_fees_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "taxes_on_interest_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "taxes_on_penalty_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "templates": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v4/json/loan_repayments.json b/_data/taps/schemas/mambu/v4/json/loan_repayments.json
new file mode 100644
index 000000000..3eec85548
--- /dev/null
+++ b/_data/taps/schemas/mambu/v4/json/loan_repayments.json
@@ -0,0 +1,278 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "assigned_branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_centre_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_settings": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "loan_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "due_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fees_applied_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fees_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fees_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fees_unapplied_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "funders_interest_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "index": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "last_paid_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_penalty_applied_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organization_commission_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "parent_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "penalty_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "penalty_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "repaid_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "repayment_unapplied_fee_details": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fee_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "index_in_list": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "predefined_fee_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "repayment_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_on_fee_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_fees_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_fees_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_interest_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_interest_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_penalty_due": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_penalty_paid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v4/json/loan_transactions.json b/_data/taps/schemas/mambu/v4/json/loan_transactions.json
new file mode 100644
index 000000000..bce3527f0
--- /dev/null
+++ b/_data/taps/schemas/mambu/v4/json/loan_transactions.json
@@ -0,0 +1,610 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_balances": {
+ "additionalProperties": false,
+ "properties": {
+ "advance_position": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "arrears_position": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "expected_principal_redraw": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "redraw_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "adjustment_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "affected_amounts": {
+ "additionalProperties": false,
+ "properties": {
+ "deferred_interest_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fees_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "funders_interest_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_from_arrears_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "organization_commission_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "payment_holidays_interest_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "penalty_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "booking_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_transaction": {
+ "additionalProperties": false,
+ "properties": {
+ "advice": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "card_acceptor": {
+ "additionalProperties": false,
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mcc": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "street": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_authorization_reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_transaction_time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "centre_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "custom_payment_amounts": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "custom_payment_amount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "predefined_fee_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_on_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fees": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "predefined_fee_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "trigger": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "installment_encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "migration_event_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "original_currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_account_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_loan_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prepayment_recalculation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxes": {
+ "additionalProperties": false,
+ "properties": {
+ "deferred_tax_on_interest_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_on_fees_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_on_interest_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_on_interest_from_arrears_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_on_payment_holidays_interest": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_on_penalty_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "terms": {
+ "additionalProperties": false,
+ "properties": {
+ "interest_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "index_interest_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "interest_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "periodic_payment": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_payment_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "principal_payment_percentage": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "till_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_details": {
+ "additionalProperties": false,
+ "properties": {
+ "transaction_channel_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_channel_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "transfer_details": {
+ "additionalProperties": false,
+ "properties": {
+ "linked_deposit_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "linked_loan_transaction_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v4/json/tasks.json b/_data/taps/schemas/mambu/v4/json/tasks.json
new file mode 100644
index 000000000..d47209ade
--- /dev/null
+++ b/_data/taps/schemas/mambu/v4/json/tasks.json
@@ -0,0 +1,104 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "assigned_user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by_full_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_by_user_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "due_date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "task_link_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "task_link_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "template_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v4/json/users.json b/_data/taps/schemas/mambu/v4/json/users.json
new file mode 100644
index 000000000..fe79fee24
--- /dev/null
+++ b/_data/taps/schemas/mambu/v4/json/users.json
@@ -0,0 +1,247 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "access": {
+ "additionalProperties": false,
+ "properties": {
+ "administrator_access": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "api_access": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "can_manage_all_branches": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "can_manage_entities_assigned_to_other_officers": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "credit_officer_access": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "delivery_access": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mambu_access": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "managed_branches": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "permissions": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "support_access": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "teller_access": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "assigned_branch_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "home_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_logged_in_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mobile_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role": {
+ "additionalProperties": false,
+ "properties": {
+ "encoded_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_limits": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "two_factor_authentication": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "user_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mambu/v4/mambu-v4-foreign-keys.yml b/_data/taps/schemas/mambu/v4/mambu-v4-foreign-keys.yml
new file mode 100644
index 000000000..011e8c2df
--- /dev/null
+++ b/_data/taps/schemas/mambu/v4/mambu-v4-foreign-keys.yml
@@ -0,0 +1,952 @@
+tap: mambu
+version: '4'
+keys:
+ activities_encoded_key:
+ - table: activities
+ keys:
+ - encoded_key
+ branches_encoded_key:
+ - table: branches
+ keys:
+ - encoded_key
+ - table: centres
+ keys:
+ - assigned_branch_key
+ - table: deposit_transactions
+ keys:
+ - branch_key
+ - table: groups
+ keys:
+ - assigned_branch_key
+ - table: loan_accounts
+ keys:
+ - assigned_branch_key
+ - table: loan_transactions
+ keys:
+ - branch_key
+ - table: users
+ keys:
+ - access.managed_branches.branch_key
+ centres_encoded_key:
+ - table: centres
+ keys:
+ - encoded_key
+ - table: clients
+ keys:
+ - assigned_centre_key
+ - table: deposit_transactions
+ keys:
+ - centre_key
+ - table: groups
+ keys:
+ - assigned_centre_key
+ - table: loan_accounts
+ keys:
+ - assigned_centre_key
+ - table: loan_transactions
+ keys:
+ - centre_key
+ clients_client_key:
+ - table: activities
+ keys:
+ - client_key
+ - table: clients
+ keys:
+ - encoded_key
+ - table: communications
+ keys:
+ - client_key
+ - table: groups
+ keys:
+ - group_members.client_key
+ communications_encoded_key:
+ - table: communications
+ keys:
+ - encoded_key
+ credit_arrangements_credit_arrangement_key:
+ - table: credit_arrangements
+ keys:
+ - encoded_key
+ - table: deposit_accounts
+ keys:
+ - credit_arrangement_key
+ - table: loan_accounts
+ keys:
+ - credit_arrangement_key
+ custom_field_sets_custom_fields.field_set_id:
+ - table: custom_field_sets
+ keys:
+ - id
+ deposits_deposit_id:
+ - table: cards
+ keys:
+ - deposit_id
+ deposit_accounts_deposit_account_key:
+ - table: communications
+ keys:
+ - deposit_account_key
+ - table: deposit_accounts
+ keys:
+ - encoded_key
+ - table: loan_accounts
+ keys:
+ - disbursement_details.transaction_details.target_deposit_account_key
+ - funding_sources.deposit_account_key
+ - guarantors.deposit_account_key
+ deposit_products_id:
+ - table: deposit_products
+ keys:
+ - id
+ deposit_transactions_transfer_details.linked_deposit_transaction_key:
+ - table: deposit_transactions
+ keys:
+ - transfer_details.linked_deposit_transaction_key
+ - table: loan_transactions
+ keys:
+ - transfer_details.linked_deposit_transaction_key
+ gl_accounts_gl_code:
+ - table: gl_accounts
+ keys:
+ - gl_code
+ - table: gl_journal_entries
+ keys:
+ - gl_account.gl_code
+ groups_group_key:
+ - table: communications
+ keys:
+ - group_key
+ - table: groups
+ keys:
+ - encoded_key
+ index_rate_sources_:
+ - table: index_rate_sources
+ keys:
+ - ''
+ installments_:
+ - table: installments
+ keys:
+ - encoded_key
+ loan_accounts_encoded_key:
+ - table: communications
+ keys:
+ - loan_account_key
+ - table: loan_accounts
+ keys:
+ - encoded_key
+ loan_products_:
+ - table: loan_products
+ keys:
+ - encoded_key
+ loan_transactions_linked_loan_transaction_key:
+ - table: deposit_transactions
+ keys:
+ - transfer_details.linked_loan_transaction_key
+ - table: loan_transactions
+ keys:
+ - encoded_key
+ - parent_loan_transaction_key
+ - transfer_details.linked_loan_transaction_key
+ users_user_key:
+ - table: activities
+ keys:
+ - user_key
+ - table: clients
+ keys:
+ - assigned_user_key
+ - table: communications
+ keys:
+ - user_key
+ - sender_key
+ - table: deposit_transactions
+ keys:
+ - user_key
+ - table: gl_journal_entries
+ keys:
+ - user_key
+ - table: groups
+ keys:
+ - assigned_user_key
+ - table: loan_accounts
+ keys:
+ - assigned_user_key
+ - table: loan_transactions
+ keys:
+ - user_key
+ - table: tasks
+ keys:
+ - created_by_user_key
+ - assigned_user_key
+ - table: users
+ keys:
+ - encoded_key
+tables:
+- table-name: activities
+ join:
+ - table-name: clients
+ keys:
+ - key: client_key
+ foreign-key: encoded_key
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: communications
+ keys:
+ - key: client_key
+ foreign-key: client_key
+ - key: user_key
+ foreign-key: user_key
+ - key: user_key
+ foreign-key: sender_key
+ - table-name: groups
+ keys:
+ - key: client_key
+ foreign-key: group_members.client_key
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: deposit_transactions
+ keys:
+ - key: user_key
+ foreign-key: user_key
+ - table-name: gl_journal_entries
+ keys:
+ - key: user_key
+ foreign-key: user_key
+ - table-name: loan_accounts
+ keys:
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_transactions
+ keys:
+ - key: user_key
+ foreign-key: user_key
+ - table-name: tasks
+ keys:
+ - key: user_key
+ foreign-key: created_by_user_key
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: users
+ keys:
+ - key: user_key
+ foreign-key: encoded_key
+- table-name: branches
+ join:
+ - table-name: centres
+ keys:
+ - key: encoded_key
+ foreign-key: assigned_branch_key
+ - table-name: deposit_transactions
+ keys:
+ - key: encoded_key
+ foreign-key: branch_key
+ - table-name: groups
+ keys:
+ - key: encoded_key
+ foreign-key: assigned_branch_key
+ - table-name: loan_accounts
+ keys:
+ - key: encoded_key
+ foreign-key: assigned_branch_key
+ - table-name: loan_transactions
+ keys:
+ - key: encoded_key
+ foreign-key: branch_key
+ - table-name: users
+ keys:
+ - key: encoded_key
+ foreign-key: access.managed_branches.branch_key
+- table-name: centres
+ join:
+ - table-name: branches
+ keys:
+ - key: assigned_branch_key
+ foreign-key: encoded_key
+ - table-name: deposit_transactions
+ keys:
+ - key: assigned_branch_key
+ foreign-key: branch_key
+ - key: encoded_key
+ foreign-key: centre_key
+ - table-name: groups
+ keys:
+ - key: assigned_branch_key
+ foreign-key: assigned_branch_key
+ - key: encoded_key
+ foreign-key: assigned_centre_key
+ - table-name: loan_accounts
+ keys:
+ - key: assigned_branch_key
+ foreign-key: assigned_branch_key
+ - key: encoded_key
+ foreign-key: assigned_centre_key
+ - table-name: loan_transactions
+ keys:
+ - key: assigned_branch_key
+ foreign-key: branch_key
+ - key: encoded_key
+ foreign-key: centre_key
+ - table-name: users
+ keys:
+ - key: assigned_branch_key
+ foreign-key: access.managed_branches.branch_key
+ - table-name: clients
+ keys:
+ - key: encoded_key
+ foreign-key: assigned_centre_key
+- table-name: deposit_transactions
+ join:
+ - table-name: branches
+ keys:
+ - key: branch_key
+ foreign-key: encoded_key
+ - table-name: centres
+ keys:
+ - key: branch_key
+ foreign-key: assigned_branch_key
+ - key: centre_key
+ foreign-key: encoded_key
+ - table-name: groups
+ keys:
+ - key: branch_key
+ foreign-key: assigned_branch_key
+ - key: centre_key
+ foreign-key: assigned_centre_key
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_accounts
+ keys:
+ - key: branch_key
+ foreign-key: assigned_branch_key
+ - key: centre_key
+ foreign-key: assigned_centre_key
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_transactions
+ keys:
+ - key: branch_key
+ foreign-key: branch_key
+ - key: centre_key
+ foreign-key: centre_key
+ - key: transfer_details.linked_deposit_transaction_key
+ foreign-key: transfer_details.linked_deposit_transaction_key
+ - key: transfer_details.linked_loan_transaction_key
+ foreign-key: encoded_key
+ - key: transfer_details.linked_loan_transaction_key
+ foreign-key: parent_loan_transaction_key
+ - key: transfer_details.linked_loan_transaction_key
+ foreign-key: transfer_details.linked_loan_transaction_key
+ - key: user_key
+ foreign-key: user_key
+ - table-name: users
+ keys:
+ - key: branch_key
+ foreign-key: access.managed_branches.branch_key
+ - key: user_key
+ foreign-key: encoded_key
+ - table-name: clients
+ keys:
+ - key: centre_key
+ foreign-key: assigned_centre_key
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: activities
+ keys:
+ - key: user_key
+ foreign-key: user_key
+ - table-name: communications
+ keys:
+ - key: user_key
+ foreign-key: user_key
+ - key: user_key
+ foreign-key: sender_key
+ - table-name: gl_journal_entries
+ keys:
+ - key: user_key
+ foreign-key: user_key
+ - table-name: tasks
+ keys:
+ - key: user_key
+ foreign-key: created_by_user_key
+ - key: user_key
+ foreign-key: assigned_user_key
+- table-name: groups
+ join:
+ - table-name: branches
+ keys:
+ - key: assigned_branch_key
+ foreign-key: encoded_key
+ - table-name: centres
+ keys:
+ - key: assigned_branch_key
+ foreign-key: assigned_branch_key
+ - key: assigned_centre_key
+ foreign-key: encoded_key
+ - table-name: deposit_transactions
+ keys:
+ - key: assigned_branch_key
+ foreign-key: branch_key
+ - key: assigned_centre_key
+ foreign-key: centre_key
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: loan_accounts
+ keys:
+ - key: assigned_branch_key
+ foreign-key: assigned_branch_key
+ - key: assigned_centre_key
+ foreign-key: assigned_centre_key
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_transactions
+ keys:
+ - key: assigned_branch_key
+ foreign-key: branch_key
+ - key: assigned_centre_key
+ foreign-key: centre_key
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: users
+ keys:
+ - key: assigned_branch_key
+ foreign-key: access.managed_branches.branch_key
+ - key: assigned_user_key
+ foreign-key: encoded_key
+ - table-name: clients
+ keys:
+ - key: assigned_centre_key
+ foreign-key: assigned_centre_key
+ - key: group_members.client_key
+ foreign-key: encoded_key
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: activities
+ keys:
+ - key: group_members.client_key
+ foreign-key: client_key
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: communications
+ keys:
+ - key: group_members.client_key
+ foreign-key: client_key
+ - key: encoded_key
+ foreign-key: group_key
+ - key: assigned_user_key
+ foreign-key: user_key
+ - key: assigned_user_key
+ foreign-key: sender_key
+ - table-name: gl_journal_entries
+ keys:
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: tasks
+ keys:
+ - key: assigned_user_key
+ foreign-key: created_by_user_key
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+- table-name: loan_accounts
+ join:
+ - table-name: branches
+ keys:
+ - key: assigned_branch_key
+ foreign-key: encoded_key
+ - table-name: centres
+ keys:
+ - key: assigned_branch_key
+ foreign-key: assigned_branch_key
+ - key: assigned_centre_key
+ foreign-key: encoded_key
+ - table-name: deposit_transactions
+ keys:
+ - key: assigned_branch_key
+ foreign-key: branch_key
+ - key: assigned_centre_key
+ foreign-key: centre_key
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: groups
+ keys:
+ - key: assigned_branch_key
+ foreign-key: assigned_branch_key
+ - key: assigned_centre_key
+ foreign-key: assigned_centre_key
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_transactions
+ keys:
+ - key: assigned_branch_key
+ foreign-key: branch_key
+ - key: assigned_centre_key
+ foreign-key: centre_key
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: users
+ keys:
+ - key: assigned_branch_key
+ foreign-key: access.managed_branches.branch_key
+ - key: assigned_user_key
+ foreign-key: encoded_key
+ - table-name: clients
+ keys:
+ - key: assigned_centre_key
+ foreign-key: assigned_centre_key
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: credit_arrangements
+ keys:
+ - key: credit_arrangement_key
+ foreign-key: encoded_key
+ - table-name: deposit_accounts
+ keys:
+ - key: credit_arrangement_key
+ foreign-key: credit_arrangement_key
+ - key: disbursement_details.transaction_details.target_deposit_account_key
+ foreign-key: encoded_key
+ - key: funding_sources.deposit_account_key
+ foreign-key: encoded_key
+ - key: guarantors.deposit_account_key
+ foreign-key: encoded_key
+ - table-name: communications
+ keys:
+ - key: disbursement_details.transaction_details.target_deposit_account_key
+ foreign-key: deposit_account_key
+ - key: funding_sources.deposit_account_key
+ foreign-key: deposit_account_key
+ - key: guarantors.deposit_account_key
+ foreign-key: deposit_account_key
+ - key: encoded_key
+ foreign-key: loan_account_key
+ - key: assigned_user_key
+ foreign-key: user_key
+ - key: assigned_user_key
+ foreign-key: sender_key
+ - table-name: activities
+ keys:
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: gl_journal_entries
+ keys:
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: tasks
+ keys:
+ - key: assigned_user_key
+ foreign-key: created_by_user_key
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+- table-name: loan_transactions
+ join:
+ - table-name: branches
+ keys:
+ - key: branch_key
+ foreign-key: encoded_key
+ - table-name: centres
+ keys:
+ - key: branch_key
+ foreign-key: assigned_branch_key
+ - key: centre_key
+ foreign-key: encoded_key
+ - table-name: deposit_transactions
+ keys:
+ - key: branch_key
+ foreign-key: branch_key
+ - key: centre_key
+ foreign-key: centre_key
+ - key: transfer_details.linked_deposit_transaction_key
+ foreign-key: transfer_details.linked_deposit_transaction_key
+ - key: encoded_key
+ foreign-key: transfer_details.linked_loan_transaction_key
+ - key: parent_loan_transaction_key
+ foreign-key: transfer_details.linked_loan_transaction_key
+ - key: transfer_details.linked_loan_transaction_key
+ foreign-key: transfer_details.linked_loan_transaction_key
+ - key: user_key
+ foreign-key: user_key
+ - table-name: groups
+ keys:
+ - key: branch_key
+ foreign-key: assigned_branch_key
+ - key: centre_key
+ foreign-key: assigned_centre_key
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_accounts
+ keys:
+ - key: branch_key
+ foreign-key: assigned_branch_key
+ - key: centre_key
+ foreign-key: assigned_centre_key
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: users
+ keys:
+ - key: branch_key
+ foreign-key: access.managed_branches.branch_key
+ - key: user_key
+ foreign-key: encoded_key
+ - table-name: clients
+ keys:
+ - key: centre_key
+ foreign-key: assigned_centre_key
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: activities
+ keys:
+ - key: user_key
+ foreign-key: user_key
+ - table-name: communications
+ keys:
+ - key: user_key
+ foreign-key: user_key
+ - key: user_key
+ foreign-key: sender_key
+ - table-name: gl_journal_entries
+ keys:
+ - key: user_key
+ foreign-key: user_key
+ - table-name: tasks
+ keys:
+ - key: user_key
+ foreign-key: created_by_user_key
+ - key: user_key
+ foreign-key: assigned_user_key
+- table-name: users
+ join:
+ - table-name: branches
+ keys:
+ - key: access.managed_branches.branch_key
+ foreign-key: encoded_key
+ - table-name: centres
+ keys:
+ - key: access.managed_branches.branch_key
+ foreign-key: assigned_branch_key
+ - table-name: deposit_transactions
+ keys:
+ - key: access.managed_branches.branch_key
+ foreign-key: branch_key
+ - key: encoded_key
+ foreign-key: user_key
+ - table-name: groups
+ keys:
+ - key: access.managed_branches.branch_key
+ foreign-key: assigned_branch_key
+ - key: encoded_key
+ foreign-key: assigned_user_key
+ - table-name: loan_accounts
+ keys:
+ - key: access.managed_branches.branch_key
+ foreign-key: assigned_branch_key
+ - key: encoded_key
+ foreign-key: assigned_user_key
+ - table-name: loan_transactions
+ keys:
+ - key: access.managed_branches.branch_key
+ foreign-key: branch_key
+ - key: encoded_key
+ foreign-key: user_key
+ - table-name: activities
+ keys:
+ - key: encoded_key
+ foreign-key: user_key
+ - table-name: clients
+ keys:
+ - key: encoded_key
+ foreign-key: assigned_user_key
+ - table-name: communications
+ keys:
+ - key: encoded_key
+ foreign-key: user_key
+ - key: encoded_key
+ foreign-key: sender_key
+ - table-name: gl_journal_entries
+ keys:
+ - key: encoded_key
+ foreign-key: user_key
+ - table-name: tasks
+ keys:
+ - key: encoded_key
+ foreign-key: created_by_user_key
+ - key: encoded_key
+ foreign-key: assigned_user_key
+- table-name: clients
+ join:
+ - table-name: centres
+ keys:
+ - key: assigned_centre_key
+ foreign-key: encoded_key
+ - table-name: deposit_transactions
+ keys:
+ - key: assigned_centre_key
+ foreign-key: centre_key
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: groups
+ keys:
+ - key: assigned_centre_key
+ foreign-key: assigned_centre_key
+ - key: encoded_key
+ foreign-key: group_members.client_key
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_accounts
+ keys:
+ - key: assigned_centre_key
+ foreign-key: assigned_centre_key
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_transactions
+ keys:
+ - key: assigned_centre_key
+ foreign-key: centre_key
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: activities
+ keys:
+ - key: encoded_key
+ foreign-key: client_key
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: communications
+ keys:
+ - key: encoded_key
+ foreign-key: client_key
+ - key: assigned_user_key
+ foreign-key: user_key
+ - key: assigned_user_key
+ foreign-key: sender_key
+ - table-name: gl_journal_entries
+ keys:
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: tasks
+ keys:
+ - key: assigned_user_key
+ foreign-key: created_by_user_key
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: users
+ keys:
+ - key: assigned_user_key
+ foreign-key: encoded_key
+- table-name: communications
+ join:
+ - table-name: activities
+ keys:
+ - key: client_key
+ foreign-key: client_key
+ - key: user_key
+ foreign-key: user_key
+ - key: sender_key
+ foreign-key: user_key
+ - table-name: clients
+ keys:
+ - key: client_key
+ foreign-key: encoded_key
+ - key: user_key
+ foreign-key: assigned_user_key
+ - key: sender_key
+ foreign-key: assigned_user_key
+ - table-name: groups
+ keys:
+ - key: client_key
+ foreign-key: group_members.client_key
+ - key: group_key
+ foreign-key: encoded_key
+ - key: user_key
+ foreign-key: assigned_user_key
+ - key: sender_key
+ foreign-key: assigned_user_key
+ - table-name: deposit_accounts
+ keys:
+ - key: deposit_account_key
+ foreign-key: encoded_key
+ - table-name: loan_accounts
+ keys:
+ - key: deposit_account_key
+ foreign-key: disbursement_details.transaction_details.target_deposit_account_key
+ - key: deposit_account_key
+ foreign-key: funding_sources.deposit_account_key
+ - key: deposit_account_key
+ foreign-key: guarantors.deposit_account_key
+ - key: loan_account_key
+ foreign-key: encoded_key
+ - key: user_key
+ foreign-key: assigned_user_key
+ - key: sender_key
+ foreign-key: assigned_user_key
+ - table-name: deposit_transactions
+ keys:
+ - key: user_key
+ foreign-key: user_key
+ - key: sender_key
+ foreign-key: user_key
+ - table-name: gl_journal_entries
+ keys:
+ - key: user_key
+ foreign-key: user_key
+ - key: sender_key
+ foreign-key: user_key
+ - table-name: loan_transactions
+ keys:
+ - key: user_key
+ foreign-key: user_key
+ - key: sender_key
+ foreign-key: user_key
+ - table-name: tasks
+ keys:
+ - key: user_key
+ foreign-key: created_by_user_key
+ - key: sender_key
+ foreign-key: created_by_user_key
+ - key: user_key
+ foreign-key: assigned_user_key
+ - key: sender_key
+ foreign-key: assigned_user_key
+ - table-name: users
+ keys:
+ - key: user_key
+ foreign-key: encoded_key
+ - key: sender_key
+ foreign-key: encoded_key
+- table-name: credit_arrangements
+ join:
+ - table-name: deposit_accounts
+ keys:
+ - key: encoded_key
+ foreign-key: credit_arrangement_key
+ - table-name: loan_accounts
+ keys:
+ - key: encoded_key
+ foreign-key: credit_arrangement_key
+- table-name: deposit_accounts
+ join:
+ - table-name: credit_arrangements
+ keys:
+ - key: credit_arrangement_key
+ foreign-key: encoded_key
+ - table-name: loan_accounts
+ keys:
+ - key: credit_arrangement_key
+ foreign-key: credit_arrangement_key
+ - key: encoded_key
+ foreign-key: disbursement_details.transaction_details.target_deposit_account_key
+ - key: encoded_key
+ foreign-key: funding_sources.deposit_account_key
+ - key: encoded_key
+ foreign-key: guarantors.deposit_account_key
+ - table-name: communications
+ keys:
+ - key: encoded_key
+ foreign-key: deposit_account_key
+- table-name: gl_accounts
+ join:
+ - table-name: gl_journal_entries
+ keys:
+ - key: gl_code
+ foreign-key: gl_account.gl_code
+- table-name: gl_journal_entries
+ join:
+ - table-name: gl_accounts
+ keys:
+ - key: gl_account.gl_code
+ foreign-key: gl_code
+ - table-name: activities
+ keys:
+ - key: user_key
+ foreign-key: user_key
+ - table-name: clients
+ keys:
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: communications
+ keys:
+ - key: user_key
+ foreign-key: user_key
+ - key: user_key
+ foreign-key: sender_key
+ - table-name: deposit_transactions
+ keys:
+ - key: user_key
+ foreign-key: user_key
+ - table-name: groups
+ keys:
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_accounts
+ keys:
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_transactions
+ keys:
+ - key: user_key
+ foreign-key: user_key
+ - table-name: tasks
+ keys:
+ - key: user_key
+ foreign-key: created_by_user_key
+ - key: user_key
+ foreign-key: assigned_user_key
+ - table-name: users
+ keys:
+ - key: user_key
+ foreign-key: encoded_key
+- table-name: tasks
+ join:
+ - table-name: activities
+ keys:
+ - key: created_by_user_key
+ foreign-key: user_key
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: clients
+ keys:
+ - key: created_by_user_key
+ foreign-key: assigned_user_key
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: communications
+ keys:
+ - key: created_by_user_key
+ foreign-key: user_key
+ - key: assigned_user_key
+ foreign-key: user_key
+ - key: created_by_user_key
+ foreign-key: sender_key
+ - key: assigned_user_key
+ foreign-key: sender_key
+ - table-name: deposit_transactions
+ keys:
+ - key: created_by_user_key
+ foreign-key: user_key
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: gl_journal_entries
+ keys:
+ - key: created_by_user_key
+ foreign-key: user_key
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: groups
+ keys:
+ - key: created_by_user_key
+ foreign-key: assigned_user_key
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_accounts
+ keys:
+ - key: created_by_user_key
+ foreign-key: assigned_user_key
+ - key: assigned_user_key
+ foreign-key: assigned_user_key
+ - table-name: loan_transactions
+ keys:
+ - key: created_by_user_key
+ foreign-key: user_key
+ - key: assigned_user_key
+ foreign-key: user_key
+ - table-name: users
+ keys:
+ - key: created_by_user_key
+ foreign-key: encoded_key
+ - key: assigned_user_key
+ foreign-key: encoded_key
diff --git a/_data/taps/schemas/mambu/v4/mambu-v4-tables.yml b/_data/taps/schemas/mambu/v4/mambu-v4-tables.yml
new file mode 100644
index 000000000..d67b354b6
--- /dev/null
+++ b/_data/taps/schemas/mambu/v4/mambu-v4-tables.yml
@@ -0,0 +1,282 @@
+tap: mambu
+version: '4'
+tap-repo-schemas: true
+tables:
+- name: activities
+ description: 'This table contains information about activities.
+
+ '
+ links:
+ doc-link: https://support.mambu.com/docs/activities-api
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/activities.json
+ api-method: https://api.mambu.com/v1/#activities-get-all-activities
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: encoded_key
+ replication-key: timestamp
+- name: audit_trail
+ description: 'This table contains information about activities that have been performed
+ in the Mambu Core Banking system.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/audit_trail.json
+ api-method: https://support.mambu.com/docs/audit-trail
+ table-details:
+ replication-method: Key-based Incremental
+ replication-key: occurred_at
+- name: branches
+ description: 'This table contains information about branches.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/branches.json
+ api-method: https://api.mambu.com/?http#branches-getall
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: cards
+ description: 'This table contains information about cards.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/cards.json
+ api-method: https://api.mambu.com/?http#depositaccounts-getallcards
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - deposit_id
+ - reference_token
+ parent-table: deposit-account
+- name: centres
+ description: 'This table contains information about centres.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/centres.json
+ api-method: https://api.mambu.com/?http#centres-getall
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: clients
+ description: 'This table contains information about clients.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/clients.json
+ api-method: https://api.mambu.com/?http#clients-search
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: communications
+ description: 'This table contains information about communications.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/communications.json
+ api-method: https://api.mambu.com/?http#communications-search
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: encoded_key
+ replication-key: creation_date
+- name: credit_arrangements
+ description: 'This table contains information about credit arrangements.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/credit_arrangements.json
+ api-method: https://api.mambu.com/?http#creditarrangements-getall
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: custom_field_sets
+ description: 'This table contains information about custom field sets.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/custom_field_sets.json
+ api-method: https://api.mambu.com/v1/#custom-field-sets-get-custom-field-sets
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: deposit_accounts
+ description: 'This table contains information about deposit accounts.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/deposit_accounts.json
+ api-method: https://api.mambu.com/?http#deposit-accounts-search
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: deposit_products
+ description: 'This table contains information about deposit (savings) products.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/deposit_products.json
+ api-method: https://api.mambu.com/v1/#savings-products-get-savings-products
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: deposit_transactions
+ description: 'This table contains information about deposit transactions.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/deposit_transactions.json
+ api-method: https://api.mambu.com/?http#deposittransactions-search
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: encoded_key
+ replication-key: creation_date
+- name: gl_accounts
+ description: 'This table contains information about general ledger accounts.
+
+ '
+ links:
+ doc-link: https://support.mambu.com/docs/gl-accounts-api
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/gl_accounts.json
+ api-method: https://api.mambu.com/v1/#general-ledger-accounts-get-all-gl-accounts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: gl_code
+ replication-key: last_modified_date
+- name: gl_journal_entries
+ description: 'This table contains information about general ledger entries.
+
+ '
+ links:
+ doc-link: https://support.mambu.com/docs/gl-journal-entries-api
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/gl_journal_entries.json
+ api-method: https://api.mambu.com/v1/#gl-journal-entries-search-for-gl-journal-entries
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: entry_id
+ replication-key: booking_date
+- name: groups
+ description: 'This table contains information about groups.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/groups.json
+ api-method: https://api.mambu.com/?http#groups-search
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: index_rate_sources
+ description: 'This table contains information about index rate sources.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/index_rate_sources.json
+ api-method: https://api.mambu.com/#mambu-api-v2-index-rate-sources
+ table-details:
+ replication-method: Full Table
+ primary-key: encoded_key
+- name: installments
+ description: 'This table contains information about installments for a loan.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/#mambu-api-v2-installments
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/installments.json
+ api-method: https://api.mambu.com/#installments-getall
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: encoded_key
+ replication-key: last_paid_date
+- name: loan_accounts
+ description: This table contains information about Loan Accounts.
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/loan_accounts.json
+ api-method: https://api.mambu.com/?http#loan-accounts-search
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: loan_repayments
+ description: 'This is a child table of `loan_accounts`, containing information exclusively
+ about loan repayments.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/loan_repayments.json
+ api-method: https://api.mambu.com/v1/#loan-accounts-get-repayments-for-a-loan-account
+ table-details:
+ replication-method: Full Table
+ primary-key: encoded_key
+ parent-table: loan-account
+- name: loan_transactions
+ description: 'This table contains information about loan transactions.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/loan_transactions.json
+ api-method: https://api.mambu.com/?http#loantransactions-getall
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: encoded_key
+ replication-key: creation_date
+- name: tasks
+ description: 'This table contains information about tasks.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/tasks.json
+ api-method: https://api.mambu.com/?http#tasks-getall
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: users
+ description: 'This table contains information about users.
+
+ '
+ links:
+ doc-link: https://api.mambu.com/?shell#welcome
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/users.json
+ api-method: https://api.mambu.com/?http#users-getall
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
+- name: interest_accrual_breakdown
+ description: This table contains information about interest accruals.
+ links:
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/helpers/schemas/interest_accrual_breakdown.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: entry_id
+ replication-key: creation_date
+- name: loan_products
+ description: This table contains information about loan products.
+ links:
+ singer-schema: https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/helpers/schemas/loan_products.json
+ api-method: https://api.mambu.com/?shell#loan-products-getall
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date
diff --git a/_data/taps/schemas/marketo/v1/json/activities.json b/_data/taps/schemas/marketo/v1/json/activities.json
new file mode 100644
index 000000000..c6c873023
--- /dev/null
+++ b/_data/taps/schemas/marketo/v1/json/activities.json
@@ -0,0 +1,51 @@
+{
+ "properties": {
+ "activityDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "activityTypeId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attributes": {
+ "properties": {
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "leadId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "primaryAttributeValue": {
+ "type": [
+ "string"
+ ]
+ },
+ "primaryAttributeValueId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/marketo/v1/json/activity_types.json b/_data/taps/schemas/marketo/v1/json/activity_types.json
new file mode 100644
index 000000000..a57572eba
--- /dev/null
+++ b/_data/taps/schemas/marketo/v1/json/activity_types.json
@@ -0,0 +1,53 @@
+{
+ "properties": {
+ "attributes": {
+ "properties": {
+ "dataType": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "primaryAttribute": {
+ "properties": {
+ "dataType": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/marketo/v1/json/leads.json b/_data/taps/schemas/marketo/v1/json/leads.json
new file mode 100644
index 000000000..30f2ace91
--- /dev/null
+++ b/_data/taps/schemas/marketo/v1/json/leads.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "acquiredBy": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "isExhausted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "membershipDate": {
+ "type": [
+ "date"
+ ]
+ },
+ "nurtureCadence": {
+ "type": [
+ "string"
+ ]
+ },
+ "progressionStatus": {
+ "type": [
+ "string"
+ ]
+ },
+ "reachedSuccess": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "reachedSuccessDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "stream": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/marketo/v1/json/lists.json b/_data/taps/schemas/marketo/v1/json/lists.json
new file mode 100644
index 000000000..83c626b86
--- /dev/null
+++ b/_data/taps/schemas/marketo/v1/json/lists.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "createdAt": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "programName": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "workspaceName": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/marketo/v1/marketo-v1-tables.yml b/_data/taps/schemas/marketo/v1/marketo-v1-tables.yml
new file mode 100644
index 000000000..282ec296b
--- /dev/null
+++ b/_data/taps/schemas/marketo/v1/marketo-v1-tables.yml
@@ -0,0 +1,47 @@
+tap: marketo
+version: '1'
+tables:
+- name: activities
+ description: 'The `activities` table contains info about lead activities.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-marketo/blob/14ea7da75ea0edd855500678c14764f5dad5b283/tap_marketo/schemas/activities.json
+ api-method: http://developers.marketo.com/rest-api/endpoint-reference/lead-database-endpoint-reference/#!/Activities/getLeadActivitiesUsingGET
+ table-details:
+ replication-method: Incremental
+ primary-key: id
+ replication-key: activityDate
+- name: activity_types
+ description: 'The `activity_types` table contains metadata about the activity types
+ - form fill, web page visit, lead creation, and so on - available in {{ integration.display_name
+ }}.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-marketo/blob/14ea7da75ea0edd855500678c14764f5dad5b283/tap_marketo/schemas/activity_types.json
+ api-method: http://developers.marketo.com/rest-api/endpoint-reference/lead-database-endpoint-reference/#!/Activities/getAllActivityTypesUsingGET
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: leads
+ description: 'The `leads` table contains info about your {{ integration.display_name
+ }} leads.
+
+ '
+ links:
+ api-method: http://developers.marketo.com/rest-api/endpoint-reference/lead-database-endpoint-reference/#!/Leads/getLeadsByFilterUsingGET
+ table-details:
+ replication-method: Incremental
+ primary-key: id
+- name: lists
+ description: "The `leads` table contains info about the static lists in your {{\
+ \ integration.display_name }} account. \n\n**Note**: Due to some of the limitations\
+ \ in Marketo\u2019s API, only static lists will be replicated.\n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-marketo/blob/14ea7da75ea0edd855500678c14764f5dad5b283/tap_marketo/schemas/lists.json
+ api-method: http://developers.marketo.com/rest-api/endpoint-reference/lead-database-endpoint-reference/#!/Static_Lists/getListsUsingGET
+ table-details:
+ replication-method: Incremental
+ primary-key: id
+ replication-key: updatedAt
diff --git a/_data/taps/schemas/marketo/v2/json/activities.json b/_data/taps/schemas/marketo/v2/json/activities.json
new file mode 100644
index 000000000..e7b9c67e6
--- /dev/null
+++ b/_data/taps/schemas/marketo/v2/json/activities.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "activityDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "activityTypeId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaignId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "leadId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "marketoGuid": {
+ "type": [
+ "string"
+ ]
+ },
+ "primary_attribute_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "primary_attribute_value": {
+ "type": [
+ "string"
+ ]
+ },
+ "primary_attribute_value_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/marketo/v2/json/activity_types.json b/_data/taps/schemas/marketo/v2/json/activity_types.json
new file mode 100644
index 000000000..8ac67cc82
--- /dev/null
+++ b/_data/taps/schemas/marketo/v2/json/activity_types.json
@@ -0,0 +1,49 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "attributes": {
+ "items": {
+ "properties": {
+ "dataType": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "description": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
+ },
+ "primaryAttribute": {
+ "properties": {
+ "dataType": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/marketo/v2/json/campaigns.json b/_data/taps/schemas/marketo/v2/json/campaigns.json
new file mode 100644
index 000000000..605b6c38d
--- /dev/null
+++ b/_data/taps/schemas/marketo/v2/json/campaigns.json
@@ -0,0 +1,51 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "active": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "createdAt": {
+ "type": "date-time"
+ },
+ "description": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
+ },
+ "programId": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "programName": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": {
+ "type": "string"
+ },
+ "updatedAt": {
+ "type": "date-time"
+ },
+ "workspaceName": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/marketo/v2/json/leads.json b/_data/taps/schemas/marketo/v2/json/leads.json
new file mode 100644
index 000000000..30f2ace91
--- /dev/null
+++ b/_data/taps/schemas/marketo/v2/json/leads.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "acquiredBy": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "isExhausted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "membershipDate": {
+ "type": [
+ "date"
+ ]
+ },
+ "nurtureCadence": {
+ "type": [
+ "string"
+ ]
+ },
+ "progressionStatus": {
+ "type": [
+ "string"
+ ]
+ },
+ "reachedSuccess": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "reachedSuccessDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "stream": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/marketo/v2/json/lists.json b/_data/taps/schemas/marketo/v2/json/lists.json
new file mode 100644
index 000000000..04d61ff55
--- /dev/null
+++ b/_data/taps/schemas/marketo/v2/json/lists.json
@@ -0,0 +1,36 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "createdAt": {
+ "type": "date-time"
+ },
+ "description": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
+ },
+ "programName": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "updatedAt": {
+ "type": "date-time"
+ },
+ "workspaceName": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/marketo/v2/json/programs.json b/_data/taps/schemas/marketo/v2/json/programs.json
new file mode 100644
index 000000000..1d89cb654
--- /dev/null
+++ b/_data/taps/schemas/marketo/v2/json/programs.json
@@ -0,0 +1,77 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "createdAt": {
+ "type": "date-time"
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "folder": {
+ "properties": {
+ "folderName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updatedAt": {
+ "type": "date-time"
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "workspace": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/marketo/v2/marketo-v2-foreign-keys.yml b/_data/taps/schemas/marketo/v2/marketo-v2-foreign-keys.yml
new file mode 100644
index 000000000..88e3f4f74
--- /dev/null
+++ b/_data/taps/schemas/marketo/v2/marketo-v2-foreign-keys.yml
@@ -0,0 +1,71 @@
+tap: marketo
+version: '2'
+keys:
+ activities_marketoGuid:
+ - table: activities
+ keys:
+ - marketoGuid
+ activity_types_activityTypeId:
+ - table: activities
+ keys:
+ - activityTypeId
+ - table: activity_types
+ keys:
+ - id
+ campaigns_campaignId:
+ - table: campaigns
+ keys:
+ - id
+ leads_leadId:
+ - table: activities
+ keys:
+ - leadId
+ - table: leads
+ keys:
+ - id
+ lists_listId:
+ - table: lists
+ keys:
+ - id
+ programs_programId:
+ - table: campaigns
+ keys:
+ - programId
+ - table: programs
+ keys:
+ - id
+tables:
+- table-name: activities
+ join:
+ - table-name: activity_types
+ keys:
+ - key: activityTypeId
+ foreign-key: id
+ - table-name: leads
+ keys:
+ - key: leadId
+ foreign-key: id
+- table-name: activity_types
+ join:
+ - table-name: activities
+ keys:
+ - key: id
+ foreign-key: activityTypeId
+- table-name: campaigns
+ join:
+ - table-name: programs
+ keys:
+ - key: programId
+ foreign-key: id
+- table-name: leads
+ join:
+ - table-name: activities
+ keys:
+ - key: id
+ foreign-key: leadId
+- table-name: programs
+ join:
+ - table-name: campaigns
+ keys:
+ - key: id
+ foreign-key: programId
diff --git a/_data/taps/schemas/marketo/v2/marketo-v2-tables.yml b/_data/taps/schemas/marketo/v2/marketo-v2-tables.yml
new file mode 100644
index 000000000..09df39619
--- /dev/null
+++ b/_data/taps/schemas/marketo/v2/marketo-v2-tables.yml
@@ -0,0 +1,104 @@
+tap: marketo
+version: '2'
+tables:
+- name: activities
+ description: 'In [version 1 of Stitch''s Marketo integration]({{ site.baseurl }}/integrations/saas/{{
+ integration.name }}/v1), the `activities` table contained all data pertaining
+ to lead activities.
+
+
+ In this version, you can choose to replicate lead activity data for specific activity
+ types. For every activity type defined in your {{ integration.display_name }}
+ account, you''ll see an `{{ table.name }}` table in the {{ app.buttons.tables
+ }} tab. For example: `activities_click_email` contains lead activity data for
+ the `click_email` activity type.
+
+
+ These tables will contain the fields listed below, along with any fields specific
+ to that activity type.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-marketo/blob/master/tap_marketo/schemas/activities.json
+ api-method: http://developers.marketo.com/rest-api/endpoint-reference/lead-database-endpoint-reference/#!/Activities/getLeadActivitiesUsingGET
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: marketoGuid
+ replication-key: activityDate
+ tap-repo-schema: false
+- name: activity_types
+ description: 'The `{{ table.name }}` table contains metadata about the activity
+ types - form fill, web page visit, lead creation, and so on - available in {{
+ integration.display_name }}.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-marketo/blob/master/tap_marketo/schemas/activity_types.json
+ api-method: http://developers.marketo.com/rest-api/endpoint-reference/lead-database-endpoint-reference/#!/Activities/getAllActivityTypesUsingGET
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: leads
+ description: 'The `{{ table.name }}` table contains info about your {{ integration.display_name
+ }} leads.
+
+
+ Stitch replicates leads from {{ integration.display_name }} using the Bulk API.
+ The Replication Key for this table varies depending on your {{ integration.display_name
+ }} account setup:
+
+
+ - **If updatedAt filtering is enabled**, this table will use `updatedAt` as the
+ Replication Key
+
+ - **If updatedAt filtering isn''t enabled,** this table will use `createdAt` as
+ the Replication Key. Additionally, data will be loaded using [Append-Only loading]({{
+ link.destinations.storage.loading-behavior | prepend: site.baseurl }}).
+
+
+ [Read more about replicating this table](#leads-replication).
+
+ '
+ links:
+ api-method: http://developers.marketo.com/rest-api/endpoint-reference/lead-database-endpoint-reference/#!/Leads/getLeadsByFilterUsingGET
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ tap-repo-schema: false
+- name: lists
+ description: "The `{{ table.name }}` table contains info about the static lists\
+ \ in your {{ integration.display_name }} account. \n\n**Note**: Due to some of\
+ \ the limitations in {{ integration.display_name }} API, only static lists will\
+ \ be replicated.\n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-marketo/blob/master/tap_marketo/schemas/lists.json
+ api-method: http://developers.marketo.com/rest-api/endpoint-reference/lead-database-endpoint-reference/#!/Static_Lists/getListsUsingGET
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+- name: programs
+ description: 'The `{{ table.name }}` table contains info about your {{ integration.display_name
+ }} programs. Programs can be parents to most types of assets in {{ integration.display_name
+ }} and allow you to track membership and success of leads.
+
+ '
+ links:
+ doc-link: http://developers.marketo.com/rest-api/assets/programs/
+ singer-schema: https://github.com/singer-io/tap-marketo/blob/master/tap_marketo/schemas/programs.json
+ api-method: https://developers.marketo.com/rest-api/endpoint-reference/asset-endpoint-reference/#!/Programs/browseProgramsUsingGET
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+- name: campaigns
+ description: The `{{ table.name }}` table contains info about your {{ integration.display_name}}
+ campaigns
+ links:
+ singer-schema: https://github.com/singer-io/tap-marketo/blob/master/tap_marketo/schemas/campaigns.json
+ doc-link: http://developers.marketo.com/rest-api/endpoint-reference/lead-database-endpoint-reference/#!/Campaigns/getCampaignsUsingGET
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/mixpanel/v1/json/annotations.json b/_data/taps/schemas/mixpanel/v1/json/annotations.json
new file mode 100644
index 000000000..47e31ae06
--- /dev/null
+++ b/_data/taps/schemas/mixpanel/v1/json/annotations.json
@@ -0,0 +1,30 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mixpanel/v1/json/cohort_members.json b/_data/taps/schemas/mixpanel/v1/json/cohort_members.json
new file mode 100644
index 000000000..74c71d5a2
--- /dev/null
+++ b/_data/taps/schemas/mixpanel/v1/json/cohort_members.json
@@ -0,0 +1,18 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "cohort_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "distinct_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mixpanel/v1/json/cohorts.json b/_data/taps/schemas/mixpanel/v1/json/cohorts.json
new file mode 100644
index 000000000..ecffdc8a5
--- /dev/null
+++ b/_data/taps/schemas/mixpanel/v1/json/cohorts.json
@@ -0,0 +1,48 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_visible": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mixpanel/v1/json/engage.json b/_data/taps/schemas/mixpanel/v1/json/engage.json
new file mode 100644
index 000000000..c2befd33f
--- /dev/null
+++ b/_data/taps/schemas/mixpanel/v1/json/engage.json
@@ -0,0 +1,12 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "distinct_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mixpanel/v1/json/export.json b/_data/taps/schemas/mixpanel/v1/json/export.json
new file mode 100644
index 000000000..9d3275156
--- /dev/null
+++ b/_data/taps/schemas/mixpanel/v1/json/export.json
@@ -0,0 +1,49 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "dataset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "distinct_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "labels": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "sampling_factor": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mixpanel/v1/json/funnels.json b/_data/taps/schemas/mixpanel/v1/json/funnels.json
new file mode 100644
index 000000000..294afdd9b
--- /dev/null
+++ b/_data/taps/schemas/mixpanel/v1/json/funnels.json
@@ -0,0 +1,192 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "analysis": {
+ "additionalProperties": false,
+ "properties": {
+ "completion": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "starting_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "steps": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "worst": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "datetime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "funnel_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "steps": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "avg_time": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "event": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "goal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "overall_conv_ratio": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "step_conv_ratio": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "step_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "time_buckets_from_prev": {
+ "additionalProperties": false,
+ "properties": {
+ "buckets": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "higher": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lower": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "time_buckets_from_start": {
+ "additionalProperties": false,
+ "properties": {
+ "buckets": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "higher": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lower": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mixpanel/v1/json/revenue.json b/_data/taps/schemas/mixpanel/v1/json/revenue.json
new file mode 100644
index 000000000..47d632c8c
--- /dev/null
+++ b/_data/taps/schemas/mixpanel/v1/json/revenue.json
@@ -0,0 +1,36 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "datetime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "paid_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/mixpanel/v1/mixpanel-v1-foreign-keys.yml b/_data/taps/schemas/mixpanel/v1/mixpanel-v1-foreign-keys.yml
new file mode 100644
index 000000000..575a1b88e
--- /dev/null
+++ b/_data/taps/schemas/mixpanel/v1/mixpanel-v1-foreign-keys.yml
@@ -0,0 +1,40 @@
+tap: mixpanel
+version: '1'
+keys:
+ cohorts_cohort_id:
+ - table: cohort_members
+ keys:
+ - cohort_id
+ - table: cohorts
+ keys:
+ - id
+ _project_id:
+ - table: annotations
+ keys:
+ - project_id
+ - table: cohorts
+ keys:
+ - project_id
+tables:
+- table-name: cohort_members
+ join:
+ - table-name: cohorts
+ keys:
+ - key: cohort_id
+ foreign-key: id
+- table-name: cohorts
+ join:
+ - table-name: cohort_members
+ keys:
+ - key: id
+ foreign-key: cohort_id
+ - table-name: annotations
+ keys:
+ - key: project_id
+ foreign-key: project_id
+- table-name: annotations
+ join:
+ - table-name: cohorts
+ keys:
+ - key: project_id
+ foreign-key: project_id
diff --git a/_data/taps/schemas/mixpanel/v1/mixpanel-v1-tables.yml b/_data/taps/schemas/mixpanel/v1/mixpanel-v1-tables.yml
new file mode 100644
index 000000000..c44fda8dc
--- /dev/null
+++ b/_data/taps/schemas/mixpanel/v1/mixpanel-v1-tables.yml
@@ -0,0 +1,137 @@
+tap: mixpanel
+version: '1'
+tables:
+- name: annotations
+ description: 'The `{{ table.name }}` table contains info about annotations.
+
+ '
+ links:
+ doc-link: https://developer.mixpanel.com/docs/data-export-api#section-annotations
+ singer-schema: https://github.com/singer-io/tap-mixpanel/blob/master/tap_mixpanel/schemas/annotations.json
+ api-method: https://mixpanel.com/api/2.0/annotations
+ table-details:
+ replication-method: Full Table
+ primary-key: date
+- name: cohorts
+ description: 'The `{{ table.name }}` table contains info about the cohorts in a
+ {{ integration.display_name }} project.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-mixpanel/blob/master/tap_mixpanel/schemas/cohorts.json
+ api-method: https://developer.mixpanel.com/docs/cohorts#section-list-cohorts
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: cohort_members
+ description: 'The `{{ table.name }}` table contains info about the cohorts user
+ profiles belong to.
+
+ '
+ links:
+ doc-link: https://developer.mixpanel.com/docs/data-export-api#section-engage
+ singer-schema: https://github.com/singer-io/tap-mixpanel/blob/master/tap_mixpanel/schemas/cohort_members.json
+ api-method: https://mixpanel.com/api/2.0/cohorts/list
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - cohort_id
+ - distinct_id
+- name: engage
+ description: 'The `{{ table.name }}` table contains info about user profiles.
+
+
+ The schema for this table is dynamic, meaning that the columns Stitch detects
+ are dependent upon the properties provided upon upload in {{ integration.display_name
+ }}. For every property available in {{ integration.display_name }} for `{{ table.name
+ }}` records, Stitch will display a column in the integration''s **Tables to Replicate**
+ tab.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-mixpanel/blob/master/tap_mixpanel/schemas/engage.json
+ api-method: https://developer.mixpanel.com/docs/data-export-api#section-engage
+ table-details:
+ replication-method: Full Table
+ primary-key: distinct_id
+- name: export
+ description: "The `{{ table.name }}` table contains \"raw data dumps\" of tracked\
+ \ events. The API endpoint for EU region servers will return a `200 terminated\
+ \ early` error code.\n\n#### Table schema {#export-events-table-schema}\n\nThe\
+ \ schema for this table is dynamic, meaning that the columns Stitch detects are\
+ \ dependent upon the properties provided upon upload in {{ integration.display_name\
+ \ }}. For every property available in {{ integration.display_name }} for `{{ table.name\
+ \ }}` records, Stitch will display a column in the integration's **Tables to Replicate**\
+ \ tab.\n\n#### Replication with attribution window {#export-events-attribution-window}\n\
+ \nThis table is replicated using the **Attribution Window** value defined in the\
+ \ integration's settings page. Refer to the [Replication section](#attribution-windows-extraction)\
+ \ for more info.\n\n#### Distinct events and loading behavior {#export-events-loading-behavior}\n\
+ \nAs Stitch doesn't use a Primary Key for this table, data will be loaded using\
+ \ [Append-Only loading]({{ link.destinations.storage.loading-behavior | prepend:\
+ \ site.baseurl }}). This means you may see duplicate records in your destination,\
+ \ which requires a querying strategy that selects the latest version of each record.\n\
+ \nStitch takes this approach because it's possible to track events without a `distinct_id`.\
+ \ In {{ integration.display_name }}, `distinct_id` [is used to identify a unique\
+ \ user](https://help.mixpanel.com/hc/en-us/articles/115004509406-Distinct-IDs-){:target=\"\
+ new\"}:\n\n> Mixpanel\u2019s client-side tracking libraries automatically assign\
+ \ a distinct_id to a user when they first visit a website or an application that\
+ \ has Mixpanel installed. Distinct_id should not contain any special characters\
+ \ such as forward slashes, as it will break the URL.\n> Distinct_ids can and often\
+ \ should be sent in server-side implementations as well.\n\nIn order for Stitch\
+ \ to replicate records' `distinct_id` attributes, your server-side {{ integration.display_name\
+ \ }} implementation must send them with tracked events. If the server-side implementation\
+ \ doesn't do this, this attribute will be `null`.\n\nPrevious versions of Stitch's\
+ \ {{ integration.display_name }} integration used `distinct_id` as part of a composite\
+ \ Primary Key for this table. However, due to the possibility of this attribute\
+ \ being `null`, Stitch no longer uses a Primary Key for this table, as `null`\
+ \ values in Primary Key columns will prevent successful Extraction. \n\nWhen working\
+ \ with `exports` data in your destination, you'll need to use a querying strategy\
+ \ that accounts for the Append-Only loading used by this table. We recommend using\
+ \ the following columns to de-duplicate records, along with the approach outlined\
+ \ in the [Querying Append-Only tables guide]({{ link.replication.append-only-querying\
+ \ | prepend: site.baseurl }}):\n\n- `distinct_id`\n- `event`\n- `time`\n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-mixpanel/blob/master/tap_mixpanel/schemas/export.json
+ api-method: https://developer.mixpanel.com/docs/exporting-raw-data#section-export-api-reference
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: time
+- name: funnels
+ description: 'The `{{ table.name }}` table contains data about your {{ integration.display_name
+ }} funnels, segmented by funnel and day.
+
+
+ **Note**: This table is replicated using the **Attribution Window** value defined
+ in the integration''s settings page. Refer to the [Replication section](#attribution-windows-extraction)
+ for more info.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-mixpanel/blob/master/tap_mixpanel/schemas/funnels.json
+ api-method: https://developer.mixpanel.com/docs/data-export-api#section-funnels
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - funnel_id
+ - date
+ replication-key: date
+- name: revenue
+ description: 'The `{{ table.name }}` table contains info about revenue, segmented
+ by day. The API endpoint for EU region servers will return a `400 bad requests
+ (Timeout Error)` code.
+
+
+ **Note**: This table is replicated using the **Attribution Window** value defined
+ in the integration''s settings page. Refer to the [Replication section](#attribution-windows-extraction)
+ for more info.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-mixpanel/blob/master/tap_mixpanel/schemas/revenue.json
+ api-method: https://developer.mixpanel.com/docs/data-export-api#hrspan-stylefont-family-courierrevenuespan
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: date
+ replication-key: date
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/ms-teams/v1/json/channel_members.json b/_data/taps/schemas/ms-teams/v1/json/channel_members.json
new file mode 100644
index 000000000..69aa70ea8
--- /dev/null
+++ b/_data/taps/schemas/ms-teams/v1/json/channel_members.json
@@ -0,0 +1,52 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "channel_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "roles": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ms-teams/v1/json/channel_message_replies.json b/_data/taps/schemas/ms-teams/v1/json/channel_message_replies.json
new file mode 100644
index 000000000..0b94df057
--- /dev/null
+++ b/_data/taps/schemas/ms-teams/v1/json/channel_message_replies.json
@@ -0,0 +1,414 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "attachments": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "content": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thumbnail_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "body": {
+ "additionalProperties": true,
+ "properties": {
+ "content": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "channel_identity": {
+ "additionalProperties": true,
+ "properties": {
+ "channel_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "teamId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "chat_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted_date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "etag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "from": {
+ "additionalProperties": true,
+ "properties": {
+ "application": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "additionalProperties": true,
+ "properties": {
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_identity_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "importance": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mentions": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "mention_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mentioned": {
+ "additionalProperties": true,
+ "properties": {
+ "application": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "additionalProperties": true,
+ "properties": {
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_identity_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "message_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policy_violation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reactions": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "created_date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "reaction_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "additionalProperties": true,
+ "properties": {
+ "application": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "additionalProperties": true,
+ "properties": {
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_identity_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "reply_to_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "summary": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "web_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ms-teams/v1/json/channel_messages.json b/_data/taps/schemas/ms-teams/v1/json/channel_messages.json
new file mode 100644
index 000000000..1a21969ec
--- /dev/null
+++ b/_data/taps/schemas/ms-teams/v1/json/channel_messages.json
@@ -0,0 +1,414 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "attachments": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "content": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thumbnail_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "body": {
+ "additionalProperties": true,
+ "properties": {
+ "content": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "channel_identity": {
+ "additionalProperties": true,
+ "properties": {
+ "channel_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "teamId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "chat_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted_date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "etag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "from": {
+ "additionalProperties": true,
+ "properties": {
+ "application": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "additionalProperties": true,
+ "properties": {
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_identity_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "importance": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lastModified_date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mentions": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "mention_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mentioned": {
+ "additionalProperties": true,
+ "properties": {
+ "application": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "additionalProperties": true,
+ "properties": {
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "userIdentity_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "message_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "policy_violation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reactions": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "created_date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "reaction_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "additionalProperties": true,
+ "properties": {
+ "application": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "additionalProperties": true,
+ "properties": {
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_identity_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "reply_to_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "summary": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "web_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ms-teams/v1/json/channel_tabs.json b/_data/taps/schemas/ms-teams/v1/json/channel_tabs.json
new file mode 100644
index 000000000..d4a4730a1
--- /dev/null
+++ b/_data/taps/schemas/ms-teams/v1/json/channel_tabs.json
@@ -0,0 +1,123 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "channel_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "configuration": {
+ "additionalProperties": true,
+ "properties": {
+ "content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_content": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "remove_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "website_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "wiki_default_tab": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "wiki_tab_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sort_order_index": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "teams_app": {
+ "additionalProperties": true,
+ "properties": {
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "distribution_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "web_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ms-teams/v1/json/channels.json b/_data/taps/schemas/ms-teams/v1/json/channels.json
new file mode 100644
index 000000000..7766cc18c
--- /dev/null
+++ b/_data/taps/schemas/ms-teams/v1/json/channels.json
@@ -0,0 +1,39 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "web_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ms-teams/v1/json/conversation_posts.json b/_data/taps/schemas/ms-teams/v1/json/conversation_posts.json
new file mode 100644
index 000000000..1223d8461
--- /dev/null
+++ b/_data/taps/schemas/ms-teams/v1/json/conversation_posts.json
@@ -0,0 +1,151 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "body": {
+ "additionalProperties": true,
+ "properties": {
+ "content": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "categories": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "change_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversation_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "from": {
+ "additionalProperties": true,
+ "properties": {
+ "emailAddress": {
+ "additionalProperties": false,
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "has_attachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "received_date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "sender": {
+ "additionalProperties": true,
+ "properties": {
+ "emailAddress": {
+ "additionalProperties": true,
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "thread_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ms-teams/v1/json/conversation_threads.json b/_data/taps/schemas/ms-teams/v1/json/conversation_threads.json
new file mode 100644
index 000000000..64573002b
--- /dev/null
+++ b/_data/taps/schemas/ms-teams/v1/json/conversation_threads.json
@@ -0,0 +1,63 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "conversation_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_attachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_locked": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_delivered_date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "preview": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unique_senders": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ms-teams/v1/json/conversations.json b/_data/taps/schemas/ms-teams/v1/json/conversations.json
new file mode 100644
index 000000000..ac98c21af
--- /dev/null
+++ b/_data/taps/schemas/ms-teams/v1/json/conversations.json
@@ -0,0 +1,58 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "group_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_attachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_delivered_date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "preview": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unique_senders": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ms-teams/v1/json/group_members.json b/_data/taps/schemas/ms-teams/v1/json/group_members.json
new file mode 100644
index 000000000..96147a478
--- /dev/null
+++ b/_data/taps/schemas/ms-teams/v1/json/group_members.json
@@ -0,0 +1,82 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "business_phones": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "given_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "job_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mail": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mobile_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "office_location": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preferred_language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "surname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_principal_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ms-teams/v1/json/group_owners.json b/_data/taps/schemas/ms-teams/v1/json/group_owners.json
new file mode 100644
index 000000000..5052d6f9e
--- /dev/null
+++ b/_data/taps/schemas/ms-teams/v1/json/group_owners.json
@@ -0,0 +1,88 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "business_phones": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "given_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "job_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mail": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mobile_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "office_location": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preferred_language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "surname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_principal_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ms-teams/v1/json/groups.json b/_data/taps/schemas/ms-teams/v1/json/groups.json
new file mode 100644
index 000000000..9391d1094
--- /dev/null
+++ b/_data/taps/schemas/ms-teams/v1/json/groups.json
@@ -0,0 +1,241 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "classification": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creation_options": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deleted_date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expiration_date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "group_types": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_assignable_to_role": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mail": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mail_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mail_nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "membership_rule": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "membership_rule_processing_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "onPremises_domain_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "on_premises_last_sync_date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "on_premises_net_bios_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "on_premises_provisioning_errors": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_premises_sam_account_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "on_premises_security_identifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "on_premises_sync_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "preferred_data_location": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preferred_language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "proxy_addresses": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "renewed_date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "resource_behavior_options": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "resource_provisioning_options": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "security_edentifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "security_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "theme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visibility": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ms-teams/v1/json/team_device_usage_report.json b/_data/taps/schemas/ms-teams/v1/json/team_device_usage_report.json
new file mode 100644
index 000000000..3333fdac6
--- /dev/null
+++ b/_data/taps/schemas/ms-teams/v1/json/team_device_usage_report.json
@@ -0,0 +1,81 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "deleted_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_activity_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "report_period": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "report_refresh_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "used_android_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "used_i_os": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "used_mac": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "used_web": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "used_windows": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "used_windows_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_principal_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ms-teams/v1/json/team_drives.json b/_data/taps/schemas/ms-teams/v1/json/team_drives.json
new file mode 100644
index 000000000..89e9374d8
--- /dev/null
+++ b/_data/taps/schemas/ms-teams/v1/json/team_drives.json
@@ -0,0 +1,138 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "created_by": {
+ "additionalProperties": true,
+ "properties": {
+ "user": {
+ "additionalProperties": true,
+ "properties": {
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "drive_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_modified_date_time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner": {
+ "additionalProperties": true,
+ "properties": {
+ "group": {
+ "additionalProperties": true,
+ "properties": {
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "quota": {
+ "additionalProperties": true,
+ "properties": {
+ "deleted": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "remaining": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "used": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "web_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ms-teams/v1/json/users.json b/_data/taps/schemas/ms-teams/v1/json/users.json
new file mode 100644
index 000000000..96147a478
--- /dev/null
+++ b/_data/taps/schemas/ms-teams/v1/json/users.json
@@ -0,0 +1,82 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "business_phones": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "given_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "job_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mail": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mobile_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "office_location": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preferred_language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "surname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_principal_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ms-teams/v1/ms-teams-v1-foreign-keys.yml b/_data/taps/schemas/ms-teams/v1/ms-teams-v1-foreign-keys.yml
new file mode 100644
index 000000000..f84126fae
--- /dev/null
+++ b/_data/taps/schemas/ms-teams/v1/ms-teams-v1-foreign-keys.yml
@@ -0,0 +1,453 @@
+tap: ms-teams
+version: '1'
+keys:
+ channels_id:
+ - table: channels
+ keys:
+ - id
+ - table: channel_members
+ keys:
+ - channel_id
+ - table: channel_tabs
+ keys:
+ - channel_id
+ - table: channel_messages
+ keys:
+ - channel_identity.channel_id
+ - table: channel_message_replies
+ keys:
+ - channel_identity.channel_id
+ channel_members_id:
+ - table: channel_members
+ keys:
+ - id
+ conversations_id:
+ - table: conversations
+ keys:
+ - id
+ - table: conversation_threads
+ keys:
+ - conversation_id
+ - table: conversation_posts
+ keys:
+ - conversation_id
+ team_drives_id:
+ - table: team_drives
+ keys:
+ - id
+ groups_id:
+ - table: groups
+ keys:
+ - id
+ - table: group_owners
+ keys:
+ - group_id
+ - table: channel_tabs
+ keys:
+ - group_id
+ - table: conversations
+ keys:
+ - group_id
+ - table: conversation_threads
+ keys:
+ - group_id
+ - table: team_drives
+ keys:
+ - owner.group.id
+ group_members_id:
+ - table: group_members
+ keys:
+ - id
+ channel_messages_id:
+ - table: channel_messages
+ keys:
+ - id
+ group_owners_id:
+ - table: group_owners
+ keys:
+ - id
+ conversation_posts_id:
+ - table: conversation_posts
+ keys:
+ - id
+ channel_message_replies_id:
+ - table: channel_messages_replies
+ keys:
+ - id
+ channel_tabs_id:
+ - table: channel_tabs
+ keys:
+ - id
+ conversation_threads_id:
+ - table: conversation_threads
+ keys:
+ - id
+ - table: conversation_posts
+ keys:
+ - thread_id
+ users_user.id:
+ - table: users
+ keys:
+ - id
+ - table: channel_members
+ keys:
+ - user_id
+ - table: channel_message_replies
+ keys:
+ - from.user.id
+ - mentions.mentioned.user.id
+ - reactions.user.user.id
+ - table: channel_messages
+ keys:
+ - from.user.id
+ - mentions.mentioned.user.id
+ - reactions.user.user.id
+tables:
+- table-name: channels
+ join:
+ - table-name: channel_members
+ keys:
+ - key: id
+ foreign-key: channel_id
+ - table-name: channel_tabs
+ keys:
+ - key: id
+ foreign-key: channel_id
+ - table-name: channel_messages
+ keys:
+ - key: id
+ foreign-key: channel_identity.channel_id
+ - table-name: channel_message_replies
+ keys:
+ - key: id
+ foreign-key: channel_identity.channel_id
+- table-name: channel_members
+ join:
+ - table-name: channels
+ keys:
+ - key: channel_id
+ foreign-key: id
+ - table-name: channel_tabs
+ keys:
+ - key: channel_id
+ foreign-key: channel_id
+ - table-name: channel_messages
+ keys:
+ - key: channel_id
+ foreign-key: channel_identity.channel_id
+ - key: user_id
+ foreign-key: from.user.id
+ - key: user_id
+ foreign-key: mentions.mentioned.user.id
+ - key: user_id
+ foreign-key: reactions.user.user.id
+ - table-name: channel_message_replies
+ keys:
+ - key: channel_id
+ foreign-key: channel_identity.channel_id
+ - key: user_id
+ foreign-key: from.user.id
+ - key: user_id
+ foreign-key: mentions.mentioned.user.id
+ - key: user_id
+ foreign-key: reactions.user.user.id
+ - table-name: users
+ keys:
+ - key: user_id
+ foreign-key: id
+- table-name: channel_tabs
+ join:
+ - table-name: channels
+ keys:
+ - key: channel_id
+ foreign-key: id
+ - table-name: channel_members
+ keys:
+ - key: channel_id
+ foreign-key: channel_id
+ - table-name: channel_messages
+ keys:
+ - key: channel_id
+ foreign-key: channel_identity.channel_id
+ - table-name: channel_message_replies
+ keys:
+ - key: channel_id
+ foreign-key: channel_identity.channel_id
+ - table-name: groups
+ keys:
+ - key: group_id
+ foreign-key: id
+ - table-name: group_owners
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: conversations
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: conversation_threads
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: team_drives
+ keys:
+ - key: group_id
+ foreign-key: owner.group.id
+- table-name: channel_messages
+ join:
+ - table-name: channels
+ keys:
+ - key: channel_identity.channel_id
+ foreign-key: id
+ - table-name: channel_members
+ keys:
+ - key: channel_identity.channel_id
+ foreign-key: channel_id
+ - key: from.user.id
+ foreign-key: user_id
+ - key: mentions.mentioned.user.id
+ foreign-key: user_id
+ - key: reactions.user.user.id
+ foreign-key: user_id
+ - table-name: channel_tabs
+ keys:
+ - key: channel_identity.channel_id
+ foreign-key: channel_id
+ - table-name: channel_message_replies
+ keys:
+ - key: channel_identity.channel_id
+ foreign-key: channel_identity.channel_id
+ - key: from.user.id
+ foreign-key: from.user.id
+ - key: mentions.mentioned.user.id
+ foreign-key: from.user.id
+ - key: reactions.user.user.id
+ foreign-key: from.user.id
+ - key: from.user.id
+ foreign-key: mentions.mentioned.user.id
+ - key: mentions.mentioned.user.id
+ foreign-key: mentions.mentioned.user.id
+ - key: reactions.user.user.id
+ foreign-key: mentions.mentioned.user.id
+ - key: from.user.id
+ foreign-key: reactions.user.user.id
+ - key: mentions.mentioned.user.id
+ foreign-key: reactions.user.user.id
+ - key: reactions.user.user.id
+ foreign-key: reactions.user.user.id
+ - table-name: users
+ keys:
+ - key: from.user.id
+ foreign-key: id
+ - key: mentions.mentioned.user.id
+ foreign-key: id
+ - key: reactions.user.user.id
+ foreign-key: id
+- table-name: channel_message_replies
+ join:
+ - table-name: channels
+ keys:
+ - key: channel_identity.channel_id
+ foreign-key: id
+ - table-name: channel_members
+ keys:
+ - key: channel_identity.channel_id
+ foreign-key: channel_id
+ - key: from.user.id
+ foreign-key: user_id
+ - key: mentions.mentioned.user.id
+ foreign-key: user_id
+ - key: reactions.user.user.id
+ foreign-key: user_id
+ - table-name: channel_tabs
+ keys:
+ - key: channel_identity.channel_id
+ foreign-key: channel_id
+ - table-name: channel_messages
+ keys:
+ - key: channel_identity.channel_id
+ foreign-key: channel_identity.channel_id
+ - key: from.user.id
+ foreign-key: from.user.id
+ - key: mentions.mentioned.user.id
+ foreign-key: from.user.id
+ - key: reactions.user.user.id
+ foreign-key: from.user.id
+ - key: from.user.id
+ foreign-key: mentions.mentioned.user.id
+ - key: mentions.mentioned.user.id
+ foreign-key: mentions.mentioned.user.id
+ - key: reactions.user.user.id
+ foreign-key: mentions.mentioned.user.id
+ - key: from.user.id
+ foreign-key: reactions.user.user.id
+ - key: mentions.mentioned.user.id
+ foreign-key: reactions.user.user.id
+ - key: reactions.user.user.id
+ foreign-key: reactions.user.user.id
+ - table-name: users
+ keys:
+ - key: from.user.id
+ foreign-key: id
+ - key: mentions.mentioned.user.id
+ foreign-key: id
+ - key: reactions.user.user.id
+ foreign-key: id
+- table-name: conversations
+ join:
+ - table-name: conversation_threads
+ keys:
+ - key: id
+ foreign-key: conversation_id
+ - key: group_id
+ foreign-key: group_id
+ - table-name: conversation_posts
+ keys:
+ - key: id
+ foreign-key: conversation_id
+ - table-name: groups
+ keys:
+ - key: group_id
+ foreign-key: id
+ - table-name: group_owners
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: channel_tabs
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: team_drives
+ keys:
+ - key: group_id
+ foreign-key: owner.group.id
+- table-name: conversation_threads
+ join:
+ - table-name: conversations
+ keys:
+ - key: conversation_id
+ foreign-key: id
+ - key: group_id
+ foreign-key: group_id
+ - table-name: conversation_posts
+ keys:
+ - key: conversation_id
+ foreign-key: conversation_id
+ - key: id
+ foreign-key: thread_id
+ - table-name: groups
+ keys:
+ - key: group_id
+ foreign-key: id
+ - table-name: group_owners
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: channel_tabs
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: team_drives
+ keys:
+ - key: group_id
+ foreign-key: owner.group.id
+- table-name: conversation_posts
+ join:
+ - table-name: conversations
+ keys:
+ - key: conversation_id
+ foreign-key: id
+ - table-name: conversation_threads
+ keys:
+ - key: conversation_id
+ foreign-key: conversation_id
+ - key: thread_id
+ foreign-key: id
+- table-name: team_drives
+ join:
+ - table-name: groups
+ keys:
+ - key: owner.group.id
+ foreign-key: id
+ - table-name: group_owners
+ keys:
+ - key: owner.group.id
+ foreign-key: group_id
+ - table-name: channel_tabs
+ keys:
+ - key: owner.group.id
+ foreign-key: group_id
+ - table-name: conversations
+ keys:
+ - key: owner.group.id
+ foreign-key: group_id
+ - table-name: conversation_threads
+ keys:
+ - key: owner.group.id
+ foreign-key: group_id
+- table-name: groups
+ join:
+ - table-name: group_owners
+ keys:
+ - key: id
+ foreign-key: group_id
+ - table-name: channel_tabs
+ keys:
+ - key: id
+ foreign-key: group_id
+ - table-name: conversations
+ keys:
+ - key: id
+ foreign-key: group_id
+ - table-name: conversation_threads
+ keys:
+ - key: id
+ foreign-key: group_id
+ - table-name: team_drives
+ keys:
+ - key: id
+ foreign-key: owner.group.id
+- table-name: group_owners
+ join:
+ - table-name: groups
+ keys:
+ - key: group_id
+ foreign-key: id
+ - table-name: channel_tabs
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: conversations
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: conversation_threads
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: team_drives
+ keys:
+ - key: group_id
+ foreign-key: owner.group.id
+- table-name: users
+ join:
+ - table-name: channel_members
+ keys:
+ - key: id
+ foreign-key: user_id
+ - table-name: channel_message_replies
+ keys:
+ - key: id
+ foreign-key: from.user.id
+ - key: id
+ foreign-key: mentions.mentioned.user.id
+ - key: id
+ foreign-key: reactions.user.user.id
+ - table-name: channel_messages
+ keys:
+ - key: id
+ foreign-key: from.user.id
+ - key: id
+ foreign-key: mentions.mentioned.user.id
+ - key: id
+ foreign-key: reactions.user.user.id
diff --git a/_data/taps/schemas/ms-teams/v1/ms-teams-v1-tables.yml b/_data/taps/schemas/ms-teams/v1/ms-teams-v1-tables.yml
new file mode 100644
index 000000000..f5c0a77e3
--- /dev/null
+++ b/_data/taps/schemas/ms-teams/v1/ms-teams-v1-tables.yml
@@ -0,0 +1,175 @@
+tap: ms-teams
+version: '1'
+tap-repo-schemas: true
+tables:
+- name: channels
+ description: 'The `{{ table.name }}` table contains information about the channels
+ within a team in your Microsoft account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ms-teams/blob/master/tap_ms_teams/schemas/channels.json
+ api-method: https://docs.microsoft.com/en-us/graph/api/channel-list?view=graph-rest-1.0&tabs=http
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: channel_members
+ description: 'The `{{ table.name }}` table contains information about conversation
+ members within a chat or channel in your Microsoft account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ms-teams/blob/master/tap_ms_teams/schemas/channel_members.json
+ api-method: https://docs.microsoft.com/en-us/graph/api/conversationmember-list?view=graph-rest-beta&tabs=http
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: channel_messages
+ description: 'The `{{ table.name }}` table contains information about messages in
+ a channel, without replies, in your Microsoft account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ms-teams/blob/master/tap_ms_teams/schemas/channel_messages.json
+ api-method: https://docs.microsoft.com/en-us/graph/api/chatmessage-delta?view=graph-rest-beta&tabs=http
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: lastModified_date_time
+- name: channel_message_replies
+ description: 'The `{{ table.name }}` table contains information about message replies
+ within a channel in one of your Microsoft teams.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ms-teams/blob/master/tap_ms_teams/schemas/channel_message_replies.json
+ api-method: https://docs.microsoft.com/en-us/graph/api/channel-list-messagereplies?view=graph-rest-beta&tabs=http
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date_time
+- name: channel_tabs
+ description: 'The `{{ table.name }}` table contains information about tabs within
+ a channel in one of your Microsoft teams.
+
+ '
+ links:
+ doc-link: https://docs.microsoft.com/en-us/graph/api/teamstab-list?view=graph-rest-beta
+ singer-schema: https://github.com/singer-io/tap-ms-teams/blob/master/tap_ms_teams/schemas/channel_tabs.json
+ api-method: https://docs.microsoft.com/en-us/graph/api/teamstab-list?view=graph-rest-1.0
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: conversations
+ description: 'The `{{ table.name }}` table contains information about conversations
+ within a group in your Microsoft account.
+
+ '
+ links:
+ doc-link: https://docs.microsoft.com/en-us/graph/api/group-list-conversations?view=graph-rest-beta&tabs=http
+ singer-schema: https://github.com/singer-io/tap-ms-teams/blob/master/tap_ms_teams/schemas/conversations.json
+ api-method: https://docs.microsoft.com/en-us/graph/api/group-list-conversations?view=graph-rest-1.0&tabs=http
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_delivered_date_time
+- name: conversation_posts
+ description: 'The `{{ table.name }}` table contains information about the posts
+ within a conversation thread in your Microsoft account.
+
+ '
+ links:
+ doc-link: https://docs.microsoft.com/en-us/graph/api/conversationthread-list-posts?view=graph-rest-beta&tabs=http
+ singer-schema: https://github.com/singer-io/tap-ms-teams/blob/master/tap_ms_teams/schemas/conversation_posts.json
+ api-method: https://docs.microsoft.com/en-us/graph/api/conversationthread-list-posts?view=graph-rest-1.0&tabs=http
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date_time
+- name: conversation_threads
+ description: 'The `{{ table.name }}` table contains information about threads in
+ a group conversation in your Microsoft account.
+
+ '
+ links:
+ doc-link: https://docs.microsoft.com/en-us/graph/api/conversation-list-threads?view=graph-rest-beta&tabs=http
+ singer-schema: https://github.com/singer-io/tap-ms-teams/blob/master/tap_ms_teams/schemas/conversation_threads.json
+ api-method: https://docs.microsoft.com/en-us/graph/api/group-list-threads?view=graph-rest-1.0&tabs=http
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_delivered_date_time
+- name: groups
+ description: 'The `{{ table.name }}` table contains information about groups in
+ your organization within your Microsoft account. Some old teams in your account
+ will not have a `resource_provisioning_options` value. For more information, refer
+ to [Microsoft''s docs](https://docs.microsoft.com/en-us/graph/known-issues#missing-teams-in-list-all-teams){:target="new"}.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ms-teams/blob/master/tap_ms_teams/schemas/groups.json
+ api-method: https://docs.microsoft.com/en-us/graph/teams-list-all-teams?context=graph%2Fapi%2Fbeta&view=graph-rest-beta
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: group_members
+ description: 'The `{{ table.name }}` table contains information about group members
+ in your Microsoft account. Members can be users, organizational contacts, devices,
+ service principals, and other groups.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ms-teams/blob/master/tap_ms_teams/schemas/group_members.json
+ api-method: https://docs.microsoft.com/en-us/graph/api/group-list-members?view=graph-rest-1.0&tabs=http
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: group_owners
+ description: "The `{{ table.name }}` table contains information about groups' owners\
+ \ in your Microsoft account. The owners can be a set of users or service principals\
+ \ that have modifying priviliges. \n\n**Note**: Groups created in Microsoft Exchange\
+ \ will not be available in this table.\n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-ms-teams/blob/master/tap_ms_teams/schemas/group_owners.json
+ api-method: https://docs.microsoft.com/en-us/graph/api/group-list-owners?view=graph-rest-1.0&tabs=http
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: team_device_usage_report
+ description: 'The `{{ table.name }}` table contains information about a group''s
+ device usage in {{ integration.display_name }}.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ms-teams/blob/master/tap_ms_teams/schemas/team_device_usage_report.json
+ api-method: https://docs.microsoft.com/en-us/graph/api/reportroot-getteamsdeviceusageuserdetail?view=graph-rest-beta
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - user_principal_name
+ - report_refresh_date
+ replication-key: report_refresh_date
+- name: team_drives
+ description: 'The `{{ table.name }}` table contains information about the drive
+ that your team is on in your Microsoft account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ms-teams/blob/master/tap_ms_teams/schemas/team_drives.json
+ api-method: https://docs.microsoft.com/en-us/graph/api/drive-get?view=graph-rest-beta&tabs=http#get-the-document-library-associated-with-a-group
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_modified_date_time
+- name: users
+ description: 'The `{{ table.name }}` table contains information about users in your
+ Microsoft account.
+
+ '
+ links:
+ doc-link: hhttps://docs.microsoft.com/en-us/graph/api/resources/user?view=graph-rest-beta
+ singer-schema: https://github.com/singer-io/tap-ms-teams/blob/master/tap_ms_teams/schemas/users.json
+ api-method: https://docs.microsoft.com/en-us/graph/api/user-list?view=graph-rest-1.0&tabs=http
+ table-details:
+ replication-method: Full Table
+ primary-key: id
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/account_activity.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/account_activity.json
new file mode 100644
index 000000000..41e12c081
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/account_activity.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "accounting_book_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "activity_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "department_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_hidden_custom_line": {
+ "type": [
+ "string"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/account_period_activity.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/account_period_activity.json
new file mode 100644
index 000000000..9d71e4095
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/account_period_activity.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "accounting_book_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "accounting_period_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "department_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_hidden_custom_line": {
+ "type": [
+ "string"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/account_period_activity_pe.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/account_period_activity_pe.json
new file mode 100644
index 000000000..2b92cc3fd
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/account_period_activity_pe.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "accounting_book_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "accounting_period_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "balance_from_subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "department_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_hidden_custom_line": {
+ "type": [
+ "string"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/account_subsidiary_map.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/account_subsidiary_map.json
new file mode 100644
index 000000000..2c529f336
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/account_subsidiary_map.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/accounting_books.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/accounting_books.json
new file mode 100644
index 000000000..1deffd336
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/accounting_books.json
@@ -0,0 +1,99 @@
+{
+ "properties": {
+ "accounting_book_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "accounting_book_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "accounting_book_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "base_book_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "effective_period_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "form_template_component_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "form_template_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_adjustment_only": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_arrangement_level_reclass": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_consolidated": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_contingent_revenue_handling": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_include_child_subsidiaries": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_primary": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_two_step_revenue_allocation": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "unbilled_receivable_grouping": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/accounting_periods.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/accounting_periods.json
new file mode 100644
index 000000000..c4c06cd57
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/accounting_periods.json
@@ -0,0 +1,124 @@
+{
+ "properties": {
+ "accounting_period_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "closed": {
+ "type": [
+ "string"
+ ]
+ },
+ "closed_accounts_payable": {
+ "type": [
+ "string"
+ ]
+ },
+ "closed_accounts_receivable": {
+ "type": [
+ "string"
+ ]
+ },
+ "closed_all": {
+ "type": [
+ "string"
+ ]
+ },
+ "closed_on": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "closed_payroll": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "ending": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "fiscal_calendar_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_adjustment": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "locked_accounts_payable": {
+ "type": [
+ "string"
+ ]
+ },
+ "locked_accounts_receivable": {
+ "type": [
+ "string"
+ ]
+ },
+ "locked_all": {
+ "type": [
+ "string"
+ ]
+ },
+ "locked_payroll": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quarter": {
+ "type": [
+ "string"
+ ]
+ },
+ "starting": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "year_0": {
+ "type": [
+ "string"
+ ]
+ },
+ "year_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/accounts.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/accounts.json
new file mode 100644
index 000000000..433f8818f
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/accounts.json
@@ -0,0 +1,154 @@
+{
+ "properties": {
+ "account_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "accountnumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "cashflow_rate_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "category_1099_misc": {
+ "type": [
+ "string"
+ ]
+ },
+ "category_1099_misc_mthreshold": {
+ "type": [
+ "number"
+ ]
+ },
+ "class_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deferral_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "department_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "full_description": {
+ "type": [
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "general_rate_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_balancesheet": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_included_in_elimination": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_included_in_reval": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_including_child_subs": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_leftside": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_summary": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "legal_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "openbalance": {
+ "type": [
+ "integer"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "type_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "type_sequence": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/activities.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/activities.json
new file mode 100644
index 000000000..bcf44b93c
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/activities.json
@@ -0,0 +1,84 @@
+{
+ "properties": {
+ "access_level": {
+ "type": [
+ "string"
+ ]
+ },
+ "activity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "assigned_to_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "case_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "contact_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_0": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_completed": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "opportunity_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "owner_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "type_0": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/address_book.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/address_book.json
new file mode 100644
index 000000000..667271f26
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/address_book.json
@@ -0,0 +1,104 @@
+{
+ "properties": {
+ "address": {
+ "type": [
+ "string"
+ ]
+ },
+ "address_book_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "address_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "address_line_1": {
+ "type": [
+ "string"
+ ]
+ },
+ "address_line_2": {
+ "type": [
+ "string"
+ ]
+ },
+ "address_line_3": {
+ "type": [
+ "string"
+ ]
+ },
+ "attention": {
+ "type": [
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_default_bill_address": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_default_ship_address": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/addresses.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/addresses.json
new file mode 100644
index 000000000..2ee0bbf18
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/addresses.json
@@ -0,0 +1,79 @@
+{
+ "properties": {
+ "address": {
+ "type": [
+ "string"
+ ]
+ },
+ "address_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "address_line_1": {
+ "type": [
+ "string"
+ ]
+ },
+ "address_line_2": {
+ "type": [
+ "string"
+ ]
+ },
+ "address_line_3": {
+ "type": [
+ "string"
+ ]
+ },
+ "attention": {
+ "type": [
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "is_overridden": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/amortization_sched_lines.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/amortization_sched_lines.json
new file mode 100644
index 000000000..3cc7b8e05
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/amortization_sched_lines.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "accounting_period_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "amount": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_recognized": {
+ "type": [
+ "string"
+ ]
+ },
+ "journal_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "schedule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/amortization_schedules.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/amortization_schedules.json
new file mode 100644
index 000000000..43efc3f7d
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/amortization_schedules.json
@@ -0,0 +1,69 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "initial_amount": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_template": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "period_offset": {
+ "type": [
+ "integer"
+ ]
+ },
+ "residual": {
+ "type": [
+ "string"
+ ]
+ },
+ "schedule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "schedule_method": {
+ "type": [
+ "string"
+ ]
+ },
+ "schedule_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "schedule_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "start_offset": {
+ "type": [
+ "integer"
+ ]
+ },
+ "term_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/bill_of_distributions.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/bill_of_distributions.json
new file mode 100644
index 000000000..5ca98d746
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/bill_of_distributions.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "bill_of_distribution_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "bill_of_distribution_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "distribution_category_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "distribution_network_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/bill_of_materials.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/bill_of_materials.json
new file mode 100644
index 000000000..f8207c758
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/bill_of_materials.json
@@ -0,0 +1,74 @@
+{
+ "properties": {
+ "available_for_all_assemblies": {
+ "type": [
+ "string"
+ ]
+ },
+ "available_for_all_locations": {
+ "type": [
+ "string"
+ ]
+ },
+ "bill_of_materials_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "bill_of_materials_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "exclude_child_subsidiaries": {
+ "type": [
+ "string"
+ ]
+ },
+ "form_template_component_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "form_template_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "original_assembly_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "use_component_yield": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_accounts.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_accounts.json
new file mode 100644
index 000000000..c56c855ed
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_accounts.json
@@ -0,0 +1,124 @@
+{
+ "properties": {
+ "address_book_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "bill_to_address_book_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "billing_account_extid": {
+ "type": [
+ "integer"
+ ]
+ },
+ "billing_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "billing_account_memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "billing_account_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "billing_account_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "billing_schedule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "class_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_actual_bill": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_bill_cycle": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_next_bill_cycle": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_start": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "department_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "has_off_cycle_bill_request": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_customer_default": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ship_to_address_book_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_class_rates.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_class_rates.json
new file mode 100644
index 000000000..f8f17ef39
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_class_rates.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "billing_class_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "billing_rate_card_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "unit_price": {
+ "type": [
+ "number"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_classes.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_classes.json
new file mode 100644
index 000000000..12d8f09b8
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_classes.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "billing_class_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "billing_class_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "sale_unit_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "units_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_rate_cards.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_rate_cards.json
new file mode 100644
index 000000000..fcfaf7132
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_rate_cards.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "billing_rate_card_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "billing_rate_card_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_rate_cards_prices.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_rate_cards_prices.json
new file mode 100644
index 000000000..ee4e72d56
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_rate_cards_prices.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "billing_class_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "billing_rate_card_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "sales_unit_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "service_item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "unit_price": {
+ "type": [
+ "integer"
+ ]
+ },
+ "units_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "version0": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_rate_cards_versions.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_rate_cards_versions.json
new file mode 100644
index 000000000..b7fec8b74
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_rate_cards_versions.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "billing_rate_card_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_effective": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "last_modified_by_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "version0": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_schedule.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_schedule.json
new file mode 100644
index 000000000..645c3112e
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_schedule.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "bill_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "bill_amount_foreign": {
+ "type": [
+ "number"
+ ]
+ },
+ "bill_count": {
+ "type": [
+ "number"
+ ]
+ },
+ "bill_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "bill_net_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "bill_net_amount_foreign": {
+ "type": [
+ "integer"
+ ]
+ },
+ "milestone_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "payment_terms_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "rev_rec_end_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "rev_rec_start_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transaction_line_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_schedule_descriptions.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_schedule_descriptions.json
new file mode 100644
index 000000000..83791a511
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_schedule_descriptions.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "billing_schedule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "billing_schedule_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "frequency": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "recurrence_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_schedules.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_schedules.json
new file mode 100644
index 000000000..645c3112e
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_schedules.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "bill_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "bill_amount_foreign": {
+ "type": [
+ "number"
+ ]
+ },
+ "bill_count": {
+ "type": [
+ "number"
+ ]
+ },
+ "bill_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "bill_net_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "bill_net_amount_foreign": {
+ "type": [
+ "integer"
+ ]
+ },
+ "milestone_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "payment_terms_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "rev_rec_end_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "rev_rec_start_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transaction_line_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_subscription_lines.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_subscription_lines.json
new file mode 100644
index 000000000..29210fa89
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_subscription_lines.json
@@ -0,0 +1,154 @@
+{
+ "properties": {
+ "billing_mode_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "catalog_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_end": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_recurrence_start": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_start": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_termination": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "discount": {
+ "type": [
+ "number"
+ ]
+ },
+ "is_discount_percentage": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_include_in_renewal": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_prorate_end_date": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_prorate_start_date": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "line_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "period_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "price_interval_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "purchase_order_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "number"
+ ]
+ },
+ "recurring_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "sales_order_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "sales_order_line_number": {
+ "type": [
+ "integer"
+ ]
+ },
+ "status_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "subline_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "subline_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subline_number": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subscription_plan_line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "usage_multiplier_line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_subscriptions.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_subscriptions.json
new file mode 100644
index 000000000..50be00678
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/billing_subscriptions.json
@@ -0,0 +1,149 @@
+{
+ "properties": {
+ "advance_renewal_period_number": {
+ "type": [
+ "integer"
+ ]
+ },
+ "advance_renewal_period_unit_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "billing_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_end": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_estimated_revrec_end": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_start": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "default_renewal_method_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "default_renewal_plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "default_renewal_price_book_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "default_renewal_term_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "default_renewal_trantype_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "generate_modification_elements": {
+ "type": [
+ "string"
+ ]
+ },
+ "initial_term_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_auto_renewal": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_sub_start_date_as_rsd": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "price_book_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "sales_order_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subscription_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subscription_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "subscription_revision": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/bin_number.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/bin_number.json
new file mode 100644
index 000000000..14b31a22d
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/bin_number.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "bin_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "bin_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "bin_number_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "ispreferred": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "on_hand_count": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/bin_number_counts.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/bin_number_counts.json
new file mode 100644
index 000000000..f9fc35439
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/bin_number_counts.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "available_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "bin_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "bin_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "on_hand_count": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/bins.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/bins.json
new file mode 100644
index 000000000..ddd69dd81
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/bins.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "bin_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "bin_number": {
+ "type": [
+ "integer"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/bom_revision_components.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/bom_revision_components.json
new file mode 100644
index 000000000..74a1bf07c
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/bom_revision_components.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "bom_revision_component_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "bom_revision_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "component_yield": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "number"
+ ]
+ },
+ "seq_num": {
+ "type": [
+ "integer"
+ ]
+ },
+ "unit_of_measure_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/bom_revisions.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/bom_revisions.json
new file mode 100644
index 000000000..09c04668f
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/bom_revisions.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "bill_of_materials_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "bom_revision_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "bom_revision_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_effective": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_obsolete": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "form_template_component_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "form_template_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/budget.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/budget.json
new file mode 100644
index 000000000..e187fd098
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/budget.json
@@ -0,0 +1,74 @@
+{
+ "properties": {
+ "account_id": {
+ "type": [
+ "number"
+ ]
+ },
+ "accounting_book_id": {
+ "type": [
+ "number"
+ ]
+ },
+ "accounting_period_id": {
+ "type": [
+ "number"
+ ]
+ },
+ "amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "budget_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "budget_id": {
+ "type": [
+ "number"
+ ]
+ },
+ "category_id": {
+ "type": [
+ "number"
+ ]
+ },
+ "class_id": {
+ "type": [
+ "number"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "number"
+ ]
+ },
+ "department_id": {
+ "type": [
+ "number"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "number"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "number"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "number"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/budget_category.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/budget_category.json
new file mode 100644
index 000000000..ff38bd7f0
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/budget_category.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "budget_category_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_global": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/calls.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/calls.json
new file mode 100644
index 000000000..734e0061f
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/calls.json
@@ -0,0 +1,79 @@
+{
+ "properties": {
+ "call_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "call_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "call_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "case_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "company_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_completed": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "note": {
+ "type": [
+ "string"
+ ]
+ },
+ "opportunity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "organizer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "owner_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaign_audiences.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaign_audiences.json
new file mode 100644
index 000000000..bd0d457c3
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaign_audiences.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "campaignaudience_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaignaudience_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaign_categories.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaign_categories.json
new file mode 100644
index 000000000..8131e9949
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaign_categories.json
@@ -0,0 +1,54 @@
+{
+ "properties": {
+ "campaigncategory_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaigncategory_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "default_campaign_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_available_externally": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaign_families.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaign_families.json
new file mode 100644
index 000000000..5ea3d79b0
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaign_families.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "campaignfamily_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaignfamily_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaign_search_engine.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaign_search_engine.json
new file mode 100644
index 000000000..e0e5c8bc0
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaign_search_engine.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "search_engine_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "search_engine_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaign_subscription_statuses.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaign_subscription_statuses.json
new file mode 100644
index 000000000..0d5a8bc39
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaign_subscription_statuses.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "unsubscribed": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaign_subscriptions.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaign_subscriptions.json
new file mode 100644
index 000000000..7eb4c27c1
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaign_subscriptions.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "campaignsubscription_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaignsubscription_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaign_verticals.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaign_verticals.json
new file mode 100644
index 000000000..e92f91ec7
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaign_verticals.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "campaignvertical_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaignvertical_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaignchannel.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaignchannel.json
new file mode 100644
index 000000000..d77b0412e
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaignchannel.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "campaign_channel_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_channel_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "event_type_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaignevent.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaignevent.json
new file mode 100644
index 000000000..d63d64ee3
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaignevent.json
@@ -0,0 +1,99 @@
+{
+ "properties": {
+ "campaign_event_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_event_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "channel_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_0": {
+ "type": [
+ "number"
+ ]
+ },
+ "date_scheduled": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_sent": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "number_clicked_thru": {
+ "type": [
+ "integer"
+ ]
+ },
+ "number_received": {
+ "type": [
+ "integer"
+ ]
+ },
+ "number_responded": {
+ "type": [
+ "integer"
+ ]
+ },
+ "number_sent": {
+ "type": [
+ "integer"
+ ]
+ },
+ "number_unsubscribed": {
+ "type": [
+ "integer"
+ ]
+ },
+ "promotion_code_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "status_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "template_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "test_cell_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaignitem.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaignitem.json
new file mode 100644
index 000000000..91353bbba
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaignitem.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "campaign_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaignoffer.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaignoffer.json
new file mode 100644
index 000000000..dbd7c91ed
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaignoffer.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "campaign_offer_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_offer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaignresponse.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaignresponse.json
new file mode 100644
index 000000000..701ba7179
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaignresponse.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "campaign_event_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_response_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "campaign_response_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "contact_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_sent": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "response_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaignresponsehistory.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaignresponsehistory.json
new file mode 100644
index 000000000..4003f19c8
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaignresponsehistory.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "author": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_response_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_0": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "note": {
+ "type": [
+ "string"
+ ]
+ },
+ "response_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "status_detail": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaigns.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaigns.json
new file mode 100644
index 000000000..c4524811e
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/campaigns.json
@@ -0,0 +1,129 @@
+{
+ "properties": {
+ "audience_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_extid": {
+ "type": [
+ "integer"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "category_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_0": {
+ "type": [
+ "number"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "expectedrevenue": {
+ "type": [
+ "number"
+ ]
+ },
+ "family_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_sales_campaign": {
+ "type": [
+ "string"
+ ]
+ },
+ "keyword": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "number_0": {
+ "type": [
+ "string"
+ ]
+ },
+ "offer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "organizer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "search_engine_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "time_zone_0": {
+ "type": [
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ },
+ "vertical_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/case_origins.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/case_origins.json
new file mode 100644
index 000000000..a7d7fb34f
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/case_origins.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "case_origin_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "case_origin_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified_": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/case_stage_changes.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/case_stage_changes.json
new file mode 100644
index 000000000..34f7c48e7
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/case_stage_changes.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "case_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "casestage": {
+ "type": [
+ "string"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/case_types.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/case_types.json
new file mode 100644
index 000000000..5fe48e979
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/case_types.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "case_type_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "case_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/caseescalationhistory.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/caseescalationhistory.json
new file mode 100644
index 000000000..d3876d59b
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/caseescalationhistory.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "case_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "escalation_action": {
+ "type": [
+ "string"
+ ]
+ },
+ "escalation_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "escalator_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/caseissue.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/caseissue.json
new file mode 100644
index 000000000..0f866e936
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/caseissue.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "case_issue_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "case_issue_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/caseorigin.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/caseorigin.json
new file mode 100644
index 000000000..b8db91258
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/caseorigin.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "case_origin_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "case_origin_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/casetype.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/casetype.json
new file mode 100644
index 000000000..5fe48e979
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/casetype.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "case_type_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "case_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/charges.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/charges.json
new file mode 100644
index 000000000..374e71f13
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/charges.json
@@ -0,0 +1,179 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "billing_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "billing_mode_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "billing_schedule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "category_0": {
+ "type": [
+ "integer"
+ ]
+ },
+ "charge_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "charge_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "chargeemployee": {
+ "type": [
+ "integer"
+ ]
+ },
+ "chargerule": {
+ "type": [
+ "integer"
+ ]
+ },
+ "chargestage": {
+ "type": [
+ "string"
+ ]
+ },
+ "chargetype": {
+ "type": [
+ "integer"
+ ]
+ },
+ "chargeuse": {
+ "type": [
+ "string"
+ ]
+ },
+ "class_0": {
+ "type": [
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_0": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_bill": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_service_end": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_service_start": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "department": {
+ "type": [
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "group_order": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item": {
+ "type": [
+ "integer"
+ ]
+ },
+ "location_0": {
+ "type": [
+ "integer"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "number"
+ ]
+ },
+ "rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "run_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "sales_order": {
+ "type": [
+ "integer"
+ ]
+ },
+ "so_line": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subscription_line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "time_source": {
+ "type": [
+ "integer"
+ ]
+ },
+ "unit_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/classes.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/classes.json
new file mode 100644
index 000000000..c1e163bf3
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/classes.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "class_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "class_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_including_child_subs": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/commission_authorization_link.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/commission_authorization_link.json
new file mode 100644
index 000000000..ded88be24
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/commission_authorization_link.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "authorized_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "calc_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "commission_transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "commission_transaction_line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "schedule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/commissionplan.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/commissionplan.json
new file mode 100644
index 000000000..888fa3e95
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/commissionplan.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "commission_plan": {
+ "type": [
+ "string"
+ ]
+ },
+ "commission_plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/commissionrate.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/commissionrate.json
new file mode 100644
index 000000000..e2904ac33
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/commissionrate.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "commisssion_schedule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "rate": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/commissionschedule.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/commissionschedule.json
new file mode 100644
index 000000000..6fc2ffef4
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/commissionschedule.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "author": {
+ "type": [
+ "integer"
+ ]
+ },
+ "category_0": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "manager_": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "period_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "schedule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "target_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "type_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/companies.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/companies.json
new file mode 100644
index 000000000..c5cb19bbc
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/companies.json
@@ -0,0 +1,164 @@
+{
+ "properties": {
+ "address": {
+ "type": [
+ "string"
+ ]
+ },
+ "address1": {
+ "type": [
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "string"
+ ]
+ },
+ "address3": {
+ "type": [
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "company_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "company_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "companyname": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "create_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "last_sales_activity": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "loginaccess": {
+ "type": [
+ "string"
+ ]
+ },
+ "lsa_link": {
+ "type": [
+ "string"
+ ]
+ },
+ "lsa_link_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "stitch_custom_field": {
+ "type": [
+ "number"
+ ]
+ },
+ "stitch_custom_field_check_box": {
+ "type": [
+ "string"
+ ]
+ },
+ "stitch_custom_field_currency": {
+ "type": [
+ "number"
+ ]
+ },
+ "stitch_custom_field_decimal": {
+ "type": [
+ "number"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ },
+ "zipcode": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/company_status.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/company_status.json
new file mode 100644
index 000000000..25fac5cae
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/company_status.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "company_status_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "company_status_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "probability": {
+ "type": [
+ "number"
+ ]
+ },
+ "readonly": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/companycontactmap.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/companycontactmap.json
new file mode 100644
index 000000000..41c7b41fb
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/companycontactmap.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "company_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "contact_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "contactrole_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/competitor.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/competitor.json
new file mode 100644
index 000000000..c952983de
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/competitor.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "competitor_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "competitor_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "products_services": {
+ "type": [
+ "string"
+ ]
+ },
+ "strategy": {
+ "type": [
+ "string"
+ ]
+ },
+ "strengths": {
+ "type": [
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ },
+ "weaknesses": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/competitoroppmap.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/competitoroppmap.json
new file mode 100644
index 000000000..c9bb1ea8c
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/competitoroppmap.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "competitor_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_winner": {
+ "type": [
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "string"
+ ]
+ },
+ "opportunity_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/components_per_routing_steps.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/components_per_routing_steps.json
new file mode 100644
index 000000000..03afbb3d4
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/components_per_routing_steps.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "component_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "mfg_routing_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "sequence_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "sequence_number": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/consolidated_exchange_rates.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/consolidated_exchange_rates.json
new file mode 100644
index 000000000..f50f3ef4f
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/consolidated_exchange_rates.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "accounting_book_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "accounting_period_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "average_budget_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "average_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "consolidated_exchange_rate_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "current_budget_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "current_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "from_subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "historical_budget_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "historical_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "to_subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/contact_types.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/contact_types.json
new file mode 100644
index 000000000..e0befa12b
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/contact_types.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "contact_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "owner_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "shared_0": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/contactrole.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/contactrole.json
new file mode 100644
index 000000000..8a2139578
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/contactrole.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "contactrole_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "contactrole_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/contacts.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/contacts.json
new file mode 100644
index 000000000..e2cfcab56
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/contacts.json
@@ -0,0 +1,239 @@
+{
+ "properties": {
+ "address": {
+ "type": [
+ "string"
+ ]
+ },
+ "altemail": {
+ "type": [
+ "string"
+ ]
+ },
+ "assistant_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "assistantphone": {
+ "type": [
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "company_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "contact_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "contact_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "create_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "firstname": {
+ "type": [
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "homephone": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_private": {
+ "type": [
+ "string"
+ ]
+ },
+ "isemailhtml": {
+ "type": [
+ "string"
+ ]
+ },
+ "isemailpdf": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "last_sales_activity": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastname": {
+ "type": [
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "string"
+ ]
+ },
+ "line3": {
+ "type": [
+ "string"
+ ]
+ },
+ "loginaccess": {
+ "type": [
+ "string"
+ ]
+ },
+ "lsa_link": {
+ "type": [
+ "string"
+ ]
+ },
+ "lsa_link_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "middlename": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobilephone": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "officephone": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "salutation": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "stitch_custom_field": {
+ "type": [
+ "number"
+ ]
+ },
+ "stitch_custom_field_check_box": {
+ "type": [
+ "string"
+ ]
+ },
+ "stitch_custom_field_currency": {
+ "type": [
+ "number"
+ ]
+ },
+ "stitch_custom_field_decimal": {
+ "type": [
+ "number"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "integer"
+ ]
+ },
+ "supervisior_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "supervisorphone": {
+ "type": [
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "zipcode": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/countries.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/countries.json
new file mode 100644
index 000000000..dd920a6a6
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/countries.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "country_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "short_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/coupon_codes.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/coupon_codes.json
new file mode 100644
index 000000000..ce80ef3c7
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/coupon_codes.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "code": {
+ "type": [
+ "string"
+ ]
+ },
+ "coupon_code_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_sent": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "promotion_code_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "recipient_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/crmgroup.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/crmgroup.json
new file mode 100644
index 000000000..6863cd753
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/crmgroup.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "group_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_mfg_work_center": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_private": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_sales_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_support_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "labor_resources": {
+ "type": [
+ "integer"
+ ]
+ },
+ "machine_resources": {
+ "type": [
+ "integer"
+ ]
+ },
+ "owner": {
+ "type": [
+ "integer"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "work_calendar_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/crmgroupmap.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/crmgroupmap.json
new file mode 100644
index 000000000..ce82555ce
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/crmgroupmap.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "entity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_primary": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/crmtemplate.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/crmtemplate.json
new file mode 100644
index 000000000..916f1cc02
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/crmtemplate.json
@@ -0,0 +1,69 @@
+{
+ "properties": {
+ "crmtemplate_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "crmtemplate_modified_by": {
+ "type": [
+ "integer"
+ ]
+ },
+ "crmtemplate_record_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "from_email": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_private": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "owner_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "reply_email_address": {
+ "type": [
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/currencies.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/currencies.json
new file mode 100644
index 000000000..e2b58fc46
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/currencies.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "currency_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "precision_0": {
+ "type": [
+ "integer"
+ ]
+ },
+ "symbol": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/currency_exchange_rate_types.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/currency_exchange_rate_types.json
new file mode 100644
index 000000000..a59cb07e8
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/currency_exchange_rate_types.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "currency_rate_type_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "currency_rate_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_default": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/currency_exchange_rates.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/currency_exchange_rates.json
new file mode 100644
index 000000000..c197ef9d2
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/currency_exchange_rates.json
@@ -0,0 +1,69 @@
+{
+ "properties": {
+ "anchor_currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "base_currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "currency_rate_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "currency_rate_provider_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "currency_rate_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_effective": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "exchange_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "is_anchor_only": {
+ "type": [
+ "string"
+ ]
+ },
+ "update_method_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/currencyrates.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/currencyrates.json
new file mode 100644
index 000000000..022d6082a
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/currencyrates.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "anchor_currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "base_currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "currencyrate_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "currencyrate_provider_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_effective": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "exchange_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "is_anchor_only": {
+ "type": [
+ "string"
+ ]
+ },
+ "update_method_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/customer_currencies.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/customer_currencies.json
new file mode 100644
index 000000000..34f6d226a
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/customer_currencies.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "deposit_balance_foreign": {
+ "type": [
+ "integer"
+ ]
+ },
+ "openbalance_foreign": {
+ "type": [
+ "integer"
+ ]
+ },
+ "unbilled_orders_foreign": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/customer_group_pricing.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/customer_group_pricing.json
new file mode 100644
index 000000000..0e825a66f
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/customer_group_pricing.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "price_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "pricing_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/customer_item_pricing.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/customer_item_pricing.json
new file mode 100644
index 000000000..18142ff14
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/customer_item_pricing.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_unit_price": {
+ "type": [
+ "number"
+ ]
+ },
+ "price_type_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/customer_partner_sales_teams.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/customer_partner_sales_teams.json
new file mode 100644
index 000000000..2f37bdc8e
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/customer_partner_sales_teams.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "contribution": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "isprimary": {
+ "type": [
+ "string"
+ ]
+ },
+ "partner_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "sales_role_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/customer_sales_teams.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/customer_sales_teams.json
new file mode 100644
index 000000000..b995e0869
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/customer_sales_teams.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "contribution": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "isprimary": {
+ "type": [
+ "string"
+ ]
+ },
+ "sales_rep_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "sales_role_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/customer_subsidiary_map.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/customer_subsidiary_map.json
new file mode 100644
index 000000000..636f0bbc8
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/customer_subsidiary_map.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/customer_types.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/customer_types.json
new file mode 100644
index 000000000..6eed8feb9
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/customer_types.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "customer_type_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/customers.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/customers.json
new file mode 100644
index 000000000..ecfcf554a
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/customers.json
@@ -0,0 +1,749 @@
+{
+ "properties": {
+ "accountnumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "alcohol_recipient_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "allow_task_time_for_allocation": {
+ "type": [
+ "string"
+ ]
+ },
+ "altemail": {
+ "type": [
+ "string"
+ ]
+ },
+ "alternate_contact_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "altphone": {
+ "type": [
+ "string"
+ ]
+ },
+ "amount_complete": {
+ "type": [
+ "number"
+ ]
+ },
+ "billaddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "billing_rate_card_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "billing_schedule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "billing_schedule_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "billing_transaction_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "calculated_end": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "category_0": {
+ "type": [
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "companyname": {
+ "type": [
+ "string"
+ ]
+ },
+ "consol_days_overdue": {
+ "type": [
+ "integer"
+ ]
+ },
+ "consol_deposit_balance": {
+ "type": [
+ "integer"
+ ]
+ },
+ "consol_deposit_balance_foreign": {
+ "type": [
+ "integer"
+ ]
+ },
+ "consol_openbalance": {
+ "type": [
+ "integer"
+ ]
+ },
+ "consol_openbalance_foreign": {
+ "type": [
+ "integer"
+ ]
+ },
+ "consol_unbilled_orders": {
+ "type": [
+ "integer"
+ ]
+ },
+ "consol_unbilled_orders_foreign": {
+ "type": [
+ "integer"
+ ]
+ },
+ "converted_to_contact_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "converted_to_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_estimate": {
+ "type": [
+ "number"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "create_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "credithold": {
+ "type": [
+ "string"
+ ]
+ },
+ "creditlimit": {
+ "type": [
+ "number"
+ ]
+ },
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_calculated_start": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_closed": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_convsersion": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_first_order": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_first_sale": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_gross_lead": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_order": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_sale": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_lead": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_prospect": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_scheduled_end": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "days_overdue": {
+ "type": [
+ "integer"
+ ]
+ },
+ "default_order_priority": {
+ "type": [
+ "number"
+ ]
+ },
+ "default_receivables_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "deposit_balance": {
+ "type": [
+ "number"
+ ]
+ },
+ "deposit_balance_foreign": {
+ "type": [
+ "integer"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "expected_close": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "first_sale_period_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "first_visit": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "firstname": {
+ "type": [
+ "string"
+ ]
+ },
+ "forecast_based_on_allocations": {
+ "type": [
+ "string"
+ ]
+ },
+ "forecast_charge_run_on_demand": {
+ "type": [
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "home_phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_exempt_time": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_explicit_conversion": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_job": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_limit_time_to_assignees": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_person": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_productive_time": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_project_completely_billed": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_source_item_from_brc": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_utilized_time": {
+ "type": [
+ "string"
+ ]
+ },
+ "isemailhtml": {
+ "type": [
+ "string"
+ ]
+ },
+ "isemailpdf": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "istaxable": {
+ "type": [
+ "string"
+ ]
+ },
+ "job_end": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "job_start": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "job_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "labor_budget_from_allocations": {
+ "type": [
+ "string"
+ ]
+ },
+ "language_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "last_sale_period_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "last_sales_activity": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "last_visit": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastname": {
+ "type": [
+ "string"
+ ]
+ },
+ "lead_source_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "line1": {
+ "type": [
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "string"
+ ]
+ },
+ "line3": {
+ "type": [
+ "string"
+ ]
+ },
+ "loginaccess": {
+ "type": [
+ "string"
+ ]
+ },
+ "lsa_link": {
+ "type": [
+ "string"
+ ]
+ },
+ "lsa_link_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "middlename": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobile_phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "multiple_price_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "openbalance": {
+ "type": [
+ "integer"
+ ]
+ },
+ "openbalance_foreign": {
+ "type": [
+ "integer"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "partner_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "payment_terms_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "primary_contact_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "print_on_check_as": {
+ "type": [
+ "string"
+ ]
+ },
+ "probability": {
+ "type": [
+ "number"
+ ]
+ },
+ "project_expense_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "project_manager_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "projected_end": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "referrer": {
+ "type": [
+ "string"
+ ]
+ },
+ "reminderdays": {
+ "type": [
+ "integer"
+ ]
+ },
+ "renewal": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "represents_subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "resalenumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "rev_rec_forecast_rule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "rev_rec_forecast_template": {
+ "type": [
+ "integer"
+ ]
+ },
+ "revenue_estimate": {
+ "type": [
+ "number"
+ ]
+ },
+ "sales_rep_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "sales_territory_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "salutation": {
+ "type": [
+ "string"
+ ]
+ },
+ "scheduling_method_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "ship_complete": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipaddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "status_descr": {
+ "type": [
+ "string"
+ ]
+ },
+ "status_probability": {
+ "type": [
+ "number"
+ ]
+ },
+ "status_read_only": {
+ "type": [
+ "string"
+ ]
+ },
+ "stitch_custom_field": {
+ "type": [
+ "number"
+ ]
+ },
+ "stitch_custom_field_check_box": {
+ "type": [
+ "string"
+ ]
+ },
+ "stitch_custom_field_currency": {
+ "type": [
+ "number"
+ ]
+ },
+ "stitch_custom_field_decimal": {
+ "type": [
+ "number"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "tax_item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "third_party_acct": {
+ "type": [
+ "string"
+ ]
+ },
+ "third_party_carrier": {
+ "type": [
+ "string"
+ ]
+ },
+ "third_party_country": {
+ "type": [
+ "string"
+ ]
+ },
+ "third_party_zip_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "time_approval_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "top_level_parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "unbilled_orders": {
+ "type": [
+ "number"
+ ]
+ },
+ "unbilled_orders_foreign": {
+ "type": [
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ },
+ "use_calculated_billing_budget": {
+ "type": [
+ "string"
+ ]
+ },
+ "use_calculated_cost_budget": {
+ "type": [
+ "string"
+ ]
+ },
+ "use_percent_complete_override": {
+ "type": [
+ "string"
+ ]
+ },
+ "vat_reg_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "web_lead": {
+ "type": [
+ "string"
+ ]
+ },
+ "zipcode": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/deleted_records.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/deleted_records.json
new file mode 100644
index 000000000..368298b64
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/deleted_records.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "custom_record_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_deleted": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "entity_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_custom_list": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "record_base_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "record_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "record_type_name": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/departments.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/departments.json
new file mode 100644
index 000000000..04215686a
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/departments.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "department_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "department_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_including_child_subs": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/distribution_categories.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/distribution_categories.json
new file mode 100644
index 000000000..f0c3d5862
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/distribution_categories.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "category_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "distribution_category_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/distribution_networks.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/distribution_networks.json
new file mode 100644
index 000000000..6ec917ba1
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/distribution_networks.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "distribution_network_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "distribution_network_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "network_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/employee_currency_map.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/employee_currency_map.json
new file mode 100644
index 000000000..bbb9b95d1
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/employee_currency_map.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "employee_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/employee_time.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/employee_time.json
new file mode 100644
index 000000000..8442f87a1
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/employee_time.json
@@ -0,0 +1,214 @@
+{
+ "properties": {
+ "approved": {
+ "type": [
+ "string"
+ ]
+ },
+ "billable": {
+ "type": [
+ "string"
+ ]
+ },
+ "billed": {
+ "type": [
+ "string"
+ ]
+ },
+ "billing_class_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "billing_subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "break_duration": {
+ "type": [
+ "number"
+ ]
+ },
+ "charge_billing_run_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "class_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "closed": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "day_0": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "department_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "duration": {
+ "type": [
+ "number"
+ ]
+ },
+ "employee_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "employee_time_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ending": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "event_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_outside_project_plan": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_posted": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_productive": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_utilized": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "next_approver_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "payroll_item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "payroll_workplace_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "price_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "rejection_note": {
+ "type": [
+ "string"
+ ]
+ },
+ "remaining_time_to_charge": {
+ "type": [
+ "integer"
+ ]
+ },
+ "resource_allocation_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "starting": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "status_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "time_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "timesheet_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transaction_line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "unit_cost": {
+ "type": [
+ "number"
+ ]
+ },
+ "unit_price": {
+ "type": [
+ "number"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/employee_types.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/employee_types.json
new file mode 100644
index 000000000..1cef5260e
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/employee_types.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "employee_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/employees.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/employees.json
new file mode 100644
index 000000000..4a56104f2
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/employees.json
@@ -0,0 +1,344 @@
+{
+ "properties": {
+ "accountnumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "address": {
+ "type": [
+ "string"
+ ]
+ },
+ "approvallimit": {
+ "type": [
+ "number"
+ ]
+ },
+ "approver_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "billing_class_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "birthdate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "class_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "create_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "def_acct_corp_card_expenses_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "def_expense_report_currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "default_job_resource_role_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "department_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "employee_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "employee_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "employee_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "firstname": {
+ "type": [
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "gender": {
+ "type": [
+ "string"
+ ]
+ },
+ "hireddate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "home_phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "initials": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_in_payroll": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_job_manager": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_job_resource": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "issalesrep": {
+ "type": [
+ "string"
+ ]
+ },
+ "issupportrep": {
+ "type": [
+ "string"
+ ]
+ },
+ "job_description": {
+ "type": [
+ "string"
+ ]
+ },
+ "jobtitle": {
+ "type": [
+ "string"
+ ]
+ },
+ "labor_cost": {
+ "type": [
+ "integer"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "last_sales_activity": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastname": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastreviewdate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "line1": {
+ "type": [
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "string"
+ ]
+ },
+ "line3": {
+ "type": [
+ "string"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "loginaccess": {
+ "type": [
+ "string"
+ ]
+ },
+ "lsa_link": {
+ "type": [
+ "string"
+ ]
+ },
+ "lsa_link_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "marital_status_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "middlename": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobile_phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nextreviewdate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "office_phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "releasedate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "salutation": {
+ "type": [
+ "string"
+ ]
+ },
+ "socialsecuritynumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "stitch_custom_field": {
+ "type": [
+ "number"
+ ]
+ },
+ "stitch_custom_field_check_box": {
+ "type": [
+ "string"
+ ]
+ },
+ "stitch_custom_field_currency": {
+ "type": [
+ "number"
+ ]
+ },
+ "stitch_custom_field_decimal": {
+ "type": [
+ "number"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "supervisor_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "target_utilization": {
+ "type": [
+ "number"
+ ]
+ },
+ "work_calendar_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "zipcode": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/entity.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/entity.json
new file mode 100644
index 000000000..39b0500ea
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/entity.json
@@ -0,0 +1,199 @@
+{
+ "properties": {
+ "address_one": {
+ "type": [
+ "string"
+ ]
+ },
+ "address_three": {
+ "type": [
+ "string"
+ ]
+ },
+ "address_two": {
+ "type": [
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "create_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "entity_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "entity_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "global_subscription_status": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_online_bill_pay": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_unavailable": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_sales_activity": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "login_access": {
+ "type": [
+ "string"
+ ]
+ },
+ "lsa_link": {
+ "type": [
+ "string"
+ ]
+ },
+ "lsa_link_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "middle_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "string"
+ ]
+ },
+ "originator_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "salutation": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "stitch_custom_field": {
+ "type": [
+ "number"
+ ]
+ },
+ "stitch_custom_field_check_box": {
+ "type": [
+ "string"
+ ]
+ },
+ "stitch_custom_field_currency": {
+ "type": [
+ "number"
+ ]
+ },
+ "stitch_custom_field_decimal": {
+ "type": [
+ "number"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "integer"
+ ]
+ },
+ "unsubscribed": {
+ "type": [
+ "string"
+ ]
+ },
+ "zipcode": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/entity_role_map.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/entity_role_map.json
new file mode 100644
index 000000000..4dbe287ae
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/entity_role_map.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "contact_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "role_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/entity_status.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/entity_status.json
new file mode 100644
index 000000000..6a95e9768
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/entity_status.json
@@ -0,0 +1,54 @@
+{
+ "properties": {
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "entity_status_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "entity_status_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "probability": {
+ "type": [
+ "number"
+ ]
+ },
+ "read_only": {
+ "type": [
+ "string"
+ ]
+ },
+ "type_0": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/entity_status_history.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/entity_status_history.json
new file mode 100644
index 000000000..421818e68
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/entity_status_history.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "comment_0": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_0": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "entity_status_new_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "entity_status_old_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/entitycategory.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/entitycategory.json
new file mode 100644
index 000000000..01d0a380d
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/entitycategory.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "entity_category_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "entity_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_0": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/entityeventmap.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/entityeventmap.json
new file mode 100644
index 000000000..f52affe6c
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/entityeventmap.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "attendee_status_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "event_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "resource_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "status_id": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/entityterritorymap.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/entityterritorymap.json
new file mode 100644
index 000000000..f6681ee02
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/entityterritorymap.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "entity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "territory_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/eventattendees.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/eventattendees.json
new file mode 100644
index 000000000..2e37eaba6
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/eventattendees.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "attendee_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "event_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/events1.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/events1.json
new file mode 100644
index 000000000..3c9aa8aa5
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/events1.json
@@ -0,0 +1,84 @@
+{
+ "properties": {
+ "access_level": {
+ "type": [
+ "string"
+ ]
+ },
+ "company_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "contact_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_0": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "event_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "event_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_timed_event": {
+ "type": [
+ "string"
+ ]
+ },
+ "location_0": {
+ "type": [
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "opportunity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "organizer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "supportcase_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/expense_accounts.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/expense_accounts.json
new file mode 100644
index 000000000..6381d101f
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/expense_accounts.json
@@ -0,0 +1,79 @@
+{
+ "properties": {
+ "account_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "current_balance": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "desription": {
+ "type": [
+ "string"
+ ]
+ },
+ "expense_account_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "expense_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_including_child_subs": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_summary": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "legal_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/expense_amortization_rules.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/expense_amortization_rules.json
new file mode 100644
index 000000000..9687a14a9
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/expense_amortization_rules.json
@@ -0,0 +1,99 @@
+{
+ "properties": {
+ "amount_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "contra_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "end_date_change_impact": {
+ "type": [
+ "string"
+ ]
+ },
+ "end_date_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "expense_rule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "initial_amount": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "period_offset": {
+ "type": [
+ "integer"
+ ]
+ },
+ "recognition_period": {
+ "type": [
+ "integer"
+ ]
+ },
+ "reforecast_method": {
+ "type": [
+ "string"
+ ]
+ },
+ "residual": {
+ "type": [
+ "string"
+ ]
+ },
+ "rule_method": {
+ "type": [
+ "string"
+ ]
+ },
+ "start_date_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "start_offset": {
+ "type": [
+ "integer"
+ ]
+ },
+ "term_in_days": {
+ "type": [
+ "integer"
+ ]
+ },
+ "term_in_months": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/expense_based_charge_rules.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/expense_based_charge_rules.json
new file mode 100644
index 000000000..34e4297a1
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/expense_based_charge_rules.json
@@ -0,0 +1,74 @@
+{
+ "properties": {
+ "charge_rule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "charge_rule_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "charge_stage": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "expense_amount_multiplier": {
+ "type": [
+ "number"
+ ]
+ },
+ "expense_based_charge_rule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "expense_saved_search": {
+ "type": [
+ "integer"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "form_template": {
+ "type": [
+ "integer"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "rule_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "rule_order": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/expense_categories.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/expense_categories.json
new file mode 100644
index 000000000..fcd314c07
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/expense_categories.json
@@ -0,0 +1,54 @@
+{
+ "properties": {
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "expense_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "expense_category_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "expense_category_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "expense_item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_personal_corp_card_expense": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "rate_required": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/expense_categories_rates.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/expense_categories_rates.json
new file mode 100644
index 000000000..3ddd491dd
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/expense_categories_rates.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "default_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "expense_category_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/expense_categories_subs_map.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/expense_categories_subs_map.json
new file mode 100644
index 000000000..88216d84d
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/expense_categories_subs_map.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "expense_category_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/expense_detail.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/expense_detail.json
new file mode 100644
index 000000000..31cde0b00
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/expense_detail.json
@@ -0,0 +1,94 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "exchange_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "expense_category_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "expense_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "expense_detail_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "foreign_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "foreign_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "has_receipt": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_paid_by_corp_credit_card": {
+ "type": [
+ "string"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "number"
+ ]
+ },
+ "rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "reference_number": {
+ "type": [
+ "integer"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transaction_line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/expense_plan_lines.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/expense_plan_lines.json
new file mode 100644
index 000000000..71dceb9a2
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/expense_plan_lines.json
@@ -0,0 +1,54 @@
+{
+ "properties": {
+ "accounting_period_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deferred_expense_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "expense_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_recognized": {
+ "type": [
+ "string"
+ ]
+ },
+ "journal_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "planned_expense_type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/expense_plans.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/expense_plans.json
new file mode 100644
index 000000000..e14291972
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/expense_plans.json
@@ -0,0 +1,104 @@
+{
+ "properties": {
+ "accounting_period_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "expense_plan_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "expense_plan_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "expense_rule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_hold_expense": {
+ "type": [
+ "string"
+ ]
+ },
+ "plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "plan_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "reforecast_method": {
+ "type": [
+ "string"
+ ]
+ },
+ "related_revenue_arrangement_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "related_revenue_element_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "residual": {
+ "type": [
+ "number"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "transaction_book_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transaction_doc_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transaction_line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/fair_value_prices.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/fair_value_prices.json
new file mode 100644
index 000000000..0fbcf843b
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/fair_value_prices.json
@@ -0,0 +1,89 @@
+{
+ "properties": {
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "fair_value_formula": {
+ "type": [
+ "string"
+ ]
+ },
+ "fair_value_price_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "fair_value_price_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "fair_value_range_policy": {
+ "type": [
+ "string"
+ ]
+ },
+ "high_value": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_vsoe": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_revenue_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "low_value": {
+ "type": [
+ "string"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "unit_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "unit_price": {
+ "type": [
+ "number"
+ ]
+ },
+ "units_type_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/fixed_fee_charge_rules.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/fixed_fee_charge_rules.json
new file mode 100644
index 000000000..4a23e77d1
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/fixed_fee_charge_rules.json
@@ -0,0 +1,94 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "billing_item": {
+ "type": [
+ "integer"
+ ]
+ },
+ "charge_rule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "charge_rule_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "charge_stage": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "fixed_fee_charge_rule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "form_template": {
+ "type": [
+ "integer"
+ ]
+ },
+ "frequency": {
+ "type": [
+ "string"
+ ]
+ },
+ "period": {
+ "type": [
+ "integer"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "project_task": {
+ "type": [
+ "integer"
+ ]
+ },
+ "rule_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/generic_resources.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/generic_resources.json
new file mode 100644
index 000000000..ed6eb83fb
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/generic_resources.json
@@ -0,0 +1,89 @@
+{
+ "properties": {
+ "billing_class_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "generic_resource_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "generic_resource_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "labor_cost": {
+ "type": [
+ "integer"
+ ]
+ },
+ "last_sales_activity": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lsa_link": {
+ "type": [
+ "string"
+ ]
+ },
+ "lsa_link_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "integer"
+ ]
+ },
+ "resource_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "stitch_custom_field": {
+ "type": [
+ "number"
+ ]
+ },
+ "stitch_custom_field_check_box": {
+ "type": [
+ "string"
+ ]
+ },
+ "stitch_custom_field_currency": {
+ "type": [
+ "number"
+ ]
+ },
+ "stitch_custom_field_decimal": {
+ "type": [
+ "number"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "workcalendar_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/gift_certificates.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/gift_certificates.json
new file mode 100644
index 000000000..ccac2f1bb
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/gift_certificates.json
@@ -0,0 +1,99 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "amount_available": {
+ "type": [
+ "integer"
+ ]
+ },
+ "amount_available_billed": {
+ "type": [
+ "integer"
+ ]
+ },
+ "create_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "expiration_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "from_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "gift_certificate_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "gift_certificate_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "gift_message": {
+ "type": [
+ "string"
+ ]
+ },
+ "include_child_subsidiaries": {
+ "type": [
+ "string"
+ ]
+ },
+ "income_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_active": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "liability_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "purchase_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "to_email": {
+ "type": [
+ "string"
+ ]
+ },
+ "to_name": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/global_account_map.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/global_account_map.json
new file mode 100644
index 000000000..4f272cf96
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/global_account_map.json
@@ -0,0 +1,99 @@
+{
+ "properties": {
+ "accounting_book_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "class_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_effective": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_end": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "department_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "destination_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "form_template_component_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "form_template_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "global_account_map_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "global_account_map_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_class_any": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_department_any": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_location_any": {
+ "type": [
+ "string"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "source_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/global_inventory_relationships.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/global_inventory_relationships.json
new file mode 100644
index 000000000..f378d14c9
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/global_inventory_relationships.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "global_invt_relationship_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "global_invt_relationship_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "inventory_subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_all_locations_cust_return": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_all_locations_fulfillment": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_allow_cross_sub_cust_return": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_allow_cross_sub_fulfillment": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "originating_subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/group_test_cell.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/group_test_cell.json
new file mode 100644
index 000000000..ab40bbc5a
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/group_test_cell.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "crm_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cumulativepct": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "percentage": {
+ "type": [
+ "integer"
+ ]
+ },
+ "previouspct": {
+ "type": [
+ "integer"
+ ]
+ },
+ "test_cell_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/inbound_shipment_items.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/inbound_shipment_items.json
new file mode 100644
index 000000000..e756acd86
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/inbound_shipment_items.json
@@ -0,0 +1,104 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_effective": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "exchange_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "fx_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "inboundshipment_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "inboundshipmentitem_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "incoterm_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "quantity_billed": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quantity_expected": {
+ "type": [
+ "number"
+ ]
+ },
+ "quantity_received": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quantity_remaining": {
+ "type": [
+ "integer"
+ ]
+ },
+ "receiving_location_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "unit_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "unit_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "vendor_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "vendor_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/inbound_shipments.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/inbound_shipments.json
new file mode 100644
index 000000000..5066286f9
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/inbound_shipments.json
@@ -0,0 +1,74 @@
+{
+ "properties": {
+ "bill_of_landing": {
+ "type": [
+ "string"
+ ]
+ },
+ "bill_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_actual_delivery": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_actual_shipping": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_create": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_expected_delivery": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_expected_shipping": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "inboundshipment_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipment_number": {
+ "type": [
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "vessel_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/income_accounts.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/income_accounts.json
new file mode 100644
index 000000000..1a71a08e7
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/income_accounts.json
@@ -0,0 +1,79 @@
+{
+ "properties": {
+ "account_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "current_balance": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "desription": {
+ "type": [
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "income_account_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "income_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_including_child_subs": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_summary": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "legal_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/inventory_cost_template.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/inventory_cost_template.json
new file mode 100644
index 000000000..5e41991f8
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/inventory_cost_template.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "create_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "inv_cost_template_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "inv_cost_template_memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "inv_cost_template_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/inventory_cost_template_items.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/inventory_cost_template_items.json
new file mode 100644
index 000000000..fa65b2723
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/inventory_cost_template_items.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "inv_cost_template_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "inv_cost_template_line_order": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/inventory_items.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/inventory_items.json
new file mode 100644
index 000000000..5e226a473
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/inventory_items.json
@@ -0,0 +1,674 @@
+{
+ "properties": {
+ "allow_drop_ship": {
+ "type": [
+ "string"
+ ]
+ },
+ "alt_demand_source_item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "asset_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "atp_lead_time": {
+ "type": [
+ "integer"
+ ]
+ },
+ "atp_method": {
+ "type": [
+ "string"
+ ]
+ },
+ "averagecost": {
+ "type": [
+ "number"
+ ]
+ },
+ "backward_consumption_days": {
+ "type": [
+ "integer"
+ ]
+ },
+ "bill_exch_rate_var_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "bill_price_variance_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "bill_qty_variance_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_0": {
+ "type": [
+ "number"
+ ]
+ },
+ "cost_accounting_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "cost_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "costing_method": {
+ "type": [
+ "string"
+ ]
+ },
+ "create_plan_on_event_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "current_on_order_count": {
+ "type": [
+ "number"
+ ]
+ },
+ "custreturn_variance_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_of_last_transaction": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "default_return_cost": {
+ "type": [
+ "number"
+ ]
+ },
+ "demand_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "demand_time_fence": {
+ "type": [
+ "integer"
+ ]
+ },
+ "deposit": {
+ "type": [
+ "string"
+ ]
+ },
+ "displayname": {
+ "type": [
+ "string"
+ ]
+ },
+ "distribution_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "distribution_network": {
+ "type": [
+ "string"
+ ]
+ },
+ "dropship_expense_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "expense_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "featureddescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "fixed_lot_size": {
+ "type": [
+ "integer"
+ ]
+ },
+ "forward_consumption_days": {
+ "type": [
+ "integer"
+ ]
+ },
+ "fraud_risk": {
+ "type": [
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "fx_adjustment_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gain_loss_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "handling_cost": {
+ "type": [
+ "number"
+ ]
+ },
+ "hazmat": {
+ "type": [
+ "string"
+ ]
+ },
+ "hazmat_hazard_class": {
+ "type": [
+ "string"
+ ]
+ },
+ "hazmat_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "hazmat_item_units": {
+ "type": [
+ "string"
+ ]
+ },
+ "hazmat_item_units_qty": {
+ "type": [
+ "integer"
+ ]
+ },
+ "hazmat_packing_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "hazmat_shipping_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "include_child_subsidiaries": {
+ "type": [
+ "string"
+ ]
+ },
+ "income_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "interco_expense_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "interco_income_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "invt_count_classification": {
+ "type": [
+ "integer"
+ ]
+ },
+ "invt_count_interval": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_cont_rev_handling": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_hold_rev_rec": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_moss": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "isonline": {
+ "type": [
+ "string"
+ ]
+ },
+ "istaxable": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_revenue_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_cogs_correction": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "last_invt_count_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "last_purchase_price": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lot_numbered_item": {
+ "type": [
+ "string"
+ ]
+ },
+ "lot_sizing_method": {
+ "type": [
+ "string"
+ ]
+ },
+ "match_bill_to_receipt": {
+ "type": [
+ "string"
+ ]
+ },
+ "matrix_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "next_invt_count_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "ns_lead_time": {
+ "type": [
+ "integer"
+ ]
+ },
+ "offersupport": {
+ "type": [
+ "string"
+ ]
+ },
+ "onspecial": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "payment_method_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "periodic_lot_size_days": {
+ "type": [
+ "integer"
+ ]
+ },
+ "periodic_lot_size_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "pref_purchase_tax_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "pref_sale_tax_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "pref_stock_level": {
+ "type": [
+ "integer"
+ ]
+ },
+ "prices_include_tax": {
+ "type": [
+ "string"
+ ]
+ },
+ "pricing_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "print_sub_items": {
+ "type": [
+ "string"
+ ]
+ },
+ "prod_price_var_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "prod_qty_var_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "purchase_price_var_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "purchase_unit_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "purchasedescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "quantityavailable": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quantitybackordered": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quantityonhnad": {
+ "type": [
+ "number"
+ ]
+ },
+ "reorder_multiple": {
+ "type": [
+ "integer"
+ ]
+ },
+ "reorderpoint": {
+ "type": [
+ "number"
+ ]
+ },
+ "replenishment_method": {
+ "type": [
+ "string"
+ ]
+ },
+ "reschedule_in_days": {
+ "type": [
+ "integer"
+ ]
+ },
+ "reschedule_out_days": {
+ "type": [
+ "integer"
+ ]
+ },
+ "rev_rec_forecast_rule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "rev_rec_rule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "revenue_allocation_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "round_up_as_component": {
+ "type": [
+ "string"
+ ]
+ },
+ "safety_stock_days": {
+ "type": [
+ "integer"
+ ]
+ },
+ "safety_stock_level": {
+ "type": [
+ "integer"
+ ]
+ },
+ "sale_unit_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "salesdescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "salesprice": {
+ "type": [
+ "string"
+ ]
+ },
+ "scrap_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "serialized_item": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipping_cost": {
+ "type": [
+ "number"
+ ]
+ },
+ "specialsdescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "stock_unit_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "storedescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "storedetaileddescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "storedisplayname": {
+ "type": [
+ "string"
+ ]
+ },
+ "subtype": {
+ "type": [
+ "string"
+ ]
+ },
+ "supply_time_fence": {
+ "type": [
+ "integer"
+ ]
+ },
+ "supply_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "totalvalue": {
+ "type": [
+ "number"
+ ]
+ },
+ "transferprice": {
+ "type": [
+ "number"
+ ]
+ },
+ "units_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "upc_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "use_component_yield": {
+ "type": [
+ "string"
+ ]
+ },
+ "vendor_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "vendorname": {
+ "type": [
+ "string"
+ ]
+ },
+ "vendreturn_variance_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "vsoe_deferral": {
+ "type": [
+ "string"
+ ]
+ },
+ "vsoe_delivered": {
+ "type": [
+ "string"
+ ]
+ },
+ "vsoe_discount": {
+ "type": [
+ "string"
+ ]
+ },
+ "vsoe_price": {
+ "type": [
+ "number"
+ ]
+ },
+ "weight": {
+ "type": [
+ "number"
+ ]
+ },
+ "weight_in_user_defined_unit": {
+ "type": [
+ "integer"
+ ]
+ },
+ "weight_unit_index": {
+ "type": [
+ "integer"
+ ]
+ },
+ "wip_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "wip_cost_variance_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "work_order_lead_time": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/inventory_number.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/inventory_number.json
new file mode 100644
index 000000000..2d6a4676a
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/inventory_number.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "available_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "expiration_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "in_transit_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "inventory_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "inventory_number_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "number_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "on_hand_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "on_order_count": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_account_map.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_account_map.json
new file mode 100644
index 000000000..c20eb91a5
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_account_map.json
@@ -0,0 +1,104 @@
+{
+ "properties": {
+ "accounting_book_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "class_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_effective": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_end": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "department_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "destination_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "form_template_component_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "form_template_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_class_any": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_department_any": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_location_any": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_account_map_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_account_map_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_account_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "source_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_billing_rates.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_billing_rates.json
new file mode 100644
index 000000000..de7189c11
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_billing_rates.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "billing_class_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "discount_pct": {
+ "type": [
+ "number"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "isonline": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_price_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_price_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_unit_price": {
+ "type": [
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_collection_item_map.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_collection_item_map.json
new file mode 100644
index 000000000..715af1a21
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_collection_item_map.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "item_collection_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_collection_item_map_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_map_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_collections.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_collections.json
new file mode 100644
index 000000000..b44f6e3e0
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_collections.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_collection_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_collection_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_demand_plan_lines.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_demand_plan_lines.json
new file mode 100644
index 000000000..335236c9b
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_demand_plan_lines.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "demand_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "item_demand_plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_demand_plans.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_demand_plans.json
new file mode 100644
index 000000000..1a746df07
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_demand_plans.json
@@ -0,0 +1,74 @@
+{
+ "properties": {
+ "alt_demand_source_item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "create_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "historical_analysis_duration": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_demand_plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "projection_duration": {
+ "type": [
+ "integer"
+ ]
+ },
+ "projection_interval": {
+ "type": [
+ "string"
+ ]
+ },
+ "projection_method": {
+ "type": [
+ "string"
+ ]
+ },
+ "projection_start_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_fulfillments.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_fulfillments.json
new file mode 100644
index 000000000..ab1b1236c
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_fulfillments.json
@@ -0,0 +1,494 @@
+{
+ "properties": {
+ "accounting_period_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ancillary_endorsement": {
+ "type": [
+ "string"
+ ]
+ },
+ "b13a_filling_option": {
+ "type": [
+ "string"
+ ]
+ },
+ "b13a_statement_data": {
+ "type": [
+ "string"
+ ]
+ },
+ "backup_ship_notification_email": {
+ "type": [
+ "string"
+ ]
+ },
+ "billaddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "booking_confirmation_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "carrier_identification_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "created_by_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_blanket_period_end": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_blanket_period_start": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_closed": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_future_shipping": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_home_delivery": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_license": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_sales_effective": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_transaction": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "delivery_instructions": {
+ "type": [
+ "string"
+ ]
+ },
+ "eccn": {
+ "type": [
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "entry_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "exchange_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "export_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "fedex_ship_alert": {
+ "type": [
+ "string"
+ ]
+ },
+ "fob": {
+ "type": [
+ "string"
+ ]
+ },
+ "handling_cost": {
+ "type": [
+ "integer"
+ ]
+ },
+ "has_cert_of_origin": {
+ "type": [
+ "string"
+ ]
+ },
+ "has_commercial_invoice": {
+ "type": [
+ "string"
+ ]
+ },
+ "has_nafta_cert_of_origin": {
+ "type": [
+ "string"
+ ]
+ },
+ "has_pro_forma_invoice": {
+ "type": [
+ "string"
+ ]
+ },
+ "hold_at_location_address_one": {
+ "type": [
+ "string"
+ ]
+ },
+ "hold_at_location_address_three": {
+ "type": [
+ "string"
+ ]
+ },
+ "hold_at_location_address_two": {
+ "type": [
+ "string"
+ ]
+ },
+ "hold_at_location_city": {
+ "type": [
+ "string"
+ ]
+ },
+ "hold_at_location_country": {
+ "type": [
+ "string"
+ ]
+ },
+ "hold_at_location_loc_phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "hold_at_location_phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "hold_at_location_state": {
+ "type": [
+ "string"
+ ]
+ },
+ "hold_at_location_zip": {
+ "type": [
+ "string"
+ ]
+ },
+ "home_delivery_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "in_bond_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "international_exemption_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_certified_mail": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_fdx_signature_home_delivery": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_held_at_location": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_holiday_delivery": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_inside_delivery": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_inside_pickup": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_intercompany": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_memorized": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_online_bill_pay": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_related_parties_transaction": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_routed_export_transaction": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_saturday_delivery": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_saturday_pickup": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_saturday_service": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_tax_reg_override": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_visible_in_customer_center": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_weekend_delivery": {
+ "type": [
+ "string"
+ ]
+ },
+ "license_exception": {
+ "type": [
+ "string"
+ ]
+ },
+ "license_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "method_of_transport": {
+ "type": [
+ "string"
+ ]
+ },
+ "needs_bill": {
+ "type": [
+ "string"
+ ]
+ },
+ "notification_email_message": {
+ "type": [
+ "string"
+ ]
+ },
+ "promotion_code_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "reason_for_export": {
+ "type": [
+ "string"
+ ]
+ },
+ "recipient_customs_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "recipient_customs_id_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "recipient_tax_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "related_tranid": {
+ "type": [
+ "string"
+ ]
+ },
+ "return_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "return_type_description": {
+ "type": [
+ "string"
+ ]
+ },
+ "ship_notification_email": {
+ "type": [
+ "string"
+ ]
+ },
+ "ship_notification_email_two": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipaddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipping_cost": {
+ "type": [
+ "integer"
+ ]
+ },
+ "shipping_item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_reg_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "terms_freight_charge": {
+ "type": [
+ "integer"
+ ]
+ },
+ "terms_insurance_charge": {
+ "type": [
+ "integer"
+ ]
+ },
+ "terms_of_sale": {
+ "type": [
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "total_package_weight_in_lbs": {
+ "type": [
+ "integer"
+ ]
+ },
+ "tranid": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transfer_location_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "use_backup_email": {
+ "type": [
+ "string"
+ ]
+ },
+ "use_fedex_ship_alert": {
+ "type": [
+ "string"
+ ]
+ },
+ "use_ship_notification_email": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_group.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_group.json
new file mode 100644
index 000000000..d017d9d94
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_group.json
@@ -0,0 +1,79 @@
+{
+ "properties": {
+ "bom_quantity": {
+ "type": [
+ "number"
+ ]
+ },
+ "component_yield": {
+ "type": [
+ "integer"
+ ]
+ },
+ "effective_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "effective_revision": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "member_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "obsolete_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "obsolete_revision": {
+ "type": [
+ "integer"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "number"
+ ]
+ },
+ "rate_plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "unit_of_measure_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_location_map.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_location_map.json
new file mode 100644
index 000000000..30de9a8b1
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_location_map.json
@@ -0,0 +1,189 @@
+{
+ "properties": {
+ "atp_lead_time": {
+ "type": [
+ "integer"
+ ]
+ },
+ "available_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "average_cost": {
+ "type": [
+ "number"
+ ]
+ },
+ "backward_consumption_days": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_0": {
+ "type": [
+ "number"
+ ]
+ },
+ "cost_accounting_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "costing_lot_size": {
+ "type": [
+ "integer"
+ ]
+ },
+ "default_return_cost": {
+ "type": [
+ "number"
+ ]
+ },
+ "demand_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "demand_time_fence": {
+ "type": [
+ "integer"
+ ]
+ },
+ "fixed_lot_size": {
+ "type": [
+ "integer"
+ ]
+ },
+ "forward_consumption_days": {
+ "type": [
+ "integer"
+ ]
+ },
+ "in_transit_count": {
+ "type": [
+ "number"
+ ]
+ },
+ "inventory_cost_template": {
+ "type": [
+ "integer"
+ ]
+ },
+ "invt_count_classification": {
+ "type": [
+ "integer"
+ ]
+ },
+ "invt_count_interval": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "last_invt_count_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "last_purchase_price": {
+ "type": [
+ "integer"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lot_sizing_method": {
+ "type": [
+ "string"
+ ]
+ },
+ "next_invt_count_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "ns_lead_time": {
+ "type": [
+ "integer"
+ ]
+ },
+ "on_hand_count": {
+ "type": [
+ "number"
+ ]
+ },
+ "on_hand_value": {
+ "type": [
+ "number"
+ ]
+ },
+ "on_order_count": {
+ "type": [
+ "number"
+ ]
+ },
+ "periodic_lot_size_days": {
+ "type": [
+ "integer"
+ ]
+ },
+ "periodic_lot_size_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "pref_stock_level": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quantitybackordered": {
+ "type": [
+ "integer"
+ ]
+ },
+ "reorder_point": {
+ "type": [
+ "number"
+ ]
+ },
+ "reschedule_in_days": {
+ "type": [
+ "integer"
+ ]
+ },
+ "reschedule_out_days": {
+ "type": [
+ "integer"
+ ]
+ },
+ "safety_stock_level": {
+ "type": [
+ "integer"
+ ]
+ },
+ "supply_time_fence": {
+ "type": [
+ "integer"
+ ]
+ },
+ "supply_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "wip": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_price_history.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_price_history.json
new file mode 100644
index 000000000..949f0ee3e
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_price_history.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_quantity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "min_count": {
+ "type": [
+ "number"
+ ]
+ },
+ "price_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "unit_price": {
+ "type": [
+ "number"
+ ]
+ },
+ "version_0": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_prices.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_prices.json
new file mode 100644
index 000000000..6db50f341
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_prices.json
@@ -0,0 +1,59 @@
+{
+ "properties": {
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "discount_pct": {
+ "type": [
+ "number"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "isonline": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_price_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_price_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_quantity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_unit_price": {
+ "type": [
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_quantity.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_quantity.json
new file mode 100644
index 000000000..7d6aa20a8
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_quantity.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_quantity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "max_count": {
+ "type": [
+ "number"
+ ]
+ },
+ "min_count": {
+ "type": [
+ "number"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_revisions.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_revisions.json
new file mode 100644
index 000000000..e260e2329
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_revisions.json
@@ -0,0 +1,59 @@
+{
+ "properties": {
+ "create_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "effective_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "externalid": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_revision_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_revision_item": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_revision_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "obsolete_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_shipmethods.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_shipmethods.json
new file mode 100644
index 000000000..3b4e69047
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_shipmethods.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "is_default": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "shipmethod_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_site_categories.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_site_categories.json
new file mode 100644
index 000000000..71e23163a
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_site_categories.json
@@ -0,0 +1,84 @@
+{
+ "properties": {
+ "category_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "category_sequence": {
+ "type": [
+ "integer"
+ ]
+ },
+ "category_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "default_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "ishidden": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "ispreferred": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "long_description": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_category_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "section_created_by": {
+ "type": [
+ "integer"
+ ]
+ },
+ "section_created_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "section_modified_by": {
+ "type": [
+ "integer"
+ ]
+ },
+ "section_modified_date": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_subsidiary_map.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_subsidiary_map.json
new file mode 100644
index 000000000..14a4f0c98
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_subsidiary_map.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_supply_plan_attributes.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_supply_plan_attributes.json
new file mode 100644
index 000000000..c94a6af56
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_supply_plan_attributes.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "demand_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "item_supply_plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lead_time": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quantity_on_hand": {
+ "type": [
+ "number"
+ ]
+ },
+ "safety_stock": {
+ "type": [
+ "number"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_supply_plan_lines.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_supply_plan_lines.json
new file mode 100644
index 000000000..eab58d5bb
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_supply_plan_lines.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "is_order_created": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_supply_plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "order_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "order_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "integer"
+ ]
+ },
+ "receipt_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "source_location_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_supply_plan_source.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_supply_plan_source.json
new file mode 100644
index 000000000..a80871fdf
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_supply_plan_source.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "assembly_parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_order": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "is_detail_transaction_line": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_supply_plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ship_receipt_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transaction_line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "type_id": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_supply_plan_source_types.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_supply_plan_source_types.json
new file mode 100644
index 000000000..b31d9f314
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_supply_plan_source_types.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "type_id": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_supply_plans.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_supply_plans.json
new file mode 100644
index 000000000..7a7f550ec
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_supply_plans.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "create_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_supply_plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_vendor_map.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_vendor_map.json
new file mode 100644
index 000000000..a44ce3c92
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_vendor_map.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "is_preferred": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "vendor_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "vendor_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_vendor_pricing.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_vendor_pricing.json
new file mode 100644
index 000000000..7499486f6
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/item_vendor_pricing.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "cost_0": {
+ "type": [
+ "number"
+ ]
+ },
+ "cost_is_percentage": {
+ "type": [
+ "string"
+ ]
+ },
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "vendor_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/items.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/items.json
new file mode 100644
index 000000000..09580abf3
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/items.json
@@ -0,0 +1,834 @@
+{
+ "properties": {
+ "allow_drop_ship": {
+ "type": [
+ "string"
+ ]
+ },
+ "alt_demand_source_item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "asset_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "atp_lead_time": {
+ "type": [
+ "integer"
+ ]
+ },
+ "atp_method": {
+ "type": [
+ "string"
+ ]
+ },
+ "available_to_partners": {
+ "type": [
+ "string"
+ ]
+ },
+ "averagecost": {
+ "type": [
+ "number"
+ ]
+ },
+ "backward_consumption_days": {
+ "type": [
+ "integer"
+ ]
+ },
+ "bill_exch_rate_var_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "bill_price_variance_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "bill_qty_variance_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "build_sub_assemblies": {
+ "type": [
+ "string"
+ ]
+ },
+ "class_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "consumption_unit_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_0": {
+ "type": [
+ "number"
+ ]
+ },
+ "cost_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "cost_estimate_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "costing_method": {
+ "type": [
+ "string"
+ ]
+ },
+ "country_of_manufacture": {
+ "type": [
+ "string"
+ ]
+ },
+ "create_plan_on_event_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "current_on_order_count": {
+ "type": [
+ "number"
+ ]
+ },
+ "custreturn_variance_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_of_last_transaction": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "default_return_cost": {
+ "type": [
+ "number"
+ ]
+ },
+ "deferred_expense_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "deferred_revenue_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "demand_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "demand_time_fence": {
+ "type": [
+ "integer"
+ ]
+ },
+ "department_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "deposit": {
+ "type": [
+ "string"
+ ]
+ },
+ "displayname": {
+ "type": [
+ "string"
+ ]
+ },
+ "distribution_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "distribution_network": {
+ "type": [
+ "string"
+ ]
+ },
+ "dropship_expense_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "effective_bom_control_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "expense_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "featureddescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "featureditem": {
+ "type": [
+ "string"
+ ]
+ },
+ "fixed_lot_size": {
+ "type": [
+ "integer"
+ ]
+ },
+ "forward_consumption_days": {
+ "type": [
+ "integer"
+ ]
+ },
+ "fraud_risk": {
+ "type": [
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "fx_adjustment_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gain_loss_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "handling_cost": {
+ "type": [
+ "number"
+ ]
+ },
+ "hazmat": {
+ "type": [
+ "string"
+ ]
+ },
+ "hazmat_hazard_class": {
+ "type": [
+ "string"
+ ]
+ },
+ "hazmat_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "hazmat_item_units": {
+ "type": [
+ "string"
+ ]
+ },
+ "hazmat_item_units_qty": {
+ "type": [
+ "integer"
+ ]
+ },
+ "hazmat_packing_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "hazmat_shipping_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "include_child_subsidiaries": {
+ "type": [
+ "string"
+ ]
+ },
+ "income_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "interco_expense_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "interco_income_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "invt_count_classification": {
+ "type": [
+ "integer"
+ ]
+ },
+ "invt_count_interval": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_cont_rev_handling": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_enforce_min_qty_internally": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_hold_rev_rec": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_moss": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_phantom": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_special_order_item": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "isonline": {
+ "type": [
+ "string"
+ ]
+ },
+ "istaxable": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_defined_cost": {
+ "type": [
+ "number"
+ ]
+ },
+ "item_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_revenue_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_cogs_correction": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "last_invt_count_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "last_purchase_price": {
+ "type": [
+ "integer"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lot_numbered_item": {
+ "type": [
+ "string"
+ ]
+ },
+ "lot_sizing_method": {
+ "type": [
+ "string"
+ ]
+ },
+ "manufacturer": {
+ "type": [
+ "string"
+ ]
+ },
+ "manufacturing_charge_item": {
+ "type": [
+ "string"
+ ]
+ },
+ "match_bill_to_receipt": {
+ "type": [
+ "string"
+ ]
+ },
+ "matrix_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "maximum_quantity": {
+ "type": [
+ "integer"
+ ]
+ },
+ "minimum_quantity": {
+ "type": [
+ "integer"
+ ]
+ },
+ "modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "mpn": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "next_invt_count_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "ns_lead_time": {
+ "type": [
+ "integer"
+ ]
+ },
+ "offersupport": {
+ "type": [
+ "string"
+ ]
+ },
+ "onspecial": {
+ "type": [
+ "string"
+ ]
+ },
+ "overhead_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "payment_method_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "periodic_lot_size_days": {
+ "type": [
+ "integer"
+ ]
+ },
+ "periodic_lot_size_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "pref_purchase_tax_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "pref_sale_tax_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "pref_stock_level": {
+ "type": [
+ "integer"
+ ]
+ },
+ "prices_include_tax": {
+ "type": [
+ "string"
+ ]
+ },
+ "pricing_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "print_sub_items": {
+ "type": [
+ "string"
+ ]
+ },
+ "prod_price_var_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "prod_qty_var_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "purchase_price_var_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "purchase_unit_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "purchasedescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "purchaseorderamount": {
+ "type": [
+ "number"
+ ]
+ },
+ "purchaseorderquantity": {
+ "type": [
+ "number"
+ ]
+ },
+ "purchaseorderquantitydiff": {
+ "type": [
+ "number"
+ ]
+ },
+ "quantityavailable": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quantitybackordered": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quantityonhand": {
+ "type": [
+ "number"
+ ]
+ },
+ "receiptamount": {
+ "type": [
+ "number"
+ ]
+ },
+ "receiptquantity": {
+ "type": [
+ "number"
+ ]
+ },
+ "receiptquantitydiff": {
+ "type": [
+ "number"
+ ]
+ },
+ "reorder_multiple": {
+ "type": [
+ "integer"
+ ]
+ },
+ "reorderpoint": {
+ "type": [
+ "number"
+ ]
+ },
+ "replenishment_method": {
+ "type": [
+ "string"
+ ]
+ },
+ "resalable": {
+ "type": [
+ "string"
+ ]
+ },
+ "reschedule_in_days": {
+ "type": [
+ "integer"
+ ]
+ },
+ "reschedule_out_days": {
+ "type": [
+ "integer"
+ ]
+ },
+ "rev_rec_forecast_rule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "rev_rec_rule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "revenue_allocation_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "round_up_as_component": {
+ "type": [
+ "string"
+ ]
+ },
+ "safety_stock_days": {
+ "type": [
+ "integer"
+ ]
+ },
+ "safety_stock_level": {
+ "type": [
+ "integer"
+ ]
+ },
+ "sale_unit_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "salesdescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "salesprice": {
+ "type": [
+ "string"
+ ]
+ },
+ "scrap_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "serialized_item": {
+ "type": [
+ "string"
+ ]
+ },
+ "shippingcost": {
+ "type": [
+ "number"
+ ]
+ },
+ "special_work_order_item": {
+ "type": [
+ "string"
+ ]
+ },
+ "specialsdescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "stock_unit_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "storedescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "storedetaileddescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "storedisplayname": {
+ "type": [
+ "string"
+ ]
+ },
+ "subtype": {
+ "type": [
+ "string"
+ ]
+ },
+ "supply_time_fence": {
+ "type": [
+ "integer"
+ ]
+ },
+ "supply_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "totalvalue": {
+ "type": [
+ "number"
+ ]
+ },
+ "transferprice": {
+ "type": [
+ "number"
+ ]
+ },
+ "type_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "unbuild_variance_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "units_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "upc_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "use_component_yield": {
+ "type": [
+ "string"
+ ]
+ },
+ "vendor_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "vendorname": {
+ "type": [
+ "string"
+ ]
+ },
+ "vendreturn_variance_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "vsoe_deferral": {
+ "type": [
+ "string"
+ ]
+ },
+ "vsoe_delivered": {
+ "type": [
+ "string"
+ ]
+ },
+ "vsoe_discount": {
+ "type": [
+ "string"
+ ]
+ },
+ "vsoe_price": {
+ "type": [
+ "number"
+ ]
+ },
+ "weight": {
+ "type": [
+ "number"
+ ]
+ },
+ "weight_in_user_defined_unit": {
+ "type": [
+ "integer"
+ ]
+ },
+ "weight_unit_index": {
+ "type": [
+ "integer"
+ ]
+ },
+ "wip_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "wip_cost_variance_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "work_order_lead_time": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/job_resource_role.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/job_resource_role.json
new file mode 100644
index 000000000..13e7f38c3
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/job_resource_role.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "has_own_time_approval": {
+ "type": [
+ "string"
+ ]
+ },
+ "has_replace_assignments": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_project_time_approver": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "job_resource_role_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "send_mail_for_ratoff_conflict": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/job_resources.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/job_resources.json
new file mode 100644
index 000000000..e93fe30a6
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/job_resources.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "job_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "resource_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "resource_role_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/job_types.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/job_types.json
new file mode 100644
index 000000000..aff3a4e11
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/job_types.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "job_type_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "job_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/location_costing_groups.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/location_costing_groups.json
new file mode 100644
index 000000000..9928718a5
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/location_costing_groups.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "location_costing_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "location_costing_group_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/location_costing_grp_locations.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/location_costing_grp_locations.json
new file mode 100644
index 000000000..e40dae15c
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/location_costing_grp_locations.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "location_costing_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/locations.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/locations.json
new file mode 100644
index 000000000..93dac172e
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/locations.json
@@ -0,0 +1,159 @@
+{
+ "properties": {
+ "address": {
+ "type": [
+ "string"
+ ]
+ },
+ "address_one": {
+ "type": [
+ "string"
+ ]
+ },
+ "address_three": {
+ "type": [
+ "string"
+ ]
+ },
+ "address_two": {
+ "type": [
+ "string"
+ ]
+ },
+ "addressee": {
+ "type": [
+ "string"
+ ]
+ },
+ "attention": {
+ "type": [
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "inventory_available": {
+ "type": [
+ "string"
+ ]
+ },
+ "inventory_available_web_store": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_include_in_supply_planning": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "location_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "return_address_one": {
+ "type": [
+ "string"
+ ]
+ },
+ "return_address_two": {
+ "type": [
+ "string"
+ ]
+ },
+ "return_city": {
+ "type": [
+ "string"
+ ]
+ },
+ "return_country": {
+ "type": [
+ "string"
+ ]
+ },
+ "return_state": {
+ "type": [
+ "string"
+ ]
+ },
+ "return_zipcode": {
+ "type": [
+ "string"
+ ]
+ },
+ "returnaddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "tran_num_prefix": {
+ "type": [
+ "string"
+ ]
+ },
+ "use_bins": {
+ "type": [
+ "string"
+ ]
+ },
+ "zipcode": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/memorized_trans.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/memorized_trans.json
new file mode 100644
index 000000000..7a339f3ff
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/memorized_trans.json
@@ -0,0 +1,109 @@
+{
+ "properties": {
+ "action": {
+ "type": [
+ "string"
+ ]
+ },
+ "automatic_entry": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_next_posting": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_subsequent_posting": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "days_in_advance": {
+ "type": [
+ "integer"
+ ]
+ },
+ "employee_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "frequency": {
+ "type": [
+ "string"
+ ]
+ },
+ "ingroup": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_indefinite": {
+ "type": [
+ "string"
+ ]
+ },
+ "isdeferred": {
+ "type": [
+ "string"
+ ]
+ },
+ "isgroup": {
+ "type": [
+ "string"
+ ]
+ },
+ "memorized_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "next_occurance": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "number_remaining": {
+ "type": [
+ "integer"
+ ]
+ },
+ "repeat_every": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subsequent_occurance": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "time_period": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "update_addresses": {
+ "type": [
+ "string"
+ ]
+ },
+ "update_prices": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/message.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/message.json
new file mode 100644
index 000000000..a379f5c3a
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/message.json
@@ -0,0 +1,119 @@
+{
+ "properties": {
+ "author_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "bcc": {
+ "type": [
+ "string"
+ ]
+ },
+ "cc": {
+ "type": [
+ "string"
+ ]
+ },
+ "company_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_0": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "event_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "from_0": {
+ "type": [
+ "string"
+ ]
+ },
+ "internal_only": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_emailed": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_incoming": {
+ "type": [
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "message_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "message_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "message_type_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "recipient_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "record_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "record_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subject": {
+ "type": [
+ "string"
+ ]
+ },
+ "template_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "to_0": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/messagerecipient.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/messagerecipient.json
new file mode 100644
index 000000000..d3a35efd6
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/messagerecipient.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "entity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "message_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/mfg_cost_template.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/mfg_cost_template.json
new file mode 100644
index 000000000..a800fa52c
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/mfg_cost_template.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "create_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "externalid": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "mfg_cost_template_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "mfg_cost_template_memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "mfg_cost_template_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/mfg_cost_template_items.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/mfg_cost_template_items.json
new file mode 100644
index 000000000..67a828a50
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/mfg_cost_template_items.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "mfg_cost_template_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "mfg_cost_template_line_order": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/mfg_routing.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/mfg_routing.json
new file mode 100644
index 000000000..627c3a0a7
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/mfg_routing.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "bom_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "create_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "externalid": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_autocalculate_lag": {
+ "type": [
+ "string"
+ ]
+ },
+ "isdefault": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "mfg_routing_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "mfg_routing_memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "mfg_routing_name": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/mfg_routing_steps.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/mfg_routing_steps.json
new file mode 100644
index 000000000..50cf1855b
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/mfg_routing_steps.json
@@ -0,0 +1,59 @@
+{
+ "properties": {
+ "lag_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lag_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "lag_units": {
+ "type": [
+ "string"
+ ]
+ },
+ "mfg_cost_template_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "mfg_routing_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "mfg_work_center_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "operation_yield": {
+ "type": [
+ "integer"
+ ]
+ },
+ "run_rate": {
+ "type": [
+ "integer"
+ ]
+ },
+ "sequence_0": {
+ "type": [
+ "integer"
+ ]
+ },
+ "setup_time": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/nexus.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/nexus.json
new file mode 100644
index 000000000..2709c34d4
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/nexus.json
@@ -0,0 +1,79 @@
+{
+ "properties": {
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_valid_since": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_valid_until": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "hierarchy_level": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_tax_date_from_fulfillment": {
+ "type": [
+ "string"
+ ]
+ },
+ "nexus_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_agency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "taxcode_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "vendtax1_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "vendtax2_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/notes_system.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/notes_system.json
new file mode 100644
index 000000000..5bc66a4dc
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/notes_system.json
@@ -0,0 +1,114 @@
+{
+ "properties": {
+ "author_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "company_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_field": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "direction": {
+ "type": [
+ "string"
+ ]
+ },
+ "event_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "line_transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "note_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "note_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "note_type_description": {
+ "type": [
+ "string"
+ ]
+ },
+ "note_type_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "note_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "record_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "record_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "role_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "standard_field": {
+ "type": [
+ "string"
+ ]
+ },
+ "system_use": {
+ "type": [
+ "string"
+ ]
+ },
+ "time_entered": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/notes_system_custom.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/notes_system_custom.json
new file mode 100644
index 000000000..7966171c5
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/notes_system_custom.json
@@ -0,0 +1,144 @@
+{
+ "properties": {
+ "author_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "company_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_field": {
+ "type": [
+ "string"
+ ]
+ },
+ "customfield_created_by": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customfield_created_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "customfield_modified_by": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customfield_modified_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "direction": {
+ "type": [
+ "string"
+ ]
+ },
+ "event_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "line_transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "note_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "note_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "note_type_description": {
+ "type": [
+ "string"
+ ]
+ },
+ "note_type_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "note_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "record_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "record_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "role_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "standard_field": {
+ "type": [
+ "string"
+ ]
+ },
+ "system_use": {
+ "type": [
+ "string"
+ ]
+ },
+ "time_entered": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/notes_user.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/notes_user.json
new file mode 100644
index 000000000..982ce84bb
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/notes_user.json
@@ -0,0 +1,109 @@
+{
+ "properties": {
+ "author_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "company_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "direction": {
+ "type": [
+ "string"
+ ]
+ },
+ "event_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "note_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "note_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "note_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "note_type_description": {
+ "type": [
+ "string"
+ ]
+ },
+ "note_type_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "note_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "record_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "record_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "system_use": {
+ "type": [
+ "string"
+ ]
+ },
+ "time_entered": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/notetype.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/notetype.json
new file mode 100644
index 000000000..39decd1e0
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/notetype.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "note_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "note_type_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "note_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/opportunities.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/opportunities.json
new file mode 100644
index 000000000..905edfa2f
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/opportunities.json
@@ -0,0 +1,234 @@
+{
+ "properties": {
+ "accounting_period_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "action_item": {
+ "type": [
+ "string"
+ ]
+ },
+ "billaddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "closed": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "company_status_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "expected_close": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "fob": {
+ "type": [
+ "string"
+ ]
+ },
+ "forecast_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_tax_reg_override": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_sales_activity": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lead_source_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lsa_link": {
+ "type": [
+ "string"
+ ]
+ },
+ "lsa_link_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "memorized": {
+ "type": [
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "needs_bill": {
+ "type": [
+ "string"
+ ]
+ },
+ "partner_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "payment_terms_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "probability": {
+ "type": [
+ "number"
+ ]
+ },
+ "projected_total": {
+ "type": [
+ "number"
+ ]
+ },
+ "promotion_code_instance_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "related_tranid": {
+ "type": [
+ "string"
+ ]
+ },
+ "renewal": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "reversing_transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "sales_rep_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "shipaddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipment_received": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "shipping_item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_reg_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "trandate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "tranid": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transaction_partner": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "weighted_total": {
+ "type": [
+ "integer"
+ ]
+ },
+ "win_loss_reason_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/opportunity_lines.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/opportunity_lines.json
new file mode 100644
index 000000000..550a390da
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/opportunity_lines.json
@@ -0,0 +1,304 @@
+{
+ "properties": {
+ "account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "amount_foreign_linked": {
+ "type": [
+ "number"
+ ]
+ },
+ "amount_linked": {
+ "type": [
+ "number"
+ ]
+ },
+ "amount_pending": {
+ "type": [
+ "number"
+ ]
+ },
+ "amount_taxable": {
+ "type": [
+ "number"
+ ]
+ },
+ "amount_taxed": {
+ "type": [
+ "number"
+ ]
+ },
+ "class_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "company_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_cleared": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_closed": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "department_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "do_not_display_line": {
+ "type": [
+ "string"
+ ]
+ },
+ "do_not_print_line": {
+ "type": [
+ "string"
+ ]
+ },
+ "expense_category_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gross_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "has_cost_line": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_cost_line": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_custom_line": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_exclude_from_rate_request": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_item_value_adjustment": {
+ "type": [
+ "string"
+ ]
+ },
+ "isbillable": {
+ "type": [
+ "string"
+ ]
+ },
+ "iscleared": {
+ "type": [
+ "string"
+ ]
+ },
+ "isnonreimbursable": {
+ "type": [
+ "string"
+ ]
+ },
+ "istaxable": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_count": {
+ "type": [
+ "number"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_received": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_unit_price": {
+ "type": [
+ "string"
+ ]
+ },
+ "kit_part_number": {
+ "type": [
+ "integer"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "net_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "non_posting_line": {
+ "type": [
+ "string"
+ ]
+ },
+ "number_billed": {
+ "type": [
+ "number"
+ ]
+ },
+ "number_revenue_committed": {
+ "type": [
+ "number"
+ ]
+ },
+ "opportunity_discount_line": {
+ "type": [
+ "string"
+ ]
+ },
+ "opportunity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "opportunity_line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "opportunity_order": {
+ "type": [
+ "integer"
+ ]
+ },
+ "payment_method_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "payroll_item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "payroll_wage_base_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "payroll_year_to_date_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "period_closed": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "price_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quantity_received_in_shipment": {
+ "type": [
+ "number"
+ ]
+ },
+ "receivebydate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "reimbursement_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "related_company_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "shipdate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "shipment_received": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "tax_item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "tax_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "tobeemailed": {
+ "type": [
+ "string"
+ ]
+ },
+ "tobefaxed": {
+ "type": [
+ "string"
+ ]
+ },
+ "tobeprinted": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/opportunitycontactmap.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/opportunitycontactmap.json
new file mode 100644
index 000000000..adcb30c52
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/opportunitycontactmap.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "contact_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "contactrole_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "opportunity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/originating_leads.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/originating_leads.json
new file mode 100644
index 000000000..25c3aae6b
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/originating_leads.json
@@ -0,0 +1,629 @@
+{
+ "properties": {
+ "accountnumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "altemail": {
+ "type": [
+ "string"
+ ]
+ },
+ "alternate_contact_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "altphone": {
+ "type": [
+ "string"
+ ]
+ },
+ "amount_complete": {
+ "type": [
+ "number"
+ ]
+ },
+ "billaddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "calculated_end": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "category_0": {
+ "type": [
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "companyname": {
+ "type": [
+ "string"
+ ]
+ },
+ "consol_days_overdue": {
+ "type": [
+ "integer"
+ ]
+ },
+ "consol_deposit_balance": {
+ "type": [
+ "integer"
+ ]
+ },
+ "consol_deposit_balance_foreign": {
+ "type": [
+ "integer"
+ ]
+ },
+ "consol_openbalance": {
+ "type": [
+ "integer"
+ ]
+ },
+ "consol_openbalance_foreign": {
+ "type": [
+ "integer"
+ ]
+ },
+ "consol_unbilled_orders": {
+ "type": [
+ "integer"
+ ]
+ },
+ "consol_unbilled_orders_foreign": {
+ "type": [
+ "integer"
+ ]
+ },
+ "converted_to_contact_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "converted_to_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_estimate": {
+ "type": [
+ "number"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "create_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "credithold": {
+ "type": [
+ "string"
+ ]
+ },
+ "creditlimit": {
+ "type": [
+ "number"
+ ]
+ },
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customer_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_closed": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_convsersion": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_first_order": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_first_sale": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_gross_lead": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_order": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_sale": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_lead": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_prospect": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "days_overdue": {
+ "type": [
+ "integer"
+ ]
+ },
+ "default_order_priority": {
+ "type": [
+ "number"
+ ]
+ },
+ "default_receivables_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "deposit_balance": {
+ "type": [
+ "number"
+ ]
+ },
+ "deposit_balance_foreign": {
+ "type": [
+ "integer"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "expected_close": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "first_sale_period_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "first_visit": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "firstname": {
+ "type": [
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "home_phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_exempt_time": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_explicit_conversion": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_job": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_person": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_productive_time": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_utilized_time": {
+ "type": [
+ "string"
+ ]
+ },
+ "isemailhtml": {
+ "type": [
+ "string"
+ ]
+ },
+ "isemailpdf": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "istaxable": {
+ "type": [
+ "string"
+ ]
+ },
+ "job_end": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "job_start": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "job_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "last_sale_period_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "last_sales_activity": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "last_visit": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastname": {
+ "type": [
+ "string"
+ ]
+ },
+ "lead_source_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "line1": {
+ "type": [
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "string"
+ ]
+ },
+ "line3": {
+ "type": [
+ "string"
+ ]
+ },
+ "loginaccess": {
+ "type": [
+ "string"
+ ]
+ },
+ "lsa_link": {
+ "type": [
+ "string"
+ ]
+ },
+ "lsa_link_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "middlename": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobile_phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "multiple_price_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "openbalance": {
+ "type": [
+ "integer"
+ ]
+ },
+ "openbalance_foreign": {
+ "type": [
+ "integer"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "partner_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "payment_terms_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "primary_contact_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "print_on_check_as": {
+ "type": [
+ "string"
+ ]
+ },
+ "probability": {
+ "type": [
+ "number"
+ ]
+ },
+ "projected_end": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "referrer": {
+ "type": [
+ "string"
+ ]
+ },
+ "reminderdays": {
+ "type": [
+ "integer"
+ ]
+ },
+ "renewal": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "resalenumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "rev_rec_forecast_rule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "rev_rec_forecast_template": {
+ "type": [
+ "integer"
+ ]
+ },
+ "revenue_estimate": {
+ "type": [
+ "number"
+ ]
+ },
+ "sales_rep_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "sales_territory_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "salutation": {
+ "type": [
+ "string"
+ ]
+ },
+ "ship_complete": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipaddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "status_descr": {
+ "type": [
+ "string"
+ ]
+ },
+ "status_probability": {
+ "type": [
+ "number"
+ ]
+ },
+ "status_read_only": {
+ "type": [
+ "string"
+ ]
+ },
+ "stitch_custom_field": {
+ "type": [
+ "number"
+ ]
+ },
+ "stitch_custom_field_check_box": {
+ "type": [
+ "string"
+ ]
+ },
+ "stitch_custom_field_currency": {
+ "type": [
+ "number"
+ ]
+ },
+ "stitch_custom_field_decimal": {
+ "type": [
+ "number"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "tax_item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "third_party_acct": {
+ "type": [
+ "string"
+ ]
+ },
+ "third_party_carrier": {
+ "type": [
+ "string"
+ ]
+ },
+ "third_party_country": {
+ "type": [
+ "string"
+ ]
+ },
+ "third_party_zip_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "top_level_parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "unbilled_orders": {
+ "type": [
+ "number"
+ ]
+ },
+ "unbilled_orders_foreign": {
+ "type": [
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ },
+ "use_percent_complete_override": {
+ "type": [
+ "string"
+ ]
+ },
+ "web_lead": {
+ "type": [
+ "string"
+ ]
+ },
+ "zipcode": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/other_names.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/other_names.json
new file mode 100644
index 000000000..8d89ab874
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/other_names.json
@@ -0,0 +1,194 @@
+{
+ "properties": {
+ "account_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "address": {
+ "type": [
+ "string"
+ ]
+ },
+ "address1": {
+ "type": [
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "string"
+ ]
+ },
+ "address3": {
+ "type": [
+ "string"
+ ]
+ },
+ "altemail": {
+ "type": [
+ "string"
+ ]
+ },
+ "altphone": {
+ "type": [
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "companyname": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "create_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "home_phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_person": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "last_sales_activity": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "loginaccess": {
+ "type": [
+ "string"
+ ]
+ },
+ "lsa_link": {
+ "type": [
+ "string"
+ ]
+ },
+ "lsa_link_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobile_phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "other_name_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "other_name_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "stitch_custom_field": {
+ "type": [
+ "number"
+ ]
+ },
+ "stitch_custom_field_check_box": {
+ "type": [
+ "string"
+ ]
+ },
+ "stitch_custom_field_currency": {
+ "type": [
+ "number"
+ ]
+ },
+ "stitch_custom_field_decimal": {
+ "type": [
+ "number"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ },
+ "zipcode": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/partner_sales_roles.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/partner_sales_roles.json
new file mode 100644
index 000000000..e953c98bc
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/partner_sales_roles.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "partner_sales_role_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "partner_sales_role_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/partner_types.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/partner_types.json
new file mode 100644
index 000000000..62f704856
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/partner_types.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "partner_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "partner_type_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "partner_type_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/partners.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/partners.json
new file mode 100644
index 000000000..00320d4ab
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/partners.json
@@ -0,0 +1,219 @@
+{
+ "properties": {
+ "account_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "address": {
+ "type": [
+ "string"
+ ]
+ },
+ "address1": {
+ "type": [
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "string"
+ ]
+ },
+ "address3": {
+ "type": [
+ "string"
+ ]
+ },
+ "altemail": {
+ "type": [
+ "string"
+ ]
+ },
+ "altphone": {
+ "type": [
+ "string"
+ ]
+ },
+ "assigntasks": {
+ "type": [
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "string"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "companyname": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "create_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "home_phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_person": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "last_sales_activity": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "loginaccess": {
+ "type": [
+ "string"
+ ]
+ },
+ "lsa_link": {
+ "type": [
+ "string"
+ ]
+ },
+ "lsa_link_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobile_phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "partner_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "partner_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "print_on_check_as": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipping_address": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "stitch_custom_field": {
+ "type": [
+ "number"
+ ]
+ },
+ "stitch_custom_field_check_box": {
+ "type": [
+ "string"
+ ]
+ },
+ "stitch_custom_field_currency": {
+ "type": [
+ "number"
+ ]
+ },
+ "stitch_custom_field_decimal": {
+ "type": [
+ "number"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "integer"
+ ]
+ },
+ "tax_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ },
+ "zipcode": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/payment_methods.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/payment_methods.json
new file mode 100644
index 000000000..822273e89
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/payment_methods.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "default_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "external_0": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "payment_method_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "payment_method_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "payment_method_tags": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/payment_terms.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/payment_terms.json
new file mode 100644
index 000000000..510114d16
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/payment_terms.json
@@ -0,0 +1,94 @@
+{
+ "properties": {
+ "date_driven": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "days_till_1st_payment": {
+ "type": [
+ "integer"
+ ]
+ },
+ "days_until_due": {
+ "type": [
+ "integer"
+ ]
+ },
+ "discount_days": {
+ "type": [
+ "integer"
+ ]
+ },
+ "frequency_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "installment_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_installment": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_preferred": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_split_evenly": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "minimum_days": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "payment_terms_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "payment_terms_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "percentage_discount": {
+ "type": [
+ "number"
+ ]
+ },
+ "repeat_every": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/payroll_item_types.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/payroll_item_types.json
new file mode 100644
index 000000000..1a83fc4fb
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/payroll_item_types.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "payroll_item_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/payroll_items.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/payroll_items.json
new file mode 100644
index 000000000..28331f72b
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/payroll_items.json
@@ -0,0 +1,89 @@
+{
+ "properties": {
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "derived_from_payroll_item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "derived_rate_multiplier": {
+ "type": [
+ "number"
+ ]
+ },
+ "expense_account": {
+ "type": [
+ "integer"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "liability_account": {
+ "type": [
+ "integer"
+ ]
+ },
+ "limit_0": {
+ "type": [
+ "number"
+ ]
+ },
+ "locality": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "payroll_item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "payroll_item_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "rate": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "vendor_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "w2_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/percent_complete_overrides.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/percent_complete_overrides.json
new file mode 100644
index 000000000..83e733bce
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/percent_complete_overrides.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "accounting_period_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "percent_complete": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/planassignmap.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/planassignmap.json
new file mode 100644
index 000000000..815e9b5fc
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/planassignmap.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "employee_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/planned_standard_costs.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/planned_standard_costs.json
new file mode 100644
index 000000000..6d4325b11
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/planned_standard_costs.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "planned_standard_cost_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "standard_cost_version_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/planschedulemap.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/planschedulemap.json
new file mode 100644
index 000000000..b2be14bec
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/planschedulemap.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "schedule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/posting_account_activity.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/posting_account_activity.json
new file mode 100644
index 000000000..2d7252f92
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/posting_account_activity.json
@@ -0,0 +1,84 @@
+{
+ "properties": {
+ "account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "accounting_book_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "accounting_period_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "activity_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "amount_foreign": {
+ "type": [
+ "number"
+ ]
+ },
+ "class_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "department_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "partner_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "promotion_code_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "number"
+ ]
+ },
+ "sales_rep_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/posting_account_activity_pe.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/posting_account_activity_pe.json
new file mode 100644
index 000000000..9b96f1251
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/posting_account_activity_pe.json
@@ -0,0 +1,89 @@
+{
+ "properties": {
+ "account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "accounting_book_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "accounting_period_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "activity_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "amount_foreign": {
+ "type": [
+ "number"
+ ]
+ },
+ "balance_from_subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "class_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "department_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "partner_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "promotion_code_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "number"
+ ]
+ },
+ "sales_rep_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/price_book_line_intervals.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/price_book_line_intervals.json
new file mode 100644
index 000000000..8d6163153
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/price_book_line_intervals.json
@@ -0,0 +1,94 @@
+{
+ "properties": {
+ "charge_frequency_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "discount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_discount_percentage": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_overage_discount_percentage": {
+ "type": [
+ "string"
+ ]
+ },
+ "overage_charge_frequency_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "overage_discount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "overage_price_plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "overage_repeat_every": {
+ "type": [
+ "integer"
+ ]
+ },
+ "pbli_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "plan_line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "plan_line_number": {
+ "type": [
+ "integer"
+ ]
+ },
+ "price_book_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "price_plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "prorate_by": {
+ "type": [
+ "string"
+ ]
+ },
+ "repeat_every": {
+ "type": [
+ "integer"
+ ]
+ },
+ "start_offset": {
+ "type": [
+ "string"
+ ]
+ },
+ "usage_multiplier_line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/price_books.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/price_books.json
new file mode 100644
index 000000000..94c172e1f
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/price_books.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "currency": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "price_book_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "price_book_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/price_plans.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/price_plans.json
new file mode 100644
index 000000000..9ac5ab84b
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/price_plans.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "currency": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "included_quantity": {
+ "type": [
+ "number"
+ ]
+ },
+ "price_plan_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "price_plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "price_plan_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/price_tiers.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/price_tiers.json
new file mode 100644
index 000000000..c3bf51d0d
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/price_tiers.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "from_quantity": {
+ "type": [
+ "integer"
+ ]
+ },
+ "maximum_quantity": {
+ "type": [
+ "number"
+ ]
+ },
+ "minimum_quantity": {
+ "type": [
+ "number"
+ ]
+ },
+ "price_plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "price_tier": {
+ "type": [
+ "string"
+ ]
+ },
+ "price_tier_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "price_value": {
+ "type": [
+ "integer"
+ ]
+ },
+ "pricing_option": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/price_types.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/price_types.json
new file mode 100644
index 000000000..be97a24b4
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/price_types.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "discount_percentage": {
+ "type": [
+ "number"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "isonline": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "price_type_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "price_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/pricing_groups.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/pricing_groups.json
new file mode 100644
index 000000000..1af376be7
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/pricing_groups.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "pricing_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_billing_budgets.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_billing_budgets.json
new file mode 100644
index 000000000..1d266aa65
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_billing_budgets.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "is_calculated": {
+ "type": [
+ "string"
+ ]
+ },
+ "month_end": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "month_start": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "project_cost_category_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_cost_budgets.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_cost_budgets.json
new file mode 100644
index 000000000..25f727225
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_cost_budgets.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "duration": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "term_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "term_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "term_type_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "unit_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_cost_categories.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_cost_categories.json
new file mode 100644
index 000000000..a046a9dc2
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_cost_categories.json
@@ -0,0 +1,59 @@
+{
+ "properties": {
+ "category_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "category_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "expense_category_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_other_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_selected": {
+ "type": [
+ "string"
+ ]
+ },
+ "project_cost_category_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "service_item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "supplier_category_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "use_subcategories": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_expense_types.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_expense_types.json
new file mode 100644
index 000000000..b85834ca1
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_expense_types.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "project_expense_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_revenue_rl_plans.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_revenue_rl_plans.json
new file mode 100644
index 000000000..ba84eb23f
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_revenue_rl_plans.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "date_recognized": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "fixed_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "percent_from_total": {
+ "type": [
+ "number"
+ ]
+ },
+ "project_revenue_rl_plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "project_revenue_rule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "project_task_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_revenue_rls_charge_rls.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_revenue_rls_charge_rls.json
new file mode 100644
index 000000000..783896d00
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_revenue_rls_charge_rls.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "actual_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "charge_rule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_amount_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "forecast_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "project_revenue_rule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_revenue_rules.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_revenue_rules.json
new file mode 100644
index 000000000..940b9dfaf
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_revenue_rules.json
@@ -0,0 +1,129 @@
+{
+ "properties": {
+ "billing_rate_card_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "created_by": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "fixed_amount_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "fixed_schedule_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_revenue_reconciled": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_modified_by": {
+ "type": [
+ "integer"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "project_revenue_rule_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "project_revenue_rule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "rate_multiplier": {
+ "type": [
+ "number"
+ ]
+ },
+ "rate_source_type_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "recurrence_end_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "recurrence_frequency": {
+ "type": [
+ "string"
+ ]
+ },
+ "recurrence_period": {
+ "type": [
+ "integer"
+ ]
+ },
+ "recurrence_start_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "rounding_type_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "rule_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "rule_type_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "saved_search_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "service_item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_task_assignments.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_task_assignments.json
new file mode 100644
index 000000000..208152125
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_task_assignments.json
@@ -0,0 +1,74 @@
+{
+ "properties": {
+ "allocated_work": {
+ "type": [
+ "integer"
+ ]
+ },
+ "billing_class_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "calculated_work": {
+ "type": [
+ "integer"
+ ]
+ },
+ "estimated_work": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "planned_work": {
+ "type": [
+ "integer"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "project_task_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "resource_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "unit_cost": {
+ "type": [
+ "integer"
+ ]
+ },
+ "unit_cost_foreign": {
+ "type": [
+ "integer"
+ ]
+ },
+ "unit_price": {
+ "type": [
+ "integer"
+ ]
+ },
+ "unit_price_foreign": {
+ "type": [
+ "integer"
+ ]
+ },
+ "units": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_task_billing_budgets.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_task_billing_budgets.json
new file mode 100644
index 000000000..9f51d4e4d
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_task_billing_budgets.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "is_calculated": {
+ "type": [
+ "string"
+ ]
+ },
+ "month_end": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "month_start": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "project_cost_category_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "project_task_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_task_cost_budgets.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_task_cost_budgets.json
new file mode 100644
index 000000000..9f51d4e4d
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_task_cost_budgets.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "is_calculated": {
+ "type": [
+ "string"
+ ]
+ },
+ "month_end": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "month_start": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "project_cost_category_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "project_task_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_task_dependencies.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_task_dependencies.json
new file mode 100644
index 000000000..0b2311711
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_task_dependencies.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "dependency_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "lag_days": {
+ "type": [
+ "integer"
+ ]
+ },
+ "predecessor_task_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "successor_task_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_tasks.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_tasks.json
new file mode 100644
index 000000000..fcfd7cf37
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_tasks.json
@@ -0,0 +1,214 @@
+{
+ "properties": {
+ "actual_work": {
+ "type": [
+ "integer"
+ ]
+ },
+ "allocated_work": {
+ "type": [
+ "integer"
+ ]
+ },
+ "assigned_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "calculated_work": {
+ "type": [
+ "integer"
+ ]
+ },
+ "calculated_work_baseline": {
+ "type": [
+ "integer"
+ ]
+ },
+ "constraint_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "due_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "end_date_baseline": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "estimated_cost": {
+ "type": [
+ "integer"
+ ]
+ },
+ "estimated_cost_baseline": {
+ "type": [
+ "integer"
+ ]
+ },
+ "estimated_cost_baseline_frn": {
+ "type": [
+ "integer"
+ ]
+ },
+ "estimated_cost_foreign": {
+ "type": [
+ "integer"
+ ]
+ },
+ "estimated_work": {
+ "type": [
+ "integer"
+ ]
+ },
+ "estimated_work_baseline": {
+ "type": [
+ "integer"
+ ]
+ },
+ "finish_by_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "is_milestone": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_non_billable": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_on_critical_path": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_summary_task": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "owner_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "parent_task_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "percent_complete": {
+ "type": [
+ "integer"
+ ]
+ },
+ "percent_complete_by_allocation": {
+ "type": [
+ "integer"
+ ]
+ },
+ "planned_work": {
+ "type": [
+ "integer"
+ ]
+ },
+ "planned_work_baseline": {
+ "type": [
+ "integer"
+ ]
+ },
+ "priority": {
+ "type": [
+ "string"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "projecttask_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "projecttask_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "slack_minutes": {
+ "type": [
+ "integer"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "start_date_0": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "start_date_baseline": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "taskorder": {
+ "type": [
+ "integer"
+ ]
+ },
+ "use_calculated_billing_budget": {
+ "type": [
+ "string"
+ ]
+ },
+ "use_calculated_cost_budget": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_templates.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_templates.json
new file mode 100644
index 000000000..ccf1d17b7
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_templates.json
@@ -0,0 +1,114 @@
+{
+ "properties": {
+ "billing_rate_card_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "billing_schedule_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_scheduled_end": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_template_start": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_limit_time_to_assignees": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_source_item_from_brc": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_sales_activity": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lsa_link": {
+ "type": [
+ "string"
+ ]
+ },
+ "lsa_link_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "project_expense_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "project_manager_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "scheduling_method_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "stitch_custom_field": {
+ "type": [
+ "number"
+ ]
+ },
+ "stitch_custom_field_check_box": {
+ "type": [
+ "string"
+ ]
+ },
+ "stitch_custom_field_currency": {
+ "type": [
+ "number"
+ ]
+ },
+ "stitch_custom_field_decimal": {
+ "type": [
+ "number"
+ ]
+ },
+ "template_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "template_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "use_budget_from_allocations": {
+ "type": [
+ "string"
+ ]
+ },
+ "use_calculated_billing_budget": {
+ "type": [
+ "string"
+ ]
+ },
+ "use_calculated_cost_budget": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_time_approval_types.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_time_approval_types.json
new file mode 100644
index 000000000..b543e4dd1
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/project_time_approval_types.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "project_time_approval_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/promotion_codes.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/promotion_codes.json
new file mode 100644
index 000000000..ab51ee77f
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/promotion_codes.json
@@ -0,0 +1,74 @@
+{
+ "properties": {
+ "apply_discount": {
+ "type": [
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "string"
+ ]
+ },
+ "code_pattern": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "descr": {
+ "type": [
+ "string"
+ ]
+ },
+ "discount": {
+ "type": [
+ "string"
+ ]
+ },
+ "discount_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "display_line_discounts": {
+ "type": [
+ "string"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "plugin_implementation_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "promotion_code_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "use_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/purchase_charge_rules.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/purchase_charge_rules.json
new file mode 100644
index 000000000..d942a3ec6
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/purchase_charge_rules.json
@@ -0,0 +1,79 @@
+{
+ "properties": {
+ "cap": {
+ "type": [
+ "number"
+ ]
+ },
+ "charge_rule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "charge_rule_type_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "charge_stage_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "mark_up_item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "purchase_charge_rule_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "purchase_saved_search_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "rate_multiplier": {
+ "type": [
+ "number"
+ ]
+ },
+ "rule_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "rule_order": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/quota1.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/quota1.json
new file mode 100644
index 000000000..9a745dcac
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/quota1.json
@@ -0,0 +1,74 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "class_0": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_0": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "department": {
+ "type": [
+ "integer"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_alt_sales": {
+ "type": [
+ "string"
+ ]
+ },
+ "item": {
+ "type": [
+ "integer"
+ ]
+ },
+ "location_0": {
+ "type": [
+ "integer"
+ ]
+ },
+ "period": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quarterly_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "quota_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "integer"
+ ]
+ },
+ "team_quota": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/resource_allocations.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/resource_allocations.json
new file mode 100644
index 000000000..76a30cb02
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/resource_allocations.json
@@ -0,0 +1,84 @@
+{
+ "properties": {
+ "allocation_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "allocation_unit": {
+ "type": [
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "string"
+ ]
+ },
+ "num_hours": {
+ "type": [
+ "number"
+ ]
+ },
+ "num_percent": {
+ "type": [
+ "number"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "project_task_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "requestor_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "resource_allocation_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "resource_allocation_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "resource_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/resource_group_entity_map.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/resource_group_entity_map.json
new file mode 100644
index 000000000..5ec7f8259
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/resource_group_entity_map.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "entity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/resource_groups.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/resource_groups.json
new file mode 100644
index 000000000..6cb265007
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/resource_groups.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "resource_group_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "resource_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "resource_group_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/revaluation.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/revaluation.json
new file mode 100644
index 000000000..211eecd6c
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/revaluation.json
@@ -0,0 +1,154 @@
+{
+ "properties": {
+ "account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "balance": {
+ "type": [
+ "integer"
+ ]
+ },
+ "curr_fx_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "fx_balance": {
+ "type": [
+ "number"
+ ]
+ },
+ "is_tax_reg_override": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_sales_activity": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "legal_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "lsa_link": {
+ "type": [
+ "string"
+ ]
+ },
+ "lsa_link_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "net_variance": {
+ "type": [
+ "number"
+ ]
+ },
+ "prior_variance": {
+ "type": [
+ "integer"
+ ]
+ },
+ "promotion_code_instance_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "reval_class": {
+ "type": [
+ "integer"
+ ]
+ },
+ "reval_department": {
+ "type": [
+ "integer"
+ ]
+ },
+ "reval_line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "reval_location": {
+ "type": [
+ "integer"
+ ]
+ },
+ "reval_memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "reval_tran_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "reval_tran_period_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "reval_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "tax_reg_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "total_variance": {
+ "type": [
+ "integer"
+ ]
+ },
+ "tran_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "tran_fx_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "tran_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "variance": {
+ "type": [
+ "number"
+ ]
+ },
+ "variance_account_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/revenue_elements.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/revenue_elements.json
new file mode 100644
index 000000000..2c45c4855
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/revenue_elements.json
@@ -0,0 +1,384 @@
+{
+ "properties": {
+ "accounting_book_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "accounting_period_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "allocated_contract_cost_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "allocation_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "allocation_amount_foreign": {
+ "type": [
+ "number"
+ ]
+ },
+ "allocation_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "alternate_quantity": {
+ "type": [
+ "integer"
+ ]
+ },
+ "alternate_unit_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "amortization_end_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "amortization_schedule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "amortization_start_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "amortization_template_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "calculated_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "calculated_amount_foreign": {
+ "type": [
+ "number"
+ ]
+ },
+ "class_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "contract_cost_allocation_pct": {
+ "type": [
+ "integer"
+ ]
+ },
+ "contract_exp_offset_acct_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "contract_expense_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_amortization_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "create_plan_on_event_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deferral_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "department_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "disc_sales_amount_foreign": {
+ "type": [
+ "number"
+ ]
+ },
+ "discounted_sales_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "exchange_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "expense_migrate_adjust_acct_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "fair_value": {
+ "type": [
+ "number"
+ ]
+ },
+ "fair_value_foreign": {
+ "type": [
+ "number"
+ ]
+ },
+ "forecast_end_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "forecast_start_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "fx_adjustment_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_bom_item_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_fair_value_override": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_fair_value_vsoe": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_hold_rev_rec": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_permit_discount": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_posting_discount_applied": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_labor_cost_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "item_resale_cost_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "labor_deferred_expense_acct_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "labor_expense_acct_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "last_merge_from_arrangement_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "new_standard_migrate_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "parent_bom_element_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "pending_action": {
+ "type": [
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "number"
+ ]
+ },
+ "recognition_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "return_revenue_element_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "rev_rec_forecast_rule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "rev_rec_rule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "revenue_allocation_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenue_allocation_ratio": {
+ "type": [
+ "integer"
+ ]
+ },
+ "revenue_element_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "revenue_element_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenue_migrate_adjust_acct_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "sales_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "sales_amount_foreign": {
+ "type": [
+ "number"
+ ]
+ },
+ "source_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "source_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "source_transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "source_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "subscription_line": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "term_in_days": {
+ "type": [
+ "integer"
+ ]
+ },
+ "term_in_months": {
+ "type": [
+ "integer"
+ ]
+ },
+ "unbilled_receivable_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/revenue_plan_lines.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/revenue_plan_lines.json
new file mode 100644
index 000000000..79a43aef5
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/revenue_plan_lines.json
@@ -0,0 +1,54 @@
+{
+ "properties": {
+ "accounting_period_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deferral_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_recognized": {
+ "type": [
+ "string"
+ ]
+ },
+ "journal_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "planned_revenue_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "recognition_account_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/revenue_plan_version_lines.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/revenue_plan_version_lines.json
new file mode 100644
index 000000000..7368ebf7a
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/revenue_plan_version_lines.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "accounting_period_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deferral_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "journal_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "plan_version_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "planned_revenue_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "recognition_account_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/revenue_plan_versions.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/revenue_plan_versions.json
new file mode 100644
index 000000000..54d5ce307
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/revenue_plan_versions.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "created_by_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "plan_version": {
+ "type": [
+ "integer"
+ ]
+ },
+ "plan_version_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/revenue_plans.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/revenue_plans.json
new file mode 100644
index 000000000..30a89b146
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/revenue_plans.json
@@ -0,0 +1,89 @@
+{
+ "properties": {
+ "accounting_period_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "created_from": {
+ "type": [
+ "string"
+ ]
+ },
+ "creation_triggered_by": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "is_hold_rev_rec": {
+ "type": [
+ "string"
+ ]
+ },
+ "plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "plan_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "reforecast_method": {
+ "type": [
+ "string"
+ ]
+ },
+ "rev_rec_rule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "revenue_element_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "revenue_plan_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenue_plan_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/revenue_recognition_rules.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/revenue_recognition_rules.json
new file mode 100644
index 000000000..773becbd2
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/revenue_recognition_rules.json
@@ -0,0 +1,89 @@
+{
+ "properties": {
+ "amount_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "end_date_change_impact": {
+ "type": [
+ "string"
+ ]
+ },
+ "end_date_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "initial_amount": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "period_offset": {
+ "type": [
+ "integer"
+ ]
+ },
+ "recognition_period": {
+ "type": [
+ "integer"
+ ]
+ },
+ "reforecast_method": {
+ "type": [
+ "string"
+ ]
+ },
+ "rev_rec_rule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "rule_method": {
+ "type": [
+ "string"
+ ]
+ },
+ "start_date_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "start_offset": {
+ "type": [
+ "integer"
+ ]
+ },
+ "term_in_days": {
+ "type": [
+ "integer"
+ ]
+ },
+ "term_in_months": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/revrecschedulelines.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/revrecschedulelines.json
new file mode 100644
index 000000000..9eb376f3c
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/revrecschedulelines.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "accounting_period_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "amount": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_recognized": {
+ "type": [
+ "string"
+ ]
+ },
+ "journal_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "schedule_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/revrecschedules.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/revrecschedules.json
new file mode 100644
index 000000000..f486bccee
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/revrecschedules.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "initial_amount": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_template": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "period_offset": {
+ "type": [
+ "integer"
+ ]
+ },
+ "schedule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "schedule_method": {
+ "type": [
+ "string"
+ ]
+ },
+ "schedule_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "schedule_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "start_offset": {
+ "type": [
+ "integer"
+ ]
+ },
+ "term_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/role_subsidiary_map.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/role_subsidiary_map.json
new file mode 100644
index 000000000..f063f5155
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/role_subsidiary_map.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "role_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/roles1.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/roles1.json
new file mode 100644
index 000000000..bc79e4ffe
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/roles1.json
@@ -0,0 +1,164 @@
+{
+ "properties": {
+ "center_created_by": {
+ "type": [
+ "integer"
+ ]
+ },
+ "center_created_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "center_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "center_modified_by": {
+ "type": [
+ "integer"
+ ]
+ },
+ "center_modified_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "center_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "class_restriction_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "custom_record_permission_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "department_restriction_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "employee_restriction_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_classallowviewing": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_departmentallowviewing": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_employeeallowviewing": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_itemclassrestricted": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_itemdepartmentrestricted": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_itemlocationtrestricted": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_locationallowviewing": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_subsidiaryallowviewing": {
+ "type": [
+ "string"
+ ]
+ },
+ "location_restriction_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "permission_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "permission_level_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "permission_level_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "permission_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "permsofroles_date_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "permsofroles_modified_by": {
+ "type": [
+ "integer"
+ ]
+ },
+ "role_created_by": {
+ "type": [
+ "integer"
+ ]
+ },
+ "role_created_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "role_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "role_modified_by": {
+ "type": [
+ "integer"
+ ]
+ },
+ "role_name": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/sales_reps.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/sales_reps.json
new file mode 100644
index 000000000..320c264d4
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/sales_reps.json
@@ -0,0 +1,229 @@
+{
+ "properties": {
+ "account_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "address": {
+ "type": [
+ "string"
+ ]
+ },
+ "address1": {
+ "type": [
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "string"
+ ]
+ },
+ "address3": {
+ "type": [
+ "string"
+ ]
+ },
+ "approval_limit": {
+ "type": [
+ "number"
+ ]
+ },
+ "approver_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "birthdate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "class_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "create_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "def_acct_corp_card_expenses_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "def_expense_report_currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "department_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "employee_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "firstname": {
+ "type": [
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "identification_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "initials": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_sales_activity": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastname": {
+ "type": [
+ "string"
+ ]
+ },
+ "loginaccess": {
+ "type": [
+ "string"
+ ]
+ },
+ "lsa_link": {
+ "type": [
+ "string"
+ ]
+ },
+ "lsa_link_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "midname": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "sales_rep_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "sales_rep_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "sales_role_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "salutation": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "stitch_custom_field": {
+ "type": [
+ "number"
+ ]
+ },
+ "stitch_custom_field_check_box": {
+ "type": [
+ "string"
+ ]
+ },
+ "stitch_custom_field_currency": {
+ "type": [
+ "number"
+ ]
+ },
+ "stitch_custom_field_decimal": {
+ "type": [
+ "number"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "supervisor_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "zipcode": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/sales_roles.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/sales_roles.json
new file mode 100644
index 000000000..d58257eae
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/sales_roles.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_sales_rep_role": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "sales_role_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "sales_role_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/sales_territories.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/sales_territories.json
new file mode 100644
index 000000000..10e07f1ac
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/sales_territories.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "priority": {
+ "type": [
+ "integer"
+ ]
+ },
+ "sales_territory_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/salesforecast.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/salesforecast.json
new file mode 100644
index 000000000..6da758bb6
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/salesforecast.json
@@ -0,0 +1,89 @@
+{
+ "properties": {
+ "calculated_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "date_entered": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "forecast_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "forecast_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "forecast_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "high_calculated_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "high_forecasted_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "is_alt_sales": {
+ "type": [
+ "string"
+ ]
+ },
+ "low_calculated_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "low_forecasted_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "manager_override": {
+ "type": [
+ "string"
+ ]
+ },
+ "modified_by_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "pipeline_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "salesrep_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "integer"
+ ]
+ },
+ "team_forecast": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/service_items.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/service_items.json
new file mode 100644
index 000000000..9e6bc9fab
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/service_items.json
@@ -0,0 +1,269 @@
+{
+ "properties": {
+ "cost_0": {
+ "type": [
+ "number"
+ ]
+ },
+ "cost_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "create_plan_on_event_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_of_last_transaction": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "displayname": {
+ "type": [
+ "string"
+ ]
+ },
+ "expense_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "featureddescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "fx_adjustment_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "include_child_subsidiaries": {
+ "type": [
+ "string"
+ ]
+ },
+ "income_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "interco_expense_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "interco_income_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_moss": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "isonline": {
+ "type": [
+ "string"
+ ]
+ },
+ "istaxable": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_revenue_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "manufacturing_charge_item": {
+ "type": [
+ "string"
+ ]
+ },
+ "matrix_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "offersupport": {
+ "type": [
+ "string"
+ ]
+ },
+ "onspecial": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "payment_method_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "pref_purchase_tax_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "pref_sale_tax_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "prices_include_tax": {
+ "type": [
+ "string"
+ ]
+ },
+ "print_sub_items": {
+ "type": [
+ "string"
+ ]
+ },
+ "purchasedescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "rate": {
+ "type": [
+ "string"
+ ]
+ },
+ "rev_rec_forecast_rule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "rev_rec_rule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "revenue_allocation_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "specialsdescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "storedescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "storedetaileddescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "storedisplayname": {
+ "type": [
+ "string"
+ ]
+ },
+ "subtype": {
+ "type": [
+ "string"
+ ]
+ },
+ "upc_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "vendor_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "vendorname": {
+ "type": [
+ "string"
+ ]
+ },
+ "vsoe_deferral": {
+ "type": [
+ "string"
+ ]
+ },
+ "vsoe_delivered": {
+ "type": [
+ "string"
+ ]
+ },
+ "vsoe_discount": {
+ "type": [
+ "string"
+ ]
+ },
+ "vsoe_price": {
+ "type": [
+ "number"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/shipment_packages.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/shipment_packages.json
new file mode 100644
index 000000000..469158b7d
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/shipment_packages.json
@@ -0,0 +1,174 @@
+{
+ "properties": {
+ "admissibility_package_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "alcohol_recipient_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "authorization_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "carrier_packaging": {
+ "type": [
+ "string"
+ ]
+ },
+ "cash_on_delivery_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cash_on_delivery_method": {
+ "type": [
+ "string"
+ ]
+ },
+ "cod_other_charge": {
+ "type": [
+ "integer"
+ ]
+ },
+ "contents_description": {
+ "type": [
+ "string"
+ ]
+ },
+ "declared_value": {
+ "type": [
+ "integer"
+ ]
+ },
+ "delivery_confirmation": {
+ "type": [
+ "string"
+ ]
+ },
+ "dimension_unit": {
+ "type": [
+ "string"
+ ]
+ },
+ "dry_ice_weight": {
+ "type": [
+ "integer"
+ ]
+ },
+ "freight_charge_added_to_cod": {
+ "type": [
+ "string"
+ ]
+ },
+ "has_additional_handling": {
+ "type": [
+ "string"
+ ]
+ },
+ "has_cash_on_delivery": {
+ "type": [
+ "string"
+ ]
+ },
+ "has_declared_value": {
+ "type": [
+ "string"
+ ]
+ },
+ "has_insured_value": {
+ "type": [
+ "string"
+ ]
+ },
+ "insured_value": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_alcohol": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_non_hazardous_li_batteries": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_non_standard_container": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_fulfillment_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "package_height": {
+ "type": [
+ "integer"
+ ]
+ },
+ "package_length": {
+ "type": [
+ "integer"
+ ]
+ },
+ "package_width": {
+ "type": [
+ "integer"
+ ]
+ },
+ "priority_alert_content": {
+ "type": [
+ "string"
+ ]
+ },
+ "priority_alert_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "reference_one": {
+ "type": [
+ "string"
+ ]
+ },
+ "reference_two": {
+ "type": [
+ "string"
+ ]
+ },
+ "signature_option": {
+ "type": [
+ "string"
+ ]
+ },
+ "signature_release": {
+ "type": [
+ "string"
+ ]
+ },
+ "tracking_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "weight_in_lbs": {
+ "type": [
+ "integer"
+ ]
+ },
+ "your_packaging": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/shipping_items.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/shipping_items.json
new file mode 100644
index 000000000..7b9d6ffe4
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/shipping_items.json
@@ -0,0 +1,164 @@
+{
+ "properties": {
+ "by_per_item": {
+ "type": [
+ "integer"
+ ]
+ },
+ "by_total_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "by_weight_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "by_weight_unit_index": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "default_unit_price": {
+ "type": [
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "flat_rate_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "free_if_over_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "free_if_overactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "income_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_fedex_one_rate": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_omit_packaging": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "isonline": {
+ "type": [
+ "string"
+ ]
+ },
+ "istaxable": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "maximum_shipping_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "minimum_shipping_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "per_item_default_price": {
+ "type": [
+ "string"
+ ]
+ },
+ "pref_purchase_tax_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "shipping_cost_function": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipping_rate": {
+ "type": [
+ "integer"
+ ]
+ },
+ "tax_item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "use_maximum_ship_cost": {
+ "type": [
+ "string"
+ ]
+ },
+ "use_minimum_ship_cost": {
+ "type": [
+ "string"
+ ]
+ },
+ "vendor_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/solution.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/solution.json
new file mode 100644
index 000000000..f369900ba
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/solution.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "id_0": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_available_online": {
+ "type": [
+ "string"
+ ]
+ },
+ "long_description": {
+ "type": [
+ "string"
+ ]
+ },
+ "solution_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "solution_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/solutioncasemap.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/solutioncasemap.json
new file mode 100644
index 000000000..ef5d502f1
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/solutioncasemap.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "date_applied": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "solution_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "supportcase_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/solutiontopicmap.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/solutiontopicmap.json
new file mode 100644
index 000000000..6f49eef59
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/solutiontopicmap.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "solution_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "topic_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/standard_cost_components.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/standard_cost_components.json
new file mode 100644
index 000000000..ef66caf12
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/standard_cost_components.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "component_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "planned_standard_cost_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "integer"
+ ]
+ },
+ "standard_cost": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/states.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/states.json
new file mode 100644
index 000000000..3dfd2c857
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/states.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "country_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "short_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "state_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/subscript_line_price_intervals.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/subscript_line_price_intervals.json
new file mode 100644
index 000000000..221f8232f
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/subscript_line_price_intervals.json
@@ -0,0 +1,74 @@
+{
+ "properties": {
+ "charge_frequency_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_end_exclusive": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_start_inclusive": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "discount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "included_quantity": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_discount_percentage": {
+ "type": [
+ "string"
+ ]
+ },
+ "plan_line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "plan_line_number": {
+ "type": [
+ "integer"
+ ]
+ },
+ "price_plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "prorate_by": {
+ "type": [
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "number"
+ ]
+ },
+ "repeat_every": {
+ "type": [
+ "integer"
+ ]
+ },
+ "status_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "subscription_line_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/subscription_change_orders.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/subscription_change_orders.json
new file mode 100644
index 000000000..74dee3217
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/subscription_change_orders.json
@@ -0,0 +1,114 @@
+{
+ "properties": {
+ "action_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "approval_status_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "change_order_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "change_order_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "change_order_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_approval": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_effective": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_new_end": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_renewal_start": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "reactivation_option_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "renewal_method_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "renewal_price_book_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "renewal_subscription_plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "renewal_term_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "renewal_transaction_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "requester_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "status_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/subscription_co_lines.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/subscription_co_lines.json
new file mode 100644
index 000000000..df9a04aa8
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/subscription_co_lines.json
@@ -0,0 +1,59 @@
+{
+ "properties": {
+ "change_order_action_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "change_order_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "discount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_discount_percentage": {
+ "type": [
+ "string"
+ ]
+ },
+ "plan_item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "price_plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "number"
+ ]
+ },
+ "recurring_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "status_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subscription_line_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/subscription_line_revisions.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/subscription_line_revisions.json
new file mode 100644
index 000000000..d893e6228
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/subscription_line_revisions.json
@@ -0,0 +1,109 @@
+{
+ "properties": {
+ "change_order_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "created_by": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_change_order_effective": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "delta_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "delta_quantity": {
+ "type": [
+ "number"
+ ]
+ },
+ "discount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_applied_to_change_order": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_created_from_void": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_discount_percentage": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_overage_discount_percentage": {
+ "type": [
+ "string"
+ ]
+ },
+ "overage_discount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "overage_price_plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "price_plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "integer"
+ ]
+ },
+ "recurring_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "revenue_element_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subscription_line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subscription_revision": {
+ "type": [
+ "integer"
+ ]
+ },
+ "total_contract_value": {
+ "type": [
+ "number"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/subscription_plan_lines.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/subscription_plan_lines.json
new file mode 100644
index 000000000..db83be63a
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/subscription_plan_lines.json
@@ -0,0 +1,69 @@
+{
+ "properties": {
+ "billing_mode_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_prorate_end_date": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_prorate_start_date": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_required": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "plan_line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "plan_line_number": {
+ "type": [
+ "integer"
+ ]
+ },
+ "plan_line_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "renewal_option": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenue_recognition_option_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "usage_multiplier_line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/subscription_plans.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/subscription_plans.json
new file mode 100644
index 000000000..9e8c83e89
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/subscription_plans.json
@@ -0,0 +1,119 @@
+{
+ "properties": {
+ "advance_renewal_period_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "advance_renewal_period_unit_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "class_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "default_renewal_method_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "default_renewal_plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "default_renewal_term_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "default_renewal_trantype_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "department_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "income_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "initial_term_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_auto_renewal": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_include_children": {
+ "type": [
+ "string"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "plan_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/subscription_terms.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/subscription_terms.json
new file mode 100644
index 000000000..25f727225
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/subscription_terms.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "duration": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "term_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "term_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "term_type_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "unit_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/subsidiaries.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/subsidiaries.json
new file mode 100644
index 000000000..da05cc6dc
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/subsidiaries.json
@@ -0,0 +1,239 @@
+{
+ "properties": {
+ "address": {
+ "type": [
+ "string"
+ ]
+ },
+ "address1": {
+ "type": [
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "string"
+ ]
+ },
+ "base_currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "edition": {
+ "type": [
+ "string"
+ ]
+ },
+ "federal_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "fiscal_calendar_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_elimination": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_moss": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive_bool": {
+ "type": [
+ "string"
+ ]
+ },
+ "legal_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "moss_nexus_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "purchaseorderamount": {
+ "type": [
+ "number"
+ ]
+ },
+ "purchaseorderquantity": {
+ "type": [
+ "number"
+ ]
+ },
+ "purchaseorderquantitydiff": {
+ "type": [
+ "number"
+ ]
+ },
+ "receiptamount": {
+ "type": [
+ "number"
+ ]
+ },
+ "receiptquantity": {
+ "type": [
+ "number"
+ ]
+ },
+ "receiptquantitydiff": {
+ "type": [
+ "number"
+ ]
+ },
+ "return_address": {
+ "type": [
+ "string"
+ ]
+ },
+ "return_address1": {
+ "type": [
+ "string"
+ ]
+ },
+ "return_address2": {
+ "type": [
+ "string"
+ ]
+ },
+ "return_city": {
+ "type": [
+ "string"
+ ]
+ },
+ "return_country": {
+ "type": [
+ "string"
+ ]
+ },
+ "return_state": {
+ "type": [
+ "string"
+ ]
+ },
+ "return_zipcode": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipping_address": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipping_address1": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipping_address2": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipping_city": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipping_country": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipping_state": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipping_zipcode": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "state_tax_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "subsidiary_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "tran_num_prefix": {
+ "type": [
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ },
+ "zipcode": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/subsidiary_book_map.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/subsidiary_book_map.json
new file mode 100644
index 000000000..348a5b9e3
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/subsidiary_book_map.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "accounting_book_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "contract_defer_expense_acct_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "contract_expense_acct_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "exchange_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/subsidiary_class_map.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/subsidiary_class_map.json
new file mode 100644
index 000000000..73e0933f4
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/subsidiary_class_map.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "class_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/subsidiary_department_map.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/subsidiary_department_map.json
new file mode 100644
index 000000000..cb87c79bb
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/subsidiary_department_map.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "department_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/subsidiary_location_map.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/subsidiary_location_map.json
new file mode 100644
index 000000000..4d8d76af0
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/subsidiary_location_map.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "location_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/subsidiary_nexus_map.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/subsidiary_nexus_map.json
new file mode 100644
index 000000000..e642d1bdb
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/subsidiary_nexus_map.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "nexus_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/supplier_categories.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/supplier_categories.json
new file mode 100644
index 000000000..1b5a405a5
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/supplier_categories.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "category_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "supplier_category_id": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/support_incidents.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/support_incidents.json
new file mode 100644
index 000000000..baa573f4c
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/support_incidents.json
@@ -0,0 +1,214 @@
+{
+ "properties": {
+ "assigned_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "case_email": {
+ "type": [
+ "string"
+ ]
+ },
+ "case_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "case_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "case_issue_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "case_number": {
+ "type": [
+ "integer"
+ ]
+ },
+ "case_numbercode": {
+ "type": [
+ "string"
+ ]
+ },
+ "case_origin_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "case_phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "case_profile_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "case_stage": {
+ "type": [
+ "string"
+ ]
+ },
+ "case_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "company_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "contact_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "create_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_closed": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "entry_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "helpdesk": {
+ "type": [
+ "string"
+ ]
+ },
+ "inboundemail": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "last_modification": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "last_reopened_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "last_sales_activity": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lsa_link": {
+ "type": [
+ "string"
+ ]
+ },
+ "lsa_link_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "module_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "owner_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "priority": {
+ "type": [
+ "string"
+ ]
+ },
+ "product": {
+ "type": [
+ "string"
+ ]
+ },
+ "stage": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "stitch_custom_field": {
+ "type": [
+ "number"
+ ]
+ },
+ "stitch_custom_field_check_box": {
+ "type": [
+ "string"
+ ]
+ },
+ "stitch_custom_field_currency": {
+ "type": [
+ "number"
+ ]
+ },
+ "stitch_custom_field_decimal": {
+ "type": [
+ "number"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "territory_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/support_reps.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/support_reps.json
new file mode 100644
index 000000000..487c55eec
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/support_reps.json
@@ -0,0 +1,219 @@
+{
+ "properties": {
+ "account_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "address": {
+ "type": [
+ "string"
+ ]
+ },
+ "address1": {
+ "type": [
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "string"
+ ]
+ },
+ "address3": {
+ "type": [
+ "string"
+ ]
+ },
+ "approval_limit": {
+ "type": [
+ "number"
+ ]
+ },
+ "approver_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "birthdate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "class_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "create_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "def_acct_corp_card_expenses_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "def_expense_report_currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "department_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "employee_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "firstname": {
+ "type": [
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "identification_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "initials": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_sales_activity": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastname": {
+ "type": [
+ "string"
+ ]
+ },
+ "loginaccess": {
+ "type": [
+ "string"
+ ]
+ },
+ "lsa_link": {
+ "type": [
+ "string"
+ ]
+ },
+ "lsa_link_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "midname": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "salutation": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "stitch_custom_field": {
+ "type": [
+ "number"
+ ]
+ },
+ "stitch_custom_field_check_box": {
+ "type": [
+ "string"
+ ]
+ },
+ "stitch_custom_field_currency": {
+ "type": [
+ "number"
+ ]
+ },
+ "stitch_custom_field_decimal": {
+ "type": [
+ "number"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "supervisor_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "support_rep_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "support_rep_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "zipcode": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/support_territories.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/support_territories.json
new file mode 100644
index 000000000..10e07f1ac
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/support_territories.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "priority": {
+ "type": [
+ "integer"
+ ]
+ },
+ "sales_territory_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/supportcasehistory.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/supportcasehistory.json
new file mode 100644
index 000000000..8529c118d
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/supportcasehistory.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "case_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_closed": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "employee_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/system_notes.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/system_notes.json
new file mode 100644
index 000000000..20fbbb6ae
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/system_notes.json
@@ -0,0 +1,99 @@
+{
+ "properties": {
+ "author_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "company_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "context_type_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "custom_field": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "event_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "line_transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "note_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "operation": {
+ "type": [
+ "string"
+ ]
+ },
+ "record_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "record_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "role_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "standard_field": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "value_new": {
+ "type": [
+ "string"
+ ]
+ },
+ "value_old": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/system_notes_custom.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/system_notes_custom.json
new file mode 100644
index 000000000..5051ff057
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/system_notes_custom.json
@@ -0,0 +1,119 @@
+{
+ "properties": {
+ "author_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "company_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "context_type_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "custom_field": {
+ "type": [
+ "string"
+ ]
+ },
+ "customfield_created_by_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "customfield_modified_by_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_customfield_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_customfield_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "event_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "line_transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "note_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "operation": {
+ "type": [
+ "string"
+ ]
+ },
+ "record_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "record_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "role_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "standard_field": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "value_new": {
+ "type": [
+ "string"
+ ]
+ },
+ "value_old": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/task_contacts.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/task_contacts.json
new file mode 100644
index 000000000..3a1832e7a
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/task_contacts.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "company_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "contact_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "task_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/tasks.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/tasks.json
new file mode 100644
index 000000000..20acf227c
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/tasks.json
@@ -0,0 +1,84 @@
+{
+ "properties": {
+ "assigned_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "due_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "estimated_hours": {
+ "type": [
+ "number"
+ ]
+ },
+ "estimated_hours_override": {
+ "type": [
+ "number"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "owner_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "priority": {
+ "type": [
+ "string"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "task_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "task_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "taskorder": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/tax_items.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/tax_items.json
new file mode 100644
index 000000000..6956285f4
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/tax_items.json
@@ -0,0 +1,94 @@
+{
+ "properties": {
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "income_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "rate": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_city": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_county": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_state": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "tax_zipcode": {
+ "type": [
+ "string"
+ ]
+ },
+ "vendor_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "vendorname": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/territory.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/territory.json
new file mode 100644
index 000000000..360417b09
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/territory.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "territory_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/time_based_charge_rules.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/time_based_charge_rules.json
new file mode 100644
index 000000000..bf2a594f2
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/time_based_charge_rules.json
@@ -0,0 +1,134 @@
+{
+ "properties": {
+ "adjust_time_to_fit_under_cap": {
+ "type": [
+ "string"
+ ]
+ },
+ "billing_rate_card_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cap_hours": {
+ "type": [
+ "number"
+ ]
+ },
+ "cap_money": {
+ "type": [
+ "number"
+ ]
+ },
+ "cap_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "charge_rule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "charge_rule_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "charge_stage": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "dont_bill_entry_exceeding_cap": {
+ "type": [
+ "string"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "form_template": {
+ "type": [
+ "integer"
+ ]
+ },
+ "project_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "rate_multiplier": {
+ "type": [
+ "number"
+ ]
+ },
+ "rate_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "rounding": {
+ "type": [
+ "string"
+ ]
+ },
+ "rule_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "rule_order": {
+ "type": [
+ "integer"
+ ]
+ },
+ "sale_unit_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "saved_search": {
+ "type": [
+ "integer"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "time_based_charge_rule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "units_type_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/timesheet.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/timesheet.json
new file mode 100644
index 000000000..0fd284653
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/timesheet.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "employee_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "status_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "timesheet_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/topic.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/topic.json
new file mode 100644
index 000000000..5771201f6
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/topic.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "long_description": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_topic_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "topic_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "topic_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/trans_partner_sales_teams.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/trans_partner_sales_teams.json
new file mode 100644
index 000000000..d60445996
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/trans_partner_sales_teams.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "contribution": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "isprimary": {
+ "type": [
+ "string"
+ ]
+ },
+ "partner_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "partner_sales_role_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_address.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_address.json
new file mode 100644
index 000000000..c4bf0a72c
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_address.json
@@ -0,0 +1,174 @@
+{
+ "properties": {
+ "bill_address_line_1": {
+ "type": [
+ "string"
+ ]
+ },
+ "bill_address_line_2": {
+ "type": [
+ "string"
+ ]
+ },
+ "bill_address_line_3": {
+ "type": [
+ "string"
+ ]
+ },
+ "bill_city": {
+ "type": [
+ "string"
+ ]
+ },
+ "bill_company": {
+ "type": [
+ "string"
+ ]
+ },
+ "bill_country": {
+ "type": [
+ "string"
+ ]
+ },
+ "bill_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "bill_phone_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "bill_state": {
+ "type": [
+ "string"
+ ]
+ },
+ "bill_zip": {
+ "type": [
+ "string"
+ ]
+ },
+ "created_by_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "last_modified_by_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "return_address_line_1": {
+ "type": [
+ "string"
+ ]
+ },
+ "return_address_line_2": {
+ "type": [
+ "string"
+ ]
+ },
+ "return_city": {
+ "type": [
+ "string"
+ ]
+ },
+ "return_country": {
+ "type": [
+ "string"
+ ]
+ },
+ "return_state": {
+ "type": [
+ "string"
+ ]
+ },
+ "return_zipcode": {
+ "type": [
+ "string"
+ ]
+ },
+ "ship_address_line_1": {
+ "type": [
+ "string"
+ ]
+ },
+ "ship_address_line_2": {
+ "type": [
+ "string"
+ ]
+ },
+ "ship_address_line_3": {
+ "type": [
+ "string"
+ ]
+ },
+ "ship_attention": {
+ "type": [
+ "string"
+ ]
+ },
+ "ship_city": {
+ "type": [
+ "string"
+ ]
+ },
+ "ship_company": {
+ "type": [
+ "string"
+ ]
+ },
+ "ship_country": {
+ "type": [
+ "string"
+ ]
+ },
+ "ship_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "ship_phone_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "ship_state": {
+ "type": [
+ "string"
+ ]
+ },
+ "ship_zip": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction_address_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_bin_numbers.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_bin_numbers.json
new file mode 100644
index 000000000..6e8584fcd
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_bin_numbers.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "bin_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transaction_line": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_book_map.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_book_map.json
new file mode 100644
index 000000000..aab10b213
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_book_map.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "accounting_book_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_revenue_committed": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "exchange_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "is_vsoe_bundle": {
+ "type": [
+ "string"
+ ]
+ },
+ "needs_revenue_commitment": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenue_commitment_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenue_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_cost_components.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_cost_components.json
new file mode 100644
index 000000000..d8b169b33
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_cost_components.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "cost_category": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "integer"
+ ]
+ },
+ "standard_cost": {
+ "type": [
+ "number"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transaction_line": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_history.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_history.json
new file mode 100644
index 000000000..0a6b45dc1
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_history.json
@@ -0,0 +1,59 @@
+{
+ "properties": {
+ "account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "action": {
+ "type": [
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "date_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_transaction": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "document_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transaction_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_inventory_numbers.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_inventory_numbers.json
new file mode 100644
index 000000000..008cbb0e1
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_inventory_numbers.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "inventory_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transaction_line": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_line_book_map.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_line_book_map.json
new file mode 100644
index 000000000..395a576d2
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_line_book_map.json
@@ -0,0 +1,124 @@
+{
+ "properties": {
+ "account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "accounting_book_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "alt_sales_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "amortization_residual": {
+ "type": [
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "amount_linked": {
+ "type": [
+ "number"
+ ]
+ },
+ "bill_variance_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "catch_up_period_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_rev_rec_end": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_rev_rec_start": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_revenue_committed": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "gl_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "gl_sequence": {
+ "type": [
+ "string"
+ ]
+ },
+ "gl_sequence_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gross_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_hold_rev_rec": {
+ "type": [
+ "string"
+ ]
+ },
+ "quantity_committed": {
+ "type": [
+ "number"
+ ]
+ },
+ "schedule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transaction_line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "vsoe_allocation": {
+ "type": [
+ "number"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_lines.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_lines.json
new file mode 100644
index 000000000..f3a9ff145
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_lines.json
@@ -0,0 +1,629 @@
+{
+ "properties": {
+ "account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "alt_sales_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "amortization_residual": {
+ "type": [
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "amount_foreign": {
+ "type": [
+ "number"
+ ]
+ },
+ "amount_foreign_linked": {
+ "type": [
+ "number"
+ ]
+ },
+ "amount_linked": {
+ "type": [
+ "number"
+ ]
+ },
+ "amount_pending": {
+ "type": [
+ "number"
+ ]
+ },
+ "amount_settlement": {
+ "type": [
+ "number"
+ ]
+ },
+ "amount_taxable": {
+ "type": [
+ "number"
+ ]
+ },
+ "amount_taxed": {
+ "type": [
+ "number"
+ ]
+ },
+ "bill_variance_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "billing_schedule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "billing_subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "bom_quantity": {
+ "type": [
+ "number"
+ ]
+ },
+ "catch_up_period_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "charge_rule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "charge_type": {
+ "type": [
+ "integer"
+ ]
+ },
+ "class_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "company_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "component_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "component_yield": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cost_estimate_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_cleared": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_closed": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified_gmt": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_requested": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_revenue_committed": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "delay_rev_rec": {
+ "type": [
+ "string"
+ ]
+ },
+ "department_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "do_not_display_line": {
+ "type": [
+ "string"
+ ]
+ },
+ "do_not_print_line": {
+ "type": [
+ "string"
+ ]
+ },
+ "do_restock": {
+ "type": [
+ "string"
+ ]
+ },
+ "estimated_cost": {
+ "type": [
+ "number"
+ ]
+ },
+ "estimated_cost_foreign": {
+ "type": [
+ "number"
+ ]
+ },
+ "expected_receipt_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "expense_category_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gl_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "gl_sequence": {
+ "type": [
+ "string"
+ ]
+ },
+ "gl_sequence_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "gross_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "has_cost_line": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_allocation": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_amortization_rev_rec": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_commitment_confirmed": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_cost_line": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_custom_line": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_exclude_from_rate_request": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_fx_variance": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_item_value_adjustment": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_landed_cost": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_scrap": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_vsoe_allocation_line": {
+ "type": [
+ "string"
+ ]
+ },
+ "isbillable": {
+ "type": [
+ "string"
+ ]
+ },
+ "iscleared": {
+ "type": [
+ "string"
+ ]
+ },
+ "isnonreimbursable": {
+ "type": [
+ "string"
+ ]
+ },
+ "istaxable": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_count": {
+ "type": [
+ "number"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_received": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_unit_price": {
+ "type": [
+ "string"
+ ]
+ },
+ "kit_part_number": {
+ "type": [
+ "integer"
+ ]
+ },
+ "landed_cost_source_line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "match_bill_to_receipt": {
+ "type": [
+ "string"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "needs_revenue_element": {
+ "type": [
+ "string"
+ ]
+ },
+ "net_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "net_amount_foreign": {
+ "type": [
+ "integer"
+ ]
+ },
+ "non_posting_line": {
+ "type": [
+ "string"
+ ]
+ },
+ "number_billed": {
+ "type": [
+ "number"
+ ]
+ },
+ "operation_sequence_number": {
+ "type": [
+ "integer"
+ ]
+ },
+ "order_priority": {
+ "type": [
+ "number"
+ ]
+ },
+ "payment_method_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "payroll_item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "payroll_wage_base_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "payroll_year_to_date_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "period_closed": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "price_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "project_task_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "purchase_contract_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quantity_allocated": {
+ "type": [
+ "number"
+ ]
+ },
+ "quantity_committed": {
+ "type": [
+ "number"
+ ]
+ },
+ "quantity_packed": {
+ "type": [
+ "number"
+ ]
+ },
+ "quantity_picked": {
+ "type": [
+ "number"
+ ]
+ },
+ "quantity_received_in_shipment": {
+ "type": [
+ "number"
+ ]
+ },
+ "receivebydate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "reimbursement_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "related_company_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "rev_rec_end_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "rev_rec_rule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "rev_rec_start_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "revenue_element_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "schedule_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "shipdate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "shipment_received": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "shipping_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "source_subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subscription_line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "tax_item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "tax_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "term_in_months": {
+ "type": [
+ "integer"
+ ]
+ },
+ "tobeemailed": {
+ "type": [
+ "string"
+ ]
+ },
+ "tobefaxed": {
+ "type": [
+ "string"
+ ]
+ },
+ "tobeprinted": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction_discount_line": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transaction_line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transaction_order": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transfer_order_item_line": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transfer_order_line_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "unique_key": {
+ "type": [
+ "integer"
+ ]
+ },
+ "unit_cost_override": {
+ "type": [
+ "number"
+ ]
+ },
+ "unit_of_measure_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "vsoe_allocation": {
+ "type": [
+ "number"
+ ]
+ },
+ "vsoe_amt": {
+ "type": [
+ "number"
+ ]
+ },
+ "vsoe_deferral": {
+ "type": [
+ "string"
+ ]
+ },
+ "vsoe_delivered": {
+ "type": [
+ "string"
+ ]
+ },
+ "vsoe_discount": {
+ "type": [
+ "string"
+ ]
+ },
+ "vsoe_price": {
+ "type": [
+ "number"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_links.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_links.json
new file mode 100644
index 000000000..023a64d6e
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_links.json
@@ -0,0 +1,79 @@
+{
+ "properties": {
+ "amount_foreign_linked": {
+ "type": [
+ "number"
+ ]
+ },
+ "amount_linked": {
+ "type": [
+ "number"
+ ]
+ },
+ "applied_date_posted": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "applied_transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "applied_transaction_line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "discount": {
+ "type": [
+ "string"
+ ]
+ },
+ "inventory_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "link_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "link_type_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "original_date_posted": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "original_transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "original_transaction_line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quantity_linked": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_sales_teams.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_sales_teams.json
new file mode 100644
index 000000000..517e4a541
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_sales_teams.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "contribution": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "isprimary": {
+ "type": [
+ "string"
+ ]
+ },
+ "sales_rep_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "sales_role_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_shipping_groups.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_shipping_groups.json
new file mode 100644
index 000000000..16144f97b
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_shipping_groups.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "handling_line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "shipping_group_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "shipping_item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "shipping_line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transaction_address_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_tax_detail.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_tax_detail.json
new file mode 100644
index 000000000..b37c61b18
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_tax_detail.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "amount_foreign": {
+ "type": [
+ "number"
+ ]
+ },
+ "amount_net": {
+ "type": [
+ "number"
+ ]
+ },
+ "calculation_comment": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_basis_amount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "tax_item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "tax_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "tax_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transaction_line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_tracking_numbers.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_tracking_numbers.json
new file mode 100644
index 000000000..80472c269
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/transaction_tracking_numbers.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "tracking_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/transactions.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/transactions.json
new file mode 100644
index 000000000..a1b220e6c
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/transactions.json
@@ -0,0 +1,609 @@
+{
+ "properties": {
+ "account_based_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "accounting_book_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "accounting_period_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "acct_corp_card_expenses_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "amount_unbilled": {
+ "type": [
+ "number"
+ ]
+ },
+ "bill_pay_transaction": {
+ "type": [
+ "string"
+ ]
+ },
+ "billaddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "billing_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "billing_instructions": {
+ "type": [
+ "string"
+ ]
+ },
+ "buildable": {
+ "type": [
+ "integer"
+ ]
+ },
+ "bulk_submission_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "carrier": {
+ "type": [
+ "string"
+ ]
+ },
+ "closed": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "company_status_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "contract_cost_amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "contract_defer_expense_acct_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "contract_expense_acct_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "contract_expense_src_acct_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "create_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "created_by_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "created_from_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_form_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_actual_prod_end": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_actual_prod_start": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_bid_close": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_bid_open": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_contract_cost_accrual": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_tax_point": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "due_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "entity_tax_reg_num": {
+ "type": [
+ "string"
+ ]
+ },
+ "exchange_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "expected_close": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "external_ref_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "fob": {
+ "type": [
+ "string"
+ ]
+ },
+ "forecast_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "include_in_forecast": {
+ "type": [
+ "string"
+ ]
+ },
+ "incoterm": {
+ "type": [
+ "string"
+ ]
+ },
+ "intercompany_transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_actualprodenddate_manual": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_actualprodstartdate_manual": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_advanced_intercompany": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_autocalculate_lag": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_compliant": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_created_from_merge": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_cross_sub_transactions": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_finance_charge": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_firmed": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_in_transit_payment": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_intercompany": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_merged_into_arrangements": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_non_posting": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_override_installments": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_payment_hold": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_reversal": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_tax_point_date_override": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_tax_reg_override": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_wip": {
+ "type": [
+ "string"
+ ]
+ },
+ "item_revision": {
+ "type": [
+ "integer"
+ ]
+ },
+ "job_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "landed_cost_allocation_method": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "last_sales_activity": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lead_source_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lsa_link": {
+ "type": [
+ "string"
+ ]
+ },
+ "lsa_link_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "memorized": {
+ "type": [
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "needs_bill": {
+ "type": [
+ "string"
+ ]
+ },
+ "needs_revenue_commitment": {
+ "type": [
+ "string"
+ ]
+ },
+ "number_of_pricing_tiers": {
+ "type": [
+ "integer"
+ ]
+ },
+ "opening_balance_transaction": {
+ "type": [
+ "string"
+ ]
+ },
+ "ownership_transfer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "packing_list_instructions": {
+ "type": [
+ "string"
+ ]
+ },
+ "partner_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "payment_terms_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "pn_ref_num": {
+ "type": [
+ "string"
+ ]
+ },
+ "probability": {
+ "type": [
+ "number"
+ ]
+ },
+ "product_label_instructions": {
+ "type": [
+ "string"
+ ]
+ },
+ "projected_total": {
+ "type": [
+ "number"
+ ]
+ },
+ "promotion_code_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "promotion_code_instance_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "purchase_order_instructions": {
+ "type": [
+ "string"
+ ]
+ },
+ "related_tranid": {
+ "type": [
+ "string"
+ ]
+ },
+ "renewal": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "revenue_commitment_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenue_committed": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "revenue_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "reversing_transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "sales_effective_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "sales_rep_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "scheduling_method_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipaddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipment_received": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "shipping_item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "tax_reg_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "trandate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "tranid": {
+ "type": [
+ "string"
+ ]
+ },
+ "trans_is_vsoe_bundle": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transaction_number": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction_partner": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction_source": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction_website": {
+ "type": [
+ "integer"
+ ]
+ },
+ "transfer_location": {
+ "type": [
+ "integer"
+ ]
+ },
+ "use_item_cost_as_transfer_cost": {
+ "type": [
+ "string"
+ ]
+ },
+ "visible_in_customer_center": {
+ "type": [
+ "string"
+ ]
+ },
+ "weighted_total": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/units_type.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/units_type.json
new file mode 100644
index 000000000..18e601502
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/units_type.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "units_type_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "units_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/unlocked_time_periods.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/unlocked_time_periods.json
new file mode 100644
index 000000000..872b0a2ec
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/unlocked_time_periods.json
@@ -0,0 +1,59 @@
+{
+ "properties": {
+ "date_created": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_period_end": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_period_start": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "date_valid_until": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "employee_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_modified_by_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "unlocked_time_period_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "unlocked_time_period_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/uom.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/uom.json
new file mode 100644
index 000000000..f2c734df3
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/uom.json
@@ -0,0 +1,54 @@
+{
+ "properties": {
+ "abbreviation": {
+ "type": [
+ "string"
+ ]
+ },
+ "conversion_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "is_base_unit": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "plural_abbreviation": {
+ "type": [
+ "string"
+ ]
+ },
+ "plural_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "units_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "uom_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/usages.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/usages.json
new file mode 100644
index 000000000..2203b0ed5
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/usages.json
@@ -0,0 +1,59 @@
+{
+ "properties": {
+ "date_usage": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "usage_customer_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "usage_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "usage_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "usage_item_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "usage_memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "usage_quantity": {
+ "type": [
+ "number"
+ ]
+ },
+ "usage_subscription_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "usage_subscription_line_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "usage_subscription_plan_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/vendor_currencies.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/vendor_currencies.json
new file mode 100644
index 000000000..4e2df3901
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/vendor_currencies.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "in_transit_balance_foreign": {
+ "type": [
+ "number"
+ ]
+ },
+ "openbalance_foreign": {
+ "type": [
+ "number"
+ ]
+ },
+ "unbilled_orders_foreign": {
+ "type": [
+ "number"
+ ]
+ },
+ "vendor_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/vendor_subsidiary_map.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/vendor_subsidiary_map.json
new file mode 100644
index 000000000..a1f5b83b0
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/vendor_subsidiary_map.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "vendor_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/vendor_types.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/vendor_types.json
new file mode 100644
index 000000000..bee935301
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/vendor_types.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "vendor_type_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "vendor_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/vendors.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/vendors.json
new file mode 100644
index 000000000..dafed4d12
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/vendors.json
@@ -0,0 +1,334 @@
+{
+ "properties": {
+ "accountnumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "altemail": {
+ "type": [
+ "string"
+ ]
+ },
+ "altphone": {
+ "type": [
+ "string"
+ ]
+ },
+ "billaddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "billing_class_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "companyname": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "create_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "creditlimit": {
+ "type": [
+ "number"
+ ]
+ },
+ "currency_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "expense_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "home_phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "in_transit_balance": {
+ "type": [
+ "integer"
+ ]
+ },
+ "incoterm": {
+ "type": [
+ "string"
+ ]
+ },
+ "is1099eligible": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_person": {
+ "type": [
+ "string"
+ ]
+ },
+ "isemailhtml": {
+ "type": [
+ "string"
+ ]
+ },
+ "isemailpdf": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "labor_cost": {
+ "type": [
+ "integer"
+ ]
+ },
+ "last_modified_date": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "last_sales_activity": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "line1": {
+ "type": [
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "string"
+ ]
+ },
+ "line3": {
+ "type": [
+ "string"
+ ]
+ },
+ "loginaccess": {
+ "type": [
+ "string"
+ ]
+ },
+ "lsa_link": {
+ "type": [
+ "string"
+ ]
+ },
+ "lsa_link_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobile_phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "openbalance": {
+ "type": [
+ "integer"
+ ]
+ },
+ "openbalance_foreign": {
+ "type": [
+ "integer"
+ ]
+ },
+ "payables_account_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "payment_terms_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "printoncheckas": {
+ "type": [
+ "string"
+ ]
+ },
+ "purchaseorderamount": {
+ "type": [
+ "number"
+ ]
+ },
+ "purchaseorderquantity": {
+ "type": [
+ "number"
+ ]
+ },
+ "purchaseorderquantitydiff": {
+ "type": [
+ "number"
+ ]
+ },
+ "receiptamount": {
+ "type": [
+ "number"
+ ]
+ },
+ "receiptquantity": {
+ "type": [
+ "number"
+ ]
+ },
+ "receiptquantitydiff": {
+ "type": [
+ "number"
+ ]
+ },
+ "represents_subsidiary_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "shipaddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "stitch_custom_field": {
+ "type": [
+ "number"
+ ]
+ },
+ "stitch_custom_field_check_box": {
+ "type": [
+ "string"
+ ]
+ },
+ "stitch_custom_field_currency": {
+ "type": [
+ "number"
+ ]
+ },
+ "stitch_custom_field_decimal": {
+ "type": [
+ "number"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "integer"
+ ]
+ },
+ "taxidnum": {
+ "type": [
+ "string"
+ ]
+ },
+ "time_approver_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "unbilled_orders": {
+ "type": [
+ "integer"
+ ]
+ },
+ "unbilled_orders_foreign": {
+ "type": [
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ },
+ "vendor_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "vendor_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "vendor_type_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "zipcode": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/winlossreason.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/winlossreason.json
new file mode 100644
index 000000000..d21c473b7
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/winlossreason.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "date_last_modified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "is_inactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "reason": {
+ "type": [
+ "string"
+ ]
+ },
+ "win_loss_reason_extid": {
+ "type": [
+ "string"
+ ]
+ },
+ "win_loss_reason_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/work_calendar_holidays.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/work_calendar_holidays.json
new file mode 100644
index 000000000..7e5422f11
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/work_calendar_holidays.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "date_holiday": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "work_calendar_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/json/work_calendars.json b/_data/taps/schemas/netsuite-suite-analytics/v1/json/work_calendars.json
new file mode 100644
index 000000000..1dfa28c69
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/json/work_calendars.json
@@ -0,0 +1,79 @@
+{
+ "properties": {
+ "isdefault": {
+ "type": [
+ "string"
+ ]
+ },
+ "isfriday": {
+ "type": [
+ "string"
+ ]
+ },
+ "isinactive": {
+ "type": [
+ "string"
+ ]
+ },
+ "ismonday": {
+ "type": [
+ "string"
+ ]
+ },
+ "issaturday": {
+ "type": [
+ "string"
+ ]
+ },
+ "issunday": {
+ "type": [
+ "string"
+ ]
+ },
+ "isthursday": {
+ "type": [
+ "string"
+ ]
+ },
+ "istuesday": {
+ "type": [
+ "string"
+ ]
+ },
+ "iswednesday": {
+ "type": [
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "start_hour": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "work_calendar_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "work_hours_per_day": {
+ "type": [
+ "integer"
+ ]
+ },
+ "{{ system-column.record-hash }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/netsuite-suite-analytics-v1-foreign-keys.yml b/_data/taps/schemas/netsuite-suite-analytics/v1/netsuite-suite-analytics-v1-foreign-keys.yml
new file mode 100644
index 000000000..a66878f2b
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/netsuite-suite-analytics-v1-foreign-keys.yml
@@ -0,0 +1,25202 @@
+tap: netsuite-suite-analytics
+version: '1'
+keys:
+ accounts_account_id:
+ - table: account_activity
+ keys:
+ - account_id
+ - table: account_period_activity
+ keys:
+ - account_id
+ - table: account_period_activity_pe
+ keys:
+ - account_id
+ - table: account_subsidiary_map
+ keys:
+ - account_id
+ - table: accounts
+ keys:
+ - deferral_account_id
+ - parent_id
+ - table: amortization_sched_lines
+ keys:
+ - account_id
+ - table: budget
+ keys:
+ - account_id
+ - table: customers
+ keys:
+ - default_receivables_account_id
+ - table: employees
+ keys:
+ - def_acct_corp_card_expenses_id
+ - table: expense_accounts
+ keys:
+ - expense_account_id
+ - table: expense_amortization_rules
+ keys:
+ - contra_account_id
+ - table: expense_plan_lines
+ keys:
+ - deferred_expense_account_id
+ - expense_account_id
+ - table: global_account_map
+ keys:
+ - destination_account_id
+ - source_account_id
+ - table: income_accounts
+ keys:
+ - income_account_id
+ - table: income_account_map
+ keys:
+ - destination_account_id
+ - source_account_id
+ - table: opportunity_lines
+ keys:
+ - account_id
+ - table: posting_account_activity
+ keys:
+ - account_id
+ - table: posting_account_activity_pe
+ keys:
+ - account_id
+ - table: revaluation
+ keys:
+ - variance_account_id
+ - table: revenue_plan_lines
+ keys:
+ - deferral_account_id
+ - recognition_account_id
+ - table: revrecschedulelines
+ keys:
+ - account_id
+ - table: sales_reps
+ keys:
+ - def_acct_corp_card_expenses_id
+ - table: support_reps
+ keys:
+ - def_acct_corp_card_expenses_id
+ - table: transaction_history
+ keys:
+ - account_id
+ - table: transaction_line_book_map
+ keys:
+ - account_id
+ - table: transaction_lines
+ keys:
+ - account_id
+ - table: transaction_tax_detail
+ keys:
+ - account_id
+ - table: transactions
+ keys:
+ - account_id
+ accounting_books_accounting_book_id:
+ - table: account_activity
+ keys:
+ - accounting_book_id
+ - table: accounting_books
+ keys:
+ - accounting_book_id
+ - base_book_id
+ - table: account_period_activity
+ keys:
+ - accounting_book_id
+ - table: account_period_activity_pe
+ keys:
+ - accounting_book_id
+ - table: budget
+ keys:
+ - accounting_book_id
+ - table: expense_plans
+ keys:
+ - transaction_book_id
+ - table: global_account_map
+ keys:
+ - accounting_book_id
+ - table: item_account_map
+ keys:
+ - accounting_book_id
+ - table: posting_account_activity
+ keys:
+ - accounting_book_id
+ - table: posting_account_activity_pe
+ keys:
+ - accounting_book_id
+ - table: transaction_book_map
+ keys:
+ - accounting_book_id
+ - table: transaction_line_book_map
+ keys:
+ - accounting_book_id
+ accounting_periods_accounting_period_id:
+ - table: account_period_activity
+ keys:
+ - accounting_period_id
+ - table: account_period_activity_pe
+ keys:
+ - accounting_period_id
+ - table: accounting_periods
+ keys:
+ - accounting_period_id
+ - parent_id
+ - year_id
+ - table: amortization_sched_lines
+ keys:
+ - accounting_period_id
+ - table: budget
+ keys:
+ - accounting_period_id
+ - table: consolidated_exchange_rates
+ keys:
+ - accounting_period_id
+ - table: customers
+ keys:
+ - first_sale_period_id
+ - last_sale_period_id
+ - table: expense_plan_lines
+ keys:
+ - accounting_period_id
+ - table: expense_plans
+ keys:
+ - accounting_period_id
+ - table: opportunities
+ keys:
+ - accounting_period_id
+ - table: posting_account_activity
+ keys:
+ - accounting_period_id
+ - table: posting_account_activity_pe
+ keys:
+ - accounting_period_id
+ - table: revenue_plan_lines
+ keys:
+ - accounting_period_id
+ - table: revenue_plan_version_lines
+ keys:
+ - accounting_period_id
+ - table: revenue_plans
+ keys:
+ - accounting_period_id
+ - table: revrecschedulelines
+ keys:
+ - accounting_period_id
+ address_books_address_book_id:
+ - table: address_books
+ keys:
+ - address_book_id
+ - table: billing_accounts
+ keys:
+ - address_book_id
+ - bill_to_address_book_id
+ - ship_to_address_book_id
+ addresses_address_id:
+ - table: addresses
+ keys:
+ - address_id
+ - table: address_book
+ keys:
+ - address_id
+ amortization_schedules_schedule_id:
+ - table: amortization_sched_lines
+ keys:
+ - schedule_id
+ - table: amortization_schedules
+ keys:
+ - schedule_id
+ billing_accounts_billing_account_id:
+ - table: billing_accounts
+ keys:
+ - billing_account_id
+ - table: billing_subscriptions
+ keys:
+ - billing_account_id
+ bill_of_materials_bill_of_materials_id:
+ - table: bill_of_materials
+ keys:
+ - bill_of_materials_id
+ - table: bom_revisions
+ keys:
+ - bill_of_materials_id
+ billing_schedule_descriptions_billing_schedule_id:
+ - table: billing_accounts
+ keys:
+ - billing_schedule_id
+ - table: billing_schedule_descriptions
+ keys:
+ - billing_schedule_id
+ - table: charges
+ keys:
+ - billing_schedule_id
+ - table: customers
+ keys:
+ - billing_schedule_id
+ - table: transaction_lines
+ keys:
+ - billing_schedule_id
+ billing_classes_billing_class_id:
+ - table: billing_class_rates
+ keys:
+ - billing_class_id
+ - table: billing_rate_card_prices
+ keys:
+ - billing_class_id
+ - table: employee_time
+ keys:
+ - billing_class_id
+ - table: employees
+ keys:
+ - billing_class_id
+ - table: item_billing_rates
+ keys:
+ - billing_class_id
+ billing_rate_cards_billing_rate_card_id:
+ - table: billing_class_rates
+ keys:
+ - billing_rate_card_id
+ - table: billing_rate_cards_prices
+ keys:
+ - billing_rate_card_id
+ - table: billing_rate_cards_versions
+ keys:
+ - billing_rate_card_id
+ - table: project_templates
+ keys:
+ - template_id
+ - table: time_based_charge_rules
+ keys:
+ - billing_rate_card_id
+ billing_rate_cards_versions_version0:
+ - table: billing_rate_cards_prices
+ keys:
+ - version0
+ - table: billing_rate_cards_versions
+ keys:
+ - version0
+ billing_subscription_lines_subscription_line_id:
+ - table: billing_subscription_lines
+ keys:
+ - subline_id
+ - usage_multiplier_line_id
+ - table: subscript_line_price_intervals
+ keys:
+ - subscription_line_id
+ - table: subscription_co_lines
+ keys:
+ - subscription_line_id
+ - table: subscription_line_revisions
+ keys:
+ - subscription_line_id
+ billing_subscriptions_subscription_id:
+ - table: billing_subscriptions
+ keys:
+ - subscription_id
+ - table: billing_subscription_lines
+ keys:
+ - subscription_id
+ - table: subscription_change_orders
+ keys:
+ - subscription_id
+ - table: subscription_co_lines
+ keys:
+ - subscription_id
+ bins_bin_id:
+ - table: bins
+ keys:
+ - bin_id
+ bom_revisions_bom_revision_id:
+ - table: bom_revision_components
+ keys:
+ - bom_revision_id
+ - table: bom_revisions
+ keys:
+ - bom_revision_id
+ budget_budget_id:
+ - table: budget
+ keys:
+ - budget_id
+ budget_category_category_id:
+ - table: budget
+ keys:
+ - category_id
+ - table: budget_category
+ keys:
+ - category_id
+ campaigns_campaign_id:
+ - table: campaign_categories
+ keys:
+ - default_campaign_id
+ - table: campaignevent
+ keys:
+ - campaign_id
+ - table: campaignitem
+ keys:
+ - campaign_id
+ - table: campaigns
+ keys:
+ - campaign_id
+ - table: customers
+ keys:
+ - lead_source_id
+ - table: opportunities
+ keys:
+ - lead_source_id
+ campaign_audiences_campaignaudience_id:
+ - table: campaigns
+ keys:
+ - audience_id
+ - table: campaign_audiences
+ keys:
+ - campaignaudience_id
+ campaign_category_category_id:
+ - table: campaigns
+ keys:
+ - category_id
+ - table: campaign_categories
+ keys:
+ - campaigncategory_id
+ - parent_id
+ campaignchannel_campaign_channel_id:
+ - table: campaignchannel
+ keys:
+ - campaign_channel_id
+ - table: campaignevent
+ keys:
+ - channel_id
+ campaignevent_campaign_event_id:
+ - table: campaignevent
+ keys:
+ - campaign_event_id
+ - table: campaignresponse
+ keys:
+ - campaign_event_id
+ campaign_families_family_id:
+ - table: campaign_families
+ keys:
+ - campaignfamily_id
+ - table: campaigns
+ keys:
+ - family_id
+ campaignoffer_offer_id:
+ - table: campaignoffer
+ keys:
+ - offer_id
+ - table: campaigns
+ keys:
+ - offer_id
+ campaignresponse_campaign_response_id:
+ - table: campaignresponse
+ keys:
+ - campaign_response_id
+ - table: campaignresponsehistory
+ keys:
+ - campaign_response_id
+ campaign_subscriptions_subscription_id:
+ - table: campaign_subscription_statuses
+ keys:
+ - subscription_id
+ - table: campaign_subscriptions
+ keys:
+ - campaignsubscription_id
+ - table: campaignevent
+ keys:
+ - subscription_id
+ campaign_verticals_vertical_id:
+ - table: campaign_verticals
+ keys:
+ - vertical_id
+ - table: campaigns
+ keys:
+ - vertical_id
+ caseissue_case_issue_id:
+ - table: caseissue
+ keys:
+ - case_issue_id
+ - table: support_incidents
+ keys:
+ - case_issue_id
+ case_origins_case_origin_id:
+ - table: case_origins
+ keys:
+ - case_origin_id
+ - table: support_incidents
+ keys:
+ - case_origin_id
+ support_incidents_case_id:
+ - table: case_stage_changes
+ keys:
+ - case_id
+ - table: caseescalationhistory
+ keys:
+ - case_id
+ - table: support_incidents
+ keys:
+ - case_id
+ case_types_case_type_id:
+ - table: case_types
+ keys:
+ - case_type_id
+ - table: casetypes
+ keys:
+ - case_type_id
+ - table: support_incidents
+ keys:
+ - case_type_id
+ classes_class_id:
+ - table: accounts
+ keys:
+ - class_id
+ - table: budget
+ keys:
+ - class_id
+ - table: classes
+ keys:
+ - class_id
+ - parent_id
+ - table: employee_time
+ keys:
+ - class_id
+ - table: employees
+ keys:
+ - class_id
+ - table: global_account_map
+ keys:
+ - class_id
+ - table: item_account_map
+ keys:
+ - class_id
+ - table: opportunity_lines
+ keys:
+ - class_id
+ - table: posting_account_activity
+ keys:
+ - class_id
+ - table: posting_account_activity_pe
+ keys:
+ - class_id
+ - table: subscription_plans
+ keys:
+ - class_id
+ - table: subsidiary_class_map
+ keys:
+ - class_id
+ company_status_company_status_id:
+ - table: company_status
+ keys:
+ - company_status_id
+ - table: opportunities
+ keys:
+ - company_status_id
+ consolidated_exchange_rates_consolidated_exchange_rate_id:
+ - table: consolidated_exchange_rates
+ keys:
+ - consolidated_exchange_rate_id
+ contacts_contact_id:
+ - table: campaignresponse
+ keys:
+ - contact_id
+ - table: customers
+ keys:
+ - primary_contact_id
+ - alternate_contact_id
+ - table: entity_role_map
+ keys:
+ - contact_id
+ - table: support_incidents
+ keys:
+ - contact_id
+ countries_country_id:
+ - table: countries
+ keys:
+ - country_id
+ - table: states
+ keys:
+ - country_id
+ coupon_codes_coupon_code_id:
+ - table: coupon_codes
+ keys:
+ - coupon_code_id
+ - table: opportunities
+ keys:
+ - promotion_code_instance_id
+ crmgroup_group_id:
+ - table: campaignevent
+ keys:
+ - group_id
+ - table: crmgroup
+ keys:
+ - group_id
+ crmtemplate_template_id:
+ - table: campaignevent
+ keys:
+ - template_id
+ - table: crmtemplate
+ keys:
+ - crmtemplate_id
+ currencies_currency_id:
+ - table: accounts
+ keys:
+ - currency_id
+ - table: billing_class_rates
+ keys:
+ - currency_id
+ - table: companies
+ keys:
+ - currency_id
+ - table: currencies
+ keys:
+ - currency_id
+ - table: customer_currencies
+ keys:
+ - currency_id
+ - table: employee_currency_map
+ keys:
+ - currency_id
+ - table: employees
+ keys:
+ - def_expense_report_currency_id
+ - table: inbound_shipments
+ keys:
+ - currency_id
+ - table: item_billing_rates
+ keys:
+ - currency_id
+ - table: item_price_history
+ keys:
+ - currency_id
+ - table: item_vendor_pricing
+ keys:
+ - currency_id
+ - table: location_costing_groups
+ keys:
+ - currency_id
+ - table: opportunities
+ keys:
+ - currency_id
+ - table: sales_reps
+ keys:
+ - currency_id
+ - table: support_reps
+ keys:
+ - currency_id
+ currency_exchange_rate_types_currency_rate_type_id:
+ - table: currency_exchange_rate_types
+ keys:
+ - currency_rate_type_id
+ - table: currency_exchange_rates
+ keys:
+ - currency_rate_type_id
+ currency_exchange_rates_currency_rate_id:
+ - table: currency_exchange_rate_types
+ keys:
+ - currency_rate_id
+ - table: currency_exchange_rates
+ keys:
+ - currency_rate_id
+ customers_customer_id:
+ - table: billing_rate_cards
+ keys:
+ - customer_id
+ - table: budget
+ keys:
+ - customer_id
+ - table: customer_currencies
+ keys:
+ - customer_id
+ - table: customer_subsidiary_map
+ keys:
+ - customer_id
+ - table: customers
+ keys:
+ - customer_id
+ - top_level_parent_id
+ - table: employee_time
+ keys:
+ - customer_id
+ customer_types_customer_type_id:
+ - table: customer_types
+ keys:
+ - customer_type_id
+ - table: customers
+ keys:
+ - customer_type_id
+ departments_department_id:
+ - table: account_activity
+ keys:
+ - department_id
+ - table: account_period_activity
+ keys:
+ - department_id
+ - table: account_period_activity_pe
+ keys:
+ - department_id
+ - table: accounts
+ keys:
+ - department_id
+ - table: budget
+ keys:
+ - department_id
+ - table: departments
+ keys:
+ - department_id
+ - parent_id
+ - table: employee_time
+ keys:
+ - department_id
+ - table: employees
+ keys:
+ - department_id
+ - table: global_account_map
+ keys:
+ - department_id
+ - table: item_account_map
+ keys:
+ - department_id
+ - table: opportunity_lines
+ keys:
+ - department_id
+ - table: posting_account_activity
+ keys:
+ - department_id
+ - table: posting_account_activity_pe
+ keys:
+ - department_id
+ - table: subscription_plans
+ keys:
+ - department_id
+ - table: subsidiary_department_map
+ keys:
+ - department_id
+ employee_types_employee_type_id:
+ - table: employee_types
+ keys:
+ - employee_type_id
+ - table: employees
+ keys:
+ - employee_type_id
+ employees_employee_id:
+ - table: billing_rate_cards_versions
+ keys:
+ - last_modified_by_id
+ - table: customers
+ keys:
+ - project_manager_id
+ - table: employee_currency_map
+ keys:
+ - employee_id
+ - table: employees
+ keys:
+ - employee_id
+ - approver_id
+ - supervisor_id
+ - table: project_revenue_rules
+ keys:
+ - created_by
+ - last_modified_by
+ - table: project_templates
+ keys:
+ - project_manager_id
+ - table: revenue_plan_versions
+ keys:
+ - created_by_id
+ - table: subscription_change_orders
+ keys:
+ - requester_id
+ - table: unlocked_time_periods
+ keys:
+ - last_modified_by_id
+ - employee_id
+ - table: vendors
+ keys:
+ - time_approver_id
+ entities_entity_id:
+ - table: campaign_subscription_statuses
+ keys:
+ - entity_id
+ - table: campaignresponse
+ keys:
+ - entity_id
+ - table: campaignresponsehistory
+ keys:
+ - author
+ - table: campaigns
+ keys:
+ - organizer_id
+ - table: caseescalationhistory
+ keys:
+ - escalator_id
+ - entity_id
+ - table: contact_types
+ keys:
+ - contact_id
+ - owner_id
+ - table: currency_exchange_rates
+ keys:
+ - entity_id
+ - table: currencyrates
+ keys:
+ - entity_id
+ - table: customers
+ keys:
+ - converted_to_id
+ - converted_to_contact_id
+ - sales_rep_id
+ - parent_id
+ - table: entity_role_map
+ keys:
+ - entity_id
+ - table: entityterritorymap
+ keys:
+ - entity_id
+ - table: messagerecipient
+ keys:
+ - entity_id
+ - table: notes_system_custom
+ keys:
+ - company_id
+ - author_id
+ - table: notes_system
+ keys:
+ - company_id
+ - author_id
+ - table: notes_user
+ keys:
+ - company_id
+ - table: opportunities
+ keys:
+ - sales_rep_id
+ - table: opportunity_lines
+ keys:
+ - company_id
+ - related_company_id
+ - table: resource_group_entity_map
+ keys:
+ - entity_id
+ - table: resource_groups
+ keys:
+ - resource_group_id
+ - table: support_incidents
+ keys:
+ - owner_id
+ - assigned_id
+ - company_id
+ - table: supportcasehistory
+ keys:
+ - employee_id
+ - table: system_notes_custom
+ keys:
+ - company_id
+ - author_id
+ - customfield_created_by_id
+ - customfield_modified_by_id
+ - table: system_notes
+ keys:
+ - company_id
+ - author_id
+ - table: transaction_address
+ keys:
+ - created_by_id
+ - last_modified_by_id
+ - table: transaction_history
+ keys:
+ - user_id
+ - entity_id
+ expense_amortization_rules_expense_rule_id:
+ - table: expense_amortization_rules
+ keys:
+ - expense_rule_id
+ - table: expense_plans
+ keys:
+ - expense_rule_id
+ expense_categories_expense_category_id:
+ - table: expense_categories
+ keys:
+ - expense_category_id
+ - table: expense_categories_subs_map
+ keys:
+ - expense_category_id
+ - table: opportunity_lines
+ keys:
+ - expense_category_id
+ expense_plans_plan_id:
+ - table: expense_plan_lines
+ keys:
+ - plan_id
+ - table: expense_plans
+ keys:
+ - plan_id
+ item_collections_item_collection_id:
+ - table: item_collection_item_map
+ keys:
+ - item_collection_id
+ - table: item_collections
+ keys:
+ - item_collection_id
+ items_item_id:
+ - table: bill_of_materials
+ keys:
+ - original_assembly_id
+ - table: billing_rate_cards_prices
+ keys:
+ - service_item_id
+ - table: billing_subscription_lines
+ keys:
+ - item_id
+ - table: bom_revision_components
+ keys:
+ - item_id
+ - table: budget
+ keys:
+ - item_id
+ - table: campaignitem
+ keys:
+ - item_id
+ - table: customers
+ keys:
+ - tax_item_id
+ - table: item_collection_item_map
+ keys:
+ - item_id
+ - table: item_price_history
+ keys:
+ - item_id
+ - table: item_subsidiary_map
+ keys:
+ - item_id
+ - table: item_vendor_map
+ keys:
+ - item_id
+ - table: item_vendor_pricing
+ keys:
+ - item_id
+ - table: items
+ keys:
+ - item_id
+ - table: notes_system_custom
+ keys:
+ - item_id
+ - table: notes_system
+ keys:
+ - item_id
+ - table: notes_user
+ keys:
+ - item_id
+ - table: opportunity_lines
+ keys:
+ - item_id
+ - tax_item_id
+ - table: planned_standard_costs
+ keys:
+ - item_id
+ - table: posting_account_activity
+ keys:
+ - item_id
+ - table: posting_account_activity_pe
+ keys:
+ - item_id
+ - table: purchase_charge_rules
+ keys:
+ - mark_up_item_id
+ - table: standard_cost_components
+ keys:
+ - component_id
+ - table: subscription_co_lines
+ keys:
+ - plan_item_id
+ - table: subscription_plan_lines
+ keys:
+ - item_id
+ - table: support_incidents
+ keys:
+ - item_id
+ - table: system_notes_custom
+ keys:
+ - item_id
+ - table: system_notes
+ keys:
+ - item_id
+ - table: transaction_tax_detail
+ keys:
+ - item_id
+ job_resource_roles_job_resource_role_id:
+ - table: employees
+ keys:
+ - default_job_resource_role_id
+ - table: job_resource_roles
+ keys:
+ - job_resource_role_id
+ location_costing_groups_location_costing_group_id:
+ - table: location_costing_groups
+ keys:
+ - location_costing_group_id
+ - table: location_costing_grp_locations
+ keys:
+ - location_costing_group_id
+ locations_location_id:
+ - table: accounts
+ keys:
+ - location_id
+ - table: billing_accounts
+ keys:
+ - location_id
+ - table: budget
+ keys:
+ - location_id
+ - table: employee_time
+ keys:
+ - location_id
+ - table: employees
+ keys:
+ - location_id
+ - table: global_account_map
+ keys:
+ - location_id
+ - table: item_account_map
+ keys:
+ - location_id
+ - table: location_costing_grp_locations
+ keys:
+ - location_id
+ - table: locations
+ keys:
+ - location_id
+ - parent_id
+ - table: opportunity_lines
+ keys:
+ - location_id
+ - table: planned_standard_costs
+ keys:
+ - location_id
+ - table: posting_account_activity
+ keys:
+ - location_id
+ - table: posting_account_activity_pe
+ keys:
+ - location_id
+ - table: subscription_plans
+ keys:
+ - location_id
+ - table: subsidiary_location_map
+ keys:
+ - location_id
+ message_message_id:
+ - table: message
+ keys:
+ - message_id
+ - table: messagerecipient
+ keys:
+ - message_id
+ notetype_note_type_id:
+ - table: notes_system_custom
+ keys:
+ - note_type_id
+ - table: notes_system
+ keys:
+ - note_type_id
+ - table: notes_user
+ keys:
+ - note_type_id
+ - table: notetype
+ keys:
+ - note_type_id
+ - table: system_notes_custom
+ keys:
+ - note_type_id
+ - table: system_notes
+ keys:
+ - note_type_id
+ partners_partner_id:
+ - table: customers
+ keys:
+ - partner_id
+ - table: opportunities
+ keys:
+ - partner_id
+ - table: partners
+ keys:
+ - partner_id
+ - table: posting_account_activity
+ keys:
+ - partner_id
+ - table: posting_account_activity_pe
+ keys:
+ - partner_id
+ payment_methods_payment_method_id:
+ - table: opportunity_lines
+ keys:
+ - payment_method_id
+ - table: payment_methods
+ keys:
+ - payment_method_id
+ payment_terms_payment_terms_id:
+ - table: customers
+ keys:
+ - payment_terms_id
+ - table: opportunities
+ keys:
+ - payment_terms_id
+ - table: payment_terms
+ keys:
+ - payment_terms_id
+ payroll_items_payroll_item_id:
+ - table: employee_time
+ keys:
+ - payroll_item_id
+ - table: opportunity_lines
+ keys:
+ - payroll_item_id
+ - table: payroll_item_id
+ keys:
+ - payroll_item_id
+ planned_standard_costs_planned_standard_cost_id:
+ - table: planned_standard_costs
+ keys:
+ - planned_standard_cost_id
+ - table: standard_cost_components
+ keys:
+ - planned_standard_cost_id
+ price_books_price_book_id:
+ - table: price_books
+ keys:
+ - price_book_id
+ - table: price_book_line_intervals
+ keys:
+ - price_book_id
+ price_plans_price_plan_id:
+ - table: price_book_line_intervals
+ keys:
+ - price_plan_id
+ - overage_price_plan_id
+ - table: price_plans
+ keys:
+ - price_plan_id
+ - table: price_tiers
+ keys:
+ - price_plan_id
+ - table: subscription_line_revisions
+ keys:
+ - price_plan_id
+ - overage_price_plan_id
+ price_types_price_type_id:
+ - table: employee_time
+ keys:
+ - price_type_id
+ - table: item_billing_rates
+ keys:
+ - price_type_id
+ - table: item_price_history
+ keys:
+ - price_type_id
+ - table: opportunity_lines
+ keys:
+ - price_type_id
+ - table: price_types
+ keys:
+ - price_type_id
+ project_expense_types_project_expense_type_id:
+ - table: customers
+ keys:
+ - project_expense_type_id
+ - table: project_expense_types
+ keys:
+ - project_expense_type_id
+ project_revenue_rls_charge_rls_project_revenue_rule_id:
+ - table: project_revenue_rls_charge_rls
+ keys:
+ - project_revenue_rule_id
+ - table: project_revenue_rules
+ keys:
+ - project_revenue_rule_id
+ promotion_codes_promotion_code_id:
+ - table: campaignevent
+ keys:
+ - promotion_code_id
+ - table: posting_account_activity
+ keys:
+ - promotion_code_id
+ - table: posting_account_activity_pe
+ keys:
+ - promotion_code_id
+ - table: promotion_codes
+ keys:
+ - promotion_code_id
+ project_time_approval_types_project_time_approval_type_id:
+ - table: customers
+ keys:
+ - time_approval_type_id
+ - table: project_time_approval_types
+ keys:
+ - project_time_approval_type_id
+ resource_group_entity_map_resource_group_id:
+ - table: resource_group_entity_map
+ keys:
+ - resource_group_id
+ revenue_elements_revenue_element_id:
+ - table: expense_plans
+ keys:
+ - related_revenue_element_id
+ - table: revenue_elements
+ keys:
+ - revenue_element_id
+ - table: revenue_plans
+ keys:
+ - revenue_element_id
+ - table: subscription_line_revisions
+ keys:
+ - revenue_element_id
+ revenue_plan_versions_plan_version_id:
+ - table: revenue_plan_version_lines
+ keys:
+ - plan_version_id
+ - table: revenue_plan_versions
+ keys:
+ - plan_version_id
+ revenue_plans_plan_id:
+ - table: revenue_plans
+ keys:
+ - plan_id
+ - table: revenue_plan_lines
+ keys:
+ - plan_id
+ - table: revenue_plan_versions
+ keys:
+ - plan_id
+ revrecschedules_schedule_id:
+ - table: customers
+ keys:
+ - rev_rec_forecast_template
+ - table: revrecschedules
+ keys:
+ - schedule_id
+ - table: transaction_line_book_map
+ keys:
+ - schedule_id
+ revenue_recognition_rules_rev_rec_rule_id:
+ - table: revenue_recognition_rules
+ keys:
+ - rev_rec_rule_id
+ - table: revenue_plans
+ keys:
+ - rev_rec_rule_id
+ sales_reps_sales_rep_id:
+ - table: posting_account_activity
+ keys:
+ - sales_rep_id
+ - table: posting_account_activity_pe
+ keys:
+ - sales_rep_id
+ - table: sales_reps
+ keys:
+ - sales_rep_id
+ campaign_search_engine_search_engine_id:
+ - table: campaign_search_engine
+ keys:
+ - search_engine_id
+ - table: campaigns
+ keys:
+ - search_engine_id
+ service_items_item_id:
+ - table: employee_time
+ keys:
+ - item_id
+ - table: item_billing_rates
+ keys:
+ - item_id
+ - table: project_revenue_rules
+ keys:
+ - service_item_id
+ - table: service_items
+ keys:
+ - item_id
+ subscription_change_orders_change_order_id:
+ - table: subscription_change_orders
+ keys:
+ - change_order_id
+ - table: subscription_co_lines
+ keys:
+ - change_order_id
+ - table: subscription_line_revisions
+ keys:
+ - change_order_id
+ subscription_plans_plan_id:
+ - table: billing_subscriptions
+ keys:
+ - default_renewal_plan_id
+ - plan_id
+ - table: price_books
+ keys:
+ - plan_id
+ - table: subscription_change_orders
+ keys:
+ - renewal_subscription_plan_id
+ - table: subscription_plan_lines
+ keys:
+ - parent_id
+ - table: subscription_plans
+ keys:
+ - plan_id
+ - default_renewal_plan_id
+ subscription_terms_term_id:
+ - table: billing_subscriptions
+ keys:
+ - default_renewal_term_id
+ - initial_term_id
+ - table: subscription_change_orders
+ keys:
+ - renewal_term_id
+ - table: subscription_plans
+ keys:
+ - initial_term_id
+ - default_renewal_term_id
+ - table: subscription_terms
+ keys:
+ - term_id
+ subscription_plan_lines_plan_line_id:
+ - table: billing_subscription_lines
+ keys:
+ - subscription_plan_line_id
+ - table: price_book_line_intervals
+ keys:
+ - plan_line_id
+ - usage_multiplier_line_id
+ - table: subscript_line_price_intervals
+ keys:
+ - plan_line_id
+ - table: subscription_plan_lines
+ keys:
+ - plan_line_id
+ - usage_multiplier_line_id
+ subsidiaries_subsidiary_id:
+ - table: account_activity
+ keys:
+ - subsidiary_id
+ - table: account_period_activity
+ keys:
+ - subsidiary_id
+ - table: account_period_activity_pe
+ keys:
+ - balance_from_subsidiary_id
+ - subsidiary_id
+ - table: account_subsidiary_map
+ keys:
+ - subsidiary_id
+ - table: budget
+ keys:
+ - subsidiary_id
+ - table: companies
+ keys:
+ - subsidiary_id
+ - table: consolidated_exchange_rates
+ keys:
+ - from_subsidiary_id
+ - to_subsidiary_id
+ - table: customer_subsidiary_map
+ keys:
+ - subsidiary_id
+ - table: customers
+ keys:
+ - subsidiary_id
+ - represents_subsidiary_id
+ - table: employee_time
+ keys:
+ - billing_subsidiary_id
+ - subsidiary_id
+ - table: employees
+ keys:
+ - subsidiary_id
+ - table: expense_categories_subs_map
+ keys:
+ - subsidiary_id
+ - table: global_account_map
+ keys:
+ - subsidiary_id
+ - table: global_inventory_relationships
+ keys:
+ - inventory_subsidiary_id
+ - originating_subsidiary_id
+ - table: item_account_map
+ keys:
+ - subsidiary_id
+ - table: item_subsidiary_map
+ keys:
+ - subsidiary_id
+ - table: item_vendor_map
+ keys:
+ - subsidiary_id
+ - table: opportunity_lines
+ keys:
+ - subsidiary_id
+ - table: partners
+ keys:
+ - subsidiary
+ - table: posting_account_activity
+ keys:
+ - subsidiary_id
+ - table: posting_account_activity_pe
+ keys:
+ - subsidiary_id
+ - balance_from_subsidiary_id
+ - table: role_subsidiary_map
+ keys:
+ - subsidiary_id
+ - table: subscription_plans
+ keys:
+ - subsidiary_id
+ - table: subsidiary_class_map
+ keys:
+ - subsidiary_id
+ - table: subsidiary_department_map
+ keys:
+ - subsidiary_id
+ - table: support_incidents
+ keys:
+ - subsidiary_id
+ - table: subsidiaries
+ keys:
+ - billing_subsidiary_id
+ - table: transaction_lines
+ keys:
+ - subsidiary_id
+ - source_subsidiary_id
+ - table: vendor_subsidiary_map
+ keys:
+ - subsidiary_id
+ - table: vendors
+ keys:
+ - subsidiary
+ - represents_subsidiary_id
+ tax_items_item_id:
+ - table: tax_items
+ keys:
+ - item_id
+ - table: transaction_tax_detail
+ keys:
+ - tax_item_id
+ territory_territory_id:
+ - table: customers
+ keys:
+ - sales_territory_id
+ - table: entityterritorymap
+ keys:
+ - territory_id
+ - table: support_incidents
+ keys:
+ - territory_id
+ - table: territory
+ keys:
+ - territory_id
+ group_test_cell_test_cell_id:
+ - table: campaignevent
+ keys:
+ - test_cell_id
+ - table: group_test_cell
+ keys:
+ - test_cell_id
+ transactions_transaction_id:
+ - table: amortization_sched_lines
+ keys:
+ - journal_id
+ - table: billing_subscription_lines
+ keys:
+ - purchase_order_id
+ - sales_order_id
+ - table: billing_subscriptions
+ keys:
+ - sales_order_id
+ - table: campaignresponsehistory
+ keys:
+ - transaction_id
+ - table: employee_time
+ keys:
+ - transaction_id
+ - table: expense_plan_lines
+ keys:
+ - journal_id
+ - table: expense_plans
+ keys:
+ - related_revenue_arrangement_id
+ - table: notes_system_custom
+ keys:
+ - transaction_id
+ - table: notes_system
+ keys:
+ - transaction_id
+ - table: notes_user
+ keys:
+ - transaction_id
+ - table: opportunities
+ keys:
+ - reversing-transaction-id
+ - table: revenue_plan_lines
+ keys:
+ - journal_id
+ - table: revenue_plan_version_lines
+ keys:
+ - journal_id
+ - table: revrecschedulelines
+ keys:
+ - journal_id
+ - table: system_notes_custom
+ keys:
+ - transaction_id
+ - table: system_notes
+ keys:
+ - transaction_id
+ - table: transaction_address
+ keys:
+ - transaction_id
+ - table: transaction_book_map
+ keys:
+ - transaction_id
+ - table: transaction_history
+ keys:
+ - transaction_id
+ - table: transaction_lines
+ keys:
+ - transaction_id
+ - table: transaction_links
+ keys:
+ - applied_transaction_id
+ - original_transaction_id
+ - table: transaction_shipping_groups
+ keys:
+ - transaction_id
+ transaction_lines_transaction_line_id:
+ - table: employee_time
+ keys:
+ - transaction_line_id
+ - table: expense_plans
+ keys:
+ - transaction_line_id
+ - table: notes_system_custom
+ keys:
+ - line_id
+ - table: notes_system
+ keys:
+ - line_id
+ - table: system_notes_custom
+ keys:
+ - line_id
+ - table: system_notes
+ keys:
+ - line_id
+ - table: transaction_line_book_map
+ keys:
+ - transaction_line_id
+ - table: transaction_lines
+ keys:
+ - transaction_line_id
+ - table: transaction_links
+ keys:
+ - applied_transaction_line_id
+ - original_transaction_line_id
+ - table: transaction_tax_detail
+ keys:
+ - transaction_line_id
+ transaction_shipping_groups_shipping_group_id:
+ - table: transaction_lines
+ keys:
+ - shipping_group_id
+ - table: transaction_shipping_groups
+ keys:
+ - shipping_group_id
+ unit_types_unit_type_id:
+ - table: billing_rate_cards_prices
+ keys:
+ - unit_type_id
+ - table: unit_types
+ keys:
+ - unit_type_id
+ uom_unit_of_measure_id:
+ - table: billing_rate_cards_prices
+ keys:
+ - sales_unit_id
+ - table: bom_revision_components
+ keys:
+ - unit_of_measure_id
+ - table: item_group
+ keys:
+ - unit_of_measure_id
+ - table: uom
+ keys:
+ - uom_id
+ vendor_types_vendor_type_id:
+ - table: vendor_types
+ keys:
+ - vendor_type_id
+ - table: vendors
+ keys:
+ - vendor_type_id
+ vendors_vendor_id:
+ - table: item_vendor_map
+ keys:
+ - vendor_id
+ - table: item_vendor_pricing
+ keys:
+ - vendor_id
+ - table: vendor_subsidiary_map
+ keys:
+ - vendor_id
+ - table: vendors
+ keys:
+ - vendor_id
+ winlossreason_win_loss_reason_id:
+ - table: opportunities
+ keys:
+ - win_loss_reason_id
+ - table: winlossreason
+ keys:
+ - win_loss_reason_id
+ work_calendars_work_calendar_id:
+ - table: employees
+ keys:
+ - work_calendar_id
+ - table: work_calendar_holidays
+ keys:
+ - work_calendar_id
+ - table: work_calendars
+ keys:
+ - work_calendar_id
+tables:
+- table-name: account_activity
+ join:
+ - table-name: account_period_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: parent_id
+ - key: department_id
+ foreign-key: department_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: budget
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: customers
+ keys:
+ - key: account_id
+ foreign-key: default_receivables_account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: employees
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_accounts
+ keys:
+ - key: account_id
+ foreign-key: expense_account_id
+ - table-name: expense_amortization_rules
+ keys:
+ - key: account_id
+ foreign-key: contra_account_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferred_expense_account_id
+ - key: account_id
+ foreign-key: expense_account_id
+ - table-name: global_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: income_accounts
+ keys:
+ - key: account_id
+ foreign-key: income_account_id
+ - table-name: income_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - table-name: opportunity_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - table-name: revaluation
+ keys:
+ - key: account_id
+ foreign-key: variance_account_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: recognition_account_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: sales_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: support_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: transaction_history
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: transaction_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: source_subsidiary_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: transactions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounting_books
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_book_id
+ foreign-key: base_book_id
+ - table-name: expense_plans
+ keys:
+ - key: accounting_book_id
+ foreign-key: transaction_book_id
+ - table-name: item_account_map
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: transaction_book_map
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: departments
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: department_id
+ foreign-key: parent_id
+ - table-name: employee_time
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subscription_plans
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: companies
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: to_subsidiary_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_inventory_relationships
+ keys:
+ - key: subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: partners
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - table-name: role_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: support_incidents
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiaries
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: vendors
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+- table-name: account_period_activity
+ join:
+ - table-name: account_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: parent_id
+ - key: department_id
+ foreign-key: department_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: budget
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: customers
+ keys:
+ - key: account_id
+ foreign-key: default_receivables_account_id
+ - key: accounting_period_id
+ foreign-key: first_sale_period_id
+ - key: accounting_period_id
+ foreign-key: last_sale_period_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: employees
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_accounts
+ keys:
+ - key: account_id
+ foreign-key: expense_account_id
+ - table-name: expense_amortization_rules
+ keys:
+ - key: account_id
+ foreign-key: contra_account_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferred_expense_account_id
+ - key: account_id
+ foreign-key: expense_account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: global_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: income_accounts
+ keys:
+ - key: account_id
+ foreign-key: income_account_id
+ - table-name: income_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - table-name: opportunity_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - table-name: revaluation
+ keys:
+ - key: account_id
+ foreign-key: variance_account_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: recognition_account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: sales_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: support_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: transaction_history
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: transaction_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: source_subsidiary_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: transactions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounting_books
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_book_id
+ foreign-key: base_book_id
+ - table-name: expense_plans
+ keys:
+ - key: accounting_book_id
+ foreign-key: transaction_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: item_account_map
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: transaction_book_map
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: accounting_periods
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: accounting_period_id
+ foreign-key: parent_id
+ - key: accounting_period_id
+ foreign-key: year_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: to_subsidiary_id
+ - table-name: opportunities
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: revenue_plans
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: departments
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: department_id
+ foreign-key: parent_id
+ - table-name: employee_time
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subscription_plans
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: companies
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_inventory_relationships
+ keys:
+ - key: subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: partners
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - table-name: role_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: support_incidents
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiaries
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: vendors
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+- table-name: account_period_activity_pe
+ join:
+ - table-name: account_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: department_id
+ foreign-key: department_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: department_id
+ foreign-key: department_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: parent_id
+ - key: department_id
+ foreign-key: department_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: budget
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: department_id
+ foreign-key: department_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: customers
+ keys:
+ - key: account_id
+ foreign-key: default_receivables_account_id
+ - key: accounting_period_id
+ foreign-key: first_sale_period_id
+ - key: accounting_period_id
+ foreign-key: last_sale_period_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: employees
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: department_id
+ foreign-key: department_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_accounts
+ keys:
+ - key: account_id
+ foreign-key: expense_account_id
+ - table-name: expense_amortization_rules
+ keys:
+ - key: account_id
+ foreign-key: contra_account_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferred_expense_account_id
+ - key: account_id
+ foreign-key: expense_account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: global_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: department_id
+ foreign-key: department_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: income_accounts
+ keys:
+ - key: account_id
+ foreign-key: income_account_id
+ - table-name: income_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - table-name: opportunity_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: department_id
+ foreign-key: department_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: department_id
+ foreign-key: department_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: department_id
+ foreign-key: department_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - table-name: revaluation
+ keys:
+ - key: account_id
+ foreign-key: variance_account_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: recognition_account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: sales_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: support_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: transaction_history
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: transaction_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: source_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: source_subsidiary_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: transactions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounting_books
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_book_id
+ foreign-key: base_book_id
+ - table-name: expense_plans
+ keys:
+ - key: accounting_book_id
+ foreign-key: transaction_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: item_account_map
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: department_id
+ foreign-key: department_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: transaction_book_map
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: accounting_periods
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: accounting_period_id
+ foreign-key: parent_id
+ - key: accounting_period_id
+ foreign-key: year_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: balance_from_subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: to_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: to_subsidiary_id
+ - table-name: opportunities
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: revenue_plans
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: departments
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: department_id
+ foreign-key: parent_id
+ - table-name: employee_time
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: balance_from_subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subscription_plans
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: companies
+ keys:
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_inventory_relationships
+ keys:
+ - key: balance_from_subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_map
+ keys:
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: partners
+ keys:
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - table-name: role_subsidiary_map
+ keys:
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: support_incidents
+ keys:
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiaries
+ keys:
+ - key: balance_from_subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: vendors
+ keys:
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - key: balance_from_subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+- table-name: account_subsidiary_map
+ join:
+ - table-name: account_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: parent_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: budget
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: customers
+ keys:
+ - key: account_id
+ foreign-key: default_receivables_account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: employees
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_accounts
+ keys:
+ - key: account_id
+ foreign-key: expense_account_id
+ - table-name: expense_amortization_rules
+ keys:
+ - key: account_id
+ foreign-key: contra_account_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferred_expense_account_id
+ - key: account_id
+ foreign-key: expense_account_id
+ - table-name: global_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: income_accounts
+ keys:
+ - key: account_id
+ foreign-key: income_account_id
+ - table-name: income_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - table-name: opportunity_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - table-name: revaluation
+ keys:
+ - key: account_id
+ foreign-key: variance_account_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: recognition_account_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: sales_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: support_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: transaction_history
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: transaction_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: source_subsidiary_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: transactions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: companies
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: to_subsidiary_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: employee_time
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_inventory_relationships
+ keys:
+ - key: subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - table-name: item_account_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: partners
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - table-name: role_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subscription_plans
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: support_incidents
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiaries
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: vendors
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+- table-name: accounts
+ join:
+ - table-name: account_activity
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: parent_id
+ foreign-key: account_id
+ - key: department_id
+ foreign-key: department_id
+ - table-name: account_period_activity
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: parent_id
+ foreign-key: account_id
+ - key: department_id
+ foreign-key: department_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: parent_id
+ foreign-key: account_id
+ - key: department_id
+ foreign-key: department_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: parent_id
+ foreign-key: account_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: parent_id
+ foreign-key: account_id
+ - table-name: budget
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: parent_id
+ foreign-key: account_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - table-name: customers
+ keys:
+ - key: deferral_account_id
+ foreign-key: default_receivables_account_id
+ - key: parent_id
+ foreign-key: default_receivables_account_id
+ - table-name: employees
+ keys:
+ - key: deferral_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: parent_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: class_id
+ foreign-key: class_id
+ - key: currency_id
+ foreign-key: def_expense_report_currency_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - table-name: expense_accounts
+ keys:
+ - key: deferral_account_id
+ foreign-key: expense_account_id
+ - key: parent_id
+ foreign-key: expense_account_id
+ - table-name: expense_amortization_rules
+ keys:
+ - key: deferral_account_id
+ foreign-key: contra_account_id
+ - key: parent_id
+ foreign-key: contra_account_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: deferral_account_id
+ foreign-key: deferred_expense_account_id
+ - key: parent_id
+ foreign-key: deferred_expense_account_id
+ - key: deferral_account_id
+ foreign-key: expense_account_id
+ - key: parent_id
+ foreign-key: expense_account_id
+ - table-name: global_account_map
+ keys:
+ - key: deferral_account_id
+ foreign-key: destination_account_id
+ - key: parent_id
+ foreign-key: destination_account_id
+ - key: deferral_account_id
+ foreign-key: source_account_id
+ - key: parent_id
+ foreign-key: source_account_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - table-name: income_accounts
+ keys:
+ - key: deferral_account_id
+ foreign-key: income_account_id
+ - key: parent_id
+ foreign-key: income_account_id
+ - table-name: income_account_map
+ keys:
+ - key: deferral_account_id
+ foreign-key: destination_account_id
+ - key: parent_id
+ foreign-key: destination_account_id
+ - key: deferral_account_id
+ foreign-key: source_account_id
+ - key: parent_id
+ foreign-key: source_account_id
+ - table-name: opportunity_lines
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: parent_id
+ foreign-key: account_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - table-name: posting_account_activity
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: parent_id
+ foreign-key: account_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: parent_id
+ foreign-key: account_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - table-name: revaluation
+ keys:
+ - key: deferral_account_id
+ foreign-key: variance_account_id
+ - key: parent_id
+ foreign-key: variance_account_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: deferral_account_id
+ foreign-key: deferral_account_id
+ - key: parent_id
+ foreign-key: deferral_account_id
+ - key: deferral_account_id
+ foreign-key: recognition_account_id
+ - key: parent_id
+ foreign-key: recognition_account_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: parent_id
+ foreign-key: account_id
+ - table-name: sales_reps
+ keys:
+ - key: deferral_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: parent_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: support_reps
+ keys:
+ - key: deferral_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: parent_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: transaction_history
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: parent_id
+ foreign-key: account_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: parent_id
+ foreign-key: account_id
+ - table-name: transaction_lines
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: parent_id
+ foreign-key: account_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: parent_id
+ foreign-key: account_id
+ - table-name: transactions
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: parent_id
+ foreign-key: account_id
+ - table-name: classes
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: class_id
+ foreign-key: parent_id
+ - table-name: employee_time
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - table-name: item_account_map
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - table-name: subscription_plans
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - table-name: billing_class_rates
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: companies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: currencies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: customer_currencies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: employee_currency_map
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: inbound_shipments
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_billing_rates
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_price_history
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: location_costing_groups
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: opportunities
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: departments
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: department_id
+ foreign-key: parent_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - table-name: billing_accounts
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: location_costing_grp_locations
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: locations
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - key: location_id
+ foreign-key: parent_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: subsidiary_location_map
+ keys:
+ - key: location_id
+ foreign-key: location_id
+- table-name: amortization_sched_lines
+ join:
+ - table-name: account_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: account_period_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: parent_id
+ - table-name: budget
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: customers
+ keys:
+ - key: account_id
+ foreign-key: default_receivables_account_id
+ - key: accounting_period_id
+ foreign-key: first_sale_period_id
+ - key: accounting_period_id
+ foreign-key: last_sale_period_id
+ - table-name: employees
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: expense_accounts
+ keys:
+ - key: account_id
+ foreign-key: expense_account_id
+ - table-name: expense_amortization_rules
+ keys:
+ - key: account_id
+ foreign-key: contra_account_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferred_expense_account_id
+ - key: account_id
+ foreign-key: expense_account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: journal_id
+ foreign-key: journal_id
+ - table-name: global_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - table-name: income_accounts
+ keys:
+ - key: account_id
+ foreign-key: income_account_id
+ - table-name: income_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - table-name: opportunity_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: posting_account_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: revaluation
+ keys:
+ - key: account_id
+ foreign-key: variance_account_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: recognition_account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: journal_id
+ foreign-key: journal_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: journal_id
+ foreign-key: journal_id
+ - table-name: sales_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: support_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: transaction_history
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: transaction_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: transactions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounting_periods
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: accounting_period_id
+ foreign-key: parent_id
+ - key: accounting_period_id
+ foreign-key: year_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: expense_plans
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: journal_id
+ foreign-key: related_revenue_arrangement_id
+ - table-name: opportunities
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: journal_id
+ foreign-key: reversing-transaction-id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: journal_id
+ foreign-key: journal_id
+ - table-name: revenue_plans
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: amortization_schedules
+ keys:
+ - key: schedule_id
+ foreign-key: schedule_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: journal_id
+ foreign-key: purchase_order_id
+ - key: journal_id
+ foreign-key: sales_order_id
+ - table-name: billing_subscriptions
+ keys:
+ - key: journal_id
+ foreign-key: sales_order_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: employee_time
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: notes_system_custom
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: notes_system
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: notes_user
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: system_notes_custom
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: system_notes
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: transaction_address
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: transaction_book_map
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: transaction_links
+ keys:
+ - key: journal_id
+ foreign-key: applied_transaction_id
+ - key: journal_id
+ foreign-key: original_transaction_id
+ - table-name: transaction_shipping_groups
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+- table-name: budget
+ join:
+ - table-name: account_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: parent_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: customers
+ keys:
+ - key: account_id
+ foreign-key: default_receivables_account_id
+ - key: accounting_period_id
+ foreign-key: first_sale_period_id
+ - key: accounting_period_id
+ foreign-key: last_sale_period_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: customer_id
+ foreign-key: top_level_parent_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: employees
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_accounts
+ keys:
+ - key: account_id
+ foreign-key: expense_account_id
+ - table-name: expense_amortization_rules
+ keys:
+ - key: account_id
+ foreign-key: contra_account_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferred_expense_account_id
+ - key: account_id
+ foreign-key: expense_account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: global_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: income_accounts
+ keys:
+ - key: account_id
+ foreign-key: income_account_id
+ - table-name: income_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - table-name: opportunity_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: item_id
+ foreign-key: item_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: item_id
+ foreign-key: item_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: item_id
+ foreign-key: item_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - table-name: revaluation
+ keys:
+ - key: account_id
+ foreign-key: variance_account_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: recognition_account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: sales_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: support_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: transaction_history
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: transaction_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: source_subsidiary_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: item_id
+ foreign-key: item_id
+ - table-name: transactions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounting_books
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_book_id
+ foreign-key: base_book_id
+ - table-name: expense_plans
+ keys:
+ - key: accounting_book_id
+ foreign-key: transaction_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: item_account_map
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: transaction_book_map
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: accounting_periods
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: accounting_period_id
+ foreign-key: parent_id
+ - key: accounting_period_id
+ foreign-key: year_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: to_subsidiary_id
+ - table-name: opportunities
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: revenue_plans
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: budget_category
+ keys:
+ - key: category_id
+ foreign-key: category_id
+ - table-name: classes
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: class_id
+ foreign-key: parent_id
+ - table-name: employee_time
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subscription_plans
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: billing_rate_cards
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: customer_currencies
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: departments
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: department_id
+ foreign-key: parent_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: bill_of_materials
+ keys:
+ - key: item_id
+ foreign-key: original_assembly_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: item_id
+ foreign-key: service_item_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: bom_revision_components
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: campaignitem
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_collection_item_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_price_history
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: items
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_system_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_system
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_user
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: location_id
+ foreign-key: location_id
+ - table-name: purchase_charge_rules
+ keys:
+ - key: item_id
+ foreign-key: mark_up_item_id
+ - table-name: standard_cost_components
+ keys:
+ - key: item_id
+ foreign-key: component_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: item_id
+ foreign-key: plan_item_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: support_incidents
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: system_notes_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: system_notes
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: billing_accounts
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: location_costing_grp_locations
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: locations
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - key: location_id
+ foreign-key: parent_id
+ - table-name: subsidiary_location_map
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: companies
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_inventory_relationships
+ keys:
+ - key: subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - table-name: partners
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - table-name: role_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiaries
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: vendors
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+- table-name: customers
+ join:
+ - table-name: account_activity
+ keys:
+ - key: default_receivables_account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity
+ keys:
+ - key: default_receivables_account_id
+ foreign-key: account_id
+ - key: first_sale_period_id
+ foreign-key: accounting_period_id
+ - key: last_sale_period_id
+ foreign-key: accounting_period_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: default_receivables_account_id
+ foreign-key: account_id
+ - key: first_sale_period_id
+ foreign-key: accounting_period_id
+ - key: last_sale_period_id
+ foreign-key: accounting_period_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: default_receivables_account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: accounts
+ keys:
+ - key: default_receivables_account_id
+ foreign-key: deferral_account_id
+ - key: default_receivables_account_id
+ foreign-key: parent_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: default_receivables_account_id
+ foreign-key: account_id
+ - key: first_sale_period_id
+ foreign-key: accounting_period_id
+ - key: last_sale_period_id
+ foreign-key: accounting_period_id
+ - table-name: budget
+ keys:
+ - key: default_receivables_account_id
+ foreign-key: account_id
+ - key: first_sale_period_id
+ foreign-key: accounting_period_id
+ - key: last_sale_period_id
+ foreign-key: accounting_period_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: top_level_parent_id
+ foreign-key: customer_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: employees
+ keys:
+ - key: default_receivables_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: project_manager_id
+ foreign-key: employee_id
+ - key: project_manager_id
+ foreign-key: approver_id
+ - key: project_manager_id
+ foreign-key: supervisor_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_accounts
+ keys:
+ - key: default_receivables_account_id
+ foreign-key: expense_account_id
+ - table-name: expense_amortization_rules
+ keys:
+ - key: default_receivables_account_id
+ foreign-key: contra_account_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: default_receivables_account_id
+ foreign-key: deferred_expense_account_id
+ - key: default_receivables_account_id
+ foreign-key: expense_account_id
+ - key: first_sale_period_id
+ foreign-key: accounting_period_id
+ - key: last_sale_period_id
+ foreign-key: accounting_period_id
+ - table-name: global_account_map
+ keys:
+ - key: default_receivables_account_id
+ foreign-key: destination_account_id
+ - key: default_receivables_account_id
+ foreign-key: source_account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: income_accounts
+ keys:
+ - key: default_receivables_account_id
+ foreign-key: income_account_id
+ - table-name: income_account_map
+ keys:
+ - key: default_receivables_account_id
+ foreign-key: destination_account_id
+ - key: default_receivables_account_id
+ foreign-key: source_account_id
+ - table-name: opportunity_lines
+ keys:
+ - key: default_receivables_account_id
+ foreign-key: account_id
+ - key: converted_to_id
+ foreign-key: company_id
+ - key: converted_to_contact_id
+ foreign-key: company_id
+ - key: sales_rep_id
+ foreign-key: company_id
+ - key: parent_id
+ foreign-key: company_id
+ - key: converted_to_id
+ foreign-key: related_company_id
+ - key: converted_to_contact_id
+ foreign-key: related_company_id
+ - key: sales_rep_id
+ foreign-key: related_company_id
+ - key: parent_id
+ foreign-key: related_company_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - key: tax_item_id
+ foreign-key: tax_item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity
+ keys:
+ - key: default_receivables_account_id
+ foreign-key: account_id
+ - key: first_sale_period_id
+ foreign-key: accounting_period_id
+ - key: last_sale_period_id
+ foreign-key: accounting_period_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - key: partner_id
+ foreign-key: partner_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: default_receivables_account_id
+ foreign-key: account_id
+ - key: first_sale_period_id
+ foreign-key: accounting_period_id
+ - key: last_sale_period_id
+ foreign-key: accounting_period_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - key: partner_id
+ foreign-key: partner_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - table-name: revaluation
+ keys:
+ - key: default_receivables_account_id
+ foreign-key: variance_account_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: default_receivables_account_id
+ foreign-key: deferral_account_id
+ - key: default_receivables_account_id
+ foreign-key: recognition_account_id
+ - key: first_sale_period_id
+ foreign-key: accounting_period_id
+ - key: last_sale_period_id
+ foreign-key: accounting_period_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: default_receivables_account_id
+ foreign-key: account_id
+ - key: first_sale_period_id
+ foreign-key: accounting_period_id
+ - key: last_sale_period_id
+ foreign-key: accounting_period_id
+ - table-name: sales_reps
+ keys:
+ - key: default_receivables_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: support_reps
+ keys:
+ - key: default_receivables_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: transaction_history
+ keys:
+ - key: default_receivables_account_id
+ foreign-key: account_id
+ - key: converted_to_id
+ foreign-key: user_id
+ - key: converted_to_contact_id
+ foreign-key: user_id
+ - key: sales_rep_id
+ foreign-key: user_id
+ - key: parent_id
+ foreign-key: user_id
+ - key: converted_to_id
+ foreign-key: entity_id
+ - key: converted_to_contact_id
+ foreign-key: entity_id
+ - key: sales_rep_id
+ foreign-key: entity_id
+ - key: parent_id
+ foreign-key: entity_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: default_receivables_account_id
+ foreign-key: account_id
+ - key: rev_rec_forecast_template
+ foreign-key: schedule_id
+ - table-name: transaction_lines
+ keys:
+ - key: default_receivables_account_id
+ foreign-key: account_id
+ - key: billing_schedule_id
+ foreign-key: billing_schedule_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: source_subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: source_subsidiary_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: default_receivables_account_id
+ foreign-key: account_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - table-name: transactions
+ keys:
+ - key: default_receivables_account_id
+ foreign-key: account_id
+ - table-name: accounting_periods
+ keys:
+ - key: first_sale_period_id
+ foreign-key: accounting_period_id
+ - key: last_sale_period_id
+ foreign-key: accounting_period_id
+ - key: first_sale_period_id
+ foreign-key: parent_id
+ - key: last_sale_period_id
+ foreign-key: parent_id
+ - key: first_sale_period_id
+ foreign-key: year_id
+ - key: last_sale_period_id
+ foreign-key: year_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: first_sale_period_id
+ foreign-key: accounting_period_id
+ - key: last_sale_period_id
+ foreign-key: accounting_period_id
+ - key: subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: to_subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: to_subsidiary_id
+ - table-name: expense_plans
+ keys:
+ - key: first_sale_period_id
+ foreign-key: accounting_period_id
+ - key: last_sale_period_id
+ foreign-key: accounting_period_id
+ - table-name: opportunities
+ keys:
+ - key: first_sale_period_id
+ foreign-key: accounting_period_id
+ - key: last_sale_period_id
+ foreign-key: accounting_period_id
+ - key: lead_source_id
+ foreign-key: lead_source_id
+ - key: converted_to_id
+ foreign-key: sales_rep_id
+ - key: converted_to_contact_id
+ foreign-key: sales_rep_id
+ - key: sales_rep_id
+ foreign-key: sales_rep_id
+ - key: parent_id
+ foreign-key: sales_rep_id
+ - key: partner_id
+ foreign-key: partner_id
+ - key: payment_terms_id
+ foreign-key: payment_terms_id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: first_sale_period_id
+ foreign-key: accounting_period_id
+ - key: last_sale_period_id
+ foreign-key: accounting_period_id
+ - table-name: revenue_plans
+ keys:
+ - key: first_sale_period_id
+ foreign-key: accounting_period_id
+ - key: last_sale_period_id
+ foreign-key: accounting_period_id
+ - table-name: billing_accounts
+ keys:
+ - key: billing_schedule_id
+ foreign-key: billing_schedule_id
+ - table-name: billing_schedule_descriptions
+ keys:
+ - key: billing_schedule_id
+ foreign-key: billing_schedule_id
+ - table-name: charges
+ keys:
+ - key: billing_schedule_id
+ foreign-key: billing_schedule_id
+ - table-name: campaign_categories
+ keys:
+ - key: lead_source_id
+ foreign-key: default_campaign_id
+ - table-name: campaignevent
+ keys:
+ - key: lead_source_id
+ foreign-key: campaign_id
+ - table-name: campaignitem
+ keys:
+ - key: lead_source_id
+ foreign-key: campaign_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - table-name: campaigns
+ keys:
+ - key: lead_source_id
+ foreign-key: campaign_id
+ - key: converted_to_id
+ foreign-key: organizer_id
+ - key: converted_to_contact_id
+ foreign-key: organizer_id
+ - key: sales_rep_id
+ foreign-key: organizer_id
+ - key: parent_id
+ foreign-key: organizer_id
+ - table-name: campaignresponse
+ keys:
+ - key: primary_contact_id
+ foreign-key: contact_id
+ - key: alternate_contact_id
+ foreign-key: contact_id
+ - key: converted_to_id
+ foreign-key: entity_id
+ - key: converted_to_contact_id
+ foreign-key: entity_id
+ - key: sales_rep_id
+ foreign-key: entity_id
+ - key: parent_id
+ foreign-key: entity_id
+ - table-name: entity_role_map
+ keys:
+ - key: primary_contact_id
+ foreign-key: contact_id
+ - key: alternate_contact_id
+ foreign-key: contact_id
+ - key: converted_to_id
+ foreign-key: entity_id
+ - key: converted_to_contact_id
+ foreign-key: entity_id
+ - key: sales_rep_id
+ foreign-key: entity_id
+ - key: parent_id
+ foreign-key: entity_id
+ - table-name: support_incidents
+ keys:
+ - key: primary_contact_id
+ foreign-key: contact_id
+ - key: alternate_contact_id
+ foreign-key: contact_id
+ - key: converted_to_id
+ foreign-key: owner_id
+ - key: converted_to_contact_id
+ foreign-key: owner_id
+ - key: sales_rep_id
+ foreign-key: owner_id
+ - key: parent_id
+ foreign-key: owner_id
+ - key: converted_to_id
+ foreign-key: assigned_id
+ - key: converted_to_contact_id
+ foreign-key: assigned_id
+ - key: sales_rep_id
+ foreign-key: assigned_id
+ - key: parent_id
+ foreign-key: assigned_id
+ - key: converted_to_id
+ foreign-key: company_id
+ - key: converted_to_contact_id
+ foreign-key: company_id
+ - key: sales_rep_id
+ foreign-key: company_id
+ - key: parent_id
+ foreign-key: company_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: sales_territory_id
+ foreign-key: territory_id
+ - table-name: billing_rate_cards
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: top_level_parent_id
+ foreign-key: customer_id
+ - table-name: customer_currencies
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: top_level_parent_id
+ foreign-key: customer_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: top_level_parent_id
+ foreign-key: customer_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: employee_time
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: top_level_parent_id
+ foreign-key: customer_id
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: customer_types
+ keys:
+ - key: customer_type_id
+ foreign-key: customer_type_id
+ - table-name: billing_rate_cards_versions
+ keys:
+ - key: project_manager_id
+ foreign-key: last_modified_by_id
+ - table-name: employee_currency_map
+ keys:
+ - key: project_manager_id
+ foreign-key: employee_id
+ - table-name: project_revenue_rules
+ keys:
+ - key: project_manager_id
+ foreign-key: created_by
+ - key: project_manager_id
+ foreign-key: last_modified_by
+ - table-name: project_templates
+ keys:
+ - key: project_manager_id
+ foreign-key: project_manager_id
+ - table-name: revenue_plan_versions
+ keys:
+ - key: project_manager_id
+ foreign-key: created_by_id
+ - table-name: subscription_change_orders
+ keys:
+ - key: project_manager_id
+ foreign-key: requester_id
+ - table-name: unlocked_time_periods
+ keys:
+ - key: project_manager_id
+ foreign-key: last_modified_by_id
+ - key: project_manager_id
+ foreign-key: employee_id
+ - table-name: vendors
+ keys:
+ - key: project_manager_id
+ foreign-key: time_approver_id
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: campaign_subscription_statuses
+ keys:
+ - key: converted_to_id
+ foreign-key: entity_id
+ - key: converted_to_contact_id
+ foreign-key: entity_id
+ - key: sales_rep_id
+ foreign-key: entity_id
+ - key: parent_id
+ foreign-key: entity_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: converted_to_id
+ foreign-key: author
+ - key: converted_to_contact_id
+ foreign-key: author
+ - key: sales_rep_id
+ foreign-key: author
+ - key: parent_id
+ foreign-key: author
+ - table-name: caseescalationhistory
+ keys:
+ - key: converted_to_id
+ foreign-key: escalator_id
+ - key: converted_to_contact_id
+ foreign-key: escalator_id
+ - key: sales_rep_id
+ foreign-key: escalator_id
+ - key: parent_id
+ foreign-key: escalator_id
+ - key: converted_to_id
+ foreign-key: entity_id
+ - key: converted_to_contact_id
+ foreign-key: entity_id
+ - key: sales_rep_id
+ foreign-key: entity_id
+ - key: parent_id
+ foreign-key: entity_id
+ - table-name: contact_types
+ keys:
+ - key: converted_to_id
+ foreign-key: contact_id
+ - key: converted_to_contact_id
+ foreign-key: contact_id
+ - key: sales_rep_id
+ foreign-key: contact_id
+ - key: parent_id
+ foreign-key: contact_id
+ - key: converted_to_id
+ foreign-key: owner_id
+ - key: converted_to_contact_id
+ foreign-key: owner_id
+ - key: sales_rep_id
+ foreign-key: owner_id
+ - key: parent_id
+ foreign-key: owner_id
+ - table-name: currency_exchange_rates
+ keys:
+ - key: converted_to_id
+ foreign-key: entity_id
+ - key: converted_to_contact_id
+ foreign-key: entity_id
+ - key: sales_rep_id
+ foreign-key: entity_id
+ - key: parent_id
+ foreign-key: entity_id
+ - table-name: currencyrates
+ keys:
+ - key: converted_to_id
+ foreign-key: entity_id
+ - key: converted_to_contact_id
+ foreign-key: entity_id
+ - key: sales_rep_id
+ foreign-key: entity_id
+ - key: parent_id
+ foreign-key: entity_id
+ - table-name: entityterritorymap
+ keys:
+ - key: converted_to_id
+ foreign-key: entity_id
+ - key: converted_to_contact_id
+ foreign-key: entity_id
+ - key: sales_rep_id
+ foreign-key: entity_id
+ - key: parent_id
+ foreign-key: entity_id
+ - key: sales_territory_id
+ foreign-key: territory_id
+ - table-name: messagerecipient
+ keys:
+ - key: converted_to_id
+ foreign-key: entity_id
+ - key: converted_to_contact_id
+ foreign-key: entity_id
+ - key: sales_rep_id
+ foreign-key: entity_id
+ - key: parent_id
+ foreign-key: entity_id
+ - table-name: notes_system_custom
+ keys:
+ - key: converted_to_id
+ foreign-key: company_id
+ - key: converted_to_contact_id
+ foreign-key: company_id
+ - key: sales_rep_id
+ foreign-key: company_id
+ - key: parent_id
+ foreign-key: company_id
+ - key: converted_to_id
+ foreign-key: author_id
+ - key: converted_to_contact_id
+ foreign-key: author_id
+ - key: sales_rep_id
+ foreign-key: author_id
+ - key: parent_id
+ foreign-key: author_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - table-name: notes_system
+ keys:
+ - key: converted_to_id
+ foreign-key: company_id
+ - key: converted_to_contact_id
+ foreign-key: company_id
+ - key: sales_rep_id
+ foreign-key: company_id
+ - key: parent_id
+ foreign-key: company_id
+ - key: converted_to_id
+ foreign-key: author_id
+ - key: converted_to_contact_id
+ foreign-key: author_id
+ - key: sales_rep_id
+ foreign-key: author_id
+ - key: parent_id
+ foreign-key: author_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - table-name: notes_user
+ keys:
+ - key: converted_to_id
+ foreign-key: company_id
+ - key: converted_to_contact_id
+ foreign-key: company_id
+ - key: sales_rep_id
+ foreign-key: company_id
+ - key: parent_id
+ foreign-key: company_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - table-name: resource_group_entity_map
+ keys:
+ - key: converted_to_id
+ foreign-key: entity_id
+ - key: converted_to_contact_id
+ foreign-key: entity_id
+ - key: sales_rep_id
+ foreign-key: entity_id
+ - key: parent_id
+ foreign-key: entity_id
+ - table-name: resource_groups
+ keys:
+ - key: converted_to_id
+ foreign-key: resource_group_id
+ - key: converted_to_contact_id
+ foreign-key: resource_group_id
+ - key: sales_rep_id
+ foreign-key: resource_group_id
+ - key: parent_id
+ foreign-key: resource_group_id
+ - table-name: supportcasehistory
+ keys:
+ - key: converted_to_id
+ foreign-key: employee_id
+ - key: converted_to_contact_id
+ foreign-key: employee_id
+ - key: sales_rep_id
+ foreign-key: employee_id
+ - key: parent_id
+ foreign-key: employee_id
+ - table-name: system_notes_custom
+ keys:
+ - key: converted_to_id
+ foreign-key: company_id
+ - key: converted_to_contact_id
+ foreign-key: company_id
+ - key: sales_rep_id
+ foreign-key: company_id
+ - key: parent_id
+ foreign-key: company_id
+ - key: converted_to_id
+ foreign-key: author_id
+ - key: converted_to_contact_id
+ foreign-key: author_id
+ - key: sales_rep_id
+ foreign-key: author_id
+ - key: parent_id
+ foreign-key: author_id
+ - key: converted_to_id
+ foreign-key: customfield_created_by_id
+ - key: converted_to_contact_id
+ foreign-key: customfield_created_by_id
+ - key: sales_rep_id
+ foreign-key: customfield_created_by_id
+ - key: parent_id
+ foreign-key: customfield_created_by_id
+ - key: converted_to_id
+ foreign-key: customfield_modified_by_id
+ - key: converted_to_contact_id
+ foreign-key: customfield_modified_by_id
+ - key: sales_rep_id
+ foreign-key: customfield_modified_by_id
+ - key: parent_id
+ foreign-key: customfield_modified_by_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - table-name: system_notes
+ keys:
+ - key: converted_to_id
+ foreign-key: company_id
+ - key: converted_to_contact_id
+ foreign-key: company_id
+ - key: sales_rep_id
+ foreign-key: company_id
+ - key: parent_id
+ foreign-key: company_id
+ - key: converted_to_id
+ foreign-key: author_id
+ - key: converted_to_contact_id
+ foreign-key: author_id
+ - key: sales_rep_id
+ foreign-key: author_id
+ - key: parent_id
+ foreign-key: author_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - table-name: transaction_address
+ keys:
+ - key: converted_to_id
+ foreign-key: created_by_id
+ - key: converted_to_contact_id
+ foreign-key: created_by_id
+ - key: sales_rep_id
+ foreign-key: created_by_id
+ - key: parent_id
+ foreign-key: created_by_id
+ - key: converted_to_id
+ foreign-key: last_modified_by_id
+ - key: converted_to_contact_id
+ foreign-key: last_modified_by_id
+ - key: sales_rep_id
+ foreign-key: last_modified_by_id
+ - key: parent_id
+ foreign-key: last_modified_by_id
+ - table-name: bill_of_materials
+ keys:
+ - key: tax_item_id
+ foreign-key: original_assembly_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: tax_item_id
+ foreign-key: service_item_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: tax_item_id
+ foreign-key: item_id
+ - table-name: bom_revision_components
+ keys:
+ - key: tax_item_id
+ foreign-key: item_id
+ - table-name: item_collection_item_map
+ keys:
+ - key: tax_item_id
+ foreign-key: item_id
+ - table-name: item_price_history
+ keys:
+ - key: tax_item_id
+ foreign-key: item_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: tax_item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_map
+ keys:
+ - key: tax_item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: tax_item_id
+ foreign-key: item_id
+ - table-name: items
+ keys:
+ - key: tax_item_id
+ foreign-key: item_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: tax_item_id
+ foreign-key: item_id
+ - table-name: purchase_charge_rules
+ keys:
+ - key: tax_item_id
+ foreign-key: mark_up_item_id
+ - table-name: standard_cost_components
+ keys:
+ - key: tax_item_id
+ foreign-key: component_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: tax_item_id
+ foreign-key: plan_item_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: tax_item_id
+ foreign-key: item_id
+ - table-name: partners
+ keys:
+ - key: partner_id
+ foreign-key: partner_id
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary
+ - table-name: payment_terms
+ keys:
+ - key: payment_terms_id
+ foreign-key: payment_terms_id
+ - table-name: project_expense_types
+ keys:
+ - key: project_expense_type_id
+ foreign-key: project_expense_type_id
+ - table-name: project_time_approval_types
+ keys:
+ - key: time_approval_type_id
+ foreign-key: project_time_approval_type_id
+ - table-name: revrecschedules
+ keys:
+ - key: rev_rec_forecast_template
+ foreign-key: schedule_id
+ - table-name: companies
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_inventory_relationships
+ keys:
+ - key: subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - table-name: item_account_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: role_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subscription_plans
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiaries
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: territory
+ keys:
+ - key: sales_territory_id
+ foreign-key: territory_id
+- table-name: employees
+ join:
+ - table-name: account_activity
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: accounts
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: deferral_account_id
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: parent_id
+ - key: class_id
+ foreign-key: class_id
+ - key: def_expense_report_currency_id
+ foreign-key: currency_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: budget
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: customers
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: default_receivables_account_id
+ - key: employee_id
+ foreign-key: project_manager_id
+ - key: approver_id
+ foreign-key: project_manager_id
+ - key: supervisor_id
+ foreign-key: project_manager_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: expense_accounts
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: expense_account_id
+ - table-name: expense_amortization_rules
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: contra_account_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: deferred_expense_account_id
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: expense_account_id
+ - table-name: global_account_map
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: destination_account_id
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: source_account_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: income_accounts
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: income_account_id
+ - table-name: income_account_map
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: destination_account_id
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: source_account_id
+ - table-name: opportunity_lines
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - table-name: revaluation
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: variance_account_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: deferral_account_id
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: recognition_account_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: sales_reps
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: def_expense_report_currency_id
+ foreign-key: currency_id
+ - table-name: support_reps
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: def_expense_report_currency_id
+ foreign-key: currency_id
+ - table-name: transaction_history
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: transaction_lines
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: source_subsidiary_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: transactions
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: billing_class_rates
+ keys:
+ - key: billing_class_id
+ foreign-key: billing_class_id
+ - key: def_expense_report_currency_id
+ foreign-key: currency_id
+ - table-name: billing_rate_card_prices
+ keys:
+ - key: billing_class_id
+ foreign-key: billing_class_id
+ - table-name: employee_time
+ keys:
+ - key: billing_class_id
+ foreign-key: billing_class_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_billing_rates
+ keys:
+ - key: billing_class_id
+ foreign-key: billing_class_id
+ - key: def_expense_report_currency_id
+ foreign-key: currency_id
+ - table-name: classes
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: class_id
+ foreign-key: parent_id
+ - table-name: item_account_map
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subscription_plans
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: companies
+ keys:
+ - key: def_expense_report_currency_id
+ foreign-key: currency_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: currencies
+ keys:
+ - key: def_expense_report_currency_id
+ foreign-key: currency_id
+ - table-name: customer_currencies
+ keys:
+ - key: def_expense_report_currency_id
+ foreign-key: currency_id
+ - table-name: employee_currency_map
+ keys:
+ - key: def_expense_report_currency_id
+ foreign-key: currency_id
+ - key: employee_id
+ foreign-key: employee_id
+ - key: approver_id
+ foreign-key: employee_id
+ - key: supervisor_id
+ foreign-key: employee_id
+ - table-name: inbound_shipments
+ keys:
+ - key: def_expense_report_currency_id
+ foreign-key: currency_id
+ - table-name: item_price_history
+ keys:
+ - key: def_expense_report_currency_id
+ foreign-key: currency_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: def_expense_report_currency_id
+ foreign-key: currency_id
+ - table-name: location_costing_groups
+ keys:
+ - key: def_expense_report_currency_id
+ foreign-key: currency_id
+ - table-name: opportunities
+ keys:
+ - key: def_expense_report_currency_id
+ foreign-key: currency_id
+ - table-name: departments
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: department_id
+ foreign-key: parent_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: employee_types
+ keys:
+ - key: employee_type_id
+ foreign-key: employee_type_id
+ - table-name: billing_rate_cards_versions
+ keys:
+ - key: employee_id
+ foreign-key: last_modified_by_id
+ - key: approver_id
+ foreign-key: last_modified_by_id
+ - key: supervisor_id
+ foreign-key: last_modified_by_id
+ - table-name: project_revenue_rules
+ keys:
+ - key: employee_id
+ foreign-key: created_by
+ - key: approver_id
+ foreign-key: created_by
+ - key: supervisor_id
+ foreign-key: created_by
+ - key: employee_id
+ foreign-key: last_modified_by
+ - key: approver_id
+ foreign-key: last_modified_by
+ - key: supervisor_id
+ foreign-key: last_modified_by
+ - table-name: project_templates
+ keys:
+ - key: employee_id
+ foreign-key: project_manager_id
+ - key: approver_id
+ foreign-key: project_manager_id
+ - key: supervisor_id
+ foreign-key: project_manager_id
+ - table-name: revenue_plan_versions
+ keys:
+ - key: employee_id
+ foreign-key: created_by_id
+ - key: approver_id
+ foreign-key: created_by_id
+ - key: supervisor_id
+ foreign-key: created_by_id
+ - table-name: subscription_change_orders
+ keys:
+ - key: employee_id
+ foreign-key: requester_id
+ - key: approver_id
+ foreign-key: requester_id
+ - key: supervisor_id
+ foreign-key: requester_id
+ - table-name: unlocked_time_periods
+ keys:
+ - key: employee_id
+ foreign-key: last_modified_by_id
+ - key: approver_id
+ foreign-key: last_modified_by_id
+ - key: supervisor_id
+ foreign-key: last_modified_by_id
+ - key: employee_id
+ foreign-key: employee_id
+ - key: approver_id
+ foreign-key: employee_id
+ - key: supervisor_id
+ foreign-key: employee_id
+ - table-name: vendors
+ keys:
+ - key: employee_id
+ foreign-key: time_approver_id
+ - key: approver_id
+ foreign-key: time_approver_id
+ - key: supervisor_id
+ foreign-key: time_approver_id
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: job_resource_roles
+ keys:
+ - key: default_job_resource_role_id
+ foreign-key: job_resource_role_id
+ - table-name: billing_accounts
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: location_costing_grp_locations
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: locations
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - key: location_id
+ foreign-key: parent_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: subsidiary_location_map
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: to_subsidiary_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_inventory_relationships
+ keys:
+ - key: subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: partners
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - table-name: role_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: support_incidents
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiaries
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: work_calendar_holidays
+ keys:
+ - key: work_calendar_id
+ foreign-key: work_calendar_id
+ - table-name: work_calendars
+ keys:
+ - key: work_calendar_id
+ foreign-key: work_calendar_id
+- table-name: expense_accounts
+ join:
+ - table-name: account_activity
+ keys:
+ - key: expense_account_id
+ foreign-key: account_id
+ - table-name: account_period_activity
+ keys:
+ - key: expense_account_id
+ foreign-key: account_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: expense_account_id
+ foreign-key: account_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: expense_account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: expense_account_id
+ foreign-key: deferral_account_id
+ - key: expense_account_id
+ foreign-key: parent_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: expense_account_id
+ foreign-key: account_id
+ - table-name: budget
+ keys:
+ - key: expense_account_id
+ foreign-key: account_id
+ - table-name: customers
+ keys:
+ - key: expense_account_id
+ foreign-key: default_receivables_account_id
+ - table-name: employees
+ keys:
+ - key: expense_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: expense_amortization_rules
+ keys:
+ - key: expense_account_id
+ foreign-key: contra_account_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: expense_account_id
+ foreign-key: deferred_expense_account_id
+ - key: expense_account_id
+ foreign-key: expense_account_id
+ - table-name: global_account_map
+ keys:
+ - key: expense_account_id
+ foreign-key: destination_account_id
+ - key: expense_account_id
+ foreign-key: source_account_id
+ - table-name: income_accounts
+ keys:
+ - key: expense_account_id
+ foreign-key: income_account_id
+ - table-name: income_account_map
+ keys:
+ - key: expense_account_id
+ foreign-key: destination_account_id
+ - key: expense_account_id
+ foreign-key: source_account_id
+ - table-name: opportunity_lines
+ keys:
+ - key: expense_account_id
+ foreign-key: account_id
+ - table-name: posting_account_activity
+ keys:
+ - key: expense_account_id
+ foreign-key: account_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: expense_account_id
+ foreign-key: account_id
+ - table-name: revaluation
+ keys:
+ - key: expense_account_id
+ foreign-key: variance_account_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: expense_account_id
+ foreign-key: deferral_account_id
+ - key: expense_account_id
+ foreign-key: recognition_account_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: expense_account_id
+ foreign-key: account_id
+ - table-name: sales_reps
+ keys:
+ - key: expense_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: support_reps
+ keys:
+ - key: expense_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: transaction_history
+ keys:
+ - key: expense_account_id
+ foreign-key: account_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: expense_account_id
+ foreign-key: account_id
+ - table-name: transaction_lines
+ keys:
+ - key: expense_account_id
+ foreign-key: account_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: expense_account_id
+ foreign-key: account_id
+ - table-name: transactions
+ keys:
+ - key: expense_account_id
+ foreign-key: account_id
+- table-name: expense_amortization_rules
+ join:
+ - table-name: account_activity
+ keys:
+ - key: contra_account_id
+ foreign-key: account_id
+ - table-name: account_period_activity
+ keys:
+ - key: contra_account_id
+ foreign-key: account_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: contra_account_id
+ foreign-key: account_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: contra_account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: contra_account_id
+ foreign-key: deferral_account_id
+ - key: contra_account_id
+ foreign-key: parent_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: contra_account_id
+ foreign-key: account_id
+ - table-name: budget
+ keys:
+ - key: contra_account_id
+ foreign-key: account_id
+ - table-name: customers
+ keys:
+ - key: contra_account_id
+ foreign-key: default_receivables_account_id
+ - table-name: employees
+ keys:
+ - key: contra_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: expense_accounts
+ keys:
+ - key: contra_account_id
+ foreign-key: expense_account_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: contra_account_id
+ foreign-key: deferred_expense_account_id
+ - key: contra_account_id
+ foreign-key: expense_account_id
+ - table-name: global_account_map
+ keys:
+ - key: contra_account_id
+ foreign-key: destination_account_id
+ - key: contra_account_id
+ foreign-key: source_account_id
+ - table-name: income_accounts
+ keys:
+ - key: contra_account_id
+ foreign-key: income_account_id
+ - table-name: income_account_map
+ keys:
+ - key: contra_account_id
+ foreign-key: destination_account_id
+ - key: contra_account_id
+ foreign-key: source_account_id
+ - table-name: opportunity_lines
+ keys:
+ - key: contra_account_id
+ foreign-key: account_id
+ - table-name: posting_account_activity
+ keys:
+ - key: contra_account_id
+ foreign-key: account_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: contra_account_id
+ foreign-key: account_id
+ - table-name: revaluation
+ keys:
+ - key: contra_account_id
+ foreign-key: variance_account_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: contra_account_id
+ foreign-key: deferral_account_id
+ - key: contra_account_id
+ foreign-key: recognition_account_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: contra_account_id
+ foreign-key: account_id
+ - table-name: sales_reps
+ keys:
+ - key: contra_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: support_reps
+ keys:
+ - key: contra_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: transaction_history
+ keys:
+ - key: contra_account_id
+ foreign-key: account_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: contra_account_id
+ foreign-key: account_id
+ - table-name: transaction_lines
+ keys:
+ - key: contra_account_id
+ foreign-key: account_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: contra_account_id
+ foreign-key: account_id
+ - table-name: transactions
+ keys:
+ - key: contra_account_id
+ foreign-key: account_id
+ - table-name: expense_plans
+ keys:
+ - key: expense_rule_id
+ foreign-key: expense_rule_id
+- table-name: expense_plan_lines
+ join:
+ - table-name: account_activity
+ keys:
+ - key: deferred_expense_account_id
+ foreign-key: account_id
+ - key: expense_account_id
+ foreign-key: account_id
+ - table-name: account_period_activity
+ keys:
+ - key: deferred_expense_account_id
+ foreign-key: account_id
+ - key: expense_account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: deferred_expense_account_id
+ foreign-key: account_id
+ - key: expense_account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: deferred_expense_account_id
+ foreign-key: account_id
+ - key: expense_account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: deferred_expense_account_id
+ foreign-key: deferral_account_id
+ - key: expense_account_id
+ foreign-key: deferral_account_id
+ - key: deferred_expense_account_id
+ foreign-key: parent_id
+ - key: expense_account_id
+ foreign-key: parent_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: deferred_expense_account_id
+ foreign-key: account_id
+ - key: expense_account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: journal_id
+ foreign-key: journal_id
+ - table-name: budget
+ keys:
+ - key: deferred_expense_account_id
+ foreign-key: account_id
+ - key: expense_account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: customers
+ keys:
+ - key: deferred_expense_account_id
+ foreign-key: default_receivables_account_id
+ - key: expense_account_id
+ foreign-key: default_receivables_account_id
+ - key: accounting_period_id
+ foreign-key: first_sale_period_id
+ - key: accounting_period_id
+ foreign-key: last_sale_period_id
+ - table-name: employees
+ keys:
+ - key: deferred_expense_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: expense_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: expense_accounts
+ keys:
+ - key: deferred_expense_account_id
+ foreign-key: expense_account_id
+ - key: expense_account_id
+ foreign-key: expense_account_id
+ - table-name: expense_amortization_rules
+ keys:
+ - key: deferred_expense_account_id
+ foreign-key: contra_account_id
+ - key: expense_account_id
+ foreign-key: contra_account_id
+ - table-name: global_account_map
+ keys:
+ - key: deferred_expense_account_id
+ foreign-key: destination_account_id
+ - key: expense_account_id
+ foreign-key: destination_account_id
+ - key: deferred_expense_account_id
+ foreign-key: source_account_id
+ - key: expense_account_id
+ foreign-key: source_account_id
+ - table-name: income_accounts
+ keys:
+ - key: deferred_expense_account_id
+ foreign-key: income_account_id
+ - key: expense_account_id
+ foreign-key: income_account_id
+ - table-name: income_account_map
+ keys:
+ - key: deferred_expense_account_id
+ foreign-key: destination_account_id
+ - key: expense_account_id
+ foreign-key: destination_account_id
+ - key: deferred_expense_account_id
+ foreign-key: source_account_id
+ - key: expense_account_id
+ foreign-key: source_account_id
+ - table-name: opportunity_lines
+ keys:
+ - key: deferred_expense_account_id
+ foreign-key: account_id
+ - key: expense_account_id
+ foreign-key: account_id
+ - table-name: posting_account_activity
+ keys:
+ - key: deferred_expense_account_id
+ foreign-key: account_id
+ - key: expense_account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: deferred_expense_account_id
+ foreign-key: account_id
+ - key: expense_account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: revaluation
+ keys:
+ - key: deferred_expense_account_id
+ foreign-key: variance_account_id
+ - key: expense_account_id
+ foreign-key: variance_account_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: deferred_expense_account_id
+ foreign-key: deferral_account_id
+ - key: expense_account_id
+ foreign-key: deferral_account_id
+ - key: deferred_expense_account_id
+ foreign-key: recognition_account_id
+ - key: expense_account_id
+ foreign-key: recognition_account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: journal_id
+ foreign-key: journal_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: deferred_expense_account_id
+ foreign-key: account_id
+ - key: expense_account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: journal_id
+ foreign-key: journal_id
+ - table-name: sales_reps
+ keys:
+ - key: deferred_expense_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: expense_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: support_reps
+ keys:
+ - key: deferred_expense_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: expense_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: transaction_history
+ keys:
+ - key: deferred_expense_account_id
+ foreign-key: account_id
+ - key: expense_account_id
+ foreign-key: account_id
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: deferred_expense_account_id
+ foreign-key: account_id
+ - key: expense_account_id
+ foreign-key: account_id
+ - table-name: transaction_lines
+ keys:
+ - key: deferred_expense_account_id
+ foreign-key: account_id
+ - key: expense_account_id
+ foreign-key: account_id
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: deferred_expense_account_id
+ foreign-key: account_id
+ - key: expense_account_id
+ foreign-key: account_id
+ - table-name: transactions
+ keys:
+ - key: deferred_expense_account_id
+ foreign-key: account_id
+ - key: expense_account_id
+ foreign-key: account_id
+ - table-name: accounting_periods
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: accounting_period_id
+ foreign-key: parent_id
+ - key: accounting_period_id
+ foreign-key: year_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: expense_plans
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: plan_id
+ foreign-key: plan_id
+ - key: journal_id
+ foreign-key: related_revenue_arrangement_id
+ - table-name: opportunities
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: journal_id
+ foreign-key: reversing-transaction-id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: journal_id
+ foreign-key: journal_id
+ - table-name: revenue_plans
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: journal_id
+ foreign-key: purchase_order_id
+ - key: journal_id
+ foreign-key: sales_order_id
+ - table-name: billing_subscriptions
+ keys:
+ - key: journal_id
+ foreign-key: sales_order_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: employee_time
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: notes_system_custom
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: notes_system
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: notes_user
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: system_notes_custom
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: system_notes
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: transaction_address
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: transaction_book_map
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: transaction_links
+ keys:
+ - key: journal_id
+ foreign-key: applied_transaction_id
+ - key: journal_id
+ foreign-key: original_transaction_id
+ - table-name: transaction_shipping_groups
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+- table-name: global_account_map
+ join:
+ - table-name: account_activity
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: accounts
+ keys:
+ - key: destination_account_id
+ foreign-key: deferral_account_id
+ - key: source_account_id
+ foreign-key: deferral_account_id
+ - key: destination_account_id
+ foreign-key: parent_id
+ - key: source_account_id
+ foreign-key: parent_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+ - table-name: budget
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: customers
+ keys:
+ - key: destination_account_id
+ foreign-key: default_receivables_account_id
+ - key: source_account_id
+ foreign-key: default_receivables_account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: employees
+ keys:
+ - key: destination_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: source_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_accounts
+ keys:
+ - key: destination_account_id
+ foreign-key: expense_account_id
+ - key: source_account_id
+ foreign-key: expense_account_id
+ - table-name: expense_amortization_rules
+ keys:
+ - key: destination_account_id
+ foreign-key: contra_account_id
+ - key: source_account_id
+ foreign-key: contra_account_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: destination_account_id
+ foreign-key: deferred_expense_account_id
+ - key: source_account_id
+ foreign-key: deferred_expense_account_id
+ - key: destination_account_id
+ foreign-key: expense_account_id
+ - key: source_account_id
+ foreign-key: expense_account_id
+ - table-name: income_accounts
+ keys:
+ - key: destination_account_id
+ foreign-key: income_account_id
+ - key: source_account_id
+ foreign-key: income_account_id
+ - table-name: income_account_map
+ keys:
+ - key: destination_account_id
+ foreign-key: destination_account_id
+ - key: source_account_id
+ foreign-key: destination_account_id
+ - key: destination_account_id
+ foreign-key: source_account_id
+ - key: source_account_id
+ foreign-key: source_account_id
+ - table-name: opportunity_lines
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - table-name: revaluation
+ keys:
+ - key: destination_account_id
+ foreign-key: variance_account_id
+ - key: source_account_id
+ foreign-key: variance_account_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: destination_account_id
+ foreign-key: deferral_account_id
+ - key: source_account_id
+ foreign-key: deferral_account_id
+ - key: destination_account_id
+ foreign-key: recognition_account_id
+ - key: source_account_id
+ foreign-key: recognition_account_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+ - table-name: sales_reps
+ keys:
+ - key: destination_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: source_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: support_reps
+ keys:
+ - key: destination_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: source_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: transaction_history
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: transaction_lines
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: source_subsidiary_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+ - table-name: transactions
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+ - table-name: accounting_books
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_book_id
+ foreign-key: base_book_id
+ - table-name: expense_plans
+ keys:
+ - key: accounting_book_id
+ foreign-key: transaction_book_id
+ - table-name: item_account_map
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: transaction_book_map
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: classes
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: class_id
+ foreign-key: parent_id
+ - table-name: employee_time
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subscription_plans
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: departments
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: department_id
+ foreign-key: parent_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: billing_accounts
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: location_costing_grp_locations
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: locations
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - key: location_id
+ foreign-key: parent_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: subsidiary_location_map
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: companies
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: to_subsidiary_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_inventory_relationships
+ keys:
+ - key: subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: partners
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - table-name: role_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: support_incidents
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiaries
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: vendors
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+- table-name: income_accounts
+ join:
+ - table-name: account_activity
+ keys:
+ - key: income_account_id
+ foreign-key: account_id
+ - table-name: account_period_activity
+ keys:
+ - key: income_account_id
+ foreign-key: account_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: income_account_id
+ foreign-key: account_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: income_account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: income_account_id
+ foreign-key: deferral_account_id
+ - key: income_account_id
+ foreign-key: parent_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: income_account_id
+ foreign-key: account_id
+ - table-name: budget
+ keys:
+ - key: income_account_id
+ foreign-key: account_id
+ - table-name: customers
+ keys:
+ - key: income_account_id
+ foreign-key: default_receivables_account_id
+ - table-name: employees
+ keys:
+ - key: income_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: expense_accounts
+ keys:
+ - key: income_account_id
+ foreign-key: expense_account_id
+ - table-name: expense_amortization_rules
+ keys:
+ - key: income_account_id
+ foreign-key: contra_account_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: income_account_id
+ foreign-key: deferred_expense_account_id
+ - key: income_account_id
+ foreign-key: expense_account_id
+ - table-name: global_account_map
+ keys:
+ - key: income_account_id
+ foreign-key: destination_account_id
+ - key: income_account_id
+ foreign-key: source_account_id
+ - table-name: income_account_map
+ keys:
+ - key: income_account_id
+ foreign-key: destination_account_id
+ - key: income_account_id
+ foreign-key: source_account_id
+ - table-name: opportunity_lines
+ keys:
+ - key: income_account_id
+ foreign-key: account_id
+ - table-name: posting_account_activity
+ keys:
+ - key: income_account_id
+ foreign-key: account_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: income_account_id
+ foreign-key: account_id
+ - table-name: revaluation
+ keys:
+ - key: income_account_id
+ foreign-key: variance_account_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: income_account_id
+ foreign-key: deferral_account_id
+ - key: income_account_id
+ foreign-key: recognition_account_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: income_account_id
+ foreign-key: account_id
+ - table-name: sales_reps
+ keys:
+ - key: income_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: support_reps
+ keys:
+ - key: income_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: transaction_history
+ keys:
+ - key: income_account_id
+ foreign-key: account_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: income_account_id
+ foreign-key: account_id
+ - table-name: transaction_lines
+ keys:
+ - key: income_account_id
+ foreign-key: account_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: income_account_id
+ foreign-key: account_id
+ - table-name: transactions
+ keys:
+ - key: income_account_id
+ foreign-key: account_id
+- table-name: income_account_map
+ join:
+ - table-name: account_activity
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+ - table-name: account_period_activity
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: destination_account_id
+ foreign-key: deferral_account_id
+ - key: source_account_id
+ foreign-key: deferral_account_id
+ - key: destination_account_id
+ foreign-key: parent_id
+ - key: source_account_id
+ foreign-key: parent_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+ - table-name: budget
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+ - table-name: customers
+ keys:
+ - key: destination_account_id
+ foreign-key: default_receivables_account_id
+ - key: source_account_id
+ foreign-key: default_receivables_account_id
+ - table-name: employees
+ keys:
+ - key: destination_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: source_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: expense_accounts
+ keys:
+ - key: destination_account_id
+ foreign-key: expense_account_id
+ - key: source_account_id
+ foreign-key: expense_account_id
+ - table-name: expense_amortization_rules
+ keys:
+ - key: destination_account_id
+ foreign-key: contra_account_id
+ - key: source_account_id
+ foreign-key: contra_account_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: destination_account_id
+ foreign-key: deferred_expense_account_id
+ - key: source_account_id
+ foreign-key: deferred_expense_account_id
+ - key: destination_account_id
+ foreign-key: expense_account_id
+ - key: source_account_id
+ foreign-key: expense_account_id
+ - table-name: global_account_map
+ keys:
+ - key: destination_account_id
+ foreign-key: destination_account_id
+ - key: source_account_id
+ foreign-key: destination_account_id
+ - key: destination_account_id
+ foreign-key: source_account_id
+ - key: source_account_id
+ foreign-key: source_account_id
+ - table-name: income_accounts
+ keys:
+ - key: destination_account_id
+ foreign-key: income_account_id
+ - key: source_account_id
+ foreign-key: income_account_id
+ - table-name: opportunity_lines
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+ - table-name: posting_account_activity
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+ - table-name: revaluation
+ keys:
+ - key: destination_account_id
+ foreign-key: variance_account_id
+ - key: source_account_id
+ foreign-key: variance_account_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: destination_account_id
+ foreign-key: deferral_account_id
+ - key: source_account_id
+ foreign-key: deferral_account_id
+ - key: destination_account_id
+ foreign-key: recognition_account_id
+ - key: source_account_id
+ foreign-key: recognition_account_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+ - table-name: sales_reps
+ keys:
+ - key: destination_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: source_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: support_reps
+ keys:
+ - key: destination_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: source_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: transaction_history
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+ - table-name: transaction_lines
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+ - table-name: transactions
+ keys:
+ - key: destination_account_id
+ foreign-key: account_id
+ - key: source_account_id
+ foreign-key: account_id
+- table-name: opportunity_lines
+ join:
+ - table-name: account_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: parent_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: budget
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: item_id
+ foreign-key: item_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: customers
+ keys:
+ - key: account_id
+ foreign-key: default_receivables_account_id
+ - key: company_id
+ foreign-key: converted_to_id
+ - key: related_company_id
+ foreign-key: converted_to_id
+ - key: company_id
+ foreign-key: converted_to_contact_id
+ - key: related_company_id
+ foreign-key: converted_to_contact_id
+ - key: company_id
+ foreign-key: sales_rep_id
+ - key: related_company_id
+ foreign-key: sales_rep_id
+ - key: company_id
+ foreign-key: parent_id
+ - key: related_company_id
+ foreign-key: parent_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - key: tax_item_id
+ foreign-key: tax_item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: employees
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_accounts
+ keys:
+ - key: account_id
+ foreign-key: expense_account_id
+ - table-name: expense_amortization_rules
+ keys:
+ - key: account_id
+ foreign-key: contra_account_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferred_expense_account_id
+ - key: account_id
+ foreign-key: expense_account_id
+ - table-name: global_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: income_accounts
+ keys:
+ - key: account_id
+ foreign-key: income_account_id
+ - table-name: income_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - table-name: posting_account_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: item_id
+ foreign-key: item_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: item_id
+ foreign-key: item_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - table-name: revaluation
+ keys:
+ - key: account_id
+ foreign-key: variance_account_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: recognition_account_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: sales_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: support_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: transaction_history
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: company_id
+ foreign-key: user_id
+ - key: related_company_id
+ foreign-key: user_id
+ - key: company_id
+ foreign-key: entity_id
+ - key: related_company_id
+ foreign-key: entity_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: transaction_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: source_subsidiary_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: item_id
+ foreign-key: item_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - table-name: transactions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: classes
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: class_id
+ foreign-key: parent_id
+ - table-name: employee_time
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: payroll_item_id
+ foreign-key: payroll_item_id
+ - key: price_type_id
+ foreign-key: price_type_id
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_account_map
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subscription_plans
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: departments
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: department_id
+ foreign-key: parent_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: campaign_subscription_statuses
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: related_company_id
+ foreign-key: entity_id
+ - table-name: campaignresponse
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: related_company_id
+ foreign-key: entity_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: company_id
+ foreign-key: author
+ - key: related_company_id
+ foreign-key: author
+ - table-name: campaigns
+ keys:
+ - key: company_id
+ foreign-key: organizer_id
+ - key: related_company_id
+ foreign-key: organizer_id
+ - table-name: caseescalationhistory
+ keys:
+ - key: company_id
+ foreign-key: escalator_id
+ - key: related_company_id
+ foreign-key: escalator_id
+ - key: company_id
+ foreign-key: entity_id
+ - key: related_company_id
+ foreign-key: entity_id
+ - table-name: contact_types
+ keys:
+ - key: company_id
+ foreign-key: contact_id
+ - key: related_company_id
+ foreign-key: contact_id
+ - key: company_id
+ foreign-key: owner_id
+ - key: related_company_id
+ foreign-key: owner_id
+ - table-name: currency_exchange_rates
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: related_company_id
+ foreign-key: entity_id
+ - table-name: currencyrates
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: related_company_id
+ foreign-key: entity_id
+ - table-name: entity_role_map
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: related_company_id
+ foreign-key: entity_id
+ - table-name: entityterritorymap
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: related_company_id
+ foreign-key: entity_id
+ - table-name: messagerecipient
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: related_company_id
+ foreign-key: entity_id
+ - table-name: notes_system_custom
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: related_company_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: author_id
+ - key: related_company_id
+ foreign-key: author_id
+ - key: item_id
+ foreign-key: item_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - table-name: notes_system
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: related_company_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: author_id
+ - key: related_company_id
+ foreign-key: author_id
+ - key: item_id
+ foreign-key: item_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - table-name: notes_user
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: related_company_id
+ foreign-key: company_id
+ - key: item_id
+ foreign-key: item_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - table-name: opportunities
+ keys:
+ - key: company_id
+ foreign-key: sales_rep_id
+ - key: related_company_id
+ foreign-key: sales_rep_id
+ - table-name: resource_group_entity_map
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: related_company_id
+ foreign-key: entity_id
+ - table-name: resource_groups
+ keys:
+ - key: company_id
+ foreign-key: resource_group_id
+ - key: related_company_id
+ foreign-key: resource_group_id
+ - table-name: support_incidents
+ keys:
+ - key: company_id
+ foreign-key: owner_id
+ - key: related_company_id
+ foreign-key: owner_id
+ - key: company_id
+ foreign-key: assigned_id
+ - key: related_company_id
+ foreign-key: assigned_id
+ - key: company_id
+ foreign-key: company_id
+ - key: related_company_id
+ foreign-key: company_id
+ - key: item_id
+ foreign-key: item_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: supportcasehistory
+ keys:
+ - key: company_id
+ foreign-key: employee_id
+ - key: related_company_id
+ foreign-key: employee_id
+ - table-name: system_notes_custom
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: related_company_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: author_id
+ - key: related_company_id
+ foreign-key: author_id
+ - key: company_id
+ foreign-key: customfield_created_by_id
+ - key: related_company_id
+ foreign-key: customfield_created_by_id
+ - key: company_id
+ foreign-key: customfield_modified_by_id
+ - key: related_company_id
+ foreign-key: customfield_modified_by_id
+ - key: item_id
+ foreign-key: item_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - table-name: system_notes
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: related_company_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: author_id
+ - key: related_company_id
+ foreign-key: author_id
+ - key: item_id
+ foreign-key: item_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - table-name: transaction_address
+ keys:
+ - key: company_id
+ foreign-key: created_by_id
+ - key: related_company_id
+ foreign-key: created_by_id
+ - key: company_id
+ foreign-key: last_modified_by_id
+ - key: related_company_id
+ foreign-key: last_modified_by_id
+ - table-name: expense_categories
+ keys:
+ - key: expense_category_id
+ foreign-key: expense_category_id
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: expense_category_id
+ foreign-key: expense_category_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: bill_of_materials
+ keys:
+ - key: item_id
+ foreign-key: original_assembly_id
+ - key: tax_item_id
+ foreign-key: original_assembly_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: item_id
+ foreign-key: service_item_id
+ - key: tax_item_id
+ foreign-key: service_item_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - table-name: bom_revision_components
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - table-name: campaignitem
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - table-name: item_collection_item_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - table-name: item_price_history
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - key: price_type_id
+ foreign-key: price_type_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - table-name: items
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - key: location_id
+ foreign-key: location_id
+ - table-name: purchase_charge_rules
+ keys:
+ - key: item_id
+ foreign-key: mark_up_item_id
+ - key: tax_item_id
+ foreign-key: mark_up_item_id
+ - table-name: standard_cost_components
+ keys:
+ - key: item_id
+ foreign-key: component_id
+ - key: tax_item_id
+ foreign-key: component_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: item_id
+ foreign-key: plan_item_id
+ - key: tax_item_id
+ foreign-key: plan_item_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: tax_item_id
+ foreign-key: item_id
+ - table-name: billing_accounts
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: location_costing_grp_locations
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: locations
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - key: location_id
+ foreign-key: parent_id
+ - table-name: subsidiary_location_map
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: payment_methods
+ keys:
+ - key: payment_method_id
+ foreign-key: payment_method_id
+ - table-name: payroll_item_id
+ keys:
+ - key: payroll_item_id
+ foreign-key: payroll_item_id
+ - table-name: item_billing_rates
+ keys:
+ - key: price_type_id
+ foreign-key: price_type_id
+ - table-name: price_types
+ keys:
+ - key: price_type_id
+ foreign-key: price_type_id
+ - table-name: companies
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: to_subsidiary_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_inventory_relationships
+ keys:
+ - key: subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - table-name: partners
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - table-name: role_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiaries
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: vendors
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+- table-name: posting_account_activity
+ join:
+ - table-name: account_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: parent_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: budget
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: item_id
+ foreign-key: item_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: customers
+ keys:
+ - key: account_id
+ foreign-key: default_receivables_account_id
+ - key: accounting_period_id
+ foreign-key: first_sale_period_id
+ - key: accounting_period_id
+ foreign-key: last_sale_period_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - key: partner_id
+ foreign-key: partner_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: employees
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_accounts
+ keys:
+ - key: account_id
+ foreign-key: expense_account_id
+ - table-name: expense_amortization_rules
+ keys:
+ - key: account_id
+ foreign-key: contra_account_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferred_expense_account_id
+ - key: account_id
+ foreign-key: expense_account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: global_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: income_accounts
+ keys:
+ - key: account_id
+ foreign-key: income_account_id
+ - table-name: income_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - table-name: opportunity_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: item_id
+ foreign-key: item_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: item_id
+ foreign-key: item_id
+ - key: location_id
+ foreign-key: location_id
+ - key: partner_id
+ foreign-key: partner_id
+ - key: promotion_code_id
+ foreign-key: promotion_code_id
+ - key: sales_rep_id
+ foreign-key: sales_rep_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - table-name: revaluation
+ keys:
+ - key: account_id
+ foreign-key: variance_account_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: recognition_account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: sales_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: sales_rep_id
+ foreign-key: sales_rep_id
+ - table-name: support_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: transaction_history
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: transaction_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: source_subsidiary_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: item_id
+ foreign-key: item_id
+ - table-name: transactions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounting_books
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_book_id
+ foreign-key: base_book_id
+ - table-name: expense_plans
+ keys:
+ - key: accounting_book_id
+ foreign-key: transaction_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: item_account_map
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: transaction_book_map
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: accounting_periods
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: accounting_period_id
+ foreign-key: parent_id
+ - key: accounting_period_id
+ foreign-key: year_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: to_subsidiary_id
+ - table-name: opportunities
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: partner_id
+ foreign-key: partner_id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: revenue_plans
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: classes
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: class_id
+ foreign-key: parent_id
+ - table-name: employee_time
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subscription_plans
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: departments
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: department_id
+ foreign-key: parent_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: bill_of_materials
+ keys:
+ - key: item_id
+ foreign-key: original_assembly_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: item_id
+ foreign-key: service_item_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: bom_revision_components
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: campaignitem
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_collection_item_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_price_history
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: items
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_system_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_system
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_user
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: location_id
+ foreign-key: location_id
+ - table-name: purchase_charge_rules
+ keys:
+ - key: item_id
+ foreign-key: mark_up_item_id
+ - table-name: standard_cost_components
+ keys:
+ - key: item_id
+ foreign-key: component_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: item_id
+ foreign-key: plan_item_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: support_incidents
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: system_notes_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: system_notes
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: billing_accounts
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: location_costing_grp_locations
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: locations
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - key: location_id
+ foreign-key: parent_id
+ - table-name: subsidiary_location_map
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: partners
+ keys:
+ - key: partner_id
+ foreign-key: partner_id
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - table-name: campaignevent
+ keys:
+ - key: promotion_code_id
+ foreign-key: promotion_code_id
+ - table-name: promotion_codes
+ keys:
+ - key: promotion_code_id
+ foreign-key: promotion_code_id
+ - table-name: companies
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_inventory_relationships
+ keys:
+ - key: subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - table-name: role_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiaries
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: vendors
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+- table-name: posting_account_activity_pe
+ join:
+ - table-name: account_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: parent_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: budget
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: item_id
+ foreign-key: item_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: customers
+ keys:
+ - key: account_id
+ foreign-key: default_receivables_account_id
+ - key: accounting_period_id
+ foreign-key: first_sale_period_id
+ - key: accounting_period_id
+ foreign-key: last_sale_period_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - key: partner_id
+ foreign-key: partner_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: employees
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_accounts
+ keys:
+ - key: account_id
+ foreign-key: expense_account_id
+ - table-name: expense_amortization_rules
+ keys:
+ - key: account_id
+ foreign-key: contra_account_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferred_expense_account_id
+ - key: account_id
+ foreign-key: expense_account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: global_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: income_accounts
+ keys:
+ - key: account_id
+ foreign-key: income_account_id
+ - table-name: income_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - table-name: opportunity_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: item_id
+ foreign-key: item_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: item_id
+ foreign-key: item_id
+ - key: location_id
+ foreign-key: location_id
+ - key: partner_id
+ foreign-key: partner_id
+ - key: promotion_code_id
+ foreign-key: promotion_code_id
+ - key: sales_rep_id
+ foreign-key: sales_rep_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: revaluation
+ keys:
+ - key: account_id
+ foreign-key: variance_account_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: recognition_account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: sales_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: sales_rep_id
+ foreign-key: sales_rep_id
+ - table-name: support_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: transaction_history
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: transaction_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: source_subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: source_subsidiary_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: item_id
+ foreign-key: item_id
+ - table-name: transactions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounting_books
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_book_id
+ foreign-key: base_book_id
+ - table-name: expense_plans
+ keys:
+ - key: accounting_book_id
+ foreign-key: transaction_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: item_account_map
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: transaction_book_map
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: accounting_periods
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: accounting_period_id
+ foreign-key: parent_id
+ - key: accounting_period_id
+ foreign-key: year_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: to_subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: to_subsidiary_id
+ - table-name: opportunities
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: partner_id
+ foreign-key: partner_id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: revenue_plans
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: classes
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: class_id
+ foreign-key: parent_id
+ - table-name: employee_time
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subscription_plans
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: departments
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: department_id
+ foreign-key: parent_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: bill_of_materials
+ keys:
+ - key: item_id
+ foreign-key: original_assembly_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: item_id
+ foreign-key: service_item_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: bom_revision_components
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: campaignitem
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_collection_item_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_price_history
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: items
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_system_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_system
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_user
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: location_id
+ foreign-key: location_id
+ - table-name: purchase_charge_rules
+ keys:
+ - key: item_id
+ foreign-key: mark_up_item_id
+ - table-name: standard_cost_components
+ keys:
+ - key: item_id
+ foreign-key: component_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: item_id
+ foreign-key: plan_item_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: support_incidents
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: system_notes_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: system_notes
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: billing_accounts
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: location_costing_grp_locations
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: locations
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - key: location_id
+ foreign-key: parent_id
+ - table-name: subsidiary_location_map
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: partners
+ keys:
+ - key: partner_id
+ foreign-key: partner_id
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary
+ - table-name: campaignevent
+ keys:
+ - key: promotion_code_id
+ foreign-key: promotion_code_id
+ - table-name: promotion_codes
+ keys:
+ - key: promotion_code_id
+ foreign-key: promotion_code_id
+ - table-name: companies
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_inventory_relationships
+ keys:
+ - key: subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - table-name: role_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiaries
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: vendors
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - key: balance_from_subsidiary_id
+ foreign-key: subsidiary
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - key: balance_from_subsidiary_id
+ foreign-key: represents_subsidiary_id
+- table-name: revaluation
+ join:
+ - table-name: account_activity
+ keys:
+ - key: variance_account_id
+ foreign-key: account_id
+ - table-name: account_period_activity
+ keys:
+ - key: variance_account_id
+ foreign-key: account_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: variance_account_id
+ foreign-key: account_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: variance_account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: variance_account_id
+ foreign-key: deferral_account_id
+ - key: variance_account_id
+ foreign-key: parent_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: variance_account_id
+ foreign-key: account_id
+ - table-name: budget
+ keys:
+ - key: variance_account_id
+ foreign-key: account_id
+ - table-name: customers
+ keys:
+ - key: variance_account_id
+ foreign-key: default_receivables_account_id
+ - table-name: employees
+ keys:
+ - key: variance_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: expense_accounts
+ keys:
+ - key: variance_account_id
+ foreign-key: expense_account_id
+ - table-name: expense_amortization_rules
+ keys:
+ - key: variance_account_id
+ foreign-key: contra_account_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: variance_account_id
+ foreign-key: deferred_expense_account_id
+ - key: variance_account_id
+ foreign-key: expense_account_id
+ - table-name: global_account_map
+ keys:
+ - key: variance_account_id
+ foreign-key: destination_account_id
+ - key: variance_account_id
+ foreign-key: source_account_id
+ - table-name: income_accounts
+ keys:
+ - key: variance_account_id
+ foreign-key: income_account_id
+ - table-name: income_account_map
+ keys:
+ - key: variance_account_id
+ foreign-key: destination_account_id
+ - key: variance_account_id
+ foreign-key: source_account_id
+ - table-name: opportunity_lines
+ keys:
+ - key: variance_account_id
+ foreign-key: account_id
+ - table-name: posting_account_activity
+ keys:
+ - key: variance_account_id
+ foreign-key: account_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: variance_account_id
+ foreign-key: account_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: variance_account_id
+ foreign-key: deferral_account_id
+ - key: variance_account_id
+ foreign-key: recognition_account_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: variance_account_id
+ foreign-key: account_id
+ - table-name: sales_reps
+ keys:
+ - key: variance_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: support_reps
+ keys:
+ - key: variance_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: transaction_history
+ keys:
+ - key: variance_account_id
+ foreign-key: account_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: variance_account_id
+ foreign-key: account_id
+ - table-name: transaction_lines
+ keys:
+ - key: variance_account_id
+ foreign-key: account_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: variance_account_id
+ foreign-key: account_id
+ - table-name: transactions
+ keys:
+ - key: variance_account_id
+ foreign-key: account_id
+- table-name: revenue_plan_lines
+ join:
+ - table-name: account_activity
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: recognition_account_id
+ foreign-key: account_id
+ - table-name: account_period_activity
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: recognition_account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: recognition_account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: recognition_account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: deferral_account_id
+ foreign-key: deferral_account_id
+ - key: recognition_account_id
+ foreign-key: deferral_account_id
+ - key: deferral_account_id
+ foreign-key: parent_id
+ - key: recognition_account_id
+ foreign-key: parent_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: recognition_account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: journal_id
+ foreign-key: journal_id
+ - table-name: budget
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: recognition_account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: customers
+ keys:
+ - key: deferral_account_id
+ foreign-key: default_receivables_account_id
+ - key: recognition_account_id
+ foreign-key: default_receivables_account_id
+ - key: accounting_period_id
+ foreign-key: first_sale_period_id
+ - key: accounting_period_id
+ foreign-key: last_sale_period_id
+ - table-name: employees
+ keys:
+ - key: deferral_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: recognition_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: expense_accounts
+ keys:
+ - key: deferral_account_id
+ foreign-key: expense_account_id
+ - key: recognition_account_id
+ foreign-key: expense_account_id
+ - table-name: expense_amortization_rules
+ keys:
+ - key: deferral_account_id
+ foreign-key: contra_account_id
+ - key: recognition_account_id
+ foreign-key: contra_account_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: deferral_account_id
+ foreign-key: deferred_expense_account_id
+ - key: recognition_account_id
+ foreign-key: deferred_expense_account_id
+ - key: deferral_account_id
+ foreign-key: expense_account_id
+ - key: recognition_account_id
+ foreign-key: expense_account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: journal_id
+ foreign-key: journal_id
+ - table-name: global_account_map
+ keys:
+ - key: deferral_account_id
+ foreign-key: destination_account_id
+ - key: recognition_account_id
+ foreign-key: destination_account_id
+ - key: deferral_account_id
+ foreign-key: source_account_id
+ - key: recognition_account_id
+ foreign-key: source_account_id
+ - table-name: income_accounts
+ keys:
+ - key: deferral_account_id
+ foreign-key: income_account_id
+ - key: recognition_account_id
+ foreign-key: income_account_id
+ - table-name: income_account_map
+ keys:
+ - key: deferral_account_id
+ foreign-key: destination_account_id
+ - key: recognition_account_id
+ foreign-key: destination_account_id
+ - key: deferral_account_id
+ foreign-key: source_account_id
+ - key: recognition_account_id
+ foreign-key: source_account_id
+ - table-name: opportunity_lines
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: recognition_account_id
+ foreign-key: account_id
+ - table-name: posting_account_activity
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: recognition_account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: recognition_account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: revaluation
+ keys:
+ - key: deferral_account_id
+ foreign-key: variance_account_id
+ - key: recognition_account_id
+ foreign-key: variance_account_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: recognition_account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: journal_id
+ foreign-key: journal_id
+ - table-name: sales_reps
+ keys:
+ - key: deferral_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: recognition_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: support_reps
+ keys:
+ - key: deferral_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: recognition_account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: transaction_history
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: recognition_account_id
+ foreign-key: account_id
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: recognition_account_id
+ foreign-key: account_id
+ - table-name: transaction_lines
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: recognition_account_id
+ foreign-key: account_id
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: recognition_account_id
+ foreign-key: account_id
+ - table-name: transactions
+ keys:
+ - key: deferral_account_id
+ foreign-key: account_id
+ - key: recognition_account_id
+ foreign-key: account_id
+ - table-name: accounting_periods
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: accounting_period_id
+ foreign-key: parent_id
+ - key: accounting_period_id
+ foreign-key: year_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: expense_plans
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: journal_id
+ foreign-key: related_revenue_arrangement_id
+ - table-name: opportunities
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: journal_id
+ foreign-key: reversing-transaction-id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: journal_id
+ foreign-key: journal_id
+ - table-name: revenue_plans
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: plan_id
+ foreign-key: plan_id
+ - table-name: revenue_plan_versions
+ keys:
+ - key: plan_id
+ foreign-key: plan_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: journal_id
+ foreign-key: purchase_order_id
+ - key: journal_id
+ foreign-key: sales_order_id
+ - table-name: billing_subscriptions
+ keys:
+ - key: journal_id
+ foreign-key: sales_order_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: employee_time
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: notes_system_custom
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: notes_system
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: notes_user
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: system_notes_custom
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: system_notes
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: transaction_address
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: transaction_book_map
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: transaction_links
+ keys:
+ - key: journal_id
+ foreign-key: applied_transaction_id
+ - key: journal_id
+ foreign-key: original_transaction_id
+ - table-name: transaction_shipping_groups
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+- table-name: revrecschedulelines
+ join:
+ - table-name: account_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: account_period_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: parent_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: journal_id
+ foreign-key: journal_id
+ - table-name: budget
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: customers
+ keys:
+ - key: account_id
+ foreign-key: default_receivables_account_id
+ - key: accounting_period_id
+ foreign-key: first_sale_period_id
+ - key: accounting_period_id
+ foreign-key: last_sale_period_id
+ - table-name: employees
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: expense_accounts
+ keys:
+ - key: account_id
+ foreign-key: expense_account_id
+ - table-name: expense_amortization_rules
+ keys:
+ - key: account_id
+ foreign-key: contra_account_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferred_expense_account_id
+ - key: account_id
+ foreign-key: expense_account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: journal_id
+ foreign-key: journal_id
+ - table-name: global_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - table-name: income_accounts
+ keys:
+ - key: account_id
+ foreign-key: income_account_id
+ - table-name: income_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - table-name: opportunity_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: posting_account_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: revaluation
+ keys:
+ - key: account_id
+ foreign-key: variance_account_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: recognition_account_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: journal_id
+ foreign-key: journal_id
+ - table-name: sales_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: support_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: transaction_history
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: transaction_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: transactions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounting_periods
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: accounting_period_id
+ foreign-key: parent_id
+ - key: accounting_period_id
+ foreign-key: year_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: expense_plans
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: journal_id
+ foreign-key: related_revenue_arrangement_id
+ - table-name: opportunities
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: journal_id
+ foreign-key: reversing-transaction-id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: journal_id
+ foreign-key: journal_id
+ - table-name: revenue_plans
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: journal_id
+ foreign-key: purchase_order_id
+ - key: journal_id
+ foreign-key: sales_order_id
+ - table-name: billing_subscriptions
+ keys:
+ - key: journal_id
+ foreign-key: sales_order_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: employee_time
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: notes_system_custom
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: notes_system
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: notes_user
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: system_notes_custom
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: system_notes
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: transaction_address
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: transaction_book_map
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: transaction_links
+ keys:
+ - key: journal_id
+ foreign-key: applied_transaction_id
+ - key: journal_id
+ foreign-key: original_transaction_id
+ - table-name: transaction_shipping_groups
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+- table-name: sales_reps
+ join:
+ - table-name: account_activity
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: account_period_activity
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: deferral_account_id
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: parent_id
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: budget
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: customers
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: default_receivables_account_id
+ - table-name: employees
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: currency_id
+ foreign-key: def_expense_report_currency_id
+ - table-name: expense_accounts
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: expense_account_id
+ - table-name: expense_amortization_rules
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: contra_account_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: deferred_expense_account_id
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: expense_account_id
+ - table-name: global_account_map
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: destination_account_id
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: source_account_id
+ - table-name: income_accounts
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: income_account_id
+ - table-name: income_account_map
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: destination_account_id
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: source_account_id
+ - table-name: opportunity_lines
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: posting_account_activity
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - key: sales_rep_id
+ foreign-key: sales_rep_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - key: sales_rep_id
+ foreign-key: sales_rep_id
+ - table-name: revaluation
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: variance_account_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: deferral_account_id
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: recognition_account_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: support_reps
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: transaction_history
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: transaction_lines
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: transactions
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: billing_class_rates
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: companies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: currencies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: customer_currencies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: employee_currency_map
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: inbound_shipments
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_billing_rates
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_price_history
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: location_costing_groups
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: opportunities
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+- table-name: support_reps
+ join:
+ - table-name: account_activity
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: account_period_activity
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: deferral_account_id
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: parent_id
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: budget
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: customers
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: default_receivables_account_id
+ - table-name: employees
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: currency_id
+ foreign-key: def_expense_report_currency_id
+ - table-name: expense_accounts
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: expense_account_id
+ - table-name: expense_amortization_rules
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: contra_account_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: deferred_expense_account_id
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: expense_account_id
+ - table-name: global_account_map
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: destination_account_id
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: source_account_id
+ - table-name: income_accounts
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: income_account_id
+ - table-name: income_account_map
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: destination_account_id
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: source_account_id
+ - table-name: opportunity_lines
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: posting_account_activity
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: revaluation
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: variance_account_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: deferral_account_id
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: recognition_account_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: sales_reps
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: transaction_history
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: transaction_lines
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: transactions
+ keys:
+ - key: def_acct_corp_card_expenses_id
+ foreign-key: account_id
+ - table-name: billing_class_rates
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: companies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: currencies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: customer_currencies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: employee_currency_map
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: inbound_shipments
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_billing_rates
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_price_history
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: location_costing_groups
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: opportunities
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+- table-name: transaction_history
+ join:
+ - table-name: account_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: account_period_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: parent_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: budget
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: customers
+ keys:
+ - key: account_id
+ foreign-key: default_receivables_account_id
+ - key: user_id
+ foreign-key: converted_to_id
+ - key: entity_id
+ foreign-key: converted_to_id
+ - key: user_id
+ foreign-key: converted_to_contact_id
+ - key: entity_id
+ foreign-key: converted_to_contact_id
+ - key: user_id
+ foreign-key: sales_rep_id
+ - key: entity_id
+ foreign-key: sales_rep_id
+ - key: user_id
+ foreign-key: parent_id
+ - key: entity_id
+ foreign-key: parent_id
+ - table-name: employees
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: expense_accounts
+ keys:
+ - key: account_id
+ foreign-key: expense_account_id
+ - table-name: expense_amortization_rules
+ keys:
+ - key: account_id
+ foreign-key: contra_account_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferred_expense_account_id
+ - key: account_id
+ foreign-key: expense_account_id
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: global_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - table-name: income_accounts
+ keys:
+ - key: account_id
+ foreign-key: income_account_id
+ - table-name: income_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - table-name: opportunity_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: user_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: company_id
+ - key: user_id
+ foreign-key: related_company_id
+ - key: entity_id
+ foreign-key: related_company_id
+ - table-name: posting_account_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: revaluation
+ keys:
+ - key: account_id
+ foreign-key: variance_account_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: recognition_account_id
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: sales_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: support_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: transaction_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: transactions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: campaign_subscription_statuses
+ keys:
+ - key: user_id
+ foreign-key: entity_id
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: campaignresponse
+ keys:
+ - key: user_id
+ foreign-key: entity_id
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: user_id
+ foreign-key: author
+ - key: entity_id
+ foreign-key: author
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: campaigns
+ keys:
+ - key: user_id
+ foreign-key: organizer_id
+ - key: entity_id
+ foreign-key: organizer_id
+ - table-name: caseescalationhistory
+ keys:
+ - key: user_id
+ foreign-key: escalator_id
+ - key: entity_id
+ foreign-key: escalator_id
+ - key: user_id
+ foreign-key: entity_id
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: contact_types
+ keys:
+ - key: user_id
+ foreign-key: contact_id
+ - key: entity_id
+ foreign-key: contact_id
+ - key: user_id
+ foreign-key: owner_id
+ - key: entity_id
+ foreign-key: owner_id
+ - table-name: currency_exchange_rates
+ keys:
+ - key: user_id
+ foreign-key: entity_id
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: currencyrates
+ keys:
+ - key: user_id
+ foreign-key: entity_id
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: entity_role_map
+ keys:
+ - key: user_id
+ foreign-key: entity_id
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: entityterritorymap
+ keys:
+ - key: user_id
+ foreign-key: entity_id
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: messagerecipient
+ keys:
+ - key: user_id
+ foreign-key: entity_id
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: notes_system_custom
+ keys:
+ - key: user_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: company_id
+ - key: user_id
+ foreign-key: author_id
+ - key: entity_id
+ foreign-key: author_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: notes_system
+ keys:
+ - key: user_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: company_id
+ - key: user_id
+ foreign-key: author_id
+ - key: entity_id
+ foreign-key: author_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: notes_user
+ keys:
+ - key: user_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: company_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: opportunities
+ keys:
+ - key: user_id
+ foreign-key: sales_rep_id
+ - key: entity_id
+ foreign-key: sales_rep_id
+ - key: transaction_id
+ foreign-key: reversing-transaction-id
+ - table-name: resource_group_entity_map
+ keys:
+ - key: user_id
+ foreign-key: entity_id
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: resource_groups
+ keys:
+ - key: user_id
+ foreign-key: resource_group_id
+ - key: entity_id
+ foreign-key: resource_group_id
+ - table-name: support_incidents
+ keys:
+ - key: user_id
+ foreign-key: owner_id
+ - key: entity_id
+ foreign-key: owner_id
+ - key: user_id
+ foreign-key: assigned_id
+ - key: entity_id
+ foreign-key: assigned_id
+ - key: user_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: company_id
+ - table-name: supportcasehistory
+ keys:
+ - key: user_id
+ foreign-key: employee_id
+ - key: entity_id
+ foreign-key: employee_id
+ - table-name: system_notes_custom
+ keys:
+ - key: user_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: company_id
+ - key: user_id
+ foreign-key: author_id
+ - key: entity_id
+ foreign-key: author_id
+ - key: user_id
+ foreign-key: customfield_created_by_id
+ - key: entity_id
+ foreign-key: customfield_created_by_id
+ - key: user_id
+ foreign-key: customfield_modified_by_id
+ - key: entity_id
+ foreign-key: customfield_modified_by_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: system_notes
+ keys:
+ - key: user_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: company_id
+ - key: user_id
+ foreign-key: author_id
+ - key: entity_id
+ foreign-key: author_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_address
+ keys:
+ - key: user_id
+ foreign-key: created_by_id
+ - key: entity_id
+ foreign-key: created_by_id
+ - key: user_id
+ foreign-key: last_modified_by_id
+ - key: entity_id
+ foreign-key: last_modified_by_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: transaction_id
+ foreign-key: purchase_order_id
+ - key: transaction_id
+ foreign-key: sales_order_id
+ - table-name: billing_subscriptions
+ keys:
+ - key: transaction_id
+ foreign-key: sales_order_id
+ - table-name: employee_time
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: expense_plans
+ keys:
+ - key: transaction_id
+ foreign-key: related_revenue_arrangement_id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: transaction_book_map
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_links
+ keys:
+ - key: transaction_id
+ foreign-key: applied_transaction_id
+ - key: transaction_id
+ foreign-key: original_transaction_id
+ - table-name: transaction_shipping_groups
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+- table-name: transaction_line_book_map
+ join:
+ - table-name: account_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: account_period_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: parent_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: budget
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: customers
+ keys:
+ - key: account_id
+ foreign-key: default_receivables_account_id
+ - key: schedule_id
+ foreign-key: rev_rec_forecast_template
+ - table-name: employees
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: expense_accounts
+ keys:
+ - key: account_id
+ foreign-key: expense_account_id
+ - table-name: expense_amortization_rules
+ keys:
+ - key: account_id
+ foreign-key: contra_account_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferred_expense_account_id
+ - key: account_id
+ foreign-key: expense_account_id
+ - table-name: global_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: income_accounts
+ keys:
+ - key: account_id
+ foreign-key: income_account_id
+ - table-name: income_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - table-name: opportunity_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: posting_account_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: revaluation
+ keys:
+ - key: account_id
+ foreign-key: variance_account_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: recognition_account_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: sales_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: support_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: transaction_history
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: transaction_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: transaction_line_id
+ foreign-key: transaction_line_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: transaction_line_id
+ foreign-key: transaction_line_id
+ - table-name: transactions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounting_books
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_book_id
+ foreign-key: base_book_id
+ - table-name: expense_plans
+ keys:
+ - key: accounting_book_id
+ foreign-key: transaction_book_id
+ - key: transaction_line_id
+ foreign-key: transaction_line_id
+ - table-name: item_account_map
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: transaction_book_map
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: revrecschedules
+ keys:
+ - key: schedule_id
+ foreign-key: schedule_id
+ - table-name: employee_time
+ keys:
+ - key: transaction_line_id
+ foreign-key: transaction_line_id
+ - table-name: notes_system_custom
+ keys:
+ - key: transaction_line_id
+ foreign-key: line_id
+ - table-name: notes_system
+ keys:
+ - key: transaction_line_id
+ foreign-key: line_id
+ - table-name: system_notes_custom
+ keys:
+ - key: transaction_line_id
+ foreign-key: line_id
+ - table-name: system_notes
+ keys:
+ - key: transaction_line_id
+ foreign-key: line_id
+ - table-name: transaction_links
+ keys:
+ - key: transaction_line_id
+ foreign-key: applied_transaction_line_id
+ - key: transaction_line_id
+ foreign-key: original_transaction_line_id
+- table-name: transaction_lines
+ join:
+ - table-name: account_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: parent_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: budget
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: customers
+ keys:
+ - key: account_id
+ foreign-key: default_receivables_account_id
+ - key: billing_schedule_id
+ foreign-key: billing_schedule_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: employees
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_accounts
+ keys:
+ - key: account_id
+ foreign-key: expense_account_id
+ - table-name: expense_amortization_rules
+ keys:
+ - key: account_id
+ foreign-key: contra_account_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferred_expense_account_id
+ - key: account_id
+ foreign-key: expense_account_id
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: global_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: income_accounts
+ keys:
+ - key: account_id
+ foreign-key: income_account_id
+ - table-name: income_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - table-name: opportunity_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - table-name: revaluation
+ keys:
+ - key: account_id
+ foreign-key: variance_account_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: recognition_account_id
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: sales_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: support_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: transaction_history
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: transaction_line_id
+ foreign-key: transaction_line_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: transaction_line_id
+ foreign-key: transaction_line_id
+ - table-name: transactions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: billing_accounts
+ keys:
+ - key: billing_schedule_id
+ foreign-key: billing_schedule_id
+ - table-name: billing_schedule_descriptions
+ keys:
+ - key: billing_schedule_id
+ foreign-key: billing_schedule_id
+ - table-name: charges
+ keys:
+ - key: billing_schedule_id
+ foreign-key: billing_schedule_id
+ - table-name: companies
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: to_subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: to_subsidiary_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: employee_time
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: transaction_line_id
+ foreign-key: transaction_line_id
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_inventory_relationships
+ keys:
+ - key: subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - table-name: item_account_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: partners
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - key: source_subsidiary_id
+ foreign-key: subsidiary
+ - table-name: role_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subscription_plans
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: support_incidents
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiaries
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: vendors
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - key: source_subsidiary_id
+ foreign-key: subsidiary
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - key: source_subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: transaction_id
+ foreign-key: purchase_order_id
+ - key: transaction_id
+ foreign-key: sales_order_id
+ - table-name: billing_subscriptions
+ keys:
+ - key: transaction_id
+ foreign-key: sales_order_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: expense_plans
+ keys:
+ - key: transaction_id
+ foreign-key: related_revenue_arrangement_id
+ - key: transaction_line_id
+ foreign-key: transaction_line_id
+ - table-name: notes_system_custom
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: transaction_line_id
+ foreign-key: line_id
+ - table-name: notes_system
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: transaction_line_id
+ foreign-key: line_id
+ - table-name: notes_user
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: opportunities
+ keys:
+ - key: transaction_id
+ foreign-key: reversing-transaction-id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: system_notes_custom
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: transaction_line_id
+ foreign-key: line_id
+ - table-name: system_notes
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: transaction_line_id
+ foreign-key: line_id
+ - table-name: transaction_address
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_book_map
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_links
+ keys:
+ - key: transaction_id
+ foreign-key: applied_transaction_id
+ - key: transaction_id
+ foreign-key: original_transaction_id
+ - key: transaction_line_id
+ foreign-key: applied_transaction_line_id
+ - key: transaction_line_id
+ foreign-key: original_transaction_line_id
+ - table-name: transaction_shipping_groups
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: shipping_group_id
+ foreign-key: shipping_group_id
+- table-name: transaction_tax_detail
+ join:
+ - table-name: account_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: account_period_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: parent_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: budget
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: item_id
+ foreign-key: item_id
+ - table-name: customers
+ keys:
+ - key: account_id
+ foreign-key: default_receivables_account_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - table-name: employees
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: expense_accounts
+ keys:
+ - key: account_id
+ foreign-key: expense_account_id
+ - table-name: expense_amortization_rules
+ keys:
+ - key: account_id
+ foreign-key: contra_account_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferred_expense_account_id
+ - key: account_id
+ foreign-key: expense_account_id
+ - table-name: global_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - table-name: income_accounts
+ keys:
+ - key: account_id
+ foreign-key: income_account_id
+ - table-name: income_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - table-name: opportunity_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: item_id
+ foreign-key: item_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - table-name: posting_account_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: item_id
+ foreign-key: item_id
+ - table-name: revaluation
+ keys:
+ - key: account_id
+ foreign-key: variance_account_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: recognition_account_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: sales_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: support_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: transaction_history
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: transaction_line_id
+ foreign-key: transaction_line_id
+ - table-name: transaction_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: transaction_line_id
+ foreign-key: transaction_line_id
+ - table-name: transactions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: bill_of_materials
+ keys:
+ - key: item_id
+ foreign-key: original_assembly_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: item_id
+ foreign-key: service_item_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: bom_revision_components
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: campaignitem
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_collection_item_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_price_history
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_vendor_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: items
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_system_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: transaction_line_id
+ foreign-key: line_id
+ - table-name: notes_system
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: transaction_line_id
+ foreign-key: line_id
+ - table-name: notes_user
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: purchase_charge_rules
+ keys:
+ - key: item_id
+ foreign-key: mark_up_item_id
+ - table-name: standard_cost_components
+ keys:
+ - key: item_id
+ foreign-key: component_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: item_id
+ foreign-key: plan_item_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: support_incidents
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: system_notes_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: transaction_line_id
+ foreign-key: line_id
+ - table-name: system_notes
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: transaction_line_id
+ foreign-key: line_id
+ - table-name: tax_items
+ keys:
+ - key: tax_item_id
+ foreign-key: item_id
+ - table-name: employee_time
+ keys:
+ - key: transaction_line_id
+ foreign-key: transaction_line_id
+ - table-name: expense_plans
+ keys:
+ - key: transaction_line_id
+ foreign-key: transaction_line_id
+ - table-name: transaction_links
+ keys:
+ - key: transaction_line_id
+ foreign-key: applied_transaction_line_id
+ - key: transaction_line_id
+ foreign-key: original_transaction_line_id
+- table-name: transactions
+ join:
+ - table-name: account_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: account_period_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: parent_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: budget
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: customers
+ keys:
+ - key: account_id
+ foreign-key: default_receivables_account_id
+ - table-name: employees
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: expense_accounts
+ keys:
+ - key: account_id
+ foreign-key: expense_account_id
+ - table-name: expense_amortization_rules
+ keys:
+ - key: account_id
+ foreign-key: contra_account_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferred_expense_account_id
+ - key: account_id
+ foreign-key: expense_account_id
+ - table-name: global_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - table-name: income_accounts
+ keys:
+ - key: account_id
+ foreign-key: income_account_id
+ - table-name: income_account_map
+ keys:
+ - key: account_id
+ foreign-key: destination_account_id
+ - key: account_id
+ foreign-key: source_account_id
+ - table-name: opportunity_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: posting_account_activity
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: revaluation
+ keys:
+ - key: account_id
+ foreign-key: variance_account_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: account_id
+ foreign-key: deferral_account_id
+ - key: account_id
+ foreign-key: recognition_account_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: sales_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: support_reps
+ keys:
+ - key: account_id
+ foreign-key: def_acct_corp_card_expenses_id
+ - table-name: transaction_history
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: transaction_lines
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: account_id
+ foreign-key: account_id
+- table-name: accounting_books
+ join:
+ - table-name: account_activity
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: base_book_id
+ foreign-key: accounting_book_id
+ - table-name: account_period_activity
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: base_book_id
+ foreign-key: accounting_book_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: base_book_id
+ foreign-key: accounting_book_id
+ - table-name: budget
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: base_book_id
+ foreign-key: accounting_book_id
+ - table-name: expense_plans
+ keys:
+ - key: accounting_book_id
+ foreign-key: transaction_book_id
+ - key: base_book_id
+ foreign-key: transaction_book_id
+ - table-name: global_account_map
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: base_book_id
+ foreign-key: accounting_book_id
+ - table-name: item_account_map
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: base_book_id
+ foreign-key: accounting_book_id
+ - table-name: posting_account_activity
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: base_book_id
+ foreign-key: accounting_book_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: base_book_id
+ foreign-key: accounting_book_id
+ - table-name: transaction_book_map
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: base_book_id
+ foreign-key: accounting_book_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: base_book_id
+ foreign-key: accounting_book_id
+- table-name: expense_plans
+ join:
+ - table-name: account_activity
+ keys:
+ - key: transaction_book_id
+ foreign-key: accounting_book_id
+ - table-name: accounting_books
+ keys:
+ - key: transaction_book_id
+ foreign-key: accounting_book_id
+ - key: transaction_book_id
+ foreign-key: base_book_id
+ - table-name: account_period_activity
+ keys:
+ - key: transaction_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: transaction_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: budget
+ keys:
+ - key: transaction_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: global_account_map
+ keys:
+ - key: transaction_book_id
+ foreign-key: accounting_book_id
+ - table-name: item_account_map
+ keys:
+ - key: transaction_book_id
+ foreign-key: accounting_book_id
+ - table-name: posting_account_activity
+ keys:
+ - key: transaction_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: transaction_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: transaction_book_map
+ keys:
+ - key: transaction_book_id
+ foreign-key: accounting_book_id
+ - key: related_revenue_arrangement_id
+ foreign-key: transaction_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: transaction_book_id
+ foreign-key: accounting_book_id
+ - key: transaction_line_id
+ foreign-key: transaction_line_id
+ - table-name: accounting_periods
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: accounting_period_id
+ foreign-key: parent_id
+ - key: accounting_period_id
+ foreign-key: year_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: related_revenue_arrangement_id
+ foreign-key: journal_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: customers
+ keys:
+ - key: accounting_period_id
+ foreign-key: first_sale_period_id
+ - key: accounting_period_id
+ foreign-key: last_sale_period_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: plan_id
+ foreign-key: plan_id
+ - key: related_revenue_arrangement_id
+ foreign-key: journal_id
+ - table-name: opportunities
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: related_revenue_arrangement_id
+ foreign-key: reversing-transaction-id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: related_revenue_arrangement_id
+ foreign-key: journal_id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: related_revenue_arrangement_id
+ foreign-key: journal_id
+ - table-name: revenue_plans
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: related_revenue_element_id
+ foreign-key: revenue_element_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: related_revenue_arrangement_id
+ foreign-key: journal_id
+ - table-name: expense_amortization_rules
+ keys:
+ - key: expense_rule_id
+ foreign-key: expense_rule_id
+ - table-name: revenue_elements
+ keys:
+ - key: related_revenue_element_id
+ foreign-key: revenue_element_id
+ - table-name: subscription_line_revisions
+ keys:
+ - key: related_revenue_element_id
+ foreign-key: revenue_element_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: related_revenue_arrangement_id
+ foreign-key: purchase_order_id
+ - key: related_revenue_arrangement_id
+ foreign-key: sales_order_id
+ - table-name: billing_subscriptions
+ keys:
+ - key: related_revenue_arrangement_id
+ foreign-key: sales_order_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: related_revenue_arrangement_id
+ foreign-key: transaction_id
+ - table-name: employee_time
+ keys:
+ - key: related_revenue_arrangement_id
+ foreign-key: transaction_id
+ - key: transaction_line_id
+ foreign-key: transaction_line_id
+ - table-name: notes_system_custom
+ keys:
+ - key: related_revenue_arrangement_id
+ foreign-key: transaction_id
+ - key: transaction_line_id
+ foreign-key: line_id
+ - table-name: notes_system
+ keys:
+ - key: related_revenue_arrangement_id
+ foreign-key: transaction_id
+ - key: transaction_line_id
+ foreign-key: line_id
+ - table-name: notes_user
+ keys:
+ - key: related_revenue_arrangement_id
+ foreign-key: transaction_id
+ - table-name: system_notes_custom
+ keys:
+ - key: related_revenue_arrangement_id
+ foreign-key: transaction_id
+ - key: transaction_line_id
+ foreign-key: line_id
+ - table-name: system_notes
+ keys:
+ - key: related_revenue_arrangement_id
+ foreign-key: transaction_id
+ - key: transaction_line_id
+ foreign-key: line_id
+ - table-name: transaction_address
+ keys:
+ - key: related_revenue_arrangement_id
+ foreign-key: transaction_id
+ - table-name: transaction_history
+ keys:
+ - key: related_revenue_arrangement_id
+ foreign-key: transaction_id
+ - table-name: transaction_lines
+ keys:
+ - key: related_revenue_arrangement_id
+ foreign-key: transaction_id
+ - key: transaction_line_id
+ foreign-key: transaction_line_id
+ - table-name: transaction_links
+ keys:
+ - key: related_revenue_arrangement_id
+ foreign-key: applied_transaction_id
+ - key: related_revenue_arrangement_id
+ foreign-key: original_transaction_id
+ - key: transaction_line_id
+ foreign-key: applied_transaction_line_id
+ - key: transaction_line_id
+ foreign-key: original_transaction_line_id
+ - table-name: transaction_shipping_groups
+ keys:
+ - key: related_revenue_arrangement_id
+ foreign-key: transaction_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: transaction_line_id
+ foreign-key: transaction_line_id
+- table-name: item_account_map
+ join:
+ - table-name: account_activity
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: accounting_books
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_book_id
+ foreign-key: base_book_id
+ - table-name: account_period_activity
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: budget
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_plans
+ keys:
+ - key: accounting_book_id
+ foreign-key: transaction_book_id
+ - table-name: global_account_map
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - table-name: transaction_book_map
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: accounts
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - table-name: classes
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: class_id
+ foreign-key: parent_id
+ - table-name: employee_time
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: employees
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: opportunity_lines
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subscription_plans
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: departments
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: department_id
+ foreign-key: parent_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: billing_accounts
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: location_costing_grp_locations
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: locations
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - key: location_id
+ foreign-key: parent_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: subsidiary_location_map
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: companies
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: to_subsidiary_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: customers
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_inventory_relationships
+ keys:
+ - key: subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: partners
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - table-name: role_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: support_incidents
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiaries
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - table-name: transaction_lines
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: source_subsidiary_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: vendors
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+- table-name: transaction_book_map
+ join:
+ - table-name: account_activity
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: accounting_books
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - key: accounting_book_id
+ foreign-key: base_book_id
+ - table-name: account_period_activity
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: budget
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: expense_plans
+ keys:
+ - key: accounting_book_id
+ foreign-key: transaction_book_id
+ - key: transaction_id
+ foreign-key: related_revenue_arrangement_id
+ - table-name: global_account_map
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: item_account_map
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: posting_account_activity
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: accounting_book_id
+ foreign-key: accounting_book_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: transaction_id
+ foreign-key: purchase_order_id
+ - key: transaction_id
+ foreign-key: sales_order_id
+ - table-name: billing_subscriptions
+ keys:
+ - key: transaction_id
+ foreign-key: sales_order_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: employee_time
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: notes_system_custom
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: notes_system
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: notes_user
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: opportunities
+ keys:
+ - key: transaction_id
+ foreign-key: reversing-transaction-id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: system_notes_custom
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: system_notes
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_address
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_history
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_lines
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_links
+ keys:
+ - key: transaction_id
+ foreign-key: applied_transaction_id
+ - key: transaction_id
+ foreign-key: original_transaction_id
+ - table-name: transaction_shipping_groups
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+- table-name: accounting_periods
+ join:
+ - table-name: account_period_activity
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: parent_id
+ foreign-key: accounting_period_id
+ - key: year_id
+ foreign-key: accounting_period_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: parent_id
+ foreign-key: accounting_period_id
+ - key: year_id
+ foreign-key: accounting_period_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: parent_id
+ foreign-key: accounting_period_id
+ - key: year_id
+ foreign-key: accounting_period_id
+ - table-name: budget
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: parent_id
+ foreign-key: accounting_period_id
+ - key: year_id
+ foreign-key: accounting_period_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: parent_id
+ foreign-key: accounting_period_id
+ - key: year_id
+ foreign-key: accounting_period_id
+ - table-name: customers
+ keys:
+ - key: accounting_period_id
+ foreign-key: first_sale_period_id
+ - key: parent_id
+ foreign-key: first_sale_period_id
+ - key: year_id
+ foreign-key: first_sale_period_id
+ - key: accounting_period_id
+ foreign-key: last_sale_period_id
+ - key: parent_id
+ foreign-key: last_sale_period_id
+ - key: year_id
+ foreign-key: last_sale_period_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: parent_id
+ foreign-key: accounting_period_id
+ - key: year_id
+ foreign-key: accounting_period_id
+ - table-name: expense_plans
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: parent_id
+ foreign-key: accounting_period_id
+ - key: year_id
+ foreign-key: accounting_period_id
+ - table-name: opportunities
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: parent_id
+ foreign-key: accounting_period_id
+ - key: year_id
+ foreign-key: accounting_period_id
+ - table-name: posting_account_activity
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: parent_id
+ foreign-key: accounting_period_id
+ - key: year_id
+ foreign-key: accounting_period_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: parent_id
+ foreign-key: accounting_period_id
+ - key: year_id
+ foreign-key: accounting_period_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: parent_id
+ foreign-key: accounting_period_id
+ - key: year_id
+ foreign-key: accounting_period_id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: parent_id
+ foreign-key: accounting_period_id
+ - key: year_id
+ foreign-key: accounting_period_id
+ - table-name: revenue_plans
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: parent_id
+ foreign-key: accounting_period_id
+ - key: year_id
+ foreign-key: accounting_period_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: parent_id
+ foreign-key: accounting_period_id
+ - key: year_id
+ foreign-key: accounting_period_id
+- table-name: consolidated_exchange_rates
+ join:
+ - table-name: account_period_activity
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: from_subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: accounting_periods
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: accounting_period_id
+ foreign-key: parent_id
+ - key: accounting_period_id
+ foreign-key: year_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: budget
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: customers
+ keys:
+ - key: accounting_period_id
+ foreign-key: first_sale_period_id
+ - key: accounting_period_id
+ foreign-key: last_sale_period_id
+ - key: from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: from_subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: expense_plans
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: opportunities
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: posting_account_activity
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: from_subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: revenue_plans
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: account_activity
+ keys:
+ - key: from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: companies
+ keys:
+ - key: from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: employee_time
+ keys:
+ - key: from_subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: employees
+ keys:
+ - key: from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_account_map
+ keys:
+ - key: from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_inventory_relationships
+ keys:
+ - key: from_subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: from_subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - table-name: item_account_map
+ keys:
+ - key: from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_map
+ keys:
+ - key: from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: opportunity_lines
+ keys:
+ - key: from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: partners
+ keys:
+ - key: from_subsidiary_id
+ foreign-key: subsidiary
+ - key: to_subsidiary_id
+ foreign-key: subsidiary
+ - table-name: role_subsidiary_map
+ keys:
+ - key: from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subscription_plans
+ keys:
+ - key: from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: support_incidents
+ keys:
+ - key: from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiaries
+ keys:
+ - key: from_subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - table-name: transaction_lines
+ keys:
+ - key: from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: from_subsidiary_id
+ foreign-key: source_subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: source_subsidiary_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: from_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: vendors
+ keys:
+ - key: from_subsidiary_id
+ foreign-key: subsidiary
+ - key: to_subsidiary_id
+ foreign-key: subsidiary
+ - key: from_subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - key: to_subsidiary_id
+ foreign-key: represents_subsidiary_id
+- table-name: opportunities
+ join:
+ - table-name: account_period_activity
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: accounting_periods
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: accounting_period_id
+ foreign-key: parent_id
+ - key: accounting_period_id
+ foreign-key: year_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: reversing-transaction-id
+ foreign-key: journal_id
+ - table-name: budget
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: customers
+ keys:
+ - key: accounting_period_id
+ foreign-key: first_sale_period_id
+ - key: accounting_period_id
+ foreign-key: last_sale_period_id
+ - key: lead_source_id
+ foreign-key: lead_source_id
+ - key: sales_rep_id
+ foreign-key: converted_to_id
+ - key: sales_rep_id
+ foreign-key: converted_to_contact_id
+ - key: sales_rep_id
+ foreign-key: sales_rep_id
+ - key: sales_rep_id
+ foreign-key: parent_id
+ - key: partner_id
+ foreign-key: partner_id
+ - key: payment_terms_id
+ foreign-key: payment_terms_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: reversing-transaction-id
+ foreign-key: journal_id
+ - table-name: expense_plans
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: reversing-transaction-id
+ foreign-key: related_revenue_arrangement_id
+ - table-name: posting_account_activity
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: partner_id
+ foreign-key: partner_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: partner_id
+ foreign-key: partner_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: reversing-transaction-id
+ foreign-key: journal_id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: reversing-transaction-id
+ foreign-key: journal_id
+ - table-name: revenue_plans
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: reversing-transaction-id
+ foreign-key: journal_id
+ - table-name: campaign_categories
+ keys:
+ - key: lead_source_id
+ foreign-key: default_campaign_id
+ - table-name: campaignevent
+ keys:
+ - key: lead_source_id
+ foreign-key: campaign_id
+ - table-name: campaignitem
+ keys:
+ - key: lead_source_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: lead_source_id
+ foreign-key: campaign_id
+ - key: sales_rep_id
+ foreign-key: organizer_id
+ - table-name: company_status
+ keys:
+ - key: company_status_id
+ foreign-key: company_status_id
+ - table-name: coupon_codes
+ keys:
+ - key: promotion_code_instance_id
+ foreign-key: coupon_code_id
+ - table-name: accounts
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: billing_class_rates
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: companies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: currencies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: customer_currencies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: employee_currency_map
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: employees
+ keys:
+ - key: currency_id
+ foreign-key: def_expense_report_currency_id
+ - table-name: inbound_shipments
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_billing_rates
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_price_history
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: location_costing_groups
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: sales_reps
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: support_reps
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: campaign_subscription_statuses
+ keys:
+ - key: sales_rep_id
+ foreign-key: entity_id
+ - table-name: campaignresponse
+ keys:
+ - key: sales_rep_id
+ foreign-key: entity_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: sales_rep_id
+ foreign-key: author
+ - key: reversing-transaction-id
+ foreign-key: transaction_id
+ - table-name: caseescalationhistory
+ keys:
+ - key: sales_rep_id
+ foreign-key: escalator_id
+ - key: sales_rep_id
+ foreign-key: entity_id
+ - table-name: contact_types
+ keys:
+ - key: sales_rep_id
+ foreign-key: contact_id
+ - key: sales_rep_id
+ foreign-key: owner_id
+ - table-name: currency_exchange_rates
+ keys:
+ - key: sales_rep_id
+ foreign-key: entity_id
+ - table-name: currencyrates
+ keys:
+ - key: sales_rep_id
+ foreign-key: entity_id
+ - table-name: entity_role_map
+ keys:
+ - key: sales_rep_id
+ foreign-key: entity_id
+ - table-name: entityterritorymap
+ keys:
+ - key: sales_rep_id
+ foreign-key: entity_id
+ - table-name: messagerecipient
+ keys:
+ - key: sales_rep_id
+ foreign-key: entity_id
+ - table-name: notes_system_custom
+ keys:
+ - key: sales_rep_id
+ foreign-key: company_id
+ - key: sales_rep_id
+ foreign-key: author_id
+ - key: reversing-transaction-id
+ foreign-key: transaction_id
+ - table-name: notes_system
+ keys:
+ - key: sales_rep_id
+ foreign-key: company_id
+ - key: sales_rep_id
+ foreign-key: author_id
+ - key: reversing-transaction-id
+ foreign-key: transaction_id
+ - table-name: notes_user
+ keys:
+ - key: sales_rep_id
+ foreign-key: company_id
+ - key: reversing-transaction-id
+ foreign-key: transaction_id
+ - table-name: opportunity_lines
+ keys:
+ - key: sales_rep_id
+ foreign-key: company_id
+ - key: sales_rep_id
+ foreign-key: related_company_id
+ - table-name: resource_group_entity_map
+ keys:
+ - key: sales_rep_id
+ foreign-key: entity_id
+ - table-name: resource_groups
+ keys:
+ - key: sales_rep_id
+ foreign-key: resource_group_id
+ - table-name: support_incidents
+ keys:
+ - key: sales_rep_id
+ foreign-key: owner_id
+ - key: sales_rep_id
+ foreign-key: assigned_id
+ - key: sales_rep_id
+ foreign-key: company_id
+ - table-name: supportcasehistory
+ keys:
+ - key: sales_rep_id
+ foreign-key: employee_id
+ - table-name: system_notes_custom
+ keys:
+ - key: sales_rep_id
+ foreign-key: company_id
+ - key: sales_rep_id
+ foreign-key: author_id
+ - key: sales_rep_id
+ foreign-key: customfield_created_by_id
+ - key: sales_rep_id
+ foreign-key: customfield_modified_by_id
+ - key: reversing-transaction-id
+ foreign-key: transaction_id
+ - table-name: system_notes
+ keys:
+ - key: sales_rep_id
+ foreign-key: company_id
+ - key: sales_rep_id
+ foreign-key: author_id
+ - key: reversing-transaction-id
+ foreign-key: transaction_id
+ - table-name: transaction_address
+ keys:
+ - key: sales_rep_id
+ foreign-key: created_by_id
+ - key: sales_rep_id
+ foreign-key: last_modified_by_id
+ - key: reversing-transaction-id
+ foreign-key: transaction_id
+ - table-name: transaction_history
+ keys:
+ - key: sales_rep_id
+ foreign-key: user_id
+ - key: sales_rep_id
+ foreign-key: entity_id
+ - key: reversing-transaction-id
+ foreign-key: transaction_id
+ - table-name: partners
+ keys:
+ - key: partner_id
+ foreign-key: partner_id
+ - table-name: payment_terms
+ keys:
+ - key: payment_terms_id
+ foreign-key: payment_terms_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: reversing-transaction-id
+ foreign-key: purchase_order_id
+ - key: reversing-transaction-id
+ foreign-key: sales_order_id
+ - table-name: billing_subscriptions
+ keys:
+ - key: reversing-transaction-id
+ foreign-key: sales_order_id
+ - table-name: employee_time
+ keys:
+ - key: reversing-transaction-id
+ foreign-key: transaction_id
+ - table-name: transaction_book_map
+ keys:
+ - key: reversing-transaction-id
+ foreign-key: transaction_id
+ - table-name: transaction_lines
+ keys:
+ - key: reversing-transaction-id
+ foreign-key: transaction_id
+ - table-name: transaction_links
+ keys:
+ - key: reversing-transaction-id
+ foreign-key: applied_transaction_id
+ - key: reversing-transaction-id
+ foreign-key: original_transaction_id
+ - table-name: transaction_shipping_groups
+ keys:
+ - key: reversing-transaction-id
+ foreign-key: transaction_id
+ - table-name: winlossreason
+ keys:
+ - key: win_loss_reason_id
+ foreign-key: win_loss_reason_id
+- table-name: revenue_plan_version_lines
+ join:
+ - table-name: account_period_activity
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: accounting_periods
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: accounting_period_id
+ foreign-key: parent_id
+ - key: accounting_period_id
+ foreign-key: year_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: journal_id
+ foreign-key: journal_id
+ - table-name: budget
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: customers
+ keys:
+ - key: accounting_period_id
+ foreign-key: first_sale_period_id
+ - key: accounting_period_id
+ foreign-key: last_sale_period_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: journal_id
+ foreign-key: journal_id
+ - table-name: expense_plans
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: journal_id
+ foreign-key: related_revenue_arrangement_id
+ - table-name: opportunities
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: journal_id
+ foreign-key: reversing-transaction-id
+ - table-name: posting_account_activity
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: journal_id
+ foreign-key: journal_id
+ - table-name: revenue_plans
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: journal_id
+ foreign-key: journal_id
+ - table-name: revenue_plan_versions
+ keys:
+ - key: plan_version_id
+ foreign-key: plan_version_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: journal_id
+ foreign-key: purchase_order_id
+ - key: journal_id
+ foreign-key: sales_order_id
+ - table-name: billing_subscriptions
+ keys:
+ - key: journal_id
+ foreign-key: sales_order_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: employee_time
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: notes_system_custom
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: notes_system
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: notes_user
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: system_notes_custom
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: system_notes
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: transaction_address
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: transaction_book_map
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: transaction_history
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: transaction_lines
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+ - table-name: transaction_links
+ keys:
+ - key: journal_id
+ foreign-key: applied_transaction_id
+ - key: journal_id
+ foreign-key: original_transaction_id
+ - table-name: transaction_shipping_groups
+ keys:
+ - key: journal_id
+ foreign-key: transaction_id
+- table-name: revenue_plans
+ join:
+ - table-name: account_period_activity
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: accounting_periods
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: accounting_period_id
+ foreign-key: parent_id
+ - key: accounting_period_id
+ foreign-key: year_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: budget
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: customers
+ keys:
+ - key: accounting_period_id
+ foreign-key: first_sale_period_id
+ - key: accounting_period_id
+ foreign-key: last_sale_period_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: expense_plans
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: revenue_element_id
+ foreign-key: related_revenue_element_id
+ - table-name: opportunities
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: posting_account_activity
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - key: plan_id
+ foreign-key: plan_id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: accounting_period_id
+ foreign-key: accounting_period_id
+ - table-name: revenue_elements
+ keys:
+ - key: revenue_element_id
+ foreign-key: revenue_element_id
+ - table-name: subscription_line_revisions
+ keys:
+ - key: revenue_element_id
+ foreign-key: revenue_element_id
+ - table-name: revenue_plan_versions
+ keys:
+ - key: plan_id
+ foreign-key: plan_id
+ - table-name: revenue_recognition_rules
+ keys:
+ - key: rev_rec_rule_id
+ foreign-key: rev_rec_rule_id
+- table-name: address_books
+ join:
+ - table-name: billing_accounts
+ keys:
+ - key: address_book_id
+ foreign-key: address_book_id
+ - key: address_book_id
+ foreign-key: bill_to_address_book_id
+ - key: address_book_id
+ foreign-key: ship_to_address_book_id
+- table-name: billing_accounts
+ join:
+ - table-name: address_books
+ keys:
+ - key: address_book_id
+ foreign-key: address_book_id
+ - key: bill_to_address_book_id
+ foreign-key: address_book_id
+ - key: ship_to_address_book_id
+ foreign-key: address_book_id
+ - table-name: billing_subscriptions
+ keys:
+ - key: billing_account_id
+ foreign-key: billing_account_id
+ - table-name: billing_schedule_descriptions
+ keys:
+ - key: billing_schedule_id
+ foreign-key: billing_schedule_id
+ - table-name: charges
+ keys:
+ - key: billing_schedule_id
+ foreign-key: billing_schedule_id
+ - table-name: customers
+ keys:
+ - key: billing_schedule_id
+ foreign-key: billing_schedule_id
+ - table-name: transaction_lines
+ keys:
+ - key: billing_schedule_id
+ foreign-key: billing_schedule_id
+ - table-name: accounts
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: budget
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: employee_time
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: employees
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: global_account_map
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: item_account_map
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: location_costing_grp_locations
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: locations
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - key: location_id
+ foreign-key: parent_id
+ - table-name: opportunity_lines
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: posting_account_activity
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: subscription_plans
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: subsidiary_location_map
+ keys:
+ - key: location_id
+ foreign-key: location_id
+- table-name: addresses
+ join:
+ - table-name: address_book
+ keys:
+ - key: address_id
+ foreign-key: address_id
+- table-name: address_book
+ join:
+ - table-name: addresses
+ keys:
+ - key: address_id
+ foreign-key: address_id
+- table-name: amortization_schedules
+ join:
+ - table-name: amortization_sched_lines
+ keys:
+ - key: schedule_id
+ foreign-key: schedule_id
+- table-name: billing_subscriptions
+ join:
+ - table-name: billing_accounts
+ keys:
+ - key: billing_account_id
+ foreign-key: billing_account_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: sales_order_id
+ foreign-key: purchase_order_id
+ - key: sales_order_id
+ foreign-key: sales_order_id
+ - table-name: subscription_change_orders
+ keys:
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: default_renewal_plan_id
+ foreign-key: renewal_subscription_plan_id
+ - key: plan_id
+ foreign-key: renewal_subscription_plan_id
+ - key: default_renewal_term_id
+ foreign-key: renewal_term_id
+ - key: initial_term_id
+ foreign-key: renewal_term_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: subscription_id
+ foreign-key: subscription_id
+ - table-name: price_books
+ keys:
+ - key: default_renewal_plan_id
+ foreign-key: plan_id
+ - key: plan_id
+ foreign-key: plan_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: default_renewal_plan_id
+ foreign-key: parent_id
+ - key: plan_id
+ foreign-key: parent_id
+ - table-name: subscription_plans
+ keys:
+ - key: default_renewal_plan_id
+ foreign-key: plan_id
+ - key: plan_id
+ foreign-key: plan_id
+ - key: default_renewal_plan_id
+ foreign-key: default_renewal_plan_id
+ - key: plan_id
+ foreign-key: default_renewal_plan_id
+ - key: default_renewal_term_id
+ foreign-key: initial_term_id
+ - key: initial_term_id
+ foreign-key: initial_term_id
+ - key: default_renewal_term_id
+ foreign-key: default_renewal_term_id
+ - key: initial_term_id
+ foreign-key: default_renewal_term_id
+ - table-name: subscription_terms
+ keys:
+ - key: default_renewal_term_id
+ foreign-key: term_id
+ - key: initial_term_id
+ foreign-key: term_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: sales_order_id
+ foreign-key: journal_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: sales_order_id
+ foreign-key: transaction_id
+ - table-name: employee_time
+ keys:
+ - key: sales_order_id
+ foreign-key: transaction_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: sales_order_id
+ foreign-key: journal_id
+ - table-name: expense_plans
+ keys:
+ - key: sales_order_id
+ foreign-key: related_revenue_arrangement_id
+ - table-name: notes_system_custom
+ keys:
+ - key: sales_order_id
+ foreign-key: transaction_id
+ - table-name: notes_system
+ keys:
+ - key: sales_order_id
+ foreign-key: transaction_id
+ - table-name: notes_user
+ keys:
+ - key: sales_order_id
+ foreign-key: transaction_id
+ - table-name: opportunities
+ keys:
+ - key: sales_order_id
+ foreign-key: reversing-transaction-id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: sales_order_id
+ foreign-key: journal_id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: sales_order_id
+ foreign-key: journal_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: sales_order_id
+ foreign-key: journal_id
+ - table-name: system_notes_custom
+ keys:
+ - key: sales_order_id
+ foreign-key: transaction_id
+ - table-name: system_notes
+ keys:
+ - key: sales_order_id
+ foreign-key: transaction_id
+ - table-name: transaction_address
+ keys:
+ - key: sales_order_id
+ foreign-key: transaction_id
+ - table-name: transaction_book_map
+ keys:
+ - key: sales_order_id
+ foreign-key: transaction_id
+ - table-name: transaction_history
+ keys:
+ - key: sales_order_id
+ foreign-key: transaction_id
+ - table-name: transaction_lines
+ keys:
+ - key: sales_order_id
+ foreign-key: transaction_id
+ - table-name: transaction_links
+ keys:
+ - key: sales_order_id
+ foreign-key: applied_transaction_id
+ - key: sales_order_id
+ foreign-key: original_transaction_id
+ - table-name: transaction_shipping_groups
+ keys:
+ - key: sales_order_id
+ foreign-key: transaction_id
+- table-name: bill_of_materials
+ join:
+ - table-name: bom_revisions
+ keys:
+ - key: bill_of_materials_id
+ foreign-key: bill_of_materials_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: original_assembly_id
+ foreign-key: service_item_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: original_assembly_id
+ foreign-key: item_id
+ - table-name: bom_revision_components
+ keys:
+ - key: original_assembly_id
+ foreign-key: item_id
+ - table-name: budget
+ keys:
+ - key: original_assembly_id
+ foreign-key: item_id
+ - table-name: campaignitem
+ keys:
+ - key: original_assembly_id
+ foreign-key: item_id
+ - table-name: customers
+ keys:
+ - key: original_assembly_id
+ foreign-key: tax_item_id
+ - table-name: item_collection_item_map
+ keys:
+ - key: original_assembly_id
+ foreign-key: item_id
+ - table-name: item_price_history
+ keys:
+ - key: original_assembly_id
+ foreign-key: item_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: original_assembly_id
+ foreign-key: item_id
+ - table-name: item_vendor_map
+ keys:
+ - key: original_assembly_id
+ foreign-key: item_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: original_assembly_id
+ foreign-key: item_id
+ - table-name: items
+ keys:
+ - key: original_assembly_id
+ foreign-key: item_id
+ - table-name: notes_system_custom
+ keys:
+ - key: original_assembly_id
+ foreign-key: item_id
+ - table-name: notes_system
+ keys:
+ - key: original_assembly_id
+ foreign-key: item_id
+ - table-name: notes_user
+ keys:
+ - key: original_assembly_id
+ foreign-key: item_id
+ - table-name: opportunity_lines
+ keys:
+ - key: original_assembly_id
+ foreign-key: item_id
+ - key: original_assembly_id
+ foreign-key: tax_item_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: original_assembly_id
+ foreign-key: item_id
+ - table-name: posting_account_activity
+ keys:
+ - key: original_assembly_id
+ foreign-key: item_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: original_assembly_id
+ foreign-key: item_id
+ - table-name: purchase_charge_rules
+ keys:
+ - key: original_assembly_id
+ foreign-key: mark_up_item_id
+ - table-name: standard_cost_components
+ keys:
+ - key: original_assembly_id
+ foreign-key: component_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: original_assembly_id
+ foreign-key: plan_item_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: original_assembly_id
+ foreign-key: item_id
+ - table-name: support_incidents
+ keys:
+ - key: original_assembly_id
+ foreign-key: item_id
+ - table-name: system_notes_custom
+ keys:
+ - key: original_assembly_id
+ foreign-key: item_id
+ - table-name: system_notes
+ keys:
+ - key: original_assembly_id
+ foreign-key: item_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: original_assembly_id
+ foreign-key: item_id
+- table-name: bom_revisions
+ join:
+ - table-name: bill_of_materials
+ keys:
+ - key: bill_of_materials_id
+ foreign-key: bill_of_materials_id
+ - table-name: bom_revision_components
+ keys:
+ - key: bom_revision_id
+ foreign-key: bom_revision_id
+- table-name: billing_schedule_descriptions
+ join:
+ - table-name: billing_accounts
+ keys:
+ - key: billing_schedule_id
+ foreign-key: billing_schedule_id
+ - table-name: charges
+ keys:
+ - key: billing_schedule_id
+ foreign-key: billing_schedule_id
+ - table-name: customers
+ keys:
+ - key: billing_schedule_id
+ foreign-key: billing_schedule_id
+ - table-name: transaction_lines
+ keys:
+ - key: billing_schedule_id
+ foreign-key: billing_schedule_id
+- table-name: charges
+ join:
+ - table-name: billing_accounts
+ keys:
+ - key: billing_schedule_id
+ foreign-key: billing_schedule_id
+ - table-name: billing_schedule_descriptions
+ keys:
+ - key: billing_schedule_id
+ foreign-key: billing_schedule_id
+ - table-name: customers
+ keys:
+ - key: billing_schedule_id
+ foreign-key: billing_schedule_id
+ - table-name: transaction_lines
+ keys:
+ - key: billing_schedule_id
+ foreign-key: billing_schedule_id
+- table-name: billing_class_rates
+ join:
+ - table-name: billing_rate_card_prices
+ keys:
+ - key: billing_class_id
+ foreign-key: billing_class_id
+ - table-name: employee_time
+ keys:
+ - key: billing_class_id
+ foreign-key: billing_class_id
+ - table-name: employees
+ keys:
+ - key: billing_class_id
+ foreign-key: billing_class_id
+ - key: currency_id
+ foreign-key: def_expense_report_currency_id
+ - table-name: item_billing_rates
+ keys:
+ - key: billing_class_id
+ foreign-key: billing_class_id
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: billing_rate_card_id
+ foreign-key: billing_rate_card_id
+ - table-name: billing_rate_cards_versions
+ keys:
+ - key: billing_rate_card_id
+ foreign-key: billing_rate_card_id
+ - table-name: project_templates
+ keys:
+ - key: billing_rate_card_id
+ foreign-key: template_id
+ - table-name: time_based_charge_rules
+ keys:
+ - key: billing_rate_card_id
+ foreign-key: billing_rate_card_id
+ - table-name: accounts
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: companies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: currencies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: customer_currencies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: employee_currency_map
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: inbound_shipments
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_price_history
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: location_costing_groups
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: opportunities
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: sales_reps
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: support_reps
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+- table-name: billing_rate_card_prices
+ join:
+ - table-name: billing_class_rates
+ keys:
+ - key: billing_class_id
+ foreign-key: billing_class_id
+ - table-name: employee_time
+ keys:
+ - key: billing_class_id
+ foreign-key: billing_class_id
+ - table-name: employees
+ keys:
+ - key: billing_class_id
+ foreign-key: billing_class_id
+ - table-name: item_billing_rates
+ keys:
+ - key: billing_class_id
+ foreign-key: billing_class_id
+- table-name: employee_time
+ join:
+ - table-name: billing_class_rates
+ keys:
+ - key: billing_class_id
+ foreign-key: billing_class_id
+ - table-name: billing_rate_card_prices
+ keys:
+ - key: billing_class_id
+ foreign-key: billing_class_id
+ - table-name: employees
+ keys:
+ - key: billing_class_id
+ foreign-key: billing_class_id
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_billing_rates
+ keys:
+ - key: billing_class_id
+ foreign-key: billing_class_id
+ - key: price_type_id
+ foreign-key: price_type_id
+ - key: item_id
+ foreign-key: item_id
+ - table-name: accounts
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - table-name: budget
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: classes
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: class_id
+ foreign-key: parent_id
+ - table-name: global_account_map
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_account_map
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: opportunity_lines
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: payroll_item_id
+ foreign-key: payroll_item_id
+ - key: price_type_id
+ foreign-key: price_type_id
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: billing_subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - table-name: subscription_plans
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: billing_rate_cards
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: customer_currencies
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: customer_id
+ foreign-key: top_level_parent_id
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: billing_subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: account_activity
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: billing_subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: departments
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: department_id
+ foreign-key: parent_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: billing_accounts
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: location_costing_grp_locations
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: locations
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - key: location_id
+ foreign-key: parent_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: subsidiary_location_map
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: payroll_item_id
+ keys:
+ - key: payroll_item_id
+ foreign-key: payroll_item_id
+ - table-name: item_price_history
+ keys:
+ - key: price_type_id
+ foreign-key: price_type_id
+ - table-name: price_types
+ keys:
+ - key: price_type_id
+ foreign-key: price_type_id
+ - table-name: project_revenue_rules
+ keys:
+ - key: item_id
+ foreign-key: service_item_id
+ - table-name: service_items
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: companies
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: billing_subsidiary_id
+ foreign-key: to_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: to_subsidiary_id
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_inventory_relationships
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: billing_subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_map
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: partners
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - table-name: role_subsidiary_map
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: support_incidents
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiaries
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - table-name: transaction_lines
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: billing_subsidiary_id
+ foreign-key: source_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: source_subsidiary_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: transaction_line_id
+ foreign-key: transaction_line_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: vendors
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - key: billing_subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: transaction_id
+ foreign-key: purchase_order_id
+ - key: transaction_id
+ foreign-key: sales_order_id
+ - table-name: billing_subscriptions
+ keys:
+ - key: transaction_id
+ foreign-key: sales_order_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: expense_plans
+ keys:
+ - key: transaction_id
+ foreign-key: related_revenue_arrangement_id
+ - key: transaction_line_id
+ foreign-key: transaction_line_id
+ - table-name: notes_system_custom
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: transaction_line_id
+ foreign-key: line_id
+ - table-name: notes_system
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: transaction_line_id
+ foreign-key: line_id
+ - table-name: notes_user
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: opportunities
+ keys:
+ - key: transaction_id
+ foreign-key: reversing-transaction-id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: system_notes_custom
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: transaction_line_id
+ foreign-key: line_id
+ - table-name: system_notes
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: transaction_line_id
+ foreign-key: line_id
+ - table-name: transaction_address
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_book_map
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_history
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_links
+ keys:
+ - key: transaction_id
+ foreign-key: applied_transaction_id
+ - key: transaction_id
+ foreign-key: original_transaction_id
+ - key: transaction_line_id
+ foreign-key: applied_transaction_line_id
+ - key: transaction_line_id
+ foreign-key: original_transaction_line_id
+ - table-name: transaction_shipping_groups
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: transaction_line_id
+ foreign-key: transaction_line_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: transaction_line_id
+ foreign-key: transaction_line_id
+- table-name: item_billing_rates
+ join:
+ - table-name: billing_class_rates
+ keys:
+ - key: billing_class_id
+ foreign-key: billing_class_id
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: billing_rate_card_prices
+ keys:
+ - key: billing_class_id
+ foreign-key: billing_class_id
+ - table-name: employee_time
+ keys:
+ - key: billing_class_id
+ foreign-key: billing_class_id
+ - key: price_type_id
+ foreign-key: price_type_id
+ - key: item_id
+ foreign-key: item_id
+ - table-name: employees
+ keys:
+ - key: billing_class_id
+ foreign-key: billing_class_id
+ - key: currency_id
+ foreign-key: def_expense_report_currency_id
+ - table-name: accounts
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: companies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: currencies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: customer_currencies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: employee_currency_map
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: inbound_shipments
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_price_history
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - key: price_type_id
+ foreign-key: price_type_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: location_costing_groups
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: opportunities
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: sales_reps
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: support_reps
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: opportunity_lines
+ keys:
+ - key: price_type_id
+ foreign-key: price_type_id
+ - table-name: price_types
+ keys:
+ - key: price_type_id
+ foreign-key: price_type_id
+ - table-name: project_revenue_rules
+ keys:
+ - key: item_id
+ foreign-key: service_item_id
+ - table-name: service_items
+ keys:
+ - key: item_id
+ foreign-key: item_id
+- table-name: billing_rate_cards_prices
+ join:
+ - table-name: billing_class_rates
+ keys:
+ - key: billing_rate_card_id
+ foreign-key: billing_rate_card_id
+ - table-name: billing_rate_cards_versions
+ keys:
+ - key: billing_rate_card_id
+ foreign-key: billing_rate_card_id
+ - key: version0
+ foreign-key: version0
+ - table-name: project_templates
+ keys:
+ - key: billing_rate_card_id
+ foreign-key: template_id
+ - table-name: time_based_charge_rules
+ keys:
+ - key: billing_rate_card_id
+ foreign-key: billing_rate_card_id
+ - table-name: bill_of_materials
+ keys:
+ - key: service_item_id
+ foreign-key: original_assembly_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: service_item_id
+ foreign-key: item_id
+ - table-name: bom_revision_components
+ keys:
+ - key: service_item_id
+ foreign-key: item_id
+ - key: sales_unit_id
+ foreign-key: unit_of_measure_id
+ - table-name: budget
+ keys:
+ - key: service_item_id
+ foreign-key: item_id
+ - table-name: campaignitem
+ keys:
+ - key: service_item_id
+ foreign-key: item_id
+ - table-name: customers
+ keys:
+ - key: service_item_id
+ foreign-key: tax_item_id
+ - table-name: item_collection_item_map
+ keys:
+ - key: service_item_id
+ foreign-key: item_id
+ - table-name: item_price_history
+ keys:
+ - key: service_item_id
+ foreign-key: item_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: service_item_id
+ foreign-key: item_id
+ - table-name: item_vendor_map
+ keys:
+ - key: service_item_id
+ foreign-key: item_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: service_item_id
+ foreign-key: item_id
+ - table-name: items
+ keys:
+ - key: service_item_id
+ foreign-key: item_id
+ - table-name: notes_system_custom
+ keys:
+ - key: service_item_id
+ foreign-key: item_id
+ - table-name: notes_system
+ keys:
+ - key: service_item_id
+ foreign-key: item_id
+ - table-name: notes_user
+ keys:
+ - key: service_item_id
+ foreign-key: item_id
+ - table-name: opportunity_lines
+ keys:
+ - key: service_item_id
+ foreign-key: item_id
+ - key: service_item_id
+ foreign-key: tax_item_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: service_item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity
+ keys:
+ - key: service_item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: service_item_id
+ foreign-key: item_id
+ - table-name: purchase_charge_rules
+ keys:
+ - key: service_item_id
+ foreign-key: mark_up_item_id
+ - table-name: standard_cost_components
+ keys:
+ - key: service_item_id
+ foreign-key: component_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: service_item_id
+ foreign-key: plan_item_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: service_item_id
+ foreign-key: item_id
+ - table-name: support_incidents
+ keys:
+ - key: service_item_id
+ foreign-key: item_id
+ - table-name: system_notes_custom
+ keys:
+ - key: service_item_id
+ foreign-key: item_id
+ - table-name: system_notes
+ keys:
+ - key: service_item_id
+ foreign-key: item_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: service_item_id
+ foreign-key: item_id
+ - table-name: unit_types
+ keys:
+ - key: unit_type_id
+ foreign-key: unit_type_id
+ - table-name: item_group
+ keys:
+ - key: sales_unit_id
+ foreign-key: unit_of_measure_id
+ - table-name: uom
+ keys:
+ - key: sales_unit_id
+ foreign-key: uom_id
+- table-name: billing_rate_cards_versions
+ join:
+ - table-name: billing_class_rates
+ keys:
+ - key: billing_rate_card_id
+ foreign-key: billing_rate_card_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: billing_rate_card_id
+ foreign-key: billing_rate_card_id
+ - key: version0
+ foreign-key: version0
+ - table-name: project_templates
+ keys:
+ - key: billing_rate_card_id
+ foreign-key: template_id
+ - key: last_modified_by_id
+ foreign-key: project_manager_id
+ - table-name: time_based_charge_rules
+ keys:
+ - key: billing_rate_card_id
+ foreign-key: billing_rate_card_id
+ - table-name: customers
+ keys:
+ - key: last_modified_by_id
+ foreign-key: project_manager_id
+ - table-name: employee_currency_map
+ keys:
+ - key: last_modified_by_id
+ foreign-key: employee_id
+ - table-name: employees
+ keys:
+ - key: last_modified_by_id
+ foreign-key: employee_id
+ - key: last_modified_by_id
+ foreign-key: approver_id
+ - key: last_modified_by_id
+ foreign-key: supervisor_id
+ - table-name: project_revenue_rules
+ keys:
+ - key: last_modified_by_id
+ foreign-key: created_by
+ - key: last_modified_by_id
+ foreign-key: last_modified_by
+ - table-name: revenue_plan_versions
+ keys:
+ - key: last_modified_by_id
+ foreign-key: created_by_id
+ - table-name: subscription_change_orders
+ keys:
+ - key: last_modified_by_id
+ foreign-key: requester_id
+ - table-name: unlocked_time_periods
+ keys:
+ - key: last_modified_by_id
+ foreign-key: last_modified_by_id
+ - key: last_modified_by_id
+ foreign-key: employee_id
+ - table-name: vendors
+ keys:
+ - key: last_modified_by_id
+ foreign-key: time_approver_id
+- table-name: project_templates
+ join:
+ - table-name: billing_class_rates
+ keys:
+ - key: template_id
+ foreign-key: billing_rate_card_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: template_id
+ foreign-key: billing_rate_card_id
+ - table-name: billing_rate_cards_versions
+ keys:
+ - key: template_id
+ foreign-key: billing_rate_card_id
+ - key: project_manager_id
+ foreign-key: last_modified_by_id
+ - table-name: time_based_charge_rules
+ keys:
+ - key: template_id
+ foreign-key: billing_rate_card_id
+ - table-name: customers
+ keys:
+ - key: project_manager_id
+ foreign-key: project_manager_id
+ - table-name: employee_currency_map
+ keys:
+ - key: project_manager_id
+ foreign-key: employee_id
+ - table-name: employees
+ keys:
+ - key: project_manager_id
+ foreign-key: employee_id
+ - key: project_manager_id
+ foreign-key: approver_id
+ - key: project_manager_id
+ foreign-key: supervisor_id
+ - table-name: project_revenue_rules
+ keys:
+ - key: project_manager_id
+ foreign-key: created_by
+ - key: project_manager_id
+ foreign-key: last_modified_by
+ - table-name: revenue_plan_versions
+ keys:
+ - key: project_manager_id
+ foreign-key: created_by_id
+ - table-name: subscription_change_orders
+ keys:
+ - key: project_manager_id
+ foreign-key: requester_id
+ - table-name: unlocked_time_periods
+ keys:
+ - key: project_manager_id
+ foreign-key: last_modified_by_id
+ - key: project_manager_id
+ foreign-key: employee_id
+ - table-name: vendors
+ keys:
+ - key: project_manager_id
+ foreign-key: time_approver_id
+- table-name: time_based_charge_rules
+ join:
+ - table-name: billing_class_rates
+ keys:
+ - key: billing_rate_card_id
+ foreign-key: billing_rate_card_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: billing_rate_card_id
+ foreign-key: billing_rate_card_id
+ - table-name: billing_rate_cards_versions
+ keys:
+ - key: billing_rate_card_id
+ foreign-key: billing_rate_card_id
+ - table-name: project_templates
+ keys:
+ - key: billing_rate_card_id
+ foreign-key: template_id
+- table-name: billing_subscription_lines
+ join:
+ - table-name: subscript_line_price_intervals
+ keys:
+ - key: subline_id
+ foreign-key: subscription_line_id
+ - key: usage_multiplier_line_id
+ foreign-key: subscription_line_id
+ - key: subscription_plan_line_id
+ foreign-key: plan_line_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: subline_id
+ foreign-key: subscription_line_id
+ - key: usage_multiplier_line_id
+ foreign-key: subscription_line_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: item_id
+ foreign-key: plan_item_id
+ - table-name: subscription_line_revisions
+ keys:
+ - key: subline_id
+ foreign-key: subscription_line_id
+ - key: usage_multiplier_line_id
+ foreign-key: subscription_line_id
+ - table-name: billing_subscriptions
+ keys:
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: purchase_order_id
+ foreign-key: sales_order_id
+ - key: sales_order_id
+ foreign-key: sales_order_id
+ - table-name: subscription_change_orders
+ keys:
+ - key: subscription_id
+ foreign-key: subscription_id
+ - table-name: bill_of_materials
+ keys:
+ - key: item_id
+ foreign-key: original_assembly_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: item_id
+ foreign-key: service_item_id
+ - table-name: bom_revision_components
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: budget
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: campaignitem
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: customers
+ keys:
+ - key: item_id
+ foreign-key: tax_item_id
+ - table-name: item_collection_item_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_price_history
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_vendor_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: items
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_system_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: purchase_order_id
+ foreign-key: transaction_id
+ - key: sales_order_id
+ foreign-key: transaction_id
+ - table-name: notes_system
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: purchase_order_id
+ foreign-key: transaction_id
+ - key: sales_order_id
+ foreign-key: transaction_id
+ - table-name: notes_user
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: purchase_order_id
+ foreign-key: transaction_id
+ - key: sales_order_id
+ foreign-key: transaction_id
+ - table-name: opportunity_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: purchase_charge_rules
+ keys:
+ - key: item_id
+ foreign-key: mark_up_item_id
+ - table-name: standard_cost_components
+ keys:
+ - key: item_id
+ foreign-key: component_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: subscription_plan_line_id
+ foreign-key: plan_line_id
+ - key: subscription_plan_line_id
+ foreign-key: usage_multiplier_line_id
+ - table-name: support_incidents
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: system_notes_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: purchase_order_id
+ foreign-key: transaction_id
+ - key: sales_order_id
+ foreign-key: transaction_id
+ - table-name: system_notes
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: purchase_order_id
+ foreign-key: transaction_id
+ - key: sales_order_id
+ foreign-key: transaction_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: price_book_line_intervals
+ keys:
+ - key: subscription_plan_line_id
+ foreign-key: plan_line_id
+ - key: subscription_plan_line_id
+ foreign-key: usage_multiplier_line_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: purchase_order_id
+ foreign-key: journal_id
+ - key: sales_order_id
+ foreign-key: journal_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: purchase_order_id
+ foreign-key: transaction_id
+ - key: sales_order_id
+ foreign-key: transaction_id
+ - table-name: employee_time
+ keys:
+ - key: purchase_order_id
+ foreign-key: transaction_id
+ - key: sales_order_id
+ foreign-key: transaction_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: purchase_order_id
+ foreign-key: journal_id
+ - key: sales_order_id
+ foreign-key: journal_id
+ - table-name: expense_plans
+ keys:
+ - key: purchase_order_id
+ foreign-key: related_revenue_arrangement_id
+ - key: sales_order_id
+ foreign-key: related_revenue_arrangement_id
+ - table-name: opportunities
+ keys:
+ - key: purchase_order_id
+ foreign-key: reversing-transaction-id
+ - key: sales_order_id
+ foreign-key: reversing-transaction-id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: purchase_order_id
+ foreign-key: journal_id
+ - key: sales_order_id
+ foreign-key: journal_id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: purchase_order_id
+ foreign-key: journal_id
+ - key: sales_order_id
+ foreign-key: journal_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: purchase_order_id
+ foreign-key: journal_id
+ - key: sales_order_id
+ foreign-key: journal_id
+ - table-name: transaction_address
+ keys:
+ - key: purchase_order_id
+ foreign-key: transaction_id
+ - key: sales_order_id
+ foreign-key: transaction_id
+ - table-name: transaction_book_map
+ keys:
+ - key: purchase_order_id
+ foreign-key: transaction_id
+ - key: sales_order_id
+ foreign-key: transaction_id
+ - table-name: transaction_history
+ keys:
+ - key: purchase_order_id
+ foreign-key: transaction_id
+ - key: sales_order_id
+ foreign-key: transaction_id
+ - table-name: transaction_lines
+ keys:
+ - key: purchase_order_id
+ foreign-key: transaction_id
+ - key: sales_order_id
+ foreign-key: transaction_id
+ - table-name: transaction_links
+ keys:
+ - key: purchase_order_id
+ foreign-key: applied_transaction_id
+ - key: sales_order_id
+ foreign-key: applied_transaction_id
+ - key: purchase_order_id
+ foreign-key: original_transaction_id
+ - key: sales_order_id
+ foreign-key: original_transaction_id
+ - table-name: transaction_shipping_groups
+ keys:
+ - key: purchase_order_id
+ foreign-key: transaction_id
+ - key: sales_order_id
+ foreign-key: transaction_id
+- table-name: subscript_line_price_intervals
+ join:
+ - table-name: billing_subscription_lines
+ keys:
+ - key: subscription_line_id
+ foreign-key: subline_id
+ - key: subscription_line_id
+ foreign-key: usage_multiplier_line_id
+ - key: plan_line_id
+ foreign-key: subscription_plan_line_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: subscription_line_id
+ foreign-key: subscription_line_id
+ - table-name: subscription_line_revisions
+ keys:
+ - key: subscription_line_id
+ foreign-key: subscription_line_id
+ - table-name: price_book_line_intervals
+ keys:
+ - key: plan_line_id
+ foreign-key: plan_line_id
+ - key: plan_line_id
+ foreign-key: usage_multiplier_line_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: plan_line_id
+ foreign-key: plan_line_id
+ - key: plan_line_id
+ foreign-key: usage_multiplier_line_id
+- table-name: subscription_co_lines
+ join:
+ - table-name: billing_subscription_lines
+ keys:
+ - key: subscription_line_id
+ foreign-key: subline_id
+ - key: subscription_line_id
+ foreign-key: usage_multiplier_line_id
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: plan_item_id
+ foreign-key: item_id
+ - table-name: subscript_line_price_intervals
+ keys:
+ - key: subscription_line_id
+ foreign-key: subscription_line_id
+ - table-name: subscription_line_revisions
+ keys:
+ - key: subscription_line_id
+ foreign-key: subscription_line_id
+ - key: change_order_id
+ foreign-key: change_order_id
+ - table-name: billing_subscriptions
+ keys:
+ - key: subscription_id
+ foreign-key: subscription_id
+ - table-name: subscription_change_orders
+ keys:
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: change_order_id
+ foreign-key: change_order_id
+ - table-name: bill_of_materials
+ keys:
+ - key: plan_item_id
+ foreign-key: original_assembly_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: plan_item_id
+ foreign-key: service_item_id
+ - table-name: bom_revision_components
+ keys:
+ - key: plan_item_id
+ foreign-key: item_id
+ - table-name: budget
+ keys:
+ - key: plan_item_id
+ foreign-key: item_id
+ - table-name: campaignitem
+ keys:
+ - key: plan_item_id
+ foreign-key: item_id
+ - table-name: customers
+ keys:
+ - key: plan_item_id
+ foreign-key: tax_item_id
+ - table-name: item_collection_item_map
+ keys:
+ - key: plan_item_id
+ foreign-key: item_id
+ - table-name: item_price_history
+ keys:
+ - key: plan_item_id
+ foreign-key: item_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: plan_item_id
+ foreign-key: item_id
+ - table-name: item_vendor_map
+ keys:
+ - key: plan_item_id
+ foreign-key: item_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: plan_item_id
+ foreign-key: item_id
+ - table-name: items
+ keys:
+ - key: plan_item_id
+ foreign-key: item_id
+ - table-name: notes_system_custom
+ keys:
+ - key: plan_item_id
+ foreign-key: item_id
+ - table-name: notes_system
+ keys:
+ - key: plan_item_id
+ foreign-key: item_id
+ - table-name: notes_user
+ keys:
+ - key: plan_item_id
+ foreign-key: item_id
+ - table-name: opportunity_lines
+ keys:
+ - key: plan_item_id
+ foreign-key: item_id
+ - key: plan_item_id
+ foreign-key: tax_item_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: plan_item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity
+ keys:
+ - key: plan_item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: plan_item_id
+ foreign-key: item_id
+ - table-name: purchase_charge_rules
+ keys:
+ - key: plan_item_id
+ foreign-key: mark_up_item_id
+ - table-name: standard_cost_components
+ keys:
+ - key: plan_item_id
+ foreign-key: component_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: plan_item_id
+ foreign-key: item_id
+ - table-name: support_incidents
+ keys:
+ - key: plan_item_id
+ foreign-key: item_id
+ - table-name: system_notes_custom
+ keys:
+ - key: plan_item_id
+ foreign-key: item_id
+ - table-name: system_notes
+ keys:
+ - key: plan_item_id
+ foreign-key: item_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: plan_item_id
+ foreign-key: item_id
+- table-name: subscription_line_revisions
+ join:
+ - table-name: billing_subscription_lines
+ keys:
+ - key: subscription_line_id
+ foreign-key: subline_id
+ - key: subscription_line_id
+ foreign-key: usage_multiplier_line_id
+ - table-name: subscript_line_price_intervals
+ keys:
+ - key: subscription_line_id
+ foreign-key: subscription_line_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: subscription_line_id
+ foreign-key: subscription_line_id
+ - key: change_order_id
+ foreign-key: change_order_id
+ - table-name: price_book_line_intervals
+ keys:
+ - key: price_plan_id
+ foreign-key: price_plan_id
+ - key: overage_price_plan_id
+ foreign-key: price_plan_id
+ - key: price_plan_id
+ foreign-key: overage_price_plan_id
+ - key: overage_price_plan_id
+ foreign-key: overage_price_plan_id
+ - table-name: price_plans
+ keys:
+ - key: price_plan_id
+ foreign-key: price_plan_id
+ - key: overage_price_plan_id
+ foreign-key: price_plan_id
+ - table-name: price_tiers
+ keys:
+ - key: price_plan_id
+ foreign-key: price_plan_id
+ - key: overage_price_plan_id
+ foreign-key: price_plan_id
+ - table-name: expense_plans
+ keys:
+ - key: revenue_element_id
+ foreign-key: related_revenue_element_id
+ - table-name: revenue_elements
+ keys:
+ - key: revenue_element_id
+ foreign-key: revenue_element_id
+ - table-name: revenue_plans
+ keys:
+ - key: revenue_element_id
+ foreign-key: revenue_element_id
+ - table-name: subscription_change_orders
+ keys:
+ - key: change_order_id
+ foreign-key: change_order_id
+- table-name: subscription_change_orders
+ join:
+ - table-name: billing_subscriptions
+ keys:
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: renewal_subscription_plan_id
+ foreign-key: default_renewal_plan_id
+ - key: renewal_subscription_plan_id
+ foreign-key: plan_id
+ - key: renewal_term_id
+ foreign-key: default_renewal_term_id
+ - key: renewal_term_id
+ foreign-key: initial_term_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: subscription_id
+ foreign-key: subscription_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: subscription_id
+ foreign-key: subscription_id
+ - key: change_order_id
+ foreign-key: change_order_id
+ - table-name: billing_rate_cards_versions
+ keys:
+ - key: requester_id
+ foreign-key: last_modified_by_id
+ - table-name: customers
+ keys:
+ - key: requester_id
+ foreign-key: project_manager_id
+ - table-name: employee_currency_map
+ keys:
+ - key: requester_id
+ foreign-key: employee_id
+ - table-name: employees
+ keys:
+ - key: requester_id
+ foreign-key: employee_id
+ - key: requester_id
+ foreign-key: approver_id
+ - key: requester_id
+ foreign-key: supervisor_id
+ - table-name: project_revenue_rules
+ keys:
+ - key: requester_id
+ foreign-key: created_by
+ - key: requester_id
+ foreign-key: last_modified_by
+ - table-name: project_templates
+ keys:
+ - key: requester_id
+ foreign-key: project_manager_id
+ - table-name: revenue_plan_versions
+ keys:
+ - key: requester_id
+ foreign-key: created_by_id
+ - table-name: unlocked_time_periods
+ keys:
+ - key: requester_id
+ foreign-key: last_modified_by_id
+ - key: requester_id
+ foreign-key: employee_id
+ - table-name: vendors
+ keys:
+ - key: requester_id
+ foreign-key: time_approver_id
+ - table-name: subscription_line_revisions
+ keys:
+ - key: change_order_id
+ foreign-key: change_order_id
+ - table-name: price_books
+ keys:
+ - key: renewal_subscription_plan_id
+ foreign-key: plan_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: renewal_subscription_plan_id
+ foreign-key: parent_id
+ - table-name: subscription_plans
+ keys:
+ - key: renewal_subscription_plan_id
+ foreign-key: plan_id
+ - key: renewal_subscription_plan_id
+ foreign-key: default_renewal_plan_id
+ - key: renewal_term_id
+ foreign-key: initial_term_id
+ - key: renewal_term_id
+ foreign-key: default_renewal_term_id
+ - table-name: subscription_terms
+ keys:
+ - key: renewal_term_id
+ foreign-key: term_id
+- table-name: bom_revision_components
+ join:
+ - table-name: bom_revisions
+ keys:
+ - key: bom_revision_id
+ foreign-key: bom_revision_id
+ - table-name: bill_of_materials
+ keys:
+ - key: item_id
+ foreign-key: original_assembly_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: item_id
+ foreign-key: service_item_id
+ - key: unit_of_measure_id
+ foreign-key: sales_unit_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: budget
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: campaignitem
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: customers
+ keys:
+ - key: item_id
+ foreign-key: tax_item_id
+ - table-name: item_collection_item_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_price_history
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_vendor_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: items
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_system_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_system
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_user
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: opportunity_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: purchase_charge_rules
+ keys:
+ - key: item_id
+ foreign-key: mark_up_item_id
+ - table-name: standard_cost_components
+ keys:
+ - key: item_id
+ foreign-key: component_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: item_id
+ foreign-key: plan_item_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: support_incidents
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: system_notes_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: system_notes
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_group
+ keys:
+ - key: unit_of_measure_id
+ foreign-key: unit_of_measure_id
+ - table-name: uom
+ keys:
+ - key: unit_of_measure_id
+ foreign-key: uom_id
+- table-name: budget_category
+ join:
+ - table-name: budget
+ keys:
+ - key: category_id
+ foreign-key: category_id
+- table-name: campaign_categories
+ join:
+ - table-name: campaignevent
+ keys:
+ - key: default_campaign_id
+ foreign-key: campaign_id
+ - table-name: campaignitem
+ keys:
+ - key: default_campaign_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: default_campaign_id
+ foreign-key: campaign_id
+ - key: campaigncategory_id
+ foreign-key: category_id
+ - key: parent_id
+ foreign-key: category_id
+ - table-name: customers
+ keys:
+ - key: default_campaign_id
+ foreign-key: lead_source_id
+ - table-name: opportunities
+ keys:
+ - key: default_campaign_id
+ foreign-key: lead_source_id
+- table-name: campaignevent
+ join:
+ - table-name: campaign_categories
+ keys:
+ - key: campaign_id
+ foreign-key: default_campaign_id
+ - table-name: campaignitem
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: customers
+ keys:
+ - key: campaign_id
+ foreign-key: lead_source_id
+ - table-name: opportunities
+ keys:
+ - key: campaign_id
+ foreign-key: lead_source_id
+ - table-name: campaignchannel
+ keys:
+ - key: channel_id
+ foreign-key: campaign_channel_id
+ - table-name: campaignresponse
+ keys:
+ - key: campaign_event_id
+ foreign-key: campaign_event_id
+ - table-name: campaign_subscription_statuses
+ keys:
+ - key: subscription_id
+ foreign-key: subscription_id
+ - table-name: campaign_subscriptions
+ keys:
+ - key: subscription_id
+ foreign-key: campaignsubscription_id
+ - table-name: crmgroup
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: crmtemplate
+ keys:
+ - key: template_id
+ foreign-key: crmtemplate_id
+ - table-name: posting_account_activity
+ keys:
+ - key: promotion_code_id
+ foreign-key: promotion_code_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: promotion_code_id
+ foreign-key: promotion_code_id
+ - table-name: promotion_codes
+ keys:
+ - key: promotion_code_id
+ foreign-key: promotion_code_id
+ - table-name: group_test_cell
+ keys:
+ - key: test_cell_id
+ foreign-key: test_cell_id
+- table-name: campaignitem
+ join:
+ - table-name: campaign_categories
+ keys:
+ - key: campaign_id
+ foreign-key: default_campaign_id
+ - table-name: campaignevent
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: customers
+ keys:
+ - key: campaign_id
+ foreign-key: lead_source_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - table-name: opportunities
+ keys:
+ - key: campaign_id
+ foreign-key: lead_source_id
+ - table-name: bill_of_materials
+ keys:
+ - key: item_id
+ foreign-key: original_assembly_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: item_id
+ foreign-key: service_item_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: bom_revision_components
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: budget
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_collection_item_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_price_history
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_vendor_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: items
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_system_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_system
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_user
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: opportunity_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: purchase_charge_rules
+ keys:
+ - key: item_id
+ foreign-key: mark_up_item_id
+ - table-name: standard_cost_components
+ keys:
+ - key: item_id
+ foreign-key: component_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: item_id
+ foreign-key: plan_item_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: support_incidents
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: system_notes_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: system_notes
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: item_id
+ foreign-key: item_id
+- table-name: campaigns
+ join:
+ - table-name: campaign_categories
+ keys:
+ - key: campaign_id
+ foreign-key: default_campaign_id
+ - key: category_id
+ foreign-key: campaigncategory_id
+ - key: category_id
+ foreign-key: parent_id
+ - table-name: campaignevent
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: campaignitem
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: customers
+ keys:
+ - key: campaign_id
+ foreign-key: lead_source_id
+ - key: organizer_id
+ foreign-key: converted_to_id
+ - key: organizer_id
+ foreign-key: converted_to_contact_id
+ - key: organizer_id
+ foreign-key: sales_rep_id
+ - key: organizer_id
+ foreign-key: parent_id
+ - table-name: opportunities
+ keys:
+ - key: campaign_id
+ foreign-key: lead_source_id
+ - key: organizer_id
+ foreign-key: sales_rep_id
+ - table-name: campaign_audiences
+ keys:
+ - key: audience_id
+ foreign-key: campaignaudience_id
+ - table-name: campaign_families
+ keys:
+ - key: family_id
+ foreign-key: campaignfamily_id
+ - table-name: campaignoffer
+ keys:
+ - key: offer_id
+ foreign-key: offer_id
+ - table-name: campaign_verticals
+ keys:
+ - key: vertical_id
+ foreign-key: vertical_id
+ - table-name: campaign_subscription_statuses
+ keys:
+ - key: organizer_id
+ foreign-key: entity_id
+ - table-name: campaignresponse
+ keys:
+ - key: organizer_id
+ foreign-key: entity_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: organizer_id
+ foreign-key: author
+ - table-name: caseescalationhistory
+ keys:
+ - key: organizer_id
+ foreign-key: escalator_id
+ - key: organizer_id
+ foreign-key: entity_id
+ - table-name: contact_types
+ keys:
+ - key: organizer_id
+ foreign-key: contact_id
+ - key: organizer_id
+ foreign-key: owner_id
+ - table-name: currency_exchange_rates
+ keys:
+ - key: organizer_id
+ foreign-key: entity_id
+ - table-name: currencyrates
+ keys:
+ - key: organizer_id
+ foreign-key: entity_id
+ - table-name: entity_role_map
+ keys:
+ - key: organizer_id
+ foreign-key: entity_id
+ - table-name: entityterritorymap
+ keys:
+ - key: organizer_id
+ foreign-key: entity_id
+ - table-name: messagerecipient
+ keys:
+ - key: organizer_id
+ foreign-key: entity_id
+ - table-name: notes_system_custom
+ keys:
+ - key: organizer_id
+ foreign-key: company_id
+ - key: organizer_id
+ foreign-key: author_id
+ - table-name: notes_system
+ keys:
+ - key: organizer_id
+ foreign-key: company_id
+ - key: organizer_id
+ foreign-key: author_id
+ - table-name: notes_user
+ keys:
+ - key: organizer_id
+ foreign-key: company_id
+ - table-name: opportunity_lines
+ keys:
+ - key: organizer_id
+ foreign-key: company_id
+ - key: organizer_id
+ foreign-key: related_company_id
+ - table-name: resource_group_entity_map
+ keys:
+ - key: organizer_id
+ foreign-key: entity_id
+ - table-name: resource_groups
+ keys:
+ - key: organizer_id
+ foreign-key: resource_group_id
+ - table-name: support_incidents
+ keys:
+ - key: organizer_id
+ foreign-key: owner_id
+ - key: organizer_id
+ foreign-key: assigned_id
+ - key: organizer_id
+ foreign-key: company_id
+ - table-name: supportcasehistory
+ keys:
+ - key: organizer_id
+ foreign-key: employee_id
+ - table-name: system_notes_custom
+ keys:
+ - key: organizer_id
+ foreign-key: company_id
+ - key: organizer_id
+ foreign-key: author_id
+ - key: organizer_id
+ foreign-key: customfield_created_by_id
+ - key: organizer_id
+ foreign-key: customfield_modified_by_id
+ - table-name: system_notes
+ keys:
+ - key: organizer_id
+ foreign-key: company_id
+ - key: organizer_id
+ foreign-key: author_id
+ - table-name: transaction_address
+ keys:
+ - key: organizer_id
+ foreign-key: created_by_id
+ - key: organizer_id
+ foreign-key: last_modified_by_id
+ - table-name: transaction_history
+ keys:
+ - key: organizer_id
+ foreign-key: user_id
+ - key: organizer_id
+ foreign-key: entity_id
+ - table-name: campaign_search_engine
+ keys:
+ - key: search_engine_id
+ foreign-key: search_engine_id
+- table-name: campaign_audiences
+ join:
+ - table-name: campaigns
+ keys:
+ - key: campaignaudience_id
+ foreign-key: audience_id
+- table-name: campaignchannel
+ join:
+ - table-name: campaignevent
+ keys:
+ - key: campaign_channel_id
+ foreign-key: channel_id
+- table-name: campaignresponse
+ join:
+ - table-name: campaignevent
+ keys:
+ - key: campaign_event_id
+ foreign-key: campaign_event_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: campaign_response_id
+ foreign-key: campaign_response_id
+ - key: entity_id
+ foreign-key: author
+ - table-name: customers
+ keys:
+ - key: contact_id
+ foreign-key: primary_contact_id
+ - key: contact_id
+ foreign-key: alternate_contact_id
+ - key: entity_id
+ foreign-key: converted_to_id
+ - key: entity_id
+ foreign-key: converted_to_contact_id
+ - key: entity_id
+ foreign-key: sales_rep_id
+ - key: entity_id
+ foreign-key: parent_id
+ - table-name: entity_role_map
+ keys:
+ - key: contact_id
+ foreign-key: contact_id
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: support_incidents
+ keys:
+ - key: contact_id
+ foreign-key: contact_id
+ - key: entity_id
+ foreign-key: owner_id
+ - key: entity_id
+ foreign-key: assigned_id
+ - key: entity_id
+ foreign-key: company_id
+ - table-name: campaign_subscription_statuses
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: campaigns
+ keys:
+ - key: entity_id
+ foreign-key: organizer_id
+ - table-name: caseescalationhistory
+ keys:
+ - key: entity_id
+ foreign-key: escalator_id
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: contact_types
+ keys:
+ - key: entity_id
+ foreign-key: contact_id
+ - key: entity_id
+ foreign-key: owner_id
+ - table-name: currency_exchange_rates
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: currencyrates
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: entityterritorymap
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: messagerecipient
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: notes_system_custom
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - table-name: notes_system
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - table-name: notes_user
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - table-name: opportunities
+ keys:
+ - key: entity_id
+ foreign-key: sales_rep_id
+ - table-name: opportunity_lines
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: related_company_id
+ - table-name: resource_group_entity_map
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: resource_groups
+ keys:
+ - key: entity_id
+ foreign-key: resource_group_id
+ - table-name: supportcasehistory
+ keys:
+ - key: entity_id
+ foreign-key: employee_id
+ - table-name: system_notes_custom
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - key: entity_id
+ foreign-key: customfield_created_by_id
+ - key: entity_id
+ foreign-key: customfield_modified_by_id
+ - table-name: system_notes
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - table-name: transaction_address
+ keys:
+ - key: entity_id
+ foreign-key: created_by_id
+ - key: entity_id
+ foreign-key: last_modified_by_id
+ - table-name: transaction_history
+ keys:
+ - key: entity_id
+ foreign-key: user_id
+ - key: entity_id
+ foreign-key: entity_id
+- table-name: campaign_families
+ join:
+ - table-name: campaigns
+ keys:
+ - key: campaignfamily_id
+ foreign-key: family_id
+- table-name: campaignoffer
+ join:
+ - table-name: campaigns
+ keys:
+ - key: offer_id
+ foreign-key: offer_id
+- table-name: campaignresponsehistory
+ join:
+ - table-name: campaignresponse
+ keys:
+ - key: campaign_response_id
+ foreign-key: campaign_response_id
+ - key: author
+ foreign-key: entity_id
+ - table-name: campaign_subscription_statuses
+ keys:
+ - key: author
+ foreign-key: entity_id
+ - table-name: campaigns
+ keys:
+ - key: author
+ foreign-key: organizer_id
+ - table-name: caseescalationhistory
+ keys:
+ - key: author
+ foreign-key: escalator_id
+ - key: author
+ foreign-key: entity_id
+ - table-name: contact_types
+ keys:
+ - key: author
+ foreign-key: contact_id
+ - key: author
+ foreign-key: owner_id
+ - table-name: currency_exchange_rates
+ keys:
+ - key: author
+ foreign-key: entity_id
+ - table-name: currencyrates
+ keys:
+ - key: author
+ foreign-key: entity_id
+ - table-name: customers
+ keys:
+ - key: author
+ foreign-key: converted_to_id
+ - key: author
+ foreign-key: converted_to_contact_id
+ - key: author
+ foreign-key: sales_rep_id
+ - key: author
+ foreign-key: parent_id
+ - table-name: entity_role_map
+ keys:
+ - key: author
+ foreign-key: entity_id
+ - table-name: entityterritorymap
+ keys:
+ - key: author
+ foreign-key: entity_id
+ - table-name: messagerecipient
+ keys:
+ - key: author
+ foreign-key: entity_id
+ - table-name: notes_system_custom
+ keys:
+ - key: author
+ foreign-key: company_id
+ - key: author
+ foreign-key: author_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: notes_system
+ keys:
+ - key: author
+ foreign-key: company_id
+ - key: author
+ foreign-key: author_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: notes_user
+ keys:
+ - key: author
+ foreign-key: company_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: opportunities
+ keys:
+ - key: author
+ foreign-key: sales_rep_id
+ - key: transaction_id
+ foreign-key: reversing-transaction-id
+ - table-name: opportunity_lines
+ keys:
+ - key: author
+ foreign-key: company_id
+ - key: author
+ foreign-key: related_company_id
+ - table-name: resource_group_entity_map
+ keys:
+ - key: author
+ foreign-key: entity_id
+ - table-name: resource_groups
+ keys:
+ - key: author
+ foreign-key: resource_group_id
+ - table-name: support_incidents
+ keys:
+ - key: author
+ foreign-key: owner_id
+ - key: author
+ foreign-key: assigned_id
+ - key: author
+ foreign-key: company_id
+ - table-name: supportcasehistory
+ keys:
+ - key: author
+ foreign-key: employee_id
+ - table-name: system_notes_custom
+ keys:
+ - key: author
+ foreign-key: company_id
+ - key: author
+ foreign-key: author_id
+ - key: author
+ foreign-key: customfield_created_by_id
+ - key: author
+ foreign-key: customfield_modified_by_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: system_notes
+ keys:
+ - key: author
+ foreign-key: company_id
+ - key: author
+ foreign-key: author_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_address
+ keys:
+ - key: author
+ foreign-key: created_by_id
+ - key: author
+ foreign-key: last_modified_by_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_history
+ keys:
+ - key: author
+ foreign-key: user_id
+ - key: author
+ foreign-key: entity_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: transaction_id
+ foreign-key: purchase_order_id
+ - key: transaction_id
+ foreign-key: sales_order_id
+ - table-name: billing_subscriptions
+ keys:
+ - key: transaction_id
+ foreign-key: sales_order_id
+ - table-name: employee_time
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: expense_plans
+ keys:
+ - key: transaction_id
+ foreign-key: related_revenue_arrangement_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: transaction_book_map
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_lines
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_links
+ keys:
+ - key: transaction_id
+ foreign-key: applied_transaction_id
+ - key: transaction_id
+ foreign-key: original_transaction_id
+ - table-name: transaction_shipping_groups
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+- table-name: campaign_subscription_statuses
+ join:
+ - table-name: campaign_subscriptions
+ keys:
+ - key: subscription_id
+ foreign-key: campaignsubscription_id
+ - table-name: campaignevent
+ keys:
+ - key: subscription_id
+ foreign-key: subscription_id
+ - table-name: campaignresponse
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: entity_id
+ foreign-key: author
+ - table-name: campaigns
+ keys:
+ - key: entity_id
+ foreign-key: organizer_id
+ - table-name: caseescalationhistory
+ keys:
+ - key: entity_id
+ foreign-key: escalator_id
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: contact_types
+ keys:
+ - key: entity_id
+ foreign-key: contact_id
+ - key: entity_id
+ foreign-key: owner_id
+ - table-name: currency_exchange_rates
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: currencyrates
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: customers
+ keys:
+ - key: entity_id
+ foreign-key: converted_to_id
+ - key: entity_id
+ foreign-key: converted_to_contact_id
+ - key: entity_id
+ foreign-key: sales_rep_id
+ - key: entity_id
+ foreign-key: parent_id
+ - table-name: entity_role_map
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: entityterritorymap
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: messagerecipient
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: notes_system_custom
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - table-name: notes_system
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - table-name: notes_user
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - table-name: opportunities
+ keys:
+ - key: entity_id
+ foreign-key: sales_rep_id
+ - table-name: opportunity_lines
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: related_company_id
+ - table-name: resource_group_entity_map
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: resource_groups
+ keys:
+ - key: entity_id
+ foreign-key: resource_group_id
+ - table-name: support_incidents
+ keys:
+ - key: entity_id
+ foreign-key: owner_id
+ - key: entity_id
+ foreign-key: assigned_id
+ - key: entity_id
+ foreign-key: company_id
+ - table-name: supportcasehistory
+ keys:
+ - key: entity_id
+ foreign-key: employee_id
+ - table-name: system_notes_custom
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - key: entity_id
+ foreign-key: customfield_created_by_id
+ - key: entity_id
+ foreign-key: customfield_modified_by_id
+ - table-name: system_notes
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - table-name: transaction_address
+ keys:
+ - key: entity_id
+ foreign-key: created_by_id
+ - key: entity_id
+ foreign-key: last_modified_by_id
+ - table-name: transaction_history
+ keys:
+ - key: entity_id
+ foreign-key: user_id
+ - key: entity_id
+ foreign-key: entity_id
+- table-name: campaign_subscriptions
+ join:
+ - table-name: campaign_subscription_statuses
+ keys:
+ - key: campaignsubscription_id
+ foreign-key: subscription_id
+ - table-name: campaignevent
+ keys:
+ - key: campaignsubscription_id
+ foreign-key: subscription_id
+- table-name: campaign_verticals
+ join:
+ - table-name: campaigns
+ keys:
+ - key: vertical_id
+ foreign-key: vertical_id
+- table-name: caseissue
+ join:
+ - table-name: support_incidents
+ keys:
+ - key: case_issue_id
+ foreign-key: case_issue_id
+- table-name: support_incidents
+ join:
+ - table-name: caseissue
+ keys:
+ - key: case_issue_id
+ foreign-key: case_issue_id
+ - table-name: case_origins
+ keys:
+ - key: case_origin_id
+ foreign-key: case_origin_id
+ - table-name: case_stage_changes
+ keys:
+ - key: case_id
+ foreign-key: case_id
+ - table-name: caseescalationhistory
+ keys:
+ - key: case_id
+ foreign-key: case_id
+ - key: owner_id
+ foreign-key: escalator_id
+ - key: assigned_id
+ foreign-key: escalator_id
+ - key: company_id
+ foreign-key: escalator_id
+ - key: owner_id
+ foreign-key: entity_id
+ - key: assigned_id
+ foreign-key: entity_id
+ - key: company_id
+ foreign-key: entity_id
+ - table-name: case_types
+ keys:
+ - key: case_type_id
+ foreign-key: case_type_id
+ - table-name: casetypes
+ keys:
+ - key: case_type_id
+ foreign-key: case_type_id
+ - table-name: campaignresponse
+ keys:
+ - key: contact_id
+ foreign-key: contact_id
+ - key: owner_id
+ foreign-key: entity_id
+ - key: assigned_id
+ foreign-key: entity_id
+ - key: company_id
+ foreign-key: entity_id
+ - table-name: customers
+ keys:
+ - key: contact_id
+ foreign-key: primary_contact_id
+ - key: contact_id
+ foreign-key: alternate_contact_id
+ - key: owner_id
+ foreign-key: converted_to_id
+ - key: assigned_id
+ foreign-key: converted_to_id
+ - key: company_id
+ foreign-key: converted_to_id
+ - key: owner_id
+ foreign-key: converted_to_contact_id
+ - key: assigned_id
+ foreign-key: converted_to_contact_id
+ - key: company_id
+ foreign-key: converted_to_contact_id
+ - key: owner_id
+ foreign-key: sales_rep_id
+ - key: assigned_id
+ foreign-key: sales_rep_id
+ - key: company_id
+ foreign-key: sales_rep_id
+ - key: owner_id
+ foreign-key: parent_id
+ - key: assigned_id
+ foreign-key: parent_id
+ - key: company_id
+ foreign-key: parent_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - key: territory_id
+ foreign-key: sales_territory_id
+ - table-name: entity_role_map
+ keys:
+ - key: contact_id
+ foreign-key: contact_id
+ - key: owner_id
+ foreign-key: entity_id
+ - key: assigned_id
+ foreign-key: entity_id
+ - key: company_id
+ foreign-key: entity_id
+ - table-name: campaign_subscription_statuses
+ keys:
+ - key: owner_id
+ foreign-key: entity_id
+ - key: assigned_id
+ foreign-key: entity_id
+ - key: company_id
+ foreign-key: entity_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: owner_id
+ foreign-key: author
+ - key: assigned_id
+ foreign-key: author
+ - key: company_id
+ foreign-key: author
+ - table-name: campaigns
+ keys:
+ - key: owner_id
+ foreign-key: organizer_id
+ - key: assigned_id
+ foreign-key: organizer_id
+ - key: company_id
+ foreign-key: organizer_id
+ - table-name: contact_types
+ keys:
+ - key: owner_id
+ foreign-key: contact_id
+ - key: assigned_id
+ foreign-key: contact_id
+ - key: company_id
+ foreign-key: contact_id
+ - key: owner_id
+ foreign-key: owner_id
+ - key: assigned_id
+ foreign-key: owner_id
+ - key: company_id
+ foreign-key: owner_id
+ - table-name: currency_exchange_rates
+ keys:
+ - key: owner_id
+ foreign-key: entity_id
+ - key: assigned_id
+ foreign-key: entity_id
+ - key: company_id
+ foreign-key: entity_id
+ - table-name: currencyrates
+ keys:
+ - key: owner_id
+ foreign-key: entity_id
+ - key: assigned_id
+ foreign-key: entity_id
+ - key: company_id
+ foreign-key: entity_id
+ - table-name: entityterritorymap
+ keys:
+ - key: owner_id
+ foreign-key: entity_id
+ - key: assigned_id
+ foreign-key: entity_id
+ - key: company_id
+ foreign-key: entity_id
+ - key: territory_id
+ foreign-key: territory_id
+ - table-name: messagerecipient
+ keys:
+ - key: owner_id
+ foreign-key: entity_id
+ - key: assigned_id
+ foreign-key: entity_id
+ - key: company_id
+ foreign-key: entity_id
+ - table-name: notes_system_custom
+ keys:
+ - key: owner_id
+ foreign-key: company_id
+ - key: assigned_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: company_id
+ - key: owner_id
+ foreign-key: author_id
+ - key: assigned_id
+ foreign-key: author_id
+ - key: company_id
+ foreign-key: author_id
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_system
+ keys:
+ - key: owner_id
+ foreign-key: company_id
+ - key: assigned_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: company_id
+ - key: owner_id
+ foreign-key: author_id
+ - key: assigned_id
+ foreign-key: author_id
+ - key: company_id
+ foreign-key: author_id
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_user
+ keys:
+ - key: owner_id
+ foreign-key: company_id
+ - key: assigned_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: company_id
+ - key: item_id
+ foreign-key: item_id
+ - table-name: opportunities
+ keys:
+ - key: owner_id
+ foreign-key: sales_rep_id
+ - key: assigned_id
+ foreign-key: sales_rep_id
+ - key: company_id
+ foreign-key: sales_rep_id
+ - table-name: opportunity_lines
+ keys:
+ - key: owner_id
+ foreign-key: company_id
+ - key: assigned_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: company_id
+ - key: owner_id
+ foreign-key: related_company_id
+ - key: assigned_id
+ foreign-key: related_company_id
+ - key: company_id
+ foreign-key: related_company_id
+ - key: item_id
+ foreign-key: item_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: resource_group_entity_map
+ keys:
+ - key: owner_id
+ foreign-key: entity_id
+ - key: assigned_id
+ foreign-key: entity_id
+ - key: company_id
+ foreign-key: entity_id
+ - table-name: resource_groups
+ keys:
+ - key: owner_id
+ foreign-key: resource_group_id
+ - key: assigned_id
+ foreign-key: resource_group_id
+ - key: company_id
+ foreign-key: resource_group_id
+ - table-name: supportcasehistory
+ keys:
+ - key: owner_id
+ foreign-key: employee_id
+ - key: assigned_id
+ foreign-key: employee_id
+ - key: company_id
+ foreign-key: employee_id
+ - table-name: system_notes_custom
+ keys:
+ - key: owner_id
+ foreign-key: company_id
+ - key: assigned_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: company_id
+ - key: owner_id
+ foreign-key: author_id
+ - key: assigned_id
+ foreign-key: author_id
+ - key: company_id
+ foreign-key: author_id
+ - key: owner_id
+ foreign-key: customfield_created_by_id
+ - key: assigned_id
+ foreign-key: customfield_created_by_id
+ - key: company_id
+ foreign-key: customfield_created_by_id
+ - key: owner_id
+ foreign-key: customfield_modified_by_id
+ - key: assigned_id
+ foreign-key: customfield_modified_by_id
+ - key: company_id
+ foreign-key: customfield_modified_by_id
+ - key: item_id
+ foreign-key: item_id
+ - table-name: system_notes
+ keys:
+ - key: owner_id
+ foreign-key: company_id
+ - key: assigned_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: company_id
+ - key: owner_id
+ foreign-key: author_id
+ - key: assigned_id
+ foreign-key: author_id
+ - key: company_id
+ foreign-key: author_id
+ - key: item_id
+ foreign-key: item_id
+ - table-name: transaction_address
+ keys:
+ - key: owner_id
+ foreign-key: created_by_id
+ - key: assigned_id
+ foreign-key: created_by_id
+ - key: company_id
+ foreign-key: created_by_id
+ - key: owner_id
+ foreign-key: last_modified_by_id
+ - key: assigned_id
+ foreign-key: last_modified_by_id
+ - key: company_id
+ foreign-key: last_modified_by_id
+ - table-name: transaction_history
+ keys:
+ - key: owner_id
+ foreign-key: user_id
+ - key: assigned_id
+ foreign-key: user_id
+ - key: company_id
+ foreign-key: user_id
+ - key: owner_id
+ foreign-key: entity_id
+ - key: assigned_id
+ foreign-key: entity_id
+ - key: company_id
+ foreign-key: entity_id
+ - table-name: bill_of_materials
+ keys:
+ - key: item_id
+ foreign-key: original_assembly_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: item_id
+ foreign-key: service_item_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: bom_revision_components
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: budget
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: campaignitem
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_collection_item_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_price_history
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: items
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - table-name: purchase_charge_rules
+ keys:
+ - key: item_id
+ foreign-key: mark_up_item_id
+ - table-name: standard_cost_components
+ keys:
+ - key: item_id
+ foreign-key: component_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: item_id
+ foreign-key: plan_item_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: account_activity
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: companies
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: to_subsidiary_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: employee_time
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: employees
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_account_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_inventory_relationships
+ keys:
+ - key: subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - table-name: item_account_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: partners
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - table-name: role_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subscription_plans
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiaries
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - table-name: transaction_lines
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: source_subsidiary_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: vendors
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: territory
+ keys:
+ - key: territory_id
+ foreign-key: territory_id
+- table-name: case_origins
+ join:
+ - table-name: support_incidents
+ keys:
+ - key: case_origin_id
+ foreign-key: case_origin_id
+- table-name: case_stage_changes
+ join:
+ - table-name: caseescalationhistory
+ keys:
+ - key: case_id
+ foreign-key: case_id
+ - table-name: support_incidents
+ keys:
+ - key: case_id
+ foreign-key: case_id
+- table-name: caseescalationhistory
+ join:
+ - table-name: case_stage_changes
+ keys:
+ - key: case_id
+ foreign-key: case_id
+ - table-name: support_incidents
+ keys:
+ - key: case_id
+ foreign-key: case_id
+ - key: escalator_id
+ foreign-key: owner_id
+ - key: entity_id
+ foreign-key: owner_id
+ - key: escalator_id
+ foreign-key: assigned_id
+ - key: entity_id
+ foreign-key: assigned_id
+ - key: escalator_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: company_id
+ - table-name: campaign_subscription_statuses
+ keys:
+ - key: escalator_id
+ foreign-key: entity_id
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: campaignresponse
+ keys:
+ - key: escalator_id
+ foreign-key: entity_id
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: escalator_id
+ foreign-key: author
+ - key: entity_id
+ foreign-key: author
+ - table-name: campaigns
+ keys:
+ - key: escalator_id
+ foreign-key: organizer_id
+ - key: entity_id
+ foreign-key: organizer_id
+ - table-name: contact_types
+ keys:
+ - key: escalator_id
+ foreign-key: contact_id
+ - key: entity_id
+ foreign-key: contact_id
+ - key: escalator_id
+ foreign-key: owner_id
+ - key: entity_id
+ foreign-key: owner_id
+ - table-name: currency_exchange_rates
+ keys:
+ - key: escalator_id
+ foreign-key: entity_id
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: currencyrates
+ keys:
+ - key: escalator_id
+ foreign-key: entity_id
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: customers
+ keys:
+ - key: escalator_id
+ foreign-key: converted_to_id
+ - key: entity_id
+ foreign-key: converted_to_id
+ - key: escalator_id
+ foreign-key: converted_to_contact_id
+ - key: entity_id
+ foreign-key: converted_to_contact_id
+ - key: escalator_id
+ foreign-key: sales_rep_id
+ - key: entity_id
+ foreign-key: sales_rep_id
+ - key: escalator_id
+ foreign-key: parent_id
+ - key: entity_id
+ foreign-key: parent_id
+ - table-name: entity_role_map
+ keys:
+ - key: escalator_id
+ foreign-key: entity_id
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: entityterritorymap
+ keys:
+ - key: escalator_id
+ foreign-key: entity_id
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: messagerecipient
+ keys:
+ - key: escalator_id
+ foreign-key: entity_id
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: notes_system_custom
+ keys:
+ - key: escalator_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: company_id
+ - key: escalator_id
+ foreign-key: author_id
+ - key: entity_id
+ foreign-key: author_id
+ - table-name: notes_system
+ keys:
+ - key: escalator_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: company_id
+ - key: escalator_id
+ foreign-key: author_id
+ - key: entity_id
+ foreign-key: author_id
+ - table-name: notes_user
+ keys:
+ - key: escalator_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: company_id
+ - table-name: opportunities
+ keys:
+ - key: escalator_id
+ foreign-key: sales_rep_id
+ - key: entity_id
+ foreign-key: sales_rep_id
+ - table-name: opportunity_lines
+ keys:
+ - key: escalator_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: company_id
+ - key: escalator_id
+ foreign-key: related_company_id
+ - key: entity_id
+ foreign-key: related_company_id
+ - table-name: resource_group_entity_map
+ keys:
+ - key: escalator_id
+ foreign-key: entity_id
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: resource_groups
+ keys:
+ - key: escalator_id
+ foreign-key: resource_group_id
+ - key: entity_id
+ foreign-key: resource_group_id
+ - table-name: supportcasehistory
+ keys:
+ - key: escalator_id
+ foreign-key: employee_id
+ - key: entity_id
+ foreign-key: employee_id
+ - table-name: system_notes_custom
+ keys:
+ - key: escalator_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: company_id
+ - key: escalator_id
+ foreign-key: author_id
+ - key: entity_id
+ foreign-key: author_id
+ - key: escalator_id
+ foreign-key: customfield_created_by_id
+ - key: entity_id
+ foreign-key: customfield_created_by_id
+ - key: escalator_id
+ foreign-key: customfield_modified_by_id
+ - key: entity_id
+ foreign-key: customfield_modified_by_id
+ - table-name: system_notes
+ keys:
+ - key: escalator_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: company_id
+ - key: escalator_id
+ foreign-key: author_id
+ - key: entity_id
+ foreign-key: author_id
+ - table-name: transaction_address
+ keys:
+ - key: escalator_id
+ foreign-key: created_by_id
+ - key: entity_id
+ foreign-key: created_by_id
+ - key: escalator_id
+ foreign-key: last_modified_by_id
+ - key: entity_id
+ foreign-key: last_modified_by_id
+ - table-name: transaction_history
+ keys:
+ - key: escalator_id
+ foreign-key: user_id
+ - key: entity_id
+ foreign-key: user_id
+ - key: escalator_id
+ foreign-key: entity_id
+ - key: entity_id
+ foreign-key: entity_id
+- table-name: case_types
+ join:
+ - table-name: casetypes
+ keys:
+ - key: case_type_id
+ foreign-key: case_type_id
+ - table-name: support_incidents
+ keys:
+ - key: case_type_id
+ foreign-key: case_type_id
+- table-name: casetypes
+ join:
+ - table-name: case_types
+ keys:
+ - key: case_type_id
+ foreign-key: case_type_id
+ - table-name: support_incidents
+ keys:
+ - key: case_type_id
+ foreign-key: case_type_id
+- table-name: classes
+ join:
+ - table-name: accounts
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: parent_id
+ foreign-key: class_id
+ - table-name: budget
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: parent_id
+ foreign-key: class_id
+ - table-name: employee_time
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: parent_id
+ foreign-key: class_id
+ - table-name: employees
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: parent_id
+ foreign-key: class_id
+ - table-name: global_account_map
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: parent_id
+ foreign-key: class_id
+ - table-name: item_account_map
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: parent_id
+ foreign-key: class_id
+ - table-name: opportunity_lines
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: parent_id
+ foreign-key: class_id
+ - table-name: posting_account_activity
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: parent_id
+ foreign-key: class_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: parent_id
+ foreign-key: class_id
+ - table-name: subscription_plans
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: parent_id
+ foreign-key: class_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: parent_id
+ foreign-key: class_id
+- table-name: subscription_plans
+ join:
+ - table-name: accounts
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - table-name: budget
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: classes
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: class_id
+ foreign-key: parent_id
+ - table-name: employee_time
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: employees
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_account_map
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_account_map
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: opportunity_lines
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: department_id
+ foreign-key: department_id
+ - key: location_id
+ foreign-key: location_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_activity
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: departments
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: department_id
+ foreign-key: parent_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: billing_accounts
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: location_costing_grp_locations
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: locations
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - key: location_id
+ foreign-key: parent_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: subsidiary_location_map
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: billing_subscriptions
+ keys:
+ - key: plan_id
+ foreign-key: default_renewal_plan_id
+ - key: default_renewal_plan_id
+ foreign-key: default_renewal_plan_id
+ - key: plan_id
+ foreign-key: plan_id
+ - key: default_renewal_plan_id
+ foreign-key: plan_id
+ - key: initial_term_id
+ foreign-key: default_renewal_term_id
+ - key: default_renewal_term_id
+ foreign-key: default_renewal_term_id
+ - key: initial_term_id
+ foreign-key: initial_term_id
+ - key: default_renewal_term_id
+ foreign-key: initial_term_id
+ - table-name: price_books
+ keys:
+ - key: plan_id
+ foreign-key: plan_id
+ - key: default_renewal_plan_id
+ foreign-key: plan_id
+ - table-name: subscription_change_orders
+ keys:
+ - key: plan_id
+ foreign-key: renewal_subscription_plan_id
+ - key: default_renewal_plan_id
+ foreign-key: renewal_subscription_plan_id
+ - key: initial_term_id
+ foreign-key: renewal_term_id
+ - key: default_renewal_term_id
+ foreign-key: renewal_term_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: plan_id
+ foreign-key: parent_id
+ - key: default_renewal_plan_id
+ foreign-key: parent_id
+ - table-name: subscription_terms
+ keys:
+ - key: initial_term_id
+ foreign-key: term_id
+ - key: default_renewal_term_id
+ foreign-key: term_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: companies
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: to_subsidiary_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: customers
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_inventory_relationships
+ keys:
+ - key: subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: partners
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - table-name: role_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: support_incidents
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiaries
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - table-name: transaction_lines
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: source_subsidiary_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: vendors
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+- table-name: subsidiary_class_map
+ join:
+ - table-name: accounts
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - table-name: budget
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: classes
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: class_id
+ foreign-key: parent_id
+ - table-name: employee_time
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: employees
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_account_map
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_account_map
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: opportunity_lines
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - table-name: subscription_plans
+ keys:
+ - key: class_id
+ foreign-key: class_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_activity
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: companies
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: to_subsidiary_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: customers
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_inventory_relationships
+ keys:
+ - key: subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: partners
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - table-name: role_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: support_incidents
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiaries
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - table-name: transaction_lines
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: source_subsidiary_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: vendors
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+- table-name: company_status
+ join:
+ - table-name: opportunities
+ keys:
+ - key: company_status_id
+ foreign-key: company_status_id
+- table-name: entity_role_map
+ join:
+ - table-name: campaignresponse
+ keys:
+ - key: contact_id
+ foreign-key: contact_id
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: customers
+ keys:
+ - key: contact_id
+ foreign-key: primary_contact_id
+ - key: contact_id
+ foreign-key: alternate_contact_id
+ - key: entity_id
+ foreign-key: converted_to_id
+ - key: entity_id
+ foreign-key: converted_to_contact_id
+ - key: entity_id
+ foreign-key: sales_rep_id
+ - key: entity_id
+ foreign-key: parent_id
+ - table-name: support_incidents
+ keys:
+ - key: contact_id
+ foreign-key: contact_id
+ - key: entity_id
+ foreign-key: owner_id
+ - key: entity_id
+ foreign-key: assigned_id
+ - key: entity_id
+ foreign-key: company_id
+ - table-name: campaign_subscription_statuses
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: entity_id
+ foreign-key: author
+ - table-name: campaigns
+ keys:
+ - key: entity_id
+ foreign-key: organizer_id
+ - table-name: caseescalationhistory
+ keys:
+ - key: entity_id
+ foreign-key: escalator_id
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: contact_types
+ keys:
+ - key: entity_id
+ foreign-key: contact_id
+ - key: entity_id
+ foreign-key: owner_id
+ - table-name: currency_exchange_rates
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: currencyrates
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: entityterritorymap
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: messagerecipient
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: notes_system_custom
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - table-name: notes_system
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - table-name: notes_user
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - table-name: opportunities
+ keys:
+ - key: entity_id
+ foreign-key: sales_rep_id
+ - table-name: opportunity_lines
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: related_company_id
+ - table-name: resource_group_entity_map
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: resource_groups
+ keys:
+ - key: entity_id
+ foreign-key: resource_group_id
+ - table-name: supportcasehistory
+ keys:
+ - key: entity_id
+ foreign-key: employee_id
+ - table-name: system_notes_custom
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - key: entity_id
+ foreign-key: customfield_created_by_id
+ - key: entity_id
+ foreign-key: customfield_modified_by_id
+ - table-name: system_notes
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - table-name: transaction_address
+ keys:
+ - key: entity_id
+ foreign-key: created_by_id
+ - key: entity_id
+ foreign-key: last_modified_by_id
+ - table-name: transaction_history
+ keys:
+ - key: entity_id
+ foreign-key: user_id
+ - key: entity_id
+ foreign-key: entity_id
+- table-name: countries
+ join:
+ - table-name: states
+ keys:
+ - key: country_id
+ foreign-key: country_id
+- table-name: states
+ join:
+ - table-name: countries
+ keys:
+ - key: country_id
+ foreign-key: country_id
+- table-name: coupon_codes
+ join:
+ - table-name: opportunities
+ keys:
+ - key: coupon_code_id
+ foreign-key: promotion_code_instance_id
+- table-name: crmgroup
+ join:
+ - table-name: campaignevent
+ keys:
+ - key: group_id
+ foreign-key: group_id
+- table-name: crmtemplate
+ join:
+ - table-name: campaignevent
+ keys:
+ - key: crmtemplate_id
+ foreign-key: template_id
+- table-name: companies
+ join:
+ - table-name: accounts
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: billing_class_rates
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: currencies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: customer_currencies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: employee_currency_map
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: employees
+ keys:
+ - key: currency_id
+ foreign-key: def_expense_report_currency_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: inbound_shipments
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_billing_rates
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_price_history
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: location_costing_groups
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: opportunities
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: sales_reps
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: support_reps
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: account_activity
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: budget
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: to_subsidiary_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: customers
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: employee_time
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_account_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_inventory_relationships
+ keys:
+ - key: subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - table-name: item_account_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: opportunity_lines
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: partners
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - table-name: posting_account_activity
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - table-name: role_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subscription_plans
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: support_incidents
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiaries
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - table-name: transaction_lines
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: source_subsidiary_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: vendors
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+- table-name: currencies
+ join:
+ - table-name: accounts
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: billing_class_rates
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: companies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: customer_currencies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: employee_currency_map
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: employees
+ keys:
+ - key: currency_id
+ foreign-key: def_expense_report_currency_id
+ - table-name: inbound_shipments
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_billing_rates
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_price_history
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: location_costing_groups
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: opportunities
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: sales_reps
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: support_reps
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+- table-name: customer_currencies
+ join:
+ - table-name: accounts
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: billing_class_rates
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: companies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: currencies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: employee_currency_map
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: employees
+ keys:
+ - key: currency_id
+ foreign-key: def_expense_report_currency_id
+ - table-name: inbound_shipments
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_billing_rates
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_price_history
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: location_costing_groups
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: opportunities
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: sales_reps
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: support_reps
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: billing_rate_cards
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: budget
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: customer_id
+ foreign-key: top_level_parent_id
+ - table-name: employee_time
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+- table-name: employee_currency_map
+ join:
+ - table-name: accounts
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: billing_class_rates
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: companies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: currencies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: customer_currencies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: employees
+ keys:
+ - key: currency_id
+ foreign-key: def_expense_report_currency_id
+ - key: employee_id
+ foreign-key: employee_id
+ - key: employee_id
+ foreign-key: approver_id
+ - key: employee_id
+ foreign-key: supervisor_id
+ - table-name: inbound_shipments
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_billing_rates
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_price_history
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: location_costing_groups
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: opportunities
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: sales_reps
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: support_reps
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: billing_rate_cards_versions
+ keys:
+ - key: employee_id
+ foreign-key: last_modified_by_id
+ - table-name: customers
+ keys:
+ - key: employee_id
+ foreign-key: project_manager_id
+ - table-name: project_revenue_rules
+ keys:
+ - key: employee_id
+ foreign-key: created_by
+ - key: employee_id
+ foreign-key: last_modified_by
+ - table-name: project_templates
+ keys:
+ - key: employee_id
+ foreign-key: project_manager_id
+ - table-name: revenue_plan_versions
+ keys:
+ - key: employee_id
+ foreign-key: created_by_id
+ - table-name: subscription_change_orders
+ keys:
+ - key: employee_id
+ foreign-key: requester_id
+ - table-name: unlocked_time_periods
+ keys:
+ - key: employee_id
+ foreign-key: last_modified_by_id
+ - key: employee_id
+ foreign-key: employee_id
+ - table-name: vendors
+ keys:
+ - key: employee_id
+ foreign-key: time_approver_id
+- table-name: inbound_shipments
+ join:
+ - table-name: accounts
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: billing_class_rates
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: companies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: currencies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: customer_currencies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: employee_currency_map
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: employees
+ keys:
+ - key: currency_id
+ foreign-key: def_expense_report_currency_id
+ - table-name: item_billing_rates
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_price_history
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: location_costing_groups
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: opportunities
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: sales_reps
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: support_reps
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+- table-name: item_price_history
+ join:
+ - table-name: accounts
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: billing_class_rates
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: companies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: currencies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: customer_currencies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: employee_currency_map
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: employees
+ keys:
+ - key: currency_id
+ foreign-key: def_expense_report_currency_id
+ - table-name: inbound_shipments
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_billing_rates
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - key: price_type_id
+ foreign-key: price_type_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - key: item_id
+ foreign-key: item_id
+ - table-name: location_costing_groups
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: opportunities
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: sales_reps
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: support_reps
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: bill_of_materials
+ keys:
+ - key: item_id
+ foreign-key: original_assembly_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: item_id
+ foreign-key: service_item_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: bom_revision_components
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: budget
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: campaignitem
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: customers
+ keys:
+ - key: item_id
+ foreign-key: tax_item_id
+ - table-name: item_collection_item_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_vendor_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: items
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_system_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_system
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_user
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: opportunity_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - key: price_type_id
+ foreign-key: price_type_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: purchase_charge_rules
+ keys:
+ - key: item_id
+ foreign-key: mark_up_item_id
+ - table-name: standard_cost_components
+ keys:
+ - key: item_id
+ foreign-key: component_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: item_id
+ foreign-key: plan_item_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: support_incidents
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: system_notes_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: system_notes
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: employee_time
+ keys:
+ - key: price_type_id
+ foreign-key: price_type_id
+ - table-name: price_types
+ keys:
+ - key: price_type_id
+ foreign-key: price_type_id
+- table-name: item_vendor_pricing
+ join:
+ - table-name: accounts
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: billing_class_rates
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: companies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: currencies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: customer_currencies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: employee_currency_map
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: employees
+ keys:
+ - key: currency_id
+ foreign-key: def_expense_report_currency_id
+ - table-name: inbound_shipments
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_billing_rates
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_price_history
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - key: item_id
+ foreign-key: item_id
+ - table-name: location_costing_groups
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: opportunities
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: sales_reps
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: support_reps
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: bill_of_materials
+ keys:
+ - key: item_id
+ foreign-key: original_assembly_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: item_id
+ foreign-key: service_item_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: bom_revision_components
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: budget
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: campaignitem
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: customers
+ keys:
+ - key: item_id
+ foreign-key: tax_item_id
+ - table-name: item_collection_item_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_vendor_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: vendor_id
+ foreign-key: vendor_id
+ - table-name: items
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_system_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_system
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_user
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: opportunity_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: purchase_charge_rules
+ keys:
+ - key: item_id
+ foreign-key: mark_up_item_id
+ - table-name: standard_cost_components
+ keys:
+ - key: item_id
+ foreign-key: component_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: item_id
+ foreign-key: plan_item_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: support_incidents
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: system_notes_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: system_notes
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: vendor_id
+ foreign-key: vendor_id
+ - table-name: vendors
+ keys:
+ - key: vendor_id
+ foreign-key: vendor_id
+- table-name: location_costing_groups
+ join:
+ - table-name: accounts
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: billing_class_rates
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: companies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: currencies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: customer_currencies
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: employee_currency_map
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: employees
+ keys:
+ - key: currency_id
+ foreign-key: def_expense_report_currency_id
+ - table-name: inbound_shipments
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_billing_rates
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_price_history
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: opportunities
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: sales_reps
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: support_reps
+ keys:
+ - key: currency_id
+ foreign-key: currency_id
+ - table-name: location_costing_grp_locations
+ keys:
+ - key: location_costing_group_id
+ foreign-key: location_costing_group_id
+- table-name: currency_exchange_rate_types
+ join:
+ - table-name: currency_exchange_rates
+ keys:
+ - key: currency_rate_type_id
+ foreign-key: currency_rate_type_id
+ - key: currency_rate_id
+ foreign-key: currency_rate_id
+- table-name: currency_exchange_rates
+ join:
+ - table-name: currency_exchange_rate_types
+ keys:
+ - key: currency_rate_type_id
+ foreign-key: currency_rate_type_id
+ - key: currency_rate_id
+ foreign-key: currency_rate_id
+ - table-name: campaign_subscription_statuses
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: campaignresponse
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: entity_id
+ foreign-key: author
+ - table-name: campaigns
+ keys:
+ - key: entity_id
+ foreign-key: organizer_id
+ - table-name: caseescalationhistory
+ keys:
+ - key: entity_id
+ foreign-key: escalator_id
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: contact_types
+ keys:
+ - key: entity_id
+ foreign-key: contact_id
+ - key: entity_id
+ foreign-key: owner_id
+ - table-name: currencyrates
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: customers
+ keys:
+ - key: entity_id
+ foreign-key: converted_to_id
+ - key: entity_id
+ foreign-key: converted_to_contact_id
+ - key: entity_id
+ foreign-key: sales_rep_id
+ - key: entity_id
+ foreign-key: parent_id
+ - table-name: entity_role_map
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: entityterritorymap
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: messagerecipient
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: notes_system_custom
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - table-name: notes_system
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - table-name: notes_user
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - table-name: opportunities
+ keys:
+ - key: entity_id
+ foreign-key: sales_rep_id
+ - table-name: opportunity_lines
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: related_company_id
+ - table-name: resource_group_entity_map
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: resource_groups
+ keys:
+ - key: entity_id
+ foreign-key: resource_group_id
+ - table-name: support_incidents
+ keys:
+ - key: entity_id
+ foreign-key: owner_id
+ - key: entity_id
+ foreign-key: assigned_id
+ - key: entity_id
+ foreign-key: company_id
+ - table-name: supportcasehistory
+ keys:
+ - key: entity_id
+ foreign-key: employee_id
+ - table-name: system_notes_custom
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - key: entity_id
+ foreign-key: customfield_created_by_id
+ - key: entity_id
+ foreign-key: customfield_modified_by_id
+ - table-name: system_notes
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - table-name: transaction_address
+ keys:
+ - key: entity_id
+ foreign-key: created_by_id
+ - key: entity_id
+ foreign-key: last_modified_by_id
+ - table-name: transaction_history
+ keys:
+ - key: entity_id
+ foreign-key: user_id
+ - key: entity_id
+ foreign-key: entity_id
+- table-name: billing_rate_cards
+ join:
+ - table-name: budget
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: customer_currencies
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: customer_id
+ foreign-key: top_level_parent_id
+ - table-name: employee_time
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+- table-name: customer_subsidiary_map
+ join:
+ - table-name: billing_rate_cards
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: budget
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: customer_currencies
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: customer_id
+ foreign-key: top_level_parent_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: employee_time
+ keys:
+ - key: customer_id
+ foreign-key: customer_id
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_activity
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: companies
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: to_subsidiary_id
+ - table-name: employees
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_account_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_inventory_relationships
+ keys:
+ - key: subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - table-name: item_account_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: opportunity_lines
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: partners
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - table-name: posting_account_activity
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - table-name: role_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subscription_plans
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: support_incidents
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiaries
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - table-name: transaction_lines
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: source_subsidiary_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: vendors
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+- table-name: customer_types
+ join:
+ - table-name: customers
+ keys:
+ - key: customer_type_id
+ foreign-key: customer_type_id
+- table-name: departments
+ join:
+ - table-name: account_activity
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: parent_id
+ foreign-key: department_id
+ - table-name: account_period_activity
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: parent_id
+ foreign-key: department_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: parent_id
+ foreign-key: department_id
+ - table-name: accounts
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: parent_id
+ foreign-key: department_id
+ - table-name: budget
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: parent_id
+ foreign-key: department_id
+ - table-name: employee_time
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: parent_id
+ foreign-key: department_id
+ - table-name: employees
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: parent_id
+ foreign-key: department_id
+ - table-name: global_account_map
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: parent_id
+ foreign-key: department_id
+ - table-name: item_account_map
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: parent_id
+ foreign-key: department_id
+ - table-name: opportunity_lines
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: parent_id
+ foreign-key: department_id
+ - table-name: posting_account_activity
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: parent_id
+ foreign-key: department_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: parent_id
+ foreign-key: department_id
+ - table-name: subscription_plans
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: parent_id
+ foreign-key: department_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: parent_id
+ foreign-key: department_id
+- table-name: subsidiary_department_map
+ join:
+ - table-name: account_activity
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: accounts
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - table-name: budget
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: departments
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: department_id
+ foreign-key: parent_id
+ - table-name: employee_time
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: employees
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_account_map
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_account_map
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: opportunity_lines
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - table-name: subscription_plans
+ keys:
+ - key: department_id
+ foreign-key: department_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: companies
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: to_subsidiary_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: customers
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_inventory_relationships
+ keys:
+ - key: subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: partners
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - table-name: role_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: support_incidents
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiaries
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - table-name: transaction_lines
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: source_subsidiary_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: vendors
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+- table-name: employee_types
+ join:
+ - table-name: employees
+ keys:
+ - key: employee_type_id
+ foreign-key: employee_type_id
+- table-name: project_revenue_rules
+ join:
+ - table-name: billing_rate_cards_versions
+ keys:
+ - key: created_by
+ foreign-key: last_modified_by_id
+ - key: last_modified_by
+ foreign-key: last_modified_by_id
+ - table-name: customers
+ keys:
+ - key: created_by
+ foreign-key: project_manager_id
+ - key: last_modified_by
+ foreign-key: project_manager_id
+ - table-name: employee_currency_map
+ keys:
+ - key: created_by
+ foreign-key: employee_id
+ - key: last_modified_by
+ foreign-key: employee_id
+ - table-name: employees
+ keys:
+ - key: created_by
+ foreign-key: employee_id
+ - key: last_modified_by
+ foreign-key: employee_id
+ - key: created_by
+ foreign-key: approver_id
+ - key: last_modified_by
+ foreign-key: approver_id
+ - key: created_by
+ foreign-key: supervisor_id
+ - key: last_modified_by
+ foreign-key: supervisor_id
+ - table-name: project_templates
+ keys:
+ - key: created_by
+ foreign-key: project_manager_id
+ - key: last_modified_by
+ foreign-key: project_manager_id
+ - table-name: revenue_plan_versions
+ keys:
+ - key: created_by
+ foreign-key: created_by_id
+ - key: last_modified_by
+ foreign-key: created_by_id
+ - table-name: subscription_change_orders
+ keys:
+ - key: created_by
+ foreign-key: requester_id
+ - key: last_modified_by
+ foreign-key: requester_id
+ - table-name: unlocked_time_periods
+ keys:
+ - key: created_by
+ foreign-key: last_modified_by_id
+ - key: last_modified_by
+ foreign-key: last_modified_by_id
+ - key: created_by
+ foreign-key: employee_id
+ - key: last_modified_by
+ foreign-key: employee_id
+ - table-name: vendors
+ keys:
+ - key: created_by
+ foreign-key: time_approver_id
+ - key: last_modified_by
+ foreign-key: time_approver_id
+ - table-name: project_revenue_rls_charge_rls
+ keys:
+ - key: project_revenue_rule_id
+ foreign-key: project_revenue_rule_id
+ - table-name: employee_time
+ keys:
+ - key: service_item_id
+ foreign-key: item_id
+ - table-name: item_billing_rates
+ keys:
+ - key: service_item_id
+ foreign-key: item_id
+ - table-name: service_items
+ keys:
+ - key: service_item_id
+ foreign-key: item_id
+- table-name: revenue_plan_versions
+ join:
+ - table-name: billing_rate_cards_versions
+ keys:
+ - key: created_by_id
+ foreign-key: last_modified_by_id
+ - table-name: customers
+ keys:
+ - key: created_by_id
+ foreign-key: project_manager_id
+ - table-name: employee_currency_map
+ keys:
+ - key: created_by_id
+ foreign-key: employee_id
+ - table-name: employees
+ keys:
+ - key: created_by_id
+ foreign-key: employee_id
+ - key: created_by_id
+ foreign-key: approver_id
+ - key: created_by_id
+ foreign-key: supervisor_id
+ - table-name: project_revenue_rules
+ keys:
+ - key: created_by_id
+ foreign-key: created_by
+ - key: created_by_id
+ foreign-key: last_modified_by
+ - table-name: project_templates
+ keys:
+ - key: created_by_id
+ foreign-key: project_manager_id
+ - table-name: subscription_change_orders
+ keys:
+ - key: created_by_id
+ foreign-key: requester_id
+ - table-name: unlocked_time_periods
+ keys:
+ - key: created_by_id
+ foreign-key: last_modified_by_id
+ - key: created_by_id
+ foreign-key: employee_id
+ - table-name: vendors
+ keys:
+ - key: created_by_id
+ foreign-key: time_approver_id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: plan_version_id
+ foreign-key: plan_version_id
+ - table-name: revenue_plans
+ keys:
+ - key: plan_id
+ foreign-key: plan_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: plan_id
+ foreign-key: plan_id
+- table-name: unlocked_time_periods
+ join:
+ - table-name: billing_rate_cards_versions
+ keys:
+ - key: last_modified_by_id
+ foreign-key: last_modified_by_id
+ - key: employee_id
+ foreign-key: last_modified_by_id
+ - table-name: customers
+ keys:
+ - key: last_modified_by_id
+ foreign-key: project_manager_id
+ - key: employee_id
+ foreign-key: project_manager_id
+ - table-name: employee_currency_map
+ keys:
+ - key: last_modified_by_id
+ foreign-key: employee_id
+ - key: employee_id
+ foreign-key: employee_id
+ - table-name: employees
+ keys:
+ - key: last_modified_by_id
+ foreign-key: employee_id
+ - key: employee_id
+ foreign-key: employee_id
+ - key: last_modified_by_id
+ foreign-key: approver_id
+ - key: employee_id
+ foreign-key: approver_id
+ - key: last_modified_by_id
+ foreign-key: supervisor_id
+ - key: employee_id
+ foreign-key: supervisor_id
+ - table-name: project_revenue_rules
+ keys:
+ - key: last_modified_by_id
+ foreign-key: created_by
+ - key: employee_id
+ foreign-key: created_by
+ - key: last_modified_by_id
+ foreign-key: last_modified_by
+ - key: employee_id
+ foreign-key: last_modified_by
+ - table-name: project_templates
+ keys:
+ - key: last_modified_by_id
+ foreign-key: project_manager_id
+ - key: employee_id
+ foreign-key: project_manager_id
+ - table-name: revenue_plan_versions
+ keys:
+ - key: last_modified_by_id
+ foreign-key: created_by_id
+ - key: employee_id
+ foreign-key: created_by_id
+ - table-name: subscription_change_orders
+ keys:
+ - key: last_modified_by_id
+ foreign-key: requester_id
+ - key: employee_id
+ foreign-key: requester_id
+ - table-name: vendors
+ keys:
+ - key: last_modified_by_id
+ foreign-key: time_approver_id
+ - key: employee_id
+ foreign-key: time_approver_id
+- table-name: vendors
+ join:
+ - table-name: billing_rate_cards_versions
+ keys:
+ - key: time_approver_id
+ foreign-key: last_modified_by_id
+ - table-name: customers
+ keys:
+ - key: time_approver_id
+ foreign-key: project_manager_id
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary
+ foreign-key: represents_subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: employee_currency_map
+ keys:
+ - key: time_approver_id
+ foreign-key: employee_id
+ - table-name: employees
+ keys:
+ - key: time_approver_id
+ foreign-key: employee_id
+ - key: time_approver_id
+ foreign-key: approver_id
+ - key: time_approver_id
+ foreign-key: supervisor_id
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: project_revenue_rules
+ keys:
+ - key: time_approver_id
+ foreign-key: created_by
+ - key: time_approver_id
+ foreign-key: last_modified_by
+ - table-name: project_templates
+ keys:
+ - key: time_approver_id
+ foreign-key: project_manager_id
+ - table-name: revenue_plan_versions
+ keys:
+ - key: time_approver_id
+ foreign-key: created_by_id
+ - table-name: subscription_change_orders
+ keys:
+ - key: time_approver_id
+ foreign-key: requester_id
+ - table-name: unlocked_time_periods
+ keys:
+ - key: time_approver_id
+ foreign-key: last_modified_by_id
+ - key: time_approver_id
+ foreign-key: employee_id
+ - table-name: account_activity
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: subsidiary
+ foreign-key: balance_from_subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: budget
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: companies
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: subsidiary
+ foreign-key: from_subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: subsidiary
+ foreign-key: to_subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: to_subsidiary_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: employee_time
+ keys:
+ - key: subsidiary
+ foreign-key: billing_subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_account_map
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_inventory_relationships
+ keys:
+ - key: subsidiary
+ foreign-key: inventory_subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: subsidiary
+ foreign-key: originating_subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - table-name: item_account_map
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_map
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: vendor_id
+ foreign-key: vendor_id
+ - table-name: opportunity_lines
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: partners
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary
+ - table-name: posting_account_activity
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary
+ foreign-key: balance_from_subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - table-name: role_subsidiary_map
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subscription_plans
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: support_incidents
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiaries
+ keys:
+ - key: subsidiary
+ foreign-key: billing_subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - table-name: transaction_lines
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary
+ foreign-key: source_subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: source_subsidiary_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - key: represents_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: vendor_id
+ foreign-key: vendor_id
+ - table-name: vendor_types
+ keys:
+ - key: vendor_type_id
+ foreign-key: vendor_type_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: vendor_id
+ foreign-key: vendor_id
+- table-name: contact_types
+ join:
+ - table-name: campaign_subscription_statuses
+ keys:
+ - key: contact_id
+ foreign-key: entity_id
+ - key: owner_id
+ foreign-key: entity_id
+ - table-name: campaignresponse
+ keys:
+ - key: contact_id
+ foreign-key: entity_id
+ - key: owner_id
+ foreign-key: entity_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: contact_id
+ foreign-key: author
+ - key: owner_id
+ foreign-key: author
+ - table-name: campaigns
+ keys:
+ - key: contact_id
+ foreign-key: organizer_id
+ - key: owner_id
+ foreign-key: organizer_id
+ - table-name: caseescalationhistory
+ keys:
+ - key: contact_id
+ foreign-key: escalator_id
+ - key: owner_id
+ foreign-key: escalator_id
+ - key: contact_id
+ foreign-key: entity_id
+ - key: owner_id
+ foreign-key: entity_id
+ - table-name: currency_exchange_rates
+ keys:
+ - key: contact_id
+ foreign-key: entity_id
+ - key: owner_id
+ foreign-key: entity_id
+ - table-name: currencyrates
+ keys:
+ - key: contact_id
+ foreign-key: entity_id
+ - key: owner_id
+ foreign-key: entity_id
+ - table-name: customers
+ keys:
+ - key: contact_id
+ foreign-key: converted_to_id
+ - key: owner_id
+ foreign-key: converted_to_id
+ - key: contact_id
+ foreign-key: converted_to_contact_id
+ - key: owner_id
+ foreign-key: converted_to_contact_id
+ - key: contact_id
+ foreign-key: sales_rep_id
+ - key: owner_id
+ foreign-key: sales_rep_id
+ - key: contact_id
+ foreign-key: parent_id
+ - key: owner_id
+ foreign-key: parent_id
+ - table-name: entity_role_map
+ keys:
+ - key: contact_id
+ foreign-key: entity_id
+ - key: owner_id
+ foreign-key: entity_id
+ - table-name: entityterritorymap
+ keys:
+ - key: contact_id
+ foreign-key: entity_id
+ - key: owner_id
+ foreign-key: entity_id
+ - table-name: messagerecipient
+ keys:
+ - key: contact_id
+ foreign-key: entity_id
+ - key: owner_id
+ foreign-key: entity_id
+ - table-name: notes_system_custom
+ keys:
+ - key: contact_id
+ foreign-key: company_id
+ - key: owner_id
+ foreign-key: company_id
+ - key: contact_id
+ foreign-key: author_id
+ - key: owner_id
+ foreign-key: author_id
+ - table-name: notes_system
+ keys:
+ - key: contact_id
+ foreign-key: company_id
+ - key: owner_id
+ foreign-key: company_id
+ - key: contact_id
+ foreign-key: author_id
+ - key: owner_id
+ foreign-key: author_id
+ - table-name: notes_user
+ keys:
+ - key: contact_id
+ foreign-key: company_id
+ - key: owner_id
+ foreign-key: company_id
+ - table-name: opportunities
+ keys:
+ - key: contact_id
+ foreign-key: sales_rep_id
+ - key: owner_id
+ foreign-key: sales_rep_id
+ - table-name: opportunity_lines
+ keys:
+ - key: contact_id
+ foreign-key: company_id
+ - key: owner_id
+ foreign-key: company_id
+ - key: contact_id
+ foreign-key: related_company_id
+ - key: owner_id
+ foreign-key: related_company_id
+ - table-name: resource_group_entity_map
+ keys:
+ - key: contact_id
+ foreign-key: entity_id
+ - key: owner_id
+ foreign-key: entity_id
+ - table-name: resource_groups
+ keys:
+ - key: contact_id
+ foreign-key: resource_group_id
+ - key: owner_id
+ foreign-key: resource_group_id
+ - table-name: support_incidents
+ keys:
+ - key: contact_id
+ foreign-key: owner_id
+ - key: owner_id
+ foreign-key: owner_id
+ - key: contact_id
+ foreign-key: assigned_id
+ - key: owner_id
+ foreign-key: assigned_id
+ - key: contact_id
+ foreign-key: company_id
+ - key: owner_id
+ foreign-key: company_id
+ - table-name: supportcasehistory
+ keys:
+ - key: contact_id
+ foreign-key: employee_id
+ - key: owner_id
+ foreign-key: employee_id
+ - table-name: system_notes_custom
+ keys:
+ - key: contact_id
+ foreign-key: company_id
+ - key: owner_id
+ foreign-key: company_id
+ - key: contact_id
+ foreign-key: author_id
+ - key: owner_id
+ foreign-key: author_id
+ - key: contact_id
+ foreign-key: customfield_created_by_id
+ - key: owner_id
+ foreign-key: customfield_created_by_id
+ - key: contact_id
+ foreign-key: customfield_modified_by_id
+ - key: owner_id
+ foreign-key: customfield_modified_by_id
+ - table-name: system_notes
+ keys:
+ - key: contact_id
+ foreign-key: company_id
+ - key: owner_id
+ foreign-key: company_id
+ - key: contact_id
+ foreign-key: author_id
+ - key: owner_id
+ foreign-key: author_id
+ - table-name: transaction_address
+ keys:
+ - key: contact_id
+ foreign-key: created_by_id
+ - key: owner_id
+ foreign-key: created_by_id
+ - key: contact_id
+ foreign-key: last_modified_by_id
+ - key: owner_id
+ foreign-key: last_modified_by_id
+ - table-name: transaction_history
+ keys:
+ - key: contact_id
+ foreign-key: user_id
+ - key: owner_id
+ foreign-key: user_id
+ - key: contact_id
+ foreign-key: entity_id
+ - key: owner_id
+ foreign-key: entity_id
+- table-name: currencyrates
+ join:
+ - table-name: campaign_subscription_statuses
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: campaignresponse
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: entity_id
+ foreign-key: author
+ - table-name: campaigns
+ keys:
+ - key: entity_id
+ foreign-key: organizer_id
+ - table-name: caseescalationhistory
+ keys:
+ - key: entity_id
+ foreign-key: escalator_id
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: contact_types
+ keys:
+ - key: entity_id
+ foreign-key: contact_id
+ - key: entity_id
+ foreign-key: owner_id
+ - table-name: currency_exchange_rates
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: customers
+ keys:
+ - key: entity_id
+ foreign-key: converted_to_id
+ - key: entity_id
+ foreign-key: converted_to_contact_id
+ - key: entity_id
+ foreign-key: sales_rep_id
+ - key: entity_id
+ foreign-key: parent_id
+ - table-name: entity_role_map
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: entityterritorymap
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: messagerecipient
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: notes_system_custom
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - table-name: notes_system
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - table-name: notes_user
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - table-name: opportunities
+ keys:
+ - key: entity_id
+ foreign-key: sales_rep_id
+ - table-name: opportunity_lines
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: related_company_id
+ - table-name: resource_group_entity_map
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: resource_groups
+ keys:
+ - key: entity_id
+ foreign-key: resource_group_id
+ - table-name: support_incidents
+ keys:
+ - key: entity_id
+ foreign-key: owner_id
+ - key: entity_id
+ foreign-key: assigned_id
+ - key: entity_id
+ foreign-key: company_id
+ - table-name: supportcasehistory
+ keys:
+ - key: entity_id
+ foreign-key: employee_id
+ - table-name: system_notes_custom
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - key: entity_id
+ foreign-key: customfield_created_by_id
+ - key: entity_id
+ foreign-key: customfield_modified_by_id
+ - table-name: system_notes
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - table-name: transaction_address
+ keys:
+ - key: entity_id
+ foreign-key: created_by_id
+ - key: entity_id
+ foreign-key: last_modified_by_id
+ - table-name: transaction_history
+ keys:
+ - key: entity_id
+ foreign-key: user_id
+ - key: entity_id
+ foreign-key: entity_id
+- table-name: entityterritorymap
+ join:
+ - table-name: campaign_subscription_statuses
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: campaignresponse
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: entity_id
+ foreign-key: author
+ - table-name: campaigns
+ keys:
+ - key: entity_id
+ foreign-key: organizer_id
+ - table-name: caseescalationhistory
+ keys:
+ - key: entity_id
+ foreign-key: escalator_id
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: contact_types
+ keys:
+ - key: entity_id
+ foreign-key: contact_id
+ - key: entity_id
+ foreign-key: owner_id
+ - table-name: currency_exchange_rates
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: currencyrates
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: customers
+ keys:
+ - key: entity_id
+ foreign-key: converted_to_id
+ - key: entity_id
+ foreign-key: converted_to_contact_id
+ - key: entity_id
+ foreign-key: sales_rep_id
+ - key: entity_id
+ foreign-key: parent_id
+ - key: territory_id
+ foreign-key: sales_territory_id
+ - table-name: entity_role_map
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: messagerecipient
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: notes_system_custom
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - table-name: notes_system
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - table-name: notes_user
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - table-name: opportunities
+ keys:
+ - key: entity_id
+ foreign-key: sales_rep_id
+ - table-name: opportunity_lines
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: related_company_id
+ - table-name: resource_group_entity_map
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: resource_groups
+ keys:
+ - key: entity_id
+ foreign-key: resource_group_id
+ - table-name: support_incidents
+ keys:
+ - key: entity_id
+ foreign-key: owner_id
+ - key: entity_id
+ foreign-key: assigned_id
+ - key: entity_id
+ foreign-key: company_id
+ - key: territory_id
+ foreign-key: territory_id
+ - table-name: supportcasehistory
+ keys:
+ - key: entity_id
+ foreign-key: employee_id
+ - table-name: system_notes_custom
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - key: entity_id
+ foreign-key: customfield_created_by_id
+ - key: entity_id
+ foreign-key: customfield_modified_by_id
+ - table-name: system_notes
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - table-name: transaction_address
+ keys:
+ - key: entity_id
+ foreign-key: created_by_id
+ - key: entity_id
+ foreign-key: last_modified_by_id
+ - table-name: transaction_history
+ keys:
+ - key: entity_id
+ foreign-key: user_id
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: territory
+ keys:
+ - key: territory_id
+ foreign-key: territory_id
+- table-name: messagerecipient
+ join:
+ - table-name: campaign_subscription_statuses
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: campaignresponse
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: entity_id
+ foreign-key: author
+ - table-name: campaigns
+ keys:
+ - key: entity_id
+ foreign-key: organizer_id
+ - table-name: caseescalationhistory
+ keys:
+ - key: entity_id
+ foreign-key: escalator_id
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: contact_types
+ keys:
+ - key: entity_id
+ foreign-key: contact_id
+ - key: entity_id
+ foreign-key: owner_id
+ - table-name: currency_exchange_rates
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: currencyrates
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: customers
+ keys:
+ - key: entity_id
+ foreign-key: converted_to_id
+ - key: entity_id
+ foreign-key: converted_to_contact_id
+ - key: entity_id
+ foreign-key: sales_rep_id
+ - key: entity_id
+ foreign-key: parent_id
+ - table-name: entity_role_map
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: entityterritorymap
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: notes_system_custom
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - table-name: notes_system
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - table-name: notes_user
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - table-name: opportunities
+ keys:
+ - key: entity_id
+ foreign-key: sales_rep_id
+ - table-name: opportunity_lines
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: related_company_id
+ - table-name: resource_group_entity_map
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: resource_groups
+ keys:
+ - key: entity_id
+ foreign-key: resource_group_id
+ - table-name: support_incidents
+ keys:
+ - key: entity_id
+ foreign-key: owner_id
+ - key: entity_id
+ foreign-key: assigned_id
+ - key: entity_id
+ foreign-key: company_id
+ - table-name: supportcasehistory
+ keys:
+ - key: entity_id
+ foreign-key: employee_id
+ - table-name: system_notes_custom
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - key: entity_id
+ foreign-key: customfield_created_by_id
+ - key: entity_id
+ foreign-key: customfield_modified_by_id
+ - table-name: system_notes
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - table-name: transaction_address
+ keys:
+ - key: entity_id
+ foreign-key: created_by_id
+ - key: entity_id
+ foreign-key: last_modified_by_id
+ - table-name: transaction_history
+ keys:
+ - key: entity_id
+ foreign-key: user_id
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: message
+ keys:
+ - key: message_id
+ foreign-key: message_id
+- table-name: notes_system_custom
+ join:
+ - table-name: campaign_subscription_statuses
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - table-name: campaignresponse
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: company_id
+ foreign-key: author
+ - key: author_id
+ foreign-key: author
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: campaigns
+ keys:
+ - key: company_id
+ foreign-key: organizer_id
+ - key: author_id
+ foreign-key: organizer_id
+ - table-name: caseescalationhistory
+ keys:
+ - key: company_id
+ foreign-key: escalator_id
+ - key: author_id
+ foreign-key: escalator_id
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - table-name: contact_types
+ keys:
+ - key: company_id
+ foreign-key: contact_id
+ - key: author_id
+ foreign-key: contact_id
+ - key: company_id
+ foreign-key: owner_id
+ - key: author_id
+ foreign-key: owner_id
+ - table-name: currency_exchange_rates
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - table-name: currencyrates
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - table-name: customers
+ keys:
+ - key: company_id
+ foreign-key: converted_to_id
+ - key: author_id
+ foreign-key: converted_to_id
+ - key: company_id
+ foreign-key: converted_to_contact_id
+ - key: author_id
+ foreign-key: converted_to_contact_id
+ - key: company_id
+ foreign-key: sales_rep_id
+ - key: author_id
+ foreign-key: sales_rep_id
+ - key: company_id
+ foreign-key: parent_id
+ - key: author_id
+ foreign-key: parent_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - table-name: entity_role_map
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - table-name: entityterritorymap
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - table-name: messagerecipient
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - table-name: notes_system
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: author_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: author_id
+ - key: author_id
+ foreign-key: author_id
+ - key: item_id
+ foreign-key: item_id
+ - key: note_type_id
+ foreign-key: note_type_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: line_id
+ foreign-key: line_id
+ - table-name: notes_user
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: author_id
+ foreign-key: company_id
+ - key: item_id
+ foreign-key: item_id
+ - key: note_type_id
+ foreign-key: note_type_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: opportunities
+ keys:
+ - key: company_id
+ foreign-key: sales_rep_id
+ - key: author_id
+ foreign-key: sales_rep_id
+ - key: transaction_id
+ foreign-key: reversing-transaction-id
+ - table-name: opportunity_lines
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: author_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: related_company_id
+ - key: author_id
+ foreign-key: related_company_id
+ - key: item_id
+ foreign-key: item_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - table-name: resource_group_entity_map
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - table-name: resource_groups
+ keys:
+ - key: company_id
+ foreign-key: resource_group_id
+ - key: author_id
+ foreign-key: resource_group_id
+ - table-name: support_incidents
+ keys:
+ - key: company_id
+ foreign-key: owner_id
+ - key: author_id
+ foreign-key: owner_id
+ - key: company_id
+ foreign-key: assigned_id
+ - key: author_id
+ foreign-key: assigned_id
+ - key: company_id
+ foreign-key: company_id
+ - key: author_id
+ foreign-key: company_id
+ - key: item_id
+ foreign-key: item_id
+ - table-name: supportcasehistory
+ keys:
+ - key: company_id
+ foreign-key: employee_id
+ - key: author_id
+ foreign-key: employee_id
+ - table-name: system_notes_custom
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: author_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: author_id
+ - key: author_id
+ foreign-key: author_id
+ - key: company_id
+ foreign-key: customfield_created_by_id
+ - key: author_id
+ foreign-key: customfield_created_by_id
+ - key: company_id
+ foreign-key: customfield_modified_by_id
+ - key: author_id
+ foreign-key: customfield_modified_by_id
+ - key: item_id
+ foreign-key: item_id
+ - key: note_type_id
+ foreign-key: note_type_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: line_id
+ foreign-key: line_id
+ - table-name: system_notes
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: author_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: author_id
+ - key: author_id
+ foreign-key: author_id
+ - key: item_id
+ foreign-key: item_id
+ - key: note_type_id
+ foreign-key: note_type_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: line_id
+ foreign-key: line_id
+ - table-name: transaction_address
+ keys:
+ - key: company_id
+ foreign-key: created_by_id
+ - key: author_id
+ foreign-key: created_by_id
+ - key: company_id
+ foreign-key: last_modified_by_id
+ - key: author_id
+ foreign-key: last_modified_by_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_history
+ keys:
+ - key: company_id
+ foreign-key: user_id
+ - key: author_id
+ foreign-key: user_id
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: bill_of_materials
+ keys:
+ - key: item_id
+ foreign-key: original_assembly_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: item_id
+ foreign-key: service_item_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: transaction_id
+ foreign-key: purchase_order_id
+ - key: transaction_id
+ foreign-key: sales_order_id
+ - table-name: bom_revision_components
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: budget
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: campaignitem
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_collection_item_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_price_history
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_vendor_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: items
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: purchase_charge_rules
+ keys:
+ - key: item_id
+ foreign-key: mark_up_item_id
+ - table-name: standard_cost_components
+ keys:
+ - key: item_id
+ foreign-key: component_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: item_id
+ foreign-key: plan_item_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: line_id
+ foreign-key: transaction_line_id
+ - table-name: notetype
+ keys:
+ - key: note_type_id
+ foreign-key: note_type_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: billing_subscriptions
+ keys:
+ - key: transaction_id
+ foreign-key: sales_order_id
+ - table-name: employee_time
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: line_id
+ foreign-key: transaction_line_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: expense_plans
+ keys:
+ - key: transaction_id
+ foreign-key: related_revenue_arrangement_id
+ - key: line_id
+ foreign-key: transaction_line_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: transaction_book_map
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_lines
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: line_id
+ foreign-key: transaction_line_id
+ - table-name: transaction_links
+ keys:
+ - key: transaction_id
+ foreign-key: applied_transaction_id
+ - key: transaction_id
+ foreign-key: original_transaction_id
+ - key: line_id
+ foreign-key: applied_transaction_line_id
+ - key: line_id
+ foreign-key: original_transaction_line_id
+ - table-name: transaction_shipping_groups
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: line_id
+ foreign-key: transaction_line_id
+- table-name: notes_system
+ join:
+ - table-name: campaign_subscription_statuses
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - table-name: campaignresponse
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: company_id
+ foreign-key: author
+ - key: author_id
+ foreign-key: author
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: campaigns
+ keys:
+ - key: company_id
+ foreign-key: organizer_id
+ - key: author_id
+ foreign-key: organizer_id
+ - table-name: caseescalationhistory
+ keys:
+ - key: company_id
+ foreign-key: escalator_id
+ - key: author_id
+ foreign-key: escalator_id
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - table-name: contact_types
+ keys:
+ - key: company_id
+ foreign-key: contact_id
+ - key: author_id
+ foreign-key: contact_id
+ - key: company_id
+ foreign-key: owner_id
+ - key: author_id
+ foreign-key: owner_id
+ - table-name: currency_exchange_rates
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - table-name: currencyrates
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - table-name: customers
+ keys:
+ - key: company_id
+ foreign-key: converted_to_id
+ - key: author_id
+ foreign-key: converted_to_id
+ - key: company_id
+ foreign-key: converted_to_contact_id
+ - key: author_id
+ foreign-key: converted_to_contact_id
+ - key: company_id
+ foreign-key: sales_rep_id
+ - key: author_id
+ foreign-key: sales_rep_id
+ - key: company_id
+ foreign-key: parent_id
+ - key: author_id
+ foreign-key: parent_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - table-name: entity_role_map
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - table-name: entityterritorymap
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - table-name: messagerecipient
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - table-name: notes_system_custom
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: author_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: author_id
+ - key: author_id
+ foreign-key: author_id
+ - key: item_id
+ foreign-key: item_id
+ - key: note_type_id
+ foreign-key: note_type_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: line_id
+ foreign-key: line_id
+ - table-name: notes_user
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: author_id
+ foreign-key: company_id
+ - key: item_id
+ foreign-key: item_id
+ - key: note_type_id
+ foreign-key: note_type_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: opportunities
+ keys:
+ - key: company_id
+ foreign-key: sales_rep_id
+ - key: author_id
+ foreign-key: sales_rep_id
+ - key: transaction_id
+ foreign-key: reversing-transaction-id
+ - table-name: opportunity_lines
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: author_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: related_company_id
+ - key: author_id
+ foreign-key: related_company_id
+ - key: item_id
+ foreign-key: item_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - table-name: resource_group_entity_map
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - table-name: resource_groups
+ keys:
+ - key: company_id
+ foreign-key: resource_group_id
+ - key: author_id
+ foreign-key: resource_group_id
+ - table-name: support_incidents
+ keys:
+ - key: company_id
+ foreign-key: owner_id
+ - key: author_id
+ foreign-key: owner_id
+ - key: company_id
+ foreign-key: assigned_id
+ - key: author_id
+ foreign-key: assigned_id
+ - key: company_id
+ foreign-key: company_id
+ - key: author_id
+ foreign-key: company_id
+ - key: item_id
+ foreign-key: item_id
+ - table-name: supportcasehistory
+ keys:
+ - key: company_id
+ foreign-key: employee_id
+ - key: author_id
+ foreign-key: employee_id
+ - table-name: system_notes_custom
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: author_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: author_id
+ - key: author_id
+ foreign-key: author_id
+ - key: company_id
+ foreign-key: customfield_created_by_id
+ - key: author_id
+ foreign-key: customfield_created_by_id
+ - key: company_id
+ foreign-key: customfield_modified_by_id
+ - key: author_id
+ foreign-key: customfield_modified_by_id
+ - key: item_id
+ foreign-key: item_id
+ - key: note_type_id
+ foreign-key: note_type_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: line_id
+ foreign-key: line_id
+ - table-name: system_notes
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: author_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: author_id
+ - key: author_id
+ foreign-key: author_id
+ - key: item_id
+ foreign-key: item_id
+ - key: note_type_id
+ foreign-key: note_type_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: line_id
+ foreign-key: line_id
+ - table-name: transaction_address
+ keys:
+ - key: company_id
+ foreign-key: created_by_id
+ - key: author_id
+ foreign-key: created_by_id
+ - key: company_id
+ foreign-key: last_modified_by_id
+ - key: author_id
+ foreign-key: last_modified_by_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_history
+ keys:
+ - key: company_id
+ foreign-key: user_id
+ - key: author_id
+ foreign-key: user_id
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: bill_of_materials
+ keys:
+ - key: item_id
+ foreign-key: original_assembly_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: item_id
+ foreign-key: service_item_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: transaction_id
+ foreign-key: purchase_order_id
+ - key: transaction_id
+ foreign-key: sales_order_id
+ - table-name: bom_revision_components
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: budget
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: campaignitem
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_collection_item_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_price_history
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_vendor_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: items
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: purchase_charge_rules
+ keys:
+ - key: item_id
+ foreign-key: mark_up_item_id
+ - table-name: standard_cost_components
+ keys:
+ - key: item_id
+ foreign-key: component_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: item_id
+ foreign-key: plan_item_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: line_id
+ foreign-key: transaction_line_id
+ - table-name: notetype
+ keys:
+ - key: note_type_id
+ foreign-key: note_type_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: billing_subscriptions
+ keys:
+ - key: transaction_id
+ foreign-key: sales_order_id
+ - table-name: employee_time
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: line_id
+ foreign-key: transaction_line_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: expense_plans
+ keys:
+ - key: transaction_id
+ foreign-key: related_revenue_arrangement_id
+ - key: line_id
+ foreign-key: transaction_line_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: transaction_book_map
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_lines
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: line_id
+ foreign-key: transaction_line_id
+ - table-name: transaction_links
+ keys:
+ - key: transaction_id
+ foreign-key: applied_transaction_id
+ - key: transaction_id
+ foreign-key: original_transaction_id
+ - key: line_id
+ foreign-key: applied_transaction_line_id
+ - key: line_id
+ foreign-key: original_transaction_line_id
+ - table-name: transaction_shipping_groups
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: line_id
+ foreign-key: transaction_line_id
+- table-name: notes_user
+ join:
+ - table-name: campaign_subscription_statuses
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - table-name: campaignresponse
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: company_id
+ foreign-key: author
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: campaigns
+ keys:
+ - key: company_id
+ foreign-key: organizer_id
+ - table-name: caseescalationhistory
+ keys:
+ - key: company_id
+ foreign-key: escalator_id
+ - key: company_id
+ foreign-key: entity_id
+ - table-name: contact_types
+ keys:
+ - key: company_id
+ foreign-key: contact_id
+ - key: company_id
+ foreign-key: owner_id
+ - table-name: currency_exchange_rates
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - table-name: currencyrates
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - table-name: customers
+ keys:
+ - key: company_id
+ foreign-key: converted_to_id
+ - key: company_id
+ foreign-key: converted_to_contact_id
+ - key: company_id
+ foreign-key: sales_rep_id
+ - key: company_id
+ foreign-key: parent_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - table-name: entity_role_map
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - table-name: entityterritorymap
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - table-name: messagerecipient
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - table-name: notes_system_custom
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: author_id
+ - key: item_id
+ foreign-key: item_id
+ - key: note_type_id
+ foreign-key: note_type_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: notes_system
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: author_id
+ - key: item_id
+ foreign-key: item_id
+ - key: note_type_id
+ foreign-key: note_type_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: opportunities
+ keys:
+ - key: company_id
+ foreign-key: sales_rep_id
+ - key: transaction_id
+ foreign-key: reversing-transaction-id
+ - table-name: opportunity_lines
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: related_company_id
+ - key: item_id
+ foreign-key: item_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - table-name: resource_group_entity_map
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - table-name: resource_groups
+ keys:
+ - key: company_id
+ foreign-key: resource_group_id
+ - table-name: support_incidents
+ keys:
+ - key: company_id
+ foreign-key: owner_id
+ - key: company_id
+ foreign-key: assigned_id
+ - key: company_id
+ foreign-key: company_id
+ - key: item_id
+ foreign-key: item_id
+ - table-name: supportcasehistory
+ keys:
+ - key: company_id
+ foreign-key: employee_id
+ - table-name: system_notes_custom
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: author_id
+ - key: company_id
+ foreign-key: customfield_created_by_id
+ - key: company_id
+ foreign-key: customfield_modified_by_id
+ - key: item_id
+ foreign-key: item_id
+ - key: note_type_id
+ foreign-key: note_type_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: system_notes
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: author_id
+ - key: item_id
+ foreign-key: item_id
+ - key: note_type_id
+ foreign-key: note_type_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_address
+ keys:
+ - key: company_id
+ foreign-key: created_by_id
+ - key: company_id
+ foreign-key: last_modified_by_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_history
+ keys:
+ - key: company_id
+ foreign-key: user_id
+ - key: company_id
+ foreign-key: entity_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: bill_of_materials
+ keys:
+ - key: item_id
+ foreign-key: original_assembly_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: item_id
+ foreign-key: service_item_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: transaction_id
+ foreign-key: purchase_order_id
+ - key: transaction_id
+ foreign-key: sales_order_id
+ - table-name: bom_revision_components
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: budget
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: campaignitem
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_collection_item_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_price_history
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_vendor_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: items
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: purchase_charge_rules
+ keys:
+ - key: item_id
+ foreign-key: mark_up_item_id
+ - table-name: standard_cost_components
+ keys:
+ - key: item_id
+ foreign-key: component_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: item_id
+ foreign-key: plan_item_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notetype
+ keys:
+ - key: note_type_id
+ foreign-key: note_type_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: billing_subscriptions
+ keys:
+ - key: transaction_id
+ foreign-key: sales_order_id
+ - table-name: employee_time
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: expense_plans
+ keys:
+ - key: transaction_id
+ foreign-key: related_revenue_arrangement_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: transaction_book_map
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_lines
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_links
+ keys:
+ - key: transaction_id
+ foreign-key: applied_transaction_id
+ - key: transaction_id
+ foreign-key: original_transaction_id
+ - table-name: transaction_shipping_groups
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+- table-name: resource_group_entity_map
+ join:
+ - table-name: campaign_subscription_statuses
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: campaignresponse
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: entity_id
+ foreign-key: author
+ - table-name: campaigns
+ keys:
+ - key: entity_id
+ foreign-key: organizer_id
+ - table-name: caseescalationhistory
+ keys:
+ - key: entity_id
+ foreign-key: escalator_id
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: contact_types
+ keys:
+ - key: entity_id
+ foreign-key: contact_id
+ - key: entity_id
+ foreign-key: owner_id
+ - table-name: currency_exchange_rates
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: currencyrates
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: customers
+ keys:
+ - key: entity_id
+ foreign-key: converted_to_id
+ - key: entity_id
+ foreign-key: converted_to_contact_id
+ - key: entity_id
+ foreign-key: sales_rep_id
+ - key: entity_id
+ foreign-key: parent_id
+ - table-name: entity_role_map
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: entityterritorymap
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: messagerecipient
+ keys:
+ - key: entity_id
+ foreign-key: entity_id
+ - table-name: notes_system_custom
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - table-name: notes_system
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - table-name: notes_user
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - table-name: opportunities
+ keys:
+ - key: entity_id
+ foreign-key: sales_rep_id
+ - table-name: opportunity_lines
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: related_company_id
+ - table-name: resource_groups
+ keys:
+ - key: entity_id
+ foreign-key: resource_group_id
+ - table-name: support_incidents
+ keys:
+ - key: entity_id
+ foreign-key: owner_id
+ - key: entity_id
+ foreign-key: assigned_id
+ - key: entity_id
+ foreign-key: company_id
+ - table-name: supportcasehistory
+ keys:
+ - key: entity_id
+ foreign-key: employee_id
+ - table-name: system_notes_custom
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - key: entity_id
+ foreign-key: customfield_created_by_id
+ - key: entity_id
+ foreign-key: customfield_modified_by_id
+ - table-name: system_notes
+ keys:
+ - key: entity_id
+ foreign-key: company_id
+ - key: entity_id
+ foreign-key: author_id
+ - table-name: transaction_address
+ keys:
+ - key: entity_id
+ foreign-key: created_by_id
+ - key: entity_id
+ foreign-key: last_modified_by_id
+ - table-name: transaction_history
+ keys:
+ - key: entity_id
+ foreign-key: user_id
+ - key: entity_id
+ foreign-key: entity_id
+- table-name: resource_groups
+ join:
+ - table-name: campaign_subscription_statuses
+ keys:
+ - key: resource_group_id
+ foreign-key: entity_id
+ - table-name: campaignresponse
+ keys:
+ - key: resource_group_id
+ foreign-key: entity_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: resource_group_id
+ foreign-key: author
+ - table-name: campaigns
+ keys:
+ - key: resource_group_id
+ foreign-key: organizer_id
+ - table-name: caseescalationhistory
+ keys:
+ - key: resource_group_id
+ foreign-key: escalator_id
+ - key: resource_group_id
+ foreign-key: entity_id
+ - table-name: contact_types
+ keys:
+ - key: resource_group_id
+ foreign-key: contact_id
+ - key: resource_group_id
+ foreign-key: owner_id
+ - table-name: currency_exchange_rates
+ keys:
+ - key: resource_group_id
+ foreign-key: entity_id
+ - table-name: currencyrates
+ keys:
+ - key: resource_group_id
+ foreign-key: entity_id
+ - table-name: customers
+ keys:
+ - key: resource_group_id
+ foreign-key: converted_to_id
+ - key: resource_group_id
+ foreign-key: converted_to_contact_id
+ - key: resource_group_id
+ foreign-key: sales_rep_id
+ - key: resource_group_id
+ foreign-key: parent_id
+ - table-name: entity_role_map
+ keys:
+ - key: resource_group_id
+ foreign-key: entity_id
+ - table-name: entityterritorymap
+ keys:
+ - key: resource_group_id
+ foreign-key: entity_id
+ - table-name: messagerecipient
+ keys:
+ - key: resource_group_id
+ foreign-key: entity_id
+ - table-name: notes_system_custom
+ keys:
+ - key: resource_group_id
+ foreign-key: company_id
+ - key: resource_group_id
+ foreign-key: author_id
+ - table-name: notes_system
+ keys:
+ - key: resource_group_id
+ foreign-key: company_id
+ - key: resource_group_id
+ foreign-key: author_id
+ - table-name: notes_user
+ keys:
+ - key: resource_group_id
+ foreign-key: company_id
+ - table-name: opportunities
+ keys:
+ - key: resource_group_id
+ foreign-key: sales_rep_id
+ - table-name: opportunity_lines
+ keys:
+ - key: resource_group_id
+ foreign-key: company_id
+ - key: resource_group_id
+ foreign-key: related_company_id
+ - table-name: resource_group_entity_map
+ keys:
+ - key: resource_group_id
+ foreign-key: entity_id
+ - table-name: support_incidents
+ keys:
+ - key: resource_group_id
+ foreign-key: owner_id
+ - key: resource_group_id
+ foreign-key: assigned_id
+ - key: resource_group_id
+ foreign-key: company_id
+ - table-name: supportcasehistory
+ keys:
+ - key: resource_group_id
+ foreign-key: employee_id
+ - table-name: system_notes_custom
+ keys:
+ - key: resource_group_id
+ foreign-key: company_id
+ - key: resource_group_id
+ foreign-key: author_id
+ - key: resource_group_id
+ foreign-key: customfield_created_by_id
+ - key: resource_group_id
+ foreign-key: customfield_modified_by_id
+ - table-name: system_notes
+ keys:
+ - key: resource_group_id
+ foreign-key: company_id
+ - key: resource_group_id
+ foreign-key: author_id
+ - table-name: transaction_address
+ keys:
+ - key: resource_group_id
+ foreign-key: created_by_id
+ - key: resource_group_id
+ foreign-key: last_modified_by_id
+ - table-name: transaction_history
+ keys:
+ - key: resource_group_id
+ foreign-key: user_id
+ - key: resource_group_id
+ foreign-key: entity_id
+- table-name: supportcasehistory
+ join:
+ - table-name: campaign_subscription_statuses
+ keys:
+ - key: employee_id
+ foreign-key: entity_id
+ - table-name: campaignresponse
+ keys:
+ - key: employee_id
+ foreign-key: entity_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: employee_id
+ foreign-key: author
+ - table-name: campaigns
+ keys:
+ - key: employee_id
+ foreign-key: organizer_id
+ - table-name: caseescalationhistory
+ keys:
+ - key: employee_id
+ foreign-key: escalator_id
+ - key: employee_id
+ foreign-key: entity_id
+ - table-name: contact_types
+ keys:
+ - key: employee_id
+ foreign-key: contact_id
+ - key: employee_id
+ foreign-key: owner_id
+ - table-name: currency_exchange_rates
+ keys:
+ - key: employee_id
+ foreign-key: entity_id
+ - table-name: currencyrates
+ keys:
+ - key: employee_id
+ foreign-key: entity_id
+ - table-name: customers
+ keys:
+ - key: employee_id
+ foreign-key: converted_to_id
+ - key: employee_id
+ foreign-key: converted_to_contact_id
+ - key: employee_id
+ foreign-key: sales_rep_id
+ - key: employee_id
+ foreign-key: parent_id
+ - table-name: entity_role_map
+ keys:
+ - key: employee_id
+ foreign-key: entity_id
+ - table-name: entityterritorymap
+ keys:
+ - key: employee_id
+ foreign-key: entity_id
+ - table-name: messagerecipient
+ keys:
+ - key: employee_id
+ foreign-key: entity_id
+ - table-name: notes_system_custom
+ keys:
+ - key: employee_id
+ foreign-key: company_id
+ - key: employee_id
+ foreign-key: author_id
+ - table-name: notes_system
+ keys:
+ - key: employee_id
+ foreign-key: company_id
+ - key: employee_id
+ foreign-key: author_id
+ - table-name: notes_user
+ keys:
+ - key: employee_id
+ foreign-key: company_id
+ - table-name: opportunities
+ keys:
+ - key: employee_id
+ foreign-key: sales_rep_id
+ - table-name: opportunity_lines
+ keys:
+ - key: employee_id
+ foreign-key: company_id
+ - key: employee_id
+ foreign-key: related_company_id
+ - table-name: resource_group_entity_map
+ keys:
+ - key: employee_id
+ foreign-key: entity_id
+ - table-name: resource_groups
+ keys:
+ - key: employee_id
+ foreign-key: resource_group_id
+ - table-name: support_incidents
+ keys:
+ - key: employee_id
+ foreign-key: owner_id
+ - key: employee_id
+ foreign-key: assigned_id
+ - key: employee_id
+ foreign-key: company_id
+ - table-name: system_notes_custom
+ keys:
+ - key: employee_id
+ foreign-key: company_id
+ - key: employee_id
+ foreign-key: author_id
+ - key: employee_id
+ foreign-key: customfield_created_by_id
+ - key: employee_id
+ foreign-key: customfield_modified_by_id
+ - table-name: system_notes
+ keys:
+ - key: employee_id
+ foreign-key: company_id
+ - key: employee_id
+ foreign-key: author_id
+ - table-name: transaction_address
+ keys:
+ - key: employee_id
+ foreign-key: created_by_id
+ - key: employee_id
+ foreign-key: last_modified_by_id
+ - table-name: transaction_history
+ keys:
+ - key: employee_id
+ foreign-key: user_id
+ - key: employee_id
+ foreign-key: entity_id
+- table-name: system_notes_custom
+ join:
+ - table-name: campaign_subscription_statuses
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - key: customfield_created_by_id
+ foreign-key: entity_id
+ - key: customfield_modified_by_id
+ foreign-key: entity_id
+ - table-name: campaignresponse
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - key: customfield_created_by_id
+ foreign-key: entity_id
+ - key: customfield_modified_by_id
+ foreign-key: entity_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: company_id
+ foreign-key: author
+ - key: author_id
+ foreign-key: author
+ - key: customfield_created_by_id
+ foreign-key: author
+ - key: customfield_modified_by_id
+ foreign-key: author
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: campaigns
+ keys:
+ - key: company_id
+ foreign-key: organizer_id
+ - key: author_id
+ foreign-key: organizer_id
+ - key: customfield_created_by_id
+ foreign-key: organizer_id
+ - key: customfield_modified_by_id
+ foreign-key: organizer_id
+ - table-name: caseescalationhistory
+ keys:
+ - key: company_id
+ foreign-key: escalator_id
+ - key: author_id
+ foreign-key: escalator_id
+ - key: customfield_created_by_id
+ foreign-key: escalator_id
+ - key: customfield_modified_by_id
+ foreign-key: escalator_id
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - key: customfield_created_by_id
+ foreign-key: entity_id
+ - key: customfield_modified_by_id
+ foreign-key: entity_id
+ - table-name: contact_types
+ keys:
+ - key: company_id
+ foreign-key: contact_id
+ - key: author_id
+ foreign-key: contact_id
+ - key: customfield_created_by_id
+ foreign-key: contact_id
+ - key: customfield_modified_by_id
+ foreign-key: contact_id
+ - key: company_id
+ foreign-key: owner_id
+ - key: author_id
+ foreign-key: owner_id
+ - key: customfield_created_by_id
+ foreign-key: owner_id
+ - key: customfield_modified_by_id
+ foreign-key: owner_id
+ - table-name: currency_exchange_rates
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - key: customfield_created_by_id
+ foreign-key: entity_id
+ - key: customfield_modified_by_id
+ foreign-key: entity_id
+ - table-name: currencyrates
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - key: customfield_created_by_id
+ foreign-key: entity_id
+ - key: customfield_modified_by_id
+ foreign-key: entity_id
+ - table-name: customers
+ keys:
+ - key: company_id
+ foreign-key: converted_to_id
+ - key: author_id
+ foreign-key: converted_to_id
+ - key: customfield_created_by_id
+ foreign-key: converted_to_id
+ - key: customfield_modified_by_id
+ foreign-key: converted_to_id
+ - key: company_id
+ foreign-key: converted_to_contact_id
+ - key: author_id
+ foreign-key: converted_to_contact_id
+ - key: customfield_created_by_id
+ foreign-key: converted_to_contact_id
+ - key: customfield_modified_by_id
+ foreign-key: converted_to_contact_id
+ - key: company_id
+ foreign-key: sales_rep_id
+ - key: author_id
+ foreign-key: sales_rep_id
+ - key: customfield_created_by_id
+ foreign-key: sales_rep_id
+ - key: customfield_modified_by_id
+ foreign-key: sales_rep_id
+ - key: company_id
+ foreign-key: parent_id
+ - key: author_id
+ foreign-key: parent_id
+ - key: customfield_created_by_id
+ foreign-key: parent_id
+ - key: customfield_modified_by_id
+ foreign-key: parent_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - table-name: entity_role_map
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - key: customfield_created_by_id
+ foreign-key: entity_id
+ - key: customfield_modified_by_id
+ foreign-key: entity_id
+ - table-name: entityterritorymap
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - key: customfield_created_by_id
+ foreign-key: entity_id
+ - key: customfield_modified_by_id
+ foreign-key: entity_id
+ - table-name: messagerecipient
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - key: customfield_created_by_id
+ foreign-key: entity_id
+ - key: customfield_modified_by_id
+ foreign-key: entity_id
+ - table-name: notes_system_custom
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: author_id
+ foreign-key: company_id
+ - key: customfield_created_by_id
+ foreign-key: company_id
+ - key: customfield_modified_by_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: author_id
+ - key: author_id
+ foreign-key: author_id
+ - key: customfield_created_by_id
+ foreign-key: author_id
+ - key: customfield_modified_by_id
+ foreign-key: author_id
+ - key: item_id
+ foreign-key: item_id
+ - key: note_type_id
+ foreign-key: note_type_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: line_id
+ foreign-key: line_id
+ - table-name: notes_system
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: author_id
+ foreign-key: company_id
+ - key: customfield_created_by_id
+ foreign-key: company_id
+ - key: customfield_modified_by_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: author_id
+ - key: author_id
+ foreign-key: author_id
+ - key: customfield_created_by_id
+ foreign-key: author_id
+ - key: customfield_modified_by_id
+ foreign-key: author_id
+ - key: item_id
+ foreign-key: item_id
+ - key: note_type_id
+ foreign-key: note_type_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: line_id
+ foreign-key: line_id
+ - table-name: notes_user
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: author_id
+ foreign-key: company_id
+ - key: customfield_created_by_id
+ foreign-key: company_id
+ - key: customfield_modified_by_id
+ foreign-key: company_id
+ - key: item_id
+ foreign-key: item_id
+ - key: note_type_id
+ foreign-key: note_type_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: opportunities
+ keys:
+ - key: company_id
+ foreign-key: sales_rep_id
+ - key: author_id
+ foreign-key: sales_rep_id
+ - key: customfield_created_by_id
+ foreign-key: sales_rep_id
+ - key: customfield_modified_by_id
+ foreign-key: sales_rep_id
+ - key: transaction_id
+ foreign-key: reversing-transaction-id
+ - table-name: opportunity_lines
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: author_id
+ foreign-key: company_id
+ - key: customfield_created_by_id
+ foreign-key: company_id
+ - key: customfield_modified_by_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: related_company_id
+ - key: author_id
+ foreign-key: related_company_id
+ - key: customfield_created_by_id
+ foreign-key: related_company_id
+ - key: customfield_modified_by_id
+ foreign-key: related_company_id
+ - key: item_id
+ foreign-key: item_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - table-name: resource_group_entity_map
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - key: customfield_created_by_id
+ foreign-key: entity_id
+ - key: customfield_modified_by_id
+ foreign-key: entity_id
+ - table-name: resource_groups
+ keys:
+ - key: company_id
+ foreign-key: resource_group_id
+ - key: author_id
+ foreign-key: resource_group_id
+ - key: customfield_created_by_id
+ foreign-key: resource_group_id
+ - key: customfield_modified_by_id
+ foreign-key: resource_group_id
+ - table-name: support_incidents
+ keys:
+ - key: company_id
+ foreign-key: owner_id
+ - key: author_id
+ foreign-key: owner_id
+ - key: customfield_created_by_id
+ foreign-key: owner_id
+ - key: customfield_modified_by_id
+ foreign-key: owner_id
+ - key: company_id
+ foreign-key: assigned_id
+ - key: author_id
+ foreign-key: assigned_id
+ - key: customfield_created_by_id
+ foreign-key: assigned_id
+ - key: customfield_modified_by_id
+ foreign-key: assigned_id
+ - key: company_id
+ foreign-key: company_id
+ - key: author_id
+ foreign-key: company_id
+ - key: customfield_created_by_id
+ foreign-key: company_id
+ - key: customfield_modified_by_id
+ foreign-key: company_id
+ - key: item_id
+ foreign-key: item_id
+ - table-name: supportcasehistory
+ keys:
+ - key: company_id
+ foreign-key: employee_id
+ - key: author_id
+ foreign-key: employee_id
+ - key: customfield_created_by_id
+ foreign-key: employee_id
+ - key: customfield_modified_by_id
+ foreign-key: employee_id
+ - table-name: system_notes
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: author_id
+ foreign-key: company_id
+ - key: customfield_created_by_id
+ foreign-key: company_id
+ - key: customfield_modified_by_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: author_id
+ - key: author_id
+ foreign-key: author_id
+ - key: customfield_created_by_id
+ foreign-key: author_id
+ - key: customfield_modified_by_id
+ foreign-key: author_id
+ - key: item_id
+ foreign-key: item_id
+ - key: note_type_id
+ foreign-key: note_type_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: line_id
+ foreign-key: line_id
+ - table-name: transaction_address
+ keys:
+ - key: company_id
+ foreign-key: created_by_id
+ - key: author_id
+ foreign-key: created_by_id
+ - key: customfield_created_by_id
+ foreign-key: created_by_id
+ - key: customfield_modified_by_id
+ foreign-key: created_by_id
+ - key: company_id
+ foreign-key: last_modified_by_id
+ - key: author_id
+ foreign-key: last_modified_by_id
+ - key: customfield_created_by_id
+ foreign-key: last_modified_by_id
+ - key: customfield_modified_by_id
+ foreign-key: last_modified_by_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_history
+ keys:
+ - key: company_id
+ foreign-key: user_id
+ - key: author_id
+ foreign-key: user_id
+ - key: customfield_created_by_id
+ foreign-key: user_id
+ - key: customfield_modified_by_id
+ foreign-key: user_id
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - key: customfield_created_by_id
+ foreign-key: entity_id
+ - key: customfield_modified_by_id
+ foreign-key: entity_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: bill_of_materials
+ keys:
+ - key: item_id
+ foreign-key: original_assembly_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: item_id
+ foreign-key: service_item_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: transaction_id
+ foreign-key: purchase_order_id
+ - key: transaction_id
+ foreign-key: sales_order_id
+ - table-name: bom_revision_components
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: budget
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: campaignitem
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_collection_item_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_price_history
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_vendor_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: items
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: purchase_charge_rules
+ keys:
+ - key: item_id
+ foreign-key: mark_up_item_id
+ - table-name: standard_cost_components
+ keys:
+ - key: item_id
+ foreign-key: component_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: item_id
+ foreign-key: plan_item_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: line_id
+ foreign-key: transaction_line_id
+ - table-name: notetype
+ keys:
+ - key: note_type_id
+ foreign-key: note_type_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: billing_subscriptions
+ keys:
+ - key: transaction_id
+ foreign-key: sales_order_id
+ - table-name: employee_time
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: line_id
+ foreign-key: transaction_line_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: expense_plans
+ keys:
+ - key: transaction_id
+ foreign-key: related_revenue_arrangement_id
+ - key: line_id
+ foreign-key: transaction_line_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: transaction_book_map
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_lines
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: line_id
+ foreign-key: transaction_line_id
+ - table-name: transaction_links
+ keys:
+ - key: transaction_id
+ foreign-key: applied_transaction_id
+ - key: transaction_id
+ foreign-key: original_transaction_id
+ - key: line_id
+ foreign-key: applied_transaction_line_id
+ - key: line_id
+ foreign-key: original_transaction_line_id
+ - table-name: transaction_shipping_groups
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: line_id
+ foreign-key: transaction_line_id
+- table-name: system_notes
+ join:
+ - table-name: campaign_subscription_statuses
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - table-name: campaignresponse
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: company_id
+ foreign-key: author
+ - key: author_id
+ foreign-key: author
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: campaigns
+ keys:
+ - key: company_id
+ foreign-key: organizer_id
+ - key: author_id
+ foreign-key: organizer_id
+ - table-name: caseescalationhistory
+ keys:
+ - key: company_id
+ foreign-key: escalator_id
+ - key: author_id
+ foreign-key: escalator_id
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - table-name: contact_types
+ keys:
+ - key: company_id
+ foreign-key: contact_id
+ - key: author_id
+ foreign-key: contact_id
+ - key: company_id
+ foreign-key: owner_id
+ - key: author_id
+ foreign-key: owner_id
+ - table-name: currency_exchange_rates
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - table-name: currencyrates
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - table-name: customers
+ keys:
+ - key: company_id
+ foreign-key: converted_to_id
+ - key: author_id
+ foreign-key: converted_to_id
+ - key: company_id
+ foreign-key: converted_to_contact_id
+ - key: author_id
+ foreign-key: converted_to_contact_id
+ - key: company_id
+ foreign-key: sales_rep_id
+ - key: author_id
+ foreign-key: sales_rep_id
+ - key: company_id
+ foreign-key: parent_id
+ - key: author_id
+ foreign-key: parent_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - table-name: entity_role_map
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - table-name: entityterritorymap
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - table-name: messagerecipient
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - table-name: notes_system_custom
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: author_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: author_id
+ - key: author_id
+ foreign-key: author_id
+ - key: item_id
+ foreign-key: item_id
+ - key: note_type_id
+ foreign-key: note_type_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: line_id
+ foreign-key: line_id
+ - table-name: notes_system
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: author_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: author_id
+ - key: author_id
+ foreign-key: author_id
+ - key: item_id
+ foreign-key: item_id
+ - key: note_type_id
+ foreign-key: note_type_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: line_id
+ foreign-key: line_id
+ - table-name: notes_user
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: author_id
+ foreign-key: company_id
+ - key: item_id
+ foreign-key: item_id
+ - key: note_type_id
+ foreign-key: note_type_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: opportunities
+ keys:
+ - key: company_id
+ foreign-key: sales_rep_id
+ - key: author_id
+ foreign-key: sales_rep_id
+ - key: transaction_id
+ foreign-key: reversing-transaction-id
+ - table-name: opportunity_lines
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: author_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: related_company_id
+ - key: author_id
+ foreign-key: related_company_id
+ - key: item_id
+ foreign-key: item_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - table-name: resource_group_entity_map
+ keys:
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - table-name: resource_groups
+ keys:
+ - key: company_id
+ foreign-key: resource_group_id
+ - key: author_id
+ foreign-key: resource_group_id
+ - table-name: support_incidents
+ keys:
+ - key: company_id
+ foreign-key: owner_id
+ - key: author_id
+ foreign-key: owner_id
+ - key: company_id
+ foreign-key: assigned_id
+ - key: author_id
+ foreign-key: assigned_id
+ - key: company_id
+ foreign-key: company_id
+ - key: author_id
+ foreign-key: company_id
+ - key: item_id
+ foreign-key: item_id
+ - table-name: supportcasehistory
+ keys:
+ - key: company_id
+ foreign-key: employee_id
+ - key: author_id
+ foreign-key: employee_id
+ - table-name: system_notes_custom
+ keys:
+ - key: company_id
+ foreign-key: company_id
+ - key: author_id
+ foreign-key: company_id
+ - key: company_id
+ foreign-key: author_id
+ - key: author_id
+ foreign-key: author_id
+ - key: company_id
+ foreign-key: customfield_created_by_id
+ - key: author_id
+ foreign-key: customfield_created_by_id
+ - key: company_id
+ foreign-key: customfield_modified_by_id
+ - key: author_id
+ foreign-key: customfield_modified_by_id
+ - key: item_id
+ foreign-key: item_id
+ - key: note_type_id
+ foreign-key: note_type_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: line_id
+ foreign-key: line_id
+ - table-name: transaction_address
+ keys:
+ - key: company_id
+ foreign-key: created_by_id
+ - key: author_id
+ foreign-key: created_by_id
+ - key: company_id
+ foreign-key: last_modified_by_id
+ - key: author_id
+ foreign-key: last_modified_by_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_history
+ keys:
+ - key: company_id
+ foreign-key: user_id
+ - key: author_id
+ foreign-key: user_id
+ - key: company_id
+ foreign-key: entity_id
+ - key: author_id
+ foreign-key: entity_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: bill_of_materials
+ keys:
+ - key: item_id
+ foreign-key: original_assembly_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: item_id
+ foreign-key: service_item_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: transaction_id
+ foreign-key: purchase_order_id
+ - key: transaction_id
+ foreign-key: sales_order_id
+ - table-name: bom_revision_components
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: budget
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: campaignitem
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_collection_item_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_price_history
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_vendor_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: items
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: purchase_charge_rules
+ keys:
+ - key: item_id
+ foreign-key: mark_up_item_id
+ - table-name: standard_cost_components
+ keys:
+ - key: item_id
+ foreign-key: component_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: item_id
+ foreign-key: plan_item_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: line_id
+ foreign-key: transaction_line_id
+ - table-name: notetype
+ keys:
+ - key: note_type_id
+ foreign-key: note_type_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: billing_subscriptions
+ keys:
+ - key: transaction_id
+ foreign-key: sales_order_id
+ - table-name: employee_time
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: line_id
+ foreign-key: transaction_line_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: expense_plans
+ keys:
+ - key: transaction_id
+ foreign-key: related_revenue_arrangement_id
+ - key: line_id
+ foreign-key: transaction_line_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: transaction_book_map
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_lines
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: line_id
+ foreign-key: transaction_line_id
+ - table-name: transaction_links
+ keys:
+ - key: transaction_id
+ foreign-key: applied_transaction_id
+ - key: transaction_id
+ foreign-key: original_transaction_id
+ - key: line_id
+ foreign-key: applied_transaction_line_id
+ - key: line_id
+ foreign-key: original_transaction_line_id
+ - table-name: transaction_shipping_groups
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: line_id
+ foreign-key: transaction_line_id
+- table-name: transaction_address
+ join:
+ - table-name: campaign_subscription_statuses
+ keys:
+ - key: created_by_id
+ foreign-key: entity_id
+ - key: last_modified_by_id
+ foreign-key: entity_id
+ - table-name: campaignresponse
+ keys:
+ - key: created_by_id
+ foreign-key: entity_id
+ - key: last_modified_by_id
+ foreign-key: entity_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: created_by_id
+ foreign-key: author
+ - key: last_modified_by_id
+ foreign-key: author
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: campaigns
+ keys:
+ - key: created_by_id
+ foreign-key: organizer_id
+ - key: last_modified_by_id
+ foreign-key: organizer_id
+ - table-name: caseescalationhistory
+ keys:
+ - key: created_by_id
+ foreign-key: escalator_id
+ - key: last_modified_by_id
+ foreign-key: escalator_id
+ - key: created_by_id
+ foreign-key: entity_id
+ - key: last_modified_by_id
+ foreign-key: entity_id
+ - table-name: contact_types
+ keys:
+ - key: created_by_id
+ foreign-key: contact_id
+ - key: last_modified_by_id
+ foreign-key: contact_id
+ - key: created_by_id
+ foreign-key: owner_id
+ - key: last_modified_by_id
+ foreign-key: owner_id
+ - table-name: currency_exchange_rates
+ keys:
+ - key: created_by_id
+ foreign-key: entity_id
+ - key: last_modified_by_id
+ foreign-key: entity_id
+ - table-name: currencyrates
+ keys:
+ - key: created_by_id
+ foreign-key: entity_id
+ - key: last_modified_by_id
+ foreign-key: entity_id
+ - table-name: customers
+ keys:
+ - key: created_by_id
+ foreign-key: converted_to_id
+ - key: last_modified_by_id
+ foreign-key: converted_to_id
+ - key: created_by_id
+ foreign-key: converted_to_contact_id
+ - key: last_modified_by_id
+ foreign-key: converted_to_contact_id
+ - key: created_by_id
+ foreign-key: sales_rep_id
+ - key: last_modified_by_id
+ foreign-key: sales_rep_id
+ - key: created_by_id
+ foreign-key: parent_id
+ - key: last_modified_by_id
+ foreign-key: parent_id
+ - table-name: entity_role_map
+ keys:
+ - key: created_by_id
+ foreign-key: entity_id
+ - key: last_modified_by_id
+ foreign-key: entity_id
+ - table-name: entityterritorymap
+ keys:
+ - key: created_by_id
+ foreign-key: entity_id
+ - key: last_modified_by_id
+ foreign-key: entity_id
+ - table-name: messagerecipient
+ keys:
+ - key: created_by_id
+ foreign-key: entity_id
+ - key: last_modified_by_id
+ foreign-key: entity_id
+ - table-name: notes_system_custom
+ keys:
+ - key: created_by_id
+ foreign-key: company_id
+ - key: last_modified_by_id
+ foreign-key: company_id
+ - key: created_by_id
+ foreign-key: author_id
+ - key: last_modified_by_id
+ foreign-key: author_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: notes_system
+ keys:
+ - key: created_by_id
+ foreign-key: company_id
+ - key: last_modified_by_id
+ foreign-key: company_id
+ - key: created_by_id
+ foreign-key: author_id
+ - key: last_modified_by_id
+ foreign-key: author_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: notes_user
+ keys:
+ - key: created_by_id
+ foreign-key: company_id
+ - key: last_modified_by_id
+ foreign-key: company_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: opportunities
+ keys:
+ - key: created_by_id
+ foreign-key: sales_rep_id
+ - key: last_modified_by_id
+ foreign-key: sales_rep_id
+ - key: transaction_id
+ foreign-key: reversing-transaction-id
+ - table-name: opportunity_lines
+ keys:
+ - key: created_by_id
+ foreign-key: company_id
+ - key: last_modified_by_id
+ foreign-key: company_id
+ - key: created_by_id
+ foreign-key: related_company_id
+ - key: last_modified_by_id
+ foreign-key: related_company_id
+ - table-name: resource_group_entity_map
+ keys:
+ - key: created_by_id
+ foreign-key: entity_id
+ - key: last_modified_by_id
+ foreign-key: entity_id
+ - table-name: resource_groups
+ keys:
+ - key: created_by_id
+ foreign-key: resource_group_id
+ - key: last_modified_by_id
+ foreign-key: resource_group_id
+ - table-name: support_incidents
+ keys:
+ - key: created_by_id
+ foreign-key: owner_id
+ - key: last_modified_by_id
+ foreign-key: owner_id
+ - key: created_by_id
+ foreign-key: assigned_id
+ - key: last_modified_by_id
+ foreign-key: assigned_id
+ - key: created_by_id
+ foreign-key: company_id
+ - key: last_modified_by_id
+ foreign-key: company_id
+ - table-name: supportcasehistory
+ keys:
+ - key: created_by_id
+ foreign-key: employee_id
+ - key: last_modified_by_id
+ foreign-key: employee_id
+ - table-name: system_notes_custom
+ keys:
+ - key: created_by_id
+ foreign-key: company_id
+ - key: last_modified_by_id
+ foreign-key: company_id
+ - key: created_by_id
+ foreign-key: author_id
+ - key: last_modified_by_id
+ foreign-key: author_id
+ - key: created_by_id
+ foreign-key: customfield_created_by_id
+ - key: last_modified_by_id
+ foreign-key: customfield_created_by_id
+ - key: created_by_id
+ foreign-key: customfield_modified_by_id
+ - key: last_modified_by_id
+ foreign-key: customfield_modified_by_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: system_notes
+ keys:
+ - key: created_by_id
+ foreign-key: company_id
+ - key: last_modified_by_id
+ foreign-key: company_id
+ - key: created_by_id
+ foreign-key: author_id
+ - key: last_modified_by_id
+ foreign-key: author_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_history
+ keys:
+ - key: created_by_id
+ foreign-key: user_id
+ - key: last_modified_by_id
+ foreign-key: user_id
+ - key: created_by_id
+ foreign-key: entity_id
+ - key: last_modified_by_id
+ foreign-key: entity_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: amortization_sched_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: transaction_id
+ foreign-key: purchase_order_id
+ - key: transaction_id
+ foreign-key: sales_order_id
+ - table-name: billing_subscriptions
+ keys:
+ - key: transaction_id
+ foreign-key: sales_order_id
+ - table-name: employee_time
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: expense_plans
+ keys:
+ - key: transaction_id
+ foreign-key: related_revenue_arrangement_id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: transaction_book_map
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_lines
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_links
+ keys:
+ - key: transaction_id
+ foreign-key: applied_transaction_id
+ - key: transaction_id
+ foreign-key: original_transaction_id
+ - table-name: transaction_shipping_groups
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+- table-name: expense_categories
+ join:
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: expense_category_id
+ foreign-key: expense_category_id
+ - table-name: opportunity_lines
+ keys:
+ - key: expense_category_id
+ foreign-key: expense_category_id
+- table-name: expense_categories_subs_map
+ join:
+ - table-name: expense_categories
+ keys:
+ - key: expense_category_id
+ foreign-key: expense_category_id
+ - table-name: opportunity_lines
+ keys:
+ - key: expense_category_id
+ foreign-key: expense_category_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_activity
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: budget
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: companies
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: to_subsidiary_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: customers
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: employee_time
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: employees
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_account_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_inventory_relationships
+ keys:
+ - key: subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - table-name: item_account_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: partners
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - table-name: posting_account_activity
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - table-name: role_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subscription_plans
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: support_incidents
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiaries
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - table-name: transaction_lines
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: source_subsidiary_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: vendors
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+- table-name: item_collection_item_map
+ join:
+ - table-name: item_collections
+ keys:
+ - key: item_collection_id
+ foreign-key: item_collection_id
+ - table-name: bill_of_materials
+ keys:
+ - key: item_id
+ foreign-key: original_assembly_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: item_id
+ foreign-key: service_item_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: bom_revision_components
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: budget
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: campaignitem
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: customers
+ keys:
+ - key: item_id
+ foreign-key: tax_item_id
+ - table-name: item_price_history
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_vendor_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: items
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_system_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_system
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_user
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: opportunity_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: purchase_charge_rules
+ keys:
+ - key: item_id
+ foreign-key: mark_up_item_id
+ - table-name: standard_cost_components
+ keys:
+ - key: item_id
+ foreign-key: component_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: item_id
+ foreign-key: plan_item_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: support_incidents
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: system_notes_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: system_notes
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: item_id
+ foreign-key: item_id
+- table-name: item_collections
+ join:
+ - table-name: item_collection_item_map
+ keys:
+ - key: item_collection_id
+ foreign-key: item_collection_id
+- table-name: item_subsidiary_map
+ join:
+ - table-name: bill_of_materials
+ keys:
+ - key: item_id
+ foreign-key: original_assembly_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: item_id
+ foreign-key: service_item_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: bom_revision_components
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: budget
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: campaignitem
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: customers
+ keys:
+ - key: item_id
+ foreign-key: tax_item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: item_collection_item_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_price_history
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_vendor_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: items
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_system_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_system
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_user
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: opportunity_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - table-name: purchase_charge_rules
+ keys:
+ - key: item_id
+ foreign-key: mark_up_item_id
+ - table-name: standard_cost_components
+ keys:
+ - key: item_id
+ foreign-key: component_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: item_id
+ foreign-key: plan_item_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: support_incidents
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: system_notes_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: system_notes
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: account_activity
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: companies
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: to_subsidiary_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: employee_time
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: employees
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_account_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_inventory_relationships
+ keys:
+ - key: subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - table-name: item_account_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: partners
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - table-name: role_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subscription_plans
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiaries
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - table-name: transaction_lines
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: source_subsidiary_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: vendors
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+- table-name: item_vendor_map
+ join:
+ - table-name: bill_of_materials
+ keys:
+ - key: item_id
+ foreign-key: original_assembly_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: item_id
+ foreign-key: service_item_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: bom_revision_components
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: budget
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: campaignitem
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: customers
+ keys:
+ - key: item_id
+ foreign-key: tax_item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: item_collection_item_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_price_history
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: vendor_id
+ foreign-key: vendor_id
+ - table-name: items
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_system_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_system
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_user
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: opportunity_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - table-name: purchase_charge_rules
+ keys:
+ - key: item_id
+ foreign-key: mark_up_item_id
+ - table-name: standard_cost_components
+ keys:
+ - key: item_id
+ foreign-key: component_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: item_id
+ foreign-key: plan_item_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: support_incidents
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: system_notes_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: system_notes
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: account_activity
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: companies
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: to_subsidiary_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: employee_time
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: employees
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_account_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_inventory_relationships
+ keys:
+ - key: subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - table-name: item_account_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: partners
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - table-name: role_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subscription_plans
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiaries
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - table-name: transaction_lines
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: source_subsidiary_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: vendor_id
+ foreign-key: vendor_id
+ - table-name: vendors
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - key: vendor_id
+ foreign-key: vendor_id
+- table-name: items
+ join:
+ - table-name: bill_of_materials
+ keys:
+ - key: item_id
+ foreign-key: original_assembly_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: item_id
+ foreign-key: service_item_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: bom_revision_components
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: budget
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: campaignitem
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: customers
+ keys:
+ - key: item_id
+ foreign-key: tax_item_id
+ - table-name: item_collection_item_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_price_history
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_vendor_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_system_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_system
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_user
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: opportunity_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: purchase_charge_rules
+ keys:
+ - key: item_id
+ foreign-key: mark_up_item_id
+ - table-name: standard_cost_components
+ keys:
+ - key: item_id
+ foreign-key: component_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: item_id
+ foreign-key: plan_item_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: support_incidents
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: system_notes_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: system_notes
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: item_id
+ foreign-key: item_id
+- table-name: planned_standard_costs
+ join:
+ - table-name: bill_of_materials
+ keys:
+ - key: item_id
+ foreign-key: original_assembly_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: item_id
+ foreign-key: service_item_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: bom_revision_components
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: budget
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: location_id
+ foreign-key: location_id
+ - table-name: campaignitem
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: customers
+ keys:
+ - key: item_id
+ foreign-key: tax_item_id
+ - table-name: item_collection_item_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_price_history
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_vendor_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: items
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_system_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_system
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_user
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: opportunity_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - key: location_id
+ foreign-key: location_id
+ - table-name: posting_account_activity
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: location_id
+ foreign-key: location_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: location_id
+ foreign-key: location_id
+ - table-name: purchase_charge_rules
+ keys:
+ - key: item_id
+ foreign-key: mark_up_item_id
+ - table-name: standard_cost_components
+ keys:
+ - key: item_id
+ foreign-key: component_id
+ - key: planned_standard_cost_id
+ foreign-key: planned_standard_cost_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: item_id
+ foreign-key: plan_item_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: support_incidents
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: system_notes_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: system_notes
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: accounts
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: billing_accounts
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: employee_time
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: employees
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: global_account_map
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: item_account_map
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: location_costing_grp_locations
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: locations
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - key: location_id
+ foreign-key: parent_id
+ - table-name: subscription_plans
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: subsidiary_location_map
+ keys:
+ - key: location_id
+ foreign-key: location_id
+- table-name: purchase_charge_rules
+ join:
+ - table-name: bill_of_materials
+ keys:
+ - key: mark_up_item_id
+ foreign-key: original_assembly_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: mark_up_item_id
+ foreign-key: service_item_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: mark_up_item_id
+ foreign-key: item_id
+ - table-name: bom_revision_components
+ keys:
+ - key: mark_up_item_id
+ foreign-key: item_id
+ - table-name: budget
+ keys:
+ - key: mark_up_item_id
+ foreign-key: item_id
+ - table-name: campaignitem
+ keys:
+ - key: mark_up_item_id
+ foreign-key: item_id
+ - table-name: customers
+ keys:
+ - key: mark_up_item_id
+ foreign-key: tax_item_id
+ - table-name: item_collection_item_map
+ keys:
+ - key: mark_up_item_id
+ foreign-key: item_id
+ - table-name: item_price_history
+ keys:
+ - key: mark_up_item_id
+ foreign-key: item_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: mark_up_item_id
+ foreign-key: item_id
+ - table-name: item_vendor_map
+ keys:
+ - key: mark_up_item_id
+ foreign-key: item_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: mark_up_item_id
+ foreign-key: item_id
+ - table-name: items
+ keys:
+ - key: mark_up_item_id
+ foreign-key: item_id
+ - table-name: notes_system_custom
+ keys:
+ - key: mark_up_item_id
+ foreign-key: item_id
+ - table-name: notes_system
+ keys:
+ - key: mark_up_item_id
+ foreign-key: item_id
+ - table-name: notes_user
+ keys:
+ - key: mark_up_item_id
+ foreign-key: item_id
+ - table-name: opportunity_lines
+ keys:
+ - key: mark_up_item_id
+ foreign-key: item_id
+ - key: mark_up_item_id
+ foreign-key: tax_item_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: mark_up_item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity
+ keys:
+ - key: mark_up_item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: mark_up_item_id
+ foreign-key: item_id
+ - table-name: standard_cost_components
+ keys:
+ - key: mark_up_item_id
+ foreign-key: component_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: mark_up_item_id
+ foreign-key: plan_item_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: mark_up_item_id
+ foreign-key: item_id
+ - table-name: support_incidents
+ keys:
+ - key: mark_up_item_id
+ foreign-key: item_id
+ - table-name: system_notes_custom
+ keys:
+ - key: mark_up_item_id
+ foreign-key: item_id
+ - table-name: system_notes
+ keys:
+ - key: mark_up_item_id
+ foreign-key: item_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: mark_up_item_id
+ foreign-key: item_id
+- table-name: standard_cost_components
+ join:
+ - table-name: bill_of_materials
+ keys:
+ - key: component_id
+ foreign-key: original_assembly_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: component_id
+ foreign-key: service_item_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: component_id
+ foreign-key: item_id
+ - table-name: bom_revision_components
+ keys:
+ - key: component_id
+ foreign-key: item_id
+ - table-name: budget
+ keys:
+ - key: component_id
+ foreign-key: item_id
+ - table-name: campaignitem
+ keys:
+ - key: component_id
+ foreign-key: item_id
+ - table-name: customers
+ keys:
+ - key: component_id
+ foreign-key: tax_item_id
+ - table-name: item_collection_item_map
+ keys:
+ - key: component_id
+ foreign-key: item_id
+ - table-name: item_price_history
+ keys:
+ - key: component_id
+ foreign-key: item_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: component_id
+ foreign-key: item_id
+ - table-name: item_vendor_map
+ keys:
+ - key: component_id
+ foreign-key: item_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: component_id
+ foreign-key: item_id
+ - table-name: items
+ keys:
+ - key: component_id
+ foreign-key: item_id
+ - table-name: notes_system_custom
+ keys:
+ - key: component_id
+ foreign-key: item_id
+ - table-name: notes_system
+ keys:
+ - key: component_id
+ foreign-key: item_id
+ - table-name: notes_user
+ keys:
+ - key: component_id
+ foreign-key: item_id
+ - table-name: opportunity_lines
+ keys:
+ - key: component_id
+ foreign-key: item_id
+ - key: component_id
+ foreign-key: tax_item_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: component_id
+ foreign-key: item_id
+ - key: planned_standard_cost_id
+ foreign-key: planned_standard_cost_id
+ - table-name: posting_account_activity
+ keys:
+ - key: component_id
+ foreign-key: item_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: component_id
+ foreign-key: item_id
+ - table-name: purchase_charge_rules
+ keys:
+ - key: component_id
+ foreign-key: mark_up_item_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: component_id
+ foreign-key: plan_item_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: component_id
+ foreign-key: item_id
+ - table-name: support_incidents
+ keys:
+ - key: component_id
+ foreign-key: item_id
+ - table-name: system_notes_custom
+ keys:
+ - key: component_id
+ foreign-key: item_id
+ - table-name: system_notes
+ keys:
+ - key: component_id
+ foreign-key: item_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: component_id
+ foreign-key: item_id
+- table-name: subscription_plan_lines
+ join:
+ - table-name: bill_of_materials
+ keys:
+ - key: item_id
+ foreign-key: original_assembly_id
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: item_id
+ foreign-key: service_item_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: plan_line_id
+ foreign-key: subscription_plan_line_id
+ - key: usage_multiplier_line_id
+ foreign-key: subscription_plan_line_id
+ - table-name: bom_revision_components
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: budget
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: campaignitem
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: customers
+ keys:
+ - key: item_id
+ foreign-key: tax_item_id
+ - table-name: item_collection_item_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_price_history
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_vendor_map
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: items
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_system_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_system
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: notes_user
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: opportunity_lines
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - key: item_id
+ foreign-key: tax_item_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: purchase_charge_rules
+ keys:
+ - key: item_id
+ foreign-key: mark_up_item_id
+ - table-name: standard_cost_components
+ keys:
+ - key: item_id
+ foreign-key: component_id
+ - table-name: subscription_co_lines
+ keys:
+ - key: item_id
+ foreign-key: plan_item_id
+ - table-name: support_incidents
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: system_notes_custom
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: system_notes
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: billing_subscriptions
+ keys:
+ - key: parent_id
+ foreign-key: default_renewal_plan_id
+ - key: parent_id
+ foreign-key: plan_id
+ - table-name: price_books
+ keys:
+ - key: parent_id
+ foreign-key: plan_id
+ - table-name: subscription_change_orders
+ keys:
+ - key: parent_id
+ foreign-key: renewal_subscription_plan_id
+ - table-name: subscription_plans
+ keys:
+ - key: parent_id
+ foreign-key: plan_id
+ - key: parent_id
+ foreign-key: default_renewal_plan_id
+ - table-name: price_book_line_intervals
+ keys:
+ - key: plan_line_id
+ foreign-key: plan_line_id
+ - key: usage_multiplier_line_id
+ foreign-key: plan_line_id
+ - key: plan_line_id
+ foreign-key: usage_multiplier_line_id
+ - key: usage_multiplier_line_id
+ foreign-key: usage_multiplier_line_id
+ - table-name: subscript_line_price_intervals
+ keys:
+ - key: plan_line_id
+ foreign-key: plan_line_id
+ - key: usage_multiplier_line_id
+ foreign-key: plan_line_id
+- table-name: job_resource_roles
+ join:
+ - table-name: employees
+ keys:
+ - key: job_resource_role_id
+ foreign-key: default_job_resource_role_id
+- table-name: location_costing_grp_locations
+ join:
+ - table-name: location_costing_groups
+ keys:
+ - key: location_costing_group_id
+ foreign-key: location_costing_group_id
+ - table-name: accounts
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: billing_accounts
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: budget
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: employee_time
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: employees
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: global_account_map
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: item_account_map
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: locations
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - key: location_id
+ foreign-key: parent_id
+ - table-name: opportunity_lines
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: posting_account_activity
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: subscription_plans
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: subsidiary_location_map
+ keys:
+ - key: location_id
+ foreign-key: location_id
+- table-name: locations
+ join:
+ - table-name: accounts
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - key: parent_id
+ foreign-key: location_id
+ - table-name: billing_accounts
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - key: parent_id
+ foreign-key: location_id
+ - table-name: budget
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - key: parent_id
+ foreign-key: location_id
+ - table-name: employee_time
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - key: parent_id
+ foreign-key: location_id
+ - table-name: employees
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - key: parent_id
+ foreign-key: location_id
+ - table-name: global_account_map
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - key: parent_id
+ foreign-key: location_id
+ - table-name: item_account_map
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - key: parent_id
+ foreign-key: location_id
+ - table-name: location_costing_grp_locations
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - key: parent_id
+ foreign-key: location_id
+ - table-name: opportunity_lines
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - key: parent_id
+ foreign-key: location_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - key: parent_id
+ foreign-key: location_id
+ - table-name: posting_account_activity
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - key: parent_id
+ foreign-key: location_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - key: parent_id
+ foreign-key: location_id
+ - table-name: subscription_plans
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - key: parent_id
+ foreign-key: location_id
+ - table-name: subsidiary_location_map
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - key: parent_id
+ foreign-key: location_id
+- table-name: subsidiary_location_map
+ join:
+ - table-name: accounts
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: billing_accounts
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: budget
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: employee_time
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: employees
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: global_account_map
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: item_account_map
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: location_costing_grp_locations
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: locations
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - key: location_id
+ foreign-key: parent_id
+ - table-name: opportunity_lines
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: planned_standard_costs
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: posting_account_activity
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: location_id
+ foreign-key: location_id
+ - table-name: subscription_plans
+ keys:
+ - key: location_id
+ foreign-key: location_id
+- table-name: message
+ join:
+ - table-name: messagerecipient
+ keys:
+ - key: message_id
+ foreign-key: message_id
+- table-name: notetype
+ join:
+ - table-name: notes_system_custom
+ keys:
+ - key: note_type_id
+ foreign-key: note_type_id
+ - table-name: notes_system
+ keys:
+ - key: note_type_id
+ foreign-key: note_type_id
+ - table-name: notes_user
+ keys:
+ - key: note_type_id
+ foreign-key: note_type_id
+ - table-name: system_notes_custom
+ keys:
+ - key: note_type_id
+ foreign-key: note_type_id
+ - table-name: system_notes
+ keys:
+ - key: note_type_id
+ foreign-key: note_type_id
+- table-name: partners
+ join:
+ - table-name: customers
+ keys:
+ - key: partner_id
+ foreign-key: partner_id
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - key: subsidiary
+ foreign-key: represents_subsidiary_id
+ - table-name: opportunities
+ keys:
+ - key: partner_id
+ foreign-key: partner_id
+ - table-name: posting_account_activity
+ keys:
+ - key: partner_id
+ foreign-key: partner_id
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: partner_id
+ foreign-key: partner_id
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - key: subsidiary
+ foreign-key: balance_from_subsidiary_id
+ - table-name: account_activity
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: subsidiary
+ foreign-key: balance_from_subsidiary_id
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - table-name: budget
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - table-name: companies
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: subsidiary
+ foreign-key: from_subsidiary_id
+ - key: subsidiary
+ foreign-key: to_subsidiary_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - table-name: employee_time
+ keys:
+ - key: subsidiary
+ foreign-key: billing_subsidiary_id
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - table-name: employees
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - table-name: global_account_map
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - table-name: global_inventory_relationships
+ keys:
+ - key: subsidiary
+ foreign-key: inventory_subsidiary_id
+ - key: subsidiary
+ foreign-key: originating_subsidiary_id
+ - table-name: item_account_map
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_map
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - table-name: opportunity_lines
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - table-name: role_subsidiary_map
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - table-name: subscription_plans
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - table-name: support_incidents
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - table-name: subsidiaries
+ keys:
+ - key: subsidiary
+ foreign-key: billing_subsidiary_id
+ - table-name: transaction_lines
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - key: subsidiary
+ foreign-key: source_subsidiary_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary_id
+ - table-name: vendors
+ keys:
+ - key: subsidiary
+ foreign-key: subsidiary
+ - key: subsidiary
+ foreign-key: represents_subsidiary_id
+- table-name: payment_methods
+ join:
+ - table-name: opportunity_lines
+ keys:
+ - key: payment_method_id
+ foreign-key: payment_method_id
+- table-name: payment_terms
+ join:
+ - table-name: customers
+ keys:
+ - key: payment_terms_id
+ foreign-key: payment_terms_id
+ - table-name: opportunities
+ keys:
+ - key: payment_terms_id
+ foreign-key: payment_terms_id
+- table-name: payroll_item_id
+ join:
+ - table-name: employee_time
+ keys:
+ - key: payroll_item_id
+ foreign-key: payroll_item_id
+ - table-name: opportunity_lines
+ keys:
+ - key: payroll_item_id
+ foreign-key: payroll_item_id
+- table-name: price_books
+ join:
+ - table-name: price_book_line_intervals
+ keys:
+ - key: price_book_id
+ foreign-key: price_book_id
+ - table-name: billing_subscriptions
+ keys:
+ - key: plan_id
+ foreign-key: default_renewal_plan_id
+ - key: plan_id
+ foreign-key: plan_id
+ - table-name: subscription_change_orders
+ keys:
+ - key: plan_id
+ foreign-key: renewal_subscription_plan_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: plan_id
+ foreign-key: parent_id
+ - table-name: subscription_plans
+ keys:
+ - key: plan_id
+ foreign-key: plan_id
+ - key: plan_id
+ foreign-key: default_renewal_plan_id
+- table-name: price_book_line_intervals
+ join:
+ - table-name: price_books
+ keys:
+ - key: price_book_id
+ foreign-key: price_book_id
+ - table-name: price_plans
+ keys:
+ - key: price_plan_id
+ foreign-key: price_plan_id
+ - key: overage_price_plan_id
+ foreign-key: price_plan_id
+ - table-name: price_tiers
+ keys:
+ - key: price_plan_id
+ foreign-key: price_plan_id
+ - key: overage_price_plan_id
+ foreign-key: price_plan_id
+ - table-name: subscription_line_revisions
+ keys:
+ - key: price_plan_id
+ foreign-key: price_plan_id
+ - key: overage_price_plan_id
+ foreign-key: price_plan_id
+ - key: price_plan_id
+ foreign-key: overage_price_plan_id
+ - key: overage_price_plan_id
+ foreign-key: overage_price_plan_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: plan_line_id
+ foreign-key: subscription_plan_line_id
+ - key: usage_multiplier_line_id
+ foreign-key: subscription_plan_line_id
+ - table-name: subscript_line_price_intervals
+ keys:
+ - key: plan_line_id
+ foreign-key: plan_line_id
+ - key: usage_multiplier_line_id
+ foreign-key: plan_line_id
+ - table-name: subscription_plan_lines
+ keys:
+ - key: plan_line_id
+ foreign-key: plan_line_id
+ - key: usage_multiplier_line_id
+ foreign-key: plan_line_id
+ - key: plan_line_id
+ foreign-key: usage_multiplier_line_id
+ - key: usage_multiplier_line_id
+ foreign-key: usage_multiplier_line_id
+- table-name: price_plans
+ join:
+ - table-name: price_book_line_intervals
+ keys:
+ - key: price_plan_id
+ foreign-key: price_plan_id
+ - key: price_plan_id
+ foreign-key: overage_price_plan_id
+ - table-name: price_tiers
+ keys:
+ - key: price_plan_id
+ foreign-key: price_plan_id
+ - table-name: subscription_line_revisions
+ keys:
+ - key: price_plan_id
+ foreign-key: price_plan_id
+ - key: price_plan_id
+ foreign-key: overage_price_plan_id
+- table-name: price_tiers
+ join:
+ - table-name: price_book_line_intervals
+ keys:
+ - key: price_plan_id
+ foreign-key: price_plan_id
+ - key: price_plan_id
+ foreign-key: overage_price_plan_id
+ - table-name: price_plans
+ keys:
+ - key: price_plan_id
+ foreign-key: price_plan_id
+ - table-name: subscription_line_revisions
+ keys:
+ - key: price_plan_id
+ foreign-key: price_plan_id
+ - key: price_plan_id
+ foreign-key: overage_price_plan_id
+- table-name: price_types
+ join:
+ - table-name: employee_time
+ keys:
+ - key: price_type_id
+ foreign-key: price_type_id
+ - table-name: item_billing_rates
+ keys:
+ - key: price_type_id
+ foreign-key: price_type_id
+ - table-name: item_price_history
+ keys:
+ - key: price_type_id
+ foreign-key: price_type_id
+ - table-name: opportunity_lines
+ keys:
+ - key: price_type_id
+ foreign-key: price_type_id
+- table-name: project_expense_types
+ join:
+ - table-name: customers
+ keys:
+ - key: project_expense_type_id
+ foreign-key: project_expense_type_id
+- table-name: project_revenue_rls_charge_rls
+ join:
+ - table-name: project_revenue_rules
+ keys:
+ - key: project_revenue_rule_id
+ foreign-key: project_revenue_rule_id
+- table-name: promotion_codes
+ join:
+ - table-name: campaignevent
+ keys:
+ - key: promotion_code_id
+ foreign-key: promotion_code_id
+ - table-name: posting_account_activity
+ keys:
+ - key: promotion_code_id
+ foreign-key: promotion_code_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: promotion_code_id
+ foreign-key: promotion_code_id
+- table-name: project_time_approval_types
+ join:
+ - table-name: customers
+ keys:
+ - key: project_time_approval_type_id
+ foreign-key: time_approval_type_id
+- table-name: revenue_elements
+ join:
+ - table-name: expense_plans
+ keys:
+ - key: revenue_element_id
+ foreign-key: related_revenue_element_id
+ - table-name: revenue_plans
+ keys:
+ - key: revenue_element_id
+ foreign-key: revenue_element_id
+ - table-name: subscription_line_revisions
+ keys:
+ - key: revenue_element_id
+ foreign-key: revenue_element_id
+- table-name: revrecschedules
+ join:
+ - table-name: customers
+ keys:
+ - key: schedule_id
+ foreign-key: rev_rec_forecast_template
+ - table-name: transaction_line_book_map
+ keys:
+ - key: schedule_id
+ foreign-key: schedule_id
+- table-name: revenue_recognition_rules
+ join:
+ - table-name: revenue_plans
+ keys:
+ - key: rev_rec_rule_id
+ foreign-key: rev_rec_rule_id
+- table-name: campaign_search_engine
+ join:
+ - table-name: campaigns
+ keys:
+ - key: search_engine_id
+ foreign-key: search_engine_id
+- table-name: service_items
+ join:
+ - table-name: employee_time
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: item_billing_rates
+ keys:
+ - key: item_id
+ foreign-key: item_id
+ - table-name: project_revenue_rules
+ keys:
+ - key: item_id
+ foreign-key: service_item_id
+- table-name: subscription_terms
+ join:
+ - table-name: billing_subscriptions
+ keys:
+ - key: term_id
+ foreign-key: default_renewal_term_id
+ - key: term_id
+ foreign-key: initial_term_id
+ - table-name: subscription_change_orders
+ keys:
+ - key: term_id
+ foreign-key: renewal_term_id
+ - table-name: subscription_plans
+ keys:
+ - key: term_id
+ foreign-key: initial_term_id
+ - key: term_id
+ foreign-key: default_renewal_term_id
+- table-name: global_inventory_relationships
+ join:
+ - table-name: account_activity
+ keys:
+ - key: inventory_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity
+ keys:
+ - key: inventory_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: inventory_subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: inventory_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: inventory_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: budget
+ keys:
+ - key: inventory_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: companies
+ keys:
+ - key: inventory_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: inventory_subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: inventory_subsidiary_id
+ foreign-key: to_subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: to_subsidiary_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: inventory_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: customers
+ keys:
+ - key: inventory_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: inventory_subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: employee_time
+ keys:
+ - key: inventory_subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: inventory_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: employees
+ keys:
+ - key: inventory_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: inventory_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_account_map
+ keys:
+ - key: inventory_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_account_map
+ keys:
+ - key: inventory_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: inventory_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_map
+ keys:
+ - key: inventory_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: opportunity_lines
+ keys:
+ - key: inventory_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: partners
+ keys:
+ - key: inventory_subsidiary_id
+ foreign-key: subsidiary
+ - key: originating_subsidiary_id
+ foreign-key: subsidiary
+ - table-name: posting_account_activity
+ keys:
+ - key: inventory_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: inventory_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: inventory_subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - table-name: role_subsidiary_map
+ keys:
+ - key: inventory_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subscription_plans
+ keys:
+ - key: inventory_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: inventory_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: inventory_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: support_incidents
+ keys:
+ - key: inventory_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiaries
+ keys:
+ - key: inventory_subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - table-name: transaction_lines
+ keys:
+ - key: inventory_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: inventory_subsidiary_id
+ foreign-key: source_subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: source_subsidiary_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: inventory_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: vendors
+ keys:
+ - key: inventory_subsidiary_id
+ foreign-key: subsidiary
+ - key: originating_subsidiary_id
+ foreign-key: subsidiary
+ - key: inventory_subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - key: originating_subsidiary_id
+ foreign-key: represents_subsidiary_id
+- table-name: role_subsidiary_map
+ join:
+ - table-name: account_activity
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: budget
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: companies
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: to_subsidiary_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: customers
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: employee_time
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: employees
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_account_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_inventory_relationships
+ keys:
+ - key: subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - table-name: item_account_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: opportunity_lines
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: partners
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - table-name: posting_account_activity
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - table-name: subscription_plans
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: support_incidents
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiaries
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - table-name: transaction_lines
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: source_subsidiary_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: vendors
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+- table-name: subsidiaries
+ join:
+ - table-name: account_activity
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: budget
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: companies
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: billing_subsidiary_id
+ foreign-key: to_subsidiary_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: customers
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: billing_subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: employee_time
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: employees
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_account_map
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_inventory_relationships
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: billing_subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - table-name: item_account_map
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_map
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: opportunity_lines
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: partners
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary
+ - table-name: posting_account_activity
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: billing_subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - table-name: role_subsidiary_map
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subscription_plans
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: support_incidents
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: transaction_lines
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - key: billing_subsidiary_id
+ foreign-key: source_subsidiary_id
+ - table-name: vendor_subsidiary_map
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: vendors
+ keys:
+ - key: billing_subsidiary_id
+ foreign-key: subsidiary
+ - key: billing_subsidiary_id
+ foreign-key: represents_subsidiary_id
+- table-name: vendor_subsidiary_map
+ join:
+ - table-name: account_activity
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_period_activity_pe
+ keys:
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: account_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: budget
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: companies
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: consolidated_exchange_rates
+ keys:
+ - key: subsidiary_id
+ foreign-key: from_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: to_subsidiary_id
+ - table-name: customer_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: customers
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - table-name: employee_time
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: employees
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: expense_categories_subs_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_account_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: global_inventory_relationships
+ keys:
+ - key: subsidiary_id
+ foreign-key: inventory_subsidiary_id
+ - key: subsidiary_id
+ foreign-key: originating_subsidiary_id
+ - table-name: item_account_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: item_vendor_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: vendor_id
+ foreign-key: vendor_id
+ - table-name: opportunity_lines
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: partners
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - table-name: posting_account_activity
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: posting_account_activity_pe
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: balance_from_subsidiary_id
+ - table-name: role_subsidiary_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subscription_plans
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_class_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiary_department_map
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: support_incidents
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - table-name: subsidiaries
+ keys:
+ - key: subsidiary_id
+ foreign-key: billing_subsidiary_id
+ - table-name: transaction_lines
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary_id
+ - key: subsidiary_id
+ foreign-key: source_subsidiary_id
+ - table-name: vendors
+ keys:
+ - key: subsidiary_id
+ foreign-key: subsidiary
+ - key: subsidiary_id
+ foreign-key: represents_subsidiary_id
+ - key: vendor_id
+ foreign-key: vendor_id
+ - table-name: item_vendor_pricing
+ keys:
+ - key: vendor_id
+ foreign-key: vendor_id
+- table-name: tax_items
+ join:
+ - table-name: transaction_tax_detail
+ keys:
+ - key: item_id
+ foreign-key: tax_item_id
+- table-name: territory
+ join:
+ - table-name: customers
+ keys:
+ - key: territory_id
+ foreign-key: sales_territory_id
+ - table-name: entityterritorymap
+ keys:
+ - key: territory_id
+ foreign-key: territory_id
+ - table-name: support_incidents
+ keys:
+ - key: territory_id
+ foreign-key: territory_id
+- table-name: group_test_cell
+ join:
+ - table-name: campaignevent
+ keys:
+ - key: test_cell_id
+ foreign-key: test_cell_id
+- table-name: transaction_links
+ join:
+ - table-name: amortization_sched_lines
+ keys:
+ - key: applied_transaction_id
+ foreign-key: journal_id
+ - key: original_transaction_id
+ foreign-key: journal_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: applied_transaction_id
+ foreign-key: purchase_order_id
+ - key: original_transaction_id
+ foreign-key: purchase_order_id
+ - key: applied_transaction_id
+ foreign-key: sales_order_id
+ - key: original_transaction_id
+ foreign-key: sales_order_id
+ - table-name: billing_subscriptions
+ keys:
+ - key: applied_transaction_id
+ foreign-key: sales_order_id
+ - key: original_transaction_id
+ foreign-key: sales_order_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: applied_transaction_id
+ foreign-key: transaction_id
+ - key: original_transaction_id
+ foreign-key: transaction_id
+ - table-name: employee_time
+ keys:
+ - key: applied_transaction_id
+ foreign-key: transaction_id
+ - key: original_transaction_id
+ foreign-key: transaction_id
+ - key: applied_transaction_line_id
+ foreign-key: transaction_line_id
+ - key: original_transaction_line_id
+ foreign-key: transaction_line_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: applied_transaction_id
+ foreign-key: journal_id
+ - key: original_transaction_id
+ foreign-key: journal_id
+ - table-name: expense_plans
+ keys:
+ - key: applied_transaction_id
+ foreign-key: related_revenue_arrangement_id
+ - key: original_transaction_id
+ foreign-key: related_revenue_arrangement_id
+ - key: applied_transaction_line_id
+ foreign-key: transaction_line_id
+ - key: original_transaction_line_id
+ foreign-key: transaction_line_id
+ - table-name: notes_system_custom
+ keys:
+ - key: applied_transaction_id
+ foreign-key: transaction_id
+ - key: original_transaction_id
+ foreign-key: transaction_id
+ - key: applied_transaction_line_id
+ foreign-key: line_id
+ - key: original_transaction_line_id
+ foreign-key: line_id
+ - table-name: notes_system
+ keys:
+ - key: applied_transaction_id
+ foreign-key: transaction_id
+ - key: original_transaction_id
+ foreign-key: transaction_id
+ - key: applied_transaction_line_id
+ foreign-key: line_id
+ - key: original_transaction_line_id
+ foreign-key: line_id
+ - table-name: notes_user
+ keys:
+ - key: applied_transaction_id
+ foreign-key: transaction_id
+ - key: original_transaction_id
+ foreign-key: transaction_id
+ - table-name: opportunities
+ keys:
+ - key: applied_transaction_id
+ foreign-key: reversing-transaction-id
+ - key: original_transaction_id
+ foreign-key: reversing-transaction-id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: applied_transaction_id
+ foreign-key: journal_id
+ - key: original_transaction_id
+ foreign-key: journal_id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: applied_transaction_id
+ foreign-key: journal_id
+ - key: original_transaction_id
+ foreign-key: journal_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: applied_transaction_id
+ foreign-key: journal_id
+ - key: original_transaction_id
+ foreign-key: journal_id
+ - table-name: system_notes_custom
+ keys:
+ - key: applied_transaction_id
+ foreign-key: transaction_id
+ - key: original_transaction_id
+ foreign-key: transaction_id
+ - key: applied_transaction_line_id
+ foreign-key: line_id
+ - key: original_transaction_line_id
+ foreign-key: line_id
+ - table-name: system_notes
+ keys:
+ - key: applied_transaction_id
+ foreign-key: transaction_id
+ - key: original_transaction_id
+ foreign-key: transaction_id
+ - key: applied_transaction_line_id
+ foreign-key: line_id
+ - key: original_transaction_line_id
+ foreign-key: line_id
+ - table-name: transaction_address
+ keys:
+ - key: applied_transaction_id
+ foreign-key: transaction_id
+ - key: original_transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_book_map
+ keys:
+ - key: applied_transaction_id
+ foreign-key: transaction_id
+ - key: original_transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_history
+ keys:
+ - key: applied_transaction_id
+ foreign-key: transaction_id
+ - key: original_transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_lines
+ keys:
+ - key: applied_transaction_id
+ foreign-key: transaction_id
+ - key: original_transaction_id
+ foreign-key: transaction_id
+ - key: applied_transaction_line_id
+ foreign-key: transaction_line_id
+ - key: original_transaction_line_id
+ foreign-key: transaction_line_id
+ - table-name: transaction_shipping_groups
+ keys:
+ - key: applied_transaction_id
+ foreign-key: transaction_id
+ - key: original_transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_line_book_map
+ keys:
+ - key: applied_transaction_line_id
+ foreign-key: transaction_line_id
+ - key: original_transaction_line_id
+ foreign-key: transaction_line_id
+ - table-name: transaction_tax_detail
+ keys:
+ - key: applied_transaction_line_id
+ foreign-key: transaction_line_id
+ - key: original_transaction_line_id
+ foreign-key: transaction_line_id
+- table-name: transaction_shipping_groups
+ join:
+ - table-name: amortization_sched_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: billing_subscription_lines
+ keys:
+ - key: transaction_id
+ foreign-key: purchase_order_id
+ - key: transaction_id
+ foreign-key: sales_order_id
+ - table-name: billing_subscriptions
+ keys:
+ - key: transaction_id
+ foreign-key: sales_order_id
+ - table-name: campaignresponsehistory
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: employee_time
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: expense_plan_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: expense_plans
+ keys:
+ - key: transaction_id
+ foreign-key: related_revenue_arrangement_id
+ - table-name: notes_system_custom
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: notes_system
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: notes_user
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: opportunities
+ keys:
+ - key: transaction_id
+ foreign-key: reversing-transaction-id
+ - table-name: revenue_plan_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: revenue_plan_version_lines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: revrecschedulelines
+ keys:
+ - key: transaction_id
+ foreign-key: journal_id
+ - table-name: system_notes_custom
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: system_notes
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_address
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_book_map
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_history
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - table-name: transaction_lines
+ keys:
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: shipping_group_id
+ foreign-key: shipping_group_id
+ - table-name: transaction_links
+ keys:
+ - key: transaction_id
+ foreign-key: applied_transaction_id
+ - key: transaction_id
+ foreign-key: original_transaction_id
+- table-name: unit_types
+ join:
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: unit_type_id
+ foreign-key: unit_type_id
+- table-name: item_group
+ join:
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: unit_of_measure_id
+ foreign-key: sales_unit_id
+ - table-name: bom_revision_components
+ keys:
+ - key: unit_of_measure_id
+ foreign-key: unit_of_measure_id
+ - table-name: uom
+ keys:
+ - key: unit_of_measure_id
+ foreign-key: uom_id
+- table-name: uom
+ join:
+ - table-name: billing_rate_cards_prices
+ keys:
+ - key: uom_id
+ foreign-key: sales_unit_id
+ - table-name: bom_revision_components
+ keys:
+ - key: uom_id
+ foreign-key: unit_of_measure_id
+ - table-name: item_group
+ keys:
+ - key: uom_id
+ foreign-key: unit_of_measure_id
+- table-name: vendor_types
+ join:
+ - table-name: vendors
+ keys:
+ - key: vendor_type_id
+ foreign-key: vendor_type_id
+- table-name: winlossreason
+ join:
+ - table-name: opportunities
+ keys:
+ - key: win_loss_reason_id
+ foreign-key: win_loss_reason_id
+- table-name: work_calendar_holidays
+ join:
+ - table-name: employees
+ keys:
+ - key: work_calendar_id
+ foreign-key: work_calendar_id
+ - table-name: work_calendars
+ keys:
+ - key: work_calendar_id
+ foreign-key: work_calendar_id
+- table-name: work_calendars
+ join:
+ - table-name: employees
+ keys:
+ - key: work_calendar_id
+ foreign-key: work_calendar_id
+ - table-name: work_calendar_holidays
+ keys:
+ - key: work_calendar_id
+ foreign-key: work_calendar_id
diff --git a/_data/taps/schemas/netsuite-suite-analytics/v1/netsuite-suite-analytics-v1-tables.yml b/_data/taps/schemas/netsuite-suite-analytics/v1/netsuite-suite-analytics-v1-tables.yml
new file mode 100644
index 000000000..ccd055bd9
--- /dev/null
+++ b/_data/taps/schemas/netsuite-suite-analytics/v1/netsuite-suite-analytics-v1-tables.yml
@@ -0,0 +1,2403 @@
+tap: netsuite-suite-analytics
+version: '1'
+tables:
+- name: accounting_books
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/accountingbook.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: accounting_periods
+ description: 'The `{{ table.name }}` table contains info about accounting periods.
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/accountingperiod.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: accounts
+ description: 'The `{{ table.name }}` table contains info about the accounts in the
+ Chart of Accounts in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/account.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: account_activity
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/account_activity.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: account_period_activity
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/account_period_activity.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: account_period_activity_pe
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/account_period_activity_pe.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: account_subsidiary_map
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/account_subsidiary_map.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: activities
+ description: 'The `{{ table.name }}` table contains info about activities.
+
+
+ {{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/activities.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: addresses
+ description: 'The `{{ table.name }}` table contains info about all address instances.
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/addresses.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: address_book
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/address_book.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: amortization_schedules
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/amortizationschedule.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: amortization_sched_lines
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/amortization_sched_lines.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: billing_accounts
+ description: 'The `{{ table.name }}` table contains info about the billing accounts
+ in your NetSuite account. A billing account is a record used to show all billing
+ information for a customer or subcustomer. A billing account contains billing-specific
+ information, including billing schedule, default payment terms, bill-to address,
+ and currency.
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/billingaccount.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: billing_classes
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/billing_classes.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: billing_class_rates
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/billing_class_rates.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: billing_rate_cards
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/billingratecard.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: billing_rate_cards_prices
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/billing_rate_cards_prices.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: billing_rate_cards_versions
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/billing_rate_cards_versions.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: billing_schedule
+ description: 'The `{{ table.name }}` table contains info about the billing schedules
+ in your NetSuite account.
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/billingschedule.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: billing_schedule
+ description: 'The `{{ table.name }}` table contains info about the billing schedules
+ in your NetSuite account.
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/billingschedule.html
+ table-details:
+ replication-method: Full Table
+- name: billing_schedule_descriptions
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/billing_schedule_descriptions.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: billing_subscriptions
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/billing_subscriptions.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: billing_subscription_lines
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/billing_subscription_lines.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: bill_of_distributions
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/bill_of_distributions.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: bill_of_materials
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/bill_of_materials.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: bins
+ description: 'The `{{ table.name }}` table contains info about bins, or places in
+ your warehouse where you store inventory items.
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/bin.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: bin_number
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/bin_number.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: bin_number_counts
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/bin_number_counts.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: bom_revisions
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/bomrevision.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: bom_revision_components
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/bom_revision_components.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: budget
+ description: "The `{{ table.name }}` table contains info about the budgets in your\
+ \ {{ integration.display_name }} account. A budget records the expected values\
+ \ of income and expenses for your business. Budgets can be created for specific\
+ \ customers, items, departments, classes, locations, or any combination of these\
+ \ criteria. \n"
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/budget.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: budget_category
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/budgetcategory.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: calls
+ description: '{{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/calls.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: campaignchannel
+ description: '{{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/campaignchannel.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: campaignevent
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/campaignevent.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: campaignitem
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/campaignitem.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: campaignoffer
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/campaignoffer.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: campaignresponse
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/campaignresponse.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+ primary-key: '{{ system-column.record-hash }}'
+- name: campaignresponse
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/campaignresponsehisstory.html
+ table-details:
+ replication-method: Full Table
+- name: campaigns
+ description: 'The `{{ table.name }}` table contains info about the campaigns in
+ your NetSuite account. Campaigns are used to manage marketing initiatives.
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/campaign.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: campaign_audiences
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/campaignaudience.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: campaign_categories
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/campaign_categories.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: campaign_families
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/campaign_families.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: campaign_search_engine
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/campaignsearchengine.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: campaign_subscriptions
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/campaignsubscription.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: campaign_subscription_statuses
+ description: '{{ integration.netsuite-replication-keys | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/campaign_subscription_statuses.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-keys:
+ - date_last_modified
+ - last_modified_date
+- name: campaign_verticals
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/campaignvertical.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: caseescalationhistory
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/caseescalationhistory.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: caseissue
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/caseissue.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: caseorigin
+ description: '**Note**: This table contains the same data as the [`case_origins`](#case-origins)
+ table.
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/caseorigin.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: casetype
+ description: '**Note**: This table contains the same data as the [`case_types`](#case-types)
+ table.
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/casetype.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: case_origins
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/case_origins.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: case_stage_changes
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/case_stage_changes.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: case_types
+ description: '**Note**: This table contains the same data as the [`casetype`](#casetype)
+ table.
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/case_types.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: charges
+ description: 'The `{{ table.name }}` table contains info about the charges in your
+ Netsuite account, which represent billable amounts that your clients must pay.
+
+
+ {{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/charge.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: classes
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/classes.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: commissionplan
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/commissionplan.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: commissionrate
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/commissionrate.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: commissionschedule
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/commissionschedule.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: commission_authorization_link
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/commission_authorization_link.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: companies
+ description: '{{ integration.netsuite-replication-keys | flatify }}
+
+
+ {{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/companies.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-keys:
+ - date_last_modified
+ - last_modified_date
+- name: companycontactmap
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/company_status.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: company_status
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/company_status.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: competitor
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/competitor.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: competitoroppmap
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/competitoroppmap.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: components_per_routing_steps
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/components_per_routing_steps.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: consolidated_exchange_rates
+ description: 'The `{{ table.name }}` table contains info about consolidated exchange
+ rates. This is used in {{ integration.display_name }} OneWorld for consolidation
+ purposes, ensuring currency amounts correctly roll up from child to parent subsidiaries.
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/consolidatedexchangerate.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: contactrole
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/contactrole.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: contacts
+ description: '{{ integration.netsuite-replication-keys | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/contact.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-keys:
+ - date_last_modified
+ - last_modified_date
+- name: contact_types
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/contact_types.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: countries
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/countries.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: coupon_codes
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/couponcode.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: crmgroup
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/crmgroup.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: crmgroupmap
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/crmgroupmap.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: crmtemplate
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/crmtemplate.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: currencies
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/currencies.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: currencyrates
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/currencyrate.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: currency_exchange_rates
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/currency_exchange_rates.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: currency_exchange_rate_types
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/currency_exchange_rate_types.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: customers
+ description: '{{ integration.netsuite-replication-keys | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/customer.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-keys:
+ - date_last_modified
+ - last_modified_date
+- name: customer_currencies
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/customer_currencies.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: customer_group_pricing
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/customer_group_pricing.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: customer_item_pricing
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/customer_item_pricing.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: customer_partner_sales_teams
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/customer_partner_sales_teams.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: customer_sales_teams
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/customer_sales_teams.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: customer_subsidiary_map
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/customer_subsidiary_map.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: customer_types
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/customer_types.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: deleted_records
+ description: '{{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/deletedrecord.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_deleted
+- name: departments
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/department.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: distribution_categories
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/distribution_categories.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: distribution_networks
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/distribution_networks.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: employees
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/employee.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-keys:
+ - date_last_modified
+ - last_modified_date
+- name: employee_currency_map
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/employee_currency_map.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: employee_time
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/employee_time.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: employee_types
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/employeetype.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: entity
+ description: '{{ integration.netsuite-replication-keys | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/entity.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-keys:
+ - date_last_modified
+ - last_modified_date
+- name: entitycategory
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/entitycategory.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: entityeventmap
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/entityeventmap.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: entityterritorymap
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/entityterritorymap.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: entity_role_map
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/entity_role_map.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: entity_status
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/entity_status.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: entity_status_history
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/entity_status_history.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: eventattendees
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/eventattendees.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: events1
+ description: '{{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/calendarevent.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: expense_accounts
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/expense_accounts.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: expense_amortization_rules
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/expense_amortization_rules.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: expense_based_charge_rules
+ description: '{{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/expense_based_charge_rules.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: expense_categories
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/expense_categories.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: expense_categories_rates
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/expense_categories_rates.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: expense_categories_subs_map
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/expense_categories_subs_map.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: expense_detail
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/expense_detail.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: expense_plans
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/expenseplan.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: expense_plan_lines
+ description: '{{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/expense_plan_lines.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: fair_value_prices
+ description: '{{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/fairvalueprice.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: fixed_fee_charge_rules
+ description: '{{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/fixed_fee_charge_rules.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: generic_resources
+ description: '{{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/genericresource.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: gift_certificates
+ description: '{{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/giftcertificate.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: global_account_map
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/global_account_map.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: global_inventory_relationships
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/globalinventoryrelationship.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: group_test_cell
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/group_test_cell.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: inbound_shipments
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/inboundshipment.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: inbound_shipment_items
+ description: 'From NetSuite''s documentation:
+
+
+ > This table is available only for NetSuite accounts with the Inbound Shipment
+ Management feature enabled.
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/inboundshipment.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: income_accounts
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/income_accounts.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: inventory_cost_template
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/inventory_cost_template.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: inventory_cost_template_items
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/inventory_cost_template_items.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: inventory_items
+ description: '{{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/inventoryitem.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: inventory_number
+ description: '{{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/inventorynumber.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: items
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/item.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: item_account_map
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/item_account_map.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: item_billing_rates
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/item_billing_rates.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: item_collections
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/itemcollection.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: item_collection_item_map
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/itemcollectionitemmap.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: item_demand_plans
+ description: '{{ integration.netsuite-replication-keys | flatify }}
+
+
+ {{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/itemdemandplan.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-keys:
+ - date_last_modified
+ - last_modified_date
+- name: item_demand_plan_lines
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/item_demand_plan_lines.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: item_fulfillments
+ description: '{{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/itemfulfillment.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: item_group
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/itemgroup.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: item_location_map
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/item_location_map.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: item_prices
+ description: '{{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/item_prices.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: item_price_history
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/item_price_history.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: item_quantity
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/item_quantity.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: item_revisions
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/itemrevision.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: item_shipmethods
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/item_shipmethods.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: item_site_categories
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/item_site_categories.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: item_subsidiary_map
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/item_subsidiary_map.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: item_supply_plans
+ description: '{{ integration.netsuite-replication-keys | flatify }}
+
+
+ {{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/itemsupplyplan.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-keys:
+ - date_last_modified
+ - last_modified_date
+- name: item_supply_plan_attributes
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/item_supply_plan_attributes.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: item_supply_plan_lines
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/item_supply_plan_lines.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: item_supply_plan_source
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/item_supply_plan_source.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: item_supply_plan_source_types
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/item_supply_plan_source_types.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: item_vendor_map
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/item_vendor_map.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: item_vendor_pricing
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/item_vendor_pricing.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: job_resources
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/job_resources.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: job_resource_role
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/job_resource_role.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: job_types
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/jobtype.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: locations
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/location.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: location_costing_groups
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/location_costing_groups.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: location_costing_grp_locations
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/location_costing_grp_locations.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: memorized_trans
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/memorized_trans.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: message
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/message.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: messagerecipient
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/messagerecipient.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: mfg_cost_template
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/mfg_cost_template.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: mfg_cost_template_items
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/mfg_cost_template_items.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: mfg_routing
+ description: '{{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/mfg_routing.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: mfg_routing_steps
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/mfg_routing_steps.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: nexus
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/nexus.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: notes_system
+ description: 'From NetSuite''s documentation:
+
+
+ > As of NetSuite 2017.1, the `notes_system` table is obsolete. Use the [`system_notes`
+ table](#system-notes) instead.
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/notes_system.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: notes_system_custom
+ description: 'From NetSuite''s documentation:
+
+
+ > As of NetSuite 2017.1, the `notes_system_custom` table is obsolete. Use the
+ [`system_notes_custom` table](#system-notes-custom) instead.
+
+
+ {{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/notes_system_custom.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: notes_user
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/notes_user.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: notetype
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/notetype.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: opportunities
+ description: '{{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/opportunities.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: opportunitycontactmap
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/opportunitycontactmap.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: opportunity_lines
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/opportunity_lines.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: originating_leads
+ description: '{{ integration.netsuite-replication-keys | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/originatinglead.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-keys:
+ - date_last_modified
+ - last_modified_date
+- name: other_names
+ description: '{{ integration.netsuite-replication-keys | flatify }}
+
+
+ {{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/othername.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-keys:
+ - date_last_modified
+ - last_modified_date
+- name: partners
+ description: '{{ integration.netsuite-replication-keys | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/partner.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-keys:
+ - date_last_modified
+ - last_modified_date
+- name: partner_sales_roles
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/partner_sales_roles.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: partner_types
+ description: '{{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/partner_types.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: payment_methods
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/paymentmethod.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: payment_terms
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/payment_terms.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: payroll_items
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/payrollitem.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: payroll_item_types
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/payroll_item_types.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: percent_complete_overrides
+ description: "**Note**: This table\u2019s data is available only to NetSuite accounts\
+ \ that have Advanced Revenue Management enabled.\n"
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/percent_complete_overrides.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: planassignmap
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/planassignmap.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: planned_standard_costs
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/planned_standard_costs.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: planschedulemap
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/planschedulemap.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: posting_account_activity
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/posting_account_activity.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: posting_account_activity_pe
+ description: 'From NetSuite''s documentation:
+
+
+ > This table includes all transactions. Note that when the ID of the `balance_from_subsidiary_id`
+ and the `subsidiary_id` fields are different, the Period End Journal transaction
+ represents transactions from the source subsidiary. When both fields have the
+ same ID, the Period End Journal transaction represents transactions from the posting
+ subsidiary.
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/posting_account_activity_pe.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: price_books
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/pricebook.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: price_book_line_intervals
+ description: '{{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/price_book_line_intervals.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: price_plans
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/priceplan.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: price_tiers
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/price_tiers.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: price_types
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/price_tiers.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: pricing_groups
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/pricinggroup.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: project_billing_budgets
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/project_billing_budgets.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: project_cost_budgets
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/project_cost_budgets.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: project_cost_categories
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/project_cost_categories.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: project_expense_types
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/projectexpensetype.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: project_revenue_rls_charge_rls
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/project_revenue_rls_charge_rls.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: project_revenue_rl_plans
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/project_revenue_rl_plans.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: project_revenue_rules
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/project_revenue_rules.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: project_tasks
+ description: '{{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/projecttask.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: project_task_assignments
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/projecttaskassignment.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: project_task_billing_budgets
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/project_task_billing_budgets.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: project_task_cost_budgets
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/project_task_cost_budgets.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: project_task_dependencies
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/project_task_dependencies.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: project_templates
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/projecttemplate.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: project_time_approval_types
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/project_time_approval_types.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: promotion_codes
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/promotioncode.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: purchase_charge_rules
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/purchase_charge_rules.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: quota1
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/quota1.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: resource_allocations
+ description: '{{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/resourceallocation.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: resource_groups
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/resource_groups.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: resource_group_entity_map
+ description: "From NetSuite's documentation:\n\n> This table contains data related\
+ \ to the assigned members of a resource group. Each resource group entity must\
+ \ have an assigned resource group. The table\u2019s data is only available for\
+ \ accounts with Project Management enabled.\n"
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/resource_group_entity_map.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: revaluation
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/revaluation.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: revenue_elements
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/revenue_elements.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: revenue_plans
+ description: "From NetSuite's documentation:\n\n> This table\u2019s data is available\
+ \ only to NetSuite accounts that have Advanced Revenue Management enabled.\n"
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/revenueplan.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: revenue_plan_lines
+ description: "From NetSuite's documentation:\n\n> This table\u2019s data is available\
+ \ only to NetSuite accounts that have Advanced Revenue Management enabled.\n\n\
+ {{ integration.append-only-loading | flatify }}\n"
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/revenue_plan_lines.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: revenue_plan_versions
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/revenue_plan_versions.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: revenue_plan_version_lines
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/revenue_plan_version_lines.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: revenue_recognition_rules
+ description: "From NetSuite's documentation:\n\n> This table\u2019s data is available\
+ \ only to NetSuite accounts that have Advanced Revenue Management enabled.\n"
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/revenue_recognition_rules.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: revrecschedulelines
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/revrecschedulelines.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: revrecschedules
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/revrecschedule.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: roles1
+ description: '{{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/role.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: role_subsidiary_map
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/role_subsidiary_map.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: salesforecast
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/salesforecast.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: sales_reps
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/sales_reps.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: sales_roles
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/salesrole.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: sales_territories
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/sales_territories.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: service_items
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/serviceitem.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: shipment_packages
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/shipment_packages.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: shipping_items
+ description: '{{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/shipping_items.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: solution
+ description: '{{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/solution.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: solutioncasemap
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/solutioncasemap.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: solutiontopicmap
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/solutiontopicmap.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: standard_cost_components
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/standard_cost_components.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: states
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/state.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: subscription_change_orders
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/subscriptionchangeorder.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: subscription_co_lines
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/subscription_co_lines.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: subscription_line_revisions
+ description: '{{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/subscription_line_revisions.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: subscription_plans
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/subscriptionplan.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: subscription_plan_lines
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/subscription_plan_lines.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: subscription_terms
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/subscription_terms.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: subscript_line_price_intervals
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/subscript_line_price_intervals.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: subsidiaries
+ description: "The `{{ table.name }}` table contains info about the subsidiary records\
+ \ in your NetSuite account. A subsidiary represents a separate company within\
+ \ your global organization. \n"
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/subsidiaries.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: subsidiary_book_map
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/subsidiary_book_map.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: subsidiary_class_map
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/subsidiary_class_map.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: subsidiary_department_map
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/subsidiary_department_map.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: subsidiary_location_map
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/subsidiary_location_map.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: subsidiary_nexus_map
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/subsidiary_nexus_map.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: supplier_categories
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/supplier_categories.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: supportcasehistory
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/supportcasehistory.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: support_incidents
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/support_incidents.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: support_reps
+ description: '{{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/support_reps.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: support_territories
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/support_territories.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: system_notes
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/system_notes.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: system_notes_custom
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/system_notes_custom.html
+ table-details:
+ replication-method: Full Table
+- name: tasks
+ description: '{{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/task.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: task_contacts
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/task_contacts.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: tax_items
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/tax_items.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: territory
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/territory.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: timesheet
+ description: '{{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/timesheet.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: time_based_charge_rules
+ description: '{{ integration.append-only-loading | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/time_based_charge_rules.html
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ replication-key: date_last_modified
+- name: topic
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/topic.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: transactions
+ description: '{{ integration.netsuite-replication-keys | flatify }}
+
+
+ From NetSuite''s documentation:
+
+
+ > Credit and debit amounts are not exposed as columns in this table. However,
+ you can query the `transaction_lines` table to obtain transaction credit and debit
+ amounts. For more details, see [Connect Access to Transaction Credit and Debit
+ Amounts](https://system.netsuite.com/app/help/helpcenter.nl?topic=DOC_section_4400769955){:target="new"}.
+
+
+ > Item count and quantity values are not exposed as columns in in this table.
+ However, you can query the `transaction_lines` table to obtain these values. For
+ more details, see [Connect Access to Transaction Quantities](https://system.netsuite.com/app/help/helpcenter.nl?topic=DOC_section_1512507697){:target="new"}.
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/transaction.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-keys:
+ - date_last_modified
+ - last_modified_date
+- name: transaction_address
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/transaction_address.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: transaction_bin_numbers
+ description: 'From NetSuite''s documentation:
+
+
+ > Each line in this table represents one and only one bin.
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/transaction_bin_numbers.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: transaction_book_map
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/transaction_book_map.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: transaction_cost_components
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/transaction_cost_components.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: transaction_history
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/transaction_history.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: transaction_inventory_numbers
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/transaction_inventory_numbers.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: transaction_lines
+ description: 'From NetSuite''s documentation:
+
+
+ > Credit and debit amounts are not exposed as columns in this table. However,
+ you can query this table to obtain transaction credit and debit amounts.
+
+
+ > To obtain landed cost category names, you can include the `memo` column in your
+ query. For each line where `is_landed_cost` is set to `Yes`, text is written to
+ this column in the format `:- `.
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/transaction_lines.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified_gmt
+- name: transaction_line_book_map
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/transaction_line_book_map.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: transaction_links
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/transaction_links.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: transaction_sales_teams
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/transaction_sales_teams.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: transaction_shipping_groups
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/transaction_shipping_groups.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: transaction_tax_detail
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/transaction_tax_detail.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: transaction_tracking_numbers
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/transaction_tracking_numbers.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: trans_partner_sales_teams
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/trans_partner_sales_teams.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: units_type
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/unitstype.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: unlocked_time_periods
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/unlockedtimeperiod.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: uom
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/uom.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: usages
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/usage.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: vendors
+ description: '{{ integration.netsuite-replication-keys | flatify }}
+
+ '
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/vendor.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-keys:
+ - date_last_modified
+ - last_modified_date
+- name: vendor_currencies
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/vendor_currencies.html
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: vendor_subsidiary_map
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/vendor_subsidiary_map.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: vendor_types
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/vendor_types.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: winlossreason
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/winlossreason.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: '{{ system-column.record-hash }}'
+ replication-key: date_last_modified
+- name: work_calendars
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/work_calendars.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
+- name: work_calendar_holidays
+ description: ''
+ links:
+ doc-link: https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2020_1/odbc/record/work_calendar_holidays.html
+ table-details:
+ replication-method: Full Table
+ primary-key: '{{ system-column.record-hash }}'
diff --git a/_data/taps/schemas/netsuite/v1/json/Account.json b/_data/taps/schemas/netsuite/v1/json/Account.json
new file mode 100644
index 000000000..e22ddb7a9
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/Account.json
@@ -0,0 +1,176 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "acctName": {
+ "type": [
+ "string"
+ ]
+ },
+ "acctNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "acctType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billableExpensesAcct": {
+ "type": [
+ "varies"
+ ]
+ },
+ "cashFlowRate": {
+ "type": [
+ "varies"
+ ]
+ },
+ "category1099Misc": {
+ "type": [
+ "varies"
+ ]
+ },
+ "curDocNum": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "deferralAcct": {
+ "type": [
+ "varies"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "eliminate": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "exchangeRate": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "generalRate": {
+ "type": [
+ "varies"
+ ]
+ },
+ "includeChildren": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "inventory": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "legalName": {
+ "type": [
+ "string"
+ ]
+ },
+ "localizationsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "openingBalance": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "restrictToAccountingBookList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "revalue": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "subsidiaryList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "tranDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "unit": {
+ "type": [
+ "varies"
+ ]
+ },
+ "unitsType": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/AccountingPeriod.json b/_data/taps/schemas/netsuite/v1/json/AccountingPeriod.json
new file mode 100644
index 000000000..41c0fd026
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/AccountingPeriod.json
@@ -0,0 +1,103 @@
+{
+ "properties": {
+ "allLocked": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "allowNonGLChanges": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "apLocked": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "arLocked": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "closed": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "closedOnDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "fiscalCalendar": {
+ "type": [
+ "varies"
+ ]
+ },
+ "fiscalCalendarsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isAdjust": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isQuarter": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isYear": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "payrollLocked": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "periodName": {
+ "type": [
+ "string"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/Address.json b/_data/taps/schemas/netsuite/v1/json/Address.json
new file mode 100644
index 000000000..8aec9329f
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/Address.json
@@ -0,0 +1,80 @@
+{
+ "properties": {
+ "addr1": {
+ "type": [
+ "string"
+ ]
+ },
+ "addr2": {
+ "type": [
+ "string"
+ ]
+ },
+ "addr3": {
+ "type": [
+ "string"
+ ]
+ },
+ "addrPhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "addrText": {
+ "type": [
+ "string"
+ ]
+ },
+ "addressee": {
+ "type": [
+ "string"
+ ]
+ },
+ "attention": {
+ "type": [
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "override": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/BillingAccount.json b/_data/taps/schemas/netsuite/v1/json/BillingAccount.json
new file mode 100644
index 000000000..869a30129
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/BillingAccount.json
@@ -0,0 +1,136 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billingSchedule": {
+ "type": [
+ "varies"
+ ]
+ },
+ "cashSaleForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "createdBy": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customer": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customerDefault": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "frequency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "idNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "inactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoiceForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "lastBillCycleDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastBillDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nextBillCycleDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/BillingSchedule.json b/_data/taps/schemas/netsuite/v1/json/BillingSchedule.json
new file mode 100644
index 000000000..4c673b4ae
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/BillingSchedule.json
@@ -0,0 +1,183 @@
+{
+ "properties": {
+ "applyToSubtotal": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "billForActuals": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "dayPeriod": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "frequency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "inArrears": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "initialAmount": {
+ "type": [
+ "string"
+ ]
+ },
+ "initialTerms": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isPublic": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "milestoneList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "monthDom": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "monthDow": {
+ "type": [
+ "varies"
+ ]
+ },
+ "monthDowim": {
+ "type": [
+ "varies"
+ ]
+ },
+ "monthMode": {
+ "type": [
+ "varies"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "numberRemaining": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "project": {
+ "type": [
+ "varies"
+ ]
+ },
+ "recurrenceDowMaskList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "recurrenceList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "recurrencePattern": {
+ "type": [
+ "varies"
+ ]
+ },
+ "recurrenceTerms": {
+ "type": [
+ "varies"
+ ]
+ },
+ "repeatEvery": {
+ "type": [
+ "varies"
+ ]
+ },
+ "scheduleType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "seriesStartDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "transaction": {
+ "type": [
+ "varies"
+ ]
+ },
+ "yearDom": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "yearDow": {
+ "type": [
+ "varies"
+ ]
+ },
+ "yearDowim": {
+ "type": [
+ "varies"
+ ]
+ },
+ "yearDowimMonth": {
+ "type": [
+ "varies"
+ ]
+ },
+ "yearMode": {
+ "type": [
+ "varies"
+ ]
+ },
+ "yearMonth": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/Bin.json b/_data/taps/schemas/netsuite/v1/json/Bin.json
new file mode 100644
index 000000000..6fa115e18
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/Bin.json
@@ -0,0 +1,45 @@
+{
+ "properties": {
+ "binNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/Budget.json b/_data/taps/schemas/netsuite/v1/json/Budget.json
new file mode 100644
index 000000000..21c8c72e7
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/Budget.json
@@ -0,0 +1,224 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "account": {
+ "type": [
+ "varies"
+ ]
+ },
+ "amount": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "budgetType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "category": {
+ "type": [
+ "varies"
+ ]
+ },
+ "currency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customer": {
+ "type": [
+ "varies"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "item": {
+ "type": [
+ "varies"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "periodAmount1": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "periodAmount10": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "periodAmount11": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "periodAmount12": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "periodAmount13": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "periodAmount14": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "periodAmount15": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "periodAmount16": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "periodAmount17": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "periodAmount18": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "periodAmount19": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "periodAmount2": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "periodAmount20": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "periodAmount21": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "periodAmount22": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "periodAmount23": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "periodAmount24": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "periodAmount3": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "periodAmount4": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "periodAmount5": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "periodAmount6": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "periodAmount7": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "periodAmount8": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "periodAmount9": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "year": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/CalendarEvent.json b/_data/taps/schemas/netsuite/v1/json/CalendarEvent.json
new file mode 100644
index 000000000..1da739940
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/CalendarEvent.json
@@ -0,0 +1,199 @@
+{
+ "properties": {
+ "accessLevel": {
+ "type": [
+ "varies"
+ ]
+ },
+ "allDayEvent": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "attendeeList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "company": {
+ "type": [
+ "varies"
+ ]
+ },
+ "contact": {
+ "type": [
+ "varies"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "endByDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "exclusionDateList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "frequency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "location": {
+ "type": [
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "noEndDate": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "organizer": {
+ "type": [
+ "varies"
+ ]
+ },
+ "owner": {
+ "type": [
+ "varies"
+ ]
+ },
+ "period": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "recurrence": {
+ "type": [
+ "string"
+ ]
+ },
+ "recurrenceDow": {
+ "type": [
+ "varies"
+ ]
+ },
+ "recurrenceDowMaskList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "recurrenceDowim": {
+ "type": [
+ "varies"
+ ]
+ },
+ "reminderMinutes": {
+ "type": [
+ "varies"
+ ]
+ },
+ "reminderType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "resourceList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "sendEmail": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "seriesStartDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "varies"
+ ]
+ },
+ "supportCase": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeItemList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timedEvent": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/Classification.json b/_data/taps/schemas/netsuite/v1/json/Classification.json
new file mode 100644
index 000000000..81bb128b8
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/Classification.json
@@ -0,0 +1,56 @@
+{
+ "properties": {
+ "classTranslationList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "includeChildren": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiaryList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/ConsolidatedExchangeRate.json b/_data/taps/schemas/netsuite/v1/json/ConsolidatedExchangeRate.json
new file mode 100644
index 000000000..cf1dda549
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/ConsolidatedExchangeRate.json
@@ -0,0 +1,85 @@
+{
+ "properties": {
+ "accountingBook": {
+ "type": [
+ "string"
+ ]
+ },
+ "averageRate": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "currentRate": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "fromCurrency": {
+ "type": [
+ "string"
+ ]
+ },
+ "fromSubsidiary": {
+ "type": [
+ "string"
+ ]
+ },
+ "historicalRate": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isDerived": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isEliminationSubsidiary": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isPeriodClosed": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "postingPeriod": {
+ "type": [
+ "string"
+ ]
+ },
+ "toCurrency": {
+ "type": [
+ "string"
+ ]
+ },
+ "toSubsidiary": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/ContactCategory.json b/_data/taps/schemas/netsuite/v1/json/ContactCategory.json
new file mode 100644
index 000000000..7ff6825e7
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/ContactCategory.json
@@ -0,0 +1,42 @@
+{
+ "properties": {
+ "_private": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "sync": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/ContactRole.json b/_data/taps/schemas/netsuite/v1/json/ContactRole.json
new file mode 100644
index 000000000..d2b8e459a
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/ContactRole.json
@@ -0,0 +1,35 @@
+{
+ "properties": {
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/CostCategory.json b/_data/taps/schemas/netsuite/v1/json/CostCategory.json
new file mode 100644
index 000000000..5bee7bbfc
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/CostCategory.json
@@ -0,0 +1,40 @@
+{
+ "properties": {
+ "account": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "itemCostType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/CouponCode.json b/_data/taps/schemas/netsuite/v1/json/CouponCode.json
new file mode 100644
index 000000000..103bff77b
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/CouponCode.json
@@ -0,0 +1,51 @@
+{
+ "properties": {
+ "code": {
+ "type": [
+ "string"
+ ]
+ },
+ "dateSent": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "promotion": {
+ "type": [
+ "varies"
+ ]
+ },
+ "recipient": {
+ "type": [
+ "varies"
+ ]
+ },
+ "useCount": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "used": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/CurrencyRate.json b/_data/taps/schemas/netsuite/v1/json/CurrencyRate.json
new file mode 100644
index 000000000..a9e49d7bd
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/CurrencyRate.json
@@ -0,0 +1,35 @@
+{
+ "properties": {
+ "baseCurrency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "effectiveDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "exchangeRate": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "transactionCurrency": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/CustomList.json b/_data/taps/schemas/netsuite/v1/json/CustomList.json
new file mode 100644
index 000000000..79cbfd1d0
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/CustomList.json
@@ -0,0 +1,68 @@
+{
+ "properties": {
+ "convertToCustomRecord": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "customValueList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isMatrixOption": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isOrdered": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "owner": {
+ "type": [
+ "varies"
+ ]
+ },
+ "scriptId": {
+ "type": [
+ "string"
+ ]
+ },
+ "translationsList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/Customer.json b/_data/taps/schemas/netsuite/v1/json/Customer.json
new file mode 100644
index 000000000..9c7faa476
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/Customer.json
@@ -0,0 +1,715 @@
+{
+ "properties": {
+ "accessRole": {
+ "type": [
+ "varies"
+ ]
+ },
+ "accountNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "addressbookList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "aging": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "aging1": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "aging2": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "aging3": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "aging4": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "alcoholRecipientType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "altEmail": {
+ "type": [
+ "string"
+ ]
+ },
+ "altName": {
+ "type": [
+ "string"
+ ]
+ },
+ "altPhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "balance": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "billPay": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "buyingReason": {
+ "type": [
+ "varies"
+ ]
+ },
+ "buyingTimeFrame": {
+ "type": [
+ "varies"
+ ]
+ },
+ "campaignCategory": {
+ "type": [
+ "varies"
+ ]
+ },
+ "category": {
+ "type": [
+ "varies"
+ ]
+ },
+ "clickStream": {
+ "type": [
+ "string"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "companyName": {
+ "type": [
+ "string"
+ ]
+ },
+ "consolAging": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "consolAging1": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "consolAging2": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "consolAging3": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "consolAging4": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "consolBalance": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "consolDaysOverdue": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "consolDepositBalance": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "consolOverdueBalance": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "consolUnbilledOrders": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "contactRolesList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "contribPct": {
+ "type": [
+ "string"
+ ]
+ },
+ "creditCardsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "creditHoldOverride": {
+ "type": [
+ "varies"
+ ]
+ },
+ "creditLimit": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "currencyList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "dateCreated": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "daysOverdue": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "defaultAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "defaultOrderPriority": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "depositBalance": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "displaySymbol": {
+ "type": [
+ "string"
+ ]
+ },
+ "downloadList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "drAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "emailPreference": {
+ "type": [
+ "varies"
+ ]
+ },
+ "emailTransactions": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "entityId": {
+ "type": [
+ "string"
+ ]
+ },
+ "entityStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "estimatedBudget": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "faxTransactions": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "firstName": {
+ "type": [
+ "string"
+ ]
+ },
+ "firstVisit": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "fxAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "giveAccess": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "globalSubscriptionStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "groupPricingList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "homePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "image": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isBudgetApproved": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isPerson": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "itemPricingList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "keywords": {
+ "type": [
+ "string"
+ ]
+ },
+ "language": {
+ "type": [
+ "varies"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastName": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastPageVisited": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastVisit": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "leadSource": {
+ "type": [
+ "varies"
+ ]
+ },
+ "middleName": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobilePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "monthlyClosing": {
+ "type": [
+ "varies"
+ ]
+ },
+ "negativeNumberFormat": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "numberFormat": {
+ "type": [
+ "varies"
+ ]
+ },
+ "openingBalance": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "openingBalanceAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "openingBalanceDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "overdueBalance": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "overrideCurrencyFormat": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "partner": {
+ "type": [
+ "varies"
+ ]
+ },
+ "partnersList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "password": {
+ "type": [
+ "string"
+ ]
+ },
+ "password2": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "phoneticName": {
+ "type": [
+ "string"
+ ]
+ },
+ "prefCCProcessor": {
+ "type": [
+ "varies"
+ ]
+ },
+ "priceLevel": {
+ "type": [
+ "varies"
+ ]
+ },
+ "printOnCheckAs": {
+ "type": [
+ "string"
+ ]
+ },
+ "printTransactions": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "receivablesAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "referrer": {
+ "type": [
+ "string"
+ ]
+ },
+ "reminderDays": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "representingSubsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "requirePwdChange": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "resaleNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "salesGroup": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salesReadiness": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salesRep": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salesTeamList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salutation": {
+ "type": [
+ "string"
+ ]
+ },
+ "sendEmail": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "shipComplete": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "shippingItem": {
+ "type": [
+ "varies"
+ ]
+ },
+ "stage": {
+ "type": [
+ "varies"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "subscriptionsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "symbolPlacement": {
+ "type": [
+ "varies"
+ ]
+ },
+ "syncPartnerTeams": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "taxExempt": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "taxItem": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxable": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "terms": {
+ "type": [
+ "varies"
+ ]
+ },
+ "territory": {
+ "type": [
+ "varies"
+ ]
+ },
+ "thirdPartyAcct": {
+ "type": [
+ "string"
+ ]
+ },
+ "thirdPartyCountry": {
+ "type": [
+ "varies"
+ ]
+ },
+ "thirdPartyZipcode": {
+ "type": [
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "unbilledOrders": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ },
+ "vatRegNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "visits": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "webLead": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/CustomerCategory.json b/_data/taps/schemas/netsuite/v1/json/CustomerCategory.json
new file mode 100644
index 000000000..f9f263056
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/CustomerCategory.json
@@ -0,0 +1,30 @@
+{
+ "properties": {
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/CustomerMessage.json b/_data/taps/schemas/netsuite/v1/json/CustomerMessage.json
new file mode 100644
index 000000000..3994bd436
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/CustomerMessage.json
@@ -0,0 +1,41 @@
+{
+ "properties": {
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "preferred": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/CustomerStatus.json b/_data/taps/schemas/netsuite/v1/json/CustomerStatus.json
new file mode 100644
index 000000000..a29a2209d
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/CustomerStatus.json
@@ -0,0 +1,52 @@
+{
+ "properties": {
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "includeInLeadReports": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "probability": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "stage": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/Deleted.json b/_data/taps/schemas/netsuite/v1/json/Deleted.json
new file mode 100644
index 000000000..4b714661b
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/Deleted.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "customRecord": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "deletedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "scriptId": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/Department.json b/_data/taps/schemas/netsuite/v1/json/Department.json
new file mode 100644
index 000000000..81bb128b8
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/Department.json
@@ -0,0 +1,56 @@
+{
+ "properties": {
+ "classTranslationList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "includeChildren": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiaryList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/EntityGroup.json b/_data/taps/schemas/netsuite/v1/json/EntityGroup.json
new file mode 100644
index 000000000..378404ef4
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/EntityGroup.json
@@ -0,0 +1,145 @@
+{
+ "properties": {
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "groupName": {
+ "type": [
+ "string"
+ ]
+ },
+ "groupOwner": {
+ "type": [
+ "varies"
+ ]
+ },
+ "groupType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isFunctionalTeam": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isManufacturingWorkCenter": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isPrivate": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isProductTeam": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isSalesRep": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isSalesTeam": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isSavedSearch": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isSupportRep": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "issueRole": {
+ "type": [
+ "varies"
+ ]
+ },
+ "laborResources": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "machineResources": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parentGroupType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "restrictionGroup": {
+ "type": [
+ "varies"
+ ]
+ },
+ "savedSearch": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "workCalendar": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/ExpenseCategory.json b/_data/taps/schemas/netsuite/v1/json/ExpenseCategory.json
new file mode 100644
index 000000000..480196ab7
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/ExpenseCategory.json
@@ -0,0 +1,77 @@
+{
+ "properties": {
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "defaultRate": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "expenseAcct": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "rateRequired": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "ratesList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiaryList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "translationsList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/FairValuePrice.json b/_data/taps/schemas/netsuite/v1/json/FairValuePrice.json
new file mode 100644
index 000000000..2d5eba483
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/FairValuePrice.json
@@ -0,0 +1,115 @@
+{
+ "properties": {
+ "currency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "dimensionList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "fairValue": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "fairValueFormula": {
+ "type": [
+ "varies"
+ ]
+ },
+ "fairValueRangePolicy": {
+ "type": [
+ "varies"
+ ]
+ },
+ "highValue": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "highValuePercent": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isVsoePrice": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "item": {
+ "type": [
+ "varies"
+ ]
+ },
+ "itemRevenueCategory": {
+ "type": [
+ "varies"
+ ]
+ },
+ "lowValue": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "lowValuePercent": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "units": {
+ "type": [
+ "varies"
+ ]
+ },
+ "unitsType": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/Folder.json b/_data/taps/schemas/netsuite/v1/json/Folder.json
new file mode 100644
index 000000000..55c4a141b
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/Folder.json
@@ -0,0 +1,94 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "bundleable": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "folderType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "group": {
+ "type": [
+ "varies"
+ ]
+ },
+ "hideInBundle": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isOnline": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isPrivate": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/GiftCertificate.json b/_data/taps/schemas/netsuite/v1/json/GiftCertificate.json
new file mode 100644
index 000000000..7e2090e9a
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/GiftCertificate.json
@@ -0,0 +1,66 @@
+{
+ "properties": {
+ "amountRemaining": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "expirationDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "giftCertCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "originalAmount": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "sender": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/GlobalAccountMapping.json b/_data/taps/schemas/netsuite/v1/json/GlobalAccountMapping.json
new file mode 100644
index 000000000..d9f0457ad
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/GlobalAccountMapping.json
@@ -0,0 +1,79 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "accountingBook": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customDimension": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "destinationAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "effectiveDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "sourceAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/HcmJob.json b/_data/taps/schemas/netsuite/v1/json/HcmJob.json
new file mode 100644
index 000000000..0e9f7102c
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/HcmJob.json
@@ -0,0 +1,50 @@
+{
+ "properties": {
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "employmentCategory": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "jobId": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/InboundShipment.json b/_data/taps/schemas/netsuite/v1/json/InboundShipment.json
new file mode 100644
index 000000000..46e05bc6a
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/InboundShipment.json
@@ -0,0 +1,84 @@
+{
+ "properties": {
+ "actualDeliveryDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "actualShippingDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "billOfLading": {
+ "type": [
+ "string"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "expectedDeliveryDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "expectedShippingDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "externalDocumentNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "itemsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "shipmentMemo": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipmentNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipmentStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "vesselNumber": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/InventoryNumber.json b/_data/taps/schemas/netsuite/v1/json/InventoryNumber.json
new file mode 100644
index 000000000..024a11cc8
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/InventoryNumber.json
@@ -0,0 +1,59 @@
+{
+ "properties": {
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "expirationDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "inventoryNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "item": {
+ "type": [
+ "varies"
+ ]
+ },
+ "locationsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "units": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/Issue.json b/_data/taps/schemas/netsuite/v1/json/Issue.json
new file mode 100644
index 000000000..41a9c54d8
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/Issue.json
@@ -0,0 +1,223 @@
+{
+ "properties": {
+ "assigned": {
+ "type": [
+ "varies"
+ ]
+ },
+ "brokenInVersionList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "buildBroken": {
+ "type": [
+ "varies"
+ ]
+ },
+ "buildFixed": {
+ "type": [
+ "varies"
+ ]
+ },
+ "buildTarget": {
+ "type": [
+ "varies"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "emailAssignee": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "emailCellsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "emailEmployeesList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalAbstract": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalDetails": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "fixedInVersionList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isOwner": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isReviewed": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isShowStopper": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "issueAbstract": {
+ "type": [
+ "string"
+ ]
+ },
+ "issueNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "issueStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "issueTagsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "issueType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "item": {
+ "type": [
+ "varies"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "module": {
+ "type": [
+ "varies"
+ ]
+ },
+ "newDetails": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "priority": {
+ "type": [
+ "varies"
+ ]
+ },
+ "product": {
+ "type": [
+ "varies"
+ ]
+ },
+ "productTeam": {
+ "type": [
+ "varies"
+ ]
+ },
+ "relatedIssuesList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "reportedBy": {
+ "type": [
+ "varies"
+ ]
+ },
+ "reproduce": {
+ "type": [
+ "varies"
+ ]
+ },
+ "reviewer": {
+ "type": [
+ "varies"
+ ]
+ },
+ "severity": {
+ "type": [
+ "varies"
+ ]
+ },
+ "source": {
+ "type": [
+ "varies"
+ ]
+ },
+ "targetVersionList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "trackCode": {
+ "type": [
+ "varies"
+ ]
+ },
+ "versionBroken": {
+ "type": [
+ "varies"
+ ]
+ },
+ "versionFixed": {
+ "type": [
+ "varies"
+ ]
+ },
+ "versionTarget": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/ItemAccountMapping.json b/_data/taps/schemas/netsuite/v1/json/ItemAccountMapping.json
new file mode 100644
index 000000000..ae486316e
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/ItemAccountMapping.json
@@ -0,0 +1,84 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "accountingBook": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customDimension": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "destinationAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "effectiveDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "itemAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "sourceAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/ItemDemandPlan.json b/_data/taps/schemas/netsuite/v1/json/ItemDemandPlan.json
new file mode 100644
index 000000000..c2da54cc3
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/ItemDemandPlan.json
@@ -0,0 +1,85 @@
+{
+ "properties": {
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "demandPlanCalendarType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "demandPlanMatrix": {
+ "type": [
+ "varies"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "item": {
+ "type": [
+ "varies"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "month": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "units": {
+ "type": [
+ "varies"
+ ]
+ },
+ "year": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/ItemRevision.json b/_data/taps/schemas/netsuite/v1/json/ItemRevision.json
new file mode 100644
index 000000000..a3f255465
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/ItemRevision.json
@@ -0,0 +1,50 @@
+{
+ "properties": {
+ "effectiveDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "inactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "item": {
+ "type": [
+ "varies"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "obsoleteDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/ItemSupplyPlan.json b/_data/taps/schemas/netsuite/v1/json/ItemSupplyPlan.json
new file mode 100644
index 000000000..3b17fdb41
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/ItemSupplyPlan.json
@@ -0,0 +1,59 @@
+{
+ "properties": {
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "item": {
+ "type": [
+ "varies"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "orderList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "units": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/Job.json b/_data/taps/schemas/netsuite/v1/json/Job.json
new file mode 100644
index 000000000..7b12a35f7
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/Job.json
@@ -0,0 +1,430 @@
+{
+ "properties": {
+ "accountNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "actualTime": {
+ "type": [
+ "varies"
+ ]
+ },
+ "addressbookList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "allocatePayrollExpenses": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "allowAllResourcesForTasks": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "allowExpenses": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "allowTime": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "altName": {
+ "type": [
+ "string"
+ ]
+ },
+ "altPhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "applyProjectExpenseTypeToAll": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "billPay": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "billingSchedule": {
+ "type": [
+ "varies"
+ ]
+ },
+ "calculatedEndDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "calculatedEndDateBaseline": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "category": {
+ "type": [
+ "varies"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "companyName": {
+ "type": [
+ "string"
+ ]
+ },
+ "creditCardsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "currency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "dateCreated": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "defaultAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "emailPreference": {
+ "type": [
+ "varies"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "entityId": {
+ "type": [
+ "string"
+ ]
+ },
+ "entityStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "estimateRevRecTemplate": {
+ "type": [
+ "varies"
+ ]
+ },
+ "estimatedCost": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "estimatedGrossProfit": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "estimatedGrossProfitPercent": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "estimatedLaborCost": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "estimatedLaborCostBaseline": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "estimatedLaborRevenue": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "estimatedRevenue": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "estimatedTime": {
+ "type": [
+ "varies"
+ ]
+ },
+ "estimatedTimeOverride": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "fxRate": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "globalSubscriptionStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "includeCrmTasksInTotals": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isExemptTime": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isProductiveTime": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isUtilizedTime": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "jobBillingType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "jobItem": {
+ "type": [
+ "varies"
+ ]
+ },
+ "jobPrice": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "jobResourcesList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "jobType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "language": {
+ "type": [
+ "varies"
+ ]
+ },
+ "lastBaselineDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "limitTimeToAssignees": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "materializeTime": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "milestonesList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "openingBalance": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "openingBalanceAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "openingBalanceDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "percentComplete": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "percentCompleteOverrideList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "percentTimeComplete": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "phoneticName": {
+ "type": [
+ "string"
+ ]
+ },
+ "plStatementList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "projectExpenseType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "projectedEndDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "projectedEndDateBaseline": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "revRecForecastRule": {
+ "type": [
+ "varies"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "startDateBaseline": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeRemaining": {
+ "type": [
+ "varies"
+ ]
+ },
+ "usePercentCompleteOverride": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "workplace": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/JobStatus.json b/_data/taps/schemas/netsuite/v1/json/JobStatus.json
new file mode 100644
index 000000000..d2b8e459a
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/JobStatus.json
@@ -0,0 +1,35 @@
+{
+ "properties": {
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/JobType.json b/_data/taps/schemas/netsuite/v1/json/JobType.json
new file mode 100644
index 000000000..4bb05c8c4
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/JobType.json
@@ -0,0 +1,35 @@
+{
+ "properties": {
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/ManufacturingCostTemplate.json b/_data/taps/schemas/netsuite/v1/json/ManufacturingCostTemplate.json
new file mode 100644
index 000000000..a852988e7
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/ManufacturingCostTemplate.json
@@ -0,0 +1,55 @@
+{
+ "properties": {
+ "costDetailList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/ManufacturingOperationTask.json b/_data/taps/schemas/netsuite/v1/json/ManufacturingOperationTask.json
new file mode 100644
index 000000000..e3c05833e
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/ManufacturingOperationTask.json
@@ -0,0 +1,150 @@
+{
+ "properties": {
+ "actualWork": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "autoCalculateLag": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "completedQuantity": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "costDetailList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "estimatedWork": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "inputQuantity": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "laborResources": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "machineResources": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "manufacturingCostTemplate": {
+ "type": [
+ "varies"
+ ]
+ },
+ "manufacturingWorkCenter": {
+ "type": [
+ "varies"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "operationSequence": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "order": {
+ "type": [
+ "varies"
+ ]
+ },
+ "predecessorList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "remainingWork": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "runRate": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "setupTime": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "varies"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "workOrder": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/ManufacturingRouting.json b/_data/taps/schemas/netsuite/v1/json/ManufacturingRouting.json
new file mode 100644
index 000000000..cca870f76
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/ManufacturingRouting.json
@@ -0,0 +1,87 @@
+{
+ "properties": {
+ "autoCalculateLag": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "billOfMaterials": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isDefault": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "item": {
+ "type": [
+ "varies"
+ ]
+ },
+ "locationList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "routingComponentList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "routingStepList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/Message.json b/_data/taps/schemas/netsuite/v1/json/Message.json
new file mode 100644
index 000000000..9fe985ba2
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/Message.json
@@ -0,0 +1,117 @@
+{
+ "properties": {
+ "activity": {
+ "type": [
+ "varies"
+ ]
+ },
+ "author": {
+ "type": [
+ "varies"
+ ]
+ },
+ "authorEmail": {
+ "type": [
+ "string"
+ ]
+ },
+ "bcc": {
+ "type": [
+ "string"
+ ]
+ },
+ "cc": {
+ "type": [
+ "string"
+ ]
+ },
+ "compressAttachments": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "dateTime": {
+ "type": [
+ "string"
+ ]
+ },
+ "emailed": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "incoming": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "mediaItemList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "messageDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "recipient": {
+ "type": [
+ "varies"
+ ]
+ },
+ "recipientEmail": {
+ "type": [
+ "string"
+ ]
+ },
+ "recordName": {
+ "type": [
+ "string"
+ ]
+ },
+ "recordTypeName": {
+ "type": [
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/Note.json b/_data/taps/schemas/netsuite/v1/json/Note.json
new file mode 100644
index 000000000..b44ea07e2
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/Note.json
@@ -0,0 +1,109 @@
+{
+ "properties": {
+ "activity": {
+ "type": [
+ "varies"
+ ]
+ },
+ "author": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "direction": {
+ "type": [
+ "varies"
+ ]
+ },
+ "entity": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "folder": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "item": {
+ "type": [
+ "varies"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "media": {
+ "type": [
+ "varies"
+ ]
+ },
+ "note": {
+ "type": [
+ "string"
+ ]
+ },
+ "noteDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "noteType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "record": {
+ "type": [
+ "varies"
+ ]
+ },
+ "recordType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "topic": {
+ "type": [
+ "varies"
+ ]
+ },
+ "transaction": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/NoteType.json b/_data/taps/schemas/netsuite/v1/json/NoteType.json
new file mode 100644
index 000000000..d2b8e459a
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/NoteType.json
@@ -0,0 +1,35 @@
+{
+ "properties": {
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/Opportunity.json b/_data/taps/schemas/netsuite/v1/json/Opportunity.json
new file mode 100644
index 000000000..fec7de4f7
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/Opportunity.json
@@ -0,0 +1,411 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "accountingBookDetailList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "actionItem": {
+ "type": [
+ "string"
+ ]
+ },
+ "altSalesRangeHigh": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "altSalesRangeLow": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "billAddressList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billingAddress": {
+ "type": [
+ "varies"
+ ]
+ },
+ "buyingReason": {
+ "type": [
+ "varies"
+ ]
+ },
+ "buyingTimeFrame": {
+ "type": [
+ "varies"
+ ]
+ },
+ "closeDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "competitorsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "contribPct": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "currencyName": {
+ "type": [
+ "string"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "daysOpen": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "entity": {
+ "type": [
+ "varies"
+ ]
+ },
+ "entityStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "entityTaxRegNum": {
+ "type": [
+ "varies"
+ ]
+ },
+ "estGrossProfit": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "estGrossProfitPercent": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "estimatedBudget": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "exchangeRate": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "expectedCloseDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "forecastType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isBudgetApproved": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "itemList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "job": {
+ "type": [
+ "varies"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "leadSource": {
+ "type": [
+ "varies"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "nexus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "oneTime": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "partner": {
+ "type": [
+ "varies"
+ ]
+ },
+ "partnersList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "probability": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "projAltSalesAmt": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "projectedTotal": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "rangeHigh": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "rangeLow": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "recurAnnually": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "recurMonthly": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "recurQuarterly": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "recurWeekly": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "salesGroup": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salesReadiness": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salesRep": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salesTeamList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "shipAddressList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "shipIsResidential": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "shippingAddress": {
+ "type": [
+ "varies"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiaryTaxRegNum": {
+ "type": [
+ "varies"
+ ]
+ },
+ "syncPartnerTeams": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "syncSalesTeams": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "tax2Total": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "taxDetailsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxDetailsOverride": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "taxRegOverride": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "taxTotal": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "totalCostEstimate": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "tranDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "tranId": {
+ "type": [
+ "string"
+ ]
+ },
+ "vatRegNum": {
+ "type": [
+ "string"
+ ]
+ },
+ "weightedTotal": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "winLossReason": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/OtherNameCategory.json b/_data/taps/schemas/netsuite/v1/json/OtherNameCategory.json
new file mode 100644
index 000000000..f9f263056
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/OtherNameCategory.json
@@ -0,0 +1,30 @@
+{
+ "properties": {
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/PartnerCategory.json b/_data/taps/schemas/netsuite/v1/json/PartnerCategory.json
new file mode 100644
index 000000000..4bb05c8c4
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/PartnerCategory.json
@@ -0,0 +1,35 @@
+{
+ "properties": {
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/Paycheck.json b/_data/taps/schemas/netsuite/v1/json/Paycheck.json
new file mode 100644
index 000000000..5a47c24f0
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/Paycheck.json
@@ -0,0 +1,161 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "account": {
+ "type": [
+ "varies"
+ ]
+ },
+ "address": {
+ "type": [
+ "string"
+ ]
+ },
+ "balance": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "batchNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "entity": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "payContribList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "payDeductList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "payDisburseList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "payEarnList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "payExpList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "payFrequency": {
+ "type": [
+ "string"
+ ]
+ },
+ "payPtoList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "paySummaryList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "payTaxList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "payTimeList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "periodEnding": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "postingPeriod": {
+ "type": [
+ "varies"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "tranDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "tranId": {
+ "type": [
+ "string"
+ ]
+ },
+ "userAmount": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "workplace": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/PaymentMethod.json b/_data/taps/schemas/netsuite/v1/json/PaymentMethod.json
new file mode 100644
index 000000000..b05cbd62b
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/PaymentMethod.json
@@ -0,0 +1,85 @@
+{
+ "properties": {
+ "account": {
+ "type": [
+ "varies"
+ ]
+ },
+ "creditCard": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "expressCheckoutArrangement": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isDebitCard": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isOnline": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "merchantAccountsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "payPalEmailAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "undepFunds": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "useExpressCheckout": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "visualsList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/PayrollItem.json b/_data/taps/schemas/netsuite/v1/json/PayrollItem.json
new file mode 100644
index 000000000..4e34327ec
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/PayrollItem.json
@@ -0,0 +1,66 @@
+{
+ "properties": {
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "employeePaid": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "expenseAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "inactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "itemType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "liabilityAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "vendor": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/PhoneCall.json b/_data/taps/schemas/netsuite/v1/json/PhoneCall.json
new file mode 100644
index 000000000..4fc023567
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/PhoneCall.json
@@ -0,0 +1,152 @@
+{
+ "properties": {
+ "accessLevel": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "assigned": {
+ "type": [
+ "varies"
+ ]
+ },
+ "company": {
+ "type": [
+ "varies"
+ ]
+ },
+ "completedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "contact": {
+ "type": [
+ "varies"
+ ]
+ },
+ "contactList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "milestone": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "owner": {
+ "type": [
+ "varies"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "priority": {
+ "type": [
+ "varies"
+ ]
+ },
+ "reminderMinutes": {
+ "type": [
+ "varies"
+ ]
+ },
+ "reminderType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "sendEmail": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "varies"
+ ]
+ },
+ "supportCase": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeItemList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timedEvent": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/PriceLevel.json b/_data/taps/schemas/netsuite/v1/json/PriceLevel.json
new file mode 100644
index 000000000..25c1b5a55
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/PriceLevel.json
@@ -0,0 +1,48 @@
+{
+ "properties": {
+ "discountpct": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isOnline": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "updateExistingPrices": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/PricingGroup.json b/_data/taps/schemas/netsuite/v1/json/PricingGroup.json
new file mode 100644
index 000000000..f9f263056
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/PricingGroup.json
@@ -0,0 +1,30 @@
+{
+ "properties": {
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/ProjectTask.json b/_data/taps/schemas/netsuite/v1/json/ProjectTask.json
new file mode 100644
index 000000000..bb9f20672
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/ProjectTask.json
@@ -0,0 +1,187 @@
+{
+ "properties": {
+ "actualWork": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "assigneeList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "company": {
+ "type": [
+ "varies"
+ ]
+ },
+ "constraintType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "contact": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "endDateBaseline": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "estimatedWork": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "estimatedWorkBaseline": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "eventId": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "finishByDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isMilestone": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isOnCriticalPath": {
+ "type": [
+ "string"
+ ]
+ },
+ "lateEnd": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lateStart": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "nonBillableTask": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "order": {
+ "type": [
+ "varies"
+ ]
+ },
+ "owner": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "percentTimeComplete": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "predecessorList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "priority": {
+ "type": [
+ "varies"
+ ]
+ },
+ "remainingWork": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "slackMinutes": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "startDateBaseline": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeItemList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/PromotionCode.json b/_data/taps/schemas/netsuite/v1/json/PromotionCode.json
new file mode 100644
index 000000000..04cdcaab0
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/PromotionCode.json
@@ -0,0 +1,151 @@
+{
+ "properties": {
+ "applyDiscountTo": {
+ "type": [
+ "varies"
+ ]
+ },
+ "code": {
+ "type": [
+ "string"
+ ]
+ },
+ "codePattern": {
+ "type": [
+ "string"
+ ]
+ },
+ "currencyList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "discount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "discountType": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "displayLineDiscounts": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "excludeItems": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "freeShipMethod": {
+ "type": [
+ "varies"
+ ]
+ },
+ "implementation": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isPublic": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "itemsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "locationList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "minimumOrderAmount": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "numberToGenerate": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "partnersList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "rate": {
+ "type": [
+ "string"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "useType": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/ResourceAllocation.json b/_data/taps/schemas/netsuite/v1/json/ResourceAllocation.json
new file mode 100644
index 000000000..41afd15ee
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/ResourceAllocation.json
@@ -0,0 +1,97 @@
+{
+ "properties": {
+ "allocationAmount": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "allocationResource": {
+ "type": [
+ "varies"
+ ]
+ },
+ "allocationType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "allocationUnit": {
+ "type": [
+ "varies"
+ ]
+ },
+ "approvalStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "nextApprover": {
+ "type": [
+ "varies"
+ ]
+ },
+ "notes": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "numberHours": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "percentOfTime": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "project": {
+ "type": [
+ "varies"
+ ]
+ },
+ "requestedby": {
+ "type": [
+ "varies"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/RevRecSchedule.json b/_data/taps/schemas/netsuite/v1/json/RevRecSchedule.json
new file mode 100644
index 000000000..38d9c3632
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/RevRecSchedule.json
@@ -0,0 +1,74 @@
+{
+ "properties": {
+ "amortizationPeriod": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "amortizationType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "initialAmount": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "periodOffset": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "recogIntervalSrc": {
+ "type": [
+ "varies"
+ ]
+ },
+ "recurrenceList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "recurrenceType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "revRecOffset": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/RevRecTemplate.json b/_data/taps/schemas/netsuite/v1/json/RevRecTemplate.json
new file mode 100644
index 000000000..38d9c3632
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/RevRecTemplate.json
@@ -0,0 +1,74 @@
+{
+ "properties": {
+ "amortizationPeriod": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "amortizationType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "initialAmount": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "periodOffset": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "recogIntervalSrc": {
+ "type": [
+ "varies"
+ ]
+ },
+ "recurrenceList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "recurrenceType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "revRecOffset": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/SalesRole.json b/_data/taps/schemas/netsuite/v1/json/SalesRole.json
new file mode 100644
index 000000000..a79dc795d
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/SalesRole.json
@@ -0,0 +1,41 @@
+{
+ "properties": {
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isSalesRep": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/SalesTaxItem.json b/_data/taps/schemas/netsuite/v1/json/SalesTaxItem.json
new file mode 100644
index 000000000..88764419f
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/SalesTaxItem.json
@@ -0,0 +1,173 @@
+{
+ "properties": {
+ "available": {
+ "type": [
+ "varies"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "county": {
+ "type": [
+ "string"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "string"
+ ]
+ },
+ "eccode": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "effectiveFrom": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "excludeFromTaxReports": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "exempt": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "export": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "includeChildren": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isDefault": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "itemId": {
+ "type": [
+ "string"
+ ]
+ },
+ "nexusCountry": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "purchaseAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "rate": {
+ "type": [
+ "string"
+ ]
+ },
+ "reverseCharge": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "saleAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "service": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "subsidiaryList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxAgency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "validUntil": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "zip": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/SiteCategory.json b/_data/taps/schemas/netsuite/v1/json/SiteCategory.json
new file mode 100644
index 000000000..6894c5dc3
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/SiteCategory.json
@@ -0,0 +1,127 @@
+{
+ "properties": {
+ "categoryListLayout": {
+ "type": [
+ "varies"
+ ]
+ },
+ "correlatedItemsListLayout": {
+ "type": [
+ "varies"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "excludeFromSitemap": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isOnline": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "itemId": {
+ "type": [
+ "string"
+ ]
+ },
+ "itemListLayout": {
+ "type": [
+ "varies"
+ ]
+ },
+ "metaTagHtml": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "pageTitle": {
+ "type": [
+ "string"
+ ]
+ },
+ "parentCategory": {
+ "type": [
+ "varies"
+ ]
+ },
+ "presentationItemList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "relatedItemsListLayout": {
+ "type": [
+ "varies"
+ ]
+ },
+ "searchKeywords": {
+ "type": [
+ "string"
+ ]
+ },
+ "sitemapPriority": {
+ "type": [
+ "varies"
+ ]
+ },
+ "storeDetailedDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "storeDisplayImage": {
+ "type": [
+ "varies"
+ ]
+ },
+ "storeDisplayThumbnail": {
+ "type": [
+ "varies"
+ ]
+ },
+ "translationsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "urlComponent": {
+ "type": [
+ "string"
+ ]
+ },
+ "website": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/Solution.json b/_data/taps/schemas/netsuite/v1/json/Solution.json
new file mode 100644
index 000000000..184c7ae62
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/Solution.json
@@ -0,0 +1,91 @@
+{
+ "properties": {
+ "assigned": {
+ "type": [
+ "varies"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "displayOnline": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "longDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "solutionCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "solutionsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "status": {
+ "type": [
+ "varies"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "topicsList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/Subsidiary.json b/_data/taps/schemas/netsuite/v1/json/Subsidiary.json
new file mode 100644
index 000000000..5aa2bac42
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/Subsidiary.json
@@ -0,0 +1,239 @@
+{
+ "properties": {
+ "accountingBookDetailList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "addrLanguage": {
+ "type": [
+ "string"
+ ]
+ },
+ "allowPayroll": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "checkLayout": {
+ "type": [
+ "varies"
+ ]
+ },
+ "classTranslationList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "consol": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "varies"
+ ]
+ },
+ "currency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "edition": {
+ "type": [
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "federalIdNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "fiscalCalendar": {
+ "type": [
+ "varies"
+ ]
+ },
+ "inboundEmail": {
+ "type": [
+ "string"
+ ]
+ },
+ "interCoAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isElimination": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "legalName": {
+ "type": [
+ "string"
+ ]
+ },
+ "logo": {
+ "type": [
+ "varies"
+ ]
+ },
+ "mainAddress": {
+ "type": [
+ "varies"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nexusList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nonConsol": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "pageLogo": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "purchaseOrderAmount": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "purchaseOrderQuantity": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "purchaseOrderQuantityDiff": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "receiptAmount": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "receiptQuantity": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "receiptQuantityDiff": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "returnAddress": {
+ "type": [
+ "varies"
+ ]
+ },
+ "shippingAddress": {
+ "type": [
+ "varies"
+ ]
+ },
+ "showSubsidiaryName": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "ssnOrTin": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "state1TaxNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "taxFiscalCalendar": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxRegistrationList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "tranPrefix": {
+ "type": [
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/SupportCase.json b/_data/taps/schemas/netsuite/v1/json/SupportCase.json
new file mode 100644
index 000000000..1ce0d0193
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/SupportCase.json
@@ -0,0 +1,228 @@
+{
+ "properties": {
+ "assigned": {
+ "type": [
+ "varies"
+ ]
+ },
+ "caseNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "category": {
+ "type": [
+ "varies"
+ ]
+ },
+ "company": {
+ "type": [
+ "varies"
+ ]
+ },
+ "contact": {
+ "type": [
+ "varies"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "emailEmployeesList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "emailForm": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "escalateToList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "escalationMessage": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "helpDesk": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "inboundEmail": {
+ "type": [
+ "string"
+ ]
+ },
+ "incomingMessage": {
+ "type": [
+ "string"
+ ]
+ },
+ "insertSolution": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalOnly": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "issue": {
+ "type": [
+ "varies"
+ ]
+ },
+ "item": {
+ "type": [
+ "varies"
+ ]
+ },
+ "lastMessageDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastReopenedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "module": {
+ "type": [
+ "varies"
+ ]
+ },
+ "newSolutionFromMsg": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "origin": {
+ "type": [
+ "varies"
+ ]
+ },
+ "outgoingMessage": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "priority": {
+ "type": [
+ "varies"
+ ]
+ },
+ "product": {
+ "type": [
+ "varies"
+ ]
+ },
+ "profile": {
+ "type": [
+ "varies"
+ ]
+ },
+ "searchSolution": {
+ "type": [
+ "string"
+ ]
+ },
+ "serialNumber": {
+ "type": [
+ "varies"
+ ]
+ },
+ "solutionsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeItemList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/Task.json b/_data/taps/schemas/netsuite/v1/json/Task.json
new file mode 100644
index 000000000..726fe40cd
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/Task.json
@@ -0,0 +1,189 @@
+{
+ "properties": {
+ "accessLevel": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "actualTime": {
+ "type": [
+ "varies"
+ ]
+ },
+ "assigned": {
+ "type": [
+ "varies"
+ ]
+ },
+ "company": {
+ "type": [
+ "varies"
+ ]
+ },
+ "completedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "contact": {
+ "type": [
+ "varies"
+ ]
+ },
+ "contactList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "dueDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "estimatedTime": {
+ "type": [
+ "varies"
+ ]
+ },
+ "estimatedTimeOverride": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "milestone": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "owner": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "percentComplete": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "percentTimeComplete": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "priority": {
+ "type": [
+ "varies"
+ ]
+ },
+ "reminderMinutes": {
+ "type": [
+ "varies"
+ ]
+ },
+ "reminderType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "sendEmail": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "varies"
+ ]
+ },
+ "supportCase": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeItemList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeRemaining": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timedEvent": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/TaxGroup.json b/_data/taps/schemas/netsuite/v1/json/TaxGroup.json
new file mode 100644
index 000000000..ddce41e4b
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/TaxGroup.json
@@ -0,0 +1,119 @@
+{
+ "properties": {
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "county": {
+ "type": [
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "includeChildren": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isDefault": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "itemId": {
+ "type": [
+ "string"
+ ]
+ },
+ "nexusCountry": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "piggyback": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "rate": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "subsidiaryList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxItemList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxitem1": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxitem2": {
+ "type": [
+ "varies"
+ ]
+ },
+ "unitprice1": {
+ "type": [
+ "string"
+ ]
+ },
+ "unitprice2": {
+ "type": [
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/TaxType.json b/_data/taps/schemas/netsuite/v1/json/TaxType.json
new file mode 100644
index 000000000..772b653b6
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/TaxType.json
@@ -0,0 +1,74 @@
+{
+ "properties": {
+ "country": {
+ "type": [
+ "varies"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "doesNotAddToTotal": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nexusAccountsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nexusesTaxList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "postToItemCost": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "reverseCharge": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "taxInNetAmount": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/Term.json b/_data/taps/schemas/netsuite/v1/json/Term.json
new file mode 100644
index 000000000..dfe33e410
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/Term.json
@@ -0,0 +1,84 @@
+{
+ "properties": {
+ "dateDriven": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "dayDiscountExpires": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "dayOfMonthNetDue": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "daysUntilExpiry": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "daysUntilNetDue": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "discountPercent": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "discountPercentDateDriven": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "dueNextMonthIfWithinDays": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "preferred": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/TimeBill.json b/_data/taps/schemas/netsuite/v1/json/TimeBill.json
new file mode 100644
index 000000000..95f391f90
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/TimeBill.json
@@ -0,0 +1,174 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "approvalStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "caseTaskEvent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customer": {
+ "type": [
+ "varies"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "employee": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "hours": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isBillable": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "item": {
+ "type": [
+ "varies"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "overrideRate": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "paidExternally": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "payrollItem": {
+ "type": [
+ "varies"
+ ]
+ },
+ "price": {
+ "type": [
+ "varies"
+ ]
+ },
+ "rate": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "rejectionNote": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "supervisorApproval": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "temporaryLocalJurisdiction": {
+ "type": [
+ "varies"
+ ]
+ },
+ "temporaryStateJurisdiction": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeSheet": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "tranDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "workplace": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/TimeEntry.json b/_data/taps/schemas/netsuite/v1/json/TimeEntry.json
new file mode 100644
index 000000000..aec5bbe8e
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/TimeEntry.json
@@ -0,0 +1,128 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "approvalStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billingClass": {
+ "type": [
+ "string"
+ ]
+ },
+ "caseTaskEvent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customer": {
+ "type": [
+ "varies"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "hours": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isBillable": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "item": {
+ "type": [
+ "varies"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "overrideRate": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "paidExternally": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "payrollItem": {
+ "type": [
+ "varies"
+ ]
+ },
+ "price": {
+ "type": [
+ "varies"
+ ]
+ },
+ "rate": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeType": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/TimeSheet.json b/_data/taps/schemas/netsuite/v1/json/TimeSheet.json
new file mode 100644
index 000000000..601688d20
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/TimeSheet.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "employee": {
+ "type": [
+ "varies"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeGridList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "totalHours": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/Transaction.json b/_data/taps/schemas/netsuite/v1/json/Transaction.json
new file mode 100644
index 000000000..5dbea1499
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/Transaction.json
@@ -0,0 +1,2095 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "accessibilityTypeFedEx": {
+ "type": [
+ "varies"
+ ]
+ },
+ "account": {
+ "type": [
+ "varies"
+ ]
+ },
+ "accountingApproval": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "accountingBook": {
+ "type": [
+ "varies"
+ ]
+ },
+ "accountingBookDetailList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "actualShipDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "address": {
+ "type": [
+ "string"
+ ]
+ },
+ "adjLocation": {
+ "type": [
+ "varies"
+ ]
+ },
+ "advance": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "altHandlingCost": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "altSalesTotal": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "altShippingCost": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "amountPaid": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "amountRemaining": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "ancillaryEndorsementFedEx": {
+ "type": [
+ "varies"
+ ]
+ },
+ "apAcct": {
+ "type": [
+ "varies"
+ ]
+ },
+ "applied": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "applyList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "approvalStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "approved": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "arAcct": {
+ "type": [
+ "varies"
+ ]
+ },
+ "assemblyItem": {
+ "type": [
+ "varies"
+ ]
+ },
+ "authCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "autoApply": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "autoCalculateLag": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "availableVendorCredit": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "b13AFilingOptionFedEx": {
+ "type": [
+ "varies"
+ ]
+ },
+ "b13AStatementDataFedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "backupEmailAddressFedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "backupEmailAddressUps": {
+ "type": [
+ "string"
+ ]
+ },
+ "balance": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "billAddressList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billOfMaterials": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billOfMaterialsRevision": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billPay": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "billingAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billingAddress": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billingSchedule": {
+ "type": [
+ "varies"
+ ]
+ },
+ "binNumbers": {
+ "type": [
+ "string"
+ ]
+ },
+ "blanketEndDateUps": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "blanketStartDateUps": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "bookingConfirmationNumFedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "buildable": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "built": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "canHaveStackable": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "carrierIdUps": {
+ "type": [
+ "string"
+ ]
+ },
+ "cashBackList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "ccApproved": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "ccAvsStreetMatch": {
+ "type": [
+ "varies"
+ ]
+ },
+ "ccAvsZipMatch": {
+ "type": [
+ "varies"
+ ]
+ },
+ "ccExpireDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "ccIsPurchaseCardBin": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "ccName": {
+ "type": [
+ "string"
+ ]
+ },
+ "ccNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "ccProcessAsPurchaseCard": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "ccSecurityCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "ccSecurityCodeMatch": {
+ "type": [
+ "varies"
+ ]
+ },
+ "ccStreet": {
+ "type": [
+ "string"
+ ]
+ },
+ "ccZipCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "chargeIt": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "checkNum": {
+ "type": [
+ "string"
+ ]
+ },
+ "companyContributionList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "companyTaxList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "complete": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "completedQuantity": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "componentList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "contribPct": {
+ "type": [
+ "string"
+ ]
+ },
+ "costComponentList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "createdFrom": {
+ "type": [
+ "varies"
+ ]
+ },
+ "createdFromShipGroup": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "creditCard": {
+ "type": [
+ "varies"
+ ]
+ },
+ "creditCardProcessor": {
+ "type": [
+ "varies"
+ ]
+ },
+ "creditLimit": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "creditList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "currency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "currencyName": {
+ "type": [
+ "string"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customer": {
+ "type": [
+ "varies"
+ ]
+ },
+ "debitCardIssueNo": {
+ "type": [
+ "string"
+ ]
+ },
+ "deductionList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "deferredRevenue": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "depDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "deposit": {
+ "type": [
+ "varies"
+ ]
+ },
+ "depositList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "discountAmount": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "discountDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "discountItem": {
+ "type": [
+ "varies"
+ ]
+ },
+ "discountRate": {
+ "type": [
+ "string"
+ ]
+ },
+ "discountTotal": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "drAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "dueDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "earningList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "eccNumberUps": {
+ "type": [
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "employee": {
+ "type": [
+ "varies"
+ ]
+ },
+ "employeeTaxList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "endOperation": {
+ "type": [
+ "varies"
+ ]
+ },
+ "entity": {
+ "type": [
+ "varies"
+ ]
+ },
+ "entityStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "entityTaxRegNum": {
+ "type": [
+ "varies"
+ ]
+ },
+ "entryNumberUps": {
+ "type": [
+ "string"
+ ]
+ },
+ "estGrossProfit": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "estGrossProfitPercent": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "estimatedTotalValue": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "exchangeRate": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "excludeCommission": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "expCostDiscAmount": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "expCostDiscPrint": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "expCostDiscRate": {
+ "type": [
+ "string"
+ ]
+ },
+ "expCostDiscTax1Amt": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "expCostDiscTaxable": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "expCostDiscount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "expCostDiscprint": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "expCostList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "expCostTaxCode": {
+ "type": [
+ "varies"
+ ]
+ },
+ "expCostTaxRate1": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "expCostTaxRate2": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "expandAssembly": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "expectedCloseDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "expenseList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "expirationDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "exportTypeUps": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "firmed": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "fob": {
+ "type": [
+ "string"
+ ]
+ },
+ "forecastType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "fxAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "generateIntegratedShipperLabel": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "getAuth": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "giftCert": {
+ "type": [
+ "varies"
+ ]
+ },
+ "giftCertApplied": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "giftCertAvailable": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "giftCertRedemptionList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "giftCertTotal": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "halAddr1FedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "halAddr2FedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "halAddr3FedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "halCityFedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "halCountryFedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "halPhoneFedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "halStateFedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "halZipFedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "handlingCost": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "handlingTax1Rate": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "handlingTax2Rate": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "handlingTaxCode": {
+ "type": [
+ "varies"
+ ]
+ },
+ "hazmatTypeFedEx": {
+ "type": [
+ "varies"
+ ]
+ },
+ "holdAtLocationFedEx": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "homeDeliveryDateFedEx": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "homeDeliveryTypeFedEx": {
+ "type": [
+ "varies"
+ ]
+ },
+ "ignoreAvs": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "inbondCodeUps": {
+ "type": [
+ "string"
+ ]
+ },
+ "inboundShipment": {
+ "type": [
+ "varies"
+ ]
+ },
+ "includeInForecast": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "incoterm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "insideDeliveryFedEx": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "insidePickupFedEx": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "intercoStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "intercoTransaction": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "intlExemptionNumFedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "inventoryDetail": {
+ "type": [
+ "varies"
+ ]
+ },
+ "inventoryList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "inventoryValue": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "isBackflush": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isBookSpecific": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isCargoAircraftOnlyFedEx": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isMultiShipTo": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isRecurringPayment": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isRoutedExportTransactionUps": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isTaxable": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isWip": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "item": {
+ "type": [
+ "varies"
+ ]
+ },
+ "itemCostDiscAmount": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "itemCostDiscPrint": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "itemCostDiscRate": {
+ "type": [
+ "string"
+ ]
+ },
+ "itemCostDiscTax1Amt": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "itemCostDiscTaxable": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "itemCostDiscount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "itemCostList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "itemCostTaxCode": {
+ "type": [
+ "varies"
+ ]
+ },
+ "itemCostTaxRate1": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "itemCostTaxRate2": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "itemFulfillment": {
+ "type": [
+ "varies"
+ ]
+ },
+ "itemList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "job": {
+ "type": [
+ "varies"
+ ]
+ },
+ "landedCostMethod": {
+ "type": [
+ "varies"
+ ]
+ },
+ "landedCostPerLine": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "landedCostsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "leadSource": {
+ "type": [
+ "varies"
+ ]
+ },
+ "licenseDateUps": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "licenseExceptionUps": {
+ "type": [
+ "varies"
+ ]
+ },
+ "licenseNumberUps": {
+ "type": [
+ "string"
+ ]
+ },
+ "lineList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "linkedTrackingNumbers": {
+ "type": [
+ "string"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "manufacturingRouting": {
+ "type": [
+ "varies"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "messageSel": {
+ "type": [
+ "varies"
+ ]
+ },
+ "methodOfTransportUps": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nextApprover": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nextBill": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "nexus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "onCreditHold": {
+ "type": [
+ "string"
+ ]
+ },
+ "oneTime": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "operationList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "opportunity": {
+ "type": [
+ "varies"
+ ]
+ },
+ "options": {
+ "type": [
+ "varies"
+ ]
+ },
+ "orderQuantity": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "orderStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "otherList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "otherRefNum": {
+ "type": [
+ "string"
+ ]
+ },
+ "packageFedExList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "packageList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "packageUpsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "packageUspsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "packedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "parentExpenseAlloc": {
+ "type": [
+ "varies"
+ ]
+ },
+ "partiesToTransactionUps": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "partner": {
+ "type": [
+ "varies"
+ ]
+ },
+ "partnersList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "payPalStatus": {
+ "type": [
+ "string"
+ ]
+ },
+ "payPalTranId": {
+ "type": [
+ "string"
+ ]
+ },
+ "payment": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "paymentEventDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "paymentEventHoldReason": {
+ "type": [
+ "varies"
+ ]
+ },
+ "paymentEventResult": {
+ "type": [
+ "varies"
+ ]
+ },
+ "paymentEventType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "paymentEventUpdatedBy": {
+ "type": [
+ "string"
+ ]
+ },
+ "paymentHold": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "paymentList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "paymentMethod": {
+ "type": [
+ "varies"
+ ]
+ },
+ "paypalAuthId": {
+ "type": [
+ "string"
+ ]
+ },
+ "paypalProcess": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "pending": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "pickedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "pnRefNum": {
+ "type": [
+ "string"
+ ]
+ },
+ "postingPeriod": {
+ "type": [
+ "varies"
+ ]
+ },
+ "printVoucher": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "probability": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "promoCode": {
+ "type": [
+ "varies"
+ ]
+ },
+ "promotionsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "purchaseContract": {
+ "type": [
+ "varies"
+ ]
+ },
+ "purchaseOrderList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "recipientTaxIdUps": {
+ "type": [
+ "string"
+ ]
+ },
+ "recognizedRevenue": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "recurAnnually": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "recurMonthly": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "recurQuarterly": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "recurWeekly": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "recurringBill": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "refundCheck": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "requestedBy": {
+ "type": [
+ "varies"
+ ]
+ },
+ "revCommitStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "revRecEndDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "revRecOnRevCommitment": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "revRecSchedule": {
+ "type": [
+ "varies"
+ ]
+ },
+ "revRecStartDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "revenueStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "reversalDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "reversalDefer": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "reversalEntry": {
+ "type": [
+ "string"
+ ]
+ },
+ "revision": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salesEffectiveDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "salesGroup": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salesOrder": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salesRep": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salesTeamList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "saturdayDeliveryFedEx": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "saturdayDeliveryUps": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "saturdayPickupFedex": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "saveOnAuthDecline": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "schedulingMethod": {
+ "type": [
+ "varies"
+ ]
+ },
+ "scrapQuantity": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "sendBackupEmailFedEx": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "sendBackupEmailUps": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "sendShipNotifyEmailFedEx": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "sendShipNotifyEmailUps": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "serialNumbers": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipAddressList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "shipComplete": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "shipDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "shipDateFedEx": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "shipGroupList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "shipIsResidential": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "shipMethod": {
+ "type": [
+ "varies"
+ ]
+ },
+ "shipNotifyEmailAddress2Ups": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipNotifyEmailAddressFedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipNotifyEmailAddressUps": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipNotifyEmailMessageUps": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "shipTo": {
+ "type": [
+ "varies"
+ ]
+ },
+ "shipmentWeightFedEx": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "shipmentWeightUps": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "shippedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "shippingAddress": {
+ "type": [
+ "varies"
+ ]
+ },
+ "shippingCost": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "shippingTax1Rate": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "shippingTax2Rate": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "shippingTaxCode": {
+ "type": [
+ "varies"
+ ]
+ },
+ "shopperIpAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "signatureHomeDeliveryFedEx": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "softDescriptor": {
+ "type": [
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "sourceTransactionId": {
+ "type": [
+ "string"
+ ]
+ },
+ "sourceTransactionLine": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "specialOrder": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "startOperation": {
+ "type": [
+ "varies"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "subTotal": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiaryTaxRegNum": {
+ "type": [
+ "varies"
+ ]
+ },
+ "supervisorApproval": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "syncPartnerTeams": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "syncSalesTeams": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "tax1Amt": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "tax2Amt": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "tax2Total": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "taxDetailsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxDetailsOverride": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "taxItem": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxRate": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "taxRegOverride": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "taxTotal": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "terms": {
+ "type": [
+ "varies"
+ ]
+ },
+ "termsFreightChargeFedEx": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "termsInsuranceChargeFedEx": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "termsOfSaleFedEx": {
+ "type": [
+ "varies"
+ ]
+ },
+ "thirdPartyAcctFedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "thirdPartyAcctUps": {
+ "type": [
+ "string"
+ ]
+ },
+ "thirdPartyCountryFedEx": {
+ "type": [
+ "varies"
+ ]
+ },
+ "thirdPartyCountryUps": {
+ "type": [
+ "varies"
+ ]
+ },
+ "thirdPartyTypeFedEx": {
+ "type": [
+ "varies"
+ ]
+ },
+ "thirdPartyTypeUps": {
+ "type": [
+ "varies"
+ ]
+ },
+ "thirdPartyZipcodeUps": {
+ "type": [
+ "string"
+ ]
+ },
+ "threeDStatusCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "timeDiscAmount": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "timeDiscPrint": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "timeDiscRate": {
+ "type": [
+ "string"
+ ]
+ },
+ "timeDiscTax1Amt": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "timeDiscTaxable": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "timeDiscount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeTaxCode": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeTaxRate1": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "timeTaxRate2": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "toAch": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "toBeEmailed": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "toBeFaxed": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "toBePrinted": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "toPrint2": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "toSubsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "total": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "totalCostEstimate": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "trackingNumbers": {
+ "type": [
+ "string"
+ ]
+ },
+ "tranDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "tranId": {
+ "type": [
+ "string"
+ ]
+ },
+ "tranIsVsoeBundle": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "transactionNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "transferLocation": {
+ "type": [
+ "varies"
+ ]
+ },
+ "unapplied": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "undepFunds": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "unitCost": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "units": {
+ "type": [
+ "varies"
+ ]
+ },
+ "unitsType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "useItemCostAsTransferCost": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "useMultiCurrency": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "userTaxTotal": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "userTotal": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "validFrom": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "vatRegNum": {
+ "type": [
+ "string"
+ ]
+ },
+ "visibleToCustomer": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "voidJournal": {
+ "type": [
+ "varies"
+ ]
+ },
+ "vsoeAutoCalc": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/UnitsType.json b/_data/taps/schemas/netsuite/v1/json/UnitsType.json
new file mode 100644
index 000000000..7e4b7e4c7
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/UnitsType.json
@@ -0,0 +1,35 @@
+{
+ "properties": {
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "uomList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/Usage.json b/_data/taps/schemas/netsuite/v1/json/Usage.json
new file mode 100644
index 000000000..538ac5555
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/Usage.json
@@ -0,0 +1,65 @@
+{
+ "properties": {
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customer": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "item": {
+ "type": [
+ "varies"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subscriptionPlan": {
+ "type": [
+ "varies"
+ ]
+ },
+ "usageDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "usageQuantity": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "usageSubscription": {
+ "type": [
+ "varies"
+ ]
+ },
+ "usageSubscriptionLine": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/Vendor.json b/_data/taps/schemas/netsuite/v1/json/Vendor.json
new file mode 100644
index 000000000..09b588ecd
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/Vendor.json
@@ -0,0 +1,430 @@
+{
+ "properties": {
+ "accountNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "addressbookList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "altEmail": {
+ "type": [
+ "string"
+ ]
+ },
+ "altName": {
+ "type": [
+ "string"
+ ]
+ },
+ "altPhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "balance": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "balancePrimary": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "bcn": {
+ "type": [
+ "string"
+ ]
+ },
+ "billPay": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "category": {
+ "type": [
+ "varies"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "companyName": {
+ "type": [
+ "string"
+ ]
+ },
+ "creditLimit": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "currencyList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "dateCreated": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "defaultAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "eligibleForCommission": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "emailPreference": {
+ "type": [
+ "varies"
+ ]
+ },
+ "emailTransactions": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "entityId": {
+ "type": [
+ "string"
+ ]
+ },
+ "expenseAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "faxTransactions": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "firstName": {
+ "type": [
+ "string"
+ ]
+ },
+ "giveAccess": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "globalSubscriptionStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "homePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "image": {
+ "type": [
+ "varies"
+ ]
+ },
+ "incoterm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "is1099Eligible": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isAccountant": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isJobResourceVend": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isPerson": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "laborCost": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastName": {
+ "type": [
+ "string"
+ ]
+ },
+ "legalName": {
+ "type": [
+ "string"
+ ]
+ },
+ "middleName": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobilePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "openingBalance": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "openingBalanceAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "openingBalanceDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "password": {
+ "type": [
+ "string"
+ ]
+ },
+ "password2": {
+ "type": [
+ "string"
+ ]
+ },
+ "payablesAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "phoneticName": {
+ "type": [
+ "string"
+ ]
+ },
+ "pricingScheduleList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "printOnCheckAs": {
+ "type": [
+ "string"
+ ]
+ },
+ "printTransactions": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "purchaseOrderAmount": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "purchaseOrderQuantity": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "purchaseOrderQuantityDiff": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "receiptAmount": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "receiptQuantity": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "receiptQuantityDiff": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "representingSubsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "requirePwdChange": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "rolesList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salutation": {
+ "type": [
+ "string"
+ ]
+ },
+ "sendEmail": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "subscriptionsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxIdNum": {
+ "type": [
+ "string"
+ ]
+ },
+ "taxItem": {
+ "type": [
+ "varies"
+ ]
+ },
+ "terms": {
+ "type": [
+ "varies"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "unbilledOrders": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "unbilledOrdersPrimary": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ },
+ "vatRegNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "workCalendar": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/VendorCategory.json b/_data/taps/schemas/netsuite/v1/json/VendorCategory.json
new file mode 100644
index 000000000..e8589101a
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/VendorCategory.json
@@ -0,0 +1,36 @@
+{
+ "properties": {
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isTaxAgency": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/WinLossReason.json b/_data/taps/schemas/netsuite/v1/json/WinLossReason.json
new file mode 100644
index 000000000..f9f263056
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/WinLossReason.json
@@ -0,0 +1,30 @@
+{
+ "properties": {
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/campaign.json b/_data/taps/schemas/netsuite/v1/json/campaign.json
new file mode 100644
index 000000000..f64a00b9d
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/campaign.json
@@ -0,0 +1,207 @@
+{
+ "properties": {
+ "audience": {
+ "type": [
+ "varies"
+ ]
+ },
+ "baseCost": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "campaignDirectMailList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "campaignEmailList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "campaignEventList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "campaignId": {
+ "type": [
+ "string"
+ ]
+ },
+ "category": {
+ "type": [
+ "varies"
+ ]
+ },
+ "convCostPerCustomer": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "conversions": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "cost": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "costPerCustomer": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "eventResponseList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "expectedRevenue": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "family": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "itemList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "keyword": {
+ "type": [
+ "string"
+ ]
+ },
+ "leadsGenerated": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "local": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "offer": {
+ "type": [
+ "varies"
+ ]
+ },
+ "owner": {
+ "type": [
+ "varies"
+ ]
+ },
+ "profit": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "promotionCode": {
+ "type": [
+ "varies"
+ ]
+ },
+ "roi": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "searchEngine": {
+ "type": [
+ "varies"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "totalRevenue": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "uniqueVisitors": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ },
+ "vertical": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/charge.json b/_data/taps/schemas/netsuite/v1/json/charge.json
new file mode 100644
index 000000000..2f3a98c31
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/charge.json
@@ -0,0 +1,161 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "amount": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "billTo": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billingAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billingItem": {
+ "type": [
+ "varies"
+ ]
+ },
+ "chargeDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "chargeType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoice": {
+ "type": [
+ "varies"
+ ]
+ },
+ "invoiceLine": {
+ "type": [
+ "varies"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "projectTask": {
+ "type": [
+ "varies"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "rate": {
+ "type": [
+ "string"
+ ]
+ },
+ "rule": {
+ "type": [
+ "varies"
+ ]
+ },
+ "runId": {
+ "type": [
+ "string"
+ ]
+ },
+ "salesOrder": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salesOrderLine": {
+ "type": [
+ "varies"
+ ]
+ },
+ "stage": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subscriptionLine": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeRecord": {
+ "type": [
+ "varies"
+ ]
+ },
+ "transaction": {
+ "type": [
+ "varies"
+ ]
+ },
+ "transactionLine": {
+ "type": [
+ "varies"
+ ]
+ },
+ "use": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/contact.json b/_data/taps/schemas/netsuite/v1/json/contact.json
new file mode 100644
index 000000000..64bb5c7a2
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/contact.json
@@ -0,0 +1,197 @@
+{
+ "properties": {
+ "addressbookList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "altEmail": {
+ "type": [
+ "string"
+ ]
+ },
+ "assistant": {
+ "type": [
+ "varies"
+ ]
+ },
+ "assistantPhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "billPay": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "categoryList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "varies"
+ ]
+ },
+ "contactSource": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "dateCreated": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "defaultAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "entityId": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "firstName": {
+ "type": [
+ "string"
+ ]
+ },
+ "globalSubscriptionStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "homePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "image": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isPrivate": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastName": {
+ "type": [
+ "string"
+ ]
+ },
+ "middleName": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobilePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "officePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "phoneticName": {
+ "type": [
+ "string"
+ ]
+ },
+ "salutation": {
+ "type": [
+ "string"
+ ]
+ },
+ "subscriptionsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "supervisor": {
+ "type": [
+ "varies"
+ ]
+ },
+ "supervisorPhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/custom_record.json b/_data/taps/schemas/netsuite/v1/json/custom_record.json
new file mode 100644
index 000000000..b64d894c2
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/custom_record.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/employee.json b/_data/taps/schemas/netsuite/v1/json/employee.json
new file mode 100644
index 000000000..ec331f31d
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/employee.json
@@ -0,0 +1,539 @@
+{
+ "properties": {
+ "IPAddressRule": {
+ "type": [
+ "string"
+ ]
+ },
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "accountNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "accruedTimeList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "addressbookList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "adpId": {
+ "type": [
+ "string"
+ ]
+ },
+ "altName": {
+ "type": [
+ "string"
+ ]
+ },
+ "approvalLimit": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "approver": {
+ "type": [
+ "varies"
+ ]
+ },
+ "baseWage": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "baseWageType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billPay": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "billingClass": {
+ "type": [
+ "varies"
+ ]
+ },
+ "birthDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "commissionPaymentPreference": {
+ "type": [
+ "varies"
+ ]
+ },
+ "companyContributionList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "compensationCurrency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "concurrentWebServicesUser": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "dateCreated": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deductionList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "defaultAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "directDeposit": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "directDepositList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "earningList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "eligibleForCommission": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "emergencyContactList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "employeeStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "employeeType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "entityId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ethnicity": {
+ "type": [
+ "varies"
+ ]
+ },
+ "expenseLimit": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "firstName": {
+ "type": [
+ "string"
+ ]
+ },
+ "gender": {
+ "type": [
+ "varies"
+ ]
+ },
+ "giveAccess": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "globalSubscriptionStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "hasOfflineAccess": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "hcmPositionList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "hireDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "homePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "hrEducationList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "image": {
+ "type": [
+ "varies"
+ ]
+ },
+ "inheritIPRules": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "initials": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isJobResource": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isSalesRep": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isSupportRep": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "job": {
+ "type": [
+ "varies"
+ ]
+ },
+ "jobDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "laborCost": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastName": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastPaidDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastReviewDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "maritalStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "middleName": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobilePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "nextReviewDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "officePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "password": {
+ "type": [
+ "string"
+ ]
+ },
+ "password2": {
+ "type": [
+ "string"
+ ]
+ },
+ "payFrequency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "phoneticName": {
+ "type": [
+ "string"
+ ]
+ },
+ "purchaseOrderApprovalLimit": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "purchaseOrderApprover": {
+ "type": [
+ "varies"
+ ]
+ },
+ "purchaseOrderLimit": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "ratesList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "releaseDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "requirePwdChange": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "rolesList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salesRole": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salutation": {
+ "type": [
+ "string"
+ ]
+ },
+ "sendEmail": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "socialSecurityNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "startDateTimeOffCalc": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "subscriptionsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "supervisor": {
+ "type": [
+ "varies"
+ ]
+ },
+ "template": {
+ "type": [
+ "varies"
+ ]
+ },
+ "terminationCategory": {
+ "type": [
+ "varies"
+ ]
+ },
+ "terminationDetails": {
+ "type": [
+ "string"
+ ]
+ },
+ "terminationReason": {
+ "type": [
+ "varies"
+ ]
+ },
+ "terminationRegretted": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeApprover": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeOffPlan": {
+ "type": [
+ "varies"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "usePerquest": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "useTimeData": {
+ "type": [
+ "varies"
+ ]
+ },
+ "workAssignment": {
+ "type": [
+ "varies"
+ ]
+ },
+ "workCalendar": {
+ "type": [
+ "varies"
+ ]
+ },
+ "workplace": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/file.json b/_data/taps/schemas/netsuite/v1/json/file.json
new file mode 100644
index 000000000..4c1cff5ed
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/file.json
@@ -0,0 +1,170 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "string"
+ ]
+ },
+ "altTagCaption": {
+ "type": [
+ "string"
+ ]
+ },
+ "attachFrom": {
+ "type": [
+ "varies"
+ ]
+ },
+ "bundleable": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "caption": {
+ "type": [
+ "string"
+ ]
+ },
+ "content": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "department": {
+ "type": [
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "encoding": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "featuredDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "fileSize": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "fileType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "folder": {
+ "type": [
+ "varies"
+ ]
+ },
+ "hideInBundle": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isOnline": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isPrivate": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "mediaFile": {
+ "type": [
+ "varies"
+ ]
+ },
+ "mediaTypeName": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "owner": {
+ "type": [
+ "varies"
+ ]
+ },
+ "siteCategoryList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "siteDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "storeDisplayThumbnail": {
+ "type": [
+ "varies"
+ ]
+ },
+ "textFileEncoding": {
+ "type": [
+ "varies"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ },
+ "urlComponent": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/item.json b/_data/taps/schemas/netsuite/v1/json/item.json
new file mode 100644
index 000000000..62ea8db31
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/item.json
@@ -0,0 +1,1474 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "account": {
+ "type": [
+ "varies"
+ ]
+ },
+ "accountingBookDetailList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "alternateDemandSourceItem": {
+ "type": [
+ "varies"
+ ]
+ },
+ "amortizationPeriod": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "amortizationTemplate": {
+ "type": [
+ "varies"
+ ]
+ },
+ "assetAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "authCodesList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "autoLeadTime": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "autoPreferredStockLevel": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "autoReorderPoint": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "availableToPartners": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "averageCost": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "backwardConsumptionDays": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "billExchRateVarianceAcct": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billOfMaterialsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billPriceVarianceAcct": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billQtyVarianceAcct": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billingRatesMatrix": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billingSchedule": {
+ "type": [
+ "varies"
+ ]
+ },
+ "binNumberList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "buildEntireAssembly": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "buildTime": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "cogsAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "contingentRevenueHandling": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "copyDescription": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "cost": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "costCategory": {
+ "type": [
+ "varies"
+ ]
+ },
+ "costEstimate": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "costEstimateType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "costEstimateUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "costUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "costingMethod": {
+ "type": [
+ "varies"
+ ]
+ },
+ "costingMethodDisplay": {
+ "type": [
+ "string"
+ ]
+ },
+ "countryOfManufacture": {
+ "type": [
+ "varies"
+ ]
+ },
+ "createJob": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "createRevenuePlansOn": {
+ "type": [
+ "varies"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "string"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "dateConvertedToInv": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "daysBeforeExpiration": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "defaultItemShipMethod": {
+ "type": [
+ "varies"
+ ]
+ },
+ "defaultReturnCost": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "defaultRevision": {
+ "type": [
+ "string"
+ ]
+ },
+ "deferRevRec": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "deferralAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "deferredRevenueAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "demandModifier": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "demandSource": {
+ "type": [
+ "varies"
+ ]
+ },
+ "demandTimeFence": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "directRevenuePosting": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "string"
+ ]
+ },
+ "distributionCategory": {
+ "type": [
+ "varies"
+ ]
+ },
+ "distributionNetwork": {
+ "type": [
+ "varies"
+ ]
+ },
+ "dontShowPrice": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "dropshipExpenseAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "effectiveBomControl": {
+ "type": [
+ "varies"
+ ]
+ },
+ "enforceMinQtyInternally": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "excludeFromSitemap": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "expenseAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "expirationDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "featuredDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "fixedLotSize": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "forwardConsumptionDays": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "fraudRisk": {
+ "type": [
+ "varies"
+ ]
+ },
+ "gainLossAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "generateAccruals": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "handlingCost": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "handlingCostUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "hazmatHazardClass": {
+ "type": [
+ "string"
+ ]
+ },
+ "hazmatId": {
+ "type": [
+ "string"
+ ]
+ },
+ "hazmatItemUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "hazmatItemUnitsQty": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "hazmatPackingGroup": {
+ "type": [
+ "varies"
+ ]
+ },
+ "hazmatShippingName": {
+ "type": [
+ "string"
+ ]
+ },
+ "immediateDownload": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "includeChildren": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "includeStartEndLines": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "incomeAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "intercoCogsAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "intercoDefRevAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "intercoExpenseAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "intercoIncomeAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "invtClassification": {
+ "type": [
+ "varies"
+ ]
+ },
+ "invtCountInterval": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "isDonationItem": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isDropShipItem": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isFulfillable": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isGcoCompliant": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isHazmatItem": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isOnline": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isPhantom": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isPreTax": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isSpecialOrderItem": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isSpecialWorkOrderItem": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isStorePickupAllowed": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isTaxable": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isVsoeBundle": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "issueProduct": {
+ "type": [
+ "varies"
+ ]
+ },
+ "itemCarrier": {
+ "type": [
+ "varies"
+ ]
+ },
+ "itemId": {
+ "type": [
+ "string"
+ ]
+ },
+ "itemNumberOptionsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "itemOptionsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "itemRevenueCategory": {
+ "type": [
+ "varies"
+ ]
+ },
+ "itemShipMethodList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "itemTaskTemplatesList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "itemVendorList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "lastInvtCountDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastPurchasePrice": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "leadTime": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "liabilityAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "locationsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "manufacturer": {
+ "type": [
+ "string"
+ ]
+ },
+ "manufacturerAddr1": {
+ "type": [
+ "string"
+ ]
+ },
+ "manufacturerCity": {
+ "type": [
+ "string"
+ ]
+ },
+ "manufacturerState": {
+ "type": [
+ "string"
+ ]
+ },
+ "manufacturerTariff": {
+ "type": [
+ "string"
+ ]
+ },
+ "manufacturerTaxId": {
+ "type": [
+ "string"
+ ]
+ },
+ "manufacturerZip": {
+ "type": [
+ "string"
+ ]
+ },
+ "manufactureraddr1": {
+ "type": [
+ "string"
+ ]
+ },
+ "manufacturingChargeItem": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "matchBillToReceipt": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "matrixItemNameTemplate": {
+ "type": [
+ "string"
+ ]
+ },
+ "matrixOptionList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "matrixType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "maxDonationAmount": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "memberList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "metaTagHtml": {
+ "type": [
+ "string"
+ ]
+ },
+ "minimumQuantity": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "minimumQuantityUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "mpn": {
+ "type": [
+ "string"
+ ]
+ },
+ "multManufactureAddr": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "nexTagCategory": {
+ "type": [
+ "string"
+ ]
+ },
+ "nextInvtCountDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "noPriceMessage": {
+ "type": [
+ "string"
+ ]
+ },
+ "nonPosting": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "numOfAllowedDownloads": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "numbersList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "offerSupport": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "onHandValueMli": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "onSpecial": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "originalItemSubtype": {
+ "type": [
+ "varies"
+ ]
+ },
+ "originalItemType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "outOfStockBehavior": {
+ "type": [
+ "varies"
+ ]
+ },
+ "outOfStockMessage": {
+ "type": [
+ "string"
+ ]
+ },
+ "overallQuantityPricingType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "overheadType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "pageTitle": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "paymentMethod": {
+ "type": [
+ "varies"
+ ]
+ },
+ "periodicLotSizeDays": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "periodicLotSizeType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "preferenceCriterion": {
+ "type": [
+ "varies"
+ ]
+ },
+ "preferredLocation": {
+ "type": [
+ "varies"
+ ]
+ },
+ "preferredStockLevel": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "preferredStockLevelDays": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "preferredStockLevelUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "presentationItemList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "pricesIncludeTax": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "pricingGroup": {
+ "type": [
+ "varies"
+ ]
+ },
+ "pricingMatrix": {
+ "type": [
+ "varies"
+ ]
+ },
+ "printItems": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "prodPriceVarianceAcct": {
+ "type": [
+ "varies"
+ ]
+ },
+ "prodQtyVarianceAcct": {
+ "type": [
+ "varies"
+ ]
+ },
+ "producer": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "productFeedList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "purchaseDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "purchaseOrderAmount": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "purchaseOrderQuantity": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "purchaseOrderQuantityDiff": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "purchasePriceVarianceAcct": {
+ "type": [
+ "varies"
+ ]
+ },
+ "purchaseTaxCode": {
+ "type": [
+ "varies"
+ ]
+ },
+ "purchaseUnit": {
+ "type": [
+ "varies"
+ ]
+ },
+ "quantityAvailable": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "quantityAvailableUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "quantityBackOrdered": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "quantityCommitted": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "quantityCommittedUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "quantityOnHand": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "quantityOnHandUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "quantityOnOrder": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "quantityOnOrderUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "quantityPricingSchedule": {
+ "type": [
+ "varies"
+ ]
+ },
+ "quantityReorderUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "rate": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "receiptAmount": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "receiptQuantity": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "receiptQuantityDiff": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "relatedItemsDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "reorderMultiple": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "reorderPoint": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "reorderPointUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "rescheduleInDays": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "rescheduleOutDays": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "residual": {
+ "type": [
+ "string"
+ ]
+ },
+ "revRecForecastRule": {
+ "type": [
+ "varies"
+ ]
+ },
+ "revRecSchedule": {
+ "type": [
+ "varies"
+ ]
+ },
+ "revReclassFXAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "revenueAllocationGroup": {
+ "type": [
+ "varies"
+ ]
+ },
+ "revenueRecognitionRule": {
+ "type": [
+ "varies"
+ ]
+ },
+ "roundUpAsComponent": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "safetyStockLevel": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "safetyStockLevelDays": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "safetyStockLevelUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "saleUnit": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salesDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "salesTaxCode": {
+ "type": [
+ "varies"
+ ]
+ },
+ "scheduleBCode": {
+ "type": [
+ "varies"
+ ]
+ },
+ "scheduleBNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "scheduleBQuantity": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "scrapAcct": {
+ "type": [
+ "varies"
+ ]
+ },
+ "searchKeywords": {
+ "type": [
+ "string"
+ ]
+ },
+ "seasonalDemand": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "serialNumbers": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipIndividually": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "shipPackage": {
+ "type": [
+ "varies"
+ ]
+ },
+ "shippingCost": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "shippingCostUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "shoppingDotComCategory": {
+ "type": [
+ "string"
+ ]
+ },
+ "shopzillaCategoryId": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "showDefaultDonationAmount": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "siteCategoryList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "sitemapPriority": {
+ "type": [
+ "varies"
+ ]
+ },
+ "softDescriptor": {
+ "type": [
+ "varies"
+ ]
+ },
+ "specialsDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "stockDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "stockUnit": {
+ "type": [
+ "varies"
+ ]
+ },
+ "storeDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "storeDetailedDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "storeDisplayImage": {
+ "type": [
+ "varies"
+ ]
+ },
+ "storeDisplayName": {
+ "type": [
+ "string"
+ ]
+ },
+ "storeDisplayThumbnail": {
+ "type": [
+ "varies"
+ ]
+ },
+ "storeItemTemplate": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiaryList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "supplyLotSizingMethod": {
+ "type": [
+ "varies"
+ ]
+ },
+ "supplyReplenishmentMethod": {
+ "type": [
+ "varies"
+ ]
+ },
+ "supplyTimeFence": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "supplyType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxSchedule": {
+ "type": [
+ "varies"
+ ]
+ },
+ "totalValue": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "trackLandedCost": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "transferPrice": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "translationsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "unbuildVarianceAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "undepFunds": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "unitsType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "upcCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "urlComponent": {
+ "type": [
+ "string"
+ ]
+ },
+ "useBins": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "useComponentYield": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "useMarginalRates": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "vendor": {
+ "type": [
+ "varies"
+ ]
+ },
+ "vendorName": {
+ "type": [
+ "string"
+ ]
+ },
+ "vsoeDeferral": {
+ "type": [
+ "varies"
+ ]
+ },
+ "vsoeDelivered": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "vsoePermitDiscount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "vsoePrice": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "vsoeSopGroup": {
+ "type": [
+ "varies"
+ ]
+ },
+ "weight": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "weightUnit": {
+ "type": [
+ "varies"
+ ]
+ },
+ "weightUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "wipAcct": {
+ "type": [
+ "varies"
+ ]
+ },
+ "wipVarianceAcct": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/location.json b/_data/taps/schemas/netsuite/v1/json/location.json
new file mode 100644
index 000000000..de2364d8f
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/location.json
@@ -0,0 +1,176 @@
+{
+ "properties": {
+ "allowStorePickup": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "autoAssignmentRegionSetting": {
+ "type": [
+ "varies"
+ ]
+ },
+ "bufferStock": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "businessHoursList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "classTranslationList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "dailyShippingCapacity": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "excludeLocationRegionsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "geolocationMethod": {
+ "type": [
+ "varies"
+ ]
+ },
+ "includeChildren": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "includeLocationRegionsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "locationType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "logo": {
+ "type": [
+ "varies"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "mainAddress": {
+ "type": [
+ "varies"
+ ]
+ },
+ "makeInventoryAvailable": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "makeInventoryAvailableStore": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nextPickupCutOffTime": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "returnAddress": {
+ "type": [
+ "varies"
+ ]
+ },
+ "storePickupBufferStock": {
+ "type": [
+ "number",
+ " string"
+ ]
+ },
+ "subsidiaryList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "varies"
+ ]
+ },
+ "totalShippingCapacity": {
+ "type": [
+ "integer",
+ " string"
+ ]
+ },
+ "tranPrefix": {
+ "type": [
+ "string"
+ ]
+ },
+ "useBins": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/nexus.json b/_data/taps/schemas/netsuite/v1/json/nexus.json
new file mode 100644
index 000000000..eeabbc52c
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/nexus.json
@@ -0,0 +1,60 @@
+{
+ "properties": {
+ "country": {
+ "type": [
+ "varies"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parentNexus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "state": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxAgency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxAgencyPst": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxCode": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/partner.json b/_data/taps/schemas/netsuite/v1/json/partner.json
new file mode 100644
index 000000000..7b1cd19d4
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/partner.json
@@ -0,0 +1,301 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "accessRole": {
+ "type": [
+ "varies"
+ ]
+ },
+ "addressbookList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "altEmail": {
+ "type": [
+ "string"
+ ]
+ },
+ "altName": {
+ "type": [
+ "string"
+ ]
+ },
+ "bcn": {
+ "type": [
+ "string"
+ ]
+ },
+ "categoryList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "companyName": {
+ "type": [
+ "string"
+ ]
+ },
+ "contactRolesList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "dateCreated": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "defaultAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "eligibleForCommission": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "emailPreference": {
+ "type": [
+ "varies"
+ ]
+ },
+ "entityId": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "firstName": {
+ "type": [
+ "string"
+ ]
+ },
+ "giveAccess": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "globalSubscriptionStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "homePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "image": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isPerson": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastName": {
+ "type": [
+ "string"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "loginAs": {
+ "type": [
+ "string"
+ ]
+ },
+ "middleName": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobilePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "partnerCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "password": {
+ "type": [
+ "string"
+ ]
+ },
+ "password2": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "phoneticName": {
+ "type": [
+ "string"
+ ]
+ },
+ "printOnCheckAs": {
+ "type": [
+ "string"
+ ]
+ },
+ "promoCodeList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "referringUrl": {
+ "type": [
+ "string"
+ ]
+ },
+ "requirePwdChange": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "roleList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salutation": {
+ "type": [
+ "string"
+ ]
+ },
+ "sendEmail": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "subPartnerLogin": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "subscriptionsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxFractionUnit": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxIdNum": {
+ "type": [
+ "string"
+ ]
+ },
+ "taxRounding": {
+ "type": [
+ "varies"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ },
+ "vatRegNumber": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/json/topic.json b/_data/taps/schemas/netsuite/v1/json/topic.json
new file mode 100644
index 000000000..d5bf9cf7b
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/json/topic.json
@@ -0,0 +1,50 @@
+{
+ "properties": {
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "longDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parentTopic": {
+ "type": [
+ "varies"
+ ]
+ },
+ "solutionList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v1/netsuite-v1-tables.yml b/_data/taps/schemas/netsuite/v1/netsuite-v1-tables.yml
new file mode 100644
index 000000000..90a4722cf
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v1/netsuite-v1-tables.yml
@@ -0,0 +1,1237 @@
+tap: netsuite
+version: '1'
+tables:
+- name: Account
+ description: 'The `{{ table.name }}` table contains info about the accounts in the
+ Chart of Accounts in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/account.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: AccountingPeriod
+ description: 'The `{{ table.name }}` table contains info about the accounting periods
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/accountingperiod.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Address
+ description: 'The `{{ table.name }}` table contains info about the custom address
+ forms in your {{ integration.display_name }} account.
+
+
+ Custom address forms can apply to entity, transaction, subsidiary, company information,
+ location, and workplace records in {{ integration.display_name }}. As custom address
+ forms inherit the permissions set on the parent record, the permissions required
+ for the parent record are required to access custom address data.
+
+
+ For example: To get custom address data for a location, the user must have the
+ permission for accessing location data.
+
+ '
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: BillingAccount
+ description: 'The `{{ table.name }}` table contains info about the billing accounts
+ in your {{ integration.display_name }} account. A billing account is a record
+ used to show all billing information for a customer or subcustomer. A billing
+ account contains billing-specific information, including billing schedule, default
+ payment terms, bill-to address, and currency.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/billingaccount.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: BillingSchedule
+ description: 'The `{{ table.name }}` table contains info about the billing schedules
+ in your {{ integration.display_name }} account. Billing schedules are used to
+ define how bills for transactions are relayed to customers. In general, a billing
+ schedule determines the frequency with which the customer is billed and the amount
+ of each bill. However, the exact effect of a billing schedule varies depending
+ on its type.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/billingschedule.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Bin
+ description: 'The `{{ table.name }}` table contains info about bins, or places in
+ your warehouse where you store inventory items.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/bin.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Budget
+ description: "The `{{ table.name }}` table contains info about the budgets in your\
+ \ {{ integration.display_name }} account. A budget records the expected values\
+ \ of income and expenses for your business. Budgets can be created for specific\
+ \ customers, items, departments, classes, locations, or any combination of these\
+ \ criteria. \n\n{{ integration.permission-for-table | flatify }}\n"
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/budget.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: CalendarEvent
+ description: 'The `{{ table.name }}` table contains info about the scheduled activities,
+ or events, that are on the calendar in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/calendarevent.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: Campaign
+ description: 'The `{{ table.name }}` table contains info about the campaigns in
+ your {{ integration.display_name }} account. Campaigns are used to manage marketing
+ initiatives.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/campaign.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Charge
+ description: 'The `{{ table.name }}` table contains info about the charges in your
+ {{ integration.display_name }} account, which represent billable amounts that
+ your clients must pay.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/charge.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Classification
+ description: 'The `{{ table.name }}` table contains info about the classifications
+ in your {{ integration.display_name }} account.
+
+
+ As classifications inherit the permissions set on the parent record, the permissions
+ required for the parent record are required to access classification data.
+
+
+ For example: To get classification data for a location, the user must have the
+ permission for accessing location data.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/classification.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: ConsolidatedExchangeRate
+ description: 'The `{{ table.name }}` table contains info about consolidated exchange
+ rates. This is used in {{ integration.display_name }} OneWorld for consolidation
+ purposes, ensuring currency amounts correctly roll up from child to parent subsidiaries.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/consolidatedexchangerate.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Contact
+ description: 'The `{{ table.name }}` table contains info about contacts.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/contact.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: ContactCategory
+ description: 'The `{{ table.name }}` table contains info about the types of contacts
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/contactcategory.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: ContactRole
+ description: 'The `{{ table.name }}` table contains info about contact roles in
+ your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/contactrole.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: CostCategory
+ description: 'The `{{ table.name }}` table contains info about cost categories,
+ which are used to classify different types of costs associated with items.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/costcategory.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: CouponCode
+ description: 'The `{{ table.name }}` table contains info about the coupon codes
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/couponcode.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: CurrencyRate
+ description: 'The `{{ table.name }}` table contains info about currency rate records
+ in you {{ integration.display_name }} account. These are also known as Exchange
+ Rate records in {{ integration.display_name }}.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/currencyrate.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Customer
+ description: 'The `{{ table.name }}` table contains info about customers.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/customer.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: CustomerCategory
+ description: 'The `{{ table.name }}` table contains info about the types of customers
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/customercategory.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: CustomerMessage
+ description: 'The `{{ table.name }}` table contains info about standardized customer
+ messages in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/customermessage.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: CustomerStatus
+ description: 'The `{{ table.name }}` table contains info about the stages for leads,
+ prospects, and customers in your {{ integration.display_name }} sales cycle.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/customerstatus.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: CustomList
+ description: "The `{{ table.name }}` table contains info about \n"
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/customlist.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: customrecord_[custom_record_name]
+ description: 'For each custom record type in {{ integration.display_name }}, a table
+ for that custom record type will be available for selection in Stitch.
+
+
+ Custom record tables are named `{{ table.name }}`, where `[custom_record_name]`
+ is the value of the ID field in the Custom Record Setup page in {{ integration.display_name
+ }}.
+
+
+ For example: If a custom record were named `promo discount` in {{ integration.display_name
+ }}, the corresponding table for those records would be named `{{ table.name |
+ replace: "[custom_record_name]","promo_discount" }}`. If the ID field in the Custom
+ Record Setup page is left blank, {{ integration.display_name }} will auto-assign
+ a numerical ID to the record. In Stitch, the table for the custom record would
+ then be something like `customrecord_123`, where `123` is the ID auto-assigned
+ by {{ integration.display_name }}.
+
+
+ **Note**: The Replication Method Stitch uses to replicate custom record types
+ depends on how custom records are configured in {{ integration.display_name }}.
+ Refer to the [Custom records](#custom-records) section for more info.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/customrecord.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: Deleted
+ description: 'The `{{ table.name }}` table contains info about deleted records.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+
+ #### Objects with delete support
+
+
+ According to [{{ integration.display_name }}''s documentation](https://system.netsuite.com/app/help/helpcenter.nl?fid=section_N3497592.html){:target="new"},
+ only certain objects support the `{{ table.api-method.name }}` operation Stitch
+ uses to retrieve deleted record data from the SuiteTalk API.
+
+
+ Refer to the [Deleted records](#deleted-records) section for more info and a list
+ of record types with delete support.
+
+ '
+ links:
+ api-method: https://system.netsuite.com/app/help/helpcenter.nl?fid=section_N3497592.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - internalId
+ - type
+ replication-key: deletedDate
+- name: Department
+ description: 'The `{{ table.name }}` table contains info about the departments in
+ your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/department.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Employee
+ description: 'The `{{ table.name }}` table contains info about the employees in
+ your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/employee.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: EntityGroup
+ description: 'The `{{ table.name }}` table contains info about the groups in your
+ {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/entitygroup.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: ExpenseCategory
+ description: "The `{{ table.name }}` table contains info about the expense categories\
+ \ in your {{ integration.display_name }} account. \n\n{{ integration.permission-for-table\
+ \ | flatify }}\n"
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/expensecategory.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: FairValuePrice
+ description: 'The `{{ table.name }}` table contains info about the fair value price
+ list in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/fairvalueprice.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: File
+ description: 'The `{{ table.name }}` table contains info about the files in your
+ {{ integration.display_name }} File Cabinet.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/file.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: Folder
+ description: 'The `{{ table.name }}` table contains info about the folders in your
+ {{ integration.display_name }} File Cabinet.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/folder.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: GiftCertificate
+ description: 'The `{{ table.name }}` table contains info about the gift certificates
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/giftcertificate.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: GlobalAccountMapping
+ description: "The `{{ table.name }}` table contains the global account mapping record\
+ \ details in your {{ integration.display_name }} account. \n\nFor {{ integration.display_name\
+ \ }} accounts using Multi-Book Accounting, the global account mapping record enables\
+ \ you to configure secondary accounting books to post to accounts different from\
+ \ the primary book. These mappings are used by transactions where the user can\
+ \ manually select the account to which the transaction posts.\n\n{{ integration.permission-for-table\
+ \ | flatify }}\n"
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/globalaccountmapping.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: HcmJob
+ description: '{{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/hcmjob.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: InboundShipment
+ description: 'The `{{ table.name }}` table contains info about inbound shipments
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/inboundshipment.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: InventoryNumber
+ description: 'The `{{ table.name }}` table contains info about the serial or lot
+ numbers in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/inventorynumber.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Issue
+ description: 'The `{{ table.name }}` table contains info about the support cases
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/issue.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: Item
+ description: 'The `{{ table.name }}` table contains info about items.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: ItemAccountMapping
+ description: 'The `{{ table.name }}` table contains details about the item account
+ mapping record in your {{ integration.display_name }} account.
+
+
+ For accounts using {{ integration.display_name }} Multi-Book Accounting, the item
+ account mapping record enables you to configure secondary accounting books to
+ post to accounts different from the primary book, based on the item that is the
+ subject of the transaction. These mappings are used by transactions where the
+ item determines the account to which the transaction posts.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/itemaccountmapping.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: ItemDemandPlan
+ description: 'The `{{ table.name }}` table contains info about item demand plans
+ in your {{ integration.display_name }} account. An item demand plan transaction
+ stores the quantity expected to be needed, during specified time periods, for
+ an item.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/itemdemandplan.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: ItemRevision
+ description: 'The `{{ table.name }}` table contains info about item revisions in
+ your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/itemrevision.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: ItemSupplyPlan
+ description: 'The `{{ table.name }}` table contains info about the item supply plans
+ in your {{ integration.display_name }} account. An item supply plan lists the
+ purchase orders or work orders required to ensure that item quantity meets expected
+ demand.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/itemsupplyplan.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Job
+ description: 'The `{{ table.name }}` table contains info about the projects in your
+ {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/job.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: JobStatus
+ description: 'The `{{ table.name }}` table contains info about the statuses that
+ can be applied to projects in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/jobstatus.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: JobType
+ description: 'The `{{ table.name }}` table contains info about the types that can
+ be applied to projects in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/jobtype.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Location
+ description: 'The `{{ table.name }}` table contains info about locations.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/location.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: ManufacturingCostTemplate
+ description: 'The `{{ table.name }}` table contains info about the manufacturing
+ cost templates in your {{ integration.display_name }} account.
+
+
+ A manufacturing cost template is a list of rates that can be associated with completing
+ a specific operation. The template defines the activities that occur and related
+ costs to be recorded each time this step is completed.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/manufacturingcosttemplate.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: ManufacturingOperationTask
+ description: 'The `{{ table.name }}` table contains info about manufacturing operation
+ tasks in your {{ integration.display_name }} account.
+
+
+ After a WIP work order that has a designated routing is saved in {{ integration.display_name
+ }}, manufacturing operation tasks are created based on the routing. Each of these
+ tasks is a step that must be done in order for the assembly process to be finished.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/manufacturingoperationtask.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: ManufacturingRouting
+ description: 'The `{{ table.name }}` table contains info about the manufacturing
+ routing templates in your {{ integration.display_name }} account.
+
+
+ A manufacturing routing is a template that contains a list of steps required to
+ build an assembly item. Each step is in a sequential order necessary to complete
+ the operational sequence for completing the assembly. After you have created a
+ routing record, that routing can be selected on a work order to direct the completion
+ of the assembly. The routing determines the work center, cost template, labor
+ resources, and machine resources that will be used during the assembly.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/manufacturingrouting.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Message
+ description: 'The `{{ table.name }}` table contains info about the messages in your
+ {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/message.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: Nexus
+ description: "The `{{ table.name }}` table contains info about the tax jurisdictions\
+ \ - or nexus - in your {{ integration.display_name }} account. A nexus is a tax\
+ \ jurisdiction, usually defined at the country level. \n\n{{ integration.permission-for-table\
+ \ | flatify }}\n"
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/nexus.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Note
+ description: 'The `{{ table.name }}` table contains info about the notes in your
+ {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/note.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: NoteType
+ description: 'The `{{ table.name }}` table contains info about the types that can
+ be applied to notes in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/notetype.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Opportunity
+ description: 'The `{{ table.name }}` table contains info about the opportunities
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/opportunity.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: OtherNameCategory
+ description: 'The `{{ table.name }}` table contains info about the other name categories
+ in your {{ integration.display_name }} account. Other name category values are
+ used on other name records to categorize them. The list of other name records
+ is a collection of records for people or companies who are not vendors, customers,
+ or employees.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/othernamecategory.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Partner
+ description: 'The `{{ table.name }}` table contains info about the partners in your
+ {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/partner.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: PartnerCategory
+ description: 'The `{{ table.name }}` table contains info about the categories that
+ can be applied to partners in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/partnercategory.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Paycheck
+ description: 'The `{{ table.name }}` table contains info about the paycheck records
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/paycheck.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: PaymentMethod
+ description: 'The `{{ table.name }}` table contains info about the customer payment
+ methods in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/paymentmethod.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: PayrollItem
+ description: 'The `{{ table.name }}` table contains info about the payroll items,
+ or payroll transaction line items, in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/payrollitem.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: PhoneCall
+ description: 'The `{{ table.name }}` table contains info about the phone call records
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/payrollitem.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: PriceLevel
+ description: 'The `{{ table.name }}` table contains info about the price level list
+ in your {{ integration.display_name }} account. Price level defines a list of
+ values that are used by opportunity and item records to set the price level for
+ a specific item.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/pricelevel.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: PricingGroup
+ description: 'The `{{ table.name }}` table contains info about the pricing groups
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/pricinggroup.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: ProjectTask
+ description: 'The `{{ table.name }}` table contains info about the project tasks
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/projecttask.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: PromotionCode
+ description: 'The `{{ table.name }}` table contains info about the promotion codes
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/promotioncode.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: ResourceAllocation
+ description: 'The `{{ table.name }}` table contains info about resource allocations,
+ or employee time reservations, in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/resourceallocation.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: RevRecSchedule
+ description: 'The `{{ table.name }}` table contains info about the revenue recognition
+ schedules in your {{ integration.display_name }} account. A revenue recognition
+ schedule indicates the posting periods in which revenue should be recognized,
+ and the amount to be recognized in each period, for an item sale.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/revrecschedule.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: RevRecTemplate
+ description: 'The `{{ table.name }}` table contains info about the revenue recognition
+ templates in your {{ integration.display_name }} account. A revenue recognition
+ template indicates how revenue from associated items should be posted.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/revrectemplate.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: SalesRole
+ description: 'The `{{ table.name }}` table contains info about the sales roles in
+ your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/salesrole.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: SalesTaxItem
+ description: 'The `{{ table.name }}` table contains info about the sales tax items
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/salestaxitem.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: SiteCategory
+ description: 'The `{{ table.name }}` table contains info about the categories used
+ to organize your website.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/sitecategory.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Solution
+ description: 'The `{{ table.name }}` table contains info about the solutions, or
+ answers to customer issues, in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/solution.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: Subsidiary
+ description: 'The `{{ table.name }}` table contains info about the subsidiary records
+ in your {{ integration.display_name }} account. A subsidiary represents a separate
+ company within your global organization.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/subsidiary.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: SupportCase
+ description: 'The `{{ table.name }}` table contains info about the support cases
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/supportcase.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: Task
+ description: 'The `{{ table.name }}` table contains info about the tasks in your
+ {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/task.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: TaxGroup
+ description: 'The `{{ table.name }}` table contains info about the tax groups in
+ your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/taxgroup.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: TaxType
+ description: 'The `{{ table.name }}` table contains info about the tax types in
+ your {{ integration.display_name }} account. A tax type determines where the tax
+ paid or collected is tracked on the balance sheet. The balance sheet account to
+ which {{ integration.display_name }} posts the collection or payment of tax is
+ called the tax control account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/taxtype.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Term
+ description: 'The `{{ table.name }}` table contains info about the terms in your
+ {{ integration.display_name }} account. Terms are used to specify when payment
+ is due on customer invoices.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: TimeBill
+ description: 'The `{{ table.name }}` table contains info about the time transactions
+ in your {{ integration.display_name }} account. Also known as time bills, these
+ transactions records the hours worked by an employee. This transaction can be
+ used to record billable hours and invoice customers.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/timebill.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: TimeEntry
+ description: 'The `{{ table.name }}` table contains info about the time entries
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/timeentry.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: TimeSheet
+ description: 'The `{{ table.name }}` table contains info about the time sheets in
+ your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/timesheet.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Topic
+ description: 'The `{{ table.name }}` table contains info about the topics used to
+ organize knowledge base solutions in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/topic.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: UnitsType
+ description: 'The `{{ table.name }}` table contains info about the unit types, or
+ Units of Measure, in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/unitstype.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Usage
+ description: 'The `{{ table.name }}` table contains info about the subscription
+ billing lines in your {{ integration.display_name }} account. For example: Money,
+ time, cellular data, internet data, etc.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/usage.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Vendor
+ description: 'The `{{ table.name }}` table contains info about the vendors in your
+ {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/vendor.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: VendorCategory
+ description: 'The `{{ table.name }}` table contains info about the categories that
+ can be applied to vendors in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/vendorcategory.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: WinLossReason
+ description: 'The `{{ table.name }}` table contains info about the win/loss reasons
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/winlossreason.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/accounting_period.json b/_data/taps/schemas/netsuite/v10-15-2015/json/accounting_period.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/accounting_period.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/app_definition.json b/_data/taps/schemas/netsuite/v10-15-2015/json/app_definition.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/app_definition.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/app_package.json b/_data/taps/schemas/netsuite/v10-15-2015/json/app_package.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/app_package.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/billing_schedule.json b/_data/taps/schemas/netsuite/v10-15-2015/json/billing_schedule.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/billing_schedule.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/calendar_event.json b/_data/taps/schemas/netsuite/v10-15-2015/json/calendar_event.json
new file mode 100644
index 000000000..b64d894c2
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/calendar_event.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/campaign.json b/_data/taps/schemas/netsuite/v10-15-2015/json/campaign.json
new file mode 100644
index 000000000..b64d894c2
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/campaign.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/classification.json b/_data/taps/schemas/netsuite/v10-15-2015/json/classification.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/classification.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/contact_category.json b/_data/taps/schemas/netsuite/v10-15-2015/json/contact_category.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/contact_category.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/contact_role.json b/_data/taps/schemas/netsuite/v10-15-2015/json/contact_role.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/contact_role.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/coupon_code.json b/_data/taps/schemas/netsuite/v10-15-2015/json/coupon_code.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/coupon_code.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/currency_rate.json b/_data/taps/schemas/netsuite/v10-15-2015/json/currency_rate.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/currency_rate.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/custom_list.json b/_data/taps/schemas/netsuite/v10-15-2015/json/custom_list.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/custom_list.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/custom_records.json b/_data/taps/schemas/netsuite/v10-15-2015/json/custom_records.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/custom_records.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/customer.json b/_data/taps/schemas/netsuite/v10-15-2015/json/customer.json
new file mode 100644
index 000000000..b64d894c2
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/customer.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/customer_category.json b/_data/taps/schemas/netsuite/v10-15-2015/json/customer_category.json
new file mode 100644
index 000000000..b64d894c2
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/customer_category.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/customer_message.json b/_data/taps/schemas/netsuite/v10-15-2015/json/customer_message.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/customer_message.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/customer_status.json b/_data/taps/schemas/netsuite/v10-15-2015/json/customer_status.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/customer_status.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/deleted.json b/_data/taps/schemas/netsuite/v10-15-2015/json/deleted.json
new file mode 100644
index 000000000..256c3dd51
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/deleted.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "customRecord": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "deletedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/department.json b/_data/taps/schemas/netsuite/v10-15-2015/json/department.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/department.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/entity_group.json b/_data/taps/schemas/netsuite/v10-15-2015/json/entity_group.json
new file mode 100644
index 000000000..b64d894c2
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/entity_group.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/expense_category.json b/_data/taps/schemas/netsuite/v10-15-2015/json/expense_category.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/expense_category.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/folder.json b/_data/taps/schemas/netsuite/v10-15-2015/json/folder.json
new file mode 100644
index 000000000..b64d894c2
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/folder.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/gift_certificate.json b/_data/taps/schemas/netsuite/v10-15-2015/json/gift_certificate.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/gift_certificate.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/global_account_mapping.json b/_data/taps/schemas/netsuite/v10-15-2015/json/global_account_mapping.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/global_account_mapping.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/inventory_number.json b/_data/taps/schemas/netsuite/v10-15-2015/json/inventory_number.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/inventory_number.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/item_account_mapping.json b/_data/taps/schemas/netsuite/v10-15-2015/json/item_account_mapping.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/item_account_mapping.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/item_demand_plan.json b/_data/taps/schemas/netsuite/v10-15-2015/json/item_demand_plan.json
new file mode 100644
index 000000000..b64d894c2
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/item_demand_plan.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/item_revision.json b/_data/taps/schemas/netsuite/v10-15-2015/json/item_revision.json
new file mode 100644
index 000000000..0f5e73b41
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/item_revision.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/item_supply_plan.json b/_data/taps/schemas/netsuite/v10-15-2015/json/item_supply_plan.json
new file mode 100644
index 000000000..b64d894c2
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/item_supply_plan.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/job.json b/_data/taps/schemas/netsuite/v10-15-2015/json/job.json
new file mode 100644
index 000000000..b64d894c2
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/job.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/job_status.json b/_data/taps/schemas/netsuite/v10-15-2015/json/job_status.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/job_status.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/job_type.json b/_data/taps/schemas/netsuite/v10-15-2015/json/job_type.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/job_type.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/manufacturing_cost_template.json b/_data/taps/schemas/netsuite/v10-15-2015/json/manufacturing_cost_template.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/manufacturing_cost_template.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/manufacturing_operation_task.json b/_data/taps/schemas/netsuite/v10-15-2015/json/manufacturing_operation_task.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/manufacturing_operation_task.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/manufacturing_routing.json b/_data/taps/schemas/netsuite/v10-15-2015/json/manufacturing_routing.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/manufacturing_routing.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/message.json b/_data/taps/schemas/netsuite/v10-15-2015/json/message.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/message.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/nexus.json b/_data/taps/schemas/netsuite/v10-15-2015/json/nexus.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/nexus.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/note.json b/_data/taps/schemas/netsuite/v10-15-2015/json/note.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/note.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/note_type.json b/_data/taps/schemas/netsuite/v10-15-2015/json/note_type.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/note_type.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/opportunity.json b/_data/taps/schemas/netsuite/v10-15-2015/json/opportunity.json
new file mode 100644
index 000000000..b64d894c2
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/opportunity.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/originating_lead.json b/_data/taps/schemas/netsuite/v10-15-2015/json/originating_lead.json
new file mode 100644
index 000000000..501284d85
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/originating_lead.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/other_name_category.json b/_data/taps/schemas/netsuite/v10-15-2015/json/other_name_category.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/other_name_category.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/partner_category.json b/_data/taps/schemas/netsuite/v10-15-2015/json/partner_category.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/partner_category.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/payment_method.json b/_data/taps/schemas/netsuite/v10-15-2015/json/payment_method.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/payment_method.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/payroll_item.json b/_data/taps/schemas/netsuite/v10-15-2015/json/payroll_item.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/payroll_item.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/phone_call.json b/_data/taps/schemas/netsuite/v10-15-2015/json/phone_call.json
new file mode 100644
index 000000000..b64d894c2
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/phone_call.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/price_level.json b/_data/taps/schemas/netsuite/v10-15-2015/json/price_level.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/price_level.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/pricing_group.json b/_data/taps/schemas/netsuite/v10-15-2015/json/pricing_group.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/pricing_group.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/project_task.json b/_data/taps/schemas/netsuite/v10-15-2015/json/project_task.json
new file mode 100644
index 000000000..b64d894c2
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/project_task.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/promotion_code.json b/_data/taps/schemas/netsuite/v10-15-2015/json/promotion_code.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/promotion_code.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/resource_allocation.json b/_data/taps/schemas/netsuite/v10-15-2015/json/resource_allocation.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/resource_allocation.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/rev_rec_schedule.json b/_data/taps/schemas/netsuite/v10-15-2015/json/rev_rec_schedule.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/rev_rec_schedule.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/rev_rec_template.json b/_data/taps/schemas/netsuite/v10-15-2015/json/rev_rec_template.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/rev_rec_template.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/sales_role.json b/_data/taps/schemas/netsuite/v10-15-2015/json/sales_role.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/sales_role.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/site_category.json b/_data/taps/schemas/netsuite/v10-15-2015/json/site_category.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/site_category.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/solution.json b/_data/taps/schemas/netsuite/v10-15-2015/json/solution.json
new file mode 100644
index 000000000..b64d894c2
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/solution.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/subsidiary.json b/_data/taps/schemas/netsuite/v10-15-2015/json/subsidiary.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/subsidiary.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/support_case.json b/_data/taps/schemas/netsuite/v10-15-2015/json/support_case.json
new file mode 100644
index 000000000..b64d894c2
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/support_case.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/task.json b/_data/taps/schemas/netsuite/v10-15-2015/json/task.json
new file mode 100644
index 000000000..b64d894c2
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/task.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/term.json b/_data/taps/schemas/netsuite/v10-15-2015/json/term.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/term.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/time_bill.json b/_data/taps/schemas/netsuite/v10-15-2015/json/time_bill.json
new file mode 100644
index 000000000..b64d894c2
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/time_bill.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/time_entry.json b/_data/taps/schemas/netsuite/v10-15-2015/json/time_entry.json
new file mode 100644
index 000000000..b64d894c2
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/time_entry.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/time_sheet.json b/_data/taps/schemas/netsuite/v10-15-2015/json/time_sheet.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/time_sheet.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/transaction.json b/_data/taps/schemas/netsuite/v10-15-2015/json/transaction.json
new file mode 100644
index 000000000..eb7c8d153
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/transaction.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/units_type.json b/_data/taps/schemas/netsuite/v10-15-2015/json/units_type.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/units_type.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/vendor_category.json b/_data/taps/schemas/netsuite/v10-15-2015/json/vendor_category.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/vendor_category.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/json/win_loss_reason.json b/_data/taps/schemas/netsuite/v10-15-2015/json/win_loss_reason.json
new file mode 100644
index 000000000..37d1a7cca
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/json/win_loss_reason.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "internalId": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v10-15-2015/netsuite-v10-15-2015-tables.yml b/_data/taps/schemas/netsuite/v10-15-2015/netsuite-v10-15-2015-tables.yml
new file mode 100644
index 000000000..4e2b82fac
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v10-15-2015/netsuite-v10-15-2015-tables.yml
@@ -0,0 +1,622 @@
+tap: netsuite
+version: 10-15-2015
+tables:
+- name: netsuite_accounting_period
+ description: 'The `{{ table.name }}` table contains info about accounting periods
+ in your NetSuite instance.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/accountingperiod.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_app_definition
+ description: 'The `{{ table.name }}` table contains info about the app definitions
+ in your NetSuite instance.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/appdefinition.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_app_package
+ description: 'The `{{ table.name }}` table contains info about the app packages
+ in your NetSuite instance.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/apppackage.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_billing_schedule
+ description: 'The `{{ table.name }}` table contains info about the accounts in your
+ NetSuite instance.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/billingschedule.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_calendar_event
+ description: 'The `{{ table.name }}` table contains info about calendar events.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/calendarevent.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: netsuite_campaign
+ description: 'The `{{ table.name }}` table contains info about campaigns.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/campaign.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: netsuite_classification
+ description: 'The `{{ table.name }}` table contains info about classifications.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/classification.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_contact_category
+ description: 'The `{{ table.name }}` table contains info about contact categories.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/contactcategory.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_contact_role
+ description: 'The `{{ table.name }}` table contains info about contact roles.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/contactrole.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_coupon_code
+ description: 'The `{{ table.name }}` table contains info about coupon codes.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/couponcode.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_currency_rate
+ description: 'The `{{ table.name }}` table contains info about currency rates.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/currencyrate.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_customer
+ description: "The `{{ table.name }}` table contains info about customers. \n"
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/customer.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: netsuite_customer_category
+ description: 'The `{{ table.name }}` table contains info about customer categories.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/customercategory.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: netsuite_customer_message
+ description: 'The `{{ table.name }}` table contains info about customer messages.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/search/customermessage.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_customer_status
+ description: 'The `{{ table.name }}` table contains info about customer statuses.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/customerstatus.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_custom_list
+ description: 'The `{{ table.name }}` table contains info about custom lists.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/customlist.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_custom_records
+ description: 'The `{{ table.name }}` table contains info about custom records.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/search/customrecord.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_department
+ description: "The `{{ table.name }}` table contains info about departments. \n"
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/department.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_entity_group
+ description: 'The `{{ table.name }}` table contains info about entity groups.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/entitygroup.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: netsuite_expense_category
+ description: 'The `{{ table.name }}` table contains info about expense categories.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/expensecategory.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_folder
+ description: 'The `{{ table.name }}` table contains info about folders.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/folder.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: netsuite_gift_certificate
+ description: 'The `{{ table.name }}` table contains info about gift certificates.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/giftcertificate.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_global_account_mapping
+ description: 'The `{{ table.name }}` table contains info about global account mappings.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/globalaccountmapping.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_inventory_number
+ description: 'The `{{ table.name }}` table contains info about inventory numbers.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/inventorynumber.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_item_account_mapping
+ description: 'The `{{ table.name }}` table contains info about item account mappings.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/itemaccountmapping.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_item_demand_plan
+ description: 'The `{{ table.name }}` table contains info about item demand plans.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/itemdemandplan.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: netsuite_item_revision
+ description: 'The `{{ table.name }}` table contains info about item revisions.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/itemrevision.html
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - internalId
+ - _type
+- name: netsuite_item_supply_plan
+ description: 'The `{{ table.name }}` table contains info about item supply plans.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/itemsupplyplan.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: netsuite_job
+ description: 'The `{{ table.name }}` table contains info about jobs.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/job.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: netsuite_job_status
+ description: 'The `{{ table.name }}` table contains info about job statuses.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/jobstatus.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_job_type
+ description: 'The `{{ table.name }}` table contains info about job types.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/jobtype.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_manufacturing_cost_template
+ description: 'The `{{ table.name }}` table contains info about manufacturing cost
+ templates.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/manufacturingcosttemplate.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_manufacturing_operation_task
+ description: 'The `{{ table.name }}` table contains info about manufacturing operation
+ tasks.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/manufacturingoperationtask.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_manufacturing_routing
+ description: 'The `{{ table.name }}` table contains info about manufacturing routings.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/manufacturingrouting.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_message
+ description: 'The `{{ table.name }}` table contains info about messages.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/message.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_nexus
+ description: 'The `{{ table.name }}` table contains info about nexus tax items.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/nexus.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_note
+ description: 'The `{{ table.name }}` table contains info about notes.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/note.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_note_type
+ description: 'The `{{ table.name }}` table contains info about note types.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/notetype.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_opportunity
+ description: 'The `{{ table.name }}` table contains info about opportunities.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/opportunity.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: netsuite_originating_lead
+ description: 'The `{{ table.name }}` table contains info about originating leads.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/originatinglead.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: netsuite_other_name_category
+ description: 'The `{{ table.name }}` table contains info about other name categories.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/othernamecategory.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_partner_category
+ description: 'The `{{ table.name }}` table contains info about partner categories.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/partnercategory.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_payment_method
+ description: 'The `{{ table.name }}` table contains info about payment methods.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/paymentmethod.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_payroll_item
+ description: 'The `{{ table.name }}` table contains info about payroll items.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/payrollitem.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_phone_call
+ description: 'The `{{ table.name }}` table contains info about phone calls.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/phonecall.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: netsuite_price_level
+ description: 'The `{{ table.name }}` table contains info about [price levels.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/pricelevel.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_pricing_group
+ description: 'The `{{ table.name }}` table contains info about pricing groups.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/pricinggroup.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_project_task
+ description: 'The `{{ table.name }}` table contains info about project tasks.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/projecttask.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: netsuite_promotion_code
+ description: 'The `{{ table.name }}` table contains info about promotion codes.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/promotioncode.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_resource_allocation
+ description: 'The `{{ table.name }}` table contains info about resource allocations.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/resourceallocation.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_rev_rec_schedule
+ description: 'The `{{ table.name }}` table contains info about revenue recognition
+ schedules.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/revrecschedule.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_rev_rec_template
+ description: 'The `{{ table.name }}` table contains info about revenue recognition
+ templates.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/revrectemplate.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_sales_role
+ description: 'The `{{ table.name }}` table contains info about sales roles.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/salesrole.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_site_category
+ description: 'The `{{ table.name }}` table contains info about site categories.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/sitecategory.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_solution
+ description: 'The `{{ table.name }}` table contains info about solutions.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/solution.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: netsuite_subsidiary
+ description: 'The `{{ table.name }}` table contains info about subsidiaries.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/subsidiary.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_support_case
+ description: 'The `{{ table.name }}` table contains info about support cases.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/supportcase.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: netsuite_task
+ description: 'The `{{ table.name }}` table contains info about tasks.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/task.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: netsuite_term
+ description: 'The `{{ table.name }}` table contains info about terms.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/term.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_time_bill
+ description: 'The `{{ table.name }}` table contains info about time bills.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/timebill.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: netsuite_time_entry
+ description: 'The `{{ table.name }}` table contains info about time entries.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/timeentry.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: netsuite_time_sheet
+ description: 'The `{{ table.name }}` table contains info about time sheets.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/timesheet.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_transaction
+ description: 'The `{{ table.name }}` table contains info about transactions.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/transaction.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: netsuite_units_type
+ description: 'The `{{ table.name }}` table contains info about unit types.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/unitstype.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_vendor_category
+ description: 'The `{{ table.name }}` table contains info about vendor categories.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/vendorcategory.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: netsuite_win_loss_reason
+ description: 'The `{{ table.name }}` table contains info about win loss reasons.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2015_1/schema/record/winlossreason.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
diff --git a/_data/taps/schemas/netsuite/v2/json/Account.json b/_data/taps/schemas/netsuite/v2/json/Account.json
new file mode 100644
index 000000000..9d430cd38
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Account.json
@@ -0,0 +1,176 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "acctName": {
+ "type": [
+ "string"
+ ]
+ },
+ "acctNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "acctType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billableExpensesAcct": {
+ "type": [
+ "varies"
+ ]
+ },
+ "cashFlowRate": {
+ "type": [
+ "varies"
+ ]
+ },
+ "category1099Misc": {
+ "type": [
+ "varies"
+ ]
+ },
+ "curDocNum": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "deferralAcct": {
+ "type": [
+ "varies"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "eliminate": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "exchangeRate": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "generalRate": {
+ "type": [
+ "varies"
+ ]
+ },
+ "includeChildren": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "inventory": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "legalName": {
+ "type": [
+ "string"
+ ]
+ },
+ "localizationsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "openingBalance": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "restrictToAccountingBookList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "revalue": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "subsidiaryList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "tranDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "unit": {
+ "type": [
+ "varies"
+ ]
+ },
+ "unitsType": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/AccountingPeriod.json b/_data/taps/schemas/netsuite/v2/json/AccountingPeriod.json
new file mode 100644
index 000000000..0e2cf070f
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/AccountingPeriod.json
@@ -0,0 +1,103 @@
+{
+ "properties": {
+ "allLocked": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "allowNonGLChanges": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "apLocked": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "arLocked": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "closed": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "closedOnDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "fiscalCalendar": {
+ "type": [
+ "varies"
+ ]
+ },
+ "fiscalCalendarsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isAdjust": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isQuarter": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isYear": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "payrollLocked": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "periodName": {
+ "type": [
+ "string"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Address.json b/_data/taps/schemas/netsuite/v2/json/Address.json
new file mode 100644
index 000000000..8aec9329f
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Address.json
@@ -0,0 +1,80 @@
+{
+ "properties": {
+ "addr1": {
+ "type": [
+ "string"
+ ]
+ },
+ "addr2": {
+ "type": [
+ "string"
+ ]
+ },
+ "addr3": {
+ "type": [
+ "string"
+ ]
+ },
+ "addrPhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "addrText": {
+ "type": [
+ "string"
+ ]
+ },
+ "addressee": {
+ "type": [
+ "string"
+ ]
+ },
+ "attention": {
+ "type": [
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "override": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/BillingAccount.json b/_data/taps/schemas/netsuite/v2/json/BillingAccount.json
new file mode 100644
index 000000000..b54fcc8cd
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/BillingAccount.json
@@ -0,0 +1,136 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billingSchedule": {
+ "type": [
+ "varies"
+ ]
+ },
+ "cashSaleForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "createdBy": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customer": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customerDefault": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "frequency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "idNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "inactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoiceForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "lastBillCycleDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastBillDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nextBillCycleDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/BillingSchedule.json b/_data/taps/schemas/netsuite/v2/json/BillingSchedule.json
new file mode 100644
index 000000000..f5b4ee383
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/BillingSchedule.json
@@ -0,0 +1,183 @@
+{
+ "properties": {
+ "applyToSubtotal": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "billForActuals": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "dayPeriod": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "frequency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "inArrears": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "initialAmount": {
+ "type": [
+ "string"
+ ]
+ },
+ "initialTerms": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isPublic": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "milestoneList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "monthDom": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "monthDow": {
+ "type": [
+ "varies"
+ ]
+ },
+ "monthDowim": {
+ "type": [
+ "varies"
+ ]
+ },
+ "monthMode": {
+ "type": [
+ "varies"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "numberRemaining": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "project": {
+ "type": [
+ "varies"
+ ]
+ },
+ "recurrenceDowMaskList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "recurrenceList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "recurrencePattern": {
+ "type": [
+ "varies"
+ ]
+ },
+ "recurrenceTerms": {
+ "type": [
+ "varies"
+ ]
+ },
+ "repeatEvery": {
+ "type": [
+ "varies"
+ ]
+ },
+ "scheduleType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "seriesStartDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction": {
+ "type": [
+ "varies"
+ ]
+ },
+ "yearDom": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "yearDow": {
+ "type": [
+ "varies"
+ ]
+ },
+ "yearDowim": {
+ "type": [
+ "varies"
+ ]
+ },
+ "yearDowimMonth": {
+ "type": [
+ "varies"
+ ]
+ },
+ "yearMode": {
+ "type": [
+ "varies"
+ ]
+ },
+ "yearMonth": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Bin.json b/_data/taps/schemas/netsuite/v2/json/Bin.json
new file mode 100644
index 000000000..6fa115e18
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Bin.json
@@ -0,0 +1,45 @@
+{
+ "properties": {
+ "binNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Bom.json b/_data/taps/schemas/netsuite/v2/json/Bom.json
new file mode 100644
index 000000000..457430af9
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Bom.json
@@ -0,0 +1,100 @@
+{
+ "properties": {
+ "availableForAllAssemblies": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "availableForAllLocations": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "includeChildren": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "legacyBomForAssembly": {
+ "type": [
+ "varies"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "restrictToAssembliesList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "restrictToLocationsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiaryList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "useComponentYield": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "usedOnAssembly": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/BomRevision.json b/_data/taps/schemas/netsuite/v2/json/BomRevision.json
new file mode 100644
index 000000000..bb0b4fc2c
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/BomRevision.json
@@ -0,0 +1,70 @@
+{
+ "properties": {
+ "billOfMaterials": {
+ "type": [
+ "varies"
+ ]
+ },
+ "componentList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "effectiveEndDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "effectiveStartDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Budget.json b/_data/taps/schemas/netsuite/v2/json/Budget.json
new file mode 100644
index 000000000..2f274243c
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Budget.json
@@ -0,0 +1,230 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "account": {
+ "type": [
+ "varies"
+ ]
+ },
+ "accountingBook": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "amount": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "budgetType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "category": {
+ "type": [
+ "varies"
+ ]
+ },
+ "currency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customer": {
+ "type": [
+ "varies"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "item": {
+ "type": [
+ "varies"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "periodAmount1": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "periodAmount10": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "periodAmount11": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "periodAmount12": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "periodAmount13": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "periodAmount14": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "periodAmount15": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "periodAmount16": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "periodAmount17": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "periodAmount18": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "periodAmount19": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "periodAmount2": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "periodAmount20": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "periodAmount21": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "periodAmount22": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "periodAmount23": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "periodAmount24": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "periodAmount3": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "periodAmount4": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "periodAmount5": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "periodAmount6": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "periodAmount7": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "periodAmount8": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "periodAmount9": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "year": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/CalendarEvent.json b/_data/taps/schemas/netsuite/v2/json/CalendarEvent.json
new file mode 100644
index 000000000..65fdd1071
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/CalendarEvent.json
@@ -0,0 +1,199 @@
+{
+ "properties": {
+ "accessLevel": {
+ "type": [
+ "varies"
+ ]
+ },
+ "allDayEvent": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "attendeeList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "company": {
+ "type": [
+ "varies"
+ ]
+ },
+ "contact": {
+ "type": [
+ "varies"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "endByDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "exclusionDateList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "frequency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "location": {
+ "type": [
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "noEndDate": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "organizer": {
+ "type": [
+ "varies"
+ ]
+ },
+ "owner": {
+ "type": [
+ "varies"
+ ]
+ },
+ "period": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "recurrence": {
+ "type": [
+ "string"
+ ]
+ },
+ "recurrenceDow": {
+ "type": [
+ "varies"
+ ]
+ },
+ "recurrenceDowMaskList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "recurrenceDowim": {
+ "type": [
+ "varies"
+ ]
+ },
+ "reminderMinutes": {
+ "type": [
+ "varies"
+ ]
+ },
+ "reminderType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "resourceList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "sendEmail": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "seriesStartDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "varies"
+ ]
+ },
+ "supportCase": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeItemList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timedEvent": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Campaign.json b/_data/taps/schemas/netsuite/v2/json/Campaign.json
new file mode 100644
index 000000000..e59de1afa
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Campaign.json
@@ -0,0 +1,207 @@
+{
+ "properties": {
+ "audience": {
+ "type": [
+ "varies"
+ ]
+ },
+ "baseCost": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "campaignDirectMailList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "campaignEmailList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "campaignEventList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "campaignId": {
+ "type": [
+ "string"
+ ]
+ },
+ "category": {
+ "type": [
+ "varies"
+ ]
+ },
+ "convCostPerCustomer": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "conversions": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "cost": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "costPerCustomer": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "eventResponseList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "expectedRevenue": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "family": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "itemList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "keyword": {
+ "type": [
+ "string"
+ ]
+ },
+ "leadsGenerated": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "local": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "offer": {
+ "type": [
+ "varies"
+ ]
+ },
+ "owner": {
+ "type": [
+ "varies"
+ ]
+ },
+ "profit": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "promotionCode": {
+ "type": [
+ "varies"
+ ]
+ },
+ "roi": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "searchEngine": {
+ "type": [
+ "varies"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "totalRevenue": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "uniqueVisitors": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ },
+ "vertical": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Charge.json b/_data/taps/schemas/netsuite/v2/json/Charge.json
new file mode 100644
index 000000000..c5d904290
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Charge.json
@@ -0,0 +1,161 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "amount": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "billTo": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billingAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billingItem": {
+ "type": [
+ "varies"
+ ]
+ },
+ "chargeDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "chargeType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoice": {
+ "type": [
+ "varies"
+ ]
+ },
+ "invoiceLine": {
+ "type": [
+ "varies"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "projectTask": {
+ "type": [
+ "varies"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "rate": {
+ "type": [
+ "string"
+ ]
+ },
+ "rule": {
+ "type": [
+ "varies"
+ ]
+ },
+ "runId": {
+ "type": [
+ "string"
+ ]
+ },
+ "salesOrder": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salesOrderLine": {
+ "type": [
+ "varies"
+ ]
+ },
+ "stage": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subscriptionLine": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeRecord": {
+ "type": [
+ "varies"
+ ]
+ },
+ "transaction": {
+ "type": [
+ "varies"
+ ]
+ },
+ "transactionLine": {
+ "type": [
+ "varies"
+ ]
+ },
+ "use": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Classification.json b/_data/taps/schemas/netsuite/v2/json/Classification.json
new file mode 100644
index 000000000..81bb128b8
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Classification.json
@@ -0,0 +1,56 @@
+{
+ "properties": {
+ "classTranslationList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "includeChildren": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiaryList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/ConsolidatedExchangeRate.json b/_data/taps/schemas/netsuite/v2/json/ConsolidatedExchangeRate.json
new file mode 100644
index 000000000..bf6eb9c3e
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/ConsolidatedExchangeRate.json
@@ -0,0 +1,85 @@
+{
+ "properties": {
+ "accountingBook": {
+ "type": [
+ "string"
+ ]
+ },
+ "averageRate": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "currentRate": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "fromCurrency": {
+ "type": [
+ "string"
+ ]
+ },
+ "fromSubsidiary": {
+ "type": [
+ "string"
+ ]
+ },
+ "historicalRate": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isDerived": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isEliminationSubsidiary": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isPeriodClosed": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "postingPeriod": {
+ "type": [
+ "string"
+ ]
+ },
+ "toCurrency": {
+ "type": [
+ "string"
+ ]
+ },
+ "toSubsidiary": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Contact.json b/_data/taps/schemas/netsuite/v2/json/Contact.json
new file mode 100644
index 000000000..dbf40b26c
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Contact.json
@@ -0,0 +1,197 @@
+{
+ "properties": {
+ "addressbookList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "altEmail": {
+ "type": [
+ "string"
+ ]
+ },
+ "assistant": {
+ "type": [
+ "varies"
+ ]
+ },
+ "assistantPhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "billPay": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "categoryList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "varies"
+ ]
+ },
+ "contactSource": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "dateCreated": {
+ "type": [
+ "string"
+ ]
+ },
+ "defaultAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "entityId": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "firstName": {
+ "type": [
+ "string"
+ ]
+ },
+ "globalSubscriptionStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "homePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "image": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isPrivate": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastName": {
+ "type": [
+ "string"
+ ]
+ },
+ "middleName": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobilePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "officePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "phoneticName": {
+ "type": [
+ "string"
+ ]
+ },
+ "salutation": {
+ "type": [
+ "string"
+ ]
+ },
+ "subscriptionsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "supervisor": {
+ "type": [
+ "varies"
+ ]
+ },
+ "supervisorPhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/ContactCategory.json b/_data/taps/schemas/netsuite/v2/json/ContactCategory.json
new file mode 100644
index 000000000..b25d45465
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/ContactCategory.json
@@ -0,0 +1,36 @@
+{
+ "properties": {
+ "_private": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/ContactRole.json b/_data/taps/schemas/netsuite/v2/json/ContactRole.json
new file mode 100644
index 000000000..d2b8e459a
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/ContactRole.json
@@ -0,0 +1,35 @@
+{
+ "properties": {
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/CostCategory.json b/_data/taps/schemas/netsuite/v2/json/CostCategory.json
new file mode 100644
index 000000000..5bee7bbfc
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/CostCategory.json
@@ -0,0 +1,40 @@
+{
+ "properties": {
+ "account": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "itemCostType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/CouponCode.json b/_data/taps/schemas/netsuite/v2/json/CouponCode.json
new file mode 100644
index 000000000..325b8191f
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/CouponCode.json
@@ -0,0 +1,51 @@
+{
+ "properties": {
+ "code": {
+ "type": [
+ "string"
+ ]
+ },
+ "dateSent": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "promotion": {
+ "type": [
+ "varies"
+ ]
+ },
+ "recipient": {
+ "type": [
+ "varies"
+ ]
+ },
+ "useCount": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "used": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/CurrencyRate.json b/_data/taps/schemas/netsuite/v2/json/CurrencyRate.json
new file mode 100644
index 000000000..ecbc4da30
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/CurrencyRate.json
@@ -0,0 +1,40 @@
+{
+ "properties": {
+ "baseCurrency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "currencyRateType": {
+ "type": [
+ "string"
+ ]
+ },
+ "effectiveDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "exchangeRate": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "transactionCurrency": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/CustomList.json b/_data/taps/schemas/netsuite/v2/json/CustomList.json
new file mode 100644
index 000000000..79cbfd1d0
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/CustomList.json
@@ -0,0 +1,68 @@
+{
+ "properties": {
+ "convertToCustomRecord": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "customValueList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isMatrixOption": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isOrdered": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "owner": {
+ "type": [
+ "varies"
+ ]
+ },
+ "scriptId": {
+ "type": [
+ "string"
+ ]
+ },
+ "translationsList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Customer.json b/_data/taps/schemas/netsuite/v2/json/Customer.json
new file mode 100644
index 000000000..4fc240dc2
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Customer.json
@@ -0,0 +1,745 @@
+{
+ "properties": {
+ "accessRole": {
+ "type": [
+ "varies"
+ ]
+ },
+ "accountNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "addressbookList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "aging": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "aging1": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "aging2": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "aging3": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "aging4": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "alcoholRecipientType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "altEmail": {
+ "type": [
+ "string"
+ ]
+ },
+ "altName": {
+ "type": [
+ "string"
+ ]
+ },
+ "altPhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "assignedWebSite": {
+ "type": [
+ "string"
+ ]
+ },
+ "balance": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "billPay": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "buyingReason": {
+ "type": [
+ "varies"
+ ]
+ },
+ "buyingTimeFrame": {
+ "type": [
+ "varies"
+ ]
+ },
+ "campaignCategory": {
+ "type": [
+ "varies"
+ ]
+ },
+ "category": {
+ "type": [
+ "varies"
+ ]
+ },
+ "clickStream": {
+ "type": [
+ "string"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "companyName": {
+ "type": [
+ "string"
+ ]
+ },
+ "consolAging": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "consolAging1": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "consolAging2": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "consolAging3": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "consolAging4": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "consolBalance": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "consolDaysOverdue": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "consolDepositBalance": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "consolOverdueBalance": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "consolUnbilledOrders": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "contactRolesList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "contribPct": {
+ "type": [
+ "string"
+ ]
+ },
+ "creditCardsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "creditHoldOverride": {
+ "type": [
+ "varies"
+ ]
+ },
+ "creditLimit": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "currency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "currencyList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "dateCreated": {
+ "type": [
+ "string"
+ ]
+ },
+ "daysOverdue": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "defaultAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "defaultAllocationStrategy": {
+ "type": [
+ "string"
+ ]
+ },
+ "defaultOrderPriority": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "defaultTaxReg": {
+ "type": [
+ "string"
+ ]
+ },
+ "depositBalance": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "displaySymbol": {
+ "type": [
+ "string"
+ ]
+ },
+ "downloadList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "drAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "emailPreference": {
+ "type": [
+ "varies"
+ ]
+ },
+ "emailTransactions": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "entityId": {
+ "type": [
+ "string"
+ ]
+ },
+ "entityStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "estimatedBudget": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "faxTransactions": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "firstName": {
+ "type": [
+ "string"
+ ]
+ },
+ "firstVisit": {
+ "type": [
+ "string"
+ ]
+ },
+ "fxAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "giveAccess": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "globalSubscriptionStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "groupPricingList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "homePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "image": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isBudgetApproved": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isPerson": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "itemPricingList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "keywords": {
+ "type": [
+ "string"
+ ]
+ },
+ "language": {
+ "type": [
+ "varies"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastName": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastPageVisited": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastVisit": {
+ "type": [
+ "string"
+ ]
+ },
+ "leadSource": {
+ "type": [
+ "varies"
+ ]
+ },
+ "middleName": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobilePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "monthlyClosing": {
+ "type": [
+ "varies"
+ ]
+ },
+ "negativeNumberFormat": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "numberFormat": {
+ "type": [
+ "varies"
+ ]
+ },
+ "openingBalance": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "openingBalanceAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "openingBalanceDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "overdueBalance": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "overrideCurrencyFormat": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "partner": {
+ "type": [
+ "varies"
+ ]
+ },
+ "partnersList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "password": {
+ "type": [
+ "string"
+ ]
+ },
+ "password2": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "phoneticName": {
+ "type": [
+ "string"
+ ]
+ },
+ "prefCCProcessor": {
+ "type": [
+ "varies"
+ ]
+ },
+ "priceLevel": {
+ "type": [
+ "varies"
+ ]
+ },
+ "printOnCheckAs": {
+ "type": [
+ "string"
+ ]
+ },
+ "printTransactions": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "receivablesAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "referrer": {
+ "type": [
+ "string"
+ ]
+ },
+ "reminderDays": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "representingSubsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "requirePwdChange": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "resaleNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "salesGroup": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salesReadiness": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salesRep": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salesTeamList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salutation": {
+ "type": [
+ "string"
+ ]
+ },
+ "sendEmail": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "shipComplete": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "shippingItem": {
+ "type": [
+ "varies"
+ ]
+ },
+ "sourceWebSite": {
+ "type": [
+ "string"
+ ]
+ },
+ "stage": {
+ "type": [
+ "varies"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "subscriptionsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "symbolPlacement": {
+ "type": [
+ "varies"
+ ]
+ },
+ "syncPartnerTeams": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "taxExempt": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "taxItem": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxRegistrationList": {
+ "type": [
+ "string"
+ ]
+ },
+ "taxable": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "terms": {
+ "type": [
+ "varies"
+ ]
+ },
+ "territory": {
+ "type": [
+ "varies"
+ ]
+ },
+ "thirdPartyAcct": {
+ "type": [
+ "string"
+ ]
+ },
+ "thirdPartyCarrier": {
+ "type": [
+ "string"
+ ]
+ },
+ "thirdPartyCountry": {
+ "type": [
+ "varies"
+ ]
+ },
+ "thirdPartyZipcode": {
+ "type": [
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "unbilledOrders": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ },
+ "vatRegNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "visits": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "webLead": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/CustomerCategory.json b/_data/taps/schemas/netsuite/v2/json/CustomerCategory.json
new file mode 100644
index 000000000..f9f263056
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/CustomerCategory.json
@@ -0,0 +1,30 @@
+{
+ "properties": {
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/CustomerMessage.json b/_data/taps/schemas/netsuite/v2/json/CustomerMessage.json
new file mode 100644
index 000000000..3994bd436
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/CustomerMessage.json
@@ -0,0 +1,41 @@
+{
+ "properties": {
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "preferred": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/CustomerStatus.json b/_data/taps/schemas/netsuite/v2/json/CustomerStatus.json
new file mode 100644
index 000000000..419834ae3
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/CustomerStatus.json
@@ -0,0 +1,52 @@
+{
+ "properties": {
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "includeInLeadReports": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "probability": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "stage": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/CustomerSubsidiaryRelationship.json b/_data/taps/schemas/netsuite/v2/json/CustomerSubsidiaryRelationship.json
new file mode 100644
index 000000000..2ac0dc6af
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/CustomerSubsidiaryRelationship.json
@@ -0,0 +1,45 @@
+{
+ "properties": {
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "entity": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isPrimarySub": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "primaryCurrency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Deleted.json b/_data/taps/schemas/netsuite/v2/json/Deleted.json
new file mode 100644
index 000000000..03b523681
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Deleted.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "customRecord": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "deletedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "scriptId": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Department.json b/_data/taps/schemas/netsuite/v2/json/Department.json
new file mode 100644
index 000000000..81bb128b8
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Department.json
@@ -0,0 +1,56 @@
+{
+ "properties": {
+ "classTranslationList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "includeChildren": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiaryList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Employee.json b/_data/taps/schemas/netsuite/v2/json/Employee.json
new file mode 100644
index 000000000..576e44014
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Employee.json
@@ -0,0 +1,582 @@
+{
+ "properties": {
+ "IPAddressRule": {
+ "type": [
+ "string"
+ ]
+ },
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "accountNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "accruedTimeList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "addressbookList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "adpId": {
+ "type": [
+ "string"
+ ]
+ },
+ "altName": {
+ "type": [
+ "string"
+ ]
+ },
+ "approvalLimit": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "approver": {
+ "type": [
+ "varies"
+ ]
+ },
+ "baseWage": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "baseWageType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billPay": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "billingClass": {
+ "type": [
+ "varies"
+ ]
+ },
+ "birthDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "bonusTarget": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "bonusTargetComment": {
+ "type": [
+ "string"
+ ]
+ },
+ "bonusTargetPayFrequency": {
+ "type": [
+ "string"
+ ]
+ },
+ "bonusTargetType": {
+ "type": [
+ "string"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "commissionPaymentPreference": {
+ "type": [
+ "varies"
+ ]
+ },
+ "companyContributionList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "compensationCurrency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "concurrentWebServicesUser": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "dateCreated": {
+ "type": [
+ "string"
+ ]
+ },
+ "deductionList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "defaultAcctCorpCardExp": {
+ "type": [
+ "string"
+ ]
+ },
+ "defaultAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "defaultExpenseReportCurrency": {
+ "type": [
+ "string"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "directDeposit": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "directDepositList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "earningList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "eligibleForCommission": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "emergencyContactList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "employeeStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "employeeType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "entityId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ethnicity": {
+ "type": [
+ "varies"
+ ]
+ },
+ "expenseLimit": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "firstName": {
+ "type": [
+ "string"
+ ]
+ },
+ "gender": {
+ "type": [
+ "varies"
+ ]
+ },
+ "giveAccess": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "globalSubscriptionStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "hasOfflineAccess": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "hcmPositionList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "hireDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "homePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "hrEducationList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "image": {
+ "type": [
+ "varies"
+ ]
+ },
+ "inheritIPRules": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "initials": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isJobManager": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isJobResource": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isSalesRep": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isSupportRep": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "job": {
+ "type": [
+ "varies"
+ ]
+ },
+ "jobDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "laborCost": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastName": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastPaidDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastReviewDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "maritalStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "middleName": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobilePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "nextReviewDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "officePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "password": {
+ "type": [
+ "string"
+ ]
+ },
+ "password2": {
+ "type": [
+ "string"
+ ]
+ },
+ "payFrequency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "phoneticName": {
+ "type": [
+ "string"
+ ]
+ },
+ "purchaseOrderApprovalLimit": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "purchaseOrderApprover": {
+ "type": [
+ "varies"
+ ]
+ },
+ "purchaseOrderLimit": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "ratesList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "releaseDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "requirePwdChange": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "rolesList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salesRole": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salutation": {
+ "type": [
+ "string"
+ ]
+ },
+ "sendEmail": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "socialSecurityNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "startDateTimeOffCalc": {
+ "type": [
+ "string"
+ ]
+ },
+ "subscriptionsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "supervisor": {
+ "type": [
+ "varies"
+ ]
+ },
+ "targetUtilization": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "template": {
+ "type": [
+ "varies"
+ ]
+ },
+ "terminationCategory": {
+ "type": [
+ "varies"
+ ]
+ },
+ "terminationDetails": {
+ "type": [
+ "string"
+ ]
+ },
+ "terminationReason": {
+ "type": [
+ "varies"
+ ]
+ },
+ "terminationRegretted": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeApprover": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeOffPlan": {
+ "type": [
+ "varies"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "usePerquest": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "useTimeData": {
+ "type": [
+ "varies"
+ ]
+ },
+ "workAssignment": {
+ "type": [
+ "varies"
+ ]
+ },
+ "workCalendar": {
+ "type": [
+ "varies"
+ ]
+ },
+ "workplace": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/EntityGroup.json b/_data/taps/schemas/netsuite/v2/json/EntityGroup.json
new file mode 100644
index 000000000..0258fd227
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/EntityGroup.json
@@ -0,0 +1,145 @@
+{
+ "properties": {
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "groupName": {
+ "type": [
+ "string"
+ ]
+ },
+ "groupOwner": {
+ "type": [
+ "varies"
+ ]
+ },
+ "groupType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isFunctionalTeam": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isManufacturingWorkCenter": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isPrivate": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isProductTeam": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isSalesRep": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isSalesTeam": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isSavedSearch": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isSupportRep": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "issueRole": {
+ "type": [
+ "varies"
+ ]
+ },
+ "laborResources": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "machineResources": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parentGroupType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "restrictionGroup": {
+ "type": [
+ "varies"
+ ]
+ },
+ "savedSearch": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "workCalendar": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/ExpenseCategory.json b/_data/taps/schemas/netsuite/v2/json/ExpenseCategory.json
new file mode 100644
index 000000000..2dd1b3f88
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/ExpenseCategory.json
@@ -0,0 +1,77 @@
+{
+ "properties": {
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "defaultRate": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "expenseAcct": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "rateRequired": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "ratesList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiaryList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "translationsList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/FairValuePrice.json b/_data/taps/schemas/netsuite/v2/json/FairValuePrice.json
new file mode 100644
index 000000000..39e040538
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/FairValuePrice.json
@@ -0,0 +1,115 @@
+{
+ "properties": {
+ "currency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "dimensionList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "fairValue": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "fairValueFormula": {
+ "type": [
+ "varies"
+ ]
+ },
+ "fairValueRangePolicy": {
+ "type": [
+ "varies"
+ ]
+ },
+ "highValue": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "highValuePercent": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isVsoePrice": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "item": {
+ "type": [
+ "varies"
+ ]
+ },
+ "itemRevenueCategory": {
+ "type": [
+ "varies"
+ ]
+ },
+ "lowValue": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "lowValuePercent": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "units": {
+ "type": [
+ "varies"
+ ]
+ },
+ "unitsType": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/File.json b/_data/taps/schemas/netsuite/v2/json/File.json
new file mode 100644
index 000000000..93c8e98be
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/File.json
@@ -0,0 +1,170 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "string"
+ ]
+ },
+ "altTagCaption": {
+ "type": [
+ "string"
+ ]
+ },
+ "attachFrom": {
+ "type": [
+ "varies"
+ ]
+ },
+ "bundleable": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "caption": {
+ "type": [
+ "string"
+ ]
+ },
+ "content": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "department": {
+ "type": [
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "encoding": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "featuredDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "fileSize": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "fileType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "folder": {
+ "type": [
+ "varies"
+ ]
+ },
+ "hideInBundle": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isOnline": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isPrivate": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "mediaFile": {
+ "type": [
+ "varies"
+ ]
+ },
+ "mediaTypeName": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "owner": {
+ "type": [
+ "varies"
+ ]
+ },
+ "siteCategoryList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "siteDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "storeDisplayThumbnail": {
+ "type": [
+ "varies"
+ ]
+ },
+ "textFileEncoding": {
+ "type": [
+ "varies"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ },
+ "urlComponent": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Folder.json b/_data/taps/schemas/netsuite/v2/json/Folder.json
new file mode 100644
index 000000000..55c4a141b
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Folder.json
@@ -0,0 +1,94 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "bundleable": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "folderType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "group": {
+ "type": [
+ "varies"
+ ]
+ },
+ "hideInBundle": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isOnline": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isPrivate": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/GiftCertificate.json b/_data/taps/schemas/netsuite/v2/json/GiftCertificate.json
new file mode 100644
index 000000000..9d1b98d1b
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/GiftCertificate.json
@@ -0,0 +1,66 @@
+{
+ "properties": {
+ "amountRemaining": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "expirationDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "giftCertCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "originalAmount": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "sender": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/GlobalAccountMapping.json b/_data/taps/schemas/netsuite/v2/json/GlobalAccountMapping.json
new file mode 100644
index 000000000..a6135b312
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/GlobalAccountMapping.json
@@ -0,0 +1,79 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "accountingBook": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customDimension": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "destinationAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "effectiveDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "sourceAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/HcmJob.json b/_data/taps/schemas/netsuite/v2/json/HcmJob.json
new file mode 100644
index 000000000..0e9f7102c
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/HcmJob.json
@@ -0,0 +1,50 @@
+{
+ "properties": {
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "employmentCategory": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "jobId": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/InboundShipment.json b/_data/taps/schemas/netsuite/v2/json/InboundShipment.json
new file mode 100644
index 000000000..b8bfab533
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/InboundShipment.json
@@ -0,0 +1,89 @@
+{
+ "properties": {
+ "actualDeliveryDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "actualShippingDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "billOfLading": {
+ "type": [
+ "string"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "expectedDeliveryDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "expectedShippingDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalDocumentNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "itemsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "shipmentBaseCurrency": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipmentMemo": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipmentNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipmentStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "vesselNumber": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/InventoryNumber.json b/_data/taps/schemas/netsuite/v2/json/InventoryNumber.json
new file mode 100644
index 000000000..95d37f5a7
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/InventoryNumber.json
@@ -0,0 +1,59 @@
+{
+ "properties": {
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "expirationDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "inventoryNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "item": {
+ "type": [
+ "varies"
+ ]
+ },
+ "locationsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "units": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Issue.json b/_data/taps/schemas/netsuite/v2/json/Issue.json
new file mode 100644
index 000000000..c89167737
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Issue.json
@@ -0,0 +1,223 @@
+{
+ "properties": {
+ "assigned": {
+ "type": [
+ "varies"
+ ]
+ },
+ "brokenInVersionList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "buildBroken": {
+ "type": [
+ "varies"
+ ]
+ },
+ "buildFixed": {
+ "type": [
+ "varies"
+ ]
+ },
+ "buildTarget": {
+ "type": [
+ "varies"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "emailAssignee": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "emailCellsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "emailEmployeesList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalAbstract": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalDetails": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "fixedInVersionList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isOwner": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isReviewed": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isShowStopper": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "issueAbstract": {
+ "type": [
+ "string"
+ ]
+ },
+ "issueNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "issueStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "issueTagsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "issueType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "item": {
+ "type": [
+ "varies"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "module": {
+ "type": [
+ "varies"
+ ]
+ },
+ "newDetails": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "priority": {
+ "type": [
+ "varies"
+ ]
+ },
+ "product": {
+ "type": [
+ "varies"
+ ]
+ },
+ "productTeam": {
+ "type": [
+ "varies"
+ ]
+ },
+ "relatedIssuesList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "reportedBy": {
+ "type": [
+ "varies"
+ ]
+ },
+ "reproduce": {
+ "type": [
+ "varies"
+ ]
+ },
+ "reviewer": {
+ "type": [
+ "varies"
+ ]
+ },
+ "severity": {
+ "type": [
+ "varies"
+ ]
+ },
+ "source": {
+ "type": [
+ "varies"
+ ]
+ },
+ "targetVersionList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "trackCode": {
+ "type": [
+ "varies"
+ ]
+ },
+ "versionBroken": {
+ "type": [
+ "varies"
+ ]
+ },
+ "versionFixed": {
+ "type": [
+ "varies"
+ ]
+ },
+ "versionTarget": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Item.json b/_data/taps/schemas/netsuite/v2/json/Item.json
new file mode 100644
index 000000000..f65a388ae
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Item.json
@@ -0,0 +1,1562 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "account": {
+ "type": [
+ "varies"
+ ]
+ },
+ "accountingBookDetailList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "alternateDemandSourceItem": {
+ "type": [
+ "varies"
+ ]
+ },
+ "amortizationPeriod": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "amortizationTemplate": {
+ "type": [
+ "varies"
+ ]
+ },
+ "assetAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "authCodesList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "autoLeadTime": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "autoPreferredStockLevel": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "autoReorderPoint": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "availableToPartners": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "averageCost": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "backwardConsumptionDays": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "billExchRateVarianceAcct": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billOfMaterialsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billPriceVarianceAcct": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billQtyVarianceAcct": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billingRatesMatrix": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billingSchedule": {
+ "type": [
+ "varies"
+ ]
+ },
+ "binNumberList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "buildEntireAssembly": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "buildTime": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "buildTimeLotSize": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "cogsAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "consumptionUnit": {
+ "type": [
+ "string"
+ ]
+ },
+ "contingentRevenueHandling": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "conversionRate": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "copyDescription": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "cost": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "costCategory": {
+ "type": [
+ "varies"
+ ]
+ },
+ "costEstimate": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "costEstimateType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "costEstimateUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "costUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "costingMethod": {
+ "type": [
+ "varies"
+ ]
+ },
+ "costingMethodDisplay": {
+ "type": [
+ "string"
+ ]
+ },
+ "countryOfManufacture": {
+ "type": [
+ "varies"
+ ]
+ },
+ "createJob": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "createRevenuePlansOn": {
+ "type": [
+ "varies"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "string"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "dateConvertedToInv": {
+ "type": [
+ "string"
+ ]
+ },
+ "daysBeforeExpiration": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "defaultItemShipMethod": {
+ "type": [
+ "varies"
+ ]
+ },
+ "defaultReturnCost": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "defaultRevision": {
+ "type": [
+ "string"
+ ]
+ },
+ "deferRevRec": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "deferralAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "deferredRevenueAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "demandModifier": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "demandSource": {
+ "type": [
+ "varies"
+ ]
+ },
+ "demandTimeFence": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "directRevenuePosting": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "string"
+ ]
+ },
+ "distributionCategory": {
+ "type": [
+ "varies"
+ ]
+ },
+ "distributionNetwork": {
+ "type": [
+ "varies"
+ ]
+ },
+ "dontShowPrice": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "dropshipExpenseAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "effectiveBomControl": {
+ "type": [
+ "varies"
+ ]
+ },
+ "enableCatchWeight": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "enforceMinQtyInternally": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "excludeFromSitemap": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "expenseAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "expirationDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "featuredDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "fixedBuildTime": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "fixedLotSize": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "forwardConsumptionDays": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "fraudRisk": {
+ "type": [
+ "varies"
+ ]
+ },
+ "futureHorizon": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "gainLossAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "generateAccruals": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "handlingCost": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "handlingCostUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "hazmatHazardClass": {
+ "type": [
+ "string"
+ ]
+ },
+ "hazmatId": {
+ "type": [
+ "string"
+ ]
+ },
+ "hazmatItemUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "hazmatItemUnitsQty": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "hazmatPackingGroup": {
+ "type": [
+ "varies"
+ ]
+ },
+ "hazmatShippingName": {
+ "type": [
+ "string"
+ ]
+ },
+ "immediateDownload": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "includeChildren": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "includeStartEndLines": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "incomeAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "intercoCogsAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "intercoDefRevAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "intercoExpenseAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "intercoIncomeAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "invtClassification": {
+ "type": [
+ "varies"
+ ]
+ },
+ "invtCountInterval": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "isDonationItem": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isDropShipItem": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isFulfillable": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isGcoCompliant": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isHazmatItem": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isOnline": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isPhantom": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isPreTax": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isSpecialOrderItem": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isSpecialWorkOrderItem": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isStorePickupAllowed": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isTaxable": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isVsoeBundle": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "issueProduct": {
+ "type": [
+ "varies"
+ ]
+ },
+ "itemCarrier": {
+ "type": [
+ "varies"
+ ]
+ },
+ "itemId": {
+ "type": [
+ "string"
+ ]
+ },
+ "itemNumberOptionsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "itemOptionsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "itemRevenueCategory": {
+ "type": [
+ "varies"
+ ]
+ },
+ "itemShipMethodList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "itemTaskTemplatesList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "itemVendorList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "lastInvtCountDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastPurchasePrice": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "leadTime": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "liabilityAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "locationsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "lowerWarningLimit": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "manufacturer": {
+ "type": [
+ "string"
+ ]
+ },
+ "manufacturerAddr1": {
+ "type": [
+ "string"
+ ]
+ },
+ "manufacturerCity": {
+ "type": [
+ "string"
+ ]
+ },
+ "manufacturerState": {
+ "type": [
+ "string"
+ ]
+ },
+ "manufacturerTariff": {
+ "type": [
+ "string"
+ ]
+ },
+ "manufacturerTaxId": {
+ "type": [
+ "string"
+ ]
+ },
+ "manufacturerZip": {
+ "type": [
+ "string"
+ ]
+ },
+ "manufactureraddr1": {
+ "type": [
+ "string"
+ ]
+ },
+ "manufacturingChargeItem": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "matchBillToReceipt": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "matrixItemNameTemplate": {
+ "type": [
+ "string"
+ ]
+ },
+ "matrixOptionList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "matrixType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "maxDonationAmount": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "maximumQuantity": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "memberList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "metaTagHtml": {
+ "type": [
+ "string"
+ ]
+ },
+ "minimumQuantity": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "minimumQuantityUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "mpn": {
+ "type": [
+ "string"
+ ]
+ },
+ "multManufactureAddr": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "nexTagCategory": {
+ "type": [
+ "string"
+ ]
+ },
+ "nextInvtCountDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "noPriceMessage": {
+ "type": [
+ "string"
+ ]
+ },
+ "nonPosting": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "numOfAllowedDownloads": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "numbersList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "offerSupport": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "onHandValueMli": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "onSpecial": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "originalItemSubtype": {
+ "type": [
+ "varies"
+ ]
+ },
+ "originalItemType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "outOfStockBehavior": {
+ "type": [
+ "varies"
+ ]
+ },
+ "outOfStockMessage": {
+ "type": [
+ "string"
+ ]
+ },
+ "overallQuantityPricingType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "overheadType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "pageTitle": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "paymentMethod": {
+ "type": [
+ "varies"
+ ]
+ },
+ "periodicLotSizeDays": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "periodicLotSizeType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "planningItemCategory": {
+ "type": [
+ "string"
+ ]
+ },
+ "preferenceCriterion": {
+ "type": [
+ "varies"
+ ]
+ },
+ "preferredLocation": {
+ "type": [
+ "varies"
+ ]
+ },
+ "preferredStockLevel": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "preferredStockLevelDays": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "preferredStockLevelUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "presentationItemList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "pricesIncludeTax": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "pricingGroup": {
+ "type": [
+ "varies"
+ ]
+ },
+ "pricingMatrix": {
+ "type": [
+ "varies"
+ ]
+ },
+ "printItems": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "prodPriceVarianceAcct": {
+ "type": [
+ "varies"
+ ]
+ },
+ "prodQtyVarianceAcct": {
+ "type": [
+ "varies"
+ ]
+ },
+ "producer": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "productFeedList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "purchaseDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "purchaseOrderAmount": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "purchaseOrderQuantity": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "purchaseOrderQuantityDiff": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "purchasePriceVarianceAcct": {
+ "type": [
+ "varies"
+ ]
+ },
+ "purchaseTaxCode": {
+ "type": [
+ "varies"
+ ]
+ },
+ "purchaseUnit": {
+ "type": [
+ "varies"
+ ]
+ },
+ "quantityAvailable": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "quantityAvailableUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "quantityBackOrdered": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "quantityCommitted": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "quantityCommittedUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "quantityOnHand": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "quantityOnHandUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "quantityOnOrder": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "quantityOnOrderUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "quantityPricingSchedule": {
+ "type": [
+ "varies"
+ ]
+ },
+ "quantityReorderUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "rate": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "receiptAmount": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "receiptQuantity": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "receiptQuantityDiff": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "relatedItemsDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "reorderMultiple": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "reorderPoint": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "reorderPointUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "rescheduleInDays": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "rescheduleOutDays": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "residual": {
+ "type": [
+ "string"
+ ]
+ },
+ "revRecForecastRule": {
+ "type": [
+ "varies"
+ ]
+ },
+ "revRecSchedule": {
+ "type": [
+ "varies"
+ ]
+ },
+ "revReclassFXAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "revenueAllocationGroup": {
+ "type": [
+ "varies"
+ ]
+ },
+ "revenueRecognitionRule": {
+ "type": [
+ "varies"
+ ]
+ },
+ "roundUpAsComponent": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "safetyStockLevel": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "safetyStockLevelDays": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "safetyStockLevelUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "saleUnit": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salesDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "salesTaxCode": {
+ "type": [
+ "varies"
+ ]
+ },
+ "scheduleBCode": {
+ "type": [
+ "varies"
+ ]
+ },
+ "scheduleBNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "scheduleBQuantity": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "scrapAcct": {
+ "type": [
+ "varies"
+ ]
+ },
+ "searchKeywords": {
+ "type": [
+ "string"
+ ]
+ },
+ "seasonalDemand": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "secondaryBaseUnit": {
+ "type": [
+ "string"
+ ]
+ },
+ "secondaryConsumptionUnit": {
+ "type": [
+ "varies"
+ ]
+ },
+ "secondaryPurchaseUnit": {
+ "type": [
+ "string"
+ ]
+ },
+ "secondarySaleUnit": {
+ "type": [
+ "string"
+ ]
+ },
+ "secondaryStockUnit": {
+ "type": [
+ "string"
+ ]
+ },
+ "secondaryUnitsType": {
+ "type": [
+ "string"
+ ]
+ },
+ "serialNumbers": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipIndividually": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "shipPackage": {
+ "type": [
+ "varies"
+ ]
+ },
+ "shippingCost": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "shippingCostUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "shoppingDotComCategory": {
+ "type": [
+ "string"
+ ]
+ },
+ "shopzillaCategoryId": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "showDefaultDonationAmount": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "siteCategoryList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "sitemapPriority": {
+ "type": [
+ "varies"
+ ]
+ },
+ "softDescriptor": {
+ "type": [
+ "varies"
+ ]
+ },
+ "specialsDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "stockDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "stockUnit": {
+ "type": [
+ "varies"
+ ]
+ },
+ "storeDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "storeDetailedDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "storeDisplayImage": {
+ "type": [
+ "varies"
+ ]
+ },
+ "storeDisplayName": {
+ "type": [
+ "string"
+ ]
+ },
+ "storeDisplayThumbnail": {
+ "type": [
+ "varies"
+ ]
+ },
+ "storeItemTemplate": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiaryList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "supplyLotSizingMethod": {
+ "type": [
+ "varies"
+ ]
+ },
+ "supplyReplenishmentMethod": {
+ "type": [
+ "varies"
+ ]
+ },
+ "supplyTimeFence": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "supplyType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxSchedule": {
+ "type": [
+ "varies"
+ ]
+ },
+ "totalValue": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "trackLandedCost": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "transferPrice": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "translationsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "unbuildVarianceAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "undepFunds": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "unitsType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "upcCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "upperWarningLimit": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "urlComponent": {
+ "type": [
+ "string"
+ ]
+ },
+ "useBins": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "useComponentYield": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "useMarginalRates": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "vendor": {
+ "type": [
+ "varies"
+ ]
+ },
+ "vendorName": {
+ "type": [
+ "string"
+ ]
+ },
+ "vsoeDeferral": {
+ "type": [
+ "varies"
+ ]
+ },
+ "vsoeDelivered": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "vsoePermitDiscount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "vsoePrice": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "vsoeSopGroup": {
+ "type": [
+ "varies"
+ ]
+ },
+ "weight": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "weightUnit": {
+ "type": [
+ "varies"
+ ]
+ },
+ "weightUnits": {
+ "type": [
+ "string"
+ ]
+ },
+ "wipAcct": {
+ "type": [
+ "varies"
+ ]
+ },
+ "wipVarianceAcct": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/ItemAccountMapping.json b/_data/taps/schemas/netsuite/v2/json/ItemAccountMapping.json
new file mode 100644
index 000000000..a31b88ee3
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/ItemAccountMapping.json
@@ -0,0 +1,84 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "accountingBook": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customDimension": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "destinationAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "effectiveDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "itemAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "sourceAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/ItemDemandPlan.json b/_data/taps/schemas/netsuite/v2/json/ItemDemandPlan.json
new file mode 100644
index 000000000..99344f49e
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/ItemDemandPlan.json
@@ -0,0 +1,85 @@
+{
+ "properties": {
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "demandPlanCalendarType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "demandPlanMatrix": {
+ "type": [
+ "varies"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "item": {
+ "type": [
+ "varies"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "month": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "units": {
+ "type": [
+ "varies"
+ ]
+ },
+ "year": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/ItemRevision.json b/_data/taps/schemas/netsuite/v2/json/ItemRevision.json
new file mode 100644
index 000000000..b75209fa3
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/ItemRevision.json
@@ -0,0 +1,50 @@
+{
+ "properties": {
+ "effectiveDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "inactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "item": {
+ "type": [
+ "varies"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "obsoleteDate": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/ItemSupplyPlan.json b/_data/taps/schemas/netsuite/v2/json/ItemSupplyPlan.json
new file mode 100644
index 000000000..3b17fdb41
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/ItemSupplyPlan.json
@@ -0,0 +1,59 @@
+{
+ "properties": {
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "item": {
+ "type": [
+ "varies"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "orderList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "units": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Job.json b/_data/taps/schemas/netsuite/v2/json/Job.json
new file mode 100644
index 000000000..4eeb2f121
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Job.json
@@ -0,0 +1,482 @@
+{
+ "properties": {
+ "accountNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "actualTime": {
+ "type": [
+ "varies"
+ ]
+ },
+ "addressbookList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "allocatePayrollExpenses": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "allowAllResourcesForTasks": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "allowExpenses": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "allowTime": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "altName": {
+ "type": [
+ "string"
+ ]
+ },
+ "altPhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "applyProjectExpenseTypeToAll": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "billPay": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "billingRateCard": {
+ "type": [
+ "string"
+ ]
+ },
+ "billingSchedule": {
+ "type": [
+ "varies"
+ ]
+ },
+ "calculatedEndDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "calculatedEndDateBaseline": {
+ "type": [
+ "string"
+ ]
+ },
+ "calculatedStartDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "category": {
+ "type": [
+ "varies"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "companyName": {
+ "type": [
+ "string"
+ ]
+ },
+ "createChargeRule": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "creditCardsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "currency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "dateCreated": {
+ "type": [
+ "string"
+ ]
+ },
+ "defaultAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "emailPreference": {
+ "type": [
+ "varies"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "entityId": {
+ "type": [
+ "string"
+ ]
+ },
+ "entityStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "estimateRevRecTemplate": {
+ "type": [
+ "varies"
+ ]
+ },
+ "estimatedCost": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "estimatedGrossProfit": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "estimatedGrossProfitPercent": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "estimatedLaborCost": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "estimatedLaborCostBaseline": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "estimatedLaborRevenue": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "estimatedRevenue": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "estimatedTime": {
+ "type": [
+ "varies"
+ ]
+ },
+ "estimatedTimeOverride": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "fxRate": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "globalSubscriptionStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "includeCrmTasksInTotals": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isExemptTime": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isProductiveTime": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isUtilizedTime": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "jobBillingType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "jobItem": {
+ "type": [
+ "varies"
+ ]
+ },
+ "jobPrice": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "jobResourcesList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "jobType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "language": {
+ "type": [
+ "varies"
+ ]
+ },
+ "lastBaselineDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "limitTimeToAssignees": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "materializeTime": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "milestonesList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "openingBalance": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "openingBalanceAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "openingBalanceDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "percentComplete": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "percentCompleteOverrideList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "percentTimeComplete": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "phoneticName": {
+ "type": [
+ "string"
+ ]
+ },
+ "plStatementList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "plannedWork": {
+ "type": [
+ "string"
+ ]
+ },
+ "plannedWorkBaseline": {
+ "type": [
+ "string"
+ ]
+ },
+ "projectExpenseType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "projectManager": {
+ "type": [
+ "string"
+ ]
+ },
+ "projectedEndDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "projectedEndDateBaseline": {
+ "type": [
+ "string"
+ ]
+ },
+ "revRecForecastRule": {
+ "type": [
+ "varies"
+ ]
+ },
+ "scheduledEndDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "schedulingMethod": {
+ "type": [
+ "string"
+ ]
+ },
+ "sourceServiceItemFromRateCard": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "startDateBaseline": {
+ "type": [
+ "string"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeApproval": {
+ "type": [
+ "string"
+ ]
+ },
+ "timeRemaining": {
+ "type": [
+ "varies"
+ ]
+ },
+ "usePercentCompleteOverride": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "workplace": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/JobStatus.json b/_data/taps/schemas/netsuite/v2/json/JobStatus.json
new file mode 100644
index 000000000..d2b8e459a
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/JobStatus.json
@@ -0,0 +1,35 @@
+{
+ "properties": {
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/JobType.json b/_data/taps/schemas/netsuite/v2/json/JobType.json
new file mode 100644
index 000000000..4bb05c8c4
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/JobType.json
@@ -0,0 +1,35 @@
+{
+ "properties": {
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Location.json b/_data/taps/schemas/netsuite/v2/json/Location.json
new file mode 100644
index 000000000..2b4c216e1
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Location.json
@@ -0,0 +1,194 @@
+{
+ "properties": {
+ "allowStorePickup": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "autoAssignmentRegionSetting": {
+ "type": [
+ "varies"
+ ]
+ },
+ "bufferStock": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "businessHoursList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "classTranslationList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "dailyShippingCapacity": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "excludeLocationRegionsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "geolocationMethod": {
+ "type": [
+ "varies"
+ ]
+ },
+ "includeChildren": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "includeInControlTower": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "includeLocationRegionsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "locationType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "logo": {
+ "type": [
+ "varies"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "mainAddress": {
+ "type": [
+ "varies"
+ ]
+ },
+ "makeInventoryAvailable": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "makeInventoryAvailableStore": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nextPickupCutOffTime": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "returnAddress": {
+ "type": [
+ "varies"
+ ]
+ },
+ "soPredConfidence": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "soPredictedDays": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "storePickupBufferStock": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "subsidiaryList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "varies"
+ ]
+ },
+ "totalShippingCapacity": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "tranPrefix": {
+ "type": [
+ "string"
+ ]
+ },
+ "useBins": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/ManufacturingCostTemplate.json b/_data/taps/schemas/netsuite/v2/json/ManufacturingCostTemplate.json
new file mode 100644
index 000000000..a852988e7
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/ManufacturingCostTemplate.json
@@ -0,0 +1,55 @@
+{
+ "properties": {
+ "costDetailList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/ManufacturingOperationTask.json b/_data/taps/schemas/netsuite/v2/json/ManufacturingOperationTask.json
new file mode 100644
index 000000000..5b064d75b
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/ManufacturingOperationTask.json
@@ -0,0 +1,150 @@
+{
+ "properties": {
+ "actualWork": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "autoCalculateLag": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "completedQuantity": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "costDetailList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "estimatedWork": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "inputQuantity": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "laborResources": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "machineResources": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "manufacturingCostTemplate": {
+ "type": [
+ "varies"
+ ]
+ },
+ "manufacturingWorkCenter": {
+ "type": [
+ "varies"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "operationSequence": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "order": {
+ "type": [
+ "varies"
+ ]
+ },
+ "predecessorList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "remainingWork": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "runRate": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "setupTime": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "varies"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "workOrder": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/ManufacturingRouting.json b/_data/taps/schemas/netsuite/v2/json/ManufacturingRouting.json
new file mode 100644
index 000000000..cca870f76
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/ManufacturingRouting.json
@@ -0,0 +1,87 @@
+{
+ "properties": {
+ "autoCalculateLag": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "billOfMaterials": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isDefault": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "item": {
+ "type": [
+ "varies"
+ ]
+ },
+ "locationList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "routingComponentList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "routingStepList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/MerchandiseHierarchyNode.json b/_data/taps/schemas/netsuite/v2/json/MerchandiseHierarchyNode.json
new file mode 100644
index 000000000..c0d31611b
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/MerchandiseHierarchyNode.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "hierarchyVersionsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Message.json b/_data/taps/schemas/netsuite/v2/json/Message.json
new file mode 100644
index 000000000..4b5f23390
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Message.json
@@ -0,0 +1,117 @@
+{
+ "properties": {
+ "activity": {
+ "type": [
+ "varies"
+ ]
+ },
+ "author": {
+ "type": [
+ "varies"
+ ]
+ },
+ "authorEmail": {
+ "type": [
+ "string"
+ ]
+ },
+ "bcc": {
+ "type": [
+ "string"
+ ]
+ },
+ "cc": {
+ "type": [
+ "string"
+ ]
+ },
+ "compressAttachments": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "dateTime": {
+ "type": [
+ "string"
+ ]
+ },
+ "emailed": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "incoming": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "mediaItemList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "messageDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "recipient": {
+ "type": [
+ "varies"
+ ]
+ },
+ "recipientEmail": {
+ "type": [
+ "string"
+ ]
+ },
+ "recordName": {
+ "type": [
+ "string"
+ ]
+ },
+ "recordTypeName": {
+ "type": [
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Nexus.json b/_data/taps/schemas/netsuite/v2/json/Nexus.json
new file mode 100644
index 000000000..f3a760e45
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Nexus.json
@@ -0,0 +1,66 @@
+{
+ "properties": {
+ "country": {
+ "type": [
+ "varies"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parentNexus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "state": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxAgency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxAgencyPst": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxCode": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxDateFromFulfillment": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Note.json b/_data/taps/schemas/netsuite/v2/json/Note.json
new file mode 100644
index 000000000..1b705a9ab
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Note.json
@@ -0,0 +1,109 @@
+{
+ "properties": {
+ "activity": {
+ "type": [
+ "varies"
+ ]
+ },
+ "author": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "direction": {
+ "type": [
+ "varies"
+ ]
+ },
+ "entity": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "folder": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "item": {
+ "type": [
+ "varies"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "media": {
+ "type": [
+ "varies"
+ ]
+ },
+ "note": {
+ "type": [
+ "string"
+ ]
+ },
+ "noteDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "noteType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "record": {
+ "type": [
+ "varies"
+ ]
+ },
+ "recordType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "topic": {
+ "type": [
+ "varies"
+ ]
+ },
+ "transaction": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/NoteType.json b/_data/taps/schemas/netsuite/v2/json/NoteType.json
new file mode 100644
index 000000000..d2b8e459a
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/NoteType.json
@@ -0,0 +1,35 @@
+{
+ "properties": {
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Opportunity.json b/_data/taps/schemas/netsuite/v2/json/Opportunity.json
new file mode 100644
index 000000000..78366fc05
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Opportunity.json
@@ -0,0 +1,416 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "accountingBookDetailList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "actionItem": {
+ "type": [
+ "string"
+ ]
+ },
+ "altSalesRangeHigh": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "altSalesRangeLow": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "billAddressList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billingAddress": {
+ "type": [
+ "varies"
+ ]
+ },
+ "buyingReason": {
+ "type": [
+ "varies"
+ ]
+ },
+ "buyingTimeFrame": {
+ "type": [
+ "varies"
+ ]
+ },
+ "closeDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "competitorsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "contribPct": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "currencyName": {
+ "type": [
+ "string"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "daysOpen": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "entity": {
+ "type": [
+ "varies"
+ ]
+ },
+ "entityStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "entityTaxRegNum": {
+ "type": [
+ "varies"
+ ]
+ },
+ "estGrossProfit": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "estGrossProfitPercent": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "estimatedBudget": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "exchangeRate": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "expectedCloseDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "forecastType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isBudgetApproved": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "itemList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "job": {
+ "type": [
+ "varies"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "leadSource": {
+ "type": [
+ "varies"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "nexus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "oneTime": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "partner": {
+ "type": [
+ "varies"
+ ]
+ },
+ "partnersList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "probability": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "projAltSalesAmt": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "projectedTotal": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "rangeHigh": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "rangeLow": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "recurAnnually": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "recurMonthly": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "recurQuarterly": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "recurWeekly": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "salesGroup": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salesReadiness": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salesRep": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salesTeamList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "shipAddressList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "shipIsResidential": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "shippingAddress": {
+ "type": [
+ "varies"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiaryTaxRegNum": {
+ "type": [
+ "varies"
+ ]
+ },
+ "syncPartnerTeams": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "syncSalesTeams": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "tax2Total": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "taxDetailsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxDetailsOverride": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "taxPointDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "taxRegOverride": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "taxTotal": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "totalCostEstimate": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "tranDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "tranId": {
+ "type": [
+ "string"
+ ]
+ },
+ "vatRegNum": {
+ "type": [
+ "string"
+ ]
+ },
+ "weightedTotal": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "winLossReason": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/OtherNameCategory.json b/_data/taps/schemas/netsuite/v2/json/OtherNameCategory.json
new file mode 100644
index 000000000..f9f263056
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/OtherNameCategory.json
@@ -0,0 +1,30 @@
+{
+ "properties": {
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Partner.json b/_data/taps/schemas/netsuite/v2/json/Partner.json
new file mode 100644
index 000000000..337238ff8
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Partner.json
@@ -0,0 +1,311 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "accessRole": {
+ "type": [
+ "varies"
+ ]
+ },
+ "addressbookList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "altEmail": {
+ "type": [
+ "string"
+ ]
+ },
+ "altName": {
+ "type": [
+ "string"
+ ]
+ },
+ "bcn": {
+ "type": [
+ "string"
+ ]
+ },
+ "categoryList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "companyName": {
+ "type": [
+ "string"
+ ]
+ },
+ "contactRolesList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "dateCreated": {
+ "type": [
+ "string"
+ ]
+ },
+ "defaultAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "defaultTaxReg": {
+ "type": [
+ "string"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "eligibleForCommission": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "emailPreference": {
+ "type": [
+ "varies"
+ ]
+ },
+ "entityId": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "firstName": {
+ "type": [
+ "string"
+ ]
+ },
+ "giveAccess": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "globalSubscriptionStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "homePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "image": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isPerson": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastName": {
+ "type": [
+ "string"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "loginAs": {
+ "type": [
+ "string"
+ ]
+ },
+ "middleName": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobilePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "partnerCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "password": {
+ "type": [
+ "string"
+ ]
+ },
+ "password2": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "phoneticName": {
+ "type": [
+ "string"
+ ]
+ },
+ "printOnCheckAs": {
+ "type": [
+ "string"
+ ]
+ },
+ "promoCodeList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "referringUrl": {
+ "type": [
+ "string"
+ ]
+ },
+ "requirePwdChange": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "roleList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salutation": {
+ "type": [
+ "string"
+ ]
+ },
+ "sendEmail": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "subPartnerLogin": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "subscriptionsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxFractionUnit": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxIdNum": {
+ "type": [
+ "string"
+ ]
+ },
+ "taxRegistrationList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxRounding": {
+ "type": [
+ "varies"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ },
+ "vatRegNumber": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/PartnerCategory.json b/_data/taps/schemas/netsuite/v2/json/PartnerCategory.json
new file mode 100644
index 000000000..4bb05c8c4
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/PartnerCategory.json
@@ -0,0 +1,35 @@
+{
+ "properties": {
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Paycheck.json b/_data/taps/schemas/netsuite/v2/json/Paycheck.json
new file mode 100644
index 000000000..b7b2a4f26
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Paycheck.json
@@ -0,0 +1,161 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "account": {
+ "type": [
+ "varies"
+ ]
+ },
+ "address": {
+ "type": [
+ "string"
+ ]
+ },
+ "balance": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "batchNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "entity": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "payContribList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "payDeductList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "payDisburseList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "payEarnList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "payExpList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "payFrequency": {
+ "type": [
+ "string"
+ ]
+ },
+ "payPtoList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "paySummaryList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "payTaxList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "payTimeList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "periodEnding": {
+ "type": [
+ "string"
+ ]
+ },
+ "postingPeriod": {
+ "type": [
+ "varies"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "tranDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "tranId": {
+ "type": [
+ "string"
+ ]
+ },
+ "userAmount": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "workplace": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/PaymentMethod.json b/_data/taps/schemas/netsuite/v2/json/PaymentMethod.json
new file mode 100644
index 000000000..b05cbd62b
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/PaymentMethod.json
@@ -0,0 +1,85 @@
+{
+ "properties": {
+ "account": {
+ "type": [
+ "varies"
+ ]
+ },
+ "creditCard": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "expressCheckoutArrangement": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isDebitCard": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isOnline": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "merchantAccountsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "payPalEmailAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "undepFunds": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "useExpressCheckout": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "visualsList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/PayrollItem.json b/_data/taps/schemas/netsuite/v2/json/PayrollItem.json
new file mode 100644
index 000000000..76f87af91
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/PayrollItem.json
@@ -0,0 +1,71 @@
+{
+ "properties": {
+ "accountCategory": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "employeePaid": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "expenseAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "inactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "itemType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "liabilityAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "vendor": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/PhoneCall.json b/_data/taps/schemas/netsuite/v2/json/PhoneCall.json
new file mode 100644
index 000000000..40de252e5
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/PhoneCall.json
@@ -0,0 +1,152 @@
+{
+ "properties": {
+ "accessLevel": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "assigned": {
+ "type": [
+ "varies"
+ ]
+ },
+ "company": {
+ "type": [
+ "varies"
+ ]
+ },
+ "completedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "contact": {
+ "type": [
+ "varies"
+ ]
+ },
+ "contactList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "milestone": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "owner": {
+ "type": [
+ "varies"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "priority": {
+ "type": [
+ "varies"
+ ]
+ },
+ "reminderMinutes": {
+ "type": [
+ "varies"
+ ]
+ },
+ "reminderType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "sendEmail": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "varies"
+ ]
+ },
+ "supportCase": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeItemList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timedEvent": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/PriceLevel.json b/_data/taps/schemas/netsuite/v2/json/PriceLevel.json
new file mode 100644
index 000000000..327e5d0b9
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/PriceLevel.json
@@ -0,0 +1,48 @@
+{
+ "properties": {
+ "discountpct": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isOnline": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "updateExistingPrices": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/PricingGroup.json b/_data/taps/schemas/netsuite/v2/json/PricingGroup.json
new file mode 100644
index 000000000..f9f263056
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/PricingGroup.json
@@ -0,0 +1,30 @@
+{
+ "properties": {
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/ProjectTask.json b/_data/taps/schemas/netsuite/v2/json/ProjectTask.json
new file mode 100644
index 000000000..e09da3147
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/ProjectTask.json
@@ -0,0 +1,199 @@
+{
+ "properties": {
+ "actualWork": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "assigneeList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "company": {
+ "type": [
+ "varies"
+ ]
+ },
+ "constraintType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "contact": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "endDateBaseline": {
+ "type": [
+ "string"
+ ]
+ },
+ "estimatedWork": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "estimatedWorkBaseline": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "eventId": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "finishByDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isMilestone": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isOnCriticalPath": {
+ "type": [
+ "string"
+ ]
+ },
+ "lateEnd": {
+ "type": [
+ "string"
+ ]
+ },
+ "lateStart": {
+ "type": [
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "nonBillableTask": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "order": {
+ "type": [
+ "varies"
+ ]
+ },
+ "owner": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "percentTimeComplete": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "plannedWork": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "plannedWorkBaseline": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "predecessorList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "priority": {
+ "type": [
+ "varies"
+ ]
+ },
+ "remainingWork": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "slackMinutes": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "startDateBaseline": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeItemList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/PromotionCode.json b/_data/taps/schemas/netsuite/v2/json/PromotionCode.json
new file mode 100644
index 000000000..c8bebe9ce
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/PromotionCode.json
@@ -0,0 +1,151 @@
+{
+ "properties": {
+ "applyDiscountTo": {
+ "type": [
+ "varies"
+ ]
+ },
+ "code": {
+ "type": [
+ "string"
+ ]
+ },
+ "codePattern": {
+ "type": [
+ "string"
+ ]
+ },
+ "currencyList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "discount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "discountType": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "displayLineDiscounts": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "excludeItems": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "freeShipMethod": {
+ "type": [
+ "varies"
+ ]
+ },
+ "implementation": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isPublic": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "itemsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "locationList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "minimumOrderAmount": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "numberToGenerate": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "partnersList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "rate": {
+ "type": [
+ "string"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "useType": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/ResourceAllocation.json b/_data/taps/schemas/netsuite/v2/json/ResourceAllocation.json
new file mode 100644
index 000000000..e4e1398a4
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/ResourceAllocation.json
@@ -0,0 +1,97 @@
+{
+ "properties": {
+ "allocationAmount": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "allocationResource": {
+ "type": [
+ "varies"
+ ]
+ },
+ "allocationType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "allocationUnit": {
+ "type": [
+ "varies"
+ ]
+ },
+ "approvalStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "nextApprover": {
+ "type": [
+ "varies"
+ ]
+ },
+ "notes": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "numberHours": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "percentOfTime": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "project": {
+ "type": [
+ "varies"
+ ]
+ },
+ "requestedby": {
+ "type": [
+ "varies"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/RevRecSchedule.json b/_data/taps/schemas/netsuite/v2/json/RevRecSchedule.json
new file mode 100644
index 000000000..c7f9adf19
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/RevRecSchedule.json
@@ -0,0 +1,74 @@
+{
+ "properties": {
+ "amortizationPeriod": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "amortizationType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "initialAmount": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "periodOffset": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "recogIntervalSrc": {
+ "type": [
+ "varies"
+ ]
+ },
+ "recurrenceList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "recurrenceType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "revRecOffset": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/RevRecTemplate.json b/_data/taps/schemas/netsuite/v2/json/RevRecTemplate.json
new file mode 100644
index 000000000..c7f9adf19
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/RevRecTemplate.json
@@ -0,0 +1,74 @@
+{
+ "properties": {
+ "amortizationPeriod": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "amortizationType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "initialAmount": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "periodOffset": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "recogIntervalSrc": {
+ "type": [
+ "varies"
+ ]
+ },
+ "recurrenceList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "recurrenceType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "revRecOffset": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/SalesRole.json b/_data/taps/schemas/netsuite/v2/json/SalesRole.json
new file mode 100644
index 000000000..a79dc795d
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/SalesRole.json
@@ -0,0 +1,41 @@
+{
+ "properties": {
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isSalesRep": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/SalesTaxItem.json b/_data/taps/schemas/netsuite/v2/json/SalesTaxItem.json
new file mode 100644
index 000000000..76939b986
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/SalesTaxItem.json
@@ -0,0 +1,178 @@
+{
+ "properties": {
+ "available": {
+ "type": [
+ "varies"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "county": {
+ "type": [
+ "string"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "string"
+ ]
+ },
+ "eccode": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "effectiveFrom": {
+ "type": [
+ "string"
+ ]
+ },
+ "excludeFromTaxReports": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "exempt": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "export": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "includeChildren": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isDefault": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "itemId": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nexusCountry": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "purchaseAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "rate": {
+ "type": [
+ "string"
+ ]
+ },
+ "reverseCharge": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "saleAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "service": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "subsidiaryList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxAgency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "validUntil": {
+ "type": [
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/SiteCategory.json b/_data/taps/schemas/netsuite/v2/json/SiteCategory.json
new file mode 100644
index 000000000..6894c5dc3
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/SiteCategory.json
@@ -0,0 +1,127 @@
+{
+ "properties": {
+ "categoryListLayout": {
+ "type": [
+ "varies"
+ ]
+ },
+ "correlatedItemsListLayout": {
+ "type": [
+ "varies"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "excludeFromSitemap": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isOnline": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "itemId": {
+ "type": [
+ "string"
+ ]
+ },
+ "itemListLayout": {
+ "type": [
+ "varies"
+ ]
+ },
+ "metaTagHtml": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "pageTitle": {
+ "type": [
+ "string"
+ ]
+ },
+ "parentCategory": {
+ "type": [
+ "varies"
+ ]
+ },
+ "presentationItemList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "relatedItemsListLayout": {
+ "type": [
+ "varies"
+ ]
+ },
+ "searchKeywords": {
+ "type": [
+ "string"
+ ]
+ },
+ "sitemapPriority": {
+ "type": [
+ "varies"
+ ]
+ },
+ "storeDetailedDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "storeDisplayImage": {
+ "type": [
+ "varies"
+ ]
+ },
+ "storeDisplayThumbnail": {
+ "type": [
+ "varies"
+ ]
+ },
+ "translationsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "urlComponent": {
+ "type": [
+ "string"
+ ]
+ },
+ "website": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Solution.json b/_data/taps/schemas/netsuite/v2/json/Solution.json
new file mode 100644
index 000000000..a562ad7c4
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Solution.json
@@ -0,0 +1,91 @@
+{
+ "properties": {
+ "assigned": {
+ "type": [
+ "varies"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "displayOnline": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "longDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "solutionCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "solutionsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "status": {
+ "type": [
+ "varies"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "topicsList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Subsidiary.json b/_data/taps/schemas/netsuite/v2/json/Subsidiary.json
new file mode 100644
index 000000000..d3017c7b4
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Subsidiary.json
@@ -0,0 +1,224 @@
+{
+ "properties": {
+ "accountingBookDetailList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "addrLanguage": {
+ "type": [
+ "string"
+ ]
+ },
+ "allowPayroll": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "checkLayout": {
+ "type": [
+ "varies"
+ ]
+ },
+ "classTranslationList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "country": {
+ "type": [
+ "varies"
+ ]
+ },
+ "currency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "edition": {
+ "type": [
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "federalIdNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "fiscalCalendar": {
+ "type": [
+ "varies"
+ ]
+ },
+ "interCoAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isElimination": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "legalName": {
+ "type": [
+ "string"
+ ]
+ },
+ "logo": {
+ "type": [
+ "varies"
+ ]
+ },
+ "mainAddress": {
+ "type": [
+ "varies"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nexusList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "pageLogo": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "purchaseOrderAmount": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "purchaseOrderQuantity": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "purchaseOrderQuantityDiff": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "receiptAmount": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "receiptQuantity": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "receiptQuantityDiff": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "returnAddress": {
+ "type": [
+ "varies"
+ ]
+ },
+ "shippingAddress": {
+ "type": [
+ "varies"
+ ]
+ },
+ "showSubsidiaryName": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "ssnOrTin": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "state1TaxNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "taxFiscalCalendar": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxRegistrationList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "tranPrefix": {
+ "type": [
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/SupportCase.json b/_data/taps/schemas/netsuite/v2/json/SupportCase.json
new file mode 100644
index 000000000..382aac52a
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/SupportCase.json
@@ -0,0 +1,228 @@
+{
+ "properties": {
+ "assigned": {
+ "type": [
+ "varies"
+ ]
+ },
+ "caseNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "category": {
+ "type": [
+ "varies"
+ ]
+ },
+ "company": {
+ "type": [
+ "varies"
+ ]
+ },
+ "contact": {
+ "type": [
+ "varies"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "emailEmployeesList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "emailForm": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "escalateToList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "escalationMessage": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "helpDesk": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "inboundEmail": {
+ "type": [
+ "string"
+ ]
+ },
+ "incomingMessage": {
+ "type": [
+ "string"
+ ]
+ },
+ "insertSolution": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalOnly": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "issue": {
+ "type": [
+ "varies"
+ ]
+ },
+ "item": {
+ "type": [
+ "varies"
+ ]
+ },
+ "lastMessageDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastReopenedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "module": {
+ "type": [
+ "varies"
+ ]
+ },
+ "newSolutionFromMsg": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "origin": {
+ "type": [
+ "varies"
+ ]
+ },
+ "outgoingMessage": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "priority": {
+ "type": [
+ "varies"
+ ]
+ },
+ "product": {
+ "type": [
+ "varies"
+ ]
+ },
+ "profile": {
+ "type": [
+ "varies"
+ ]
+ },
+ "searchSolution": {
+ "type": [
+ "string"
+ ]
+ },
+ "serialNumber": {
+ "type": [
+ "varies"
+ ]
+ },
+ "solutionsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeItemList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Task.json b/_data/taps/schemas/netsuite/v2/json/Task.json
new file mode 100644
index 000000000..6712a96f1
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Task.json
@@ -0,0 +1,189 @@
+{
+ "properties": {
+ "accessLevel": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "actualTime": {
+ "type": [
+ "varies"
+ ]
+ },
+ "assigned": {
+ "type": [
+ "varies"
+ ]
+ },
+ "company": {
+ "type": [
+ "varies"
+ ]
+ },
+ "completedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "contact": {
+ "type": [
+ "varies"
+ ]
+ },
+ "contactList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "dueDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "estimatedTime": {
+ "type": [
+ "varies"
+ ]
+ },
+ "estimatedTimeOverride": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "milestone": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "owner": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "percentComplete": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "percentTimeComplete": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "priority": {
+ "type": [
+ "varies"
+ ]
+ },
+ "reminderMinutes": {
+ "type": [
+ "varies"
+ ]
+ },
+ "reminderType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "sendEmail": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "varies"
+ ]
+ },
+ "supportCase": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeItemList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeRemaining": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timedEvent": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "transaction": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/TaxGroup.json b/_data/taps/schemas/netsuite/v2/json/TaxGroup.json
new file mode 100644
index 000000000..d59e31370
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/TaxGroup.json
@@ -0,0 +1,119 @@
+{
+ "properties": {
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "county": {
+ "type": [
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "includeChildren": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isDefault": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "itemId": {
+ "type": [
+ "string"
+ ]
+ },
+ "nexusCountry": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "piggyback": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "rate": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "subsidiaryList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxItemList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxitem1": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxitem2": {
+ "type": [
+ "varies"
+ ]
+ },
+ "unitprice1": {
+ "type": [
+ "string"
+ ]
+ },
+ "unitprice2": {
+ "type": [
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/TaxType.json b/_data/taps/schemas/netsuite/v2/json/TaxType.json
new file mode 100644
index 000000000..772b653b6
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/TaxType.json
@@ -0,0 +1,74 @@
+{
+ "properties": {
+ "country": {
+ "type": [
+ "varies"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "doesNotAddToTotal": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nexusAccountsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nexusesTaxList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "postToItemCost": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "reverseCharge": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "taxInNetAmount": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Term.json b/_data/taps/schemas/netsuite/v2/json/Term.json
new file mode 100644
index 000000000..e655cf565
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Term.json
@@ -0,0 +1,118 @@
+{
+ "properties": {
+ "dateDriven": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "dayDiscountExpires": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "dayOfMonthNetDue": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "daysUntilExpiry": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "daysUntilNetDue": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "discountPercent": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "discountPercentDateDriven": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "dueNextMonthIfWithinDays": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "installment": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "percentagesList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "preferred": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "recurrenceCount": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "recurrenceFrequency": {
+ "type": [
+ "string"
+ ]
+ },
+ "repeatEvery": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "splitEvenly": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/TimeBill.json b/_data/taps/schemas/netsuite/v2/json/TimeBill.json
new file mode 100644
index 000000000..05f914df1
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/TimeBill.json
@@ -0,0 +1,180 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "approvalStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "caseTaskEvent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customer": {
+ "type": [
+ "varies"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "employee": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "hours": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isBillable": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "item": {
+ "type": [
+ "varies"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "overrideRate": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "paidExternally": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "payrollItem": {
+ "type": [
+ "varies"
+ ]
+ },
+ "price": {
+ "type": [
+ "varies"
+ ]
+ },
+ "rate": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "rejectionNote": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "supervisorApproval": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "temporaryLocalJurisdiction": {
+ "type": [
+ "varies"
+ ]
+ },
+ "temporaryStateJurisdiction": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeModified": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "timeSheet": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "tranDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "workplace": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/TimeEntry.json b/_data/taps/schemas/netsuite/v2/json/TimeEntry.json
new file mode 100644
index 000000000..c2670a7d4
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/TimeEntry.json
@@ -0,0 +1,128 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "approvalStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billingClass": {
+ "type": [
+ "string"
+ ]
+ },
+ "caseTaskEvent": {
+ "type": [
+ "varies"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customer": {
+ "type": [
+ "varies"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "hours": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isBillable": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "item": {
+ "type": [
+ "varies"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "overrideRate": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "paidExternally": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "payrollItem": {
+ "type": [
+ "varies"
+ ]
+ },
+ "price": {
+ "type": [
+ "varies"
+ ]
+ },
+ "rate": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeType": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/TimeSheet.json b/_data/taps/schemas/netsuite/v2/json/TimeSheet.json
new file mode 100644
index 000000000..666f7c75a
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/TimeSheet.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "approvalStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "employee": {
+ "type": [
+ "varies"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeGridList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "totalHours": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Topic.json b/_data/taps/schemas/netsuite/v2/json/Topic.json
new file mode 100644
index 000000000..d5bf9cf7b
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Topic.json
@@ -0,0 +1,50 @@
+{
+ "properties": {
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "longDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "parentTopic": {
+ "type": [
+ "varies"
+ ]
+ },
+ "solutionList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Transaction.json b/_data/taps/schemas/netsuite/v2/json/Transaction.json
new file mode 100644
index 000000000..e2428964f
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Transaction.json
@@ -0,0 +1,2253 @@
+{
+ "properties": {
+ "_class": {
+ "type": [
+ "varies"
+ ]
+ },
+ "_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "accessibilityTypeFedEx": {
+ "type": [
+ "varies"
+ ]
+ },
+ "account": {
+ "type": [
+ "varies"
+ ]
+ },
+ "accountingApproval": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "accountingBook": {
+ "type": [
+ "varies"
+ ]
+ },
+ "accountingBookDetailList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "acctCorpCardExp": {
+ "type": [
+ "varies"
+ ]
+ },
+ "actualProductionEndDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "actualProductionStartDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "actualShipDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "adjLocation": {
+ "type": [
+ "varies"
+ ]
+ },
+ "advance": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "altHandlingCost": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "altSalesTotal": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "altShippingCost": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "amount": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "amountPaid": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "amountRemaining": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "ancillaryEndorsementFedEx": {
+ "type": [
+ "varies"
+ ]
+ },
+ "apAcct": {
+ "type": [
+ "varies"
+ ]
+ },
+ "applied": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "applyList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "approvalStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "approved": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "arAcct": {
+ "type": [
+ "varies"
+ ]
+ },
+ "assemblyItem": {
+ "type": [
+ "varies"
+ ]
+ },
+ "authCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "autoApply": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "autoCalculateLag": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "availableBalance": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "availableVendorCredit": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "b13AFilingOptionFedEx": {
+ "type": [
+ "varies"
+ ]
+ },
+ "b13AStatementDataFedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "backupEmailAddressFedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "backupEmailAddressUps": {
+ "type": [
+ "string"
+ ]
+ },
+ "balance": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "billAddressList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billOfMaterials": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billOfMaterialsRevision": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billPay": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "billingAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billingAddress": {
+ "type": [
+ "varies"
+ ]
+ },
+ "billingSchedule": {
+ "type": [
+ "varies"
+ ]
+ },
+ "binNumbers": {
+ "type": [
+ "string"
+ ]
+ },
+ "blanketEndDateUps": {
+ "type": [
+ "string"
+ ]
+ },
+ "blanketStartDateUps": {
+ "type": [
+ "string"
+ ]
+ },
+ "bookingConfirmationNumFedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "buildable": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "built": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "canHaveStackable": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "carrierIdUps": {
+ "type": [
+ "string"
+ ]
+ },
+ "cashBackList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "ccApproved": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "ccAvsStreetMatch": {
+ "type": [
+ "varies"
+ ]
+ },
+ "ccAvsZipMatch": {
+ "type": [
+ "varies"
+ ]
+ },
+ "ccExpireDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "ccIsPurchaseCardBin": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "ccName": {
+ "type": [
+ "string"
+ ]
+ },
+ "ccNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "ccProcessAsPurchaseCard": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "ccSecurityCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "ccSecurityCodeMatch": {
+ "type": [
+ "varies"
+ ]
+ },
+ "ccStreet": {
+ "type": [
+ "string"
+ ]
+ },
+ "ccZipCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "chargeIt": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "checkNum": {
+ "type": [
+ "string"
+ ]
+ },
+ "checkNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "companyContributionList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "companyTaxList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "complete": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "completedQuantity": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "componentList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "contribPct": {
+ "type": [
+ "string"
+ ]
+ },
+ "costComponentList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdFrom": {
+ "type": [
+ "varies"
+ ]
+ },
+ "createdFromShipGroup": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "creditCard": {
+ "type": [
+ "varies"
+ ]
+ },
+ "creditCardProcessor": {
+ "type": [
+ "varies"
+ ]
+ },
+ "creditLimit": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "creditList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "currency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "currencyName": {
+ "type": [
+ "string"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customer": {
+ "type": [
+ "varies"
+ ]
+ },
+ "debitCardIssueNo": {
+ "type": [
+ "string"
+ ]
+ },
+ "deductionList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "deferredRevenue": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "depDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "department": {
+ "type": [
+ "varies"
+ ]
+ },
+ "deposit": {
+ "type": [
+ "varies"
+ ]
+ },
+ "depositList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "discountAmount": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "discountDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "discountItem": {
+ "type": [
+ "varies"
+ ]
+ },
+ "discountRate": {
+ "type": [
+ "string"
+ ]
+ },
+ "discountTotal": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "drAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "dueDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "dynamicDescriptor": {
+ "type": [
+ "string"
+ ]
+ },
+ "earningList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "eccNumberUps": {
+ "type": [
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "employee": {
+ "type": [
+ "varies"
+ ]
+ },
+ "employeeTaxList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "endOperation": {
+ "type": [
+ "varies"
+ ]
+ },
+ "entity": {
+ "type": [
+ "varies"
+ ]
+ },
+ "entityStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "entityTaxRegNum": {
+ "type": [
+ "varies"
+ ]
+ },
+ "entryNumberUps": {
+ "type": [
+ "string"
+ ]
+ },
+ "estGrossProfit": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "estGrossProfitPercent": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "estimatedTotalValue": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "exchangeRate": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "excludeCommission": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "expCostDiscAmount": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "expCostDiscPrint": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "expCostDiscRate": {
+ "type": [
+ "string"
+ ]
+ },
+ "expCostDiscTax1Amt": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "expCostDiscTaxable": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "expCostDiscount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "expCostDiscprint": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "expCostList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "expCostTaxCode": {
+ "type": [
+ "varies"
+ ]
+ },
+ "expCostTaxRate1": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "expCostTaxRate2": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "expandAssembly": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "expectedCloseDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "expenseList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "expenseReportCurrency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "expenseReportExchangeRate": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "expirationDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "exportTypeUps": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "firmed": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "fob": {
+ "type": [
+ "string"
+ ]
+ },
+ "forecastType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "fxAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "generateIntegratedShipperLabel": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "getAuth": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "giftCert": {
+ "type": [
+ "varies"
+ ]
+ },
+ "giftCertApplied": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "giftCertAvailable": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "giftCertRedemptionList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "giftCertTotal": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "halAddr1FedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "halAddr2FedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "halAddr3FedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "halCityFedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "halCountryFedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "halPhoneFedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "halStateFedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "halZipFedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "handlingCost": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "handlingMode": {
+ "type": [
+ "varies"
+ ]
+ },
+ "handlingTax1Rate": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "handlingTax2Rate": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "handlingTaxCode": {
+ "type": [
+ "varies"
+ ]
+ },
+ "hazmatTypeFedEx": {
+ "type": [
+ "varies"
+ ]
+ },
+ "holdAtLocationFedEx": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "homeDeliveryDateFedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "homeDeliveryTypeFedEx": {
+ "type": [
+ "varies"
+ ]
+ },
+ "ignoreAvs": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "inbondCodeUps": {
+ "type": [
+ "string"
+ ]
+ },
+ "inboundShipment": {
+ "type": [
+ "varies"
+ ]
+ },
+ "includeInForecast": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "incoterm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "inputAuthCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "inputReferenceCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "insideDeliveryFedEx": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "insidePickupFedEx": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "installmentList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "intercoStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "intercoTransaction": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "intlExemptionNumFedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "inventoryDetail": {
+ "type": [
+ "varies"
+ ]
+ },
+ "inventoryList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "inventoryValue": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "isBackflush": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isBookSpecific": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isCargoAircraftOnlyFedEx": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isInTransitPayment": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isMultiShipTo": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isRecurringPayment": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isRoutedExportTransactionUps": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isTaxable": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isWip": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "item": {
+ "type": [
+ "varies"
+ ]
+ },
+ "itemCostDiscAmount": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "itemCostDiscPrint": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "itemCostDiscRate": {
+ "type": [
+ "string"
+ ]
+ },
+ "itemCostDiscTax1Amt": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "itemCostDiscTaxable": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "itemCostDiscount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "itemCostList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "itemCostTaxCode": {
+ "type": [
+ "varies"
+ ]
+ },
+ "itemCostTaxRate1": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "itemCostTaxRate2": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "itemFulfillment": {
+ "type": [
+ "varies"
+ ]
+ },
+ "itemList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "job": {
+ "type": [
+ "varies"
+ ]
+ },
+ "landedCostMethod": {
+ "type": [
+ "varies"
+ ]
+ },
+ "landedCostPerLine": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "landedCostsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "leadSource": {
+ "type": [
+ "varies"
+ ]
+ },
+ "licenseDateUps": {
+ "type": [
+ "string"
+ ]
+ },
+ "licenseExceptionUps": {
+ "type": [
+ "varies"
+ ]
+ },
+ "licenseNumberUps": {
+ "type": [
+ "string"
+ ]
+ },
+ "lineList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "linkedTrackingNumbers": {
+ "type": [
+ "string"
+ ]
+ },
+ "location": {
+ "type": [
+ "varies"
+ ]
+ },
+ "manufacturingRouting": {
+ "type": [
+ "varies"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "string"
+ ]
+ },
+ "messageSel": {
+ "type": [
+ "varies"
+ ]
+ },
+ "methodOfTransportUps": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nextApprover": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nextBill": {
+ "type": [
+ "string"
+ ]
+ },
+ "nexus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "onCreditHold": {
+ "type": [
+ "string"
+ ]
+ },
+ "oneTime": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "operationList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "opportunity": {
+ "type": [
+ "varies"
+ ]
+ },
+ "options": {
+ "type": [
+ "varies"
+ ]
+ },
+ "orderQuantity": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "orderStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "otherList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "otherRefNum": {
+ "type": [
+ "string"
+ ]
+ },
+ "outputAuthCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "outputReferenceCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "overrideInstallments": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "packageFedExList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "packageList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "packageUpsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "packageUspsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "packedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "parentExpenseAlloc": {
+ "type": [
+ "varies"
+ ]
+ },
+ "partiesToTransactionUps": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "partner": {
+ "type": [
+ "varies"
+ ]
+ },
+ "partnersList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "payPalAuthId": {
+ "type": [
+ "string"
+ ]
+ },
+ "payPalProcess": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "payPalStatus": {
+ "type": [
+ "string"
+ ]
+ },
+ "payPalTranId": {
+ "type": [
+ "string"
+ ]
+ },
+ "payeeAddress": {
+ "type": [
+ "varies"
+ ]
+ },
+ "payeeAddressList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "payment": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "paymentCardCsc": {
+ "type": [
+ "string"
+ ]
+ },
+ "paymentEventDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "paymentEventHoldReason": {
+ "type": [
+ "varies"
+ ]
+ },
+ "paymentEventResult": {
+ "type": [
+ "varies"
+ ]
+ },
+ "paymentEventType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "paymentEventUpdatedBy": {
+ "type": [
+ "string"
+ ]
+ },
+ "paymentHold": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "paymentList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "paymentMethod": {
+ "type": [
+ "varies"
+ ]
+ },
+ "paymentOperation": {
+ "type": [
+ "varies"
+ ]
+ },
+ "paymentOption": {
+ "type": [
+ "string"
+ ]
+ },
+ "paymentProcessingProfile": {
+ "type": [
+ "varies"
+ ]
+ },
+ "paypalAuthId": {
+ "type": [
+ "string"
+ ]
+ },
+ "paypalProcess": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "pending": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "pickedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "pnRefNum": {
+ "type": [
+ "string"
+ ]
+ },
+ "policyViolated": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "postingPeriod": {
+ "type": [
+ "varies"
+ ]
+ },
+ "printVoucher": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "probability": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "promoCode": {
+ "type": [
+ "varies"
+ ]
+ },
+ "promotionsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "purchaseContract": {
+ "type": [
+ "varies"
+ ]
+ },
+ "purchaseOrderList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "recipientTaxIdUps": {
+ "type": [
+ "string"
+ ]
+ },
+ "recognizedRevenue": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "recurAnnually": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "recurMonthly": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "recurQuarterly": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "recurWeekly": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "recurringBill": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "refundCheck": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "requestedBy": {
+ "type": [
+ "varies"
+ ]
+ },
+ "requestedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "revCommitStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "revRecEndDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "revRecOnRevCommitment": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "revRecSchedule": {
+ "type": [
+ "varies"
+ ]
+ },
+ "revRecStartDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenueStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "reversalDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "reversalDefer": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "reversalEntry": {
+ "type": [
+ "string"
+ ]
+ },
+ "revision": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salesEffectiveDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "salesGroup": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salesOrder": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salesOrderRequiredDepositDue": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "salesRep": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salesTeamList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "saturdayDeliveryFedEx": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "saturdayDeliveryUps": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "saturdayPickupFedex": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "saveOnAuthDecline": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "schedulingMethod": {
+ "type": [
+ "varies"
+ ]
+ },
+ "scrapQuantity": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "sendBackupEmailFedEx": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "sendBackupEmailUps": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "sendShipNotifyEmailFedEx": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "sendShipNotifyEmailUps": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "serialNumbers": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipAddressList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "shipComplete": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "shipDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipDateFedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipGroupList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "shipIsResidential": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "shipMethod": {
+ "type": [
+ "varies"
+ ]
+ },
+ "shipNotifyEmailAddress2Ups": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipNotifyEmailAddressFedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipNotifyEmailAddressUps": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipNotifyEmailMessageUps": {
+ "type": [
+ "string"
+ ]
+ },
+ "shipStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "shipTo": {
+ "type": [
+ "varies"
+ ]
+ },
+ "shipmentWeightFedEx": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "shipmentWeightUps": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "shippedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "shippingAddress": {
+ "type": [
+ "varies"
+ ]
+ },
+ "shippingCost": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "shippingTax1Rate": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "shippingTax2Rate": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "shippingTaxCode": {
+ "type": [
+ "varies"
+ ]
+ },
+ "shopperIpAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "signatureHomeDeliveryFedEx": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "softDescriptor": {
+ "type": [
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "sourceTransactionId": {
+ "type": [
+ "string"
+ ]
+ },
+ "sourceTransactionLine": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "specialOrder": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "startOperation": {
+ "type": [
+ "varies"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "subTotal": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiaryTaxRegNum": {
+ "type": [
+ "varies"
+ ]
+ },
+ "supervisorApproval": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "syncPartnerTeams": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "syncSalesTeams": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "tax1Amt": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "tax2Amt": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "tax2Total": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "taxDetailsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxDetailsOverride": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "taxItem": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxPointDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "taxRate": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "taxRegOverride": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "taxTotal": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "terms": {
+ "type": [
+ "varies"
+ ]
+ },
+ "termsFreightChargeFedEx": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "termsInsuranceChargeFedEx": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "termsOfSaleFedEx": {
+ "type": [
+ "varies"
+ ]
+ },
+ "thirdPartyAcctFedEx": {
+ "type": [
+ "string"
+ ]
+ },
+ "thirdPartyAcctUps": {
+ "type": [
+ "string"
+ ]
+ },
+ "thirdPartyCountryFedEx": {
+ "type": [
+ "varies"
+ ]
+ },
+ "thirdPartyCountryUps": {
+ "type": [
+ "varies"
+ ]
+ },
+ "thirdPartyTypeFedEx": {
+ "type": [
+ "varies"
+ ]
+ },
+ "thirdPartyTypeUps": {
+ "type": [
+ "varies"
+ ]
+ },
+ "thirdPartyZipcodeUps": {
+ "type": [
+ "string"
+ ]
+ },
+ "threeDStatusCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "timeDiscAmount": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "timeDiscPrint": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "timeDiscRate": {
+ "type": [
+ "string"
+ ]
+ },
+ "timeDiscTax1Amt": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "timeDiscTaxable": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "timeDiscount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeTaxCode": {
+ "type": [
+ "varies"
+ ]
+ },
+ "timeTaxRate1": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "timeTaxRate2": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "toAch": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "toBeEmailed": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "toBeFaxed": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "toBePrinted": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "toPrint2": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "toSubsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "total": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "totalCostEstimate": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "trackingNumbers": {
+ "type": [
+ "string"
+ ]
+ },
+ "tranDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "tranId": {
+ "type": [
+ "string"
+ ]
+ },
+ "tranIsVsoeBundle": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "tranStatus": {
+ "type": [
+ "string"
+ ]
+ },
+ "tranType": {
+ "type": [
+ "string"
+ ]
+ },
+ "transactionNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "transferLocation": {
+ "type": [
+ "varies"
+ ]
+ },
+ "unApplied": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "unapplied": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "undepFunds": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "unitCost": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "units": {
+ "type": [
+ "varies"
+ ]
+ },
+ "unitsType": {
+ "type": [
+ "varies"
+ ]
+ },
+ "useItemCostAsTransferCost": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "useMultiCurrency": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "userTaxTotal": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "userTotal": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "validFrom": {
+ "type": [
+ "string"
+ ]
+ },
+ "vatRegNum": {
+ "type": [
+ "string"
+ ]
+ },
+ "visibleToCustomer": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "voidJournal": {
+ "type": [
+ "varies"
+ ]
+ },
+ "vsoeAutoCalc": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/UnitsType.json b/_data/taps/schemas/netsuite/v2/json/UnitsType.json
new file mode 100644
index 000000000..7e4b7e4c7
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/UnitsType.json
@@ -0,0 +1,35 @@
+{
+ "properties": {
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "uomList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Usage.json b/_data/taps/schemas/netsuite/v2/json/Usage.json
new file mode 100644
index 000000000..93d812e1b
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Usage.json
@@ -0,0 +1,70 @@
+{
+ "properties": {
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customer": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "item": {
+ "type": [
+ "varies"
+ ]
+ },
+ "memo": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "subscriptionPlan": {
+ "type": [
+ "varies"
+ ]
+ },
+ "usageDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "usageQuantity": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "usageSubscription": {
+ "type": [
+ "varies"
+ ]
+ },
+ "usageSubscriptionLine": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/Vendor.json b/_data/taps/schemas/netsuite/v2/json/Vendor.json
new file mode 100644
index 000000000..27a0d3d29
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/Vendor.json
@@ -0,0 +1,452 @@
+{
+ "properties": {
+ "accountNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "addressbookList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "altEmail": {
+ "type": [
+ "string"
+ ]
+ },
+ "altName": {
+ "type": [
+ "string"
+ ]
+ },
+ "altPhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "balance": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "balancePrimary": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "bcn": {
+ "type": [
+ "string"
+ ]
+ },
+ "billPay": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "category": {
+ "type": [
+ "varies"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "companyName": {
+ "type": [
+ "string"
+ ]
+ },
+ "creditLimit": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "currency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "currencyList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "customForm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "dateCreated": {
+ "type": [
+ "string"
+ ]
+ },
+ "defaultAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "defaultTaxReg": {
+ "type": [
+ "string"
+ ]
+ },
+ "eligibleForCommission": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "emailPreference": {
+ "type": [
+ "varies"
+ ]
+ },
+ "emailTransactions": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "entityId": {
+ "type": [
+ "string"
+ ]
+ },
+ "expenseAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "faxTransactions": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "firstName": {
+ "type": [
+ "string"
+ ]
+ },
+ "giveAccess": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "globalSubscriptionStatus": {
+ "type": [
+ "varies"
+ ]
+ },
+ "homePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "image": {
+ "type": [
+ "varies"
+ ]
+ },
+ "incoterm": {
+ "type": [
+ "varies"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "is1099Eligible": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isAccountant": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isJobResourceVend": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isPerson": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "laborCost": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "lastModifiedDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastName": {
+ "type": [
+ "string"
+ ]
+ },
+ "legalName": {
+ "type": [
+ "string"
+ ]
+ },
+ "middleName": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobilePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "openingBalance": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "openingBalanceAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "openingBalanceDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "password": {
+ "type": [
+ "string"
+ ]
+ },
+ "password2": {
+ "type": [
+ "string"
+ ]
+ },
+ "payablesAccount": {
+ "type": [
+ "varies"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "phoneticName": {
+ "type": [
+ "string"
+ ]
+ },
+ "predConfidence": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "predictedDays": {
+ "type": [
+ "string",
+ " integer"
+ ]
+ },
+ "pricingScheduleList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "printOnCheckAs": {
+ "type": [
+ "string"
+ ]
+ },
+ "printTransactions": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "purchaseOrderAmount": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "purchaseOrderQuantity": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "purchaseOrderQuantityDiff": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "receiptAmount": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "receiptQuantity": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "receiptQuantityDiff": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "representingSubsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "requirePwdChange": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "rolesList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "salutation": {
+ "type": [
+ "string"
+ ]
+ },
+ "sendEmail": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "subscriptionsList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxIdNum": {
+ "type": [
+ "string"
+ ]
+ },
+ "taxItem": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxRegistrationList": {
+ "type": [
+ "string"
+ ]
+ },
+ "terms": {
+ "type": [
+ "varies"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "unbilledOrders": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "unbilledOrdersPrimary": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ },
+ "vatRegNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "workCalendar": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/VendorCategory.json b/_data/taps/schemas/netsuite/v2/json/VendorCategory.json
new file mode 100644
index 000000000..e8589101a
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/VendorCategory.json
@@ -0,0 +1,36 @@
+{
+ "properties": {
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "isTaxAgency": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/VendorSubsidiaryRelationship.json b/_data/taps/schemas/netsuite/v2/json/VendorSubsidiaryRelationship.json
new file mode 100644
index 000000000..9ecaec3bc
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/VendorSubsidiaryRelationship.json
@@ -0,0 +1,61 @@
+{
+ "properties": {
+ "baseCurrency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "creditLimit": {
+ "type": [
+ "string",
+ " number"
+ ]
+ },
+ "customFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "entity": {
+ "type": [
+ "varies"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isPrimarySub": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ },
+ "primaryCurrency": {
+ "type": [
+ "varies"
+ ]
+ },
+ "subsidiary": {
+ "type": [
+ "varies"
+ ]
+ },
+ "taxItem": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/json/WinLossReason.json b/_data/taps/schemas/netsuite/v2/json/WinLossReason.json
new file mode 100644
index 000000000..f9f263056
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/json/WinLossReason.json
@@ -0,0 +1,30 @@
+{
+ "properties": {
+ "externalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "internalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInactive": {
+ "type": [
+ "boolean",
+ " string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nullFieldList": {
+ "type": [
+ "varies"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/netsuite/v2/netsuite-v2-tables.yml b/_data/taps/schemas/netsuite/v2/netsuite-v2-tables.yml
new file mode 100644
index 000000000..bf6ed0043
--- /dev/null
+++ b/_data/taps/schemas/netsuite/v2/netsuite-v2-tables.yml
@@ -0,0 +1,1297 @@
+tap: netsuite
+version: '2'
+tables:
+- name: Account
+ description: 'The `{{ table.name }}` table contains info about the accounts in the
+ Chart of Accounts in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Account.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: AccountingPeriod
+ description: 'The `{{ table.name }}` table contains info about the accounting periods
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/AccountingPeriod.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Address
+ description: 'The `{{ table.name }}` table contains info about the custom address
+ forms in your {{ integration.display_name }} account.
+
+
+ Custom address forms can apply to entity, transaction, subsidiary, company information,
+ location, and workplace records in {{ integration.display_name }}. As custom address
+ forms inherit the permissions set on the parent record, the permissions required
+ for the parent record are required to access custom address data.
+
+
+ For example: To get custom address data for a location, the user must have the
+ permission for accessing location data.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Address.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: BillingAccount
+ description: 'The `{{ table.name }}` table contains info about the billing accounts
+ in your {{ integration.display_name }} account. A billing account is a record
+ used to show all billing information for a customer or subcustomer. A billing
+ account contains billing-specific information, including billing schedule, default
+ payment terms, bill-to address, and currency.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/BillingAccount.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: BillingSchedule
+ description: 'The `{{ table.name }}` table contains info about the billing schedules
+ in your {{ integration.display_name }} account. Billing schedules are used to
+ define how bills for transactions are relayed to customers. In general, a billing
+ schedule determines the frequency with which the customer is billed and the amount
+ of each bill. However, the exact effect of a billing schedule varies depending
+ on its type.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/BillingSchedule.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Bin
+ description: 'The `{{ table.name }}` table contains info about bins, or places in
+ your warehouse where you store inventory items.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Bin.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Bom
+ description: 'The `{{ table.name }}` table contains info about bills of materials
+ (BOM): the quantities of raw materials, assemblies, sub-components, and parts
+ needed to manufacture a product.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Bom.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: BomRevision
+ description: 'The `{{ table.name }}` table contains info about updates on bills
+ of materials.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/BomRevision.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Budget
+ description: "The `{{ table.name }}` table contains info about the budgets in your\
+ \ {{ integration.display_name }} account. A budget records the expected values\
+ \ of income and expenses for your business. Budgets can be created for specific\
+ \ customers, items, departments, classes, locations, or any combination of these\
+ \ criteria. \n\n{{ integration.permission-for-table | flatify }}\n"
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Budget.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: CalendarEvent
+ description: 'The `{{ table.name }}` table contains info about the scheduled activities,
+ or events, that are on the calendar in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/CalendarEvent.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: Campaign
+ description: 'The `{{ table.name }}` table contains info about the campaigns in
+ your {{ integration.display_name }} account. Campaigns are used to manage marketing
+ initiatives.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Campaign.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+- name: Charge
+ description: 'The `{{ table.name }}` table contains info about the charges in your
+ {{ integration.display_name }} account, which represent billable amounts that
+ your clients must pay.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Charge.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Classification
+ description: 'The `{{ table.name }}` table contains info about the classifications
+ in your {{ integration.display_name }} account.
+
+
+ As classifications inherit the permissions set on the parent record, the permissions
+ required for the parent record are required to access classification data.
+
+
+ For example: To get classification data for a location, the user must have the
+ permission for accessing location data.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Classification.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: ConsolidatedExchangeRate
+ description: 'The `{{ table.name }}` table contains info about consolidated exchange
+ rates. This is used in {{ integration.display_name }} OneWorld for consolidation
+ purposes, ensuring currency amounts correctly roll up from child to parent subsidiaries.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/ConsolidatedExchangeRate.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Contact
+ description: 'The `{{ table.name }}` table contains info about contacts.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Contact.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: ContactCategory
+ description: 'The `{{ table.name }}` table contains info about the types of contacts
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/ContactCategory.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: ContactRole
+ description: 'The `{{ table.name }}` table contains info about contact roles in
+ your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/ContactRole.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: CostCategory
+ description: 'The `{{ table.name }}` table contains info about cost categories,
+ which are used to classify different types of costs associated with items.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/CostCategory.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: CouponCode
+ description: 'The `{{ table.name }}` table contains info about the coupon codes
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/CouponCode.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: CurrencyRate
+ description: 'The `{{ table.name }}` table contains info about currency rate records
+ in you {{ integration.display_name }} account. These are also known as Exchange
+ Rate records in {{ integration.display_name }}.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/CurrencyRate.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Customer
+ description: 'The `{{ table.name }}` table contains info about customers.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Customer.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: CustomerCategory
+ description: 'The `{{ table.name }}` table contains info about the types of customers
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/CustomerCategory.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: CustomerMessage
+ description: 'The `{{ table.name }}` table contains info about standardized customer
+ messages in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/CustomerMessage.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: CustomerStatus
+ description: 'The `{{ table.name }}` table contains info about the stages for leads,
+ prospects, and customers in your {{ integration.display_name }} sales cycle.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/CustomerStatus.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: CustomerSubsidiaryRelationship
+ description: 'The `{{ table.name }}` table contains info about customers shared
+ with multiple subsidiaries.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/CustomerSubsidiaryRelationship.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: CustomList
+ description: "The `{{ table.name }}` table contains info about \n"
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/CustomList.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Deleted
+ description: 'The `{{ table.name }}` table contains info about deleted records.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+
+ #### Objects with delete support
+
+
+ According to [{{ integration.display_name }}''s documentation](https://system.netsuite.com/app/help/helpcenter.nl?fid=section_N3497592.html){:target="new"},
+ only certain objects support the `{{ table.api-method.name }}` operation Stitch
+ uses to retrieve deleted record data from the SuiteTalk API.
+
+
+ Refer to the [Deleted records](#deleted-records) section for more info and a list
+ of record types with delete support.
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Deleted.html
+ api-method: https://system.netsuite.com/app/help/helpcenter.nl?fid=section_N3497592.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - internalId
+ - type
+ replication-key: deletedDate
+- name: Department
+ description: 'The `{{ table.name }}` table contains info about the departments in
+ your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Department.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Employee
+ description: 'The `{{ table.name }}` table contains info about the employees in
+ your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Employee.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: EntityGroup
+ description: 'The `{{ table.name }}` table contains info about the groups in your
+ {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/EntityGroup.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+- name: ExpenseCategory
+ description: "The `{{ table.name }}` table contains info about the expense categories\
+ \ in your {{ integration.display_name }} account. \n\n{{ integration.permission-for-table\
+ \ | flatify }}\n"
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/ExpenseCategory.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: FairValuePrice
+ description: 'The `{{ table.name }}` table contains info about the fair value price
+ list in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/FairValuePrice.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: File
+ description: 'The `{{ table.name }}` table contains info about the files in your
+ {{ integration.display_name }} File Cabinet.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/File.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+- name: Folder
+ description: 'The `{{ table.name }}` table contains info about the folders in your
+ {{ integration.display_name }} File Cabinet.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Folder.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+- name: GiftCertificate
+ description: 'The `{{ table.name }}` table contains info about the gift certificates
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/GiftCertificate.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: GlobalAccountMapping
+ description: "The `{{ table.name }}` table contains the global account mapping record\
+ \ details in your {{ integration.display_name }} account. \n\nFor {{ integration.display_name\
+ \ }} accounts using Multi-Book Accounting, the global account mapping record enables\
+ \ you to configure secondary accounting books to post to accounts different from\
+ \ the primary book. These mappings are used by transactions where the user can\
+ \ manually select the account to which the transaction posts.\n\n{{ integration.permission-for-table\
+ \ | flatify }}\n"
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/GlobalAccountMapping.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: HcmJob
+ description: '{{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/HcmJob.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: InboundShipment
+ description: 'The `{{ table.name }}` table contains info about inbound shipments
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/InboundShipment.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: InventoryNumber
+ description: 'The `{{ table.name }}` table contains info about the serial or lot
+ numbers in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/InventoryNumber.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Issue
+ description: 'The `{{ table.name }}` table contains info about the support cases
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Issue.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: Item
+ description: 'The `{{ table.name }}` table contains info about items.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Item.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: ItemAccountMapping
+ description: 'The `{{ table.name }}` table contains details about the item account
+ mapping record in your {{ integration.display_name }} account.
+
+
+ For accounts using {{ integration.display_name }} Multi-Book Accounting, the item
+ account mapping record enables you to configure secondary accounting books to
+ post to accounts different from the primary book, based on the item that is the
+ subject of the transaction. These mappings are used by transactions where the
+ item determines the account to which the transaction posts.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/ItemAccountMapping.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: ItemDemandPlan
+ description: 'The `{{ table.name }}` table contains info about item demand plans
+ in your {{ integration.display_name }} account. An item demand plan transaction
+ stores the quantity expected to be needed, during specified time periods, for
+ an item.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/ItemDemandPlan.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+- name: ItemRevision
+ description: 'The `{{ table.name }}` table contains info about item revisions in
+ your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/ItemRevision.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: ItemSupplyPlan
+ description: 'The `{{ table.name }}` table contains info about the item supply plans
+ in your {{ integration.display_name }} account. An item supply plan lists the
+ purchase orders or work orders required to ensure that item quantity meets expected
+ demand.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/ItemSupplyPlan.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+- name: Job
+ description: 'The `{{ table.name }}` table contains info about the projects in your
+ {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Job.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: JobStatus
+ description: 'The `{{ table.name }}` table contains info about the statuses that
+ can be applied to projects in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/JobStatus.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: JobType
+ description: 'The `{{ table.name }}` table contains info about the types that can
+ be applied to projects in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/JobType.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Location
+ description: 'The `{{ table.name }}` table contains info about locations.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Location.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: ManufacturingCostTemplate
+ description: 'The `{{ table.name }}` table contains info about the manufacturing
+ cost templates in your {{ integration.display_name }} account.
+
+
+ A manufacturing cost template is a list of rates that can be associated with completing
+ a specific operation. The template defines the activities that occur and related
+ costs to be recorded each time this step is completed.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/ManufacturingCostTemplate.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: ManufacturingOperationTask
+ description: 'The `{{ table.name }}` table contains info about manufacturing operation
+ tasks in your {{ integration.display_name }} account.
+
+
+ After a WIP work order that has a designated routing is saved in {{ integration.display_name
+ }}, manufacturing operation tasks are created based on the routing. Each of these
+ tasks is a step that must be done in order for the assembly process to be finished.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/ManufacturingOperationTask.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: ManufacturingRouting
+ description: 'The `{{ table.name }}` table contains info about the manufacturing
+ routing templates in your {{ integration.display_name }} account.
+
+
+ A manufacturing routing is a template that contains a list of steps required to
+ build an assembly item. Each step is in a sequential order necessary to complete
+ the operational sequence for completing the assembly. After you have created a
+ routing record, that routing can be selected on a work order to direct the completion
+ of the assembly. The routing determines the work center, cost template, labor
+ resources, and machine resources that will be used during the assembly.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/ManufacturingRouting.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: MerchandiseHierarchyNode
+ description: 'The `{{ table.name }}` table contains info about the the categorization
+ of inventory items in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/MerchandiseHierarchyNode.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Message
+ description: 'The `{{ table.name }}` table contains info about the messages in your
+ {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Message.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Nexus
+ description: "The `{{ table.name }}` table contains info about the tax jurisdictions\
+ \ - or nexus - in your {{ integration.display_name }} account. A nexus is a tax\
+ \ jurisdiction, usually defined at the country level. \n\n{{ integration.permission-for-table\
+ \ | flatify }}\n"
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Nexus.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Note
+ description: 'The `{{ table.name }}` table contains info about the notes in your
+ {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Note.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: NoteType
+ description: 'The `{{ table.name }}` table contains info about the types that can
+ be applied to notes in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/NoteType.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Opportunity
+ description: 'The `{{ table.name }}` table contains info about the opportunities
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Opportunity.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: OtherNameCategory
+ description: 'The `{{ table.name }}` table contains info about the other name categories
+ in your {{ integration.display_name }} account. Other name category values are
+ used on other name records to categorize them. The list of other name records
+ is a collection of records for people or companies who are not vendors, customers,
+ or employees.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/OtherNameCategory.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Partner
+ description: 'The `{{ table.name }}` table contains info about the partners in your
+ {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Partner.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: PartnerCategory
+ description: 'The `{{ table.name }}` table contains info about the categories that
+ can be applied to partners in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/PartnerCategory.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Paycheck
+ description: 'The `{{ table.name }}` table contains info about the paycheck records
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Paycheck.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: PaymentMethod
+ description: 'The `{{ table.name }}` table contains info about the customer payment
+ methods in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/PaymentMethod.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: PayrollItem
+ description: 'The `{{ table.name }}` table contains info about the payroll items,
+ or payroll transaction line items, in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/PayrollItem.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: PhoneCall
+ description: 'The `{{ table.name }}` table contains info about the phone call records
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/PhoneCall.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: PriceLevel
+ description: 'The `{{ table.name }}` table contains info about the price level list
+ in your {{ integration.display_name }} account. Price level defines a list of
+ values that are used by opportunity and item records to set the price level for
+ a specific item.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/PriceLevel.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: PricingGroup
+ description: 'The `{{ table.name }}` table contains info about the pricing groups
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/PricingGroup.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: ProjectTask
+ description: 'The `{{ table.name }}` table contains info about the project tasks
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/ProjectTask.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+- name: PromotionCode
+ description: 'The `{{ table.name }}` table contains info about the promotion codes
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/PromotionCode.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: ResourceAllocation
+ description: 'The `{{ table.name }}` table contains info about resource allocations,
+ or employee time reservations, in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/ResourceAllocation.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: RevRecSchedule
+ description: 'The `{{ table.name }}` table contains info about the revenue recognition
+ schedules in your {{ integration.display_name }} account. A revenue recognition
+ schedule indicates the posting periods in which revenue should be recognized,
+ and the amount to be recognized in each period, for an item sale.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/RevRecSchedule.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: RevRecTemplate
+ description: 'The `{{ table.name }}` table contains info about the revenue recognition
+ templates in your {{ integration.display_name }} account. A revenue recognition
+ template indicates how revenue from associated items should be posted.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/RevRecTemplate.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: SalesRole
+ description: 'The `{{ table.name }}` table contains info about the sales roles in
+ your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/SalesRole.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: SalesTaxItem
+ description: 'The `{{ table.name }}` table contains info about the sales tax items
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/SalesTaxItem.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: SiteCategory
+ description: 'The `{{ table.name }}` table contains info about the categories used
+ to organize your website.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/SiteCategory.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Solution
+ description: 'The `{{ table.name }}` table contains info about the solutions, or
+ answers to customer issues, in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Solution.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: Subsidiary
+ description: 'The `{{ table.name }}` table contains info about the subsidiary records
+ in your {{ integration.display_name }} account. A subsidiary represents a separate
+ company within your global organization.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Subsidiary.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: SupportCase
+ description: 'The `{{ table.name }}` table contains info about the support cases
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/SupportCase.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: Task
+ description: 'The `{{ table.name }}` table contains info about the tasks in your
+ {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Task.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: TaxGroup
+ description: 'The `{{ table.name }}` table contains info about the tax groups in
+ your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/TaxGroup.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: TaxType
+ description: 'The `{{ table.name }}` table contains info about the tax types in
+ your {{ integration.display_name }} account. A tax type determines where the tax
+ paid or collected is tracked on the balance sheet. The balance sheet account to
+ which {{ integration.display_name }} posts the collection or payment of tax is
+ called the tax control account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/TaxType.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Term
+ description: 'The `{{ table.name }}` table contains info about the terms in your
+ {{ integration.display_name }} account. Terms are used to specify when payment
+ is due on customer invoices.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Term.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: TimeBill
+ description: 'The `{{ table.name }}` table contains info about the time transactions
+ in your {{ integration.display_name }} account. Also known as time bills, these
+ transactions records the hours worked by an employee. This transaction can be
+ used to record billable hours and invoice customers.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/TimeBill.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: TimeEntry
+ description: 'The `{{ table.name }}` table contains info about the time entries
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/TimeEntry.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: TimeSheet
+ description: 'The `{{ table.name }}` table contains info about the time sheets in
+ your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/TimeSheet.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Topic
+ description: 'The `{{ table.name }}` table contains info about the topics used to
+ organize knowledge base solutions in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Topic.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Transaction
+ description: 'The `{{ table.name }}` table contains info about transactions.
+
+
+ #### Supported transaction types {#supported-transaction-types}
+
+
+ Stitch''s {{ integration.display_name }} integration supports replicating data
+ for the the transaction types in the [Supported {{ integration.display_name }}
+ transaction types](#supported-transaction-types) section.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Transaction.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: UnitsType
+ description: 'The `{{ table.name }}` table contains info about the unit types, or
+ Units of Measure, in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/UnitsType.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Usage
+ description: 'The `{{ table.name }}` table contains info about the subscription
+ billing lines in your {{ integration.display_name }} account. For example: Money,
+ time, cellular data, internet data, etc.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Usage.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: Vendor
+ description: 'The `{{ table.name }}` table contains info about the vendors in your
+ {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/Vendor.html
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: internalId
+ replication-key: lastModifiedDate
+- name: VendorCategory
+ description: 'The `{{ table.name }}` table contains info about the categories that
+ can be applied to vendors in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/VendorCategory.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: VendorSubsidiaryRelationship
+ description: 'The `{{ table.name }}` table contains info about vendors shared with
+ multiple subsidiaries.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/VendorSubsidiaryRelationship.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
+- name: WinLossReason
+ description: 'The `{{ table.name }}` table contains info about the win/loss reasons
+ in your {{ integration.display_name }} account.
+
+
+ {{ integration.permission-for-table | flatify }}
+
+ '
+ links:
+ doc-link: https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2023_1/schema/record/WinLossReason.html
+ table-details:
+ replication-method: Full Table
+ primary-key: internalId
diff --git a/_data/taps/schemas/onfleet/v1/json/administrators.json b/_data/taps/schemas/onfleet/v1/json/administrators.json
new file mode 100644
index 000000000..427ae4c03
--- /dev/null
+++ b/_data/taps/schemas/onfleet/v1/json/administrators.json
@@ -0,0 +1,69 @@
+{
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "isActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organization": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeCreated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "timeLastModified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/onfleet/v1/json/hubs.json b/_data/taps/schemas/onfleet/v1/json/hubs.json
new file mode 100644
index 000000000..02cb27853
--- /dev/null
+++ b/_data/taps/schemas/onfleet/v1/json/hubs.json
@@ -0,0 +1,84 @@
+{
+ "properties": {
+ "address": {
+ "properties": {
+ "apartment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "street": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "teams": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/onfleet/v1/json/organizations.json b/_data/taps/schemas/onfleet/v1/json/organizations.json
new file mode 100644
index 000000000..7ee46400b
--- /dev/null
+++ b/_data/taps/schemas/onfleet/v1/json/organizations.json
@@ -0,0 +1,63 @@
+{
+ "properties": {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delegatees": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeCreated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "timeLastModified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/onfleet/v1/json/tasks.json b/_data/taps/schemas/onfleet/v1/json/tasks.json
new file mode 100644
index 000000000..653dad1e1
--- /dev/null
+++ b/_data/taps/schemas/onfleet/v1/json/tasks.json
@@ -0,0 +1,395 @@
+{
+ "properties": {
+ "completeAfter": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "completeBefore": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "completionDetails": {
+ "properties": {
+ "events": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "failureReason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "firstLocation": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "lastLocation": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "unavailableAttachments": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "creator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delayTime": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "dependencies": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "destination": {
+ "properties": {
+ "address": {
+ "properties": {
+ "apartment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "street": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "metadata": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeCreated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "timeLastModified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "estimatedCompletionTime": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "executor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "feedback": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "identity": {
+ "properties": {
+ "checksum": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "failedScanCount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "merchant": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organization": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "overrides": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "pickupTask": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "recipients": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organization": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "skipSMSNotifications": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "timeCreated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "timeLastModified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "serviceTime": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "shortId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sourceTaskId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "timeCreated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "timeLastModified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "trackingURL": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trackingViewed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "worker": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/onfleet/v1/json/teams.json b/_data/taps/schemas/onfleet/v1/json/teams.json
new file mode 100644
index 000000000..1f6bb50ba
--- /dev/null
+++ b/_data/taps/schemas/onfleet/v1/json/teams.json
@@ -0,0 +1,59 @@
+{
+ "properties": {
+ "hub": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "managers": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tasks": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "timeCreated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "timeLastModified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "workers": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/onfleet/v1/json/workers.json b/_data/taps/schemas/onfleet/v1/json/workers.json
new file mode 100644
index 000000000..3aa1bde32
--- /dev/null
+++ b/_data/taps/schemas/onfleet/v1/json/workers.json
@@ -0,0 +1,195 @@
+{
+ "properties": {
+ "accountStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "activeTask": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "capacity": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "delayTime": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "imageUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "onDuty": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "organization": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tasks": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "teams": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "timeCreated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "timeLastModified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "timeLastSeen": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "userData": {
+ "properties": {
+ "appVersion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "batteryLevel": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "deviceDescription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "platform": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "vehicle": {
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "licensePlate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeLastModified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/onfleet/v1/onfleet-v1-foreign-keys.yml b/_data/taps/schemas/onfleet/v1/onfleet-v1-foreign-keys.yml
new file mode 100644
index 000000000..947b2ae51
--- /dev/null
+++ b/_data/taps/schemas/onfleet/v1/onfleet-v1-foreign-keys.yml
@@ -0,0 +1,218 @@
+tap: onfleet
+version: '1'
+keys:
+ administrators_:
+ - table: administrators
+ keys:
+ - id
+ - table: tasks
+ keys:
+ - creator
+ - table: teams
+ keys:
+ - managers
+ hubs_hub:
+ - table: hubs
+ keys:
+ - id
+ - table: teams
+ keys:
+ - hub
+ organizations_organization:
+ - table: administrators
+ keys:
+ - organization
+ - table: organizations
+ keys:
+ - id
+ - delegatees
+ - table: tasks
+ keys:
+ - organization
+ - table: workers
+ keys:
+ - organization
+ tasks_:
+ - table: tasks
+ keys:
+ - id
+ - table: teams
+ keys:
+ - tasks
+ - table: workers
+ keys:
+ - activeTask
+ - tasks
+ teams_team:
+ - table: hubs
+ keys:
+ - teams
+ - table: teams
+ keys:
+ - id
+ - table: workers
+ keys:
+ - teams
+ workers_worker:
+ - table: tasks
+ keys:
+ - worker
+ - table: teams
+ keys:
+ - workers
+ - table: workers
+ keys:
+ - id
+tables:
+- table-name: administrators
+ join:
+ - table-name: tasks
+ keys:
+ - key: id
+ foreign-key: creator
+ - key: organization
+ foreign-key: organization
+ - table-name: teams
+ keys:
+ - key: id
+ foreign-key: managers
+ - table-name: organizations
+ keys:
+ - key: organization
+ foreign-key: id
+ - key: organization
+ foreign-key: delegatees
+ - table-name: workers
+ keys:
+ - key: organization
+ foreign-key: organization
+- table-name: tasks
+ join:
+ - table-name: administrators
+ keys:
+ - key: creator
+ foreign-key: id
+ - key: organization
+ foreign-key: organization
+ - table-name: teams
+ keys:
+ - key: creator
+ foreign-key: managers
+ - key: id
+ foreign-key: tasks
+ - key: worker
+ foreign-key: workers
+ - table-name: organizations
+ keys:
+ - key: organization
+ foreign-key: id
+ - key: organization
+ foreign-key: delegatees
+ - table-name: workers
+ keys:
+ - key: organization
+ foreign-key: organization
+ - key: id
+ foreign-key: activeTask
+ - key: id
+ foreign-key: tasks
+ - key: worker
+ foreign-key: id
+- table-name: teams
+ join:
+ - table-name: administrators
+ keys:
+ - key: managers
+ foreign-key: id
+ - table-name: tasks
+ keys:
+ - key: managers
+ foreign-key: creator
+ - key: tasks
+ foreign-key: id
+ - key: workers
+ foreign-key: worker
+ - table-name: hubs
+ keys:
+ - key: hub
+ foreign-key: id
+ - key: id
+ foreign-key: teams
+ - table-name: workers
+ keys:
+ - key: tasks
+ foreign-key: activeTask
+ - key: tasks
+ foreign-key: tasks
+ - key: id
+ foreign-key: teams
+ - key: workers
+ foreign-key: id
+- table-name: hubs
+ join:
+ - table-name: teams
+ keys:
+ - key: id
+ foreign-key: hub
+ - key: teams
+ foreign-key: id
+ - table-name: workers
+ keys:
+ - key: teams
+ foreign-key: teams
+- table-name: organizations
+ join:
+ - table-name: administrators
+ keys:
+ - key: id
+ foreign-key: organization
+ - key: delegatees
+ foreign-key: organization
+ - table-name: tasks
+ keys:
+ - key: id
+ foreign-key: organization
+ - key: delegatees
+ foreign-key: organization
+ - table-name: workers
+ keys:
+ - key: id
+ foreign-key: organization
+ - key: delegatees
+ foreign-key: organization
+- table-name: workers
+ join:
+ - table-name: administrators
+ keys:
+ - key: organization
+ foreign-key: organization
+ - table-name: organizations
+ keys:
+ - key: organization
+ foreign-key: id
+ - key: organization
+ foreign-key: delegatees
+ - table-name: tasks
+ keys:
+ - key: organization
+ foreign-key: organization
+ - key: activeTask
+ foreign-key: id
+ - key: tasks
+ foreign-key: id
+ - key: id
+ foreign-key: worker
+ - table-name: teams
+ keys:
+ - key: activeTask
+ foreign-key: tasks
+ - key: tasks
+ foreign-key: tasks
+ - key: teams
+ foreign-key: id
+ - key: id
+ foreign-key: workers
+ - table-name: hubs
+ keys:
+ - key: teams
+ foreign-key: teams
diff --git a/_data/taps/schemas/onfleet/v1/onfleet-v1-tables.yml b/_data/taps/schemas/onfleet/v1/onfleet-v1-tables.yml
new file mode 100644
index 000000000..7de07661b
--- /dev/null
+++ b/_data/taps/schemas/onfleet/v1/onfleet-v1-tables.yml
@@ -0,0 +1,85 @@
+tap: onfleet
+version: '1'
+tables:
+- name: administrators
+ description: 'The `{{ table.name }}` table contains info about the administrators
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-onfleet/blob/master/tap_onfleet/schemas/administrators.json
+ api-method: http://docs.onfleet.com/docs/administrators#list-administrators
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: timeLastModified
+- name: hubs
+ description: 'The `{{ table.name }}` table contains info about the hubs, or depots,
+ for teams in your {{ integration.display_name }} account. A hub is the location
+ from which all deliveries for a team''s workers start.
+
+ '
+ links:
+ doc-link: http://docs.onfleet.com/docs/hubs
+ singer-schema: https://github.com/singer-io/tap-onfleet/blob/master/tap_onfleet/schemas/hubs.json
+ api-method: http://docs.onfleet.com/docs/hubs#list-hubs
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: organizations
+ description: 'The `{{ table.name }}` table contains info about the organizations
+ in your {{ integration.display_name }} account. In {{ integration.display_name
+ }}, an organization is the top-most entity - it contains administrators, teams,
+ works, and tasks, all of which belong to the organization.
+
+ '
+ links:
+ doc-link: http://docs.onfleet.com/docs/organizations
+ singer-schema: https://github.com/singer-io/tap-onfleet/blob/master/tap_onfleet/schemas/organizations.json
+ api-method: http://docs.onfleet.com/docs/organizations#get-details
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: timeLastModified
+- name: tasks
+ description: 'The `{{ table.name }}` table contains info about the tasks in your
+ {{ integration.display_name }} account. Tasks are units of work that [`administrators`](#administrators)
+ create and assign to [`workers`](#workers) for completion.
+
+ '
+ links:
+ doc-link: http://docs.onfleet.com/docs/tasks
+ singer-schema: https://github.com/singer-io/tap-onfleet/blob/master/tap_onfleet/schemas/tasks.json
+ api-method: http://docs.onfleet.com/docs/tasks#list-tasks
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: timeLastModified
+- name: teams
+ description: 'The `{{ table.name }}` table contains info about the teams in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: http://docs.onfleet.com/docs/teams
+ singer-schema: https://github.com/singer-io/tap-onfleet/blob/master/tap_onfleet/schemas/teams.json
+ api-method: http://docs.onfleet.com/docs/teams#list-teams
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: timeLastModified
+- name: workers
+ description: 'The `{{ table.name }}` table contains info about the workers (or drivers)
+ in your {{ integration.display_name }} account. Workers are organization members
+ who complete tasks.
+
+ '
+ links:
+ doc-link: http://docs.onfleet.com/docs/workers
+ singer-schema: https://github.com/singer-io/tap-onfleet/blob/master/tap_onfleet/schemas/workers.json
+ api-method: http://docs.onfleet.com/docs/workers#list-workers
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: timeLastModified
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/outbrain/v1/json/campaign_performance.json b/_data/taps/schemas/outbrain/v1/json/campaign_performance.json
new file mode 100644
index 000000000..81e299e77
--- /dev/null
+++ b/_data/taps/schemas/outbrain/v1/json/campaign_performance.json
@@ -0,0 +1,54 @@
+{
+ "properties": {
+ "campaignId": {
+ "type": [
+ "string"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "number"
+ ]
+ },
+ "conversionRate": {
+ "type": [
+ "number"
+ ]
+ },
+ "conversions": {
+ "type": [
+ "number"
+ ]
+ },
+ "cpa": {
+ "type": [
+ "number"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "number"
+ ]
+ },
+ "ecpc": {
+ "type": [
+ "number"
+ ]
+ },
+ "fromDate": {
+ "type": [
+ "date"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "number"
+ ]
+ },
+ "spend": {
+ "type": [
+ "number"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/outbrain/v1/json/campaigns.json b/_data/taps/schemas/outbrain/v1/json/campaigns.json
new file mode 100644
index 000000000..30e789364
--- /dev/null
+++ b/_data/taps/schemas/outbrain/v1/json/campaigns.json
@@ -0,0 +1,121 @@
+{
+ "properties": {
+ "budget": {
+ "properties": {
+ "amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "amountRemaining": {
+ "type": [
+ "number"
+ ]
+ },
+ "amountSpent": {
+ "type": [
+ "number"
+ ]
+ },
+ "creationTime": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "string"
+ ]
+ },
+ "dailyTarget": {
+ "type": [
+ "number"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "date"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastModified": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "maximumAmount": {
+ "type": [
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "pacing": {
+ "type": [
+ "string"
+ ]
+ },
+ "runForever": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "shared": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "date"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "campaignOnAir": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "cpc": {
+ "type": [
+ "number"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "onAirReason": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/outbrain/v1/outbrain-v1-tables.yml b/_data/taps/schemas/outbrain/v1/outbrain-v1-tables.yml
new file mode 100644
index 000000000..a565584c4
--- /dev/null
+++ b/_data/taps/schemas/outbrain/v1/outbrain-v1-tables.yml
@@ -0,0 +1,31 @@
+tap: outbrain
+version: '1'
+tap-repo-schemas: false
+tables:
+- name: campaigns
+ description: 'The `{{ table.name }}` table contains info about your {{ integration.display_name
+ }} campaigns.
+
+ '
+ links:
+ doc-link: http://docs.amplifyv01.apiary.io/#reference/campaigns
+ singer-schema: https://github.com/singer-io/tap-outbrain/blob/master/tap_outbrain/schemas.py#L86
+ api-method: http://docs.amplifyv01.apiary.io/#reference/campaigns/campaigns-collection-via-marketer/list-all-campaigns-associated-with-a-marketer
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: campaign_performance
+ description: 'The `{{ table.name }}` table contains performance metrics for your
+ {{ integration.display_name }} campaigns.
+
+ '
+ links:
+ doc-link: http://docs.amplifyv01.apiary.io/#reference/performance-reporting/campaigns
+ singer-schema: https://github.com/singer-io/tap-outbrain/blob/master/tap_outbrain/schemas.py#L218
+ api-method: http://docs.amplifyv01.apiary.io/#reference/performance-reporting/campaigns/retrieve-campaigns-with-performance-statistics-for-a-marketer
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - campaignId
+ - fromDate
+ replication-key: fromDate
diff --git a/_data/taps/schemas/outreach/v1/json/accounts.json b/_data/taps/schemas/outreach/v1/json/accounts.json
new file mode 100644
index 000000000..2260c4904
--- /dev/null
+++ b/_data/taps/schemas/outreach/v1/json/accounts.json
@@ -0,0 +1,1067 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "buyerIntentScore": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "companyType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creatorId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "custom1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom10": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom100": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom101": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom102": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom103": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom104": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom105": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom106": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom107": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom108": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom109": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom11": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom110": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom111": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom112": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom113": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom114": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom115": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom116": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom117": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom118": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom119": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom12": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom120": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom121": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom122": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom123": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom124": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom125": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom126": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom127": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom128": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom129": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom13": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom130": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom131": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom132": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom133": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom134": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom135": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom136": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom137": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom138": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom139": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom14": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom140": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom141": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom142": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom143": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom144": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom145": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom146": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom147": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom148": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom149": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom15": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom150": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom16": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom17": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom18": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom19": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom20": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom21": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom22": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom23": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom24": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom25": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom26": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom27": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom28": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom29": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom30": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom31": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom32": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom33": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom34": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom35": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom36": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom37": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom38": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom39": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom40": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom41": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom42": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom43": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom44": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom45": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom46": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom47": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom48": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom49": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom50": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom51": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom52": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom53": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom54": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom55": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom56": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom57": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom58": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom59": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom6": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom60": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom61": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom62": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom63": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom64": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom65": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom66": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom67": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom68": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom69": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom7": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom70": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom71": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom72": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom73": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom74": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom75": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom76": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom77": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom78": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom79": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom8": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom80": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom81": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom82": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom83": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom84": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom85": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom86": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom87": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom88": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom89": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom9": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom90": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom91": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom92": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom93": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom94": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom95": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom96": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom97": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom98": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom99": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "externalSource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "foundedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "industry": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "linkedInEmployees": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "linkedInUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locality": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "named": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "naturalName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "numberOfEmployees": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ownerId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sharingTeamId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "touchedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updaterId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "websiteUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/outreach/v1/json/call_dispositions.json b/_data/taps/schemas/outreach/v1/json/call_dispositions.json
new file mode 100644
index 000000000..77bc5787d
--- /dev/null
+++ b/_data/taps/schemas/outreach/v1/json/call_dispositions.json
@@ -0,0 +1,47 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creatorId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "outcome": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/outreach/v1/json/call_purposes.json b/_data/taps/schemas/outreach/v1/json/call_purposes.json
new file mode 100644
index 000000000..84a713c56
--- /dev/null
+++ b/_data/taps/schemas/outreach/v1/json/call_purposes.json
@@ -0,0 +1,41 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creatorId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/outreach/v1/json/calls.json b/_data/taps/schemas/outreach/v1/json/calls.json
new file mode 100644
index 000000000..c19acb866
--- /dev/null
+++ b/_data/taps/schemas/outreach/v1/json/calls.json
@@ -0,0 +1,209 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "answeredAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "callDispositionId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "callPurposeId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "completedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "dialedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "direction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "externalVendor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "from": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "opportunityId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "outcome": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phoneNumberId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "prospectId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "recordingUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "returnedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "sequenceAction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sequenceId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sequenceStateId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sequenceStepId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shouldRecordCall": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stateChangedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "taskId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "userCallType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "userId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "vendorCallId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voicemailRecordingUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/outreach/v1/json/content_categories.json b/_data/taps/schemas/outreach/v1/json/content_categories.json
new file mode 100644
index 000000000..50ea3c0dc
--- /dev/null
+++ b/_data/taps/schemas/outreach/v1/json/content_categories.json
@@ -0,0 +1,59 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "allowSequences": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allowSnippets": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allowTemplates": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creatorId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/outreach/v1/json/duties.json b/_data/taps/schemas/outreach/v1/json/duties.json
new file mode 100644
index 000000000..7b42c734b
--- /dev/null
+++ b/_data/taps/schemas/outreach/v1/json/duties.json
@@ -0,0 +1,23 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "dutyType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "symbolicName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/outreach/v1/json/events.json b/_data/taps/schemas/outreach/v1/json/events.json
new file mode 100644
index 000000000..5845ebd4c
--- /dev/null
+++ b/_data/taps/schemas/outreach/v1/json/events.json
@@ -0,0 +1,119 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "callId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "eventAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "externalUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "mailingId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "opportunityId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "payload": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "prospectId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "requestCity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "requestDevice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "requestHost": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "requestProxied": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "requestRegion": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "taskId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "userId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/outreach/v1/json/mailboxes.json b/_data/taps/schemas/outreach/v1/json/mailboxes.json
new file mode 100644
index 000000000..ca98b91bb
--- /dev/null
+++ b/_data/taps/schemas/outreach/v1/json/mailboxes.json
@@ -0,0 +1,293 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "authId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creatorId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "editable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailHash": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailProvider": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailSignature": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ewsEndpoint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ewsSslVerifyMode": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exchangeVersion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "imapHost": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "imapPort": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "imapSsl": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "maxEmailsPerDay": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "maxMailingsPerDay": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "maxMailingsPerWeek": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "optOutMessage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "optOutSignature": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prospectEmailExclusions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "providerId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "providerType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sendDisabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "sendErroredAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "sendMaxRetries": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sendMethod": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sendPeriod": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sendRequiresSync": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "sendSuccessAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "sendThreshold": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sendgridWebhookUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "smtpHost": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "smtpPort": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "smtpSsl": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "smtpUsername": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "syncActiveFrequency": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "syncDisabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "syncErroredAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "syncFinishedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "syncMethod": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "syncOutreachFolder": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "syncPassiveFrequency": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "syncSuccessAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updaterId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "userId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/outreach/v1/json/mailings.json b/_data/taps/schemas/outreach/v1/json/mailings.json
new file mode 100644
index 000000000..ac2b1ad28
--- /dev/null
+++ b/_data/taps/schemas/outreach/v1/json/mailings.json
@@ -0,0 +1,281 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "bodyHtml": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bodyText": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bouncedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "clickCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "clickedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deliveredAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "errorBacktrace": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "errorReason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followUpSequenceId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "followUpTaskScheduledAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "followUpTaskType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "mailboxAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mailboxId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "mailingType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "markedAsSpamAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "messageId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notifyThreadCondition": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notifyThreadScheduledAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "notifyThreadStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "openCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "openedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "opportunityId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "overrideSafetySettings": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "prospectId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "references": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "repliedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "retryAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "retryCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "retryInterval": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "scheduledAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "sequenceId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sequenceStateId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sequenceStepId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stateChangedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taskId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "templateId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "trackLinks": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "trackOpens": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "unsubscribedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "userId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/outreach/v1/json/opportunities.json b/_data/taps/schemas/outreach/v1/json/opportunities.json
new file mode 100644
index 000000000..cdb4eff9f
--- /dev/null
+++ b/_data/taps/schemas/outreach/v1/json/opportunities.json
@@ -0,0 +1,1061 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "closeDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creatorId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currencyType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom10": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom100": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom101": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom102": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom103": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom104": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom105": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom106": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom107": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom108": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom109": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom11": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom110": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom111": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom112": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom113": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom114": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom115": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom116": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom117": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom118": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom119": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom12": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom120": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom121": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom122": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom123": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom124": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom125": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom126": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom127": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom128": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom129": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom13": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom130": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom131": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom132": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom133": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom134": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom135": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom136": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom137": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom138": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom139": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom14": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom140": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom141": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom142": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom143": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom144": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom145": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom146": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom147": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom148": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom149": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom15": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom150": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom16": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom17": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom18": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom19": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom20": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom21": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom22": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom23": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom24": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom25": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom26": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom27": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom28": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom29": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom30": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom31": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom32": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom33": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom34": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom35": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom36": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom37": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom38": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom39": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom40": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom41": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom42": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom43": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom44": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom45": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom46": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom47": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom48": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom49": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom50": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom51": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom52": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom53": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom54": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom55": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom56": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom57": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom58": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom59": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom6": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom60": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom61": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom62": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom63": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom64": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom65": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom66": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom67": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom68": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom69": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom7": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom70": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom71": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom72": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom73": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom74": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom75": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom76": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom77": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom78": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom79": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom8": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom80": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom81": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom82": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom83": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom84": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom85": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom86": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom87": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom88": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom89": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom9": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom90": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom91": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom92": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom93": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom94": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom95": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom96": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom97": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom98": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom99": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "externalCreatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "mapLink": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mapNextSteps": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mapStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nextStep": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "opportunityStageId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "opportunityType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ownerId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "probability": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "prospectingRepId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sharingTeamId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stageId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "touchedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updaterId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/outreach/v1/json/personas.json b/_data/taps/schemas/outreach/v1/json/personas.json
new file mode 100644
index 000000000..4601e425a
--- /dev/null
+++ b/_data/taps/schemas/outreach/v1/json/personas.json
@@ -0,0 +1,35 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/outreach/v1/json/prospects.json b/_data/taps/schemas/outreach/v1/json/prospects.json
new file mode 100644
index 000000000..37d4bccbd
--- /dev/null
+++ b/_data/taps/schemas/outreach/v1/json/prospects.json
@@ -0,0 +1,1479 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "addedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "addressCity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "addressCountry": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "addressState": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "addressStreet": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "addressStreet2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "addressZip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "angelListUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "availableAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "callOptedOut": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "callsOptStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "callsOptedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "campaignName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "clickCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contactHistogram": {
+ "items": {
+ "items": {
+ "type": [
+ "integer"
+ ]
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creatorId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "custom1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom10": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom100": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom101": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom102": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom103": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom104": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom105": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom106": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom107": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom108": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom109": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom11": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom110": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom111": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom112": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom113": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom114": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom115": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom116": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom117": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom118": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom119": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom12": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom120": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom121": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom122": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom123": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom124": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom125": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom126": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom127": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom128": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom129": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom13": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom130": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom131": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom132": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom133": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom134": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom135": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom136": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom137": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom138": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom139": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom14": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom140": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom141": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom142": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom143": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom144": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom145": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom146": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom147": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom148": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom149": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom15": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom150": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom16": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom17": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom18": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom19": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom20": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom21": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom22": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom23": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom24": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom25": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom26": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom27": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom28": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom29": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom30": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom31": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom32": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom33": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom34": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom35": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom36": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom37": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom38": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom39": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom40": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom41": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom42": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom43": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom44": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom45": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom46": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom47": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom48": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom49": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom50": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom51": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom52": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom53": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom54": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom55": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom56": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom57": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom58": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom59": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom6": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom60": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom61": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom62": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom63": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom64": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom65": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom66": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom67": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom68": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom69": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom7": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom70": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom71": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom72": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom73": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom74": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom75": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom76": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom77": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom78": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom79": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom8": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom80": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom81": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom82": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom83": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom84": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom85": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom86": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom87": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom88": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom89": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom9": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom90": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom91": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom92": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom93": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom94": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom95": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom96": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom97": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom98": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom99": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dateOfBirth": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "degree": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailOptedOut": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "emails": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "emailsOptStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emailsOptedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "engagedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "engagedScore": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "eventName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "externalId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "externalOwner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "externalSource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "facebookUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "firstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gender": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "githubUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "githubUsername": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "googlePlusUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "graduationDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "homePhones": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "jobStartDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "lastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "linkedInConnections": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "linkedInId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "linkedInSlug": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "linkedInUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "middleName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mobilePhones": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "occupation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "openCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "optedOut": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "optedOutAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "otherPhones": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ownerId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "personaId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "personalNote1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "personalNote2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preferredContact": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quoraUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "replyCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "school": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "score": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "sharingTeamId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "specialties": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stackOverflowId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stackOverflowUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stageId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "timeZone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZoneIana": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timeZoneInferred": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "touchedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "trashedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "twitterUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "twitterUsername": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updaterId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "voipPhones": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "websiteUrl1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "websiteUrl2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "websiteUrl3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "workPhones": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/outreach/v1/json/sequence_states.json b/_data/taps/schemas/outreach/v1/json/sequence_states.json
new file mode 100644
index 000000000..ca328c373
--- /dev/null
+++ b/_data/taps/schemas/outreach/v1/json/sequence_states.json
@@ -0,0 +1,173 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "activeAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "bounceCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "callCompletedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "clickCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creatorId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "deliverCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "errorReason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "failureCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "mailboxId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "negativeReplyCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "neutralReplyCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "openCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "opportunityId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "optOutCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pauseReason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "positiveReplyCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "prospectId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "repliedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "replyCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "scheduleCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sequenceId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sequenceStepId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stateChangedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/outreach/v1/json/sequence_steps.json b/_data/taps/schemas/outreach/v1/json/sequence_steps.json
new file mode 100644
index 000000000..48b1a46a0
--- /dev/null
+++ b/_data/taps/schemas/outreach/v1/json/sequence_steps.json
@@ -0,0 +1,161 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "bounceCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "callPurposeId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "clickCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creatorId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deliverCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "displayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "failureCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "negativeReplyCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "neutralReplyCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "openCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "optOutCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "order": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "positiveReplyCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "replyCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "scheduleCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sequenceId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "stepType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taskAutoskipDelay": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "taskNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taskPriorityId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updaterId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/outreach/v1/json/sequence_templates.json b/_data/taps/schemas/outreach/v1/json/sequence_templates.json
new file mode 100644
index 000000000..fbead2b72
--- /dev/null
+++ b/_data/taps/schemas/outreach/v1/json/sequence_templates.json
@@ -0,0 +1,131 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "bounceCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "clickCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creatorId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "deliverCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enabledAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "failureCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "isReply": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "negaitveReplyCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "neutralReplyCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "openCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "optOutCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "positiveReplyCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "replyCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "scheduleCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sequenceStepId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "templateId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updaterId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/outreach/v1/json/sequences.json b/_data/taps/schemas/outreach/v1/json/sequences.json
new file mode 100644
index 000000000..56dc8f8cb
--- /dev/null
+++ b/_data/taps/schemas/outreach/v1/json/sequences.json
@@ -0,0 +1,281 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "automationPercentage": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "bounceCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "clickCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creatorId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "deliverCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "durationInDays": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enabledAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "failureCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "finishOnReply": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "lastUsedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "locked": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "lockedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "maxActivations": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "negativeReplyCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "neutralReplyCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "numContactedProspects": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "numRepliedProspects": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "openCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "optOutCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ownerId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "positiveReplyCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "primaryReplyAction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "primaryReplyPauseDuration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "replyCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "rulesetId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "scheduleCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "scheduleIntervalType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "secondaryReplyAction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "secondaryReplyPauseDuration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sequenceStepCount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sequenceType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shareType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "throttleCapacity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "throttleMaxAddsPerDay": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "throttlePaused": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "throttlePausedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "transactional": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updaterId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/outreach/v1/json/stages.json b/_data/taps/schemas/outreach/v1/json/stages.json
new file mode 100644
index 000000000..5314ffb27
--- /dev/null
+++ b/_data/taps/schemas/outreach/v1/json/stages.json
@@ -0,0 +1,53 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creatorId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updaterId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/outreach/v1/json/tasks.json b/_data/taps/schemas/outreach/v1/json/tasks.json
new file mode 100644
index 000000000..421f71ad8
--- /dev/null
+++ b/_data/taps/schemas/outreach/v1/json/tasks.json
@@ -0,0 +1,191 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "accountId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "autoskipAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "callId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "compiledSequenceTemplateHtml": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "completed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "completedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "completerId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creatorId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "dueAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "mailingId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "opportunityAssociation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "opportunityId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ownerId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "prospectId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "scheduledAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "sequenceId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sequenceStateId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sequenceStepId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sequenceTemplateId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stateChangedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "subjectId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "taskPriorityId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "taskThemeId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "taskType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "templateId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/outreach/v1/json/teams.json b/_data/taps/schemas/outreach/v1/json/teams.json
new file mode 100644
index 000000000..4f3a9f16e
--- /dev/null
+++ b/_data/taps/schemas/outreach/v1/json/teams.json
@@ -0,0 +1,59 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creatorId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "scimExternalId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "scimSource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updaterId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/outreach/v1/json/users.json b/_data/taps/schemas/outreach/v1/json/users.json
new file mode 100644
index 000000000..12ab7f60b
--- /dev/null
+++ b/_data/taps/schemas/outreach/v1/json/users.json
@@ -0,0 +1,493 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "accountsViewId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "activityNotificationsDisabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "bounceWarningEmailEnabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "bridgePhone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bridgePhoneExtension": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "callsViewId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "controlledTabDefault": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creatorId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currentSignInAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dailyDigestEmailEnabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "duties": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "duty_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enableVoiceRecordings": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "engagementEmailsEnabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "firstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "inboundBridgePhone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inboundBridgePhoneExtension": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inboundCallBehavior": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inboundPhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inboundVoicemailCustomMessageText": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inboundVoicemailMessageTextVoice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inboundVoicemailPromptType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "kaiaRecordingsViewId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "keepBridgePhoneConnected": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "lastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lastSignInAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "locked": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mailboxErrorEmailEnabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mailboxId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "meetingEngagementNotificationEnabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notificationsEnabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "oceClickToDialEverywhere": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "oceGmailToolbar": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "oceGmailTrackingState": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "oceSalesforceEmailDecorating": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "oceSalesforcePhoneDecorating": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "oceUniversalTaskFlow": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "oceWindowMode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "opportunitiesViewId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "passwordExpiresAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "phoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pluginAlertNotificationEnabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "preferredVoiceRegion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prefersLocalPresence": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "primaryTimezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "profileId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "prospectsViewId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reportsTeamPerfViewId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reportsViewId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "roleId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "scimExternalId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "scimSource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "secondaryTimezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "senderNotificationsExcluded": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tasksViewId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "teamsViewId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tertiaryTimezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "textingEmailNotifications": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unknownReplyEmailEnabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updaterId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "userGuid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usersViewId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "voicemailNotificationEnabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "weeklyDigestEmailEnabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/outreach/v1/outreach-v1-foreign-keys.yml b/_data/taps/schemas/outreach/v1/outreach-v1-foreign-keys.yml
new file mode 100644
index 000000000..5d67790a9
--- /dev/null
+++ b/_data/taps/schemas/outreach/v1/outreach-v1-foreign-keys.yml
@@ -0,0 +1,2591 @@
+tap: outreach
+version: '1'
+keys:
+ accounts_id:
+ - table: accounts
+ keys:
+ - id
+ - table: opportunities
+ keys:
+ - id
+ - table: prospects
+ keys:
+ - id
+ - table: sequence_states
+ keys:
+ - id
+ - table: tasks
+ keys:
+ - id
+ call_dispositions_callDispositionId:
+ - table: call_dispositions
+ keys:
+ - id
+ - table: calls
+ keys:
+ - callDispositionId
+ call_purposes_callPurposeId:
+ - table: call_purposes
+ keys:
+ - id
+ - table: calls
+ keys:
+ - callPurposeId
+ calls_callId:
+ - table: calls
+ keys:
+ - id
+ - table: tasks
+ keys:
+ - callId
+ content_categories_id:
+ - table: content_categories
+ keys:
+ - id
+ duties_id:
+ - table: duties
+ keys:
+ - id
+ - table: users
+ keys:
+ - duties.id
+ events_id:
+ - table: events
+ keys:
+ - id
+ mailboxes_mailboxId:
+ - table: mailboxes
+ keys:
+ - id
+ - table: mailings
+ keys:
+ - mailboxId
+ - table: users
+ keys:
+ - mailboxId
+ mailings_mailingId:
+ - table: events
+ keys:
+ - mailingId
+ - table: mailings
+ keys:
+ - id
+ - table: tasks
+ keys:
+ - mailingId
+ opportunities_opportunityId:
+ - table: calls
+ keys:
+ - opportunityId
+ - table: mailings
+ keys:
+ - opportunityId
+ - table: opportunities
+ keys:
+ - id
+ - table: tasks
+ keys:
+ - opportunityId
+ personas_personaId:
+ - table: personas
+ keys:
+ - id
+ - table: prospects
+ keys:
+ - personaId
+ prospects_prospectId:
+ - table: calls
+ keys:
+ - prospectId
+ - table: events
+ keys:
+ - prospectId
+ - table: mailings
+ keys:
+ - prospectId
+ - table: prospects
+ keys:
+ - id
+ - table: sequence_states
+ keys:
+ - prospectId
+ - table: tasks
+ keys:
+ - prospectId
+ sequences_sequenceId:
+ - table: calls
+ keys:
+ - sequenceId
+ - table: mailings
+ keys:
+ - sequenceId
+ - table: sequence_states
+ keys:
+ - sequenceId
+ - table: sequence_steps
+ keys:
+ - sequenceId
+ - table: tasks
+ keys:
+ - sequenceId
+ sequence_states_sequenceStateId:
+ - table: calls
+ keys:
+ - sequenceStateId
+ - table: mailings
+ keys:
+ - sequenceStateId
+ - table: sequence_states
+ keys:
+ - id
+ - table: tasks
+ keys:
+ - sequenceStateId
+ sequence_steps_sequenceStepId:
+ - table: calls
+ keys:
+ - sequenceStepId
+ - table: mailings
+ keys:
+ - sequenceStepId
+ - table: sequence_steps
+ keys:
+ - id
+ - table: tasks
+ keys:
+ - sequenceStepId
+ stages_opportunityStageId:
+ - table: opportunities
+ keys:
+ - opportunityStageId
+ - table: prospects
+ keys:
+ - stageId
+ - table: stages
+ keys:
+ - id
+ tasks_id:
+ - table: calls
+ keys:
+ - id
+ - table: mailings
+ keys:
+ - id
+ - table: tasks
+ keys:
+ - id
+ teams_id:
+ - table: teams
+ keys:
+ - id
+ users_creatorId:
+ - table: accounts
+ keys:
+ - creatorId
+ - ownerId
+ - updaterId
+ - table: call_dispositions
+ keys:
+ - creatorId
+ - table: call_purposes
+ keys:
+ - creatorId
+ - table: calls
+ keys:
+ - userId
+ - table: content_categories
+ keys:
+ - creatorId
+ - table: mailboxes
+ keys:
+ - creatorId
+ - updaterId
+ - userId
+ - table: opportunities
+ keys:
+ - creatorId
+ - ownerId
+ - table: prospects
+ keys:
+ - creatorId
+ - updaterId
+ - table: sequence_states
+ keys:
+ - creatorId
+ - table: sequence_steps
+ keys:
+ - creatorId
+ - updaterId
+ - table: sequence_templates
+ keys:
+ - creatorId
+ - updaterId
+ - table: sequences
+ keys:
+ - creatorId
+ - ownerId
+ - updaterId
+ - table: stages
+ keys:
+ - creatorId
+ - updaterId
+ - table: tasks
+ keys:
+ - creatorId
+ - completerId
+ - table: users
+ keys:
+ - creatorId
+ - id
+ - updaterId
+tables:
+- table-name: accounts
+ join:
+ - table-name: opportunities
+ keys:
+ - key: id
+ foreign-key: id
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: ownerId
+ foreign-key: ownerId
+ - key: updaterId
+ foreign-key: ownerId
+ - table-name: prospects
+ keys:
+ - key: id
+ foreign-key: id
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: ownerId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: sequence_states
+ keys:
+ - key: id
+ foreign-key: id
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - table-name: tasks
+ keys:
+ - key: id
+ foreign-key: id
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: completerId
+ - key: ownerId
+ foreign-key: completerId
+ - key: updaterId
+ foreign-key: completerId
+ - table-name: call_dispositions
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - table-name: call_purposes
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - table-name: calls
+ keys:
+ - key: creatorId
+ foreign-key: userId
+ - key: ownerId
+ foreign-key: userId
+ - key: updaterId
+ foreign-key: userId
+ - table-name: content_categories
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - table-name: mailboxes
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: ownerId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - key: creatorId
+ foreign-key: userId
+ - key: ownerId
+ foreign-key: userId
+ - key: updaterId
+ foreign-key: userId
+ - table-name: sequence_steps
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: ownerId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: sequence_templates
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: ownerId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: sequences
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: ownerId
+ foreign-key: ownerId
+ - key: updaterId
+ foreign-key: ownerId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: ownerId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: stages
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: ownerId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: users
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: id
+ - key: ownerId
+ foreign-key: id
+ - key: updaterId
+ foreign-key: id
+ - key: creatorId
+ foreign-key: updaterId
+ - key: ownerId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+- table-name: opportunities
+ join:
+ - table-name: accounts
+ keys:
+ - key: id
+ foreign-key: id
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: ownerId
+ foreign-key: ownerId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: ownerId
+ foreign-key: updaterId
+ - table-name: prospects
+ keys:
+ - key: id
+ foreign-key: id
+ - key: opportunityStageId
+ foreign-key: stageId
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: ownerId
+ foreign-key: updaterId
+ - table-name: sequence_states
+ keys:
+ - key: id
+ foreign-key: id
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - table-name: tasks
+ keys:
+ - key: id
+ foreign-key: id
+ - key: id
+ foreign-key: opportunityId
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: completerId
+ - key: ownerId
+ foreign-key: completerId
+ - table-name: calls
+ keys:
+ - key: id
+ foreign-key: opportunityId
+ - key: creatorId
+ foreign-key: userId
+ - key: ownerId
+ foreign-key: userId
+ - table-name: mailings
+ keys:
+ - key: id
+ foreign-key: opportunityId
+ - table-name: stages
+ keys:
+ - key: opportunityStageId
+ foreign-key: id
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: ownerId
+ foreign-key: updaterId
+ - table-name: call_dispositions
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - table-name: call_purposes
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - table-name: content_categories
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - table-name: mailboxes
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: ownerId
+ foreign-key: updaterId
+ - key: creatorId
+ foreign-key: userId
+ - key: ownerId
+ foreign-key: userId
+ - table-name: sequence_steps
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: ownerId
+ foreign-key: updaterId
+ - table-name: sequence_templates
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: ownerId
+ foreign-key: updaterId
+ - table-name: sequences
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: ownerId
+ foreign-key: ownerId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: ownerId
+ foreign-key: updaterId
+ - table-name: users
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: id
+ - key: ownerId
+ foreign-key: id
+ - key: creatorId
+ foreign-key: updaterId
+ - key: ownerId
+ foreign-key: updaterId
+- table-name: prospects
+ join:
+ - table-name: accounts
+ keys:
+ - key: id
+ foreign-key: id
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: updaterId
+ foreign-key: ownerId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: opportunities
+ keys:
+ - key: id
+ foreign-key: id
+ - key: stageId
+ foreign-key: opportunityStageId
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: updaterId
+ foreign-key: ownerId
+ - table-name: sequence_states
+ keys:
+ - key: id
+ foreign-key: id
+ - key: id
+ foreign-key: prospectId
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - table-name: tasks
+ keys:
+ - key: id
+ foreign-key: id
+ - key: id
+ foreign-key: prospectId
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: completerId
+ - key: updaterId
+ foreign-key: completerId
+ - table-name: personas
+ keys:
+ - key: personaId
+ foreign-key: id
+ - table-name: calls
+ keys:
+ - key: id
+ foreign-key: prospectId
+ - key: creatorId
+ foreign-key: userId
+ - key: updaterId
+ foreign-key: userId
+ - table-name: events
+ keys:
+ - key: id
+ foreign-key: prospectId
+ - table-name: mailings
+ keys:
+ - key: id
+ foreign-key: prospectId
+ - table-name: stages
+ keys:
+ - key: stageId
+ foreign-key: id
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: call_dispositions
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - table-name: call_purposes
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - table-name: content_categories
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - table-name: mailboxes
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - key: creatorId
+ foreign-key: userId
+ - key: updaterId
+ foreign-key: userId
+ - table-name: sequence_steps
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: sequence_templates
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: sequences
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: updaterId
+ foreign-key: ownerId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: users
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: id
+ - key: updaterId
+ foreign-key: id
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+- table-name: sequence_states
+ join:
+ - table-name: accounts
+ keys:
+ - key: id
+ foreign-key: id
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: creatorId
+ foreign-key: updaterId
+ - table-name: opportunities
+ keys:
+ - key: id
+ foreign-key: id
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - table-name: prospects
+ keys:
+ - key: id
+ foreign-key: id
+ - key: prospectId
+ foreign-key: id
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - table-name: tasks
+ keys:
+ - key: id
+ foreign-key: id
+ - key: prospectId
+ foreign-key: prospectId
+ - key: sequenceId
+ foreign-key: sequenceId
+ - key: id
+ foreign-key: sequenceStateId
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: completerId
+ - table-name: calls
+ keys:
+ - key: prospectId
+ foreign-key: prospectId
+ - key: sequenceId
+ foreign-key: sequenceId
+ - key: id
+ foreign-key: sequenceStateId
+ - key: creatorId
+ foreign-key: userId
+ - table-name: events
+ keys:
+ - key: prospectId
+ foreign-key: prospectId
+ - table-name: mailings
+ keys:
+ - key: prospectId
+ foreign-key: prospectId
+ - key: sequenceId
+ foreign-key: sequenceId
+ - key: id
+ foreign-key: sequenceStateId
+ - table-name: sequence_steps
+ keys:
+ - key: sequenceId
+ foreign-key: sequenceId
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - table-name: call_dispositions
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - table-name: call_purposes
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - table-name: content_categories
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - table-name: mailboxes
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: creatorId
+ foreign-key: userId
+ - table-name: sequence_templates
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - table-name: sequences
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: creatorId
+ foreign-key: updaterId
+ - table-name: stages
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - table-name: users
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: id
+ - key: creatorId
+ foreign-key: updaterId
+- table-name: tasks
+ join:
+ - table-name: accounts
+ keys:
+ - key: id
+ foreign-key: id
+ - key: creatorId
+ foreign-key: creatorId
+ - key: completerId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: completerId
+ foreign-key: ownerId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: completerId
+ foreign-key: updaterId
+ - table-name: opportunities
+ keys:
+ - key: id
+ foreign-key: id
+ - key: opportunityId
+ foreign-key: id
+ - key: creatorId
+ foreign-key: creatorId
+ - key: completerId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: completerId
+ foreign-key: ownerId
+ - table-name: prospects
+ keys:
+ - key: id
+ foreign-key: id
+ - key: prospectId
+ foreign-key: id
+ - key: creatorId
+ foreign-key: creatorId
+ - key: completerId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: completerId
+ foreign-key: updaterId
+ - table-name: sequence_states
+ keys:
+ - key: id
+ foreign-key: id
+ - key: prospectId
+ foreign-key: prospectId
+ - key: sequenceId
+ foreign-key: sequenceId
+ - key: sequenceStateId
+ foreign-key: id
+ - key: creatorId
+ foreign-key: creatorId
+ - key: completerId
+ foreign-key: creatorId
+ - table-name: calls
+ keys:
+ - key: callId
+ foreign-key: id
+ - key: opportunityId
+ foreign-key: opportunityId
+ - key: prospectId
+ foreign-key: prospectId
+ - key: sequenceId
+ foreign-key: sequenceId
+ - key: sequenceStateId
+ foreign-key: sequenceStateId
+ - key: sequenceStepId
+ foreign-key: sequenceStepId
+ - key: id
+ foreign-key: id
+ - key: creatorId
+ foreign-key: userId
+ - key: completerId
+ foreign-key: userId
+ - table-name: events
+ keys:
+ - key: mailingId
+ foreign-key: mailingId
+ - key: prospectId
+ foreign-key: prospectId
+ - table-name: mailings
+ keys:
+ - key: mailingId
+ foreign-key: id
+ - key: opportunityId
+ foreign-key: opportunityId
+ - key: prospectId
+ foreign-key: prospectId
+ - key: sequenceId
+ foreign-key: sequenceId
+ - key: sequenceStateId
+ foreign-key: sequenceStateId
+ - key: sequenceStepId
+ foreign-key: sequenceStepId
+ - key: id
+ foreign-key: id
+ - table-name: sequence_steps
+ keys:
+ - key: sequenceId
+ foreign-key: sequenceId
+ - key: sequenceStepId
+ foreign-key: id
+ - key: creatorId
+ foreign-key: creatorId
+ - key: completerId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: completerId
+ foreign-key: updaterId
+ - table-name: call_dispositions
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: completerId
+ foreign-key: creatorId
+ - table-name: call_purposes
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: completerId
+ foreign-key: creatorId
+ - table-name: content_categories
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: completerId
+ foreign-key: creatorId
+ - table-name: mailboxes
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: completerId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: completerId
+ foreign-key: updaterId
+ - key: creatorId
+ foreign-key: userId
+ - key: completerId
+ foreign-key: userId
+ - table-name: sequence_templates
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: completerId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: completerId
+ foreign-key: updaterId
+ - table-name: sequences
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: completerId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: completerId
+ foreign-key: ownerId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: completerId
+ foreign-key: updaterId
+ - table-name: stages
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: completerId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: completerId
+ foreign-key: updaterId
+ - table-name: users
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: completerId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: id
+ - key: completerId
+ foreign-key: id
+ - key: creatorId
+ foreign-key: updaterId
+ - key: completerId
+ foreign-key: updaterId
+- table-name: call_dispositions
+ join:
+ - table-name: calls
+ keys:
+ - key: id
+ foreign-key: callDispositionId
+ - key: creatorId
+ foreign-key: userId
+ - table-name: accounts
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: creatorId
+ foreign-key: updaterId
+ - table-name: call_purposes
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - table-name: content_categories
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - table-name: mailboxes
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: creatorId
+ foreign-key: userId
+ - table-name: opportunities
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - table-name: prospects
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - table-name: sequence_states
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - table-name: sequence_steps
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - table-name: sequence_templates
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - table-name: sequences
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: creatorId
+ foreign-key: updaterId
+ - table-name: stages
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - table-name: tasks
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: completerId
+ - table-name: users
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: id
+ - key: creatorId
+ foreign-key: updaterId
+- table-name: calls
+ join:
+ - table-name: call_dispositions
+ keys:
+ - key: callDispositionId
+ foreign-key: id
+ - key: userId
+ foreign-key: creatorId
+ - table-name: call_purposes
+ keys:
+ - key: callPurposeId
+ foreign-key: id
+ - key: userId
+ foreign-key: creatorId
+ - table-name: tasks
+ keys:
+ - key: id
+ foreign-key: callId
+ - key: opportunityId
+ foreign-key: opportunityId
+ - key: prospectId
+ foreign-key: prospectId
+ - key: sequenceId
+ foreign-key: sequenceId
+ - key: sequenceStateId
+ foreign-key: sequenceStateId
+ - key: sequenceStepId
+ foreign-key: sequenceStepId
+ - key: id
+ foreign-key: id
+ - key: userId
+ foreign-key: creatorId
+ - key: userId
+ foreign-key: completerId
+ - table-name: mailings
+ keys:
+ - key: opportunityId
+ foreign-key: opportunityId
+ - key: prospectId
+ foreign-key: prospectId
+ - key: sequenceId
+ foreign-key: sequenceId
+ - key: sequenceStateId
+ foreign-key: sequenceStateId
+ - key: sequenceStepId
+ foreign-key: sequenceStepId
+ - key: id
+ foreign-key: id
+ - table-name: opportunities
+ keys:
+ - key: opportunityId
+ foreign-key: id
+ - key: userId
+ foreign-key: creatorId
+ - key: userId
+ foreign-key: ownerId
+ - table-name: events
+ keys:
+ - key: prospectId
+ foreign-key: prospectId
+ - table-name: prospects
+ keys:
+ - key: prospectId
+ foreign-key: id
+ - key: userId
+ foreign-key: creatorId
+ - key: userId
+ foreign-key: updaterId
+ - table-name: sequence_states
+ keys:
+ - key: prospectId
+ foreign-key: prospectId
+ - key: sequenceId
+ foreign-key: sequenceId
+ - key: sequenceStateId
+ foreign-key: id
+ - key: userId
+ foreign-key: creatorId
+ - table-name: sequence_steps
+ keys:
+ - key: sequenceId
+ foreign-key: sequenceId
+ - key: sequenceStepId
+ foreign-key: id
+ - key: userId
+ foreign-key: creatorId
+ - key: userId
+ foreign-key: updaterId
+ - table-name: accounts
+ keys:
+ - key: userId
+ foreign-key: creatorId
+ - key: userId
+ foreign-key: ownerId
+ - key: userId
+ foreign-key: updaterId
+ - table-name: content_categories
+ keys:
+ - key: userId
+ foreign-key: creatorId
+ - table-name: mailboxes
+ keys:
+ - key: userId
+ foreign-key: creatorId
+ - key: userId
+ foreign-key: updaterId
+ - key: userId
+ foreign-key: userId
+ - table-name: sequence_templates
+ keys:
+ - key: userId
+ foreign-key: creatorId
+ - key: userId
+ foreign-key: updaterId
+ - table-name: sequences
+ keys:
+ - key: userId
+ foreign-key: creatorId
+ - key: userId
+ foreign-key: ownerId
+ - key: userId
+ foreign-key: updaterId
+ - table-name: stages
+ keys:
+ - key: userId
+ foreign-key: creatorId
+ - key: userId
+ foreign-key: updaterId
+ - table-name: users
+ keys:
+ - key: userId
+ foreign-key: creatorId
+ - key: userId
+ foreign-key: id
+ - key: userId
+ foreign-key: updaterId
+- table-name: call_purposes
+ join:
+ - table-name: calls
+ keys:
+ - key: id
+ foreign-key: callPurposeId
+ - key: creatorId
+ foreign-key: userId
+ - table-name: accounts
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: creatorId
+ foreign-key: updaterId
+ - table-name: call_dispositions
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - table-name: content_categories
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - table-name: mailboxes
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: creatorId
+ foreign-key: userId
+ - table-name: opportunities
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - table-name: prospects
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - table-name: sequence_states
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - table-name: sequence_steps
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - table-name: sequence_templates
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - table-name: sequences
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: creatorId
+ foreign-key: updaterId
+ - table-name: stages
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - table-name: tasks
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: completerId
+ - table-name: users
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: id
+ - key: creatorId
+ foreign-key: updaterId
+- table-name: content_categories
+ join:
+ - table-name: accounts
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: creatorId
+ foreign-key: updaterId
+ - table-name: call_dispositions
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - table-name: call_purposes
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - table-name: calls
+ keys:
+ - key: creatorId
+ foreign-key: userId
+ - table-name: mailboxes
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: creatorId
+ foreign-key: userId
+ - table-name: opportunities
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - table-name: prospects
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - table-name: sequence_states
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - table-name: sequence_steps
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - table-name: sequence_templates
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - table-name: sequences
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: creatorId
+ foreign-key: updaterId
+ - table-name: stages
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - table-name: tasks
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: completerId
+ - table-name: users
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: id
+ - key: creatorId
+ foreign-key: updaterId
+- table-name: duties
+ join:
+ - table-name: users
+ keys:
+ - key: id
+ foreign-key: duties.id
+- table-name: users
+ join:
+ - table-name: duties
+ keys:
+ - key: duties.id
+ foreign-key: id
+ - table-name: mailboxes
+ keys:
+ - key: mailboxId
+ foreign-key: id
+ - key: creatorId
+ foreign-key: creatorId
+ - key: id
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: id
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - key: creatorId
+ foreign-key: userId
+ - key: id
+ foreign-key: userId
+ - key: updaterId
+ foreign-key: userId
+ - table-name: mailings
+ keys:
+ - key: mailboxId
+ foreign-key: mailboxId
+ - table-name: accounts
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: id
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: id
+ foreign-key: ownerId
+ - key: updaterId
+ foreign-key: ownerId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: id
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: call_dispositions
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: id
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - table-name: call_purposes
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: id
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - table-name: calls
+ keys:
+ - key: creatorId
+ foreign-key: userId
+ - key: id
+ foreign-key: userId
+ - key: updaterId
+ foreign-key: userId
+ - table-name: content_categories
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: id
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - table-name: opportunities
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: id
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: id
+ foreign-key: ownerId
+ - key: updaterId
+ foreign-key: ownerId
+ - table-name: prospects
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: id
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: id
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: sequence_states
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: id
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - table-name: sequence_steps
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: id
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: id
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: sequence_templates
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: id
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: id
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: sequences
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: id
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: id
+ foreign-key: ownerId
+ - key: updaterId
+ foreign-key: ownerId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: id
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: stages
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: id
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: id
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: tasks
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: id
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: completerId
+ - key: id
+ foreign-key: completerId
+ - key: updaterId
+ foreign-key: completerId
+- table-name: events
+ join:
+ - table-name: mailings
+ keys:
+ - key: mailingId
+ foreign-key: id
+ - key: prospectId
+ foreign-key: prospectId
+ - table-name: tasks
+ keys:
+ - key: mailingId
+ foreign-key: mailingId
+ - key: prospectId
+ foreign-key: prospectId
+ - table-name: calls
+ keys:
+ - key: prospectId
+ foreign-key: prospectId
+ - table-name: prospects
+ keys:
+ - key: prospectId
+ foreign-key: id
+ - table-name: sequence_states
+ keys:
+ - key: prospectId
+ foreign-key: prospectId
+- table-name: mailboxes
+ join:
+ - table-name: mailings
+ keys:
+ - key: id
+ foreign-key: mailboxId
+ - table-name: users
+ keys:
+ - key: id
+ foreign-key: mailboxId
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: userId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: id
+ - key: updaterId
+ foreign-key: id
+ - key: userId
+ foreign-key: id
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - key: userId
+ foreign-key: updaterId
+ - table-name: accounts
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: userId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: updaterId
+ foreign-key: ownerId
+ - key: userId
+ foreign-key: ownerId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - key: userId
+ foreign-key: updaterId
+ - table-name: call_dispositions
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: userId
+ foreign-key: creatorId
+ - table-name: call_purposes
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: userId
+ foreign-key: creatorId
+ - table-name: calls
+ keys:
+ - key: creatorId
+ foreign-key: userId
+ - key: updaterId
+ foreign-key: userId
+ - key: userId
+ foreign-key: userId
+ - table-name: content_categories
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: userId
+ foreign-key: creatorId
+ - table-name: opportunities
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: userId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: updaterId
+ foreign-key: ownerId
+ - key: userId
+ foreign-key: ownerId
+ - table-name: prospects
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: userId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - key: userId
+ foreign-key: updaterId
+ - table-name: sequence_states
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: userId
+ foreign-key: creatorId
+ - table-name: sequence_steps
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: userId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - key: userId
+ foreign-key: updaterId
+ - table-name: sequence_templates
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: userId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - key: userId
+ foreign-key: updaterId
+ - table-name: sequences
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: userId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: updaterId
+ foreign-key: ownerId
+ - key: userId
+ foreign-key: ownerId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - key: userId
+ foreign-key: updaterId
+ - table-name: stages
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: userId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - key: userId
+ foreign-key: updaterId
+ - table-name: tasks
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: userId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: completerId
+ - key: updaterId
+ foreign-key: completerId
+ - key: userId
+ foreign-key: completerId
+- table-name: mailings
+ join:
+ - table-name: mailboxes
+ keys:
+ - key: mailboxId
+ foreign-key: id
+ - table-name: users
+ keys:
+ - key: mailboxId
+ foreign-key: mailboxId
+ - table-name: events
+ keys:
+ - key: id
+ foreign-key: mailingId
+ - key: prospectId
+ foreign-key: prospectId
+ - table-name: tasks
+ keys:
+ - key: id
+ foreign-key: mailingId
+ - key: opportunityId
+ foreign-key: opportunityId
+ - key: prospectId
+ foreign-key: prospectId
+ - key: sequenceId
+ foreign-key: sequenceId
+ - key: sequenceStateId
+ foreign-key: sequenceStateId
+ - key: sequenceStepId
+ foreign-key: sequenceStepId
+ - key: id
+ foreign-key: id
+ - table-name: calls
+ keys:
+ - key: opportunityId
+ foreign-key: opportunityId
+ - key: prospectId
+ foreign-key: prospectId
+ - key: sequenceId
+ foreign-key: sequenceId
+ - key: sequenceStateId
+ foreign-key: sequenceStateId
+ - key: sequenceStepId
+ foreign-key: sequenceStepId
+ - key: id
+ foreign-key: id
+ - table-name: opportunities
+ keys:
+ - key: opportunityId
+ foreign-key: id
+ - table-name: prospects
+ keys:
+ - key: prospectId
+ foreign-key: id
+ - table-name: sequence_states
+ keys:
+ - key: prospectId
+ foreign-key: prospectId
+ - key: sequenceId
+ foreign-key: sequenceId
+ - key: sequenceStateId
+ foreign-key: id
+ - table-name: sequence_steps
+ keys:
+ - key: sequenceId
+ foreign-key: sequenceId
+ - key: sequenceStepId
+ foreign-key: id
+- table-name: personas
+ join:
+ - table-name: prospects
+ keys:
+ - key: id
+ foreign-key: personaId
+- table-name: sequence_steps
+ join:
+ - table-name: calls
+ keys:
+ - key: sequenceId
+ foreign-key: sequenceId
+ - key: id
+ foreign-key: sequenceStepId
+ - key: creatorId
+ foreign-key: userId
+ - key: updaterId
+ foreign-key: userId
+ - table-name: mailings
+ keys:
+ - key: sequenceId
+ foreign-key: sequenceId
+ - key: id
+ foreign-key: sequenceStepId
+ - table-name: sequence_states
+ keys:
+ - key: sequenceId
+ foreign-key: sequenceId
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - table-name: tasks
+ keys:
+ - key: sequenceId
+ foreign-key: sequenceId
+ - key: id
+ foreign-key: sequenceStepId
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: completerId
+ - key: updaterId
+ foreign-key: completerId
+ - table-name: accounts
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: updaterId
+ foreign-key: ownerId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: call_dispositions
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - table-name: call_purposes
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - table-name: content_categories
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - table-name: mailboxes
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - key: creatorId
+ foreign-key: userId
+ - key: updaterId
+ foreign-key: userId
+ - table-name: opportunities
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: updaterId
+ foreign-key: ownerId
+ - table-name: prospects
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: sequence_templates
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: sequences
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: updaterId
+ foreign-key: ownerId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: stages
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: users
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: id
+ - key: updaterId
+ foreign-key: id
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+- table-name: stages
+ join:
+ - table-name: opportunities
+ keys:
+ - key: id
+ foreign-key: opportunityStageId
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: updaterId
+ foreign-key: ownerId
+ - table-name: prospects
+ keys:
+ - key: id
+ foreign-key: stageId
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: accounts
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: updaterId
+ foreign-key: ownerId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: call_dispositions
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - table-name: call_purposes
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - table-name: calls
+ keys:
+ - key: creatorId
+ foreign-key: userId
+ - key: updaterId
+ foreign-key: userId
+ - table-name: content_categories
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - table-name: mailboxes
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - key: creatorId
+ foreign-key: userId
+ - key: updaterId
+ foreign-key: userId
+ - table-name: sequence_states
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - table-name: sequence_steps
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: sequence_templates
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: sequences
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: updaterId
+ foreign-key: ownerId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: tasks
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: completerId
+ - key: updaterId
+ foreign-key: completerId
+ - table-name: users
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: id
+ - key: updaterId
+ foreign-key: id
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+- table-name: sequence_templates
+ join:
+ - table-name: accounts
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: updaterId
+ foreign-key: ownerId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: call_dispositions
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - table-name: call_purposes
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - table-name: calls
+ keys:
+ - key: creatorId
+ foreign-key: userId
+ - key: updaterId
+ foreign-key: userId
+ - table-name: content_categories
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - table-name: mailboxes
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - key: creatorId
+ foreign-key: userId
+ - key: updaterId
+ foreign-key: userId
+ - table-name: opportunities
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: updaterId
+ foreign-key: ownerId
+ - table-name: prospects
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: sequence_states
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - table-name: sequence_steps
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: sequences
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: updaterId
+ foreign-key: ownerId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: stages
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: tasks
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: completerId
+ - key: updaterId
+ foreign-key: completerId
+ - table-name: users
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: id
+ - key: updaterId
+ foreign-key: id
+ - key: creatorId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+- table-name: sequences
+ join:
+ - table-name: accounts
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: ownerId
+ foreign-key: ownerId
+ - key: updaterId
+ foreign-key: ownerId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: ownerId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: call_dispositions
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - table-name: call_purposes
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - table-name: calls
+ keys:
+ - key: creatorId
+ foreign-key: userId
+ - key: ownerId
+ foreign-key: userId
+ - key: updaterId
+ foreign-key: userId
+ - table-name: content_categories
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - table-name: mailboxes
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: ownerId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - key: creatorId
+ foreign-key: userId
+ - key: ownerId
+ foreign-key: userId
+ - key: updaterId
+ foreign-key: userId
+ - table-name: opportunities
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: ownerId
+ - key: ownerId
+ foreign-key: ownerId
+ - key: updaterId
+ foreign-key: ownerId
+ - table-name: prospects
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: ownerId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: sequence_states
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - table-name: sequence_steps
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: ownerId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: sequence_templates
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: ownerId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: stages
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: updaterId
+ - key: ownerId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
+ - table-name: tasks
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: completerId
+ - key: ownerId
+ foreign-key: completerId
+ - key: updaterId
+ foreign-key: completerId
+ - table-name: users
+ keys:
+ - key: creatorId
+ foreign-key: creatorId
+ - key: ownerId
+ foreign-key: creatorId
+ - key: updaterId
+ foreign-key: creatorId
+ - key: creatorId
+ foreign-key: id
+ - key: ownerId
+ foreign-key: id
+ - key: updaterId
+ foreign-key: id
+ - key: creatorId
+ foreign-key: updaterId
+ - key: ownerId
+ foreign-key: updaterId
+ - key: updaterId
+ foreign-key: updaterId
diff --git a/_data/taps/schemas/outreach/v1/outreach-v1-tables.yml b/_data/taps/schemas/outreach/v1/outreach-v1-tables.yml
new file mode 100644
index 000000000..fe44b86eb
--- /dev/null
+++ b/_data/taps/schemas/outreach/v1/outreach-v1-tables.yml
@@ -0,0 +1,240 @@
+tap: outreach
+version: '1'
+tables:
+- name: accounts
+ description: 'The `{{ table.name }}` table contains information about prospective
+ clients in {{ integration.display_name }}.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-outreach/blob/master/tap_outreach/schemas/accounts.json
+ api-method: https://api.outreach.io/api/v2/docs#account
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+- name: calls
+ description: 'The `{{ table.name}}` table contains information about inbound and
+ outbound calls in your {{ integration.display_name }} call logs.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-outreach/blob/master/tap_outreach/schemas/calls.json
+ api-method: https://api.outreach.io/api/v2/docs#call
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+- name: call_dispositions
+ description: 'The `{{ table.name}}` table contains information about call dispositions
+ from your call log in {{ integration.display_name }}.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-outreach/blob/master/tap_outreach/schemas/call_dispositions.json
+ api-method: https://api.outreach.io/api/v2/docs#callDisposition
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+- name: call_purposes
+ description: 'The `{{ table.name}}` table contains information about the purpose
+ of calls in your {{ integration.display_name }} call logs.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-outreach/blob/master/tap_outreach/schemas/call_purposes.json
+ api-method: https://api.outreach.io/api/v2/docs#callPurpose
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+- name: content_categories
+ description: 'The `{{ table.name}}` table contains information about your content
+ categories in {{ integration.display_name }}.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-outreach/blob/master/tap_outreach/schemas/content_categories.json
+ api-method: https://api.outreach.io/api/v2/docs#contentCategory
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+- name: duties
+ description: 'The `{{ table.name}}` table contains {{ integration.display_name }}-suggested
+ job roles for users.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-outreach/blob/master/tap_outreach/schemas/duties.json
+ api-method: https://api.outreach.io/api/v2/docs#duty
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: events
+ description: 'The `{{ table.name}}` table contains information about application
+ events in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-outreach/blob/master/tap_outreach/schemas/events.json
+ api-method: https://api.outreach.io/api/v2/docs#event
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: eventAt
+- name: mailboxes
+ description: 'The `{{ table.name}}` table contains information about your {{ integration.display_name
+ }} email mailbox.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-outreach/blob/master/tap_outreach/schemas/mailboxes.json
+ api-method: https://api.outreach.io/api/v2/docs#mailbox
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+- name: mailings
+ description: 'The `{{ table.name}}` table is a representation of a platform-related
+ email.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-outreach/blob/master/tap_outreach/schemas/mailings.json
+ api-method: https://api.outreach.io/api/v2/docs#mailing
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+- name: opportunities
+ description: 'The `{{ table.name}}` table contains information about your pending
+ deals and sales in {{ integration.display_name }}.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-outreach/blob/master/tap_outreach/schemas/opportunities.json
+ api-method: https://api.outreach.io/api/v2/docs#opportunity
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+- name: personas
+ description: 'The `{{ table.name}}` table contains information about descriptions
+ and types of people in {{ integration.display_name }}.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-outreach/blob/master/tap_outreach/schemas/personas.json
+ api-method: https://api.outreach.io/api/v2/docs#persona
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+- name: prospects
+ description: 'The `{{ table.name}}` table contains information about your prospects.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-outreach/blob/master/tap_outreach/schemas/prospects.json
+ api-method: https://api.outreach.io/api/v2/docs#prospect
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+- name: sequences
+ description: 'The `{{ table.name }}` table contains info about sequences.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-outreach/blob/master/tap_outreach/schemas/sequences.json
+ api-method: https://api.outreach.io/api/v2/docs#sequence
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+- name: sequence_states
+ description: 'The `{{ table.name }}` table contains info about currently sequenced
+ prospects.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-outreach/blob/master/tap_outreach/schemas/sequence_states.json
+ api-method: https://api.outreach.io/api/v2/docs#sequenceState
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+- name: sequence_steps
+ description: 'The `{{ table.name }}` table contains info about individual steps
+ within automated sequences.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-outreach/blob/master/tap_outreach/schemas/sequence_steps.json
+ api-method: https://api.outreach.io/api/v2/docs#sequenceStep
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+- name: sequence_templates
+ description: 'The `{{ table.name }}` table contains info about templates used by
+ sequence steps.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-outreach/blob/master/tap_outreach/schemas/sequence_templates.json
+ api-method: https://api.outreach.io/api/v2/docs#sequenceTemplate
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: stages
+ description: 'The `{{ table.name}}` table contains information about different stages
+ in a deal process.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-outreach/blob/master/tap_outreach/schemas/stages.json
+ api-method: https://api.outreach.io/api/v2/docs#stage
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+- name: tasks
+ description: 'The `{{ table.name}}` table contains information about items that
+ require action in {{ integration.display_name }}.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-outreach/blob/master/tap_outreach/schemas/tasks.json
+ api-method: https://api.outreach.io/api/v2/docs#task
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+- name: teams
+ description: 'The `{{ table.name}}` table contains information about groups of users
+ in {{ integration.display_name }}.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-outreach/blob/master/tap_outreach/schemas/teams.json
+ api-method: https://api.outreach.io/api/v2/docs#team
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+- name: users
+ description: 'The `{{ table.name}}` table contains information about individual
+ users that use the {{ integration.display_name }} app.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-outreach/blob/master/tap_outreach/schemas/users.json
+ api-method: https://api.outreach.io/api/v2/docs#user
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedAt
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/pardot/v1/json/campaigns.json b/_data/taps/schemas/pardot/v1/json/campaigns.json
new file mode 100644
index 000000000..529c2d564
--- /dev/null
+++ b/_data/taps/schemas/pardot/v1/json/campaigns.json
@@ -0,0 +1,25 @@
+{
+ "properties": {
+ "cost": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pardot/v1/json/email_clicks.json b/_data/taps/schemas/pardot/v1/json/email_clicks.json
new file mode 100644
index 000000000..db6faced2
--- /dev/null
+++ b/_data/taps/schemas/pardot/v1/json/email_clicks.json
@@ -0,0 +1,56 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "drip_program_action_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "email_template_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "list_email_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "prospect_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tracker_redirect_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "url": {
+ "format": "",
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pardot/v1/json/list_memberships.json b/_data/taps/schemas/pardot/v1/json/list_memberships.json
new file mode 100644
index 000000000..84a7dab07
--- /dev/null
+++ b/_data/taps/schemas/pardot/v1/json/list_memberships.json
@@ -0,0 +1,41 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "list_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "opted_out": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "prospect_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pardot/v1/json/lists.json b/_data/taps/schemas/pardot/v1/json/lists.json
new file mode 100644
index 000000000..3069c91bb
--- /dev/null
+++ b/_data/taps/schemas/pardot/v1/json/lists.json
@@ -0,0 +1,61 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_crm_visible": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_dynamic": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_public": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pardot/v1/json/opportunities.json b/_data/taps/schemas/pardot/v1/json/opportunities.json
new file mode 100644
index 000000000..80af500da
--- /dev/null
+++ b/_data/taps/schemas/pardot/v1/json/opportunities.json
@@ -0,0 +1,73 @@
+{
+ "properties": {
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "closed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "probability": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "stage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pardot/v1/json/prospect_accounts.json b/_data/taps/schemas/pardot/v1/json/prospect_accounts.json
new file mode 100644
index 000000000..7a47613a7
--- /dev/null
+++ b/_data/taps/schemas/pardot/v1/json/prospect_accounts.json
@@ -0,0 +1,101 @@
+{
+ "properties": {
+ "assigned_to": {
+ "properties": {
+ "user": {
+ "properties": {
+ "account": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "job_tile": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pardot/v1/json/prospects.json b/_data/taps/schemas/pardot/v1/json/prospects.json
new file mode 100644
index 000000000..51895e50c
--- /dev/null
+++ b/_data/taps/schemas/pardot/v1/json/prospects.json
@@ -0,0 +1,277 @@
+{
+ "properties": {
+ "address_one": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_two": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "annual_revenue": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "comments": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "crm_account_fid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "crm_contact_fid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "crm_last_sync": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "crm_lead_fid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "crm_owner_fid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "crm_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "department": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "employees": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "grade": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "industry": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_do_not_call": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_do_not_email": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_reviewed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_starred": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "job_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_activity_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "opted_out": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "password": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prospect_account_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "recent_interaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "salutation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "score": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "territory": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "years_in_business": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pardot/v1/json/users.json b/_data/taps/schemas/pardot/v1/json/users.json
new file mode 100644
index 000000000..e4ed6d4d2
--- /dev/null
+++ b/_data/taps/schemas/pardot/v1/json/users.json
@@ -0,0 +1,55 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "job_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pardot/v1/json/visitor_activities.json b/_data/taps/schemas/pardot/v1/json/visitor_activities.json
new file mode 100644
index 000000000..35d5b804c
--- /dev/null
+++ b/_data/taps/schemas/pardot/v1/json/visitor_activities.json
@@ -0,0 +1,133 @@
+{
+ "properties": {
+ "campaign": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "email_template_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "file_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "form_handler_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "form_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "landing_page_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "list_email_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "multivariate_test_variation_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "paid_search_id_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "prospect_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "site_search_query_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "visitor_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "visitor_page_view_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pardot/v1/json/visitors.json b/_data/taps/schemas/pardot/v1/json/visitors.json
new file mode 100644
index 000000000..e7a3786c4
--- /dev/null
+++ b/_data/taps/schemas/pardot/v1/json/visitors.json
@@ -0,0 +1,73 @@
+{
+ "properties": {
+ "campaign_parameter": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_parameter": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "hostname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ip_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "medium_parameter": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "page_view_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "source_parameter": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "term_parameter": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pardot/v1/json/visits.json b/_data/taps/schemas/pardot/v1/json/visits.json
new file mode 100644
index 000000000..631e6b8e2
--- /dev/null
+++ b/_data/taps/schemas/pardot/v1/json/visits.json
@@ -0,0 +1,136 @@
+{
+ "properties": {
+ "campaign_parameter": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_parameter": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "duration_in_seconds": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "first_visitor_page_view_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "last_visitor_page_view_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "medium_parameter": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prospect_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "source_parameter": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "term_parameter": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "visitor_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "visitor_page_view_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "visitor_page_views": {
+ "properties": {
+ "visitor_page_view": {
+ "items": {
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pardot/v1/pardot-v1-foreign-keys.yml b/_data/taps/schemas/pardot/v1/pardot-v1-foreign-keys.yml
new file mode 100644
index 000000000..a6f2b1c81
--- /dev/null
+++ b/_data/taps/schemas/pardot/v1/pardot-v1-foreign-keys.yml
@@ -0,0 +1,250 @@
+tap: pardot
+version: '1'
+keys:
+ campaigns_campaign_id:
+ - table: campaigns
+ keys:
+ - id
+ - table: opportunities
+ keys:
+ - campaign_id
+ - table: prospects
+ keys:
+ - campaign_id
+ _email_template_id:
+ - table: email_clicks
+ keys:
+ - email_template_id
+ - table: visitor_activities
+ keys:
+ - email_template_id
+ _list_email_id:
+ - table: email_clicks
+ keys:
+ - list_email_id
+ - table: visitor_activities
+ keys:
+ - list_email_id
+ list_memberships_:
+ - table: list_memberships
+ keys:
+ - id
+ lists_list_id:
+ - table: list_memberships
+ keys:
+ - list_id
+ - table: lists
+ keys:
+ - id
+ opportunities_opportunity_id:
+ - table: opportunities
+ keys:
+ - id
+ prospects_prospect_id:
+ - table: email_clicks
+ keys:
+ - prospect_id
+ - table: list_memberships
+ keys:
+ - prospect_id
+ - table: prospects
+ keys:
+ - id
+ - table: visitor_activities
+ keys:
+ - prospect_id
+ - table: visits
+ keys:
+ - prospect_id
+ users_:
+ - table: prospect_accounts
+ keys:
+ - assigned_to.user.id
+ - table: users
+ keys:
+ - id
+ visitors_visitor_id:
+ - table: visitor_activities
+ keys:
+ - visitor_id
+ - table: visitors
+ keys:
+ - id
+ - table: visits
+ keys:
+ - visitor_id
+ visits_visit_id:
+ - table: visits
+ keys:
+ - id
+tables:
+- table-name: campaigns
+ join:
+ - table-name: opportunities
+ keys:
+ - key: id
+ foreign-key: campaign_id
+ - table-name: prospects
+ keys:
+ - key: id
+ foreign-key: campaign_id
+- table-name: opportunities
+ join:
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: prospects
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+- table-name: prospects
+ join:
+ - table-name: campaigns
+ keys:
+ - key: campaign_id
+ foreign-key: id
+ - table-name: opportunities
+ keys:
+ - key: campaign_id
+ foreign-key: campaign_id
+ - table-name: email_clicks
+ keys:
+ - key: id
+ foreign-key: prospect_id
+ - table-name: list_memberships
+ keys:
+ - key: id
+ foreign-key: prospect_id
+ - table-name: visitor_activities
+ keys:
+ - key: id
+ foreign-key: prospect_id
+ - table-name: visits
+ keys:
+ - key: id
+ foreign-key: prospect_id
+- table-name: email_clicks
+ join:
+ - table-name: visitor_activities
+ keys:
+ - key: email_template_id
+ foreign-key: email_template_id
+ - key: list_email_id
+ foreign-key: list_email_id
+ - key: prospect_id
+ foreign-key: prospect_id
+ - table-name: list_memberships
+ keys:
+ - key: prospect_id
+ foreign-key: prospect_id
+ - table-name: prospects
+ keys:
+ - key: prospect_id
+ foreign-key: id
+ - table-name: visits
+ keys:
+ - key: prospect_id
+ foreign-key: prospect_id
+- table-name: visitor_activities
+ join:
+ - table-name: email_clicks
+ keys:
+ - key: email_template_id
+ foreign-key: email_template_id
+ - key: list_email_id
+ foreign-key: list_email_id
+ - key: prospect_id
+ foreign-key: prospect_id
+ - table-name: list_memberships
+ keys:
+ - key: prospect_id
+ foreign-key: prospect_id
+ - table-name: prospects
+ keys:
+ - key: prospect_id
+ foreign-key: id
+ - table-name: visits
+ keys:
+ - key: prospect_id
+ foreign-key: prospect_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: visitors
+ keys:
+ - key: visitor_id
+ foreign-key: id
+- table-name: list_memberships
+ join:
+ - table-name: lists
+ keys:
+ - key: list_id
+ foreign-key: id
+ - table-name: email_clicks
+ keys:
+ - key: prospect_id
+ foreign-key: prospect_id
+ - table-name: prospects
+ keys:
+ - key: prospect_id
+ foreign-key: id
+ - table-name: visitor_activities
+ keys:
+ - key: prospect_id
+ foreign-key: prospect_id
+ - table-name: visits
+ keys:
+ - key: prospect_id
+ foreign-key: prospect_id
+- table-name: lists
+ join:
+ - table-name: list_memberships
+ keys:
+ - key: id
+ foreign-key: list_id
+- table-name: visits
+ join:
+ - table-name: email_clicks
+ keys:
+ - key: prospect_id
+ foreign-key: prospect_id
+ - table-name: list_memberships
+ keys:
+ - key: prospect_id
+ foreign-key: prospect_id
+ - table-name: prospects
+ keys:
+ - key: prospect_id
+ foreign-key: id
+ - table-name: visitor_activities
+ keys:
+ - key: prospect_id
+ foreign-key: prospect_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: visitors
+ keys:
+ - key: visitor_id
+ foreign-key: id
+- table-name: prospect_accounts
+ join:
+ - table-name: users
+ keys:
+ - key: assigned_to.user.id
+ foreign-key: id
+- table-name: users
+ join:
+ - table-name: prospect_accounts
+ keys:
+ - key: id
+ foreign-key: assigned_to.user.id
+- table-name: visitors
+ join:
+ - table-name: visitor_activities
+ keys:
+ - key: id
+ foreign-key: visitor_id
+ - table-name: visits
+ keys:
+ - key: id
+ foreign-key: visitor_id
diff --git a/_data/taps/schemas/pardot/v1/pardot-v1-tables.yml b/_data/taps/schemas/pardot/v1/pardot-v1-tables.yml
new file mode 100644
index 000000000..c1f15b18b
--- /dev/null
+++ b/_data/taps/schemas/pardot/v1/pardot-v1-tables.yml
@@ -0,0 +1,157 @@
+tap: pardot
+version: '1'
+tables:
+- name: campaigns
+ description: 'The `{{ table.name }}` table contains info about the campaigns in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: http://developer.pardot.com/kb/object-field-references/#campaign
+ singer-schema: https://github.com/singer-io/tap-pardot/blob/master/tap_pardot/schemas/campaigns.json
+ api-method: http://developer.pardot.com/kb/api-version-3/campaigns/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: id
+- name: email_clicks
+ description: 'The `{{ table.name }}` table contains info about email click events.
+
+ '
+ links:
+ doc-link: http://developer.pardot.com/kb/object-field-references/#email-clicks
+ singer-schema: https://github.com/singer-io/tap-pardot/blob/master/tap_pardot/schemas/email_clicks.json
+ api-method: http://developer.pardot.com/kb/api-version-3/batch-email-clicks/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created_at
+- name: lists
+ description: 'The `{{ table.name }}` table contains info about the lists in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: http://developer.pardot.com/kb/object-field-references/#list
+ singer-schema: https://github.com/singer-io/tap-pardot/blob/master/tap_pardot/schemas/lists.json
+ api-method: http://developer.pardot.com/kb/api-version-3/lists/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: list_memberships
+ description: 'The `{{ table.name }}` table contains info about list memberships.
+
+
+ **Note**: To replicate this table, the [`lists`](#lists) table must also be set
+ to replicate.
+
+ '
+ links:
+ doc-link: http://developer.pardot.com/kb/object-field-references/#list-membership
+ singer-schema: https://github.com/singer-io/tap-pardot/blob/master/tap_pardot/schemas/list_memberships.json
+ api-method: http://developer.pardot.com/kb/api-version-3/list-memberships/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-keys:
+ - id
+ - list_id
+ - updated_at
+- name: opportunities
+ description: 'The `{{ table.name }}` table contains info about the opportunities
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: http://developer.pardot.com/kb/object-field-references/#opportunity
+ singer-schema: https://github.com/singer-io/tap-pardot/blob/master/tap_pardot/schemas/opportunities.json
+ api-method: http://developer.pardot.com/kb/api-version-3/opportunities/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-keys:
+ - id
+ - updated_at
+- name: prospects
+ description: 'The `{{ table.name }}` table contains info about the prospects in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: http://developer.pardot.com/kb/object-field-references/#prospect
+ singer-schema: https://github.com/singer-io/tap-pardot/blob/master/tap_pardot/schemas/prospects.json
+ api-method: http://developer.pardot.com/kb/api-version-3/prospects/#supported-operations_1
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: prospect_accounts
+ description: 'The `{{ table.name }}` table contains info about prospect accounts.
+
+ '
+ links:
+ doc-link: http://developer.pardot.com/kb/object-field-references/#prospect-account
+ singer-schema: https://github.com/singer-io/tap-pardot/blob/master/tap_pardot/schemas/prospect_accounts.json
+ api-method: http://developer.pardot.com/kb/api-version-3/prospect-accounts/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: users
+ description: 'The `{{ table.name }}` table contains info about the users in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: http://developer.pardot.com/kb/object-field-references/#user
+ singer-schema: https://github.com/singer-io/tap-pardot/blob/master/tap_pardot/schemas/users.json
+ api-method: http://developer.pardot.com/kb/api-version-3/users/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-keys:
+ - id
+ - updated_at
+- name: visitors
+ description: 'The `{{ table.name }}` table contains info about visitors.
+
+ '
+ links:
+ doc-link: http://developer.pardot.com/kb/object-field-references/#visitor
+ singer-schema: https://github.com/singer-io/tap-pardot/blob/master/tap_pardot/schemas/visitors.json
+ api-method: http://developer.pardot.com/kb/api-version-3/visitors/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: visitor_activities
+ description: 'The `{{ table.name }}` table contains info about visitor activities.
+
+ '
+ links:
+ doc-link: http://developer.pardot.com/kb/object-field-references/#visitor-activity
+ singer-schema: https://github.com/singer-io/tap-pardot/blob/master/tap_pardot/schemas/visitor_activities.json
+ api-method: http://developer.pardot.com/kb/api-version-3/visitor-activities/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: id
+- name: visits
+ description: 'The `{{ table.name }}` table contains info about visits.
+
+
+ **Note**: To replicate this table, you must also set the [`visitors`](#visitors)
+ table to replicate.
+
+ '
+ links:
+ doc-link: http://developer.pardot.com/kb/object-field-references/#visit
+ singer-schema: https://github.com/singer-io/tap-pardot/blob/master/tap_pardot/schemas/visits.json
+ api-method: http://developer.pardot.com/kb/api-version-3/visits/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-keys:
+ - id
+ - updated_at
diff --git a/_data/taps/schemas/pendo/v1/json/accounts.json b/_data/taps/schemas/pendo/v1/json/accounts.json
new file mode 100644
index 000000000..cba9c1474
--- /dev/null
+++ b/_data/taps/schemas/pendo/v1/json/accounts.json
@@ -0,0 +1,67 @@
+{
+ "additional_properties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lastupdated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "metadata_auto": {
+ "additional_properties": false,
+ "properties": {
+ "firstvisit": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idhash": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastupdated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "lastvisit": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "metadata_custom": {
+ "additional_properties": false,
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pendo/v1/json/events.json b/_data/taps/schemas/pendo/v1/json/events.json
new file mode 100644
index 000000000..b290d44c4
--- /dev/null
+++ b/_data/taps/schemas/pendo/v1/json/events.json
@@ -0,0 +1,84 @@
+{
+ "additional_properties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "day": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "feature_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hour": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "num_events": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "num_minutes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "page_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parameters": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "remote_ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "server": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_agent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visitor_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pendo/v1/json/feature_events.json b/_data/taps/schemas/pendo/v1/json/feature_events.json
new file mode 100644
index 000000000..be6e1ad73
--- /dev/null
+++ b/_data/taps/schemas/pendo/v1/json/feature_events.json
@@ -0,0 +1,78 @@
+{
+ "additional_properties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "day": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "feature_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hour": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "num_events": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "num_minutes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "parameters": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "remote_ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "server": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_agent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visitor_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pendo/v1/json/features.json b/_data/taps/schemas/pendo/v1/json/features.json
new file mode 100644
index 000000000..647a97759
--- /dev/null
+++ b/_data/taps/schemas/pendo/v1/json/features.json
@@ -0,0 +1,344 @@
+{
+ "properties": {
+ "app_id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_by_user": {
+ "properties": {
+ "app_id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "app_wide": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "event_property_configurations": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "first": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_core_event": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "user_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "valid_through": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "dirty": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "element_path_rules": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "group": {
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_by_user": {
+ "properties": {
+ "first": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "items": {},
+ "last_updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_updated_by_user": {
+ "properties": {
+ "first": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "length": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "kind": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_updated_by_user": {
+ "properties": {
+ "first": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "page_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "root_version_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stable_version_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pendo/v1/json/guide_events.json b/_data/taps/schemas/pendo/v1/json/guide_events.json
new file mode 100644
index 000000000..4193fd10c
--- /dev/null
+++ b/_data/taps/schemas/pendo/v1/json/guide_events.json
@@ -0,0 +1,127 @@
+{
+ "additional_properties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_ids": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "app_id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "browser_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "guide_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "guide_step_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "load_time": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "poll_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "poll_response": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "remote_ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "server_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_agent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visitor_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pendo/v1/json/guides.json b/_data/taps/schemas/pendo/v1/json/guides.json
new file mode 100644
index 000000000..966be57c3
--- /dev/null
+++ b/_data/taps/schemas/pendo/v1/json/guides.json
@@ -0,0 +1,468 @@
+{
+ "properties": {
+ "app_id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "attributes": {
+ "properties": {
+ "badge": {
+ "properties": {
+ "can_change_badge_color": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_only_show_once": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "offsets": {
+ "properties": {
+ "left": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "right": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "top": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "show_on_event": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "use_hover": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "device": {
+ "properties": {
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "priority": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "audience": {
+ "items": {
+ "properties": {
+ "identified": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "select": {
+ "properties": {
+ "visitor_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "source": {
+ "properties": {
+ "visitors": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_by_user": {
+ "properties": {
+ "first": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_multi_step": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "kind": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_updated_by_user": {
+ "properties": {
+ "first": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "launch_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "published_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "reset_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "root_version_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stable_version_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "steps": {
+ "items": {
+ "properties": {
+ "advance_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "attributes": {
+ "properties": {
+ "auto_height": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "css": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "content_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_url_css": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_url_js": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_path_rule": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "guide_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "page_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rank": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "regex_url_rule": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reset_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pendo/v1/json/metadata_accounts.json b/_data/taps/schemas/pendo/v1/json/metadata_accounts.json
new file mode 100644
index 000000000..ac4844caa
--- /dev/null
+++ b/_data/taps/schemas/pendo/v1/json/metadata_accounts.json
@@ -0,0 +1,219 @@
+{
+ "additional_properties": false,
+ "properties": {
+ "auto": {
+ "additional_properties": false,
+ "properties": {
+ "firstvisit": {
+ "properties": {
+ "dirty": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_calculated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_per_app": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "never_index": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "id": {
+ "properties": {
+ "dirty": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_calculated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_per_app": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "never_index": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "lastvisit": {
+ "properties": {
+ "dirty": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_calculated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_per_app": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "never_index": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pendo/v1/json/metadata_visitors.json b/_data/taps/schemas/pendo/v1/json/metadata_visitors.json
new file mode 100644
index 000000000..eb4be8974
--- /dev/null
+++ b/_data/taps/schemas/pendo/v1/json/metadata_visitors.json
@@ -0,0 +1,771 @@
+{
+ "additional_properties": false,
+ "properties": {
+ "agent": {
+ "properties": {
+ "language": {
+ "properties": {
+ "dirty": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_calculated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_per_app": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "never_index": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "auto": {
+ "additional_properties": false,
+ "properties": {
+ "accountid": {
+ "properties": {
+ "dirty": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_calculated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_per_app": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "never_index": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "accountids": {
+ "properties": {
+ "dirty": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_calculated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_per_app": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "never_index": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "firstvisit": {
+ "properties": {
+ "dirty": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_calculated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_per_app": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "never_index": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "id": {
+ "properties": {
+ "dirty": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_calculated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_per_app": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "never_index": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "lastbrowsername": {
+ "properties": {
+ "dirty": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_calculated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_per_app": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "never_index": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "lastbrowserversion": {
+ "properties": {
+ "dirty": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_calculated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_per_app": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "never_index": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "lastoperatingsystem": {
+ "properties": {
+ "dirty": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_calculated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_per_app": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "never_index": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "lastservername": {
+ "properties": {
+ "dirty": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_calculated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_per_app": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "never_index": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "lastvisit": {
+ "properties": {
+ "dirty": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_calculated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_per_app": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "never_index": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "pendo": {
+ "additional_properties": false,
+ "properties": {
+ "designerenabled": {
+ "properties": {
+ "dirty": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "element_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_calculated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_per_app": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "never_index": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pendo/v1/json/page_events.json b/_data/taps/schemas/pendo/v1/json/page_events.json
new file mode 100644
index 000000000..0502c9749
--- /dev/null
+++ b/_data/taps/schemas/pendo/v1/json/page_events.json
@@ -0,0 +1,78 @@
+{
+ "additional_properties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "day": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "hour": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "num_events": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "num_minutes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "page_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parameters": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "remote_ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "server": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_agent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visitor_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pendo/v1/json/pages.json b/_data/taps/schemas/pendo/v1/json/pages.json
new file mode 100644
index 000000000..53cf9eab1
--- /dev/null
+++ b/_data/taps/schemas/pendo/v1/json/pages.json
@@ -0,0 +1,305 @@
+{
+ "additional_properties": false,
+ "properties": {
+ "app_id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_by_user": {
+ "properties": {
+ "first": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "dirty": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "group": {
+ "additional_properties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_by_user": {
+ "properties": {
+ "first": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_updated_by_user": {
+ "properties": {
+ "first": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "length": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "kind": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_updated_by_user": {
+ "additional_properties": false,
+ "properties": {
+ "first": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "root_version_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rules": {
+ "items": {
+ "properties": {
+ "designer_hint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parsed_rule": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rule": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "stable_version_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pendo/v1/json/poll_events.json b/_data/taps/schemas/pendo/v1/json/poll_events.json
new file mode 100644
index 000000000..22fdbc714
--- /dev/null
+++ b/_data/taps/schemas/pendo/v1/json/poll_events.json
@@ -0,0 +1,115 @@
+{
+ "additional_properties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_ids": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "app_id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "browser_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "guide_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "load_time": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "poll_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "poll_response": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "remote_ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "server_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_agent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visitor_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pendo/v1/json/track_events.json b/_data/taps/schemas/pendo/v1/json/track_events.json
new file mode 100644
index 000000000..761aa76d1
--- /dev/null
+++ b/_data/taps/schemas/pendo/v1/json/track_events.json
@@ -0,0 +1,114 @@
+{
+ "additional_properties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "day": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "hour": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "num_events": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "num_minutes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "properties": {
+ "additionalProperties": false,
+ "properties": {
+ "android": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "any": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "apple": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "table": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "remote_ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "server": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "track_type_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_agent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visitor_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pendo/v1/json/track_types.json b/_data/taps/schemas/pendo/v1/json/track_types.json
new file mode 100644
index 000000000..4ca2c1d98
--- /dev/null
+++ b/_data/taps/schemas/pendo/v1/json/track_types.json
@@ -0,0 +1,207 @@
+{
+ "additional_properties": false,
+ "properties": {
+ "app_id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_by_user": {
+ "properties": {
+ "first": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "dirty": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "group": {
+ "additional_properties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "length": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "kind": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_updated_by_user": {
+ "additional_properties": false,
+ "properties": {
+ "first": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "root_version_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stable_version_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "track_type_name": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "track_type_rules": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pendo/v1/json/visitor_history.json b/_data/taps/schemas/pendo/v1/json/visitor_history.json
new file mode 100644
index 000000000..3045d15fe
--- /dev/null
+++ b/_data/taps/schemas/pendo/v1/json/visitor_history.json
@@ -0,0 +1,114 @@
+{
+ "additional_properties": false,
+ "properties": {
+ "app_id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "feature_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "guide_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "guide_step_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_ts": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "modified_ts": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "page_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parsed_user_agent": {
+ "additional_properties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "os": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ts": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "untagged_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visitor_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pendo/v1/json/visitors.json b/_data/taps/schemas/pendo/v1/json/visitors.json
new file mode 100644
index 000000000..adb1d80f8
--- /dev/null
+++ b/_data/taps/schemas/pendo/v1/json/visitors.json
@@ -0,0 +1,148 @@
+{
+ "additional_properties": false,
+ "properties": {
+ "lastupdated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "metadata_agent": {
+ "additional_properties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ipaddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "metadata_auto": {
+ "additional_properties": false,
+ "properties": {
+ "accountid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accountids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "firstvisit": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idhash": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lastbrowsername": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lastbrowserversion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lastoperatingsystem": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lastservername": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lastupdated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "lastuseragent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lastvisit": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "nid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "metadata_custom": {
+ "additional_properties": false,
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "visitor_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pendo/v1/pendo-v1-foreign-keys.yml b/_data/taps/schemas/pendo/v1/pendo-v1-foreign-keys.yml
new file mode 100644
index 000000000..789367950
--- /dev/null
+++ b/_data/taps/schemas/pendo/v1/pendo-v1-foreign-keys.yml
@@ -0,0 +1,1230 @@
+tap: pendo
+version: '1'
+keys:
+ accounts_account_id:
+ - table: accounts
+ keys:
+ - account_id
+ - table: events
+ keys:
+ - account_id
+ - table: feature_events
+ keys:
+ - account_id
+ - table: guide_events
+ keys:
+ - account_id
+ - account_ids
+ - table: page_events
+ keys:
+ - account_id
+ - table: poll_events
+ keys:
+ - account_id
+ - account_ids
+ - table: track_events
+ keys:
+ - account_id
+ - table: visitors
+ keys:
+ - metadata_auto.accountid
+ - metadata_auto.accountids
+ _app_id:
+ - table: events
+ keys:
+ - app_id
+ - table: feature_events
+ keys:
+ - app_id
+ - table: features
+ keys:
+ - created_by_user.app_id
+ - table: guide_events
+ keys:
+ - app_id
+ - table: page_events
+ keys:
+ - app_id
+ - table: track_events
+ keys:
+ - app_id
+ - table: visitor_history
+ keys:
+ - app_id
+ _feature_id:
+ - table: events
+ keys:
+ - feature_id
+ - table: feature_events
+ keys:
+ - feature_id
+ - table: features
+ keys:
+ - id
+ - table: visitor_history
+ keys:
+ - feature_id
+ _group.id:
+ - table: features
+ keys:
+ - group.id
+ - table: pages
+ keys:
+ - group.id
+ - table: track_types
+ keys:
+ - group.id
+ guides_guide_id:
+ - table: guide_events
+ keys:
+ - guide_id
+ - table: guides
+ keys:
+ - id
+ - steps.guide_id
+ - table: poll_events
+ keys:
+ - guide_id
+ - table: visitor_history
+ keys:
+ - guide_id
+ guides_id:
+ - table: guides
+ keys:
+ - steps.id
+ - table: visitor_history
+ keys:
+ - guide_id
+ _page_id:
+ - table: events
+ keys:
+ - page_id
+ - table: features
+ keys:
+ - page_id
+ - table: guides
+ keys:
+ - steps.page_id
+ - table: page_events
+ keys:
+ - page_id
+ - table: pages
+ keys:
+ - id
+ - table: visitor_history
+ keys:
+ - page_id
+ _poll_id:
+ - table: guide_events
+ keys:
+ - poll_id
+ - table: poll_events
+ keys:
+ - poll_id
+ track_types_track_type_id:
+ - table: track_events
+ keys:
+ - track_type_id
+ - table: track_types
+ keys:
+ - id
+ _id:
+ - table: features
+ keys:
+ - created_by_user.id
+ - group.created_by_user.id
+ - group.last_updated_by_user.id
+ - last_updated_by_user.id
+ - table: guides
+ keys:
+ - created_by_user.id
+ - last_updated_by_user.id
+ - table: pages
+ keys:
+ - created_by_user.id
+ - group.created_by_user.id
+ - group.last_updated_by_user.id
+ - last_updated_by_user.id
+ - table: track_types
+ keys:
+ - created_by_user.id
+ - last_updated_by_user.id
+ visitors_visitor_id:
+ - table: events
+ keys:
+ - visitor_id
+ - table: feature_events
+ keys:
+ - visitor_id
+ - table: guide_events
+ keys:
+ - visitor_id
+ - table: guides
+ keys:
+ - audience.select.visitor_id
+ - table: page_events
+ keys:
+ - visitor_id
+ - table: poll_events
+ keys:
+ - visitor_id
+ - table: track_events
+ keys:
+ - visitor_id
+ - table: visitor_history
+ keys:
+ - visitor_id
+ - table: visitors
+ keys:
+ - visitor_id
+tables:
+- table-name: accounts
+ join:
+ - table-name: events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: feature_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: guide_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: account_id
+ foreign-key: account_ids
+ - table-name: page_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: poll_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: account_id
+ foreign-key: account_ids
+ - table-name: track_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: visitors
+ keys:
+ - key: account_id
+ foreign-key: metadata_auto.accountid
+ - key: account_id
+ foreign-key: metadata_auto.accountids
+- table-name: events
+ join:
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: feature_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: app_id
+ foreign-key: app_id
+ - key: feature_id
+ foreign-key: feature_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: guide_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: account_id
+ foreign-key: account_ids
+ - key: app_id
+ foreign-key: app_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: page_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: app_id
+ foreign-key: app_id
+ - key: page_id
+ foreign-key: page_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: poll_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: account_id
+ foreign-key: account_ids
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: track_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: app_id
+ foreign-key: app_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: visitors
+ keys:
+ - key: account_id
+ foreign-key: metadata_auto.accountid
+ - key: account_id
+ foreign-key: metadata_auto.accountids
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: features
+ keys:
+ - key: app_id
+ foreign-key: created_by_user.app_id
+ - key: feature_id
+ foreign-key: id
+ - key: page_id
+ foreign-key: page_id
+ - table-name: visitor_history
+ keys:
+ - key: app_id
+ foreign-key: app_id
+ - key: feature_id
+ foreign-key: feature_id
+ - key: page_id
+ foreign-key: page_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: guides
+ keys:
+ - key: page_id
+ foreign-key: steps.page_id
+ - key: visitor_id
+ foreign-key: audience.select.visitor_id
+ - table-name: pages
+ keys:
+ - key: page_id
+ foreign-key: id
+- table-name: feature_events
+ join:
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: app_id
+ foreign-key: app_id
+ - key: feature_id
+ foreign-key: feature_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: guide_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: account_id
+ foreign-key: account_ids
+ - key: app_id
+ foreign-key: app_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: page_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: app_id
+ foreign-key: app_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: poll_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: account_id
+ foreign-key: account_ids
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: track_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: app_id
+ foreign-key: app_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: visitors
+ keys:
+ - key: account_id
+ foreign-key: metadata_auto.accountid
+ - key: account_id
+ foreign-key: metadata_auto.accountids
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: features
+ keys:
+ - key: app_id
+ foreign-key: created_by_user.app_id
+ - key: feature_id
+ foreign-key: id
+ - table-name: visitor_history
+ keys:
+ - key: app_id
+ foreign-key: app_id
+ - key: feature_id
+ foreign-key: feature_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: guides
+ keys:
+ - key: visitor_id
+ foreign-key: audience.select.visitor_id
+- table-name: guide_events
+ join:
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: account_ids
+ foreign-key: account_id
+ - table-name: events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: account_ids
+ foreign-key: account_id
+ - key: app_id
+ foreign-key: app_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: feature_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: account_ids
+ foreign-key: account_id
+ - key: app_id
+ foreign-key: app_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: page_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: account_ids
+ foreign-key: account_id
+ - key: app_id
+ foreign-key: app_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: poll_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: account_ids
+ foreign-key: account_id
+ - key: account_id
+ foreign-key: account_ids
+ - key: account_ids
+ foreign-key: account_ids
+ - key: guide_id
+ foreign-key: guide_id
+ - key: poll_id
+ foreign-key: poll_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: track_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: account_ids
+ foreign-key: account_id
+ - key: app_id
+ foreign-key: app_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: visitors
+ keys:
+ - key: account_id
+ foreign-key: metadata_auto.accountid
+ - key: account_ids
+ foreign-key: metadata_auto.accountid
+ - key: account_id
+ foreign-key: metadata_auto.accountids
+ - key: account_ids
+ foreign-key: metadata_auto.accountids
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: features
+ keys:
+ - key: app_id
+ foreign-key: created_by_user.app_id
+ - table-name: visitor_history
+ keys:
+ - key: app_id
+ foreign-key: app_id
+ - key: guide_id
+ foreign-key: guide_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: guides
+ keys:
+ - key: guide_id
+ foreign-key: id
+ - key: guide_id
+ foreign-key: steps.guide_id
+ - key: visitor_id
+ foreign-key: audience.select.visitor_id
+- table-name: page_events
+ join:
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: app_id
+ foreign-key: app_id
+ - key: page_id
+ foreign-key: page_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: feature_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: app_id
+ foreign-key: app_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: guide_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: account_id
+ foreign-key: account_ids
+ - key: app_id
+ foreign-key: app_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: poll_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: account_id
+ foreign-key: account_ids
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: track_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: app_id
+ foreign-key: app_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: visitors
+ keys:
+ - key: account_id
+ foreign-key: metadata_auto.accountid
+ - key: account_id
+ foreign-key: metadata_auto.accountids
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: features
+ keys:
+ - key: app_id
+ foreign-key: created_by_user.app_id
+ - key: page_id
+ foreign-key: page_id
+ - table-name: visitor_history
+ keys:
+ - key: app_id
+ foreign-key: app_id
+ - key: page_id
+ foreign-key: page_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: guides
+ keys:
+ - key: page_id
+ foreign-key: steps.page_id
+ - key: visitor_id
+ foreign-key: audience.select.visitor_id
+ - table-name: pages
+ keys:
+ - key: page_id
+ foreign-key: id
+- table-name: poll_events
+ join:
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: account_ids
+ foreign-key: account_id
+ - table-name: events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: account_ids
+ foreign-key: account_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: feature_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: account_ids
+ foreign-key: account_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: guide_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: account_ids
+ foreign-key: account_id
+ - key: account_id
+ foreign-key: account_ids
+ - key: account_ids
+ foreign-key: account_ids
+ - key: guide_id
+ foreign-key: guide_id
+ - key: poll_id
+ foreign-key: poll_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: page_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: account_ids
+ foreign-key: account_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: track_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: account_ids
+ foreign-key: account_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: visitors
+ keys:
+ - key: account_id
+ foreign-key: metadata_auto.accountid
+ - key: account_ids
+ foreign-key: metadata_auto.accountid
+ - key: account_id
+ foreign-key: metadata_auto.accountids
+ - key: account_ids
+ foreign-key: metadata_auto.accountids
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: guides
+ keys:
+ - key: guide_id
+ foreign-key: id
+ - key: guide_id
+ foreign-key: steps.guide_id
+ - key: visitor_id
+ foreign-key: audience.select.visitor_id
+ - table-name: visitor_history
+ keys:
+ - key: guide_id
+ foreign-key: guide_id
+ - key: visitor_id
+ foreign-key: visitor_id
+- table-name: track_events
+ join:
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: app_id
+ foreign-key: app_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: feature_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: app_id
+ foreign-key: app_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: guide_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: account_id
+ foreign-key: account_ids
+ - key: app_id
+ foreign-key: app_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: page_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: app_id
+ foreign-key: app_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: poll_events
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: account_id
+ foreign-key: account_ids
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: visitors
+ keys:
+ - key: account_id
+ foreign-key: metadata_auto.accountid
+ - key: account_id
+ foreign-key: metadata_auto.accountids
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: features
+ keys:
+ - key: app_id
+ foreign-key: created_by_user.app_id
+ - table-name: visitor_history
+ keys:
+ - key: app_id
+ foreign-key: app_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: track_types
+ keys:
+ - key: track_type_id
+ foreign-key: id
+ - table-name: guides
+ keys:
+ - key: visitor_id
+ foreign-key: audience.select.visitor_id
+- table-name: visitors
+ join:
+ - table-name: accounts
+ keys:
+ - key: metadata_auto.accountid
+ foreign-key: account_id
+ - key: metadata_auto.accountids
+ foreign-key: account_id
+ - table-name: events
+ keys:
+ - key: metadata_auto.accountid
+ foreign-key: account_id
+ - key: metadata_auto.accountids
+ foreign-key: account_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: feature_events
+ keys:
+ - key: metadata_auto.accountid
+ foreign-key: account_id
+ - key: metadata_auto.accountids
+ foreign-key: account_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: guide_events
+ keys:
+ - key: metadata_auto.accountid
+ foreign-key: account_id
+ - key: metadata_auto.accountids
+ foreign-key: account_id
+ - key: metadata_auto.accountid
+ foreign-key: account_ids
+ - key: metadata_auto.accountids
+ foreign-key: account_ids
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: page_events
+ keys:
+ - key: metadata_auto.accountid
+ foreign-key: account_id
+ - key: metadata_auto.accountids
+ foreign-key: account_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: poll_events
+ keys:
+ - key: metadata_auto.accountid
+ foreign-key: account_id
+ - key: metadata_auto.accountids
+ foreign-key: account_id
+ - key: metadata_auto.accountid
+ foreign-key: account_ids
+ - key: metadata_auto.accountids
+ foreign-key: account_ids
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: track_events
+ keys:
+ - key: metadata_auto.accountid
+ foreign-key: account_id
+ - key: metadata_auto.accountids
+ foreign-key: account_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: guides
+ keys:
+ - key: visitor_id
+ foreign-key: audience.select.visitor_id
+ - table-name: visitor_history
+ keys:
+ - key: visitor_id
+ foreign-key: visitor_id
+- table-name: features
+ join:
+ - table-name: events
+ keys:
+ - key: created_by_user.app_id
+ foreign-key: app_id
+ - key: id
+ foreign-key: feature_id
+ - key: page_id
+ foreign-key: page_id
+ - table-name: feature_events
+ keys:
+ - key: created_by_user.app_id
+ foreign-key: app_id
+ - key: id
+ foreign-key: feature_id
+ - table-name: guide_events
+ keys:
+ - key: created_by_user.app_id
+ foreign-key: app_id
+ - table-name: page_events
+ keys:
+ - key: created_by_user.app_id
+ foreign-key: app_id
+ - key: page_id
+ foreign-key: page_id
+ - table-name: track_events
+ keys:
+ - key: created_by_user.app_id
+ foreign-key: app_id
+ - table-name: visitor_history
+ keys:
+ - key: created_by_user.app_id
+ foreign-key: app_id
+ - key: id
+ foreign-key: feature_id
+ - key: page_id
+ foreign-key: page_id
+ - table-name: pages
+ keys:
+ - key: group.id
+ foreign-key: group.id
+ - key: page_id
+ foreign-key: id
+ - key: created_by_user.id
+ foreign-key: created_by_user.id
+ - key: group.created_by_user.id
+ foreign-key: created_by_user.id
+ - key: group.last_updated_by_user.id
+ foreign-key: created_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: created_by_user.id
+ - key: created_by_user.id
+ foreign-key: group.created_by_user.id
+ - key: group.created_by_user.id
+ foreign-key: group.created_by_user.id
+ - key: group.last_updated_by_user.id
+ foreign-key: group.created_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: group.created_by_user.id
+ - key: created_by_user.id
+ foreign-key: group.last_updated_by_user.id
+ - key: group.created_by_user.id
+ foreign-key: group.last_updated_by_user.id
+ - key: group.last_updated_by_user.id
+ foreign-key: group.last_updated_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: group.last_updated_by_user.id
+ - key: created_by_user.id
+ foreign-key: last_updated_by_user.id
+ - key: group.created_by_user.id
+ foreign-key: last_updated_by_user.id
+ - key: group.last_updated_by_user.id
+ foreign-key: last_updated_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: last_updated_by_user.id
+ - table-name: track_types
+ keys:
+ - key: group.id
+ foreign-key: group.id
+ - key: created_by_user.id
+ foreign-key: created_by_user.id
+ - key: group.created_by_user.id
+ foreign-key: created_by_user.id
+ - key: group.last_updated_by_user.id
+ foreign-key: created_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: created_by_user.id
+ - key: created_by_user.id
+ foreign-key: last_updated_by_user.id
+ - key: group.created_by_user.id
+ foreign-key: last_updated_by_user.id
+ - key: group.last_updated_by_user.id
+ foreign-key: last_updated_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: last_updated_by_user.id
+ - table-name: guides
+ keys:
+ - key: page_id
+ foreign-key: steps.page_id
+ - key: created_by_user.id
+ foreign-key: created_by_user.id
+ - key: group.created_by_user.id
+ foreign-key: created_by_user.id
+ - key: group.last_updated_by_user.id
+ foreign-key: created_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: created_by_user.id
+ - key: created_by_user.id
+ foreign-key: last_updated_by_user.id
+ - key: group.created_by_user.id
+ foreign-key: last_updated_by_user.id
+ - key: group.last_updated_by_user.id
+ foreign-key: last_updated_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: last_updated_by_user.id
+- table-name: visitor_history
+ join:
+ - table-name: events
+ keys:
+ - key: app_id
+ foreign-key: app_id
+ - key: feature_id
+ foreign-key: feature_id
+ - key: page_id
+ foreign-key: page_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: feature_events
+ keys:
+ - key: app_id
+ foreign-key: app_id
+ - key: feature_id
+ foreign-key: feature_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: features
+ keys:
+ - key: app_id
+ foreign-key: created_by_user.app_id
+ - key: feature_id
+ foreign-key: id
+ - key: page_id
+ foreign-key: page_id
+ - table-name: guide_events
+ keys:
+ - key: app_id
+ foreign-key: app_id
+ - key: guide_id
+ foreign-key: guide_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: page_events
+ keys:
+ - key: app_id
+ foreign-key: app_id
+ - key: page_id
+ foreign-key: page_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: track_events
+ keys:
+ - key: app_id
+ foreign-key: app_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: guides
+ keys:
+ - key: guide_id
+ foreign-key: id
+ - key: guide_id
+ foreign-key: steps.guide_id
+ - key: guide_id
+ foreign-key: steps.id
+ - key: page_id
+ foreign-key: steps.page_id
+ - key: visitor_id
+ foreign-key: audience.select.visitor_id
+ - table-name: poll_events
+ keys:
+ - key: guide_id
+ foreign-key: guide_id
+ - key: visitor_id
+ foreign-key: visitor_id
+ - table-name: pages
+ keys:
+ - key: page_id
+ foreign-key: id
+ - table-name: visitors
+ keys:
+ - key: visitor_id
+ foreign-key: visitor_id
+- table-name: pages
+ join:
+ - table-name: features
+ keys:
+ - key: group.id
+ foreign-key: group.id
+ - key: id
+ foreign-key: page_id
+ - key: created_by_user.id
+ foreign-key: created_by_user.id
+ - key: group.created_by_user.id
+ foreign-key: created_by_user.id
+ - key: group.last_updated_by_user.id
+ foreign-key: created_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: created_by_user.id
+ - key: created_by_user.id
+ foreign-key: group.created_by_user.id
+ - key: group.created_by_user.id
+ foreign-key: group.created_by_user.id
+ - key: group.last_updated_by_user.id
+ foreign-key: group.created_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: group.created_by_user.id
+ - key: created_by_user.id
+ foreign-key: group.last_updated_by_user.id
+ - key: group.created_by_user.id
+ foreign-key: group.last_updated_by_user.id
+ - key: group.last_updated_by_user.id
+ foreign-key: group.last_updated_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: group.last_updated_by_user.id
+ - key: created_by_user.id
+ foreign-key: last_updated_by_user.id
+ - key: group.created_by_user.id
+ foreign-key: last_updated_by_user.id
+ - key: group.last_updated_by_user.id
+ foreign-key: last_updated_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: last_updated_by_user.id
+ - table-name: track_types
+ keys:
+ - key: group.id
+ foreign-key: group.id
+ - key: created_by_user.id
+ foreign-key: created_by_user.id
+ - key: group.created_by_user.id
+ foreign-key: created_by_user.id
+ - key: group.last_updated_by_user.id
+ foreign-key: created_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: created_by_user.id
+ - key: created_by_user.id
+ foreign-key: last_updated_by_user.id
+ - key: group.created_by_user.id
+ foreign-key: last_updated_by_user.id
+ - key: group.last_updated_by_user.id
+ foreign-key: last_updated_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: last_updated_by_user.id
+ - table-name: events
+ keys:
+ - key: id
+ foreign-key: page_id
+ - table-name: guides
+ keys:
+ - key: id
+ foreign-key: steps.page_id
+ - key: created_by_user.id
+ foreign-key: created_by_user.id
+ - key: group.created_by_user.id
+ foreign-key: created_by_user.id
+ - key: group.last_updated_by_user.id
+ foreign-key: created_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: created_by_user.id
+ - key: created_by_user.id
+ foreign-key: last_updated_by_user.id
+ - key: group.created_by_user.id
+ foreign-key: last_updated_by_user.id
+ - key: group.last_updated_by_user.id
+ foreign-key: last_updated_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: last_updated_by_user.id
+ - table-name: page_events
+ keys:
+ - key: id
+ foreign-key: page_id
+ - table-name: visitor_history
+ keys:
+ - key: id
+ foreign-key: page_id
+- table-name: track_types
+ join:
+ - table-name: features
+ keys:
+ - key: group.id
+ foreign-key: group.id
+ - key: created_by_user.id
+ foreign-key: created_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: created_by_user.id
+ - key: created_by_user.id
+ foreign-key: group.created_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: group.created_by_user.id
+ - key: created_by_user.id
+ foreign-key: group.last_updated_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: group.last_updated_by_user.id
+ - key: created_by_user.id
+ foreign-key: last_updated_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: last_updated_by_user.id
+ - table-name: pages
+ keys:
+ - key: group.id
+ foreign-key: group.id
+ - key: created_by_user.id
+ foreign-key: created_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: created_by_user.id
+ - key: created_by_user.id
+ foreign-key: group.created_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: group.created_by_user.id
+ - key: created_by_user.id
+ foreign-key: group.last_updated_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: group.last_updated_by_user.id
+ - key: created_by_user.id
+ foreign-key: last_updated_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: last_updated_by_user.id
+ - table-name: track_events
+ keys:
+ - key: id
+ foreign-key: track_type_id
+ - table-name: guides
+ keys:
+ - key: created_by_user.id
+ foreign-key: created_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: created_by_user.id
+ - key: created_by_user.id
+ foreign-key: last_updated_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: last_updated_by_user.id
+- table-name: guides
+ join:
+ - table-name: guide_events
+ keys:
+ - key: id
+ foreign-key: guide_id
+ - key: steps.guide_id
+ foreign-key: guide_id
+ - key: audience.select.visitor_id
+ foreign-key: visitor_id
+ - table-name: poll_events
+ keys:
+ - key: id
+ foreign-key: guide_id
+ - key: steps.guide_id
+ foreign-key: guide_id
+ - key: audience.select.visitor_id
+ foreign-key: visitor_id
+ - table-name: visitor_history
+ keys:
+ - key: id
+ foreign-key: guide_id
+ - key: steps.guide_id
+ foreign-key: guide_id
+ - key: steps.id
+ foreign-key: guide_id
+ - key: steps.page_id
+ foreign-key: page_id
+ - key: audience.select.visitor_id
+ foreign-key: visitor_id
+ - table-name: events
+ keys:
+ - key: steps.page_id
+ foreign-key: page_id
+ - key: audience.select.visitor_id
+ foreign-key: visitor_id
+ - table-name: features
+ keys:
+ - key: steps.page_id
+ foreign-key: page_id
+ - key: created_by_user.id
+ foreign-key: created_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: created_by_user.id
+ - key: created_by_user.id
+ foreign-key: group.created_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: group.created_by_user.id
+ - key: created_by_user.id
+ foreign-key: group.last_updated_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: group.last_updated_by_user.id
+ - key: created_by_user.id
+ foreign-key: last_updated_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: last_updated_by_user.id
+ - table-name: page_events
+ keys:
+ - key: steps.page_id
+ foreign-key: page_id
+ - key: audience.select.visitor_id
+ foreign-key: visitor_id
+ - table-name: pages
+ keys:
+ - key: steps.page_id
+ foreign-key: id
+ - key: created_by_user.id
+ foreign-key: created_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: created_by_user.id
+ - key: created_by_user.id
+ foreign-key: group.created_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: group.created_by_user.id
+ - key: created_by_user.id
+ foreign-key: group.last_updated_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: group.last_updated_by_user.id
+ - key: created_by_user.id
+ foreign-key: last_updated_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: last_updated_by_user.id
+ - table-name: track_types
+ keys:
+ - key: created_by_user.id
+ foreign-key: created_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: created_by_user.id
+ - key: created_by_user.id
+ foreign-key: last_updated_by_user.id
+ - key: last_updated_by_user.id
+ foreign-key: last_updated_by_user.id
+ - table-name: feature_events
+ keys:
+ - key: audience.select.visitor_id
+ foreign-key: visitor_id
+ - table-name: track_events
+ keys:
+ - key: audience.select.visitor_id
+ foreign-key: visitor_id
+ - table-name: visitors
+ keys:
+ - key: audience.select.visitor_id
+ foreign-key: visitor_id
diff --git a/_data/taps/schemas/pendo/v1/pendo-v1-tables.yml b/_data/taps/schemas/pendo/v1/pendo-v1-tables.yml
new file mode 100644
index 000000000..d88b15ff5
--- /dev/null
+++ b/_data/taps/schemas/pendo/v1/pendo-v1-tables.yml
@@ -0,0 +1,247 @@
+tap: pendo
+version: '1'
+tables:
+- name: accounts
+ description: 'The `{{ table.name }}` table contains info about your customer accounts
+ in {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developers.pendo.io/docs/?bash#account
+ singer-schema: https://github.com/singer-io/tap-pendo/blob/master/tap_pendo/schemas/accounts.json
+ api-method: https://developers.pendo.io/docs/api/v1/aggregation/?bash#aggregation
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: account_id
+ replication-key: lastupdated
+- name: events
+ description: 'The `{{ table.name }}` table contains info about events recorded in
+ your {{ integration.display_name }} account.
+
+
+ {% capture event-replication-note %}
+
+ **Note**: The **Period** setting you define [during setup](#add-stitch-data-source)
+ determine how this table is replicated, including the field used as a Replication
+ Key. Refer to the [Replication section](#event-replication) for more info.
+
+ {% endcapture %}
+
+
+ {{ event-replication-note }}
+
+ '
+ links:
+ doc-link: https://developers.pendo.io/docs/?bash#events
+ singer-schema: https://github.com/singer-io/tap-pendo/blob/master/tap_pendo/schemas/events.json
+ api-method: https://developers.pendo.io/docs/api/v1/aggregation/?bash#aggregation
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - account_id
+ - server
+ - remote_ip
+- name: features
+ description: 'The `{{ table.name }}` table contains info about app features listed
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.pendo.io/docs/?bash#feature
+ singer-schema: https://github.com/singer-io/tap-pendo/blob/master/tap_pendo/schemas/features.json
+ api-method: https://developers.pendo.io/docs/api/v1/aggregation/?bash#aggregation
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_updated_at
+- name: feature_events
+ description: 'The `{{ table.name }}` table contains info about feature events recorded
+ in your {{ integration.display_name }} account.
+
+
+ {{ event-replication-note }}
+
+ '
+ links:
+ doc-link: https://developers.pendo.io/docs/?bash#events
+ singer-schema: https://github.com/singer-io/tap-pendo/blob/master/tap_pendo/schemas/feature_events.json
+ api-method: https://developers.pendo.io/docs/api/v1/aggregation/?bash#aggregation
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - account_id
+ - server
+ - remote_ip
+ - visitor_id
+ - day
+ - feature_id
+ - user_agent
+- name: guides
+ description: 'The `{{ table.name }}` table contains info about the guides in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pendo/blob/master/tap_pendo/schemas/guides.json
+ api-method: https://developers.pendo.io/docs/api/v1/aggregation/?bash#aggregation
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_updated_at
+- name: guide_events
+ description: 'The `{{ table.name }}` table contains info about guide events recorded
+ in your {{ integration.display_name }} account.
+
+
+ {{ event-replication-note }}
+
+ '
+ links:
+ doc-link: https://developers.pendo.io/docs/?bash#guide-events
+ singer-schema: https://github.com/singer-io/tap-pendo/blob/master/tap_pendo/schemas/guide_events.json
+ api-method: https://developers.pendo.io/docs/api/v1/aggregation/?bash#aggregation
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - account_id
+ - browser_time
+ - guide_id
+ - guide_step_id
+ - remote_ip
+ - type
+ - url
+ - visitor_id
+ replication-key: browser_time
+- name: metadata_accounts
+ description: 'The `{{ table.name }}` table contains info about the metadata schema
+ used for account objects in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.pendo.io/docs/?bash#metadata
+ singer-schema: https://github.com/singer-io/tap-pendo/blob/master/tap_pendo/schemas/metadata_accounts.json
+ api-method: https://developers.pendo.io/docs/?bash#get-a-metadata-schema
+ table-details:
+ replication-method: Full Table
+- name: metadata_visitors
+ description: 'The `{{ table.name }}` table contains info about the metadata schema
+ used for visitor objects in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.pendo.io/docs/?bash#metadata
+ singer-schema: https://github.com/singer-io/tap-pendo/blob/master/tap_pendo/schemas/metadata_visitors.json
+ api-method: https://developers.pendo.io/docs/?bash#get-a-metadata-schema
+ table-details:
+ replication-method: Full Table
+- name: pages
+ description: 'The `{{ table.name }}` table contains info about specific pages in
+ your {{ integration.display_name }} app.
+
+ '
+ links:
+ doc-link: https://developers.pendo.io/docs/?bash#page
+ singer-schema: https://github.com/singer-io/tap-pendo/blob/master/tap_pendo/schemas/pages.json
+ api-method: https://developers.pendo.io/docs/api/v1/aggregation/?bash#aggregation
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_updated_at
+- name: page_events
+ description: 'The `{{ table.name }}` table contains info about page events recorded
+ in your {{ integration.display_name }} account.
+
+
+ {{ event-replication-note }}
+
+ '
+ links:
+ doc-link: https://developers.pendo.io/docs/?bash#events
+ singer-schema: https://github.com/singer-io/tap-pendo/blob/master/tap_pendo/schemas/page_events.json
+ api-method: https://developers.pendo.io/docs/api/v1/aggregation/?bash#aggregation
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - account_id
+ - server
+ - remote_ip
+ - visitor_id
+ - day
+ - page_id
+ - user_agent
+- name: poll_events
+ description: 'The `{{ table.name }}` table contains info about poll events recorded
+ in your {{ integration.display_name }} account.
+
+
+ {{ event-replication-note }}
+
+ '
+ links:
+ doc-link: https://developers.pendo.io/docs/?bash#events
+ singer-schema: https://github.com/singer-io/tap-pendo/blob/master/tap_pendo/schemas/poll_events.json
+ api-method: https://developers.pendo.io/docs/api/v1/aggregation/?bash#aggregation
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - account_id
+ - remote_ip
+ - visitor_id
+ - browser_time
+ - poll_id
+ replication-key: browser_time
+- name: track_events
+ description: 'The `{{ table.name }}` table contains info about the track events
+ recorded in your {{ integration.display_name }} account.
+
+
+ {{ event-replication-note }}
+
+ '
+ links:
+ doc-link: https://developers.pendo.io/docs/?bash#track-events
+ singer-schema: https://github.com/singer-io/tap-pendo/blob/master/tap_pendo/schemas/track_events.json
+ api-method: https://developers.pendo.io/docs/api/v1/aggregation/?bash#aggregation
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - account_id
+ - remote_ip
+ - server
+ - visitor_id
+ - day
+ - track_type_id
+ - user_agent
+- name: track_types
+ description: "The `{{ table.name }}` table contains info about \n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-pendo/blob/master/tap_pendo/schemas/track_types.json
+ api-method: https://developers.pendo.io/docs/api/v1/aggregation/?bash#aggregation
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: visitors
+ description: 'The `{{ table.name }}` table contains info about the visitors recorded
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.pendo.io/docs/?bash#visitor
+ singer-schema: https://github.com/singer-io/tap-pendo/blob/master/tap_pendo/schemas/visitors.json
+ api-method: https://developers.pendo.io/docs/api/v1/aggregation/?bash#aggregation
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: visitor_id
+ replication-key: lastupdated
+- name: visitor_history
+ description: 'The `{{ table.name }}` table contains info about visitor activity.
+
+ '
+ links:
+ doc-link: https://developers.pendo.io/docs/?bash#visitor
+ singer-schema: https://github.com/singer-io/tap-pendo/blob/master/tap_pendo/schemas/visitor_history.json
+ api-method: https://developers.pendo.io/docs/api/v1/aggregation/?bash#aggregation
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: visitor_id
+ replication-key: modified_ts
diff --git a/_data/taps/schemas/pepperjam/v1/json/creative_advanced.json b/_data/taps/schemas/pepperjam/v1/json/creative_advanced.json
new file mode 100644
index 000000000..35606c427
--- /dev/null
+++ b/_data/taps/schemas/pepperjam/v1/json/creative_advanced.json
@@ -0,0 +1,176 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "flash_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "personalized": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "private": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "private_affiliates": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "affiliate_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "promotions": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sub_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "supression_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pepperjam/v1/json/creative_banner.json b/_data/taps/schemas/pepperjam/v1/json/creative_banner.json
new file mode 100644
index 000000000..b26350eac
--- /dev/null
+++ b/_data/taps/schemas/pepperjam/v1/json/creative_banner.json
@@ -0,0 +1,176 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "allow_deep_link": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "alt_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "banner_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "destination_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "private": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "private_affiliates": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "affiliate_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "promotions": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pepperjam/v1/json/creative_coupon.json b/_data/taps/schemas/pepperjam/v1/json/creative_coupon.json
new file mode 100644
index 000000000..59454c850
--- /dev/null
+++ b/_data/taps/schemas/pepperjam/v1/json/creative_coupon.json
@@ -0,0 +1,158 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "coupon_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "personalized": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "private": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "private_affiliates": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "affiliate_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "promotions": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pepperjam/v1/json/creative_generic.json b/_data/taps/schemas/pepperjam/v1/json/creative_generic.json
new file mode 100644
index 000000000..2350da29c
--- /dev/null
+++ b/_data/taps/schemas/pepperjam/v1/json/creative_generic.json
@@ -0,0 +1,30 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "allow_deep_link": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pepperjam/v1/json/creative_performance.json b/_data/taps/schemas/pepperjam/v1/json/creative_performance.json
new file mode 100644
index 000000000..c90d6ec08
--- /dev/null
+++ b/_data/taps/schemas/pepperjam/v1/json/creative_performance.json
@@ -0,0 +1,116 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "affiliate_usage": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "click_through_rate": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "commission": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "creative_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "creative_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creative_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "datetime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "earnings_per_click": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sales": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "transactions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pepperjam/v1/json/creative_performance_by_publisher.json b/_data/taps/schemas/pepperjam/v1/json/creative_performance_by_publisher.json
new file mode 100644
index 000000000..9ad673247
--- /dev/null
+++ b/_data/taps/schemas/pepperjam/v1/json/creative_performance_by_publisher.json
@@ -0,0 +1,128 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "affiliate_usage": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "click_through_rate": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "commission": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "creative_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "creative_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creative_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "datetime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "earnings_per_click": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "publisher": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "publisher_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sales": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "transactions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pepperjam/v1/json/creative_product.json b/_data/taps/schemas/pepperjam/v1/json/creative_product.json
new file mode 100644
index 000000000..e4c4365ea
--- /dev/null
+++ b/_data/taps/schemas/pepperjam/v1/json/creative_product.json
@@ -0,0 +1,500 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "age_range": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "artist": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "aspect_ratio": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "author": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "battery_life": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "binding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "buy_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "category_network": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "category_program": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "color_output": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "condition": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description_long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description_short": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "director": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discontinued": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "edition": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expiration_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "features": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "focus_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "functions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "genre": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "heel_height": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "image_thumb_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "in_stock": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "installation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "isbn": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "keywords": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "length": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "load_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "made_in": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "manufacturer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "material": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "megapixels": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "memory_capacity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "memory_card_slot": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "memory_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "model_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mpn": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "occasion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operating_system": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "optical_drive": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pages": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "payment_accepted": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "platform": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "price_retail": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "price_sale": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "price_shipping": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "processor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "publisher": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity_in_stock": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "rating": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recommended_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resolution": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "screen_size": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shoe_size": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shoe_width": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "staring": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "style": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tech_spec_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "upc": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "weight": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "wireless_interface": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "year": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zoom": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pepperjam/v1/json/creative_promotion.json b/_data/taps/schemas/pepperjam/v1/json/creative_promotion.json
new file mode 100644
index 000000000..c31289de3
--- /dev/null
+++ b/_data/taps/schemas/pepperjam/v1/json/creative_promotion.json
@@ -0,0 +1,18 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pepperjam/v1/json/creative_text.json b/_data/taps/schemas/pepperjam/v1/json/creative_text.json
new file mode 100644
index 000000000..4efc588bc
--- /dev/null
+++ b/_data/taps/schemas/pepperjam/v1/json/creative_text.json
@@ -0,0 +1,152 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "allow_deep_link": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "link_anchor_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "private": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "private_affiliates": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "affiliate_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "promotions": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "view_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pepperjam/v1/json/group.json b/_data/taps/schemas/pepperjam/v1/json/group.json
new file mode 100644
index 000000000..48f2ec9f2
--- /dev/null
+++ b/_data/taps/schemas/pepperjam/v1/json/group.json
@@ -0,0 +1,24 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "assigned_publishers": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pepperjam/v1/json/group_member.json b/_data/taps/schemas/pepperjam/v1/json/group_member.json
new file mode 100644
index 000000000..2a81d7b91
--- /dev/null
+++ b/_data/taps/schemas/pepperjam/v1/json/group_member.json
@@ -0,0 +1,36 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "default": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pepperjam/v1/json/itemized_list.json b/_data/taps/schemas/pepperjam/v1/json/itemized_list.json
new file mode 100644
index 000000000..ec163a3d3
--- /dev/null
+++ b/_data/taps/schemas/pepperjam/v1/json/itemized_list.json
@@ -0,0 +1,30 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "default": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pepperjam/v1/json/itemized_list_product.json b/_data/taps/schemas/pepperjam/v1/json/itemized_list_product.json
new file mode 100644
index 000000000..8655d6533
--- /dev/null
+++ b/_data/taps/schemas/pepperjam/v1/json/itemized_list_product.json
@@ -0,0 +1,24 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "list_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pepperjam/v1/json/publisher.json b/_data/taps/schemas/pepperjam/v1/json/publisher.json
new file mode 100644
index 000000000..b773231a7
--- /dev/null
+++ b/_data/taps/schemas/pepperjam/v1/json/publisher.json
@@ -0,0 +1,202 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "category": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "join_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "primary_promo_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promotional_method": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "request_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "term": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "transparency": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pepperjam/v1/json/publisher_performance.json b/_data/taps/schemas/pepperjam/v1/json/publisher_performance.json
new file mode 100644
index 000000000..8370f1add
--- /dev/null
+++ b/_data/taps/schemas/pepperjam/v1/json/publisher_performance.json
@@ -0,0 +1,172 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "bonus_amount": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "datetime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "earnings_per_click": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "leads": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "publisher": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "publisher_bonus": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "publisher_commission": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "publisher_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "publisher_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sale_lead_amount": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "sales": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "site_bonus": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "site_commission": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_commission": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pepperjam/v1/json/term.json b/_data/taps/schemas/pepperjam/v1/json/term.json
new file mode 100644
index 000000000..3ea61cb2d
--- /dev/null
+++ b/_data/taps/schemas/pepperjam/v1/json/term.json
@@ -0,0 +1,36 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "cookie_duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date"
+ ]
+ },
+ "default": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pepperjam/v1/json/transaction_details.json b/_data/taps/schemas/pepperjam/v1/json/transaction_details.json
new file mode 100644
index 000000000..c5c4edc1b
--- /dev/null
+++ b/_data/taps/schemas/pepperjam/v1/json/transaction_details.json
@@ -0,0 +1,146 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "click_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "commission": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "commission_publisher": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "commission_site": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "coupons": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creative_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "device_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "link_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "new_to_file": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "publisher": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "publisher_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "publisher_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sale_amount": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "sale_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "transaction_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pepperjam/v1/json/transaction_history.json b/_data/taps/schemas/pepperjam/v1/json/transaction_history.json
new file mode 100644
index 000000000..e6a3d895f
--- /dev/null
+++ b/_data/taps/schemas/pepperjam/v1/json/transaction_history.json
@@ -0,0 +1,140 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "commission": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "link_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "process_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "publisher": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "publisher_commission": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "publisher_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "publisher_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "revision": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sale_amount": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "sale_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "site_commission": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ }
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "transaction_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "website_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pepperjam/v1/pepperjam-v1-foreign-keys.yml b/_data/taps/schemas/pepperjam/v1/pepperjam-v1-foreign-keys.yml
new file mode 100644
index 000000000..79a87acc1
--- /dev/null
+++ b/_data/taps/schemas/pepperjam/v1/pepperjam-v1-foreign-keys.yml
@@ -0,0 +1,608 @@
+tap: pepperjam
+version: '1'
+keys:
+ creative_advanced_id:
+ - table: creative_advanced
+ keys:
+ - id
+ _affiliate_id:
+ - table: creative_advanced
+ keys:
+ - private_affiliates.affiliate_id
+ - table: creative_banner
+ keys:
+ - private_affiliates.affiliate_id
+ - table: creative_coupon
+ keys:
+ - private_affiliates.affiliate_id
+ - table: creative_text
+ keys:
+ - private_affiliates.affiliate_id
+ creative_banner_id:
+ - table: creative_banner
+ keys:
+ - id
+ creative_coupon_id:
+ - table: creative_coupon
+ keys:
+ - id
+ _creative_id:
+ - table: creative_performance
+ keys:
+ - creative_id
+ - table: creative_performance_by_publisher
+ keys:
+ - creative_id
+ - table: transaction_details
+ keys:
+ - creative_id
+ group_group_id:
+ - table: creative_performance
+ keys:
+ - group_id
+ - table: creative_performance_by_publisher
+ keys:
+ - group_id
+ - table: group
+ keys:
+ - id
+ - table: group_member
+ keys:
+ - group_id
+ - table: publisher
+ keys:
+ - group.id
+ - table: publisher_performance
+ keys:
+ - group_id
+ - table: transaction_details
+ keys:
+ - group_id
+ - table: transaction_history
+ keys:
+ - group_id
+ itemized_list_list_id:
+ - table: itemized_list
+ keys:
+ - id
+ - table: itemized_list_product
+ keys:
+ - list_id
+ itemized_list_product_id:
+ - table: itemized_list_product
+ keys:
+ - id
+ group_member_id:
+ - table: group_member
+ keys:
+ - id
+ publisher_performance_order_id:
+ - table: transaction_details
+ keys:
+ - order_id
+ - table: transaction_history
+ keys:
+ - order_id
+ publisher_publisher_id:
+ - table: publisher
+ keys:
+ - id
+ - table: creative_performance_by_publisher
+ keys:
+ - publisher_id
+ - table: publisher_performance
+ keys:
+ - publisher_id
+ - table: transaction_details
+ keys:
+ - publisher_id
+ - table: transaction_history
+ keys:
+ - publisher_id
+ creative_product_id:
+ - table: creative_product
+ keys:
+ - id
+ creative_promotion_id:
+ - table: creative_advanced
+ keys:
+ - promotions.id
+ - table: creative_banner
+ keys:
+ - promotions.id
+ - table: creative_coupon
+ keys:
+ - promotions.id
+ - table: creative_promotion
+ keys:
+ - id
+ - table: creative_text
+ keys:
+ - promotions.id
+ term_id:
+ - table: publisher
+ keys:
+ - term.id
+ - table: term
+ keys:
+ - id
+ creative_text_id:
+ - table: creative_text
+ keys:
+ - id
+ _transaction_id:
+ - table: transaction_details
+ keys:
+ - transaction_id
+ - table: transaction_history
+ keys:
+ - transaction_id
+ creative_generic_type:
+ - table: creative_generic
+ keys:
+ - type
+ - table: creative_performance
+ keys:
+ - creative_type
+ - table: creative_performance_by_publisher
+ keys:
+ - creative_type
+tables:
+- table-name: creative_advanced
+ join:
+ - table-name: creative_banner
+ keys:
+ - key: private_affiliates.affiliate_id
+ foreign-key: private_affiliates.affiliate_id
+ - key: promotions.id
+ foreign-key: promotions.id
+ - table-name: creative_coupon
+ keys:
+ - key: private_affiliates.affiliate_id
+ foreign-key: private_affiliates.affiliate_id
+ - key: promotions.id
+ foreign-key: promotions.id
+ - table-name: creative_text
+ keys:
+ - key: private_affiliates.affiliate_id
+ foreign-key: private_affiliates.affiliate_id
+ - key: promotions.id
+ foreign-key: promotions.id
+ - table-name: creative_promotion
+ keys:
+ - key: promotions.id
+ foreign-key: id
+- table-name: creative_banner
+ join:
+ - table-name: creative_advanced
+ keys:
+ - key: private_affiliates.affiliate_id
+ foreign-key: private_affiliates.affiliate_id
+ - key: promotions.id
+ foreign-key: promotions.id
+ - table-name: creative_coupon
+ keys:
+ - key: private_affiliates.affiliate_id
+ foreign-key: private_affiliates.affiliate_id
+ - key: promotions.id
+ foreign-key: promotions.id
+ - table-name: creative_text
+ keys:
+ - key: private_affiliates.affiliate_id
+ foreign-key: private_affiliates.affiliate_id
+ - key: promotions.id
+ foreign-key: promotions.id
+ - table-name: creative_promotion
+ keys:
+ - key: promotions.id
+ foreign-key: id
+- table-name: creative_coupon
+ join:
+ - table-name: creative_advanced
+ keys:
+ - key: private_affiliates.affiliate_id
+ foreign-key: private_affiliates.affiliate_id
+ - key: promotions.id
+ foreign-key: promotions.id
+ - table-name: creative_banner
+ keys:
+ - key: private_affiliates.affiliate_id
+ foreign-key: private_affiliates.affiliate_id
+ - key: promotions.id
+ foreign-key: promotions.id
+ - table-name: creative_text
+ keys:
+ - key: private_affiliates.affiliate_id
+ foreign-key: private_affiliates.affiliate_id
+ - key: promotions.id
+ foreign-key: promotions.id
+ - table-name: creative_promotion
+ keys:
+ - key: promotions.id
+ foreign-key: id
+- table-name: creative_text
+ join:
+ - table-name: creative_advanced
+ keys:
+ - key: private_affiliates.affiliate_id
+ foreign-key: private_affiliates.affiliate_id
+ - key: promotions.id
+ foreign-key: promotions.id
+ - table-name: creative_banner
+ keys:
+ - key: private_affiliates.affiliate_id
+ foreign-key: private_affiliates.affiliate_id
+ - key: promotions.id
+ foreign-key: promotions.id
+ - table-name: creative_coupon
+ keys:
+ - key: private_affiliates.affiliate_id
+ foreign-key: private_affiliates.affiliate_id
+ - key: promotions.id
+ foreign-key: promotions.id
+ - table-name: creative_promotion
+ keys:
+ - key: promotions.id
+ foreign-key: id
+- table-name: creative_performance
+ join:
+ - table-name: creative_performance_by_publisher
+ keys:
+ - key: creative_id
+ foreign-key: creative_id
+ - key: group_id
+ foreign-key: group_id
+ - key: creative_type
+ foreign-key: creative_type
+ - table-name: transaction_details
+ keys:
+ - key: creative_id
+ foreign-key: creative_id
+ - key: group_id
+ foreign-key: group_id
+ - table-name: group
+ keys:
+ - key: group_id
+ foreign-key: id
+ - table-name: group_member
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: publisher
+ keys:
+ - key: group_id
+ foreign-key: group.id
+ - table-name: publisher_performance
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: transaction_history
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: creative_generic
+ keys:
+ - key: creative_type
+ foreign-key: type
+- table-name: creative_performance_by_publisher
+ join:
+ - table-name: creative_performance
+ keys:
+ - key: creative_id
+ foreign-key: creative_id
+ - key: group_id
+ foreign-key: group_id
+ - key: creative_type
+ foreign-key: creative_type
+ - table-name: transaction_details
+ keys:
+ - key: creative_id
+ foreign-key: creative_id
+ - key: group_id
+ foreign-key: group_id
+ - key: publisher_id
+ foreign-key: publisher_id
+ - table-name: group
+ keys:
+ - key: group_id
+ foreign-key: id
+ - table-name: group_member
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: publisher
+ keys:
+ - key: group_id
+ foreign-key: group.id
+ - key: publisher_id
+ foreign-key: id
+ - table-name: publisher_performance
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - key: publisher_id
+ foreign-key: publisher_id
+ - table-name: transaction_history
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - key: publisher_id
+ foreign-key: publisher_id
+ - table-name: creative_generic
+ keys:
+ - key: creative_type
+ foreign-key: type
+- table-name: transaction_details
+ join:
+ - table-name: creative_performance
+ keys:
+ - key: creative_id
+ foreign-key: creative_id
+ - key: group_id
+ foreign-key: group_id
+ - table-name: creative_performance_by_publisher
+ keys:
+ - key: creative_id
+ foreign-key: creative_id
+ - key: group_id
+ foreign-key: group_id
+ - key: publisher_id
+ foreign-key: publisher_id
+ - table-name: group
+ keys:
+ - key: group_id
+ foreign-key: id
+ - table-name: group_member
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: publisher
+ keys:
+ - key: group_id
+ foreign-key: group.id
+ - key: publisher_id
+ foreign-key: id
+ - table-name: publisher_performance
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - key: publisher_id
+ foreign-key: publisher_id
+ - table-name: transaction_history
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - key: order_id
+ foreign-key: order_id
+ - key: publisher_id
+ foreign-key: publisher_id
+ - key: transaction_id
+ foreign-key: transaction_id
+- table-name: group
+ join:
+ - table-name: creative_performance
+ keys:
+ - key: id
+ foreign-key: group_id
+ - table-name: creative_performance_by_publisher
+ keys:
+ - key: id
+ foreign-key: group_id
+ - table-name: group_member
+ keys:
+ - key: id
+ foreign-key: group_id
+ - table-name: publisher
+ keys:
+ - key: id
+ foreign-key: group.id
+ - table-name: publisher_performance
+ keys:
+ - key: id
+ foreign-key: group_id
+ - table-name: transaction_details
+ keys:
+ - key: id
+ foreign-key: group_id
+ - table-name: transaction_history
+ keys:
+ - key: id
+ foreign-key: group_id
+- table-name: group_member
+ join:
+ - table-name: creative_performance
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: creative_performance_by_publisher
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: group
+ keys:
+ - key: group_id
+ foreign-key: id
+ - table-name: publisher
+ keys:
+ - key: group_id
+ foreign-key: group.id
+ - table-name: publisher_performance
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: transaction_details
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: transaction_history
+ keys:
+ - key: group_id
+ foreign-key: group_id
+- table-name: publisher
+ join:
+ - table-name: creative_performance
+ keys:
+ - key: group.id
+ foreign-key: group_id
+ - table-name: creative_performance_by_publisher
+ keys:
+ - key: group.id
+ foreign-key: group_id
+ - key: id
+ foreign-key: publisher_id
+ - table-name: group
+ keys:
+ - key: group.id
+ foreign-key: id
+ - table-name: group_member
+ keys:
+ - key: group.id
+ foreign-key: group_id
+ - table-name: publisher_performance
+ keys:
+ - key: group.id
+ foreign-key: group_id
+ - key: id
+ foreign-key: publisher_id
+ - table-name: transaction_details
+ keys:
+ - key: group.id
+ foreign-key: group_id
+ - key: id
+ foreign-key: publisher_id
+ - table-name: transaction_history
+ keys:
+ - key: group.id
+ foreign-key: group_id
+ - key: id
+ foreign-key: publisher_id
+ - table-name: term
+ keys:
+ - key: term.id
+ foreign-key: id
+- table-name: publisher_performance
+ join:
+ - table-name: creative_performance
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: creative_performance_by_publisher
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - key: publisher_id
+ foreign-key: publisher_id
+ - table-name: group
+ keys:
+ - key: group_id
+ foreign-key: id
+ - table-name: group_member
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: publisher
+ keys:
+ - key: group_id
+ foreign-key: group.id
+ - key: publisher_id
+ foreign-key: id
+ - table-name: transaction_details
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - key: publisher_id
+ foreign-key: publisher_id
+ - table-name: transaction_history
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - key: publisher_id
+ foreign-key: publisher_id
+- table-name: transaction_history
+ join:
+ - table-name: creative_performance
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: creative_performance_by_publisher
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - key: publisher_id
+ foreign-key: publisher_id
+ - table-name: group
+ keys:
+ - key: group_id
+ foreign-key: id
+ - table-name: group_member
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: publisher
+ keys:
+ - key: group_id
+ foreign-key: group.id
+ - key: publisher_id
+ foreign-key: id
+ - table-name: publisher_performance
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - key: publisher_id
+ foreign-key: publisher_id
+ - table-name: transaction_details
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - key: order_id
+ foreign-key: order_id
+ - key: publisher_id
+ foreign-key: publisher_id
+ - key: transaction_id
+ foreign-key: transaction_id
+- table-name: itemized_list
+ join:
+ - table-name: itemized_list_product
+ keys:
+ - key: id
+ foreign-key: list_id
+- table-name: itemized_list_product
+ join:
+ - table-name: itemized_list
+ keys:
+ - key: list_id
+ foreign-key: id
+- table-name: creative_promotion
+ join:
+ - table-name: creative_advanced
+ keys:
+ - key: id
+ foreign-key: promotions.id
+ - table-name: creative_banner
+ keys:
+ - key: id
+ foreign-key: promotions.id
+ - table-name: creative_coupon
+ keys:
+ - key: id
+ foreign-key: promotions.id
+ - table-name: creative_text
+ keys:
+ - key: id
+ foreign-key: promotions.id
+- table-name: term
+ join:
+ - table-name: publisher
+ keys:
+ - key: id
+ foreign-key: term.id
+- table-name: creative_generic
+ join:
+ - table-name: creative_performance
+ keys:
+ - key: type
+ foreign-key: creative_type
+ - table-name: creative_performance_by_publisher
+ keys:
+ - key: type
+ foreign-key: creative_type
diff --git a/_data/taps/schemas/pepperjam/v1/pepperjam-v1-tables.yml b/_data/taps/schemas/pepperjam/v1/pepperjam-v1-tables.yml
new file mode 100644
index 000000000..46d182504
--- /dev/null
+++ b/_data/taps/schemas/pepperjam/v1/pepperjam-v1-tables.yml
@@ -0,0 +1,254 @@
+tap: pepperjam
+version: '1'
+tables:
+- name: creative_advanced
+ description: 'The `{{ table.name }}` table contains information about advanced link
+ creatives in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pepperjam/blob/master/tap_pepperjam/schemas/creative_advanced.json
+ api-method: https://support.pepperjam.com/s/advertiser-api-documentation#AdvancedLinks
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: modified
+- name: creative_banner
+ description: 'The `{{ table.name }}` table contains information about banner creatives
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pepperjam/blob/master/tap_pepperjam/schemas/creative_banner.json
+ api-method: https://support.pepperjam.com/s/advertiser-api-documentation#Banner
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: modified
+- name: creative_coupon
+ description: 'The `{{ table.name }}` table contains information about coupon creatives
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pepperjam/blob/master/tap_pepperjam/schemas/creative_coupon.json
+ api-method: https://support.pepperjam.com/s/advertiser-api-documentation#CouponCreative
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: modified
+- name: creative_generic
+ description: 'The `{{ table.name }}` table contains information about generic link
+ creatives in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pepperjam/blob/master/tap_pepperjam/schemas/creative_generic.json
+ api-method: https://support.pepperjam.com/s/advertiser-api-documentation#Generic
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: type
+ replication-key: modified
+- name: creative_performance
+ description: 'The `{{ table.name }}` table contains information about your {{ integration.display_name
+ }} creatives'' performance within a {{ table.attribution-window-days }}-day time
+ frame from the date of the last table replication.
+
+
+ **Note**: During every replication job, Stitch will replicate the last {{ table.attribution-window-days
+ }} days'' worth of data for this table. Refer to the [Attribution windows and
+ data extraction](#attribution-windows-data-extraction) section for more info.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pepperjam/blob/master/tap_pepperjam/schemas/creative_performance.json
+ api-method: https://support.pepperjam.com/s/advertiser-api-documentation#CreativeDetails
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - creative_id
+ - creative_type
+ - date
+ replication-key: datetime
+- name: creative_performance_by_publisher
+ description: 'The `{{ table.name }}` table contains information about your {{ integration.display_name
+ }} creatives'' performance, per publisher, within a {{ table.attribution-window-days
+ }}-day time frame from the date of the last table replication.
+
+
+ **Note**: During every replication job, Stitch will replicate the last {{ table.attribution-window-days
+ }} days'' worth of data for this table. Refer to the [Attribution windows and
+ data extraction](#attribution-windows-data-extraction) section for more info.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pepperjam/blob/master/tap_pepperjam/schemas/creative_performance_by_publisher.json
+ api-method: https://support.pepperjam.com/s/advertiser-api-documentation#CreativePerformanceByPublisher
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - creative_id
+ - creative_type
+ - date
+ - publisher_id
+ replication-key: datetime
+- name: creative_product
+ description: 'The `{{ table.name }}` table contains information about product creatives
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pepperjam/blob/master/tap_pepperjam/schemas/creative_product.json
+ api-method: https://support.pepperjam.com/s/advertiser-api-documentation#ProductCreative
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: creative_promotion
+ description: 'The `{{ table.name }}` table contains information about promotion
+ creatives in your {{ integration.display_name }} name account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pepperjam/blob/master/tap_pepperjam/schemas/creative_promotion.json
+ api-method: https://support.pepperjam.com/s/advertiser-api-documentation#CreativePromotion
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: creative_text
+ description: 'The {{ table.name }} table contains information about text creatives
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pepperjam/blob/master/tap_pepperjam/schemas/creative_text.json
+ api-method: https://support.pepperjam.com/s/advertiser-api-documentation#Text
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: modified
+- name: group
+ description: 'The `{{ table.name }}` table contains information about groups in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pepperjam/blob/master/tap_pepperjam/schemas/group.json
+ api-method: https://support.pepperjam.com/s/advertiser-api-documentation#Group
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: group_member
+ description: 'The `{{ table.name }}` table contains information about members within
+ groups in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pepperjam/blob/master/tap_pepperjam/schemas/group_member.json
+ api-method: https://support.pepperjam.com/s/advertiser-api-documentation#Member
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: itemized_list
+ description: 'The `{{ table.name }}` table contains information about your itemized
+ lists in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pepperjam/blob/master/tap_pepperjam/schemas/itemized_list.json
+ api-method: https://support.pepperjam.com/s/advertiser-api-documentation#ItemizedList
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: itemized_list_product
+ description: 'The `{{ table.name }}` table contains information about products within
+ your itemized lists in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pepperjam/blob/master/tap_pepperjam/schemas/itemized_list_product.json
+ api-method: https://support.pepperjam.com/s/advertiser-api-documentation#Product
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: publisher
+ description: 'The `{{ table.name }}` table contains information about the publishers,
+ the publishers'' status, and the publishers'' term in your {{ integration.display_name
+ }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pepperjam/blob/master/tap_pepperjam/schemas/publisher.json
+ api-method: https://support.pepperjam.com/s/advertiser-api-documentation#Publisher
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: publisher_performance
+ description: 'The `{{ table.name }}` table contains information about publishers''
+ performance within a {{ table.attribution-window-days }}-day time frame from the
+ date of the last table replication.
+
+
+ **Note**: During every replication job, Stitch will replicate the last {{ table.attribution-window-days
+ }} days'' worth of data for this table. Refer to the [Attribution windows and
+ data extraction](#attribution-windows-data-extraction) section for more info.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pepperjam/blob/master/tap_pepperjam/schemas/publisher_performance.json
+ api-method: https://support.pepperjam.com/s/advertiser-api-documentation#PublisherPerformance
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - date
+ - publisher_id
+ replication-key: datetime
+- name: term
+ description: 'The `{{ table.name }}` table contains information about the terms
+ for your program in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pepperjam/blob/master/tap_pepperjam/schemas/term.json
+ api-method: https://support.pepperjam.com/s/advertiser-api-documentation#Term
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: transaction_details
+ description: 'The {{ table.name }} table contains all publisher transaction details,
+ within a {{ table.attribution-window-days }}-day time frame from the date of the
+ last table replication.
+
+
+ **Note**: During every replication job, Stitch will replicate the last {{ table.attribution-window-days
+ }} days'' worth of data for this table. Refer to the [Attribution windows and
+ data extraction](#attribution-windows-data-extraction) section for more info.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pepperjam/blob/master/tap_pepperjam/schemas/transaction_details.json
+ api-method: https://support.pepperjam.com/s/advertiser-api-documentation#TransactionDetails
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: transaction_id
+ replication-key: sale_date
+- name: transaction_history
+ description: 'The {{ table.name }} table contains all historical publisher transactions,
+ within a {{ table.attribution-window-days }}-day time frame from the date of the
+ last table replication.
+
+
+ **Note**: During every replication job, Stitch will replicate the last {{ table.attribution-window-days
+ }} days'' worth of data for this table.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pepperjam/blob/master/tap_pepperjam/schemas/transaction_history.json
+ api-method: https://support.pepperjam.com/s/advertiser-api-documentation#TransactionHistory
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - transaction_id
+ - process_date
+ - sale_date
+ replication-key: sale_date
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/pipedrive/v1/json/activities.json b/_data/taps/schemas/pipedrive/v1/json/activities.json
new file mode 100644
index 000000000..9dbb27e17
--- /dev/null
+++ b/_data/taps/schemas/pipedrive/v1/json/activities.json
@@ -0,0 +1,199 @@
+{
+ "properties": {
+ "active_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "add_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "assigned_to_user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "company_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_by_user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "deal_dropbox_bcc": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "deal_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "done": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "due_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "due_time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gcal_event_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "google_calendar_etag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "google_calendar_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": "integer"
+ },
+ "marked_as_done_time": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "org_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "org_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "participants": {
+ "items": {
+ "properties": {
+ "person_id": {
+ "type": "integer"
+ },
+ "primary_flag": {
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "person_dropbox_bcc": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "person_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "person_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reference_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "update_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pipedrive/v1/json/activity_types.json b/_data/taps/schemas/pipedrive/v1/json/activity_types.json
new file mode 100644
index 000000000..d67cb5bd7
--- /dev/null
+++ b/_data/taps/schemas/pipedrive/v1/json/activity_types.json
@@ -0,0 +1,62 @@
+{
+ "properties": {
+ "active_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "add_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "icon_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": "integer"
+ },
+ "is_custom_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "key_string": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_nr": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "update_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pipedrive/v1/json/currency.json b/_data/taps/schemas/pipedrive/v1/json/currency.json
new file mode 100644
index 000000000..59e85fb50
--- /dev/null
+++ b/_data/taps/schemas/pipedrive/v1/json/currency.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "active_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "decimal_points": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": "integer"
+ },
+ "is_custom_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "symbol": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pipedrive/v1/json/deal_fields.json b/_data/taps/schemas/pipedrive/v1/json/deal_fields.json
new file mode 100644
index 000000000..de3735f58
--- /dev/null
+++ b/_data/taps/schemas/pipedrive/v1/json/deal_fields.json
@@ -0,0 +1,146 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "active_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "add_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "add_visible_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "bulk_edit_allowed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "details_visible_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "edit_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "field_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "filtering_allowed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "important_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "index_visible_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_updated_by_user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "mandatory_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "order_nr": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "searchable_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "sortable_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "update_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pipedrive/v1/json/deal_products.json b/_data/taps/schemas/pipedrive/v1/json/deal_products.json
new file mode 100644
index 000000000..7c6c0a1bf
--- /dev/null
+++ b/_data/taps/schemas/pipedrive/v1/json/deal_products.json
@@ -0,0 +1,123 @@
+{
+ "properties": {
+ "active_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "add_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "comments": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "discount_percentage": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "enabled_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "item_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "last_edit": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_nr": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "product_variation_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity_formatted": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sum": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "sum_formatted": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sum_no_discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pipedrive/v1/json/dealflow.json b/_data/taps/schemas/pipedrive/v1/json/dealflow.json
new file mode 100644
index 000000000..88771bdf5
--- /dev/null
+++ b/_data/taps/schemas/pipedrive/v1/json/dealflow.json
@@ -0,0 +1,56 @@
+{
+ "properties": {
+ "additional_data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "change_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": "integer"
+ },
+ "is_bulk_update_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "item_id": {
+ "type": "integer"
+ },
+ "log_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "new_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "old_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pipedrive/v1/json/deals.json b/_data/taps/schemas/pipedrive/v1/json/deals.json
new file mode 100644
index 000000000..540fc4890
--- /dev/null
+++ b/_data/taps/schemas/pipedrive/v1/json/deals.json
@@ -0,0 +1,366 @@
+{
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "activities_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "add_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cc_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "close_time": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "creator_user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "done_activities_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "email_messages_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "expected_close_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "files_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "first_won_time": {
+ "anyOf": [
+ {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ ]
+ },
+ "followers_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "formatted_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "formatted_weighted_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "group_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_activity_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_activity_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "last_incoming_mail_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_outgoing_mail_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "lost_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lost_time": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "next_activity_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "next_activity_duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "next_activity_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "next_activity_note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "next_activity_subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "next_activity_time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "next_activity_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "org_hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "org_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "org_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "participants_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "person_hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "person_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "person_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pipeline_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "probability": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "products_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reference_activities_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "renewal_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rotten_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "stage_change_time": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "stage_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "stage_order_nr": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "undone_activities_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "update_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "visible_to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "weighted_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "won_time": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pipedrive/v1/json/files.json b/_data/taps/schemas/pipedrive/v1/json/files.json
new file mode 100644
index 000000000..ca8e511cc
--- /dev/null
+++ b/_data/taps/schemas/pipedrive/v1/json/files.json
@@ -0,0 +1,182 @@
+{
+ "properties": {
+ "active_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "activity_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "add_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "deal_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_message_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "file_size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "file_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": "integer"
+ },
+ "inline_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "log_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "mail_message_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "org_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "org_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "people_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "person_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "person_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "product_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "remote_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "remote_location": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "s3_bucket": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "update_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pipedrive/v1/json/filters.json b/_data/taps/schemas/pipedrive/v1/json/filters.json
new file mode 100644
index 000000000..6ab4a5ec2
--- /dev/null
+++ b/_data/taps/schemas/pipedrive/v1/json/filters.json
@@ -0,0 +1,62 @@
+{
+ "properties": {
+ "active_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "add_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_view_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "temporary_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "update_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "visible_to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pipedrive/v1/json/notes.json b/_data/taps/schemas/pipedrive/v1/json/notes.json
new file mode 100644
index 000000000..18dfa2e8b
--- /dev/null
+++ b/_data/taps/schemas/pipedrive/v1/json/notes.json
@@ -0,0 +1,148 @@
+{
+ "properties": {
+ "active_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "add_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "content": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deal": {
+ "properties": {
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "deal_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_update_user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "org_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "organization": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "person": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "person_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pinned_to_deal_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "pinned_to_organization_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "pinned_to_person_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "update_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user": {
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "icon_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_you": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "user_id": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pipedrive/v1/json/organizations.json b/_data/taps/schemas/pipedrive/v1/json/organizations.json
new file mode 100644
index 000000000..96c2ca383
--- /dev/null
+++ b/_data/taps/schemas/pipedrive/v1/json/organizations.json
@@ -0,0 +1,290 @@
+{
+ "properties": {
+ "active_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "activities_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "add_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_admin_area_level_1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_admin_area_level_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_formatted_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_locality": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_route": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_street_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_sublocality": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_subpremise": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "category_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cc_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "closed_deals_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "company_id": {
+ "type": "integer"
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "done_activities_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "email_messages_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "files_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "first_char": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_activity_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_activity_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "lost_deals_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "next_activity_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "next_activity_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "next_activity_time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "open_deals_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "owner_id": {
+ "type": "integer"
+ },
+ "owner_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "people_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "picture_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reference_activities_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "related_closed_deals_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "related_lost_deals_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "related_open_deals_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "related_won_deals_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "timeline_last_activity_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "timeline_last_activity_time_by_owner": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "undone_activities_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "update_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "visible_to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "won_deals_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pipedrive/v1/json/persons.json b/_data/taps/schemas/pipedrive/v1/json/persons.json
new file mode 100644
index 000000000..24b310aa9
--- /dev/null
+++ b/_data/taps/schemas/pipedrive/v1/json/persons.json
@@ -0,0 +1,300 @@
+{
+ "properties": {
+ "active_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "activities_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "add_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cc_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "closed_deals_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "company_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "done_activities_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "email": {
+ "items": {
+ "properties": {
+ "label": {
+ "type": "string"
+ },
+ "primary": {
+ "type": "boolean"
+ },
+ "value": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "email_messages_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "files_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "first_char": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "followers_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_activity_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_activity_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "last_incoming_mail_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "last_outgoing_mail_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "lost_deals_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "next_activity_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "next_activity_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "next_activity_time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "open_deals_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "org_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "org_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "owner_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "participant_closed_deals_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "participant_open_deals_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "phone": {
+ "items": {
+ "properties": {
+ "label": {
+ "type": "string"
+ },
+ "primary": {
+ "type": "boolean"
+ },
+ "value": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "picture_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "reference_activities_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "related_closed_deals_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "related_lost_deals_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "related_open_deals_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "related_won_deals_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "timeline_last_activity_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "timeline_last_activity_time_by_owner": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "undone_activities_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "update_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "visible_to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "won_deals_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pipedrive/v1/json/pipelines.json b/_data/taps/schemas/pipedrive/v1/json/pipelines.json
new file mode 100644
index 000000000..a8f122ab3
--- /dev/null
+++ b/_data/taps/schemas/pipedrive/v1/json/pipelines.json
@@ -0,0 +1,50 @@
+{
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "add_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_nr": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "selected": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "update_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pipedrive/v1/json/products.json b/_data/taps/schemas/pipedrive/v1/json/products.json
new file mode 100644
index 000000000..d3fd07b8c
--- /dev/null
+++ b/_data/taps/schemas/pipedrive/v1/json/products.json
@@ -0,0 +1,145 @@
+{
+ "properties": {
+ "active_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "add_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "files_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "first_char": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "followers_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "owner_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prices": {
+ "items": {
+ "type": "object"
+ },
+ "properties": {
+ "USD": {
+ "properties": {
+ "cost": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "overhead_cost": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": [
+ "null",
+ "object",
+ "array"
+ ]
+ },
+ "selectable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tax": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "update_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "visible_to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pipedrive/v1/json/stages.json b/_data/taps/schemas/pipedrive/v1/json/stages.json
new file mode 100644
index 000000000..3af817f4f
--- /dev/null
+++ b/_data/taps/schemas/pipedrive/v1/json/stages.json
@@ -0,0 +1,68 @@
+{
+ "properties": {
+ "active_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "add_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deal_probability": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_nr": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pipeline_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pipeline_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rotten_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "rotten_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "update_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pipedrive/v1/json/users.json b/_data/taps/schemas/pipedrive/v1/json/users.json
new file mode 100644
index 000000000..4cf0c2809
--- /dev/null
+++ b/_data/taps/schemas/pipedrive/v1/json/users.json
@@ -0,0 +1,126 @@
+{
+ "properties": {
+ "activated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "active_flag": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "default_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": "string"
+ },
+ "has_created_company": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "icon_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": "integer"
+ },
+ "is_admin": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_you": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "lang": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_login": {
+ "anyOf": [
+ {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ ]
+ },
+ "locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": "string"
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "signup_flow_variation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timezone_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timezone_offset": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/pipedrive/v1/pipedrive-v1-foreign-keys.yml b/_data/taps/schemas/pipedrive/v1/pipedrive-v1-foreign-keys.yml
new file mode 100644
index 000000000..36ce9b2aa
--- /dev/null
+++ b/_data/taps/schemas/pipedrive/v1/pipedrive-v1-foreign-keys.yml
@@ -0,0 +1,775 @@
+tap: pipedrive
+version: '1'
+keys:
+ activities_activity_id:
+ - table: activities
+ keys:
+ - id
+ - table: deals
+ keys:
+ - last_activity_id
+ - next_activity_id
+ - table: files
+ keys:
+ - activity_id
+ - table: organizations
+ keys:
+ - last_activity_id
+ - next_activity_id
+ - table: persons
+ keys:
+ - last_activity_id
+ - next_activity_id
+ activity_types_activity_type_id:
+ - table: activity_types
+ keys:
+ - id
+ currency_currency_id:
+ - table: currency
+ keys:
+ - id
+ deals_deal_id:
+ - table: activities
+ keys:
+ - deal_id
+ - table: deals
+ keys:
+ - id
+ - table: deal_products
+ keys:
+ - deal_id
+ - table: files
+ keys:
+ - deal_id
+ - table: notes
+ keys:
+ - deal_id
+ deal_products_deal_product_id:
+ - table: deal_products
+ keys:
+ - id
+ filters_filter_id:
+ - table: filters
+ keys:
+ - id
+ pipelines_pipeline_id:
+ - table: deals
+ keys:
+ - pipeline_id
+ - table: pipelines
+ keys:
+ - id
+ - table: stages
+ keys:
+ - pipeline_id
+ notes_note_id:
+ - table: files
+ keys:
+ - note_id
+ - table: notes
+ keys:
+ - id
+ organizations_org_id:
+ - table: activities
+ keys:
+ - org_id
+ - table: deals
+ keys:
+ - org_id
+ - table: files
+ keys:
+ - org_id
+ - table: notes
+ keys:
+ - org_id
+ - table: organizations
+ keys:
+ - id
+ persons_person_id:
+ - table: activities
+ keys:
+ - participants.person_id
+ - person_id
+ - table: files
+ keys:
+ - person_id
+ - table: notes
+ keys:
+ - person_id
+ - table: persons
+ keys:
+ - id
+ products_product_id:
+ - table: deal_products
+ keys:
+ - product_id
+ - table: files
+ keys:
+ - product_id
+ - table: products
+ keys:
+ - id
+ stages_stage_id:
+ - table: deals
+ keys:
+ - stage_id
+ - table: stages
+ keys:
+ - id
+ users_user_id:
+ - table: activities
+ keys:
+ - assigned_to_user_id
+ - created_by_user_id
+ - user_id
+ - table: dealflow
+ keys:
+ - user_id
+ - table: deals
+ keys:
+ - creator_user_id
+ - user_id
+ - table: files
+ keys:
+ - user_id
+ - table: filters
+ keys:
+ - user_id
+ - table: notes
+ keys:
+ - last_update_user_id
+ - user_id
+ - table: users
+ keys:
+ - id
+tables:
+- table-name: activities
+ join:
+ - table-name: deals
+ keys:
+ - key: id
+ foreign-key: last_activity_id
+ - key: id
+ foreign-key: next_activity_id
+ - key: deal_id
+ foreign-key: id
+ - key: org_id
+ foreign-key: org_id
+ - key: assigned_to_user_id
+ foreign-key: creator_user_id
+ - key: created_by_user_id
+ foreign-key: creator_user_id
+ - key: user_id
+ foreign-key: creator_user_id
+ - key: assigned_to_user_id
+ foreign-key: user_id
+ - key: created_by_user_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: files
+ keys:
+ - key: id
+ foreign-key: activity_id
+ - key: deal_id
+ foreign-key: deal_id
+ - key: org_id
+ foreign-key: org_id
+ - key: participants.person_id
+ foreign-key: person_id
+ - key: person_id
+ foreign-key: person_id
+ - key: assigned_to_user_id
+ foreign-key: user_id
+ - key: created_by_user_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: organizations
+ keys:
+ - key: id
+ foreign-key: last_activity_id
+ - key: id
+ foreign-key: next_activity_id
+ - key: org_id
+ foreign-key: id
+ - table-name: persons
+ keys:
+ - key: id
+ foreign-key: last_activity_id
+ - key: id
+ foreign-key: next_activity_id
+ - key: participants.person_id
+ foreign-key: id
+ - key: person_id
+ foreign-key: id
+ - table-name: deal_products
+ keys:
+ - key: deal_id
+ foreign-key: deal_id
+ - table-name: notes
+ keys:
+ - key: deal_id
+ foreign-key: deal_id
+ - key: org_id
+ foreign-key: org_id
+ - key: participants.person_id
+ foreign-key: person_id
+ - key: person_id
+ foreign-key: person_id
+ - key: assigned_to_user_id
+ foreign-key: last_update_user_id
+ - key: created_by_user_id
+ foreign-key: last_update_user_id
+ - key: user_id
+ foreign-key: last_update_user_id
+ - key: assigned_to_user_id
+ foreign-key: user_id
+ - key: created_by_user_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: dealflow
+ keys:
+ - key: assigned_to_user_id
+ foreign-key: user_id
+ - key: created_by_user_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: filters
+ keys:
+ - key: assigned_to_user_id
+ foreign-key: user_id
+ - key: created_by_user_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: users
+ keys:
+ - key: assigned_to_user_id
+ foreign-key: id
+ - key: created_by_user_id
+ foreign-key: id
+ - key: user_id
+ foreign-key: id
+- table-name: deals
+ join:
+ - table-name: activities
+ keys:
+ - key: last_activity_id
+ foreign-key: id
+ - key: next_activity_id
+ foreign-key: id
+ - key: id
+ foreign-key: deal_id
+ - key: org_id
+ foreign-key: org_id
+ - key: creator_user_id
+ foreign-key: assigned_to_user_id
+ - key: user_id
+ foreign-key: assigned_to_user_id
+ - key: creator_user_id
+ foreign-key: created_by_user_id
+ - key: user_id
+ foreign-key: created_by_user_id
+ - key: creator_user_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: files
+ keys:
+ - key: last_activity_id
+ foreign-key: activity_id
+ - key: next_activity_id
+ foreign-key: activity_id
+ - key: id
+ foreign-key: deal_id
+ - key: org_id
+ foreign-key: org_id
+ - key: creator_user_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: organizations
+ keys:
+ - key: last_activity_id
+ foreign-key: last_activity_id
+ - key: next_activity_id
+ foreign-key: last_activity_id
+ - key: last_activity_id
+ foreign-key: next_activity_id
+ - key: next_activity_id
+ foreign-key: next_activity_id
+ - key: org_id
+ foreign-key: id
+ - table-name: persons
+ keys:
+ - key: last_activity_id
+ foreign-key: last_activity_id
+ - key: next_activity_id
+ foreign-key: last_activity_id
+ - key: last_activity_id
+ foreign-key: next_activity_id
+ - key: next_activity_id
+ foreign-key: next_activity_id
+ - table-name: deal_products
+ keys:
+ - key: id
+ foreign-key: deal_id
+ - table-name: notes
+ keys:
+ - key: id
+ foreign-key: deal_id
+ - key: org_id
+ foreign-key: org_id
+ - key: creator_user_id
+ foreign-key: last_update_user_id
+ - key: user_id
+ foreign-key: last_update_user_id
+ - key: creator_user_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: pipelines
+ keys:
+ - key: pipeline_id
+ foreign-key: id
+ - table-name: stages
+ keys:
+ - key: pipeline_id
+ foreign-key: pipeline_id
+ - key: stage_id
+ foreign-key: id
+ - table-name: dealflow
+ keys:
+ - key: creator_user_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: filters
+ keys:
+ - key: creator_user_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: users
+ keys:
+ - key: creator_user_id
+ foreign-key: id
+ - key: user_id
+ foreign-key: id
+- table-name: files
+ join:
+ - table-name: activities
+ keys:
+ - key: activity_id
+ foreign-key: id
+ - key: deal_id
+ foreign-key: deal_id
+ - key: org_id
+ foreign-key: org_id
+ - key: person_id
+ foreign-key: participants.person_id
+ - key: person_id
+ foreign-key: person_id
+ - key: user_id
+ foreign-key: assigned_to_user_id
+ - key: user_id
+ foreign-key: created_by_user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: deals
+ keys:
+ - key: activity_id
+ foreign-key: last_activity_id
+ - key: activity_id
+ foreign-key: next_activity_id
+ - key: deal_id
+ foreign-key: id
+ - key: org_id
+ foreign-key: org_id
+ - key: user_id
+ foreign-key: creator_user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: organizations
+ keys:
+ - key: activity_id
+ foreign-key: last_activity_id
+ - key: activity_id
+ foreign-key: next_activity_id
+ - key: org_id
+ foreign-key: id
+ - table-name: persons
+ keys:
+ - key: activity_id
+ foreign-key: last_activity_id
+ - key: activity_id
+ foreign-key: next_activity_id
+ - key: person_id
+ foreign-key: id
+ - table-name: deal_products
+ keys:
+ - key: deal_id
+ foreign-key: deal_id
+ - key: product_id
+ foreign-key: product_id
+ - table-name: notes
+ keys:
+ - key: deal_id
+ foreign-key: deal_id
+ - key: note_id
+ foreign-key: id
+ - key: org_id
+ foreign-key: org_id
+ - key: person_id
+ foreign-key: person_id
+ - key: user_id
+ foreign-key: last_update_user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: products
+ keys:
+ - key: product_id
+ foreign-key: id
+ - table-name: dealflow
+ keys:
+ - key: user_id
+ foreign-key: user_id
+ - table-name: filters
+ keys:
+ - key: user_id
+ foreign-key: user_id
+ - table-name: users
+ keys:
+ - key: user_id
+ foreign-key: id
+- table-name: organizations
+ join:
+ - table-name: activities
+ keys:
+ - key: last_activity_id
+ foreign-key: id
+ - key: next_activity_id
+ foreign-key: id
+ - key: id
+ foreign-key: org_id
+ - table-name: deals
+ keys:
+ - key: last_activity_id
+ foreign-key: last_activity_id
+ - key: next_activity_id
+ foreign-key: last_activity_id
+ - key: last_activity_id
+ foreign-key: next_activity_id
+ - key: next_activity_id
+ foreign-key: next_activity_id
+ - key: id
+ foreign-key: org_id
+ - table-name: files
+ keys:
+ - key: last_activity_id
+ foreign-key: activity_id
+ - key: next_activity_id
+ foreign-key: activity_id
+ - key: id
+ foreign-key: org_id
+ - table-name: persons
+ keys:
+ - key: last_activity_id
+ foreign-key: last_activity_id
+ - key: next_activity_id
+ foreign-key: last_activity_id
+ - key: last_activity_id
+ foreign-key: next_activity_id
+ - key: next_activity_id
+ foreign-key: next_activity_id
+ - table-name: notes
+ keys:
+ - key: id
+ foreign-key: org_id
+- table-name: persons
+ join:
+ - table-name: activities
+ keys:
+ - key: last_activity_id
+ foreign-key: id
+ - key: next_activity_id
+ foreign-key: id
+ - key: id
+ foreign-key: participants.person_id
+ - key: id
+ foreign-key: person_id
+ - table-name: deals
+ keys:
+ - key: last_activity_id
+ foreign-key: last_activity_id
+ - key: next_activity_id
+ foreign-key: last_activity_id
+ - key: last_activity_id
+ foreign-key: next_activity_id
+ - key: next_activity_id
+ foreign-key: next_activity_id
+ - table-name: files
+ keys:
+ - key: last_activity_id
+ foreign-key: activity_id
+ - key: next_activity_id
+ foreign-key: activity_id
+ - key: id
+ foreign-key: person_id
+ - table-name: organizations
+ keys:
+ - key: last_activity_id
+ foreign-key: last_activity_id
+ - key: next_activity_id
+ foreign-key: last_activity_id
+ - key: last_activity_id
+ foreign-key: next_activity_id
+ - key: next_activity_id
+ foreign-key: next_activity_id
+ - table-name: notes
+ keys:
+ - key: id
+ foreign-key: person_id
+- table-name: deal_products
+ join:
+ - table-name: activities
+ keys:
+ - key: deal_id
+ foreign-key: deal_id
+ - table-name: deals
+ keys:
+ - key: deal_id
+ foreign-key: id
+ - table-name: files
+ keys:
+ - key: deal_id
+ foreign-key: deal_id
+ - key: product_id
+ foreign-key: product_id
+ - table-name: notes
+ keys:
+ - key: deal_id
+ foreign-key: deal_id
+ - table-name: products
+ keys:
+ - key: product_id
+ foreign-key: id
+- table-name: notes
+ join:
+ - table-name: activities
+ keys:
+ - key: deal_id
+ foreign-key: deal_id
+ - key: org_id
+ foreign-key: org_id
+ - key: person_id
+ foreign-key: participants.person_id
+ - key: person_id
+ foreign-key: person_id
+ - key: last_update_user_id
+ foreign-key: assigned_to_user_id
+ - key: user_id
+ foreign-key: assigned_to_user_id
+ - key: last_update_user_id
+ foreign-key: created_by_user_id
+ - key: user_id
+ foreign-key: created_by_user_id
+ - key: last_update_user_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: deals
+ keys:
+ - key: deal_id
+ foreign-key: id
+ - key: org_id
+ foreign-key: org_id
+ - key: last_update_user_id
+ foreign-key: creator_user_id
+ - key: user_id
+ foreign-key: creator_user_id
+ - key: last_update_user_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: deal_products
+ keys:
+ - key: deal_id
+ foreign-key: deal_id
+ - table-name: files
+ keys:
+ - key: deal_id
+ foreign-key: deal_id
+ - key: id
+ foreign-key: note_id
+ - key: org_id
+ foreign-key: org_id
+ - key: person_id
+ foreign-key: person_id
+ - key: last_update_user_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: organizations
+ keys:
+ - key: org_id
+ foreign-key: id
+ - table-name: persons
+ keys:
+ - key: person_id
+ foreign-key: id
+ - table-name: dealflow
+ keys:
+ - key: last_update_user_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: filters
+ keys:
+ - key: last_update_user_id
+ foreign-key: user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: users
+ keys:
+ - key: last_update_user_id
+ foreign-key: id
+ - key: user_id
+ foreign-key: id
+- table-name: filters
+ join:
+ - table-name: activities
+ keys:
+ - key: user_id
+ foreign-key: assigned_to_user_id
+ - key: user_id
+ foreign-key: created_by_user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: dealflow
+ keys:
+ - key: user_id
+ foreign-key: user_id
+ - table-name: deals
+ keys:
+ - key: user_id
+ foreign-key: creator_user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: files
+ keys:
+ - key: user_id
+ foreign-key: user_id
+ - table-name: notes
+ keys:
+ - key: user_id
+ foreign-key: last_update_user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: users
+ keys:
+ - key: user_id
+ foreign-key: id
+- table-name: pipelines
+ join:
+ - table-name: deals
+ keys:
+ - key: id
+ foreign-key: pipeline_id
+ - table-name: stages
+ keys:
+ - key: id
+ foreign-key: pipeline_id
+- table-name: stages
+ join:
+ - table-name: deals
+ keys:
+ - key: pipeline_id
+ foreign-key: pipeline_id
+ - key: id
+ foreign-key: stage_id
+ - table-name: pipelines
+ keys:
+ - key: pipeline_id
+ foreign-key: id
+- table-name: products
+ join:
+ - table-name: deal_products
+ keys:
+ - key: id
+ foreign-key: product_id
+ - table-name: files
+ keys:
+ - key: id
+ foreign-key: product_id
+- table-name: dealflow
+ join:
+ - table-name: activities
+ keys:
+ - key: user_id
+ foreign-key: assigned_to_user_id
+ - key: user_id
+ foreign-key: created_by_user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: deals
+ keys:
+ - key: user_id
+ foreign-key: creator_user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: files
+ keys:
+ - key: user_id
+ foreign-key: user_id
+ - table-name: filters
+ keys:
+ - key: user_id
+ foreign-key: user_id
+ - table-name: notes
+ keys:
+ - key: user_id
+ foreign-key: last_update_user_id
+ - key: user_id
+ foreign-key: user_id
+ - table-name: users
+ keys:
+ - key: user_id
+ foreign-key: id
+- table-name: users
+ join:
+ - table-name: activities
+ keys:
+ - key: id
+ foreign-key: assigned_to_user_id
+ - key: id
+ foreign-key: created_by_user_id
+ - key: id
+ foreign-key: user_id
+ - table-name: dealflow
+ keys:
+ - key: id
+ foreign-key: user_id
+ - table-name: deals
+ keys:
+ - key: id
+ foreign-key: creator_user_id
+ - key: id
+ foreign-key: user_id
+ - table-name: files
+ keys:
+ - key: id
+ foreign-key: user_id
+ - table-name: filters
+ keys:
+ - key: id
+ foreign-key: user_id
+ - table-name: notes
+ keys:
+ - key: id
+ foreign-key: last_update_user_id
+ - key: id
+ foreign-key: user_id
diff --git a/_data/taps/schemas/pipedrive/v1/pipedrive-v1-tables.yml b/_data/taps/schemas/pipedrive/v1/pipedrive-v1-tables.yml
new file mode 100644
index 000000000..4822b2e57
--- /dev/null
+++ b/_data/taps/schemas/pipedrive/v1/pipedrive-v1-tables.yml
@@ -0,0 +1,197 @@
+tap: pipedrive
+version: '1'
+tables:
+- name: activities
+ description: 'The `{{ table.name }}` table contains info about recent activities -
+ calls, tasks, lunches, etc. - recorded in your {{ integration.display_name }}
+ account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pipedrive/blob/master/tap_pipedrive/schemas/activities.json
+ api-method: https://developers.pipedrive.com/docs/api/v1/#!/Recents
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: update_time
+- name: activity_types
+ description: 'The `{{ table.name }}` table contains info about the different kinds
+ of activities in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developers.pipedrive.com/docs/api/v1/#!/ActivityTypes
+ singer-schema: https://github.com/singer-io/tap-pipedrive/blob/master/tap_pipedrive/schemas/activity_types.json
+ api-method: https://developers.pipedrive.com/docs/api/v1/#!/ActivityTypes/get_activityTypes
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: currency
+ description: 'The `{{ table.name }}` table contains info about the currencies listed
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pipedrive/blob/master/tap_pipedrive/schemas/currency.json
+ api-method: https://developers.pipedrive.com/docs/api/v1/#!/Currencies
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: dealflow
+ description: 'The `{{ table.name }}` table contains info about the updates made
+ to a deal.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pipedrive/blob/master/tap_pipedrive/schemas/dealflow.json
+ api-method: https://developers.pipedrive.com/docs/api/v1/#!/Deals/get_deals_id_flow
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: log_time
+- name: deals
+ description: 'The `{{ table.name }}` table contains info about updates made recently
+ to the deals in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pipedrive/blob/master/tap_pipedrive/schemas/recents/dynamic_typing/deals.json
+ api-method: https://developers.pipedrive.com/docs/api/v1/#!/Recents
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: update_time
+- name: deal_fields
+ description: 'The `{{ table.name }}` table contains info about all deal fields.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twilio/tree/master/tap_pipedrive/schemas/deal_fields.json
+ api-method: https://developers.pipedrive.com/docs/api/v1/DealFields#getDealFields
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: update_time
+- name: deal_products
+ description: 'The `{{ table.name }}` table contains info about the products attached
+ to deals.
+
+ '
+ links:
+ doc-link: https://developers.pipedrive.com/docs/api/v1/#!/Deals
+ singer-schema: https://github.com/singer-io/tap-pipedrive/blob/master/tap_pipedrive/schemas/deal_products.json
+ api-method: https://developers.pipedrive.com/docs/api/v1/#!/Deals/get_deals_id_products
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: files
+ description: 'The `{{ table.name }}` table contains info about the recently updated
+ files in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pipedrive/blob/master/tap_pipedrive/schemas/recents/files.json
+ api-method: https://developers.pipedrive.com/docs/api/v1/#!/Recents
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: update_time
+- name: filters
+ description: 'The `{{ table.name }}` table contains info about the filters, or data
+ validation conditions, used in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pipedrive/blob/master/tap_pipedrive/schemas/filters.json
+ api-method: https://developers.pipedrive.com/docs/api/v1/#!/Filters
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: notes
+ description: 'The `{{ table.name }}` table contains info about recent notes in your
+ {{ integration.display_name }} account. Notes are pieces of textual (HTML-formatted)
+ information that can be attached to [`deals`](#deals), [`persons`](#persons) and
+ [`organizations`](#organizations).
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pipedrive/blob/master/tap_pipedrive/schemas/recents/dynamic_typing/notes.json
+ api-method: https://developers.pipedrive.com/docs/api/v1/#!/Recents
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: update_time
+- name: organizations
+ description: 'The `{{ table.name }}` table contains info about the recent organizations
+ in your {{ integration.display_name }} account. Organizations are companies and
+ other types of organizations you are making deals with.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pipedrive/blob/master/tap_pipedrive/schemas/recents/dynamic_typing/organizations.json
+ api-method: https://developers.pipedrive.com/docs/api/v1/#!/Recents
+ table-details:
+ replication-method: ''
+ primary-key: id
+ replication-key: update_time
+- name: persons
+ description: 'The `{{ table.name }}` table contains info about the recent persons
+ in your {{ integration.display_name }} account. In {{ integration.display_name
+ }}, a person represents a contact, or a customer you''re doing a deal with.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pipedrive/blob/master/tap_pipedrive/schemas/recents/dynamic_typing/persons.json
+ api-method: https://developers.pipedrive.com/docs/api/v1/#!/Recents
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: update_time
+- name: pipelines
+ description: 'The `{{ table.name }}` table contains info about the pipelines in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pipedrive/blob/master/tap_pipedrive/schemas/pipelines.json
+ api-method: https://developers.pipedrive.com/docs/api/v1/#!/Pipelines
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: products
+ description: 'The `{{ table.name }}` table contains info about the recent products
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pipedrive/blob/master/tap_pipedrive/schemas/recents/dynamic_typing/products.json
+ api-method: https://developers.pipedrive.com/docs/api/v1/#!/Recents
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: update_time
+- name: stages
+ description: 'The `{{ table.name }}` table contains info about the pipeline stages
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pipedrive/blob/master/tap_pipedrive/schemas/stages.json
+ api-method: https://developers.pipedrive.com/docs/api/v1/#!/Stages/get_stages
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: users
+ description: 'The `{{ table.name }}` table contains info about the users associated
+ with your {{ integration.display_name }} account. **Note**: This table contains
+ info about the people with access to your {{ integration.display_name }} account
+ - they should not be confused with [`persons`](#persons).
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-pipedrive/blob/master/tap_pipedrive/schemas/recents/users.json
+ api-method: https://developers.pipedrive.com/docs/api/v1/#!/Recents
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/quickbooks/v1/json/accounts.json b/_data/taps/schemas/quickbooks/v1/json/accounts.json
new file mode 100644
index 000000000..5ab93f795
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/accounts.json
@@ -0,0 +1,181 @@
+{
+ "properties": {
+ "AccountAlias": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountSubType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AcctNum": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Classification": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrentBalance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "CurrentBalanceWithSubAccounts": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FullyQualifiedName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ParentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SubAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TxnLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/json/bill_payments.json b/_data/taps/schemas/quickbooks/v1/json/bill_payments.json
new file mode 100644
index 000000000..465b47d0d
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/bill_payments.json
@@ -0,0 +1,282 @@
+{
+ "properties": {
+ "APAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CheckPayment": {
+ "properties": {
+ "BankAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PrintStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CreditCardPayment": {
+ "properties": {
+ "CCAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepartmentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DocNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ExchangeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PayType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrivateNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ProcessBillPayment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "VendorRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/json/bills.json b/_data/taps/schemas/quickbooks/v1/json/bills.json
new file mode 100644
index 000000000..3baa1b9e6
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/bills.json
@@ -0,0 +1,780 @@
+{
+ "properties": {
+ "APAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepartmentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DocNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExchangeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "GlobalTaxCalculation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HomeBalance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInAnnualTPAR": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "AccountBasedExpenseLineDetail": {
+ "properties": {
+ "AccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "BillableStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "TaxAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ItemBasedExpenseLineDetail": {
+ "properties": {
+ "BillableStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Qty": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PrivateNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RecurDataRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SalesTermRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TxnTaxDetail": {
+ "properties": {
+ "TaxLine": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxLineDetail": {
+ "properties": {
+ "NetAmountTaxable": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "OverrideDeltaAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxInclusiveAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxRateRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "TotalTax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TxnTaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "VendorRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/json/budgets.json b/_data/taps/schemas/quickbooks/v1/json/budgets.json
new file mode 100644
index 000000000..ef8cd071e
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/budgets.json
@@ -0,0 +1,184 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "BudgetDetail": {
+ "items": {
+ "properties": {
+ "AccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BudgetDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepartmentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "BudgetEntryType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BudgetType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EndDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "StartDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/json/classes.json b/_data/taps/schemas/quickbooks/v1/json/classes.json
new file mode 100644
index 000000000..a867867b6
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/classes.json
@@ -0,0 +1,89 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "FullyQualifiedName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ParentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SubClass": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/json/credit_memos.json b/_data/taps/schemas/quickbooks/v1/json/credit_memos.json
new file mode 100644
index 000000000..471d2397c
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/credit_memos.json
@@ -0,0 +1,1278 @@
+{
+ "properties": {
+ "ApplyTaxAfterDiscount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Balance": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "BillAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "BillEmail": {
+ "properties": {
+ "Address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomField": {
+ "items": {
+ "DefinitionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "StringValue": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "CustomerMemo": {
+ "properties": {
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepartmentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DocNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EmailStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ExchangeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "GlobalTaxCalculation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HomeBalance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "HomeTotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "InvoiceRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DescriptionLineDetail": {
+ "properties": {
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "GroupLineDetail": {
+ "properties": {
+ "GroupItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "SalesItemLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DiscountRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Qty": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxClassificationRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Quantity": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "SalesItemLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DiscountRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Qty": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxClassificationRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SubtotalLineDetail": {
+ "properties": {
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PaymentMethodRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PrintStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrivateNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RecurDataRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "RemainingCredit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "SalesTermRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ShipAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxExemptionRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TxnTaxDetail": {
+ "properties": {
+ "TaxLine": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxLineDetail": {
+ "properties": {
+ "NetAmountTaxable": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "OverrideDeltaAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxInclusiveAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxRateRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "TotalTax": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "TxnTaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "patternProperties": {
+ "properties": {
+ ".+": {}
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/json/customers.json b/_data/taps/schemas/quickbooks/v1/json/customers.json
new file mode 100644
index 000000000..0c5a786d7
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/customers.json
@@ -0,0 +1,584 @@
+{
+ "properties": {
+ "ARAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "AlternatePhone": {
+ "properties": {
+ "FreeFormNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BalanceWithJobs": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BillAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "BillWithParent": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "BusinessNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CompanyName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomerTypeRef": {
+ "properties": {
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "DefaultTaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DisplayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FamilyName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Fax": {
+ "properties": {
+ "FreeFormNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "FullyQualifiedName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "GSTIN": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "GSTRegistrationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "GivenName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsProject": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Job": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Level": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "MiddleName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Mobile": {
+ "properties": {
+ "FreeFormNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "OpenBalanceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ParentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PaymentMethodRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PreferredDeliveryMethod": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrimaryEmailAddr": {
+ "properties": {
+ "Address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PrimaryPhone": {
+ "properties": {
+ "FreeFormNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PrimaryTaxIdentifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrintOnCheckName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ResaleNum": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTermRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SecondaryTaxIdentifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ShipAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Suffix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxExemptionReasonId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "WebAddr": {
+ "properties": {
+ "URI": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/json/deleted_objects.json b/_data/taps/schemas/quickbooks/v1/json/deleted_objects.json
new file mode 100644
index 000000000..a21023825
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/deleted_objects.json
@@ -0,0 +1,40 @@
+{
+ "properties": {
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/json/departments.json b/_data/taps/schemas/quickbooks/v1/json/departments.json
new file mode 100644
index 000000000..a515a1753
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/departments.json
@@ -0,0 +1,89 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "FullyQualifiedName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ParentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SubDepartment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/json/deposits.json b/_data/taps/schemas/quickbooks/v1/json/deposits.json
new file mode 100644
index 000000000..2ef0b6794
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/deposits.json
@@ -0,0 +1,552 @@
+{
+ "properties": {
+ "CashBack": {
+ "properties": {
+ "AccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Memo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepartmentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepositToAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ExchangeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "GlobalTaxCalculation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HomeTotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "CustomField": {
+ "properties": {
+ "DefinitionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "StringValue": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepositLineDetail": {
+ "properties": {
+ "AccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CheckNum": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Entity": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PaymentMethodRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxApplicableOn": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PrivateNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RecurDataRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TxnSource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnTaxDetail": {
+ "properties": {
+ "TaxLine": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxLineDetail": {
+ "properties": {
+ "NetAmountTaxable": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "OverrideDeltaAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxInclusiveAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxRateRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "TotalTax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TxnTaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/json/employees.json b/_data/taps/schemas/quickbooks/v1/json/employees.json
new file mode 100644
index 000000000..a6c9d75bf
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/employees.json
@@ -0,0 +1,281 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "BillRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BillableTime": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "BirthDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "CostRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DisplayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EmployeeNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FamilyName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Gender": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "GivenName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HiredDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "MiddleName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Mobile": {
+ "properties": {
+ "FreeFormNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Organization": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "PrimaryAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PrimaryEmailAddr": {
+ "properties": {
+ "Address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PrimaryPhone": {
+ "properties": {
+ "FreeFormNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PrintOnCheckName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReleasedDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "SSN": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Suffix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "V4IDPseudonym": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/json/estimates.json b/_data/taps/schemas/quickbooks/v1/json/estimates.json
new file mode 100644
index 000000000..326eb911b
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/estimates.json
@@ -0,0 +1,1415 @@
+{
+ "properties": {
+ "AcceptedBy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AcceptedDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ApplyTaxAfterDiscount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "BillAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "BillEmail": {
+ "properties": {
+ "Address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomField": {
+ "items": {
+ "DefinitionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "StringValue": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "CustomerMemo": {
+ "properties": {
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DeliveryInfo": {
+ "properties": {
+ "DeliveryTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DeliveryType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "DepartmentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DocNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "EmailStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ExchangeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ExpirationDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FreeFormAddress": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "GlobalTaxCalculation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HomeTotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DescriptionLineDetail": {
+ "properties": {
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "GroupLineDetail": {
+ "properties": {
+ "GroupItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "SalesItemLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DiscountRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Qty": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxClassificationRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Quantity": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "SalesItemLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DiscountRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Qty": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxClassificationRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "SubtotalLineDetail": {
+ "properties": {
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PrintStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrivateNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RecurDataRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SalesTermRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ShipAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ShipDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ShipFromAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ShipMethodRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxExemptionRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TxnStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnTaxDetail": {
+ "properties": {
+ "TaxLine": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxLineDetail": {
+ "properties": {
+ "NetAmountTaxable": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "OverrideDeltaAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxInclusiveAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxPercent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "TaxRateRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "TotalTax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TxnTaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "patternProperties": {
+ "properties": {
+ ".+": {}
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/json/invoices.json b/_data/taps/schemas/quickbooks/v1/json/invoices.json
new file mode 100644
index 000000000..b7c0d6838
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/invoices.json
@@ -0,0 +1,1530 @@
+{
+ "properties": {
+ "AllowIPNPayment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "AllowOnlineACHPayment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "AllowOnlineCreditCardPayment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "AllowOnlinePayment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ApplyTaxAfterDiscount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BillAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "BillEmail": {
+ "properties": {
+ "Address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BillEmailBcc": {
+ "properties": {
+ "Address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BillEmailCc": {
+ "properties": {
+ "Address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomField": {
+ "items": {
+ "DefinitionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "StringValue": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "CustomerMemo": {
+ "properties": {
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DeliveryInfo": {
+ "properties": {
+ "DeliveryTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DeliveryType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "DepartmentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Deposit": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DepositToAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DocNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "EmailStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ExchangeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "FreeFormAddress": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "GlobalTaxCalculation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HomeBalance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "HomeTotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "InvoiceLink": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DescriptionLineDetail": {
+ "properties": {
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountPercent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "GroupLineDetail": {
+ "properties": {
+ "GroupItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "SalesItemLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DiscountRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Qty": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxClassificationRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Quantity": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesItemLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DiscountRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Qty": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxClassificationRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "SubtotalLineDetail": {
+ "properties": {
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PrintStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrivateNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RecurDataRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SalesTermRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ShipAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ShipDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ShipFromAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ShipMethodRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxExemptionRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TrackingNum": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TxnSource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnTaxDetail": {
+ "properties": {
+ "TaxLine": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxLineDetail": {
+ "properties": {
+ "NetAmountTaxable": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "OverrideDeltaAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxInclusiveAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxRateRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "TotalTax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TxnTaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "patternProperties": {
+ "properties": {
+ ".+": {}
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/json/items.json b/_data/taps/schemas/quickbooks/v1/json/items.json
new file mode 100644
index 000000000..927f6fd3e
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/items.json
@@ -0,0 +1,376 @@
+{
+ "properties": {
+ "AbatementRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "AssetAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ExpenseAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "FullyQualifiedName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "InvStartDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ItemCategoryType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Level": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ParentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PrefVendorRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PurchaseCost": {
+ "type": [
+ "null",
+ "integer",
+ "number"
+ ]
+ },
+ "PurchaseDesc": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchaseTaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PurchaseTaxIncluded": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "QtyOnHand": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ReorderPoint": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ReverseChargeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "SalesTaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SalesTaxIncluded": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ServiceType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubItem": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxClassificationRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TrackQtyOnHand": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UQCDisplayText": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UQCId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "patternProperties": {
+ "properties": {
+ ".+": {}
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/json/journal_entries.json b/_data/taps/schemas/quickbooks/v1/json/journal_entries.json
new file mode 100644
index 000000000..85764734a
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/journal_entries.json
@@ -0,0 +1,533 @@
+{
+ "properties": {
+ "Adjustment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DocNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ExchangeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "GlobalTaxCalculation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HomeTotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "JournalCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DescriptionLineDetail": {
+ "properties": {
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "JournalEntryLineDetail": {
+ "properties": {
+ "AccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "BillableStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepartmentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Entity": {
+ "properties": {
+ "EntityRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "JournalCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PostingType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxApplicableOn": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PrivateNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RecurDataRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxRateRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TxnTaxDetail": {
+ "properties": {
+ "TaxLine": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxLineDetail": {
+ "properties": {
+ "NetAmountTaxable": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "OverrideDeltaAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxInclusiveAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxRateRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "TotalTax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TxnTaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/json/payment_methods.json b/_data/taps/schemas/quickbooks/v1/json/payment_methods.json
new file mode 100644
index 000000000..bd9c94ee2
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/payment_methods.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/json/payments.json b/_data/taps/schemas/quickbooks/v1/json/payments.json
new file mode 100644
index 000000000..e37f59e46
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/payments.json
@@ -0,0 +1,472 @@
+{
+ "properties": {
+ "ARAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CreditCardPayment": {
+ "properties": {
+ "CreditChargeInfo": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BillAddrStreet": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CcExpiryMonth": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "CcExpiryYear": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "NameOnAcct": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ProcessPayment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CreditChargeResponse": {
+ "properties": {
+ "AuthCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CCTransId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnAuthorizationTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepositToAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ExchangeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineEx": {
+ "properties": {
+ "any": {
+ "items": {
+ "properties": {
+ "declaredType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "globalScope": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nil": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "typeSubstituted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "value": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PaymentMethodRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PaymentRefNum": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrivateNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ProcessPayment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxExemptionRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TxnSource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UnappliedAmt": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/json/profit_loss_report.json b/_data/taps/schemas/quickbooks/v1/json/profit_loss_report.json
new file mode 100644
index 000000000..f02b6c92b
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/profit_loss_report.json
@@ -0,0 +1,27 @@
+{
+ "properties": {
+ "AccountingMethod": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ReportDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/json/purchase_orders.json b/_data/taps/schemas/quickbooks/v1/json/purchase_orders.json
new file mode 100644
index 000000000..70fc4525d
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/purchase_orders.json
@@ -0,0 +1,1042 @@
+{
+ "properties": {
+ "APAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomField": {
+ "items": {
+ "DefinitionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "StringValue": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "DepartmentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DocNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "EmailStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ExchangeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "GlobalTaxCalculation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "AccountBasedExpenseLineDetail": {
+ "properties": {
+ "AccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "BillableStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "TaxAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ItemBasedExpenseLineDetail": {
+ "properties": {
+ "BillableStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Qty": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Memo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "POEmail": {
+ "properties": {
+ "Address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "POStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrivateNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RecurDataRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SalesTermRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ShipAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ShipMethodRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ShipTo": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TxnTaxDetail": {
+ "properties": {
+ "TaxLine": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxLineDetail": {
+ "properties": {
+ "NetAmountTaxable": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "OverrideDeltaAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxInclusiveAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxRateRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "TotalTax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TxnTaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "VendorAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "VendorRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/json/purchases.json b/_data/taps/schemas/quickbooks/v1/json/purchases.json
new file mode 100644
index 000000000..258bbdaec
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/purchases.json
@@ -0,0 +1,959 @@
+{
+ "properties": {
+ "AccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Credit": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepartmentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DocNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EntityRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ExchangeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "GlobalTaxCalculation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInAnnualTPAR": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "AccountBasedExpenseLineDetail": {
+ "properties": {
+ "AccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "BillableStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "TaxAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ItemBasedExpenseLineDetail": {
+ "properties": {
+ "BillableStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Qty": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PaymentMethodRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PaymentType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrintStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrivateNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchaseEx": {
+ "properties": {
+ "any": {
+ "items": {
+ "properties": {
+ "declaredType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "globalScope": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nil": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "typeSubstituted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "value": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "RecurDataRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "RemitToAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TxnSource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnTaxDetail": {
+ "properties": {
+ "TaxLine": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxLineDetail": {
+ "properties": {
+ "NetAmountTaxable": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "OverrideDeltaAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxInclusiveAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxRateRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "TotalTax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TxnTaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "patternProperties": {
+ "properties": {
+ ".+": {}
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/json/refund_receipts.json b/_data/taps/schemas/quickbooks/v1/json/refund_receipts.json
new file mode 100644
index 000000000..3602d712a
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/refund_receipts.json
@@ -0,0 +1,1406 @@
+{
+ "properties": {
+ "ApplyTaxAfterDiscount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Balance": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "BillAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "BillEmail": {
+ "properties": {
+ "Address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CheckPayment": {
+ "properties": {
+ "AcctNum": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CheckNum": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "NameOnAcct": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CreditCardPayment": {
+ "properties": {
+ "CreditChargeInfo": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BillAddrStreet": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CcExpiryMonth": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "CcExpiryYear": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "NameOnAcct": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ProcessPayment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CreditChargeResponse": {
+ "properties": {
+ "AuthCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CCTransId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnAuthorizationTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomField": {
+ "items": {
+ "DefinitionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "StringValue": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "CustomerMemo": {
+ "properties": {
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepartmentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepositToAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DocNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ExchangeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "FreeFormAddress": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "GlobalTaxCalculation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HomeBalance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "HomeTotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DescriptionLineDetail": {
+ "properties": {
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "GroupLineDetail": {
+ "properties": {
+ "GroupItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "SalesItemLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DiscountRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Qty": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxClassificationRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Quantity": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "SalesItemLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DiscountRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Qty": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxClassificationRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "SubtotalLineDetail": {
+ "properties": {
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PaymentMethodRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PaymentRefNum": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrintStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrivateNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RecurDataRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ShipAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxExemptionRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TxnSource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnTaxDetail": {
+ "properties": {
+ "TaxLine": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxLineDetail": {
+ "properties": {
+ "NetAmountTaxable": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "OverrideDeltaAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxInclusiveAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxRateRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "TotalTax": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "TxnTaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "patternProperties": {
+ "properties": {
+ ".+": {}
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/json/sales_receipts.json b/_data/taps/schemas/quickbooks/v1/json/sales_receipts.json
new file mode 100644
index 000000000..a02ef16a2
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/sales_receipts.json
@@ -0,0 +1,1512 @@
+{
+ "properties": {
+ "ApplyTaxAfterDiscount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Balance": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "BillAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "BillEmail": {
+ "properties": {
+ "Address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CreditCardPayment": {
+ "properties": {
+ "CreditChargeInfo": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BillAddrStreet": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CcExpiryMonth": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "CcExpiryYear": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "NameOnAcct": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ProcessPayment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CreditChargeResponse": {
+ "properties": {
+ "AuthCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CCTransId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnAuthorizationTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomField": {
+ "items": {
+ "DefinitionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "StringValue": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "CustomerMemo": {
+ "properties": {
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DeliveryInfo": {
+ "properties": {
+ "DeliveryTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DeliveryType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "DepartmentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepositToAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DocNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EmailStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ExchangeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "FreeFormAddress": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "GlobalTaxCalculation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HomeBalance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "HomeTotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DescriptionLineDetail": {
+ "properties": {
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountPercent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "GroupLineDetail": {
+ "properties": {
+ "GroupItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "SalesItemLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DiscountRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Qty": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxClassificationRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Quantity": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "SalesItemLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DiscountRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Qty": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxClassificationRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "SubtotalLineDetail": {
+ "properties": {
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PaymentMethodRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PaymentRefNum": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrintStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrivateNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RecurDataRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ShipAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ShipDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ShipFromAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ShipMethodRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TrackingNum": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TxnSource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnTaxDetail": {
+ "properties": {
+ "TaxLine": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxLineDetail": {
+ "properties": {
+ "NetAmountTaxable": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "OverrideDeltaAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxInclusiveAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxRateRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "TotalTax": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "TxnTaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "patternProperties": {
+ "properties": {
+ ".+": {}
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/json/tax_agencies.json b/_data/taps/schemas/quickbooks/v1/json/tax_agencies.json
new file mode 100644
index 000000000..bfdfb86ac
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/tax_agencies.json
@@ -0,0 +1,82 @@
+{
+ "properties": {
+ "DisplayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LastFileDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxAgencyConfig": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxRegistrationNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxTrackedOnPurchases": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxTrackedOnSales": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/json/tax_codes.json b/_data/taps/schemas/quickbooks/v1/json/tax_codes.json
new file mode 100644
index 000000000..15efc1bdd
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/tax_codes.json
@@ -0,0 +1,194 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchaseTaxRateList": {
+ "properties": {
+ "TaxRateDetail": {
+ "items": {
+ "properties": {
+ "TaxOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "TaxRateRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxTypeApplicable": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "SalesTaxRateList": {
+ "properties": {
+ "TaxRateDetail": {
+ "items": {
+ "properties": {
+ "TaxOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "TaxRateRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxTypeApplicable": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxCodeConfigType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxGroup": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/json/tax_rates.json b/_data/taps/schemas/quickbooks/v1/json/tax_rates.json
new file mode 100644
index 000000000..485e0aa68
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/tax_rates.json
@@ -0,0 +1,188 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "AgencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DisplayType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EffectiveTaxRate": {
+ "anyOf": [
+ {
+ "properties": {
+ "EffectiveDate ": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "EndDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "RateValue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ {
+ "items": {
+ "properties": {
+ "EffectiveDate ": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "EndDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "RateValue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "OriginalTaxRate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RateValue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "SpecialTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxReturnLineRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/json/terms.json b/_data/taps/schemas/quickbooks/v1/json/terms.json
new file mode 100644
index 000000000..7df31d1de
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/terms.json
@@ -0,0 +1,100 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "DayOfMonthDue": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "DiscountDayOfMonth": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "DiscountDays": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "DiscountPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DueDays": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "DueNextMonthDays": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/json/time_activities.json b/_data/taps/schemas/quickbooks/v1/json/time_activities.json
new file mode 100644
index 000000000..644b2e032
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/time_activities.json
@@ -0,0 +1,271 @@
+{
+ "properties": {
+ "BillableStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BreakHours": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "BreakMinutes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CostRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepartmentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EmployeeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "EndTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HourlyRate": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Hours": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Minutes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "NameOf": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PayrollItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "StartTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "VendorRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "patternProperties": {
+ "properties": {
+ ".+": {}
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/json/transfers.json b/_data/taps/schemas/quickbooks/v1/json/transfers.json
new file mode 100644
index 000000000..bdf8ff349
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/transfers.json
@@ -0,0 +1,152 @@
+{
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ExchangeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "FromAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PrivateNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RecurDataRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ToAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/json/vendor_credits.json b/_data/taps/schemas/quickbooks/v1/json/vendor_credits.json
new file mode 100644
index 000000000..0f47ded1f
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/vendor_credits.json
@@ -0,0 +1,634 @@
+{
+ "properties": {
+ "APAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepartmentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DocNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ExchangeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "GlobalTaxCalculation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInAnnualTPAR": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "AccountBasedExpenseLineDetail": {
+ "properties": {
+ "AccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "BillableStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "TaxAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ItemBasedExpenseLineDetail": {
+ "properties": {
+ "BillableStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Qty": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PrivateNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RecurDataRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "VendorRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/json/vendors.json b/_data/taps/schemas/quickbooks/v1/json/vendors.json
new file mode 100644
index 000000000..ef3782842
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/json/vendors.json
@@ -0,0 +1,459 @@
+{
+ "properties": {
+ "APAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "AcctNum": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "AlternatePhone": {
+ "properties": {
+ "FreeFormNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BillAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "BillRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BusinessNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CompanyName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CostRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DisplayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FamilyName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Fax": {
+ "properties": {
+ "FreeFormNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "GSTIN": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "GSTRegistrationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "GivenName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasTPAR": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "MiddleName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Mobile": {
+ "properties": {
+ "FreeFormNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "OtherContactInfo": {
+ "properties": {
+ "Telephone": {},
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PrimaryEmailAddr": {
+ "properties": {
+ "Address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PrimaryPhone": {
+ "properties": {
+ "FreeFormNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PrintOnCheckName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Suffix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "T4AEligible": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "T5018Eligible": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxIdentifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxReportingBasis": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TermRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Vendor1099": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "VendorPaymentBankDetail": {
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankBranchIdentifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "StatementText": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "WebAddr": {
+ "properties": {
+ "URI": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "patternProperties": {
+ "properties": {
+ ".+": {}
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v1/quickbooks-v1-foreign-keys.yml b/_data/taps/schemas/quickbooks/v1/quickbooks-v1-foreign-keys.yml
new file mode 100644
index 000000000..228335306
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/quickbooks-v1-foreign-keys.yml
@@ -0,0 +1,5853 @@
+tap: quickbooks
+version: '1'
+keys:
+ accounts_value:
+ - table: accounts
+ keys:
+ - Id
+ - ParentRef.value
+ - table: bill_payments
+ keys:
+ - APAccountRef.value
+ - CheckPayment.BankAccountRef.value
+ - CreditCardPayment.CCAccountRef.value
+ - table: bills
+ keys:
+ - APAccountRef.value
+ - Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - table: budgets
+ keys:
+ - BudgetDetail.AccountRef.value
+ - table: deposits
+ keys:
+ - CashBack.AccountRef.value
+ - DepositToAccountRef.value
+ - Line.DepositLineDetail.AccountRef.value
+ - table: invoices
+ keys:
+ - DepositToAccountRef.value
+ - Line.DiscountLineDetail.DiscountAccountRef.value
+ - table: items
+ keys:
+ - AssetAccountRef.value
+ - ExpenseAccountRef.value
+ - IncomeAccountRef.value
+ - table: journal_entries
+ keys:
+ - Line.JournalEntryLineDetail.AccountRef.value
+ - table: payments
+ keys:
+ - DepositToAccountRef.value
+ - table: purchase_orders
+ keys:
+ - APAccountRef.value
+ - table: purchases
+ keys:
+ - AccountRef.value
+ - Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - table: refund_receipts
+ keys:
+ - DepositToAccountRef.value
+ - table: sales_receipts
+ keys:
+ - DepositToAccountRef.value
+ - Line.DiscountLineDetail.DiscountAccountRef.value
+ - table: transfers
+ keys:
+ - FromAccountRef.value
+ - ToAccountRef.value
+ - table: vendor_credits
+ keys:
+ - APAccountRef.value
+ - Line.AccountBasedExpenseLineDetail.AccountRef.value
+ bill_payments_:
+ - table: bill_payments
+ keys:
+ - Id
+ - table: bills
+ keys:
+ - LinkedTxn.TxnId
+ bills_LinkedTxn.TxnId:
+ - table: bill_payments
+ keys:
+ - Line.LinkedTxn.TxnId
+ - table: bills
+ keys:
+ - Id
+ - table: purchase_orders
+ keys:
+ - LinkedTxn.TxnId
+ classes_ClassRef.value:
+ - table: budgets
+ keys:
+ - BudgetDetail.ClassRef.value
+ - table: classes
+ keys:
+ - Id
+ - ParentRef.value
+ - table: credit_memos
+ keys:
+ - ClassRef.value
+ - table: estimates
+ keys:
+ - ClassRef.value
+ - table: invoices
+ keys:
+ - ClassRef.value
+ - Line.SalesItemLineDetail.ClassRef.value
+ - table: items
+ keys:
+ - ClassRef.value
+ - table: purchase_orders
+ keys:
+ - ClassRef.value
+ - Line.ItemBasedExpenseLineDetail.ClassRef.value
+ - table: purchases
+ keys:
+ - Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - table: refund_receipts
+ keys:
+ - ClassRef.value
+ - table: sales_receipts
+ keys:
+ - ClassRef.value
+ - table: time_activities
+ keys:
+ - ClassRef.value
+ - table: vendor_credits
+ keys:
+ - Line.AccountBasedExpenseLineDetail.ClassRef.value
+ credit_memos_value:
+ - table: credit_memos
+ keys:
+ - Id
+ - table: payments
+ keys:
+ - Line.LinkedTxn.TxnId
+ _CurrencyRef.value:
+ - table: accounts
+ keys:
+ - CurrencyRef.value
+ - table: bill_payments
+ keys:
+ - CurrencyRef.value
+ - table: bills
+ keys:
+ - CurrencyRef.value
+ - table: credit_memos
+ keys:
+ - CurrencyRef.value
+ - table: customers
+ keys:
+ - CurrencyRef.value
+ - table: deposits
+ keys:
+ - CurrencyRef.value
+ - table: estimates
+ keys:
+ - CurrencyRef.value
+ - table: invoices
+ keys:
+ - CurrencyRef.value
+ - table: journal_entries
+ keys:
+ - CurrencyRef.value
+ - table: payments
+ keys:
+ - CurrencyRef.value
+ - table: purchase_orders
+ keys:
+ - CurrencyRef.value
+ - table: purchases
+ keys:
+ - CurrencyRef.value
+ - table: refund_receipts
+ keys:
+ - CurrencyRef.value
+ - table: sales_receipts
+ keys:
+ - CurrencyRef.value
+ - table: transfers
+ keys:
+ - CurrencyRef.value
+ - table: vendor_credits
+ keys:
+ - CurrencyRef.value
+ - table: vendors
+ keys:
+ - CurrencyRef.value
+ customers_CustomerRef.value:
+ - table: bills
+ keys:
+ - Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - table: budgets
+ keys:
+ - BudgetDetail.CustomerRef.value
+ - table: credit_memos
+ keys:
+ - CustomerRef.value
+ - table: customers
+ keys:
+ - Id
+ - table: estimates
+ keys:
+ - CustomerRef.value
+ - table: invoices
+ keys:
+ - CustomerRef.value
+ - table: payments
+ keys:
+ - CustomerRef.value
+ - table: purchase_orders
+ keys:
+ - Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ - table: purchases
+ keys:
+ - Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - table: refund_receipts
+ keys:
+ - CustomerRef.value
+ - table: sales_receipts
+ keys:
+ - CustomerRef.value
+ - table: vendor_credits
+ keys:
+ - Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ departments_DepartmentRef.value:
+ - table: bills
+ keys:
+ - DepartmentRef.value
+ - table: bill_payments
+ keys:
+ - DepartmentRef.value
+ - table: budgets
+ keys:
+ - BudgetDetail.DepartmentRef.value
+ - table: departments
+ keys:
+ - ParentRef.value
+ - Id
+ - table: deposits
+ keys:
+ - DepartmentRef.value
+ - table: estimates
+ keys:
+ - DepartmentRef.value
+ - table: invoices
+ keys:
+ - DepartmentRef.value
+ - table: purchase_orders
+ keys:
+ - DepartmentRef.value
+ - table: purchases
+ keys:
+ - DepartmentRef.value
+ - table: refund_receipts
+ keys:
+ - DepartmentRef.value
+ - table: sales_receipts
+ keys:
+ - DepartmentRef.value
+ - table: time_activities
+ keys:
+ - DepartmentRef.value
+ - table: vendor_credits
+ keys:
+ - DepartmentRef.value
+ deposits_value:
+ - table: deposits
+ keys:
+ - Id
+ employees_value:
+ - table: employees
+ keys:
+ - Id
+ - table: purchases
+ keys:
+ - EntityRef.value
+ - table: time_activities
+ keys:
+ - EmployeeRef.value
+ estimates_value:
+ - table: estimates
+ keys:
+ - Id
+ - table: invoices
+ keys:
+ - LinkedTxn.TxnId
+ invoices_LinkedTxn.TxnId:
+ - table: estimates
+ keys:
+ - LinkedTxn.TxnId
+ - table: invoices
+ keys:
+ - Id
+ - table: payments
+ keys:
+ - Line.LinkedTxn.TxnId
+ items_ItemRef.value:
+ - table: bills
+ keys:
+ - Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - table: credit_memos
+ keys:
+ - Line.SalesItemLineDetail.ItemRef.value
+ - table: estimates
+ keys:
+ - Line.SalesItemLineDetail.ItemRef.value
+ - table: invoices
+ keys:
+ - Line.SalesItemLineDetail.ItemRef.value
+ - table: items
+ keys:
+ - Id
+ - ParentRef.value
+ - table: purchase_orders
+ keys:
+ - Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - table: purchases
+ keys:
+ - Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - table: refund_receipts
+ keys:
+ - Line.SalesItemLineDetail.ItemRef.value
+ - table: sales_receipts
+ keys:
+ - Line.SalesItemLineDetail.ItemRef.value
+ - table: time_activities
+ keys:
+ - ItemRef.value
+ journal_entries_LinkedTxn.TxnId:
+ - table: bill_payments
+ keys:
+ - Line.LinkedTxn.TxnId
+ - table: deposits
+ keys:
+ - Line.LinkedTxn.TxnId
+ - table: journal_entries
+ keys:
+ - Id
+ payments_LinkedTxn.TxnId:
+ - table: deposits
+ keys:
+ - Line.LinkedTxn.TxnId
+ - table: invoices
+ keys:
+ - LinkedTxn.TxnId
+ - table: payments
+ keys:
+ - Id
+ payment_methods_PaymentMethodRef.value:
+ - table: customers
+ keys:
+ - PaymentMethodRef.value
+ - table: deposits
+ keys:
+ - Line.DepositLineDetail.PaymentMethodRef.value
+ - table: payment_methods
+ keys:
+ - Id
+ - table: payments
+ keys:
+ - PaymentMethodRef.value
+ - table: purchases
+ keys:
+ - PaymentMethodRef.value
+ - table: refund_receipts
+ keys:
+ - PaymentMethodRef.value
+ - table: sales_receipts
+ keys:
+ - PaymentMethodRef.value
+ purchases_LinkedTxn.TxnId:
+ - table: invoices
+ keys:
+ - LinkedTxn.TxnId
+ - table: payments
+ keys:
+ - Line.LinkedTxn.TxnId
+ - table: purchases
+ keys:
+ - Id
+ purchase_orders_value:
+ - table: bills
+ keys:
+ - LinkedTxn.TxnId
+ - table: purchase_orders
+ keys:
+ - Id
+ refund_receipts_LinkedTxn.TxnId:
+ - table: deposits
+ keys:
+ - Line.LinkedTxn.TxnId
+ - table: refund_receipts
+ keys:
+ - Id
+ sales_receipts_LinkedTxn.TxnId:
+ - table: deposits
+ keys:
+ - Line.LinkedTxn.TxnId
+ - table: sales_receipts
+ keys:
+ - Id
+ tax_agencies_value:
+ - table: tax_agencies
+ keys:
+ - Id
+ - table: tax_rates
+ keys:
+ - AgencyRef.value
+ tax_codes_TaxCodeRef.value:
+ - table: bills
+ keys:
+ - Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table: credit_memos
+ keys:
+ - Line.SalesItemLineDetail.TaxCodeRef.value
+ - table: customers
+ keys:
+ - DefaultTaxCodeRef.value
+ - table: estimates
+ keys:
+ - Line.SalesItemLineDetail.TaxCodeRef.value
+ - TxnTaxDetail.TxnTaxCodeRef.value
+ - table: invoices
+ keys:
+ - Line.SalesItemLineDetail.TaxCodeRef.value
+ - TxnTaxDetail.TxnTaxCodeRef.value
+ - table: items
+ keys:
+ - PurchaseTaxCodeRef.value
+ - SalesTaxCodeRef.value
+ - table: journal_entries
+ keys:
+ - TxnTaxDetail.TxnTaxCodeRef.value
+ - table: purchase_orders
+ keys:
+ - Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table: purchases
+ keys:
+ - Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table: refund_receipts
+ keys:
+ - Line.SalesItemLineDetail.TaxCodeRef.value
+ - table: sales_receipts
+ keys:
+ - Line.SalesItemLineDetail.TaxCodeRef.value
+ - table: vendor_credits
+ keys:
+ - Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ tax_rates_TaxRateRef.value:
+ - table: estimates
+ keys:
+ - TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - table: invoices
+ keys:
+ - TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - table: journal_entries
+ keys:
+ - TaxRateRef.value
+ - TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - table: tax_codes
+ keys:
+ - PurchaseTaxRateList.TaxRateDetail.TaxRateRef.value
+ - SalesTaxRateList.TaxRateDetail.TaxRateRef.value
+ - table: tax_rates
+ keys:
+ - Id
+ terms_SalesTermRef.value:
+ - table: bills
+ keys:
+ - SalesTermRef.value
+ - table: credit_memos
+ keys:
+ - SalesTermRef.value
+ - table: customers
+ keys:
+ - SalesTermRef.value
+ - table: estimates
+ keys:
+ - SalesTermRef.value
+ - table: invoices
+ keys:
+ - SalesTermRef.value
+ - table: purchase_orders
+ keys:
+ - SalesTermRef.value
+ - table: terms
+ keys:
+ - Id
+ time_activities_value:
+ - table: invoices
+ keys:
+ - LinkedTxn.TxnId
+ - table: time_activities
+ keys:
+ - Id
+ bill_payments_Id:
+ - table: bills
+ keys:
+ - Id
+ - table: journal_entries
+ keys:
+ - Id
+ - table: vendor_credits
+ keys:
+ - Id
+ bills_Id:
+ - table: bill_payments
+ keys:
+ - Id
+ - table: purchase_orders
+ keys:
+ - Id
+ deposits_Id:
+ - table: journal_entries
+ keys:
+ - Id
+ - table: payments
+ keys:
+ - Id
+ - table: refund_receipts
+ keys:
+ - Id
+ - table: sales_receipts
+ keys:
+ - Id
+ - table: transfers
+ keys:
+ - Id
+ invoices_Id:
+ - table: estimates
+ keys:
+ - Id
+ - table: payments
+ keys:
+ - Id
+ - table: purchases
+ keys:
+ - Id
+ - table: time_activities
+ keys:
+ - Id
+ payments_Id:
+ - table: credit_memos
+ keys:
+ - Id
+ - table: invoices
+ keys:
+ - Id
+ - table: purchases
+ keys:
+ - Id
+ transfers_LinkedTxn.TxnId:
+ - table: deposits
+ keys:
+ - Line.LinkedTxn.TxnId
+ - table: transfers
+ keys:
+ - Id
+ vendor_credits_:
+ - table: bill_payments
+ keys:
+ - Line.LinkedTxn.TxnId
+ - table: vendor_credits
+ keys:
+ - Id
+ vendors_VendorRef.value:
+ - table: bill_payments
+ keys:
+ - VendorRef.value
+ - table: bills
+ keys:
+ - VendorRef.value
+ - table: items
+ keys:
+ - PrefVendorRef.value
+ - table: purchase_orders
+ keys:
+ - VendorRef.value
+ - table: time_activities
+ keys:
+ - VendorRef.value
+ - table: vendor_credits
+ keys:
+ - VendorRef.value
+ - table: vendors
+ keys:
+ - Id
+tables:
+- table-name: accounts
+ join:
+ - table-name: bill_payments
+ keys:
+ - key: Id
+ foreign-key: APAccountRef.value
+ - key: ParentRef.value
+ foreign-key: APAccountRef.value
+ - key: Id
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: ParentRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: Id
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: ParentRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bills
+ keys:
+ - key: Id
+ foreign-key: APAccountRef.value
+ - key: ParentRef.value
+ foreign-key: APAccountRef.value
+ - key: Id
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ParentRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: budgets
+ keys:
+ - key: Id
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: ParentRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - table-name: deposits
+ keys:
+ - key: Id
+ foreign-key: CashBack.AccountRef.value
+ - key: ParentRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: Id
+ foreign-key: DepositToAccountRef.value
+ - key: ParentRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Id
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: ParentRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: invoices
+ keys:
+ - key: Id
+ foreign-key: DepositToAccountRef.value
+ - key: ParentRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Id
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: ParentRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: items
+ keys:
+ - key: Id
+ foreign-key: AssetAccountRef.value
+ - key: ParentRef.value
+ foreign-key: AssetAccountRef.value
+ - key: Id
+ foreign-key: ExpenseAccountRef.value
+ - key: ParentRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: Id
+ foreign-key: IncomeAccountRef.value
+ - key: ParentRef.value
+ foreign-key: IncomeAccountRef.value
+ - table-name: journal_entries
+ keys:
+ - key: Id
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: ParentRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: payments
+ keys:
+ - key: Id
+ foreign-key: DepositToAccountRef.value
+ - key: ParentRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: Id
+ foreign-key: APAccountRef.value
+ - key: ParentRef.value
+ foreign-key: APAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: purchases
+ keys:
+ - key: Id
+ foreign-key: AccountRef.value
+ - key: ParentRef.value
+ foreign-key: AccountRef.value
+ - key: Id
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ParentRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: Id
+ foreign-key: DepositToAccountRef.value
+ - key: ParentRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: Id
+ foreign-key: DepositToAccountRef.value
+ - key: ParentRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Id
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: ParentRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: transfers
+ keys:
+ - key: Id
+ foreign-key: FromAccountRef.value
+ - key: ParentRef.value
+ foreign-key: FromAccountRef.value
+ - key: Id
+ foreign-key: ToAccountRef.value
+ - key: ParentRef.value
+ foreign-key: ToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: vendor_credits
+ keys:
+ - key: Id
+ foreign-key: APAccountRef.value
+ - key: ParentRef.value
+ foreign-key: APAccountRef.value
+ - key: Id
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ParentRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: credit_memos
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: estimates
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+- table-name: bill_payments
+ join:
+ - table-name: accounts
+ keys:
+ - key: APAccountRef.value
+ foreign-key: Id
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: Id
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: Id
+ - key: APAccountRef.value
+ foreign-key: ParentRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: ParentRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: ParentRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bills
+ keys:
+ - key: APAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Id
+ foreign-key: LinkedTxn.TxnId
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: Id
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: budgets
+ keys:
+ - key: APAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: DepartmentRef.value
+ foreign-key: BudgetDetail.DepartmentRef.value
+ - table-name: deposits
+ keys:
+ - key: APAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: Line.LinkedTxn.TxnId
+ - table-name: invoices
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: items
+ keys:
+ - key: APAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: VendorRef.value
+ foreign-key: PrefVendorRef.value
+ - table-name: journal_entries
+ keys:
+ - key: APAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: Id
+ - table-name: payments
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: APAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: LinkedTxn.TxnId
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: Id
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: purchases
+ keys:
+ - key: APAccountRef.value
+ foreign-key: AccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: AccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: AccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: transfers
+ keys:
+ - key: APAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: vendor_credits
+ keys:
+ - key: APAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: Id
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: credit_memos
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: estimates
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: VendorRef.value
+ foreign-key: Id
+ - table-name: departments
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: ParentRef.value
+ - key: DepartmentRef.value
+ foreign-key: Id
+ - table-name: time_activities
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+- table-name: bills
+ join:
+ - table-name: accounts
+ keys:
+ - key: APAccountRef.value
+ foreign-key: Id
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Id
+ - key: APAccountRef.value
+ foreign-key: ParentRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: ParentRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: APAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: LinkedTxn.TxnId
+ foreign-key: Id
+ - key: Id
+ foreign-key: Line.LinkedTxn.TxnId
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: budgets
+ keys:
+ - key: APAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: BudgetDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: BudgetDetail.DepartmentRef.value
+ - table-name: deposits
+ keys:
+ - key: APAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: invoices
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: items
+ keys:
+ - key: APAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Id
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: ParentRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - key: VendorRef.value
+ foreign-key: PrefVendorRef.value
+ - table-name: journal_entries
+ keys:
+ - key: APAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: payments
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: APAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Id
+ foreign-key: LinkedTxn.TxnId
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: LinkedTxn.TxnId
+ foreign-key: Id
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: purchases
+ keys:
+ - key: APAccountRef.value
+ foreign-key: AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: AccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: transfers
+ keys:
+ - key: APAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: vendor_credits
+ keys:
+ - key: APAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: credit_memos
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Id
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: estimates
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: VendorRef.value
+ foreign-key: Id
+ - table-name: departments
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: ParentRef.value
+ - key: DepartmentRef.value
+ foreign-key: Id
+ - table-name: time_activities
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: ItemRef.value
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: terms
+ keys:
+ - key: SalesTermRef.value
+ foreign-key: Id
+- table-name: budgets
+ join:
+ - table-name: accounts
+ keys:
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: Id
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: ParentRef.value
+ - table-name: bill_payments
+ keys:
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: BudgetDetail.DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: bills
+ keys:
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: BudgetDetail.CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: BudgetDetail.DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: deposits
+ keys:
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: BudgetDetail.DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: invoices
+ keys:
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: BudgetDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: BudgetDetail.ClassRef.value
+ foreign-key: Line.SalesItemLineDetail.ClassRef.value
+ - key: BudgetDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: BudgetDetail.DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: items
+ keys:
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: BudgetDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - table-name: journal_entries
+ keys:
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - table-name: payments
+ keys:
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: BudgetDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: BudgetDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: BudgetDetail.ClassRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ - key: BudgetDetail.CustomerRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ - key: BudgetDetail.DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: purchases
+ keys:
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: AccountRef.value
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: BudgetDetail.ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: BudgetDetail.CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: BudgetDetail.DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: BudgetDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: BudgetDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: BudgetDetail.DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: BudgetDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: BudgetDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: BudgetDetail.DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: transfers
+ keys:
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: ToAccountRef.value
+ - table-name: vendor_credits
+ keys:
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: BudgetDetail.ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: BudgetDetail.CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: BudgetDetail.DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: classes
+ keys:
+ - key: BudgetDetail.ClassRef.value
+ foreign-key: Id
+ - key: BudgetDetail.ClassRef.value
+ foreign-key: ParentRef.value
+ - table-name: credit_memos
+ keys:
+ - key: BudgetDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: BudgetDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - table-name: estimates
+ keys:
+ - key: BudgetDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: BudgetDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: BudgetDetail.DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: time_activities
+ keys:
+ - key: BudgetDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: BudgetDetail.DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: customers
+ keys:
+ - key: BudgetDetail.CustomerRef.value
+ foreign-key: Id
+ - table-name: departments
+ keys:
+ - key: BudgetDetail.DepartmentRef.value
+ foreign-key: ParentRef.value
+ - key: BudgetDetail.DepartmentRef.value
+ foreign-key: Id
+- table-name: deposits
+ join:
+ - table-name: accounts
+ keys:
+ - key: CashBack.AccountRef.value
+ foreign-key: Id
+ - key: DepositToAccountRef.value
+ foreign-key: Id
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: Id
+ - key: CashBack.AccountRef.value
+ foreign-key: ParentRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: ParentRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: ParentRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: CashBack.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: CashBack.AccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: CashBack.AccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: Line.LinkedTxn.TxnId
+ - table-name: bills
+ keys:
+ - key: CashBack.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: CashBack.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: budgets
+ keys:
+ - key: CashBack.AccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: DepartmentRef.value
+ foreign-key: BudgetDetail.DepartmentRef.value
+ - table-name: invoices
+ keys:
+ - key: CashBack.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CashBack.AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: LinkedTxn.TxnId
+ - table-name: items
+ keys:
+ - key: CashBack.AccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: CashBack.AccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: CashBack.AccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - table-name: journal_entries
+ keys:
+ - key: CashBack.AccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: Id
+ - table-name: payments
+ keys:
+ - key: CashBack.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: Id
+ - key: Line.DepositLineDetail.PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: CashBack.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: purchases
+ keys:
+ - key: CashBack.AccountRef.value
+ foreign-key: AccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: AccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: AccountRef.value
+ - key: CashBack.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.DepositLineDetail.PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: CashBack.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.DepositLineDetail.PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: Id
+ - table-name: sales_receipts
+ keys:
+ - key: CashBack.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CashBack.AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.DepositLineDetail.PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: Id
+ - table-name: transfers
+ keys:
+ - key: CashBack.AccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: CashBack.AccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: Id
+ - table-name: vendor_credits
+ keys:
+ - key: CashBack.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: CashBack.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: credit_memos
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.DepositLineDetail.PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - table-name: estimates
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: departments
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: ParentRef.value
+ - key: DepartmentRef.value
+ foreign-key: Id
+ - table-name: time_activities
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: payment_methods
+ keys:
+ - key: Line.DepositLineDetail.PaymentMethodRef.value
+ foreign-key: Id
+- table-name: invoices
+ join:
+ - table-name: accounts
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: Id
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: Id
+ - key: DepositToAccountRef.value
+ foreign-key: ParentRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: ParentRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: bills
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: budgets
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: BudgetDetail.ClassRef.value
+ - key: Line.SalesItemLineDetail.ClassRef.value
+ foreign-key: BudgetDetail.ClassRef.value
+ - key: CustomerRef.value
+ foreign-key: BudgetDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: BudgetDetail.DepartmentRef.value
+ - table-name: deposits
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: LinkedTxn.TxnId
+ foreign-key: Line.LinkedTxn.TxnId
+ - table-name: items
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.SalesItemLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Id
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: ParentRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - table-name: journal_entries
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: TaxRateRef.value
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - table-name: payments
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Id
+ foreign-key: Line.LinkedTxn.TxnId
+ - key: LinkedTxn.TxnId
+ foreign-key: Id
+ - key: LinkedTxn.TxnId
+ foreign-key: Line.LinkedTxn.TxnId
+ - table-name: purchase_orders
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.SalesItemLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ClassRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ - key: Line.SalesItemLineDetail.ClassRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: purchases
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: AccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: Line.SalesItemLineDetail.ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: LinkedTxn.TxnId
+ foreign-key: Id
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: refund_receipts
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.SalesItemLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.SalesItemLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: transfers
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: vendor_credits
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: Line.SalesItemLineDetail.ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: classes
+ keys:
+ - key: ClassRef.value
+ foreign-key: Id
+ - key: Line.SalesItemLineDetail.ClassRef.value
+ foreign-key: Id
+ - key: ClassRef.value
+ foreign-key: ParentRef.value
+ - key: Line.SalesItemLineDetail.ClassRef.value
+ foreign-key: ParentRef.value
+ - table-name: credit_memos
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.SalesItemLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: estimates
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.SalesItemLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: LinkedTxn.TxnId
+ foreign-key: Id
+ - key: Id
+ foreign-key: LinkedTxn.TxnId
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: time_activities
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.SalesItemLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: ItemRef.value
+ - key: LinkedTxn.TxnId
+ foreign-key: Id
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Id
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: departments
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: ParentRef.value
+ - key: DepartmentRef.value
+ foreign-key: Id
+ - table-name: tax_codes
+ keys:
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: PurchaseTaxRateList.TaxRateDetail.TaxRateRef.value
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: SalesTaxRateList.TaxRateDetail.TaxRateRef.value
+ - table-name: tax_rates
+ keys:
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: Id
+ - table-name: terms
+ keys:
+ - key: SalesTermRef.value
+ foreign-key: Id
+- table-name: items
+ join:
+ - table-name: accounts
+ keys:
+ - key: AssetAccountRef.value
+ foreign-key: Id
+ - key: ExpenseAccountRef.value
+ foreign-key: Id
+ - key: IncomeAccountRef.value
+ foreign-key: Id
+ - key: AssetAccountRef.value
+ foreign-key: ParentRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: ParentRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: ParentRef.value
+ - table-name: bill_payments
+ keys:
+ - key: AssetAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: AssetAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: AssetAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: PrefVendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: bills
+ keys:
+ - key: AssetAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: AssetAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Id
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: ParentRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: PrefVendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: budgets
+ keys:
+ - key: AssetAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: BudgetDetail.ClassRef.value
+ - table-name: deposits
+ keys:
+ - key: AssetAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: AssetAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: AssetAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - table-name: invoices
+ keys:
+ - key: AssetAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: AssetAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ClassRef.value
+ foreign-key: Line.SalesItemLineDetail.ClassRef.value
+ - key: Id
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: ParentRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - table-name: journal_entries
+ keys:
+ - key: AssetAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - table-name: payments
+ keys:
+ - key: AssetAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: AssetAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ClassRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ - key: Id
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: ParentRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: PrefVendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: purchases
+ keys:
+ - key: AssetAccountRef.value
+ foreign-key: AccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: AccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: AccountRef.value
+ - key: AssetAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: Id
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: ParentRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: AssetAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Id
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: ParentRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: AssetAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: AssetAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Id
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: ParentRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: transfers
+ keys:
+ - key: AssetAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: AssetAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: ToAccountRef.value
+ - table-name: vendor_credits
+ keys:
+ - key: AssetAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: AssetAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: PrefVendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: classes
+ keys:
+ - key: ClassRef.value
+ foreign-key: Id
+ - key: ClassRef.value
+ foreign-key: ParentRef.value
+ - table-name: credit_memos
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Id
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: ParentRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: estimates
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Id
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: ParentRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - table-name: time_activities
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Id
+ foreign-key: ItemRef.value
+ - key: ParentRef.value
+ foreign-key: ItemRef.value
+ - key: PrefVendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: customers
+ keys:
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - table-name: vendors
+ keys:
+ - key: PrefVendorRef.value
+ foreign-key: Id
+- table-name: journal_entries
+ join:
+ - table-name: accounts
+ keys:
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: Id
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: ParentRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Line.LinkedTxn.TxnId
+ - table-name: bills
+ keys:
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: budgets
+ keys:
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - table-name: deposits
+ keys:
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Line.LinkedTxn.TxnId
+ - table-name: invoices
+ keys:
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: TaxRateRef.value
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - table-name: items
+ keys:
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - table-name: payments
+ keys:
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: purchase_orders
+ keys:
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: purchases
+ keys:
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: AccountRef.value
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: sales_receipts
+ keys:
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: transfers
+ keys:
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: vendor_credits
+ keys:
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: credit_memos
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - table-name: estimates
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: TaxRateRef.value
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: tax_codes
+ keys:
+ - key: TaxRateRef.value
+ foreign-key: PurchaseTaxRateList.TaxRateDetail.TaxRateRef.value
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: PurchaseTaxRateList.TaxRateDetail.TaxRateRef.value
+ - key: TaxRateRef.value
+ foreign-key: SalesTaxRateList.TaxRateDetail.TaxRateRef.value
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: SalesTaxRateList.TaxRateDetail.TaxRateRef.value
+ - table-name: tax_rates
+ keys:
+ - key: TaxRateRef.value
+ foreign-key: Id
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: Id
+- table-name: payments
+ join:
+ - table-name: accounts
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: Id
+ - key: DepositToAccountRef.value
+ foreign-key: ParentRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bills
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - table-name: budgets
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: CustomerRef.value
+ foreign-key: BudgetDetail.CustomerRef.value
+ - table-name: deposits
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Line.LinkedTxn.TxnId
+ - key: PaymentMethodRef.value
+ foreign-key: Line.DepositLineDetail.PaymentMethodRef.value
+ - table-name: invoices
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: Id
+ - key: Id
+ foreign-key: LinkedTxn.TxnId
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: LinkedTxn.TxnId
+ - table-name: items
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - table-name: journal_entries
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: purchase_orders
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ - table-name: purchases
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: AccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: Id
+ - key: Id
+ foreign-key: Id
+ - table-name: refund_receipts
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: sales_receipts
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: transfers
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: vendor_credits
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - table-name: credit_memos
+ keys:
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: Id
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Id
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - table-name: estimates
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: LinkedTxn.TxnId
+ - key: Id
+ foreign-key: Id
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: payment_methods
+ keys:
+ - key: PaymentMethodRef.value
+ foreign-key: Id
+ - table-name: time_activities
+ keys:
+ - key: Id
+ foreign-key: Id
+- table-name: purchase_orders
+ join:
+ - table-name: accounts
+ keys:
+ - key: APAccountRef.value
+ foreign-key: Id
+ - key: APAccountRef.value
+ foreign-key: ParentRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: APAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: LinkedTxn.TxnId
+ foreign-key: Line.LinkedTxn.TxnId
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: Id
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: bills
+ keys:
+ - key: APAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: LinkedTxn.TxnId
+ foreign-key: Id
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Id
+ foreign-key: LinkedTxn.TxnId
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: budgets
+ keys:
+ - key: APAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: BudgetDetail.ClassRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ foreign-key: BudgetDetail.ClassRef.value
+ - key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: BudgetDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: BudgetDetail.DepartmentRef.value
+ - table-name: deposits
+ keys:
+ - key: APAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: invoices
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ClassRef.value
+ foreign-key: Line.SalesItemLineDetail.ClassRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ foreign-key: Line.SalesItemLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: items
+ keys:
+ - key: APAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Id
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: ParentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - key: VendorRef.value
+ foreign-key: PrefVendorRef.value
+ - table-name: journal_entries
+ keys:
+ - key: APAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - table-name: payments
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - table-name: purchases
+ keys:
+ - key: APAccountRef.value
+ foreign-key: AccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: transfers
+ keys:
+ - key: APAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: vendor_credits
+ keys:
+ - key: APAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: classes
+ keys:
+ - key: ClassRef.value
+ foreign-key: Id
+ - key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ foreign-key: Id
+ - key: ClassRef.value
+ foreign-key: ParentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ParentRef.value
+ - table-name: credit_memos
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: estimates
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: time_activities
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: ItemRef.value
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Id
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: VendorRef.value
+ foreign-key: Id
+ - table-name: departments
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: ParentRef.value
+ - key: DepartmentRef.value
+ foreign-key: Id
+ - table-name: terms
+ keys:
+ - key: SalesTermRef.value
+ foreign-key: Id
+- table-name: purchases
+ join:
+ - table-name: accounts
+ keys:
+ - key: AccountRef.value
+ foreign-key: Id
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Id
+ - key: AccountRef.value
+ foreign-key: ParentRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: ParentRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: AccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: AccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: bills
+ keys:
+ - key: AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: budgets
+ keys:
+ - key: AccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: BudgetDetail.ClassRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: BudgetDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: BudgetDetail.DepartmentRef.value
+ - table-name: deposits
+ keys:
+ - key: AccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: AccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: Line.DepositLineDetail.PaymentMethodRef.value
+ - table-name: invoices
+ keys:
+ - key: AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: Line.SalesItemLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Id
+ foreign-key: LinkedTxn.TxnId
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: items
+ keys:
+ - key: AccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: AccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: AccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Id
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: ParentRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - table-name: journal_entries
+ keys:
+ - key: AccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - table-name: payments
+ keys:
+ - key: AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Id
+ foreign-key: Line.LinkedTxn.TxnId
+ - key: Id
+ foreign-key: Id
+ - table-name: purchase_orders
+ keys:
+ - key: AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: transfers
+ keys:
+ - key: AccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: AccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: vendor_credits
+ keys:
+ - key: AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: classes
+ keys:
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: Id
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ParentRef.value
+ - table-name: credit_memos
+ keys:
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: estimates
+ keys:
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: time_activities
+ keys:
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: EntityRef.value
+ foreign-key: EmployeeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: ItemRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Id
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: departments
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: ParentRef.value
+ - key: DepartmentRef.value
+ foreign-key: Id
+ - table-name: employees
+ keys:
+ - key: EntityRef.value
+ foreign-key: Id
+ - table-name: payment_methods
+ keys:
+ - key: PaymentMethodRef.value
+ foreign-key: Id
+- table-name: refund_receipts
+ join:
+ - table-name: accounts
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: Id
+ - key: DepositToAccountRef.value
+ foreign-key: ParentRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: bills
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: budgets
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: BudgetDetail.ClassRef.value
+ - key: CustomerRef.value
+ foreign-key: BudgetDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: BudgetDetail.DepartmentRef.value
+ - table-name: deposits
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: Line.DepositLineDetail.PaymentMethodRef.value
+ - key: Id
+ foreign-key: Line.LinkedTxn.TxnId
+ - table-name: invoices
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ClassRef.value
+ foreign-key: Line.SalesItemLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - table-name: items
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Id
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: ParentRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - table-name: journal_entries
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: payments
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: purchase_orders
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ClassRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: purchases
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: AccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: transfers
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: vendor_credits
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: classes
+ keys:
+ - key: ClassRef.value
+ foreign-key: Id
+ - key: ClassRef.value
+ foreign-key: ParentRef.value
+ - table-name: credit_memos
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: estimates
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - table-name: time_activities
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: ItemRef.value
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Id
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: departments
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: ParentRef.value
+ - key: DepartmentRef.value
+ foreign-key: Id
+ - table-name: payment_methods
+ keys:
+ - key: PaymentMethodRef.value
+ foreign-key: Id
+- table-name: sales_receipts
+ join:
+ - table-name: accounts
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: Id
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: Id
+ - key: DepositToAccountRef.value
+ foreign-key: ParentRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: ParentRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: bills
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: budgets
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: BudgetDetail.ClassRef.value
+ - key: CustomerRef.value
+ foreign-key: BudgetDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: BudgetDetail.DepartmentRef.value
+ - table-name: deposits
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: Line.DepositLineDetail.PaymentMethodRef.value
+ - key: Id
+ foreign-key: Line.LinkedTxn.TxnId
+ - table-name: invoices
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ClassRef.value
+ foreign-key: Line.SalesItemLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - table-name: items
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Id
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: ParentRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - table-name: journal_entries
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: payments
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: purchase_orders
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ClassRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: purchases
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: AccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: transfers
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: vendor_credits
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: classes
+ keys:
+ - key: ClassRef.value
+ foreign-key: Id
+ - key: ClassRef.value
+ foreign-key: ParentRef.value
+ - table-name: credit_memos
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: estimates
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - table-name: time_activities
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: ItemRef.value
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Id
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: departments
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: ParentRef.value
+ - key: DepartmentRef.value
+ foreign-key: Id
+ - table-name: payment_methods
+ keys:
+ - key: PaymentMethodRef.value
+ foreign-key: Id
+- table-name: transfers
+ join:
+ - table-name: accounts
+ keys:
+ - key: FromAccountRef.value
+ foreign-key: Id
+ - key: ToAccountRef.value
+ foreign-key: Id
+ - key: FromAccountRef.value
+ foreign-key: ParentRef.value
+ - key: ToAccountRef.value
+ foreign-key: ParentRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: FromAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: FromAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: FromAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bills
+ keys:
+ - key: FromAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: FromAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: budgets
+ keys:
+ - key: FromAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - table-name: deposits
+ keys:
+ - key: FromAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: FromAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: FromAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Line.LinkedTxn.TxnId
+ - table-name: invoices
+ keys:
+ - key: FromAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: FromAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: items
+ keys:
+ - key: FromAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: FromAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: FromAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - table-name: journal_entries
+ keys:
+ - key: FromAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: payments
+ keys:
+ - key: FromAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: purchase_orders
+ keys:
+ - key: FromAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: purchases
+ keys:
+ - key: FromAccountRef.value
+ foreign-key: AccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: AccountRef.value
+ - key: FromAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: FromAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: sales_receipts
+ keys:
+ - key: FromAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: FromAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: vendor_credits
+ keys:
+ - key: FromAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: FromAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: credit_memos
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: estimates
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+- table-name: vendor_credits
+ join:
+ - table-name: accounts
+ keys:
+ - key: APAccountRef.value
+ foreign-key: Id
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Id
+ - key: APAccountRef.value
+ foreign-key: ParentRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: ParentRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: APAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: Line.LinkedTxn.TxnId
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: bills
+ keys:
+ - key: APAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: budgets
+ keys:
+ - key: APAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: BudgetDetail.ClassRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: BudgetDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: BudgetDetail.DepartmentRef.value
+ - table-name: deposits
+ keys:
+ - key: APAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: invoices
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: Line.SalesItemLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - table-name: items
+ keys:
+ - key: APAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - key: VendorRef.value
+ foreign-key: PrefVendorRef.value
+ - table-name: journal_entries
+ keys:
+ - key: APAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: payments
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: APAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: purchases
+ keys:
+ - key: APAccountRef.value
+ foreign-key: AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: AccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: transfers
+ keys:
+ - key: APAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: classes
+ keys:
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: Id
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ParentRef.value
+ - table-name: credit_memos
+ keys:
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: estimates
+ keys:
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - table-name: time_activities
+ keys:
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Id
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: VendorRef.value
+ foreign-key: Id
+ - table-name: departments
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: ParentRef.value
+ - key: DepartmentRef.value
+ foreign-key: Id
+- table-name: classes
+ join:
+ - table-name: budgets
+ keys:
+ - key: Id
+ foreign-key: BudgetDetail.ClassRef.value
+ - key: ParentRef.value
+ foreign-key: BudgetDetail.ClassRef.value
+ - table-name: credit_memos
+ keys:
+ - key: Id
+ foreign-key: ClassRef.value
+ - key: ParentRef.value
+ foreign-key: ClassRef.value
+ - table-name: estimates
+ keys:
+ - key: Id
+ foreign-key: ClassRef.value
+ - key: ParentRef.value
+ foreign-key: ClassRef.value
+ - table-name: invoices
+ keys:
+ - key: Id
+ foreign-key: ClassRef.value
+ - key: ParentRef.value
+ foreign-key: ClassRef.value
+ - key: Id
+ foreign-key: Line.SalesItemLineDetail.ClassRef.value
+ - key: ParentRef.value
+ foreign-key: Line.SalesItemLineDetail.ClassRef.value
+ - table-name: items
+ keys:
+ - key: Id
+ foreign-key: ClassRef.value
+ - key: ParentRef.value
+ foreign-key: ClassRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: Id
+ foreign-key: ClassRef.value
+ - key: ParentRef.value
+ foreign-key: ClassRef.value
+ - key: Id
+ foreign-key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ - key: ParentRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ - table-name: purchases
+ keys:
+ - key: Id
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: ParentRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: Id
+ foreign-key: ClassRef.value
+ - key: ParentRef.value
+ foreign-key: ClassRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: Id
+ foreign-key: ClassRef.value
+ - key: ParentRef.value
+ foreign-key: ClassRef.value
+ - table-name: time_activities
+ keys:
+ - key: Id
+ foreign-key: ClassRef.value
+ - key: ParentRef.value
+ foreign-key: ClassRef.value
+ - table-name: vendor_credits
+ keys:
+ - key: Id
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: ParentRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+- table-name: credit_memos
+ join:
+ - table-name: budgets
+ keys:
+ - key: ClassRef.value
+ foreign-key: BudgetDetail.ClassRef.value
+ - key: CustomerRef.value
+ foreign-key: BudgetDetail.CustomerRef.value
+ - table-name: classes
+ keys:
+ - key: ClassRef.value
+ foreign-key: Id
+ - key: ClassRef.value
+ foreign-key: ParentRef.value
+ - table-name: estimates
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: invoices
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ClassRef.value
+ foreign-key: Line.SalesItemLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: items
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Id
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: ParentRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ClassRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: purchases
+ keys:
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: refund_receipts
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: time_activities
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: ItemRef.value
+ - table-name: vendor_credits
+ keys:
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: payments
+ keys:
+ - key: Id
+ foreign-key: Line.LinkedTxn.TxnId
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - table-name: accounts
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bills
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Id
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: deposits
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: journal_entries
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - table-name: transfers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: terms
+ keys:
+ - key: SalesTermRef.value
+ foreign-key: Id
+- table-name: estimates
+ join:
+ - table-name: budgets
+ keys:
+ - key: ClassRef.value
+ foreign-key: BudgetDetail.ClassRef.value
+ - key: CustomerRef.value
+ foreign-key: BudgetDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: BudgetDetail.DepartmentRef.value
+ - table-name: classes
+ keys:
+ - key: ClassRef.value
+ foreign-key: Id
+ - key: ClassRef.value
+ foreign-key: ParentRef.value
+ - table-name: credit_memos
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: invoices
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ClassRef.value
+ foreign-key: Line.SalesItemLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: LinkedTxn.TxnId
+ - key: LinkedTxn.TxnId
+ foreign-key: Id
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: items
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Id
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: ParentRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ClassRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: purchases
+ keys:
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: refund_receipts
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: time_activities
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: ItemRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: vendor_credits
+ keys:
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: accounts
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: bills
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Id
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: deposits
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: journal_entries
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: TaxRateRef.value
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - table-name: payments
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: LinkedTxn.TxnId
+ foreign-key: Line.LinkedTxn.TxnId
+ - key: Id
+ foreign-key: Id
+ - table-name: transfers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: departments
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: ParentRef.value
+ - key: DepartmentRef.value
+ foreign-key: Id
+ - table-name: tax_codes
+ keys:
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: PurchaseTaxRateList.TaxRateDetail.TaxRateRef.value
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: SalesTaxRateList.TaxRateDetail.TaxRateRef.value
+ - table-name: tax_rates
+ keys:
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: Id
+ - table-name: terms
+ keys:
+ - key: SalesTermRef.value
+ foreign-key: Id
+- table-name: time_activities
+ join:
+ - table-name: budgets
+ keys:
+ - key: ClassRef.value
+ foreign-key: BudgetDetail.ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: BudgetDetail.DepartmentRef.value
+ - table-name: classes
+ keys:
+ - key: ClassRef.value
+ foreign-key: Id
+ - key: ClassRef.value
+ foreign-key: ParentRef.value
+ - table-name: credit_memos
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - table-name: estimates
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: invoices
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ClassRef.value
+ foreign-key: Line.SalesItemLineDetail.ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Id
+ foreign-key: LinkedTxn.TxnId
+ - table-name: items
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ItemRef.value
+ foreign-key: Id
+ - key: ItemRef.value
+ foreign-key: ParentRef.value
+ - key: VendorRef.value
+ foreign-key: PrefVendorRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ClassRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: purchases
+ keys:
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: EmployeeRef.value
+ foreign-key: EntityRef.value
+ - key: ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: refund_receipts
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - table-name: vendor_credits
+ keys:
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: bills
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: bill_payments
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: departments
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: ParentRef.value
+ - key: DepartmentRef.value
+ foreign-key: Id
+ - table-name: deposits
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: employees
+ keys:
+ - key: EmployeeRef.value
+ foreign-key: Id
+ - table-name: payments
+ keys:
+ - key: Id
+ foreign-key: Id
+ - table-name: vendors
+ keys:
+ - key: VendorRef.value
+ foreign-key: Id
+- table-name: customers
+ join:
+ - table-name: accounts
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bills
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: credit_memos
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: CustomerRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: deposits
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: Line.DepositLineDetail.PaymentMethodRef.value
+ - table-name: estimates
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: CustomerRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: invoices
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: CustomerRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: journal_entries
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - table-name: payments
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: CustomerRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: purchases
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: CustomerRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: CustomerRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: transfers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: vendor_credits
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: budgets
+ keys:
+ - key: Id
+ foreign-key: BudgetDetail.CustomerRef.value
+ - table-name: payment_methods
+ keys:
+ - key: PaymentMethodRef.value
+ foreign-key: Id
+ - table-name: items
+ keys:
+ - key: DefaultTaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - table-name: terms
+ keys:
+ - key: SalesTermRef.value
+ foreign-key: Id
+- table-name: vendors
+ join:
+ - table-name: accounts
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: VendorRef.value
+ - table-name: bills
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: VendorRef.value
+ - table-name: credit_memos
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: deposits
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: estimates
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: invoices
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: journal_entries
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: payments
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: VendorRef.value
+ - table-name: purchases
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: transfers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: vendor_credits
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: VendorRef.value
+ - table-name: items
+ keys:
+ - key: Id
+ foreign-key: PrefVendorRef.value
+ - table-name: time_activities
+ keys:
+ - key: Id
+ foreign-key: VendorRef.value
+- table-name: departments
+ join:
+ - table-name: bills
+ keys:
+ - key: ParentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: DepartmentRef.value
+ - table-name: bill_payments
+ keys:
+ - key: ParentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: DepartmentRef.value
+ - table-name: budgets
+ keys:
+ - key: ParentRef.value
+ foreign-key: BudgetDetail.DepartmentRef.value
+ - key: Id
+ foreign-key: BudgetDetail.DepartmentRef.value
+ - table-name: deposits
+ keys:
+ - key: ParentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: DepartmentRef.value
+ - table-name: estimates
+ keys:
+ - key: ParentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: DepartmentRef.value
+ - table-name: invoices
+ keys:
+ - key: ParentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: DepartmentRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: ParentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: DepartmentRef.value
+ - table-name: purchases
+ keys:
+ - key: ParentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: DepartmentRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: ParentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: DepartmentRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: ParentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: DepartmentRef.value
+ - table-name: time_activities
+ keys:
+ - key: ParentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: DepartmentRef.value
+ - table-name: vendor_credits
+ keys:
+ - key: ParentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: DepartmentRef.value
+- table-name: employees
+ join:
+ - table-name: purchases
+ keys:
+ - key: Id
+ foreign-key: EntityRef.value
+ - table-name: time_activities
+ keys:
+ - key: Id
+ foreign-key: EmployeeRef.value
+- table-name: payment_methods
+ join:
+ - table-name: customers
+ keys:
+ - key: Id
+ foreign-key: PaymentMethodRef.value
+ - table-name: deposits
+ keys:
+ - key: Id
+ foreign-key: Line.DepositLineDetail.PaymentMethodRef.value
+ - table-name: payments
+ keys:
+ - key: Id
+ foreign-key: PaymentMethodRef.value
+ - table-name: purchases
+ keys:
+ - key: Id
+ foreign-key: PaymentMethodRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: Id
+ foreign-key: PaymentMethodRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: Id
+ foreign-key: PaymentMethodRef.value
+- table-name: tax_agencies
+ join:
+ - table-name: tax_rates
+ keys:
+ - key: Id
+ foreign-key: AgencyRef.value
+- table-name: tax_rates
+ join:
+ - table-name: tax_agencies
+ keys:
+ - key: AgencyRef.value
+ foreign-key: Id
+ - table-name: estimates
+ keys:
+ - key: Id
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - table-name: invoices
+ keys:
+ - key: Id
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - table-name: journal_entries
+ keys:
+ - key: Id
+ foreign-key: TaxRateRef.value
+ - key: Id
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - table-name: tax_codes
+ keys:
+ - key: Id
+ foreign-key: PurchaseTaxRateList.TaxRateDetail.TaxRateRef.value
+ - key: Id
+ foreign-key: SalesTaxRateList.TaxRateDetail.TaxRateRef.value
+- table-name: tax_codes
+ join:
+ - table-name: estimates
+ keys:
+ - key: PurchaseTaxRateList.TaxRateDetail.TaxRateRef.value
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - key: SalesTaxRateList.TaxRateDetail.TaxRateRef.value
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - table-name: invoices
+ keys:
+ - key: PurchaseTaxRateList.TaxRateDetail.TaxRateRef.value
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - key: SalesTaxRateList.TaxRateDetail.TaxRateRef.value
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - table-name: journal_entries
+ keys:
+ - key: PurchaseTaxRateList.TaxRateDetail.TaxRateRef.value
+ foreign-key: TaxRateRef.value
+ - key: SalesTaxRateList.TaxRateDetail.TaxRateRef.value
+ foreign-key: TaxRateRef.value
+ - key: PurchaseTaxRateList.TaxRateDetail.TaxRateRef.value
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - key: SalesTaxRateList.TaxRateDetail.TaxRateRef.value
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - table-name: tax_rates
+ keys:
+ - key: PurchaseTaxRateList.TaxRateDetail.TaxRateRef.value
+ foreign-key: Id
+ - key: SalesTaxRateList.TaxRateDetail.TaxRateRef.value
+ foreign-key: Id
+- table-name: terms
+ join:
+ - table-name: bills
+ keys:
+ - key: Id
+ foreign-key: SalesTermRef.value
+ - table-name: credit_memos
+ keys:
+ - key: Id
+ foreign-key: SalesTermRef.value
+ - table-name: customers
+ keys:
+ - key: Id
+ foreign-key: SalesTermRef.value
+ - table-name: estimates
+ keys:
+ - key: Id
+ foreign-key: SalesTermRef.value
+ - table-name: invoices
+ keys:
+ - key: Id
+ foreign-key: SalesTermRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: Id
+ foreign-key: SalesTermRef.value
diff --git a/_data/taps/schemas/quickbooks/v1/quickbooks-v1-tables.yml b/_data/taps/schemas/quickbooks/v1/quickbooks-v1-tables.yml
new file mode 100644
index 000000000..58260f34c
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v1/quickbooks-v1-tables.yml
@@ -0,0 +1,393 @@
+tap: quickbooks
+version: '1'
+tables:
+- name: accounts
+ description: 'The `{{ table.name }}` table contains info about the various account
+ types in you {{ integration.display_name }} instance. This table includes all
+ account types: asset, liability, revenue (income), expenses, and equity.
+
+
+ **Note**: Both active and inactive accounts are included in the data for this
+ table.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/account
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/accounts.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/account#query-an-account
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: bills
+ description: 'The `{{ table.name }}` table contains info about the bills, or requests
+ for payment from third parties, in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/bill
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/bills.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/bill#query-a-bill
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: bill_payments
+ description: 'The `{{ table.name }}` table contains info about payments made on
+ bills received from vendors for goods or services.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/billpayment
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/bill_payments.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/billpayment#query-a-billpayment
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: budgets
+ description: 'The `{{ table.name }}` table contains info about the current state
+ of budgets in your {{ integration.display_name }} instance. **Note**: Both active
+ and inactive budgets are included in the data for this table.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/budget
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/budgets.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/budget#query-the-budget
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: classes
+ description: 'The `{{ table.name }}` table contains info about the classes set up
+ in your {{ integration.display_name }} instance. **Note**: Both active and inactive
+ classes are included in the data for this table.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/class
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/classes.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/class#query-a-class
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: credit_memos
+ description: 'The `{{ table.name }}` table contains info about the credit memos
+ in your {{ integration.display_name }} instance. A credit memo is a transaction
+ representing a refund or credit of payment for goods or services that have been
+ sold.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/creditmemo
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/credit_memos.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/creditmemo#query-a-credit-memo
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: customers
+ description: 'The `{{ table.name }}` table contains info about the consumers of
+ your business''s goods and services. **Note**: Both active and inactive customers
+ are included in the data for this table.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/customer
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/customers.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/customer#query-a-customer
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: departments
+ description: 'The `{{ table.name }}` table contains info about the departments in
+ your {{ integration.display_name }} instance. **Note**: Both active and inactive
+ departments are included in the data for this table.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/department
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/departments.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/department#query-a-department
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: deposits
+ description: 'The `{{ table.name }}` table contains info about deposits in your
+ {{ integration.display_name }} instance. These can be customer payments or new
+ direct deposits.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/deposit
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/deposits.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/deposit#query-a-deposit
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: employees
+ description: 'The `{{ table.name }}` table contains info about the people working
+ for your company. **Note**: Both active and inactive employees are included in
+ the data for this table.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/employee
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/employees.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/employee#query-an-employee
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: estimates
+ description: 'The `{{ table.name }}` table contains info about the estimates in
+ your {{ integration.display_name }} instance. An estimate is a financial proposal
+ from a business to a [customer](#customers) for goods or services.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/estimate
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/estimates.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/estimate#read-an-estimate
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: invoices
+ description: 'The `{{ table.name }}` table contains info about the invoices in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/invoice
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/invoices.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/invoice#query-an-invoice
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: items
+ description: 'The `{{ table.name }}` table contains info about the items your company
+ buys, sells, or re-sells. This includes all item types in {{ integration.display_name
+ }}, such as `Inventory`, `Group`, `Service` and `Noninventory`.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/item
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/items.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/item/#query-an-item
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: journal_entries
+ description: 'The `{{ table.name }}` table contains info about the journal entries
+ in your {{ integration.display_name }} instance. A journal entry is a transaction
+ that:
+
+
+ - Contains a pair of distribution lines, including a debit and a credit
+
+ - Each distribution line has an account from the Chart of Accounts
+
+ - The total of the debit column equals the total of the credit column
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/journalentry
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/journal_entries.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/journalentry/#query-a-journalentry
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: payments
+ description: 'The `{{ table.name }}` table contains info about the payments recorded
+ in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/payment
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/payments.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/payment/#query-a-payment
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: payment_methods
+ description: 'The `{{ table.name }}` table contains info about the methods of payment
+ your company receives for goods. **Note**: Both active and inactive payment methods
+ are included in the data for this table.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/paymentmethod
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/payment_methods.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/paymentmethod/#query-a-paymentmethod
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: profit_loss_report
+ description: 'The `{{ table.name }}` table contains reports about profit and loss
+ recorded in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/profitandloss
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/profit_loss_report.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/profitandloss#query-a-report
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: ReportDate
+- name: purchases
+ description: 'The `{{ table.name }}` table contains info about the purchases recorded
+ in your {{ integration.display_name }} instance. This table includes all purchase
+ types: `Cash`, `Check`, and `CreditCard`.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/purchase
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/purchases.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/purchase/#query-a-purchase
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: purchase_orders
+ description: 'The `{{ table.name }}` table contains info about purchase orders in
+ your {{ integration.display_name }} instance. A purchase order is a request to
+ purchase goods or services from a third party.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/purchaseorder
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/purchase_orders.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/purchaseorder/#query-a-purchaseorder
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: sales_receipts
+ description: 'The `{{ table.name }}` table contains info about the sales receipts
+ recorded in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/salesreceipt
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/sales_receipts.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/salesreceipt/#query-a-salesreceipt
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: tax_agencies
+ description: 'The `{{ table.name }}` table contains info about the tax-collecting
+ entites defined in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/taxagency
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/tax_agencies.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/taxagency/#query-a-taxagency
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: tax_codes
+ description: 'The `{{ table.name }}` table contains info about the tax codes defined
+ in your {{ integration.display_name }} instance. **Note**: Both active and inactive
+ tax codes are included in the data for this table.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/tax_codes.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/taxcode
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: tax_rates
+ description: 'The `{{ table.name }}` table contains info about the tax rates defined
+ in your {{ integration.display_name }} instance. **Note**: Both active and inactive
+ tax rates are included in the data for this table.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/taxrate
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/tax_rates.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/taxrate#query-a-taxrate
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: terms
+ description: 'The `{{ table.name }}` table contains info about the sale terms defined
+ in your {{ integration.display_name }} instance. **Note**: Both active and inactive
+ terms are included in the data for this table.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/term
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/terms.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/term#query-a-term
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: time_activities
+ description: 'The `{{ table.name }}` table contains info about vendor and employee
+ time records in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/time_activities.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity#query-a-timeactivity
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: transfers
+ description: 'The `{{ table.name }}` table contains info about account transfers
+ from your company''s {{ integration.display_name }} chart of accounts.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/transfer
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/transfers.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/transfer#query-a-transfer
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: vendors
+ description: 'The `{{ table.name }}` table contains info about the sellers your
+ company purchases products from. **Note**: Both active and inactive vendors are
+ included in the data for this table.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/vendor
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/vendors.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/vendor#query-a-vendor
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: vendor_credits
+ description: 'The `{{ table.name }}` table contains info about credits that a vendor
+ owes your company.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/vendorcredit
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/vendor_credits.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/vendorcredit#query-a-vendorcredit
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: deleted_objects
+ description: The `{{ table.name }}` table contains info about deleted objects in
+ your {{ integration.display_name }} instance.
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/changedatacapture
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/deleted_objects.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/changedatacapture#get-a-list-of-changed-entities
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - Id
+ - Type
+ replication-key: MetaData
+- name: refund_receipts
+ description: The `{{ table.name }}` table contains info about refunds in your {{
+ integration.display_name }} instance.
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/refundreceipt
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/refund_receipts.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/refundreceipt#query-a-refund-receipt
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+ replication-key: MetaData
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/quickbooks/v2/json/accounts.json b/_data/taps/schemas/quickbooks/v2/json/accounts.json
new file mode 100644
index 000000000..5ab93f795
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/accounts.json
@@ -0,0 +1,181 @@
+{
+ "properties": {
+ "AccountAlias": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountSubType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AcctNum": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Classification": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrentBalance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "CurrentBalanceWithSubAccounts": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FullyQualifiedName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ParentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SubAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TxnLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/bill_payments.json b/_data/taps/schemas/quickbooks/v2/json/bill_payments.json
new file mode 100644
index 000000000..465b47d0d
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/bill_payments.json
@@ -0,0 +1,282 @@
+{
+ "properties": {
+ "APAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CheckPayment": {
+ "properties": {
+ "BankAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PrintStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CreditCardPayment": {
+ "properties": {
+ "CCAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepartmentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DocNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ExchangeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PayType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrivateNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ProcessBillPayment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "VendorRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/bills.json b/_data/taps/schemas/quickbooks/v2/json/bills.json
new file mode 100644
index 000000000..71aec1d22
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/bills.json
@@ -0,0 +1,780 @@
+{
+ "properties": {
+ "APAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepartmentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DocNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExchangeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "GlobalTaxCalculation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HomeBalance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInAnnualTPAR": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "AccountBasedExpenseLineDetail": {
+ "properties": {
+ "AccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "BillableStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "TaxAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ItemBasedExpenseLineDetail": {
+ "properties": {
+ "BillableStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Qty": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PrivateNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RecurDataRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SalesTermRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TxnTaxDetail": {
+ "properties": {
+ "TaxLine": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxLineDetail": {
+ "properties": {
+ "NetAmountTaxable": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "OverrideDeltaAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxInclusiveAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxRateRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "TotalTax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TxnTaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "VendorRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/budgets.json b/_data/taps/schemas/quickbooks/v2/json/budgets.json
new file mode 100644
index 000000000..ef8cd071e
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/budgets.json
@@ -0,0 +1,184 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "BudgetDetail": {
+ "items": {
+ "properties": {
+ "AccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BudgetDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepartmentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "BudgetEntryType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BudgetType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EndDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "StartDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/classes.json b/_data/taps/schemas/quickbooks/v2/json/classes.json
new file mode 100644
index 000000000..a867867b6
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/classes.json
@@ -0,0 +1,89 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "FullyQualifiedName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ParentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SubClass": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/credit_memos.json b/_data/taps/schemas/quickbooks/v2/json/credit_memos.json
new file mode 100644
index 000000000..1e49488e4
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/credit_memos.json
@@ -0,0 +1,1277 @@
+{
+ "properties": {
+ "ApplyTaxAfterDiscount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BillAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "BillEmail": {
+ "properties": {
+ "Address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomField": {
+ "items": {
+ "DefinitionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "StringValue": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "CustomerMemo": {
+ "properties": {
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepartmentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DocNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EmailStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ExchangeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "GlobalTaxCalculation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HomeBalance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "HomeTotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "InvoiceRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DescriptionLineDetail": {
+ "properties": {
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "GroupLineDetail": {
+ "properties": {
+ "GroupItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "SalesItemLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DiscountRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Qty": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxClassificationRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Quantity": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "SalesItemLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DiscountRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Qty": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxClassificationRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SubtotalLineDetail": {
+ "properties": {
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PaymentMethodRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PrintStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrivateNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RecurDataRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "RemainingCredit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "SalesTermRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ShipAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxExemptionRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TxnTaxDetail": {
+ "properties": {
+ "TaxLine": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxLineDetail": {
+ "properties": {
+ "NetAmountTaxable": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "OverrideDeltaAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxInclusiveAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxRateRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "TotalTax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TxnTaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "patternProperties": {
+ "properties": {
+ ".+": {}
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/customer_types.json b/_data/taps/schemas/quickbooks/v2/json/customer_types.json
new file mode 100644
index 000000000..2fcd0321b
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/customer_types.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sparse": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/customers.json b/_data/taps/schemas/quickbooks/v2/json/customers.json
new file mode 100644
index 000000000..0c5a786d7
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/customers.json
@@ -0,0 +1,584 @@
+{
+ "properties": {
+ "ARAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "AlternatePhone": {
+ "properties": {
+ "FreeFormNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BalanceWithJobs": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BillAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "BillWithParent": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "BusinessNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CompanyName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomerTypeRef": {
+ "properties": {
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "DefaultTaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DisplayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FamilyName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Fax": {
+ "properties": {
+ "FreeFormNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "FullyQualifiedName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "GSTIN": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "GSTRegistrationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "GivenName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsProject": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Job": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Level": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "MiddleName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Mobile": {
+ "properties": {
+ "FreeFormNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "OpenBalanceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ParentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PaymentMethodRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PreferredDeliveryMethod": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrimaryEmailAddr": {
+ "properties": {
+ "Address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PrimaryPhone": {
+ "properties": {
+ "FreeFormNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PrimaryTaxIdentifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrintOnCheckName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ResaleNum": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTermRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SecondaryTaxIdentifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ShipAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Suffix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxExemptionReasonId": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "WebAddr": {
+ "properties": {
+ "URI": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/deleted_objects.json b/_data/taps/schemas/quickbooks/v2/json/deleted_objects.json
new file mode 100644
index 000000000..a21023825
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/deleted_objects.json
@@ -0,0 +1,40 @@
+{
+ "properties": {
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/departments.json b/_data/taps/schemas/quickbooks/v2/json/departments.json
new file mode 100644
index 000000000..a515a1753
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/departments.json
@@ -0,0 +1,89 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "FullyQualifiedName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ParentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SubDepartment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/deposits.json b/_data/taps/schemas/quickbooks/v2/json/deposits.json
new file mode 100644
index 000000000..2ef0b6794
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/deposits.json
@@ -0,0 +1,552 @@
+{
+ "properties": {
+ "CashBack": {
+ "properties": {
+ "AccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Memo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepartmentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepositToAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ExchangeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "GlobalTaxCalculation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HomeTotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "CustomField": {
+ "properties": {
+ "DefinitionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "StringValue": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepositLineDetail": {
+ "properties": {
+ "AccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CheckNum": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Entity": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PaymentMethodRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxApplicableOn": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PrivateNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RecurDataRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TxnSource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnTaxDetail": {
+ "properties": {
+ "TaxLine": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxLineDetail": {
+ "properties": {
+ "NetAmountTaxable": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "OverrideDeltaAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxInclusiveAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxRateRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "TotalTax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TxnTaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/employees.json b/_data/taps/schemas/quickbooks/v2/json/employees.json
new file mode 100644
index 000000000..a6c9d75bf
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/employees.json
@@ -0,0 +1,281 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "BillRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BillableTime": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "BirthDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "CostRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DisplayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EmployeeNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FamilyName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Gender": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "GivenName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HiredDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "MiddleName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Mobile": {
+ "properties": {
+ "FreeFormNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Organization": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "PrimaryAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PrimaryEmailAddr": {
+ "properties": {
+ "Address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PrimaryPhone": {
+ "properties": {
+ "FreeFormNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PrintOnCheckName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReleasedDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "SSN": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Suffix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "V4IDPseudonym": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/estimates.json b/_data/taps/schemas/quickbooks/v2/json/estimates.json
new file mode 100644
index 000000000..83a392bfd
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/estimates.json
@@ -0,0 +1,1472 @@
+{
+ "properties": {
+ "AcceptedBy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AcceptedDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ApplyTaxAfterDiscount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "BillAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "BillEmail": {
+ "properties": {
+ "Address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomField": {
+ "items": {
+ "DefinitionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "StringValue": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "CustomerMemo": {
+ "properties": {
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DeliveryInfo": {
+ "properties": {
+ "DeliveryTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DeliveryType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "DepartmentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DocNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "EmailStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ExchangeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ExpirationDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FreeFormAddress": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "GlobalTaxCalculation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HomeTotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DescriptionLineDetail": {
+ "properties": {
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "GroupLineDetail": {
+ "properties": {
+ "GroupItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "SalesItemLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DiscountRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Qty": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxClassificationRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Quantity": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "SalesItemLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DiscountRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Qty": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxClassificationRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SubtotalLineDetail": {
+ "properties": {
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PrintStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrivateNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RecurDataRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SalesTermRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ShipAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ShipDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ShipFromAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ShipMethodRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxExemptionRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TxnStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnTaxDetail": {
+ "properties": {
+ "TaxLine": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxLineDetail": {
+ "properties": {
+ "TaxLine": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxLineDetail": {
+ "properties": {
+ "NetAmountTaxable": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "OverrideDeltaAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxInclusiveAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxRateRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "TotalTax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TxnTaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "TotalTax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TxnTaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "patternProperties": {
+ "properties": {
+ ".+": {}
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/invoices.json b/_data/taps/schemas/quickbooks/v2/json/invoices.json
new file mode 100644
index 000000000..9dcfb8158
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/invoices.json
@@ -0,0 +1,1528 @@
+{
+ "properties": {
+ "AllowIPNPayment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "AllowOnlineACHPayment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "AllowOnlineCreditCardPayment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "AllowOnlinePayment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ApplyTaxAfterDiscount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BillAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "BillEmail": {
+ "properties": {
+ "Address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BillEmailBcc": {
+ "properties": {
+ "Address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BillEmailCc": {
+ "properties": {
+ "Address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomField": {
+ "items": {
+ "DefinitionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "StringValue": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "CustomerMemo": {
+ "properties": {
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DeliveryInfo": {
+ "properties": {
+ "DeliveryTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DeliveryType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "DepartmentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Deposit": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DepositToAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DocNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "EmailStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ExchangeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "FreeFormAddress": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "GlobalTaxCalculation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HomeBalance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "HomeTotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "InvoiceLink": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DescriptionLineDetail": {
+ "properties": {
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "GroupLineDetail": {
+ "properties": {
+ "GroupItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "SalesItemLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DiscountRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Qty": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxClassificationRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Quantity": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesItemLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DiscountRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Qty": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxClassificationRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SubtotalLineDetail": {
+ "properties": {
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PrintStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrivateNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RecurDataRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SalesTermRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ShipAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ShipDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ShipFromAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ShipMethodRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxExemptionRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TrackingNum": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TxnSource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnTaxDetail": {
+ "properties": {
+ "TaxLine": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxLineDetail": {
+ "properties": {
+ "NetAmountTaxable": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "OverrideDeltaAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxInclusiveAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxRateRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "TotalTax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TxnTaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "patternProperties": {
+ "properties": {
+ ".+": {}
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/items.json b/_data/taps/schemas/quickbooks/v2/json/items.json
new file mode 100644
index 000000000..0820be667
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/items.json
@@ -0,0 +1,376 @@
+{
+ "properties": {
+ "AbatementRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "AssetAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ExpenseAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "FullyQualifiedName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "InvStartDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ItemCategoryType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Level": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ParentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PrefVendorRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PurchaseCost": {
+ "type": [
+ "null",
+ "integer",
+ "number"
+ ]
+ },
+ "PurchaseDesc": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchaseTaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PurchaseTaxIncluded": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "QtyOnHand": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ReorderPoint": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ReverseChargeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "SalesTaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SalesTaxIncluded": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ServiceType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubItem": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxClassificationRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TrackQtyOnHand": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UQCDisplayText": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UQCId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "patternProperties": {
+ "properties": {
+ ".+": {}
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/journal_entries.json b/_data/taps/schemas/quickbooks/v2/json/journal_entries.json
new file mode 100644
index 000000000..85764734a
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/journal_entries.json
@@ -0,0 +1,533 @@
+{
+ "properties": {
+ "Adjustment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DocNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ExchangeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "GlobalTaxCalculation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HomeTotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "JournalCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DescriptionLineDetail": {
+ "properties": {
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "JournalEntryLineDetail": {
+ "properties": {
+ "AccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "BillableStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepartmentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Entity": {
+ "properties": {
+ "EntityRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "JournalCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PostingType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxApplicableOn": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PrivateNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RecurDataRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxRateRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TxnTaxDetail": {
+ "properties": {
+ "TaxLine": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxLineDetail": {
+ "properties": {
+ "NetAmountTaxable": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "OverrideDeltaAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxInclusiveAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxRateRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "TotalTax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TxnTaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/payment_methods.json b/_data/taps/schemas/quickbooks/v2/json/payment_methods.json
new file mode 100644
index 000000000..bd9c94ee2
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/payment_methods.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/payments.json b/_data/taps/schemas/quickbooks/v2/json/payments.json
new file mode 100644
index 000000000..ddc0dfb8c
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/payments.json
@@ -0,0 +1,472 @@
+{
+ "properties": {
+ "ARAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CreditCardPayment": {
+ "properties": {
+ "CreditChargeInfo": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BillAddrStreet": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CcExpiryMonth": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "CcExpiryYear": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "NameOnAcct": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ProcessPayment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CreditChargeResponse": {
+ "properties": {
+ "AuthCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CCTransId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnAuthorizationTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepositToAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ExchangeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineEx": {
+ "properties": {
+ "any": {
+ "items": {
+ "properties": {
+ "declaredType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "globalScope": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nil": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "typeSubstituted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "value": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PaymentMethodRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PaymentRefNum": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrivateNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ProcessPayment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxExemptionRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TxnSource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UnappliedAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/profit_loss_report.json b/_data/taps/schemas/quickbooks/v2/json/profit_loss_report.json
new file mode 100644
index 000000000..f02b6c92b
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/profit_loss_report.json
@@ -0,0 +1,27 @@
+{
+ "properties": {
+ "AccountingMethod": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ReportDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/purchase_orders.json b/_data/taps/schemas/quickbooks/v2/json/purchase_orders.json
new file mode 100644
index 000000000..383296f1f
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/purchase_orders.json
@@ -0,0 +1,1041 @@
+{
+ "properties": {
+ "APAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomField": {
+ "items": {
+ "DefinitionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "StringValue": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "DepartmentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DocNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "EmailStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ExchangeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "GlobalTaxCalculation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "AccountBasedExpenseLineDetail": {
+ "properties": {
+ "AccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "BillableStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "TaxAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ItemBasedExpenseLineDetail": {
+ "properties": {
+ "BillableStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Qty": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Memo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "POEmail": {
+ "properties": {
+ "Address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "POStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrivateNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RecurDataRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SalesTermRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ShipAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ShipMethodRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ShipTo": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TxnTaxDetail": {
+ "properties": {
+ "TaxLine": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxLineDetail": {
+ "properties": {
+ "NetAmountTaxable": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "OverrideDeltaAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxInclusiveAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxRateRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "TotalTax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TxnTaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "VendorAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "VendorRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/purchases.json b/_data/taps/schemas/quickbooks/v2/json/purchases.json
new file mode 100644
index 000000000..740212323
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/purchases.json
@@ -0,0 +1,958 @@
+{
+ "properties": {
+ "AccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Credit": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepartmentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DocNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EntityRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ExchangeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "GlobalTaxCalculation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInAnnualTPAR": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "AccountBasedExpenseLineDetail": {
+ "properties": {
+ "AccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "BillableStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "TaxAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ItemBasedExpenseLineDetail": {
+ "properties": {
+ "BillableStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Qty": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PaymentMethodRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PaymentType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrintStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrivateNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchaseEx": {
+ "properties": {
+ "any": {
+ "items": {
+ "properties": {
+ "declaredType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "globalScope": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nil": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "typeSubstituted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "value": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "RecurDataRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "RemitToAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TxnSource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnTaxDetail": {
+ "properties": {
+ "TaxLine": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxLineDetail": {
+ "properties": {
+ "NetAmountTaxable": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "OverrideDeltaAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxInclusiveAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxRateRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "TotalTax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TxnTaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "patternProperties": {
+ "properties": {
+ ".+": {}
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/refund_receipts.json b/_data/taps/schemas/quickbooks/v2/json/refund_receipts.json
new file mode 100644
index 000000000..e6050a510
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/refund_receipts.json
@@ -0,0 +1,1404 @@
+{
+ "properties": {
+ "ApplyTaxAfterDiscount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BillAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "BillEmail": {
+ "properties": {
+ "Address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CheckPayment": {
+ "properties": {
+ "AcctNum": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CheckNum": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "NameOnAcct": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CreditCardPayment": {
+ "properties": {
+ "CreditChargeInfo": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BillAddrStreet": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CcExpiryMonth": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "CcExpiryYear": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "NameOnAcct": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ProcessPayment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CreditChargeResponse": {
+ "properties": {
+ "AuthCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CCTransId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnAuthorizationTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomField": {
+ "items": {
+ "DefinitionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "StringValue": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "CustomerMemo": {
+ "properties": {
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepartmentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepositToAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DocNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ExchangeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "FreeFormAddress": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "GlobalTaxCalculation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HomeBalance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "HomeTotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DescriptionLineDetail": {
+ "properties": {
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "GroupLineDetail": {
+ "properties": {
+ "GroupItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "SalesItemLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DiscountRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Qty": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxClassificationRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Quantity": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "SalesItemLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DiscountRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Qty": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxClassificationRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SubtotalLineDetail": {
+ "properties": {
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PaymentMethodRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PaymentRefNum": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrintStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrivateNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RecurDataRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ShipAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxExemptionRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TxnSource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnTaxDetail": {
+ "properties": {
+ "TaxLine": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxLineDetail": {
+ "properties": {
+ "NetAmountTaxable": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "OverrideDeltaAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxInclusiveAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxRateRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "TotalTax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TxnTaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "patternProperties": {
+ "properties": {
+ ".+": {}
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/sales_receipts.json b/_data/taps/schemas/quickbooks/v2/json/sales_receipts.json
new file mode 100644
index 000000000..3a5537102
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/sales_receipts.json
@@ -0,0 +1,1509 @@
+{
+ "properties": {
+ "ApplyTaxAfterDiscount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BillAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "BillEmail": {
+ "properties": {
+ "Address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CreditCardPayment": {
+ "properties": {
+ "CreditChargeInfo": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BillAddrStreet": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CcExpiryMonth": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "CcExpiryYear": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "NameOnAcct": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ProcessPayment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CreditChargeResponse": {
+ "properties": {
+ "AuthCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CCTransId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnAuthorizationTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomField": {
+ "items": {
+ "DefinitionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "StringValue": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "CustomerMemo": {
+ "properties": {
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DeliveryInfo": {
+ "properties": {
+ "DeliveryTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DeliveryType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "DepartmentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepositToAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DocNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EmailStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ExchangeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "FreeFormAddress": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "GlobalTaxCalculation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HomeBalance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "HomeTotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DescriptionLineDetail": {
+ "properties": {
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "GroupLineDetail": {
+ "properties": {
+ "GroupItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "SalesItemLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DiscountRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Qty": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxClassificationRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Quantity": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "SalesItemLineDetail": {
+ "properties": {
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DiscountAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DiscountRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Qty": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ServiceDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TaxClassificationRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SubtotalLineDetail": {
+ "properties": {
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PaymentMethodRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PaymentRefNum": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrintStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrivateNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RecurDataRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ShipAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ShipDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ShipFromAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ShipMethodRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TrackingNum": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "TxnSource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnTaxDetail": {
+ "properties": {
+ "TaxLine": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxLineDetail": {
+ "properties": {
+ "NetAmountTaxable": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "OverrideDeltaAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PercentBased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxInclusiveAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxRateRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "TotalTax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TxnTaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "patternProperties": {
+ "properties": {
+ ".+": {}
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/tax_agencies.json b/_data/taps/schemas/quickbooks/v2/json/tax_agencies.json
new file mode 100644
index 000000000..bfdfb86ac
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/tax_agencies.json
@@ -0,0 +1,82 @@
+{
+ "properties": {
+ "DisplayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LastFileDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxAgencyConfig": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxRegistrationNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxTrackedOnPurchases": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxTrackedOnSales": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/tax_codes.json b/_data/taps/schemas/quickbooks/v2/json/tax_codes.json
new file mode 100644
index 000000000..15efc1bdd
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/tax_codes.json
@@ -0,0 +1,194 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchaseTaxRateList": {
+ "properties": {
+ "TaxRateDetail": {
+ "items": {
+ "properties": {
+ "TaxOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "TaxRateRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxTypeApplicable": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "SalesTaxRateList": {
+ "properties": {
+ "TaxRateDetail": {
+ "items": {
+ "properties": {
+ "TaxOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "TaxRateRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxTypeApplicable": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxCodeConfigType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxGroup": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/tax_rates.json b/_data/taps/schemas/quickbooks/v2/json/tax_rates.json
new file mode 100644
index 000000000..485e0aa68
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/tax_rates.json
@@ -0,0 +1,188 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "AgencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DisplayType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EffectiveTaxRate": {
+ "anyOf": [
+ {
+ "properties": {
+ "EffectiveDate ": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "EndDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "RateValue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ {
+ "items": {
+ "properties": {
+ "EffectiveDate ": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "EndDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "RateValue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "OriginalTaxRate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RateValue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "SpecialTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxReturnLineRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/terms.json b/_data/taps/schemas/quickbooks/v2/json/terms.json
new file mode 100644
index 000000000..7df31d1de
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/terms.json
@@ -0,0 +1,100 @@
+{
+ "properties": {
+ "Active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "DayOfMonthDue": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "DiscountDayOfMonth": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "DiscountDays": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "DiscountPercent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DueDays": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "DueNextMonthDays": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/time_activities.json b/_data/taps/schemas/quickbooks/v2/json/time_activities.json
new file mode 100644
index 000000000..644b2e032
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/time_activities.json
@@ -0,0 +1,271 @@
+{
+ "properties": {
+ "BillableStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BreakHours": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "BreakMinutes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CostRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepartmentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EmployeeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "EndTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HourlyRate": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Hours": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Minutes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "NameOf": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PayrollItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "StartTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "VendorRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "patternProperties": {
+ "properties": {
+ ".+": {}
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/transfers.json b/_data/taps/schemas/quickbooks/v2/json/transfers.json
new file mode 100644
index 000000000..bdf8ff349
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/transfers.json
@@ -0,0 +1,152 @@
+{
+ "properties": {
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ExchangeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "FromAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PrivateNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RecurDataRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ToAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/vendor_credits.json b/_data/taps/schemas/quickbooks/v2/json/vendor_credits.json
new file mode 100644
index 000000000..1f8ca6ea2
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/vendor_credits.json
@@ -0,0 +1,634 @@
+{
+ "properties": {
+ "APAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DepartmentRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DocNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ExchangeRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "GlobalTaxCalculation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInAnnualTPAR": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Line": {
+ "items": {
+ "properties": {
+ "AccountBasedExpenseLineDetail": {
+ "properties": {
+ "AccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "BillableStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "TaxAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DetailType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ItemBasedExpenseLineDetail": {
+ "properties": {
+ "BillableStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ClassRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CustomerRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ItemRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "MarkupInfo": {
+ "properties": {
+ "MarkUpIncomeAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PriceLevelRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Qty": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "TaxCodeRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "TaxInclusiveAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UnitPrice": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "LineNum": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "LinkedTxn": {
+ "items": {
+ "properties": {
+ "TxnId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnLineId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PrivateNote": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RecurDataRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TotalAmt": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TransactionLocationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TxnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "VendorRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/json/vendors.json b/_data/taps/schemas/quickbooks/v2/json/vendors.json
new file mode 100644
index 000000000..ef3782842
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/json/vendors.json
@@ -0,0 +1,459 @@
+{
+ "properties": {
+ "APAccountRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "AcctNum": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "AlternatePhone": {
+ "properties": {
+ "FreeFormNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BillAddr": {
+ "properties": {
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountrySubDivisionCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Lat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Line5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Long": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "BillRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BusinessNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CompanyName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CostRate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "CurrencyRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "DisplayName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FamilyName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Fax": {
+ "properties": {
+ "FreeFormNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "GSTIN": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "GSTRegistrationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "GivenName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasTPAR": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "MetaData": {
+ "properties": {
+ "CreateTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LastUpdatedTime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "MiddleName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Mobile": {
+ "properties": {
+ "FreeFormNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "OtherContactInfo": {
+ "properties": {
+ "Telephone": {},
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PrimaryEmailAddr": {
+ "properties": {
+ "Address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PrimaryPhone": {
+ "properties": {
+ "FreeFormNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "PrintOnCheckName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Suffix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SyncToken": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "T4AEligible": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "T5018Eligible": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TaxIdentifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxReportingBasis": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TermRef": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Vendor1099": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "VendorPaymentBankDetail": {
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankBranchIdentifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "StatementText": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "WebAddr": {
+ "properties": {
+ "URI": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "patternProperties": {
+ "properties": {
+ ".+": {}
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/quickbooks/v2/quickbooks-v2-foreign-keys.yml b/_data/taps/schemas/quickbooks/v2/quickbooks-v2-foreign-keys.yml
new file mode 100644
index 000000000..ed2b93b05
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/quickbooks-v2-foreign-keys.yml
@@ -0,0 +1,5853 @@
+tap: quickbooks
+version: '2'
+keys:
+ accounts_value:
+ - table: accounts
+ keys:
+ - Id
+ - ParentRef.value
+ - table: bill_payments
+ keys:
+ - APAccountRef.value
+ - CheckPayment.BankAccountRef.value
+ - CreditCardPayment.CCAccountRef.value
+ - table: bills
+ keys:
+ - APAccountRef.value
+ - Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - table: budgets
+ keys:
+ - BudgetDetail.AccountRef.value
+ - table: deposits
+ keys:
+ - CashBack.AccountRef.value
+ - DepositToAccountRef.value
+ - Line.DepositLineDetail.AccountRef.value
+ - table: invoices
+ keys:
+ - DepositToAccountRef.value
+ - Line.DiscountLineDetail.DiscountAccountRef.value
+ - table: items
+ keys:
+ - AssetAccountRef.value
+ - ExpenseAccountRef.value
+ - IncomeAccountRef.value
+ - table: journal_entries
+ keys:
+ - Line.JournalEntryLineDetail.AccountRef.value
+ - table: payments
+ keys:
+ - DepositToAccountRef.value
+ - table: purchase_orders
+ keys:
+ - APAccountRef.value
+ - table: purchases
+ keys:
+ - AccountRef.value
+ - Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - table: refund_receipts
+ keys:
+ - DepositToAccountRef.value
+ - table: sales_receipts
+ keys:
+ - DepositToAccountRef.value
+ - Line.DiscountLineDetail.DiscountAccountRef.value
+ - table: transfers
+ keys:
+ - FromAccountRef.value
+ - ToAccountRef.value
+ - table: vendor_credits
+ keys:
+ - APAccountRef.value
+ - Line.AccountBasedExpenseLineDetail.AccountRef.value
+ bill_payments_:
+ - table: bill_payments
+ keys:
+ - Id
+ - table: bills
+ keys:
+ - LinkedTxn.TxnId
+ bills_LinkedTxn.TxnId:
+ - table: bill_payments
+ keys:
+ - Line.LinkedTxn.TxnId
+ - table: bills
+ keys:
+ - Id
+ - table: purchase_orders
+ keys:
+ - LinkedTxn.TxnId
+ classes_ClassRef.value:
+ - table: budgets
+ keys:
+ - BudgetDetail.ClassRef.value
+ - table: classes
+ keys:
+ - Id
+ - ParentRef.value
+ - table: credit_memos
+ keys:
+ - ClassRef.value
+ - table: estimates
+ keys:
+ - ClassRef.value
+ - table: invoices
+ keys:
+ - ClassRef.value
+ - Line.SalesItemLineDetail.ClassRef.value
+ - table: items
+ keys:
+ - ClassRef.value
+ - table: purchase_orders
+ keys:
+ - ClassRef.value
+ - Line.ItemBasedExpenseLineDetail.ClassRef.value
+ - table: purchases
+ keys:
+ - Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - table: refund_receipts
+ keys:
+ - ClassRef.value
+ - table: sales_receipts
+ keys:
+ - ClassRef.value
+ - table: time_activities
+ keys:
+ - ClassRef.value
+ - table: vendor_credits
+ keys:
+ - Line.AccountBasedExpenseLineDetail.ClassRef.value
+ credit_memos_value:
+ - table: credit_memos
+ keys:
+ - Id
+ - table: payments
+ keys:
+ - Line.LinkedTxn.TxnId
+ _CurrencyRef.value:
+ - table: accounts
+ keys:
+ - CurrencyRef.value
+ - table: bill_payments
+ keys:
+ - CurrencyRef.value
+ - table: bills
+ keys:
+ - CurrencyRef.value
+ - table: credit_memos
+ keys:
+ - CurrencyRef.value
+ - table: customers
+ keys:
+ - CurrencyRef.value
+ - table: deposits
+ keys:
+ - CurrencyRef.value
+ - table: estimates
+ keys:
+ - CurrencyRef.value
+ - table: invoices
+ keys:
+ - CurrencyRef.value
+ - table: journal_entries
+ keys:
+ - CurrencyRef.value
+ - table: payments
+ keys:
+ - CurrencyRef.value
+ - table: purchase_orders
+ keys:
+ - CurrencyRef.value
+ - table: purchases
+ keys:
+ - CurrencyRef.value
+ - table: refund_receipts
+ keys:
+ - CurrencyRef.value
+ - table: sales_receipts
+ keys:
+ - CurrencyRef.value
+ - table: transfers
+ keys:
+ - CurrencyRef.value
+ - table: vendor_credits
+ keys:
+ - CurrencyRef.value
+ - table: vendors
+ keys:
+ - CurrencyRef.value
+ customers_CustomerRef.value:
+ - table: bills
+ keys:
+ - Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - table: budgets
+ keys:
+ - BudgetDetail.CustomerRef.value
+ - table: credit_memos
+ keys:
+ - CustomerRef.value
+ - table: customers
+ keys:
+ - Id
+ - table: estimates
+ keys:
+ - CustomerRef.value
+ - table: invoices
+ keys:
+ - CustomerRef.value
+ - table: payments
+ keys:
+ - CustomerRef.value
+ - table: purchase_orders
+ keys:
+ - Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ - table: purchases
+ keys:
+ - Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - table: refund_receipts
+ keys:
+ - CustomerRef.value
+ - table: sales_receipts
+ keys:
+ - CustomerRef.value
+ - table: vendor_credits
+ keys:
+ - Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ departments_DepartmentRef.value:
+ - table: bills
+ keys:
+ - DepartmentRef.value
+ - table: bill_payments
+ keys:
+ - DepartmentRef.value
+ - table: budgets
+ keys:
+ - BudgetDetail.DepartmentRef.value
+ - table: departments
+ keys:
+ - ParentRef.value
+ - Id
+ - table: deposits
+ keys:
+ - DepartmentRef.value
+ - table: estimates
+ keys:
+ - DepartmentRef.value
+ - table: invoices
+ keys:
+ - DepartmentRef.value
+ - table: purchase_orders
+ keys:
+ - DepartmentRef.value
+ - table: purchases
+ keys:
+ - DepartmentRef.value
+ - table: refund_receipts
+ keys:
+ - DepartmentRef.value
+ - table: sales_receipts
+ keys:
+ - DepartmentRef.value
+ - table: time_activities
+ keys:
+ - DepartmentRef.value
+ - table: vendor_credits
+ keys:
+ - DepartmentRef.value
+ deposits_value:
+ - table: deposits
+ keys:
+ - Id
+ employees_value:
+ - table: employees
+ keys:
+ - Id
+ - table: purchases
+ keys:
+ - EntityRef.value
+ - table: time_activities
+ keys:
+ - EmployeeRef.value
+ estimates_value:
+ - table: estimates
+ keys:
+ - Id
+ - table: invoices
+ keys:
+ - LinkedTxn.TxnId
+ invoices_LinkedTxn.TxnId:
+ - table: estimates
+ keys:
+ - LinkedTxn.TxnId
+ - table: invoices
+ keys:
+ - Id
+ - table: payments
+ keys:
+ - Line.LinkedTxn.TxnId
+ items_ItemRef.value:
+ - table: bills
+ keys:
+ - Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - table: credit_memos
+ keys:
+ - Line.SalesItemLineDetail.ItemRef.value
+ - table: estimates
+ keys:
+ - Line.SalesItemLineDetail.ItemRef.value
+ - table: invoices
+ keys:
+ - Line.SalesItemLineDetail.ItemRef.value
+ - table: items
+ keys:
+ - Id
+ - ParentRef.value
+ - table: purchase_orders
+ keys:
+ - Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - table: purchases
+ keys:
+ - Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - table: refund_receipts
+ keys:
+ - Line.SalesItemLineDetail.ItemRef.value
+ - table: sales_receipts
+ keys:
+ - Line.SalesItemLineDetail.ItemRef.value
+ - table: time_activities
+ keys:
+ - ItemRef.value
+ journal_entries_LinkedTxn.TxnId:
+ - table: bill_payments
+ keys:
+ - Line.LinkedTxn.TxnId
+ - table: deposits
+ keys:
+ - Line.LinkedTxn.TxnId
+ - table: journal_entries
+ keys:
+ - Id
+ payments_LinkedTxn.TxnId:
+ - table: deposits
+ keys:
+ - Line.LinkedTxn.TxnId
+ - table: invoices
+ keys:
+ - LinkedTxn.TxnId
+ - table: payments
+ keys:
+ - Id
+ payment_methods_PaymentMethodRef.value:
+ - table: customers
+ keys:
+ - PaymentMethodRef.value
+ - table: deposits
+ keys:
+ - Line.DepositLineDetail.PaymentMethodRef.value
+ - table: payment_methods
+ keys:
+ - Id
+ - table: payments
+ keys:
+ - PaymentMethodRef.value
+ - table: purchases
+ keys:
+ - PaymentMethodRef.value
+ - table: refund_receipts
+ keys:
+ - PaymentMethodRef.value
+ - table: sales_receipts
+ keys:
+ - PaymentMethodRef.value
+ purchases_LinkedTxn.TxnId:
+ - table: invoices
+ keys:
+ - LinkedTxn.TxnId
+ - table: payments
+ keys:
+ - Line.LinkedTxn.TxnId
+ - table: purchases
+ keys:
+ - Id
+ purchase_orders_value:
+ - table: bills
+ keys:
+ - LinkedTxn.TxnId
+ - table: purchase_orders
+ keys:
+ - Id
+ refund_receipts_LinkedTxn.TxnId:
+ - table: deposits
+ keys:
+ - Line.LinkedTxn.TxnId
+ - table: refund_receipts
+ keys:
+ - Id
+ sales_receipts_LinkedTxn.TxnId:
+ - table: deposits
+ keys:
+ - Line.LinkedTxn.TxnId
+ - table: sales_receipts
+ keys:
+ - Id
+ tax_agencies_value:
+ - table: tax_agencies
+ keys:
+ - Id
+ - table: tax_rates
+ keys:
+ - AgencyRef.value
+ tax_codes_TaxCodeRef.value:
+ - table: bills
+ keys:
+ - Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table: credit_memos
+ keys:
+ - Line.SalesItemLineDetail.TaxCodeRef.value
+ - table: customers
+ keys:
+ - DefaultTaxCodeRef.value
+ - table: estimates
+ keys:
+ - Line.SalesItemLineDetail.TaxCodeRef.value
+ - TxnTaxDetail.TxnTaxCodeRef.value
+ - table: invoices
+ keys:
+ - Line.SalesItemLineDetail.TaxCodeRef.value
+ - TxnTaxDetail.TxnTaxCodeRef.value
+ - table: items
+ keys:
+ - PurchaseTaxCodeRef.value
+ - SalesTaxCodeRef.value
+ - table: journal_entries
+ keys:
+ - TxnTaxDetail.TxnTaxCodeRef.value
+ - table: purchase_orders
+ keys:
+ - Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table: purchases
+ keys:
+ - Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table: refund_receipts
+ keys:
+ - Line.SalesItemLineDetail.TaxCodeRef.value
+ - table: sales_receipts
+ keys:
+ - Line.SalesItemLineDetail.TaxCodeRef.value
+ - table: vendor_credits
+ keys:
+ - Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ tax_rates_TaxRateRef.value:
+ - table: estimates
+ keys:
+ - TxnTaxDetail.TaxLine.TaxLineDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - table: invoices
+ keys:
+ - TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - table: journal_entries
+ keys:
+ - TaxRateRef.value
+ - TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - table: tax_codes
+ keys:
+ - PurchaseTaxRateList.TaxRateDetail.TaxRateRef.value
+ - SalesTaxRateList.TaxRateDetail.TaxRateRef.value
+ - table: tax_rates
+ keys:
+ - Id
+ terms_SalesTermRef.value:
+ - table: bills
+ keys:
+ - SalesTermRef.value
+ - table: credit_memos
+ keys:
+ - SalesTermRef.value
+ - table: customers
+ keys:
+ - SalesTermRef.value
+ - table: estimates
+ keys:
+ - SalesTermRef.value
+ - table: invoices
+ keys:
+ - SalesTermRef.value
+ - table: purchase_orders
+ keys:
+ - SalesTermRef.value
+ - table: terms
+ keys:
+ - Id
+ time_activities_value:
+ - table: invoices
+ keys:
+ - LinkedTxn.TxnId
+ - table: time_activities
+ keys:
+ - Id
+ bill_payments_Id:
+ - table: bills
+ keys:
+ - Id
+ - table: journal_entries
+ keys:
+ - Id
+ - table: vendor_credits
+ keys:
+ - Id
+ bills_Id:
+ - table: bill_payments
+ keys:
+ - Id
+ - table: purchase_orders
+ keys:
+ - Id
+ deposits_Id:
+ - table: journal_entries
+ keys:
+ - Id
+ - table: payments
+ keys:
+ - Id
+ - table: refund_receipts
+ keys:
+ - Id
+ - table: sales_receipts
+ keys:
+ - Id
+ - table: transfers
+ keys:
+ - Id
+ invoices_Id:
+ - table: estimates
+ keys:
+ - Id
+ - table: payments
+ keys:
+ - Id
+ - table: purchases
+ keys:
+ - Id
+ - table: time_activities
+ keys:
+ - Id
+ payments_Id:
+ - table: credit_memos
+ keys:
+ - Id
+ - table: invoices
+ keys:
+ - Id
+ - table: purchases
+ keys:
+ - Id
+ transfers_LinkedTxn.TxnId:
+ - table: deposits
+ keys:
+ - Line.LinkedTxn.TxnId
+ - table: transfers
+ keys:
+ - Id
+ vendor_credits_:
+ - table: bill_payments
+ keys:
+ - Line.LinkedTxn.TxnId
+ - table: vendor_credits
+ keys:
+ - Id
+ vendors_VendorRef.value:
+ - table: bill_payments
+ keys:
+ - VendorRef.value
+ - table: bills
+ keys:
+ - VendorRef.value
+ - table: items
+ keys:
+ - PrefVendorRef.value
+ - table: purchase_orders
+ keys:
+ - VendorRef.value
+ - table: time_activities
+ keys:
+ - VendorRef.value
+ - table: vendor_credits
+ keys:
+ - VendorRef.value
+ - table: vendors
+ keys:
+ - Id
+tables:
+- table-name: accounts
+ join:
+ - table-name: bill_payments
+ keys:
+ - key: Id
+ foreign-key: APAccountRef.value
+ - key: ParentRef.value
+ foreign-key: APAccountRef.value
+ - key: Id
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: ParentRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: Id
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: ParentRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bills
+ keys:
+ - key: Id
+ foreign-key: APAccountRef.value
+ - key: ParentRef.value
+ foreign-key: APAccountRef.value
+ - key: Id
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ParentRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: budgets
+ keys:
+ - key: Id
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: ParentRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - table-name: deposits
+ keys:
+ - key: Id
+ foreign-key: CashBack.AccountRef.value
+ - key: ParentRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: Id
+ foreign-key: DepositToAccountRef.value
+ - key: ParentRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Id
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: ParentRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: invoices
+ keys:
+ - key: Id
+ foreign-key: DepositToAccountRef.value
+ - key: ParentRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Id
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: ParentRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: items
+ keys:
+ - key: Id
+ foreign-key: AssetAccountRef.value
+ - key: ParentRef.value
+ foreign-key: AssetAccountRef.value
+ - key: Id
+ foreign-key: ExpenseAccountRef.value
+ - key: ParentRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: Id
+ foreign-key: IncomeAccountRef.value
+ - key: ParentRef.value
+ foreign-key: IncomeAccountRef.value
+ - table-name: journal_entries
+ keys:
+ - key: Id
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: ParentRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: payments
+ keys:
+ - key: Id
+ foreign-key: DepositToAccountRef.value
+ - key: ParentRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: Id
+ foreign-key: APAccountRef.value
+ - key: ParentRef.value
+ foreign-key: APAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: purchases
+ keys:
+ - key: Id
+ foreign-key: AccountRef.value
+ - key: ParentRef.value
+ foreign-key: AccountRef.value
+ - key: Id
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ParentRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: Id
+ foreign-key: DepositToAccountRef.value
+ - key: ParentRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: Id
+ foreign-key: DepositToAccountRef.value
+ - key: ParentRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Id
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: ParentRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: transfers
+ keys:
+ - key: Id
+ foreign-key: FromAccountRef.value
+ - key: ParentRef.value
+ foreign-key: FromAccountRef.value
+ - key: Id
+ foreign-key: ToAccountRef.value
+ - key: ParentRef.value
+ foreign-key: ToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: vendor_credits
+ keys:
+ - key: Id
+ foreign-key: APAccountRef.value
+ - key: ParentRef.value
+ foreign-key: APAccountRef.value
+ - key: Id
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ParentRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: credit_memos
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: estimates
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+- table-name: bill_payments
+ join:
+ - table-name: accounts
+ keys:
+ - key: APAccountRef.value
+ foreign-key: Id
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: Id
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: Id
+ - key: APAccountRef.value
+ foreign-key: ParentRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: ParentRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: ParentRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bills
+ keys:
+ - key: APAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Id
+ foreign-key: LinkedTxn.TxnId
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: Id
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: budgets
+ keys:
+ - key: APAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: DepartmentRef.value
+ foreign-key: BudgetDetail.DepartmentRef.value
+ - table-name: deposits
+ keys:
+ - key: APAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: Line.LinkedTxn.TxnId
+ - table-name: invoices
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: items
+ keys:
+ - key: APAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: VendorRef.value
+ foreign-key: PrefVendorRef.value
+ - table-name: journal_entries
+ keys:
+ - key: APAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: Id
+ - table-name: payments
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: APAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: LinkedTxn.TxnId
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: Id
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: purchases
+ keys:
+ - key: APAccountRef.value
+ foreign-key: AccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: AccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: AccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: transfers
+ keys:
+ - key: APAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: vendor_credits
+ keys:
+ - key: APAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CheckPayment.BankAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CreditCardPayment.CCAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: Id
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: credit_memos
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: estimates
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: VendorRef.value
+ foreign-key: Id
+ - table-name: departments
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: ParentRef.value
+ - key: DepartmentRef.value
+ foreign-key: Id
+ - table-name: time_activities
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+- table-name: bills
+ join:
+ - table-name: accounts
+ keys:
+ - key: APAccountRef.value
+ foreign-key: Id
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Id
+ - key: APAccountRef.value
+ foreign-key: ParentRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: ParentRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: APAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: LinkedTxn.TxnId
+ foreign-key: Id
+ - key: Id
+ foreign-key: Line.LinkedTxn.TxnId
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: budgets
+ keys:
+ - key: APAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: BudgetDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: BudgetDetail.DepartmentRef.value
+ - table-name: deposits
+ keys:
+ - key: APAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: invoices
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: items
+ keys:
+ - key: APAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Id
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: ParentRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - key: VendorRef.value
+ foreign-key: PrefVendorRef.value
+ - table-name: journal_entries
+ keys:
+ - key: APAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: payments
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: APAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Id
+ foreign-key: LinkedTxn.TxnId
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: LinkedTxn.TxnId
+ foreign-key: Id
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: purchases
+ keys:
+ - key: APAccountRef.value
+ foreign-key: AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: AccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: transfers
+ keys:
+ - key: APAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: vendor_credits
+ keys:
+ - key: APAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: credit_memos
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Id
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: estimates
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: VendorRef.value
+ foreign-key: Id
+ - table-name: departments
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: ParentRef.value
+ - key: DepartmentRef.value
+ foreign-key: Id
+ - table-name: time_activities
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: ItemRef.value
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: terms
+ keys:
+ - key: SalesTermRef.value
+ foreign-key: Id
+- table-name: budgets
+ join:
+ - table-name: accounts
+ keys:
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: Id
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: ParentRef.value
+ - table-name: bill_payments
+ keys:
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: BudgetDetail.DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: bills
+ keys:
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: BudgetDetail.CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: BudgetDetail.DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: deposits
+ keys:
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: BudgetDetail.DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: invoices
+ keys:
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: BudgetDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: BudgetDetail.ClassRef.value
+ foreign-key: Line.SalesItemLineDetail.ClassRef.value
+ - key: BudgetDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: BudgetDetail.DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: items
+ keys:
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: BudgetDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - table-name: journal_entries
+ keys:
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - table-name: payments
+ keys:
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: BudgetDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: BudgetDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: BudgetDetail.ClassRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ - key: BudgetDetail.CustomerRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ - key: BudgetDetail.DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: purchases
+ keys:
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: AccountRef.value
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: BudgetDetail.ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: BudgetDetail.CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: BudgetDetail.DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: BudgetDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: BudgetDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: BudgetDetail.DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: BudgetDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: BudgetDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: BudgetDetail.DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: transfers
+ keys:
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: ToAccountRef.value
+ - table-name: vendor_credits
+ keys:
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: BudgetDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: BudgetDetail.ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: BudgetDetail.CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: BudgetDetail.DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: classes
+ keys:
+ - key: BudgetDetail.ClassRef.value
+ foreign-key: Id
+ - key: BudgetDetail.ClassRef.value
+ foreign-key: ParentRef.value
+ - table-name: credit_memos
+ keys:
+ - key: BudgetDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: BudgetDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - table-name: estimates
+ keys:
+ - key: BudgetDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: BudgetDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: BudgetDetail.DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: time_activities
+ keys:
+ - key: BudgetDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: BudgetDetail.DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: customers
+ keys:
+ - key: BudgetDetail.CustomerRef.value
+ foreign-key: Id
+ - table-name: departments
+ keys:
+ - key: BudgetDetail.DepartmentRef.value
+ foreign-key: ParentRef.value
+ - key: BudgetDetail.DepartmentRef.value
+ foreign-key: Id
+- table-name: deposits
+ join:
+ - table-name: accounts
+ keys:
+ - key: CashBack.AccountRef.value
+ foreign-key: Id
+ - key: DepositToAccountRef.value
+ foreign-key: Id
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: Id
+ - key: CashBack.AccountRef.value
+ foreign-key: ParentRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: ParentRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: ParentRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: CashBack.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: CashBack.AccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: CashBack.AccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: Line.LinkedTxn.TxnId
+ - table-name: bills
+ keys:
+ - key: CashBack.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: CashBack.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: budgets
+ keys:
+ - key: CashBack.AccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: DepartmentRef.value
+ foreign-key: BudgetDetail.DepartmentRef.value
+ - table-name: invoices
+ keys:
+ - key: CashBack.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CashBack.AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: LinkedTxn.TxnId
+ - table-name: items
+ keys:
+ - key: CashBack.AccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: CashBack.AccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: CashBack.AccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - table-name: journal_entries
+ keys:
+ - key: CashBack.AccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: Id
+ - table-name: payments
+ keys:
+ - key: CashBack.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: Id
+ - key: Line.DepositLineDetail.PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: CashBack.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: purchases
+ keys:
+ - key: CashBack.AccountRef.value
+ foreign-key: AccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: AccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: AccountRef.value
+ - key: CashBack.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.DepositLineDetail.PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: CashBack.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.DepositLineDetail.PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: Id
+ - table-name: sales_receipts
+ keys:
+ - key: CashBack.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CashBack.AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.DepositLineDetail.PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: Id
+ - table-name: transfers
+ keys:
+ - key: CashBack.AccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: CashBack.AccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: Id
+ - table-name: vendor_credits
+ keys:
+ - key: CashBack.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: CashBack.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.DepositLineDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: credit_memos
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.DepositLineDetail.PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - table-name: estimates
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: departments
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: ParentRef.value
+ - key: DepartmentRef.value
+ foreign-key: Id
+ - table-name: time_activities
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: payment_methods
+ keys:
+ - key: Line.DepositLineDetail.PaymentMethodRef.value
+ foreign-key: Id
+- table-name: invoices
+ join:
+ - table-name: accounts
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: Id
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: Id
+ - key: DepositToAccountRef.value
+ foreign-key: ParentRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: ParentRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: bills
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: budgets
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: BudgetDetail.ClassRef.value
+ - key: Line.SalesItemLineDetail.ClassRef.value
+ foreign-key: BudgetDetail.ClassRef.value
+ - key: CustomerRef.value
+ foreign-key: BudgetDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: BudgetDetail.DepartmentRef.value
+ - table-name: deposits
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: LinkedTxn.TxnId
+ foreign-key: Line.LinkedTxn.TxnId
+ - table-name: items
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.SalesItemLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Id
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: ParentRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - table-name: journal_entries
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: TaxRateRef.value
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - table-name: payments
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Id
+ foreign-key: Line.LinkedTxn.TxnId
+ - key: LinkedTxn.TxnId
+ foreign-key: Id
+ - key: LinkedTxn.TxnId
+ foreign-key: Line.LinkedTxn.TxnId
+ - table-name: purchase_orders
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.SalesItemLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ClassRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ - key: Line.SalesItemLineDetail.ClassRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: purchases
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: AccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: Line.SalesItemLineDetail.ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: LinkedTxn.TxnId
+ foreign-key: Id
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: refund_receipts
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.SalesItemLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.SalesItemLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: transfers
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: vendor_credits
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: Line.SalesItemLineDetail.ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: classes
+ keys:
+ - key: ClassRef.value
+ foreign-key: Id
+ - key: Line.SalesItemLineDetail.ClassRef.value
+ foreign-key: Id
+ - key: ClassRef.value
+ foreign-key: ParentRef.value
+ - key: Line.SalesItemLineDetail.ClassRef.value
+ foreign-key: ParentRef.value
+ - table-name: credit_memos
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.SalesItemLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: estimates
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.SalesItemLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: LinkedTxn.TxnId
+ foreign-key: Id
+ - key: Id
+ foreign-key: LinkedTxn.TxnId
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: time_activities
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.SalesItemLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: ItemRef.value
+ - key: LinkedTxn.TxnId
+ foreign-key: Id
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Id
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: departments
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: ParentRef.value
+ - key: DepartmentRef.value
+ foreign-key: Id
+ - table-name: tax_codes
+ keys:
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: PurchaseTaxRateList.TaxRateDetail.TaxRateRef.value
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: SalesTaxRateList.TaxRateDetail.TaxRateRef.value
+ - table-name: tax_rates
+ keys:
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: Id
+ - table-name: terms
+ keys:
+ - key: SalesTermRef.value
+ foreign-key: Id
+- table-name: items
+ join:
+ - table-name: accounts
+ keys:
+ - key: AssetAccountRef.value
+ foreign-key: Id
+ - key: ExpenseAccountRef.value
+ foreign-key: Id
+ - key: IncomeAccountRef.value
+ foreign-key: Id
+ - key: AssetAccountRef.value
+ foreign-key: ParentRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: ParentRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: ParentRef.value
+ - table-name: bill_payments
+ keys:
+ - key: AssetAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: AssetAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: AssetAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: PrefVendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: bills
+ keys:
+ - key: AssetAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: AssetAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Id
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: ParentRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: PrefVendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: budgets
+ keys:
+ - key: AssetAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: BudgetDetail.ClassRef.value
+ - table-name: deposits
+ keys:
+ - key: AssetAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: AssetAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: AssetAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - table-name: invoices
+ keys:
+ - key: AssetAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: AssetAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ClassRef.value
+ foreign-key: Line.SalesItemLineDetail.ClassRef.value
+ - key: Id
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: ParentRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - table-name: journal_entries
+ keys:
+ - key: AssetAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - table-name: payments
+ keys:
+ - key: AssetAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: AssetAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ClassRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ - key: Id
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: ParentRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: PrefVendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: purchases
+ keys:
+ - key: AssetAccountRef.value
+ foreign-key: AccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: AccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: AccountRef.value
+ - key: AssetAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: Id
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: ParentRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: AssetAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Id
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: ParentRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: AssetAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: AssetAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Id
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: ParentRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: transfers
+ keys:
+ - key: AssetAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: AssetAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: ToAccountRef.value
+ - table-name: vendor_credits
+ keys:
+ - key: AssetAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: AssetAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ExpenseAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: IncomeAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: PrefVendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: classes
+ keys:
+ - key: ClassRef.value
+ foreign-key: Id
+ - key: ClassRef.value
+ foreign-key: ParentRef.value
+ - table-name: credit_memos
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Id
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: ParentRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: estimates
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Id
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: ParentRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - table-name: time_activities
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Id
+ foreign-key: ItemRef.value
+ - key: ParentRef.value
+ foreign-key: ItemRef.value
+ - key: PrefVendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: customers
+ keys:
+ - key: PurchaseTaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - key: SalesTaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - table-name: vendors
+ keys:
+ - key: PrefVendorRef.value
+ foreign-key: Id
+- table-name: journal_entries
+ join:
+ - table-name: accounts
+ keys:
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: Id
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: ParentRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Line.LinkedTxn.TxnId
+ - table-name: bills
+ keys:
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: budgets
+ keys:
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - table-name: deposits
+ keys:
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Line.LinkedTxn.TxnId
+ - table-name: invoices
+ keys:
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: TaxRateRef.value
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - table-name: items
+ keys:
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - table-name: payments
+ keys:
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: purchase_orders
+ keys:
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: purchases
+ keys:
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: AccountRef.value
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: sales_receipts
+ keys:
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: transfers
+ keys:
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: vendor_credits
+ keys:
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.JournalEntryLineDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: credit_memos
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - table-name: estimates
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: TaxRateRef.value
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: tax_codes
+ keys:
+ - key: TaxRateRef.value
+ foreign-key: PurchaseTaxRateList.TaxRateDetail.TaxRateRef.value
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: PurchaseTaxRateList.TaxRateDetail.TaxRateRef.value
+ - key: TaxRateRef.value
+ foreign-key: SalesTaxRateList.TaxRateDetail.TaxRateRef.value
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: SalesTaxRateList.TaxRateDetail.TaxRateRef.value
+ - table-name: tax_rates
+ keys:
+ - key: TaxRateRef.value
+ foreign-key: Id
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: Id
+- table-name: payments
+ join:
+ - table-name: accounts
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: Id
+ - key: DepositToAccountRef.value
+ foreign-key: ParentRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bills
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - table-name: budgets
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: CustomerRef.value
+ foreign-key: BudgetDetail.CustomerRef.value
+ - table-name: deposits
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Line.LinkedTxn.TxnId
+ - key: PaymentMethodRef.value
+ foreign-key: Line.DepositLineDetail.PaymentMethodRef.value
+ - table-name: invoices
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: Id
+ - key: Id
+ foreign-key: LinkedTxn.TxnId
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: LinkedTxn.TxnId
+ - table-name: items
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - table-name: journal_entries
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: purchase_orders
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ - table-name: purchases
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: AccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: Id
+ - key: Id
+ foreign-key: Id
+ - table-name: refund_receipts
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: sales_receipts
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: transfers
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: vendor_credits
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - table-name: credit_memos
+ keys:
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: Id
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Id
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - table-name: estimates
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Line.LinkedTxn.TxnId
+ foreign-key: LinkedTxn.TxnId
+ - key: Id
+ foreign-key: Id
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: payment_methods
+ keys:
+ - key: PaymentMethodRef.value
+ foreign-key: Id
+ - table-name: time_activities
+ keys:
+ - key: Id
+ foreign-key: Id
+- table-name: purchase_orders
+ join:
+ - table-name: accounts
+ keys:
+ - key: APAccountRef.value
+ foreign-key: Id
+ - key: APAccountRef.value
+ foreign-key: ParentRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: APAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: LinkedTxn.TxnId
+ foreign-key: Line.LinkedTxn.TxnId
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: Id
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: bills
+ keys:
+ - key: APAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: LinkedTxn.TxnId
+ foreign-key: Id
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Id
+ foreign-key: LinkedTxn.TxnId
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: budgets
+ keys:
+ - key: APAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: BudgetDetail.ClassRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ foreign-key: BudgetDetail.ClassRef.value
+ - key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: BudgetDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: BudgetDetail.DepartmentRef.value
+ - table-name: deposits
+ keys:
+ - key: APAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: invoices
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ClassRef.value
+ foreign-key: Line.SalesItemLineDetail.ClassRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ foreign-key: Line.SalesItemLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: items
+ keys:
+ - key: APAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Id
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: ParentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - key: VendorRef.value
+ foreign-key: PrefVendorRef.value
+ - table-name: journal_entries
+ keys:
+ - key: APAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - table-name: payments
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - table-name: purchases
+ keys:
+ - key: APAccountRef.value
+ foreign-key: AccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: transfers
+ keys:
+ - key: APAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: vendor_credits
+ keys:
+ - key: APAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: classes
+ keys:
+ - key: ClassRef.value
+ foreign-key: Id
+ - key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ foreign-key: Id
+ - key: ClassRef.value
+ foreign-key: ParentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ParentRef.value
+ - table-name: credit_memos
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: estimates
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: time_activities
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: ItemRef.value
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Id
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: VendorRef.value
+ foreign-key: Id
+ - table-name: departments
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: ParentRef.value
+ - key: DepartmentRef.value
+ foreign-key: Id
+ - table-name: terms
+ keys:
+ - key: SalesTermRef.value
+ foreign-key: Id
+- table-name: purchases
+ join:
+ - table-name: accounts
+ keys:
+ - key: AccountRef.value
+ foreign-key: Id
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Id
+ - key: AccountRef.value
+ foreign-key: ParentRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: ParentRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: AccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: AccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: bills
+ keys:
+ - key: AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: budgets
+ keys:
+ - key: AccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: BudgetDetail.ClassRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: BudgetDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: BudgetDetail.DepartmentRef.value
+ - table-name: deposits
+ keys:
+ - key: AccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: AccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: Line.DepositLineDetail.PaymentMethodRef.value
+ - table-name: invoices
+ keys:
+ - key: AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: Line.SalesItemLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Id
+ foreign-key: LinkedTxn.TxnId
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: items
+ keys:
+ - key: AccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: AccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: AccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Id
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: ParentRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - table-name: journal_entries
+ keys:
+ - key: AccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - table-name: payments
+ keys:
+ - key: AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Id
+ foreign-key: Line.LinkedTxn.TxnId
+ - key: Id
+ foreign-key: Id
+ - table-name: purchase_orders
+ keys:
+ - key: AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: transfers
+ keys:
+ - key: AccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: AccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: vendor_credits
+ keys:
+ - key: AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: classes
+ keys:
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: Id
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ParentRef.value
+ - table-name: credit_memos
+ keys:
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: estimates
+ keys:
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: time_activities
+ keys:
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: EntityRef.value
+ foreign-key: EmployeeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ foreign-key: ItemRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Id
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: departments
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: ParentRef.value
+ - key: DepartmentRef.value
+ foreign-key: Id
+ - table-name: employees
+ keys:
+ - key: EntityRef.value
+ foreign-key: Id
+ - table-name: payment_methods
+ keys:
+ - key: PaymentMethodRef.value
+ foreign-key: Id
+- table-name: refund_receipts
+ join:
+ - table-name: accounts
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: Id
+ - key: DepositToAccountRef.value
+ foreign-key: ParentRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: bills
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: budgets
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: BudgetDetail.ClassRef.value
+ - key: CustomerRef.value
+ foreign-key: BudgetDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: BudgetDetail.DepartmentRef.value
+ - table-name: deposits
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: Line.DepositLineDetail.PaymentMethodRef.value
+ - key: Id
+ foreign-key: Line.LinkedTxn.TxnId
+ - table-name: invoices
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ClassRef.value
+ foreign-key: Line.SalesItemLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - table-name: items
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Id
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: ParentRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - table-name: journal_entries
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: payments
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: purchase_orders
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ClassRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: purchases
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: AccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: transfers
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: vendor_credits
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: classes
+ keys:
+ - key: ClassRef.value
+ foreign-key: Id
+ - key: ClassRef.value
+ foreign-key: ParentRef.value
+ - table-name: credit_memos
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: estimates
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - table-name: time_activities
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: ItemRef.value
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Id
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: departments
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: ParentRef.value
+ - key: DepartmentRef.value
+ foreign-key: Id
+ - table-name: payment_methods
+ keys:
+ - key: PaymentMethodRef.value
+ foreign-key: Id
+- table-name: sales_receipts
+ join:
+ - table-name: accounts
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: Id
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: Id
+ - key: DepositToAccountRef.value
+ foreign-key: ParentRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: ParentRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: bills
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: budgets
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: BudgetDetail.ClassRef.value
+ - key: CustomerRef.value
+ foreign-key: BudgetDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: BudgetDetail.DepartmentRef.value
+ - table-name: deposits
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: Line.DepositLineDetail.PaymentMethodRef.value
+ - key: Id
+ foreign-key: Line.LinkedTxn.TxnId
+ - table-name: invoices
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ClassRef.value
+ foreign-key: Line.SalesItemLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - table-name: items
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Id
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: ParentRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - table-name: journal_entries
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: payments
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: purchase_orders
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ClassRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: purchases
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: AccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: transfers
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: vendor_credits
+ keys:
+ - key: DepositToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: DepositToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.DiscountLineDetail.DiscountAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: classes
+ keys:
+ - key: ClassRef.value
+ foreign-key: Id
+ - key: ClassRef.value
+ foreign-key: ParentRef.value
+ - table-name: credit_memos
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: estimates
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - table-name: time_activities
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: ItemRef.value
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Id
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: departments
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: ParentRef.value
+ - key: DepartmentRef.value
+ foreign-key: Id
+ - table-name: payment_methods
+ keys:
+ - key: PaymentMethodRef.value
+ foreign-key: Id
+- table-name: transfers
+ join:
+ - table-name: accounts
+ keys:
+ - key: FromAccountRef.value
+ foreign-key: Id
+ - key: ToAccountRef.value
+ foreign-key: Id
+ - key: FromAccountRef.value
+ foreign-key: ParentRef.value
+ - key: ToAccountRef.value
+ foreign-key: ParentRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: FromAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: FromAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: FromAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bills
+ keys:
+ - key: FromAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: FromAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: budgets
+ keys:
+ - key: FromAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - table-name: deposits
+ keys:
+ - key: FromAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: FromAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: FromAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Line.LinkedTxn.TxnId
+ - table-name: invoices
+ keys:
+ - key: FromAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: FromAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: items
+ keys:
+ - key: FromAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: FromAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: FromAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - table-name: journal_entries
+ keys:
+ - key: FromAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: payments
+ keys:
+ - key: FromAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: purchase_orders
+ keys:
+ - key: FromAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: purchases
+ keys:
+ - key: FromAccountRef.value
+ foreign-key: AccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: AccountRef.value
+ - key: FromAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: FromAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: sales_receipts
+ keys:
+ - key: FromAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: FromAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: vendor_credits
+ keys:
+ - key: FromAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: FromAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: ToAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: credit_memos
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: estimates
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+- table-name: vendor_credits
+ join:
+ - table-name: accounts
+ keys:
+ - key: APAccountRef.value
+ foreign-key: Id
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Id
+ - key: APAccountRef.value
+ foreign-key: ParentRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: ParentRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: APAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: CheckPayment.BankAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: CreditCardPayment.CCAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: Line.LinkedTxn.TxnId
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: bills
+ keys:
+ - key: APAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: budgets
+ keys:
+ - key: APAccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: BudgetDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: BudgetDetail.ClassRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: BudgetDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: BudgetDetail.DepartmentRef.value
+ - table-name: deposits
+ keys:
+ - key: APAccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: CashBack.AccountRef.value
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.DepositLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: invoices
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: Line.SalesItemLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - table-name: items
+ keys:
+ - key: APAccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: AssetAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: ExpenseAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: IncomeAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - key: VendorRef.value
+ foreign-key: PrefVendorRef.value
+ - table-name: journal_entries
+ keys:
+ - key: APAccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.JournalEntryLineDetail.AccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: payments
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: APAccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: APAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: purchases
+ keys:
+ - key: APAccountRef.value
+ foreign-key: AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: AccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: APAccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: DepositToAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: Line.DiscountLineDetail.DiscountAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: transfers
+ keys:
+ - key: APAccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: FromAccountRef.value
+ - key: APAccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: Line.AccountBasedExpenseLineDetail.AccountRef.value
+ foreign-key: ToAccountRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: classes
+ keys:
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: Id
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ParentRef.value
+ - table-name: credit_memos
+ keys:
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: estimates
+ keys:
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - table-name: time_activities
+ keys:
+ - key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ foreign-key: ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ foreign-key: Id
+ - key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: VendorRef.value
+ foreign-key: Id
+ - table-name: departments
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: ParentRef.value
+ - key: DepartmentRef.value
+ foreign-key: Id
+- table-name: classes
+ join:
+ - table-name: budgets
+ keys:
+ - key: Id
+ foreign-key: BudgetDetail.ClassRef.value
+ - key: ParentRef.value
+ foreign-key: BudgetDetail.ClassRef.value
+ - table-name: credit_memos
+ keys:
+ - key: Id
+ foreign-key: ClassRef.value
+ - key: ParentRef.value
+ foreign-key: ClassRef.value
+ - table-name: estimates
+ keys:
+ - key: Id
+ foreign-key: ClassRef.value
+ - key: ParentRef.value
+ foreign-key: ClassRef.value
+ - table-name: invoices
+ keys:
+ - key: Id
+ foreign-key: ClassRef.value
+ - key: ParentRef.value
+ foreign-key: ClassRef.value
+ - key: Id
+ foreign-key: Line.SalesItemLineDetail.ClassRef.value
+ - key: ParentRef.value
+ foreign-key: Line.SalesItemLineDetail.ClassRef.value
+ - table-name: items
+ keys:
+ - key: Id
+ foreign-key: ClassRef.value
+ - key: ParentRef.value
+ foreign-key: ClassRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: Id
+ foreign-key: ClassRef.value
+ - key: ParentRef.value
+ foreign-key: ClassRef.value
+ - key: Id
+ foreign-key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ - key: ParentRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ - table-name: purchases
+ keys:
+ - key: Id
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: ParentRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: Id
+ foreign-key: ClassRef.value
+ - key: ParentRef.value
+ foreign-key: ClassRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: Id
+ foreign-key: ClassRef.value
+ - key: ParentRef.value
+ foreign-key: ClassRef.value
+ - table-name: time_activities
+ keys:
+ - key: Id
+ foreign-key: ClassRef.value
+ - key: ParentRef.value
+ foreign-key: ClassRef.value
+ - table-name: vendor_credits
+ keys:
+ - key: Id
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: ParentRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+- table-name: credit_memos
+ join:
+ - table-name: budgets
+ keys:
+ - key: ClassRef.value
+ foreign-key: BudgetDetail.ClassRef.value
+ - key: CustomerRef.value
+ foreign-key: BudgetDetail.CustomerRef.value
+ - table-name: classes
+ keys:
+ - key: ClassRef.value
+ foreign-key: Id
+ - key: ClassRef.value
+ foreign-key: ParentRef.value
+ - table-name: estimates
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: invoices
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ClassRef.value
+ foreign-key: Line.SalesItemLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: items
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Id
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: ParentRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ClassRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: purchases
+ keys:
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: refund_receipts
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: time_activities
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: ItemRef.value
+ - table-name: vendor_credits
+ keys:
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: payments
+ keys:
+ - key: Id
+ foreign-key: Line.LinkedTxn.TxnId
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - table-name: accounts
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bills
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Id
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: deposits
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: journal_entries
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - table-name: transfers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: terms
+ keys:
+ - key: SalesTermRef.value
+ foreign-key: Id
+- table-name: estimates
+ join:
+ - table-name: budgets
+ keys:
+ - key: ClassRef.value
+ foreign-key: BudgetDetail.ClassRef.value
+ - key: CustomerRef.value
+ foreign-key: BudgetDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: BudgetDetail.DepartmentRef.value
+ - table-name: classes
+ keys:
+ - key: ClassRef.value
+ foreign-key: Id
+ - key: ClassRef.value
+ foreign-key: ParentRef.value
+ - table-name: credit_memos
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: invoices
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ClassRef.value
+ foreign-key: Line.SalesItemLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: LinkedTxn.TxnId
+ - key: LinkedTxn.TxnId
+ foreign-key: Id
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: items
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Id
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: ParentRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ClassRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: purchases
+ keys:
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: refund_receipts
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: time_activities
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: ItemRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: vendor_credits
+ keys:
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: accounts
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: bills
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Line.SalesItemLineDetail.ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: Id
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: DefaultTaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: deposits
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: journal_entries
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Line.SalesItemLineDetail.TaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: TxnTaxDetail.TxnTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: TaxRateRef.value
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - table-name: payments
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: CustomerRef.value
+ foreign-key: CustomerRef.value
+ - key: LinkedTxn.TxnId
+ foreign-key: Line.LinkedTxn.TxnId
+ - key: Id
+ foreign-key: Id
+ - table-name: transfers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: departments
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: ParentRef.value
+ - key: DepartmentRef.value
+ foreign-key: Id
+ - table-name: tax_codes
+ keys:
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: PurchaseTaxRateList.TaxRateDetail.TaxRateRef.value
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: SalesTaxRateList.TaxRateDetail.TaxRateRef.value
+ - table-name: tax_rates
+ keys:
+ - key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ foreign-key: Id
+ - table-name: terms
+ keys:
+ - key: SalesTermRef.value
+ foreign-key: Id
+- table-name: time_activities
+ join:
+ - table-name: budgets
+ keys:
+ - key: ClassRef.value
+ foreign-key: BudgetDetail.ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: BudgetDetail.DepartmentRef.value
+ - table-name: classes
+ keys:
+ - key: ClassRef.value
+ foreign-key: Id
+ - key: ClassRef.value
+ foreign-key: ParentRef.value
+ - table-name: credit_memos
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - table-name: estimates
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: invoices
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ClassRef.value
+ foreign-key: Line.SalesItemLineDetail.ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - key: Id
+ foreign-key: LinkedTxn.TxnId
+ - table-name: items
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ItemRef.value
+ foreign-key: Id
+ - key: ItemRef.value
+ foreign-key: ParentRef.value
+ - key: VendorRef.value
+ foreign-key: PrefVendorRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: ClassRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: purchases
+ keys:
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: EmployeeRef.value
+ foreign-key: EntityRef.value
+ - key: ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: Id
+ foreign-key: Id
+ - table-name: refund_receipts
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: ClassRef.value
+ foreign-key: ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: ItemRef.value
+ foreign-key: Line.SalesItemLineDetail.ItemRef.value
+ - table-name: vendor_credits
+ keys:
+ - key: ClassRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.ClassRef.value
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: bills
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: ItemRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.ItemRef.value
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: bill_payments
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - key: VendorRef.value
+ foreign-key: VendorRef.value
+ - table-name: departments
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: ParentRef.value
+ - key: DepartmentRef.value
+ foreign-key: Id
+ - table-name: deposits
+ keys:
+ - key: DepartmentRef.value
+ foreign-key: DepartmentRef.value
+ - table-name: employees
+ keys:
+ - key: EmployeeRef.value
+ foreign-key: Id
+ - table-name: payments
+ keys:
+ - key: Id
+ foreign-key: Id
+ - table-name: vendors
+ keys:
+ - key: VendorRef.value
+ foreign-key: Id
+- table-name: customers
+ join:
+ - table-name: accounts
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bills
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: credit_memos
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: CustomerRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: deposits
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: Line.DepositLineDetail.PaymentMethodRef.value
+ - table-name: estimates
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: CustomerRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: invoices
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: CustomerRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: journal_entries
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: TxnTaxDetail.TxnTaxCodeRef.value
+ - table-name: payments
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: CustomerRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Line.ItemBasedExpenseLineDetail.CustomerRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - key: SalesTermRef.value
+ foreign-key: SalesTermRef.value
+ - table-name: purchases
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: Line.ItemBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: CustomerRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: CustomerRef.value
+ - key: PaymentMethodRef.value
+ foreign-key: PaymentMethodRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: Line.SalesItemLineDetail.TaxCodeRef.value
+ - table-name: transfers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: vendor_credits
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: Line.AccountBasedExpenseLineDetail.CustomerRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: Line.AccountBasedExpenseLineDetail.TaxCodeRef.value
+ - table-name: vendors
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: budgets
+ keys:
+ - key: Id
+ foreign-key: BudgetDetail.CustomerRef.value
+ - table-name: payment_methods
+ keys:
+ - key: PaymentMethodRef.value
+ foreign-key: Id
+ - table-name: items
+ keys:
+ - key: DefaultTaxCodeRef.value
+ foreign-key: PurchaseTaxCodeRef.value
+ - key: DefaultTaxCodeRef.value
+ foreign-key: SalesTaxCodeRef.value
+ - table-name: terms
+ keys:
+ - key: SalesTermRef.value
+ foreign-key: Id
+- table-name: vendors
+ join:
+ - table-name: accounts
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: bill_payments
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: VendorRef.value
+ - table-name: bills
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: VendorRef.value
+ - table-name: credit_memos
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: customers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: deposits
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: estimates
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: invoices
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: journal_entries
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: payments
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: VendorRef.value
+ - table-name: purchases
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: transfers
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - table-name: vendor_credits
+ keys:
+ - key: CurrencyRef.value
+ foreign-key: CurrencyRef.value
+ - key: Id
+ foreign-key: VendorRef.value
+ - table-name: items
+ keys:
+ - key: Id
+ foreign-key: PrefVendorRef.value
+ - table-name: time_activities
+ keys:
+ - key: Id
+ foreign-key: VendorRef.value
+- table-name: departments
+ join:
+ - table-name: bills
+ keys:
+ - key: ParentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: DepartmentRef.value
+ - table-name: bill_payments
+ keys:
+ - key: ParentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: DepartmentRef.value
+ - table-name: budgets
+ keys:
+ - key: ParentRef.value
+ foreign-key: BudgetDetail.DepartmentRef.value
+ - key: Id
+ foreign-key: BudgetDetail.DepartmentRef.value
+ - table-name: deposits
+ keys:
+ - key: ParentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: DepartmentRef.value
+ - table-name: estimates
+ keys:
+ - key: ParentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: DepartmentRef.value
+ - table-name: invoices
+ keys:
+ - key: ParentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: DepartmentRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: ParentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: DepartmentRef.value
+ - table-name: purchases
+ keys:
+ - key: ParentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: DepartmentRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: ParentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: DepartmentRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: ParentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: DepartmentRef.value
+ - table-name: time_activities
+ keys:
+ - key: ParentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: DepartmentRef.value
+ - table-name: vendor_credits
+ keys:
+ - key: ParentRef.value
+ foreign-key: DepartmentRef.value
+ - key: Id
+ foreign-key: DepartmentRef.value
+- table-name: employees
+ join:
+ - table-name: purchases
+ keys:
+ - key: Id
+ foreign-key: EntityRef.value
+ - table-name: time_activities
+ keys:
+ - key: Id
+ foreign-key: EmployeeRef.value
+- table-name: payment_methods
+ join:
+ - table-name: customers
+ keys:
+ - key: Id
+ foreign-key: PaymentMethodRef.value
+ - table-name: deposits
+ keys:
+ - key: Id
+ foreign-key: Line.DepositLineDetail.PaymentMethodRef.value
+ - table-name: payments
+ keys:
+ - key: Id
+ foreign-key: PaymentMethodRef.value
+ - table-name: purchases
+ keys:
+ - key: Id
+ foreign-key: PaymentMethodRef.value
+ - table-name: refund_receipts
+ keys:
+ - key: Id
+ foreign-key: PaymentMethodRef.value
+ - table-name: sales_receipts
+ keys:
+ - key: Id
+ foreign-key: PaymentMethodRef.value
+- table-name: tax_agencies
+ join:
+ - table-name: tax_rates
+ keys:
+ - key: Id
+ foreign-key: AgencyRef.value
+- table-name: tax_rates
+ join:
+ - table-name: tax_agencies
+ keys:
+ - key: AgencyRef.value
+ foreign-key: Id
+ - table-name: estimates
+ keys:
+ - key: Id
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - table-name: invoices
+ keys:
+ - key: Id
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - table-name: journal_entries
+ keys:
+ - key: Id
+ foreign-key: TaxRateRef.value
+ - key: Id
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - table-name: tax_codes
+ keys:
+ - key: Id
+ foreign-key: PurchaseTaxRateList.TaxRateDetail.TaxRateRef.value
+ - key: Id
+ foreign-key: SalesTaxRateList.TaxRateDetail.TaxRateRef.value
+- table-name: tax_codes
+ join:
+ - table-name: estimates
+ keys:
+ - key: PurchaseTaxRateList.TaxRateDetail.TaxRateRef.value
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - key: SalesTaxRateList.TaxRateDetail.TaxRateRef.value
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - table-name: invoices
+ keys:
+ - key: PurchaseTaxRateList.TaxRateDetail.TaxRateRef.value
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - key: SalesTaxRateList.TaxRateDetail.TaxRateRef.value
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - table-name: journal_entries
+ keys:
+ - key: PurchaseTaxRateList.TaxRateDetail.TaxRateRef.value
+ foreign-key: TaxRateRef.value
+ - key: SalesTaxRateList.TaxRateDetail.TaxRateRef.value
+ foreign-key: TaxRateRef.value
+ - key: PurchaseTaxRateList.TaxRateDetail.TaxRateRef.value
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - key: SalesTaxRateList.TaxRateDetail.TaxRateRef.value
+ foreign-key: TxnTaxDetail.TaxLine.TaxLineDetail.TaxRateRef.value
+ - table-name: tax_rates
+ keys:
+ - key: PurchaseTaxRateList.TaxRateDetail.TaxRateRef.value
+ foreign-key: Id
+ - key: SalesTaxRateList.TaxRateDetail.TaxRateRef.value
+ foreign-key: Id
+- table-name: terms
+ join:
+ - table-name: bills
+ keys:
+ - key: Id
+ foreign-key: SalesTermRef.value
+ - table-name: credit_memos
+ keys:
+ - key: Id
+ foreign-key: SalesTermRef.value
+ - table-name: customers
+ keys:
+ - key: Id
+ foreign-key: SalesTermRef.value
+ - table-name: estimates
+ keys:
+ - key: Id
+ foreign-key: SalesTermRef.value
+ - table-name: invoices
+ keys:
+ - key: Id
+ foreign-key: SalesTermRef.value
+ - table-name: purchase_orders
+ keys:
+ - key: Id
+ foreign-key: SalesTermRef.value
diff --git a/_data/taps/schemas/quickbooks/v2/quickbooks-v2-tables.yml b/_data/taps/schemas/quickbooks/v2/quickbooks-v2-tables.yml
new file mode 100644
index 000000000..77f17c09f
--- /dev/null
+++ b/_data/taps/schemas/quickbooks/v2/quickbooks-v2-tables.yml
@@ -0,0 +1,404 @@
+tap: quickbooks
+version: '2'
+tables:
+- name: accounts
+ description: 'The `{{ table.name }}` table contains info about the various account
+ types in you {{ integration.display_name }} instance. This table includes all
+ account types: asset, liability, revenue (income), expenses, and equity.
+
+
+ **Note**: Both active and inactive accounts are included in the data for this
+ table.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/account
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/accounts.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/account#query-an-account
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: bills
+ description: 'The `{{ table.name }}` table contains info about the bills, or requests
+ for payment from third parties, in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/bill
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/bills.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/bill#query-a-bill
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: bill_payments
+ description: 'The `{{ table.name }}` table contains info about payments made on
+ bills received from vendors for goods or services.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/billpayment
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/bill_payments.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/billpayment#query-a-billpayment
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: budgets
+ description: 'The `{{ table.name }}` table contains info about the current state
+ of budgets in your {{ integration.display_name }} instance. **Note**: Both active
+ and inactive budgets are included in the data for this table.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/budget
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/budgets.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/budget#query-the-budget
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: classes
+ description: 'The `{{ table.name }}` table contains info about the classes set up
+ in your {{ integration.display_name }} instance. **Note**: Both active and inactive
+ classes are included in the data for this table.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/class
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/classes.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/class#query-a-class
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: credit_memos
+ description: 'The `{{ table.name }}` table contains info about the credit memos
+ in your {{ integration.display_name }} instance. A credit memo is a transaction
+ representing a refund or credit of payment for goods or services that have been
+ sold.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/creditmemo
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/credit_memos.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/creditmemo#query-a-credit-memo
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: customers
+ description: 'The `{{ table.name }}` table contains info about the consumers of
+ your business''s goods and services. **Note**: Both active and inactive customers
+ are included in the data for this table.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/customer
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/customers.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/customer#query-a-customer
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: customer_types
+ description: 'The `{{ table.name }}` table contains info about types of customers.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/changedatacapture#the-changedatacapture-object
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/customer_types.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/customertype#query-a-customertype
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: deleted_objects
+ description: 'The `{{ table.name }}` table contains info about objects deleted from
+ {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/changedatacapture#the-changedatacapture-object
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/deleted_objects.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/changedatacapture#get-a-list-of-changed-entities
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: departments
+ description: 'The `{{ table.name }}` table contains info about the departments in
+ your {{ integration.display_name }} instance. **Note**: Both active and inactive
+ departments are included in the data for this table.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/department
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/departments.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/department#query-a-department
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: deposits
+ description: 'The `{{ table.name }}` table contains info about deposits in your
+ {{ integration.display_name }} instance. These can be customer payments or new
+ direct deposits.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/deposit
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/deposits.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/deposit#query-a-deposit
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: employees
+ description: 'The `{{ table.name }}` table contains info about the people working
+ for your company. **Note**: Both active and inactive employees are included in
+ the data for this table.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/employee
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/employees.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/employee#query-an-employee
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: estimates
+ description: 'The `{{ table.name }}` table contains info about the estimates in
+ your {{ integration.display_name }} instance. An estimate is a financial proposal
+ from a business to a [customer](#customers) for goods or services.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/estimate
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/estimates.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/estimate#read-an-estimate
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: invoices
+ description: 'The `{{ table.name }}` table contains info about the invoices in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/invoice
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/invoices.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/invoice#query-an-invoice
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: items
+ description: 'The `{{ table.name }}` table contains info about the items your company
+ buys, sells, or re-sells. This includes all item types in {{ integration.display_name
+ }}, such as `Inventory`, `Group`, `Service` and `Noninventory`.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/item
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/items.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/item/#query-an-item
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: journal_entries
+ description: 'The `{{ table.name }}` table contains info about the journal entries
+ in your {{ integration.display_name }} instance. A journal entry is a transaction
+ that:
+
+
+ - Contains a pair of distribution lines, including a debit and a credit
+
+ - Each distribution line has an account from the Chart of Accounts
+
+ - The total of the debit column equals the total of the credit column
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/journalentry
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/journal_entries.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/journalentry/#query-a-journalentry
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: payments
+ description: 'The `{{ table.name }}` table contains info about the payments recorded
+ in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/payment
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/payments.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/payment/#query-a-payment
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: payment_methods
+ description: 'The `{{ table.name }}` table contains info about the methods of payment
+ your company receives for goods. **Note**: Both active and inactive payment methods
+ are included in the data for this table.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/paymentmethod
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/payment_methods.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/paymentmethod/#query-a-paymentmethod
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: profit_loss_report
+ description: 'The `{{ table.name }}` table contains reports about profit and loss
+ recorded in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/profitandloss
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/profit_loss_report.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/profitandloss#query-a-report
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: ReportDate
+- name: purchases
+ description: 'The `{{ table.name }}` table contains info about the purchases recorded
+ in your {{ integration.display_name }} instance. This table includes all purchase
+ types: `Cash`, `Check`, and `CreditCard`.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/purchase
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/purchases.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/purchase/#query-a-purchase
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: purchase_orders
+ description: 'The `{{ table.name }}` table contains info about purchase orders in
+ your {{ integration.display_name }} instance. A purchase order is a request to
+ purchase goods or services from a third party.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/purchaseorder
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/purchase_orders.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/purchaseorder/#query-a-purchaseorder
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: refund_receipts
+ description: 'The `{{ table.name }}` table contains info about customer refunds
+ recorded in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/refundreceipt
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/refund_receipts.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/refundreceipt/#query-a-refundreceipt
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: sales_receipts
+ description: 'The `{{ table.name }}` table contains info about the sales receipts
+ recorded in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/salesreceipt
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/sales_receipts.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/salesreceipt/#query-a-salesreceipt
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: tax_agencies
+ description: 'The `{{ table.name }}` table contains info about the tax-collecting
+ entites defined in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/taxagency
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/tax_agencies.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/taxagency/#query-a-taxagency
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: tax_codes
+ description: 'The `{{ table.name }}` table contains info about the tax codes defined
+ in your {{ integration.display_name }} instance. **Note**: Both active and inactive
+ tax codes are included in the data for this table.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/tax_codes.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/taxcode
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: tax_rates
+ description: 'The `{{ table.name }}` table contains info about the tax rates defined
+ in your {{ integration.display_name }} instance. **Note**: Both active and inactive
+ tax rates are included in the data for this table.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/taxrate
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/tax_rates.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/taxrate#query-a-taxrate
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: terms
+ description: 'The `{{ table.name }}` table contains info about the sale terms defined
+ in your {{ integration.display_name }} instance. **Note**: Both active and inactive
+ terms are included in the data for this table.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/term
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/terms.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/term#query-a-term
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: time_activities
+ description: 'The `{{ table.name }}` table contains info about vendor and employee
+ time records in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/time_activities.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity#query-a-timeactivity
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: transfers
+ description: 'The `{{ table.name }}` table contains info about account transfers
+ from your company''s {{ integration.display_name }} chart of accounts.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/transfer
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/transfers.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/transfer#query-a-transfer
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: vendors
+ description: 'The `{{ table.name }}` table contains info about the sellers your
+ company purchases products from. **Note**: Both active and inactive vendors are
+ included in the data for this table.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/vendor
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/vendors.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/vendor#query-a-vendor
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+- name: vendor_credits
+ description: 'The `{{ table.name }}` table contains info about credits that a vendor
+ owes your company.
+
+ '
+ links:
+ doc-link: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/vendorcredit
+ singer-schema: https://github.com/singer-io/tap-quickbooks/blob/master/tap_quickbooks/schemas/vendor_credits.json
+ api-method: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/vendorcredit#query-a-vendorcredit
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: Id
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/recharge/v1/json/addresses.json b/_data/taps/schemas/recharge/v1/json/addresses.json
new file mode 100644
index 000000000..e25a292d2
--- /dev/null
+++ b/_data/taps/schemas/recharge/v1/json/addresses.json
@@ -0,0 +1,226 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cart_attributes": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "cart_note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note_attributes": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "original_shipping_lines": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_lines_override": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recharge/v1/json/charges.json b/_data/taps/schemas/recharge/v1/json/charges.json
new file mode 100644
index 000000000..6441afe0b
--- /dev/null
+++ b/_data/taps/schemas/recharge/v1/json/charges.json
@@ -0,0 +1,575 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "address_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "billing_address": {
+ "additionalProperties": false,
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "browser_ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "client_details": {
+ "additionalProperties": false,
+ "properties": {
+ "browser_ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_agent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer_hash": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_codes": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_uncommited_changes": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_items": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "grams": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "images": {
+ "additionalProperties": false,
+ "properties": {
+ "large": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "medium": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "small": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "properties": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shopify_product_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shopify_variant_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "variant_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note_attributes": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "processed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "processor_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "scheduled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "shipments_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shipping_address": {
+ "additionalProperties": false,
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shipping_lines": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "shopify_order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sub_total": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subtotal_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_lines": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_discounts": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_line_items_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_refunds": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_tax": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_weight": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recharge/v1/json/collections.json b/_data/taps/schemas/recharge/v1/json/collections.json
new file mode 100644
index 000000000..a39918937
--- /dev/null
+++ b/_data/taps/schemas/recharge/v1/json/collections.json
@@ -0,0 +1,54 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sort_order": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recharge/v1/json/customers.json b/_data/taps/schemas/recharge/v1/json/customers.json
new file mode 100644
index 000000000..01457326a
--- /dev/null
+++ b/_data/taps/schemas/recharge/v1/json/customers.json
@@ -0,0 +1,162 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "billing_address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "braintree_customer_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_charge_processed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_card_error_in_dunning": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_valid_payment_method": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "hash": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number_active_subscriptions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "number_subscriptions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "paypal_customer_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "processor_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reason_payment_method_not_valid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shopify_customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recharge/v1/json/discounts.json b/_data/taps/schemas/recharge/v1/json/discounts.json
new file mode 100644
index 000000000..f46808e01
--- /dev/null
+++ b/_data/taps/schemas/recharge/v1/json/discounts.json
@@ -0,0 +1,102 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "applies_to_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "applies_to_product_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "applies_to_resource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration_usage_limit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ends_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "once_per_customer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "starts_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "times_used": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "usage_limit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recharge/v1/json/metafields_customer.json b/_data/taps/schemas/recharge/v1/json/metafields_customer.json
new file mode 100644
index 000000000..7bd7aed1e
--- /dev/null
+++ b/_data/taps/schemas/recharge/v1/json/metafields_customer.json
@@ -0,0 +1,66 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "namespace": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "owner_resource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recharge/v1/json/metafields_store.json b/_data/taps/schemas/recharge/v1/json/metafields_store.json
new file mode 100644
index 000000000..7bd7aed1e
--- /dev/null
+++ b/_data/taps/schemas/recharge/v1/json/metafields_store.json
@@ -0,0 +1,66 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "namespace": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "owner_resource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recharge/v1/json/metafields_subscription.json b/_data/taps/schemas/recharge/v1/json/metafields_subscription.json
new file mode 100644
index 000000000..7bd7aed1e
--- /dev/null
+++ b/_data/taps/schemas/recharge/v1/json/metafields_subscription.json
@@ -0,0 +1,66 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "namespace": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "owner_resource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recharge/v1/json/onetimes.json b/_data/taps/schemas/recharge/v1/json/onetimes.json
new file mode 100644
index 000000000..2f26c015a
--- /dev/null
+++ b/_data/taps/schemas/recharge/v1/json/onetimes.json
@@ -0,0 +1,125 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "address_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "next_charge_scheduled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "price": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "product_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "properties": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "recharge_product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shopify_product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shopify_variant_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "variant_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recharge/v1/json/orders.json b/_data/taps/schemas/recharge/v1/json/orders.json
new file mode 100644
index 000000000..add7cb31b
--- /dev/null
+++ b/_data/taps/schemas/recharge/v1/json/orders.json
@@ -0,0 +1,620 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "address_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "address_is_active": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "billing_address": {
+ "additionalProperties": false,
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "charge_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "charge_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_codes": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hash": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_prepaid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_items": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "grams": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "images": {
+ "additionalProperties": false,
+ "properties": {
+ "large": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "medium": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "small": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "price": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "properties": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shopify_product_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shopify_variant_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "variant_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note_attributes": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "payment_processor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "processed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "scheduled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "shipped_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "shipping_address": {
+ "additionalProperties": false,
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shipping_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "shipping_lines": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "shopify_cart_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shopify_customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shopify_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shopify_order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shopify_order_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subtotal_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_lines": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "total_discounts": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_line_items_price": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_refunds": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_tax": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_weight": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recharge/v1/json/products.json b/_data/taps/schemas/recharge/v1/json/products.json
new file mode 100644
index 000000000..649caac1c
--- /dev/null
+++ b/_data/taps/schemas/recharge/v1/json/products.json
@@ -0,0 +1,182 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "collection_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "discount_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "images": {
+ "additionalProperties": false,
+ "properties": {
+ "large": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "medium": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "small": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shopify_product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscription_defaults": {
+ "additionalProperties": false,
+ "properties": {
+ "charge_interval_frequency": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cutoff_day_of_month": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cutoff_day_of_week": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expire_after_specific_number_of_charges": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "handle": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number_charges_until_expiration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "order_day_of_month": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_day_of_week": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_interval_frequency": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "order_interval_frequency_options": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "order_interval_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "storefront_purchase_options": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recharge/v1/json/shop.json b/_data/taps/schemas/recharge/v1/json/shop.json
new file mode 100644
index 000000000..64bf2c6ab
--- /dev/null
+++ b/_data/taps/schemas/recharge/v1/json/shop.json
@@ -0,0 +1,84 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "checkout_logo_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iana_timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "my_shopify_domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shop_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shop_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recharge/v1/json/subscriptions.json b/_data/taps/schemas/recharge/v1/json/subscriptions.json
new file mode 100644
index 000000000..5b2f76e5c
--- /dev/null
+++ b/_data/taps/schemas/recharge/v1/json/subscriptions.json
@@ -0,0 +1,209 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "address_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cancellation_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cancellation_reason_comments": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cancelled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "charge_interval_frequency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "expire_after_specific_number_of_charges": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "has_queued_charges": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_skippable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_swappable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "max_retries_reached": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "next_charge_scheduled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "order_day_of_month": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_day_of_week": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_interval_frequency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_interval_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "product_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "properties": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "recharge_product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shopify_product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shopify_variant_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sku_override": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "variant_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recharge/v1/recharge-v1-foreign-keys.yml b/_data/taps/schemas/recharge/v1/recharge-v1-foreign-keys.yml
new file mode 100644
index 000000000..74653b223
--- /dev/null
+++ b/_data/taps/schemas/recharge/v1/recharge-v1-foreign-keys.yml
@@ -0,0 +1,470 @@
+tap: recharge
+version: '1'
+keys:
+ addresses_address_id:
+ - table: addresses
+ keys:
+ - id
+ - table: charges
+ keys:
+ - address_id
+ - table: onetimes
+ keys:
+ - address_id
+ - table: orders
+ keys:
+ - address_id
+ - table: subscriptions
+ keys:
+ - address_id
+ charges_charge_id:
+ - table: charges
+ keys:
+ - id
+ - table: orders
+ keys:
+ - charge_id
+ collections_collection_id:
+ - table: collections
+ keys:
+ - id
+ - table: products
+ keys:
+ - collection_id
+ customers_customer_id:
+ - table: addresses
+ keys:
+ - customer_id
+ - table: charges
+ keys:
+ - customer_id
+ - table: customers
+ keys:
+ - id
+ - table: onetimes
+ keys:
+ - customer_id
+ - table: orders
+ keys:
+ - customer_id
+ - table: subscriptions
+ keys:
+ - customer_id
+ discounts_discount_id:
+ - table: addresses
+ keys:
+ - discount_id
+ - table: discounts
+ keys:
+ - id
+ onetimes_onetime_id:
+ - table: onetimes
+ keys:
+ - id
+ orders_order_id:
+ - table: orders
+ keys:
+ - id
+ _owner_id:
+ - table: metafields_customer
+ keys:
+ - owner_id
+ - table: metafields_store
+ keys:
+ - owner_id
+ - table: metafields_subscription
+ keys:
+ - owner_id
+ products_shopify_product_id:
+ - table: charges
+ keys:
+ - line_items.shopify_product_id
+ - table: onetimes
+ keys:
+ - shopify_product_id
+ - table: orders
+ keys:
+ - line_items.shopify_product_id
+ - table: products
+ keys:
+ - id
+ - table: subscriptions
+ keys:
+ - shopify_product_id
+ _shopify_customer_id:
+ - table: customers
+ keys:
+ - shopify_customer_id
+ - table: orders
+ keys:
+ - shopify_customer_id
+ _shopify_order_id:
+ - table: charges
+ keys:
+ - shopify_order_id
+ - table: orders
+ keys:
+ - shopify_order_id
+ subscriptions_subscription_id:
+ - table: charges
+ keys:
+ - line_items.subscription_id
+ - table: orders
+ keys:
+ - line_items.subscription_id
+ - table: subscriptions
+ keys:
+ - id
+ transactions_transaction_id:
+ - table: charges
+ keys:
+ - transaction_id
+ - table: orders
+ keys:
+ - transaction_id
+ _shopify_variant_id:
+ - table: charges
+ keys:
+ - line_items.shopify_variant_id
+ - table: orders
+ keys:
+ - line_items.shopify_variant_id
+ - table: onetimes
+ keys:
+ - shopify_variant_id
+ - table: subscriptions
+ keys:
+ - shopify_variant_id
+tables:
+- table-name: addresses
+ join:
+ - table-name: charges
+ keys:
+ - key: id
+ foreign-key: address_id
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: onetimes
+ keys:
+ - key: id
+ foreign-key: address_id
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: orders
+ keys:
+ - key: id
+ foreign-key: address_id
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: subscriptions
+ keys:
+ - key: id
+ foreign-key: address_id
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: id
+ - table-name: discounts
+ keys:
+ - key: discount_id
+ foreign-key: id
+- table-name: charges
+ join:
+ - table-name: addresses
+ keys:
+ - key: address_id
+ foreign-key: id
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: onetimes
+ keys:
+ - key: address_id
+ foreign-key: address_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: line_items.shopify_product_id
+ foreign-key: shopify_product_id
+ - key: line_items.shopify_variant_id
+ foreign-key: shopify_variant_id
+ - table-name: orders
+ keys:
+ - key: address_id
+ foreign-key: address_id
+ - key: id
+ foreign-key: charge_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: line_items.shopify_product_id
+ foreign-key: line_items.shopify_product_id
+ - key: shopify_order_id
+ foreign-key: shopify_order_id
+ - key: line_items.subscription_id
+ foreign-key: line_items.subscription_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: line_items.shopify_variant_id
+ foreign-key: line_items.shopify_variant_id
+ - table-name: subscriptions
+ keys:
+ - key: address_id
+ foreign-key: address_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: line_items.shopify_product_id
+ foreign-key: shopify_product_id
+ - key: line_items.subscription_id
+ foreign-key: id
+ - key: line_items.shopify_variant_id
+ foreign-key: shopify_variant_id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: id
+ - table-name: products
+ keys:
+ - key: line_items.shopify_product_id
+ foreign-key: id
+- table-name: onetimes
+ join:
+ - table-name: addresses
+ keys:
+ - key: address_id
+ foreign-key: id
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: charges
+ keys:
+ - key: address_id
+ foreign-key: address_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: shopify_product_id
+ foreign-key: line_items.shopify_product_id
+ - key: shopify_variant_id
+ foreign-key: line_items.shopify_variant_id
+ - table-name: orders
+ keys:
+ - key: address_id
+ foreign-key: address_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: shopify_product_id
+ foreign-key: line_items.shopify_product_id
+ - key: shopify_variant_id
+ foreign-key: line_items.shopify_variant_id
+ - table-name: subscriptions
+ keys:
+ - key: address_id
+ foreign-key: address_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: shopify_product_id
+ foreign-key: shopify_product_id
+ - key: shopify_variant_id
+ foreign-key: shopify_variant_id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: id
+ - table-name: products
+ keys:
+ - key: shopify_product_id
+ foreign-key: id
+- table-name: orders
+ join:
+ - table-name: addresses
+ keys:
+ - key: address_id
+ foreign-key: id
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: charges
+ keys:
+ - key: address_id
+ foreign-key: address_id
+ - key: charge_id
+ foreign-key: id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: line_items.shopify_product_id
+ foreign-key: line_items.shopify_product_id
+ - key: shopify_order_id
+ foreign-key: shopify_order_id
+ - key: line_items.subscription_id
+ foreign-key: line_items.subscription_id
+ - key: transaction_id
+ foreign-key: transaction_id
+ - key: line_items.shopify_variant_id
+ foreign-key: line_items.shopify_variant_id
+ - table-name: onetimes
+ keys:
+ - key: address_id
+ foreign-key: address_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: line_items.shopify_product_id
+ foreign-key: shopify_product_id
+ - key: line_items.shopify_variant_id
+ foreign-key: shopify_variant_id
+ - table-name: subscriptions
+ keys:
+ - key: address_id
+ foreign-key: address_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: line_items.shopify_product_id
+ foreign-key: shopify_product_id
+ - key: line_items.subscription_id
+ foreign-key: id
+ - key: line_items.shopify_variant_id
+ foreign-key: shopify_variant_id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: id
+ - key: shopify_customer_id
+ foreign-key: shopify_customer_id
+ - table-name: products
+ keys:
+ - key: line_items.shopify_product_id
+ foreign-key: id
+- table-name: subscriptions
+ join:
+ - table-name: addresses
+ keys:
+ - key: address_id
+ foreign-key: id
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: charges
+ keys:
+ - key: address_id
+ foreign-key: address_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: shopify_product_id
+ foreign-key: line_items.shopify_product_id
+ - key: id
+ foreign-key: line_items.subscription_id
+ - key: shopify_variant_id
+ foreign-key: line_items.shopify_variant_id
+ - table-name: onetimes
+ keys:
+ - key: address_id
+ foreign-key: address_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: shopify_product_id
+ foreign-key: shopify_product_id
+ - key: shopify_variant_id
+ foreign-key: shopify_variant_id
+ - table-name: orders
+ keys:
+ - key: address_id
+ foreign-key: address_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: shopify_product_id
+ foreign-key: line_items.shopify_product_id
+ - key: id
+ foreign-key: line_items.subscription_id
+ - key: shopify_variant_id
+ foreign-key: line_items.shopify_variant_id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: id
+ - table-name: products
+ keys:
+ - key: shopify_product_id
+ foreign-key: id
+- table-name: collections
+ join:
+ - table-name: products
+ keys:
+ - key: id
+ foreign-key: collection_id
+- table-name: products
+ join:
+ - table-name: collections
+ keys:
+ - key: collection_id
+ foreign-key: id
+ - table-name: charges
+ keys:
+ - key: id
+ foreign-key: line_items.shopify_product_id
+ - table-name: onetimes
+ keys:
+ - key: id
+ foreign-key: shopify_product_id
+ - table-name: orders
+ keys:
+ - key: id
+ foreign-key: line_items.shopify_product_id
+ - table-name: subscriptions
+ keys:
+ - key: id
+ foreign-key: shopify_product_id
+- table-name: customers
+ join:
+ - table-name: addresses
+ keys:
+ - key: id
+ foreign-key: customer_id
+ - table-name: charges
+ keys:
+ - key: id
+ foreign-key: customer_id
+ - table-name: onetimes
+ keys:
+ - key: id
+ foreign-key: customer_id
+ - table-name: orders
+ keys:
+ - key: id
+ foreign-key: customer_id
+ - key: shopify_customer_id
+ foreign-key: shopify_customer_id
+ - table-name: subscriptions
+ keys:
+ - key: id
+ foreign-key: customer_id
+- table-name: discounts
+ join:
+ - table-name: addresses
+ keys:
+ - key: id
+ foreign-key: discount_id
+- table-name: metafields_customer
+ join:
+ - table-name: metafields_store
+ keys:
+ - key: owner_id
+ foreign-key: owner_id
+ - table-name: metafields_subscription
+ keys:
+ - key: owner_id
+ foreign-key: owner_id
+- table-name: metafields_store
+ join:
+ - table-name: metafields_customer
+ keys:
+ - key: owner_id
+ foreign-key: owner_id
+ - table-name: metafields_subscription
+ keys:
+ - key: owner_id
+ foreign-key: owner_id
+- table-name: metafields_subscription
+ join:
+ - table-name: metafields_customer
+ keys:
+ - key: owner_id
+ foreign-key: owner_id
+ - table-name: metafields_store
+ keys:
+ - key: owner_id
+ foreign-key: owner_id
diff --git a/_data/taps/schemas/recharge/v1/recharge-v1-tables.yml b/_data/taps/schemas/recharge/v1/recharge-v1-tables.yml
new file mode 100644
index 000000000..440ec8dd8
--- /dev/null
+++ b/_data/taps/schemas/recharge/v1/recharge-v1-tables.yml
@@ -0,0 +1,156 @@
+tap: recharge
+version: '1'
+tables:
+- name: addresses
+ description: 'The `{{ table.name }}` table contains info about the addresses (shipping
+ locations) a customer has. A subscription is tied to a given address, but a customer
+ can have multiple addresses.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recharge/blob/master/tap_recharge/schemas/addresses.json
+ api-method: https://developer.rechargepayments.com/#list-addresses
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: charges
+ description: 'The `{{ table.name }}` table contains info about charges. A charge
+ is a placeholder for an upcoming charge once the charge is processed successfully.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recharge/blob/master/tap_recharge/schemas/charges.json
+ api-method: https://developer.rechargepayments.com/#list-charges
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: collections
+ description: 'The `{{ table.name }}` table contains info about your collections.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recharge/blob/master/tap_recharge/schemas/collections.json
+ api-method: https://developer.rechargepayments.com/#list-collections-alpha
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: customers
+ description: 'The `{{ table.name }}` table contains info about customer accounts
+ with a shop.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recharge/blob/master/tap_recharge/schemas/customers.json
+ api-method: https://developer.rechargepayments.com/#list-customers
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: discounts
+ description: 'The `{{ table.name }}` table contains info about discounts.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recharge/blob/master/tap_recharge/schemas/discounts.json
+ api-method: https://developer.rechargepayments.com/#list-discounts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: metafields_customer
+ description: 'The `{{ table.name }}` table contains info about metafields related
+ to customers.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recharge/blob/master/tap_recharge/schemas/metafields_customer.json
+ api-method: https://developer.rechargepayments.com/#list-metafields
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: metafields_store
+ description: 'The `{{ table.name }}` table contains info about metafields related
+ to stores.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recharge/blob/master/tap_recharge/schemas/metafields_store.json
+ api-method: https://developer.rechargepayments.com/#list-metafields
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: metafields_subscription
+ description: 'The `{{ table.name }}` table contains info about metafields related
+ to subscriptions.
+
+ '
+ links:
+ doc-link: https://developer.rechargepayments.com/#metafields
+ singer-schema: https://github.com/singer-io/tap-recharge/blob/master/tap_recharge/schemas/metafields_subscription.json
+ api-method: https://developer.rechargepayments.com/#list-metafields
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: onetimes
+ description: 'The `{{ table.name }}` table contains info about one time products.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recharge/blob/master/tap_recharge/schemas/onetimes.json
+ api-method: https://developer.rechargepayments.com/#list-onetimes-alpha
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: orders
+ description: 'The `{{ table.name }}` table contains info about orders. Orders are
+ created after a charge is successfully processed.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recharge/blob/master/tap_recharge/schemas/orders.json
+ api-method: https://developer.rechargepayments.com/#list-orders
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: products
+ description: 'The `{{ table.name }}` table contains info about your products.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recharge/blob/master/tap_recharge/schemas/products.json
+ api-method: https://developer.rechargepayments.com/#list-products-beta
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: shop
+ description: 'The `{{ table.name }}` table contains info about your shop.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recharge/blob/master/tap_recharge/schemas/shop.json
+ api-method: https://developer.rechargepayments.com/#retrieve-shop
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: subscriptions
+ description: 'The `{{ table.name }}` table contains info about subscriptions. Subscriptions
+ are individual items that customers receive on a recurring basis.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recharge/blob/master/tap_recharge/schemas/subscriptions.json
+ api-method: https://developer.rechargepayments.com/#list-subscriptions
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/recharge/v2/json/addresses.json b/_data/taps/schemas/recharge/v2/json/addresses.json
new file mode 100644
index 000000000..e2e6be32e
--- /dev/null
+++ b/_data/taps/schemas/recharge/v2/json/addresses.json
@@ -0,0 +1,300 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cart_attributes": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "cart_note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discounts": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note_attributes": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "order_attributes": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "order_note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_shipping_lines": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "payment_method_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "presentment_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_lines_override": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recharge/v2/json/charges.json b/_data/taps/schemas/recharge/v2/json/charges.json
new file mode 100644
index 000000000..1d5e62b99
--- /dev/null
+++ b/_data/taps/schemas/recharge/v2/json/charges.json
@@ -0,0 +1,1025 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "address_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "analytics_data": {
+ "additionalProperties": false,
+ "properties": {
+ "utm_params": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "utm_campaign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "utm_content": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "utm_data_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "utm_medium": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "utm_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "utm_term": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "utm_timestamp": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "billing_address": {
+ "additionalProperties": false,
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "browser_ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "client_details": {
+ "additionalProperties": false,
+ "properties": {
+ "browser_ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_agent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_customer_id": {
+ "additionalProperties": false,
+ "properties": {
+ "ecommerce": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "hash": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customer_hash": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_codes": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "discounts": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "value_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_order_id": {
+ "additionalProperties": false,
+ "properties": {
+ "ecommerce": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "external_transaction_id": {
+ "additionalProperties": false,
+ "properties": {
+ "payment_processor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_uncommited_changes": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_items": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "external_product_id": {
+ "additionalProperties": false,
+ "properties": {
+ "ecommerce": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "external_variant_id": {
+ "additionalProperties": false,
+ "properties": {
+ "ecommerce": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "grams": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "handle": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "images": {
+ "additionalProperties": false,
+ "properties": {
+ "large": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "medium": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "small": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sort_order": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "properties": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "purchase_item_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "purchase_item_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shopify_product_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shopify_variant_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_due": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_lines": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "taxable_amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_price_includes_tax": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "variant_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note_attributes": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "order_attributes": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "orders_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "payment_processor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "processed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "processor_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "retry_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "scheduled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "shipments_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shipping_address": {
+ "additionalProperties": false,
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shipping_lines": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_lines": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "taxable": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "shopify_order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sub_total": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subtotal_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_lines": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "total_discounts": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_line_items_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_refunds": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_tax": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_weight": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_weight_grams": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recharge/v2/json/collections.json b/_data/taps/schemas/recharge/v2/json/collections.json
new file mode 100644
index 000000000..a39918937
--- /dev/null
+++ b/_data/taps/schemas/recharge/v2/json/collections.json
@@ -0,0 +1,54 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sort_order": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recharge/v2/json/customers.json b/_data/taps/schemas/recharge/v2/json/customers.json
new file mode 100644
index 000000000..e1f19d027
--- /dev/null
+++ b/_data/taps/schemas/recharge/v2/json/customers.json
@@ -0,0 +1,256 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "analytics_data": {
+ "additionalProperties": false,
+ "properties": {
+ "utm_params": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "utm_campaign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "utm_content": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "utm_data_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "utm_medium": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "utm_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "utm_term": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "utm_timestamp": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "billing_address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "braintree_customer_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_customer_id": {
+ "additionalProperties": false,
+ "properties": {
+ "ecommerce": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "first_charge_processed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_card_error_in_dunning": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_payment_method_in_dunning": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_valid_payment_method": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "hash": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number_active_subscriptions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "number_subscriptions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "paypal_customer_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "processor_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reason_payment_method_not_valid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscriptions_active_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscriptions_total_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recharge/v2/json/discounts.json b/_data/taps/schemas/recharge/v2/json/discounts.json
new file mode 100644
index 000000000..44d8e973f
--- /dev/null
+++ b/_data/taps/schemas/recharge/v2/json/discounts.json
@@ -0,0 +1,265 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "applies_to": {
+ "additionalProperties": false,
+ "properties": {
+ "ids": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "purchase_item_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "applies_to_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "applies_to_product_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "applies_to_resource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "channel_settings": {
+ "additionalProperties": false,
+ "properties": {
+ "api": {
+ "additionalProperties": false,
+ "properties": {
+ "can_apply": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "checkout_page": {
+ "additionalProperties": false,
+ "properties": {
+ "can_apply": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customer_portal": {
+ "additionalProperties": false,
+ "properties": {
+ "can_apply": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "merchant_portal": {
+ "additionalProperties": false,
+ "properties": {
+ "can_apply": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration_usage_limit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ends_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "external_discount_id": {
+ "additionalProperties": false,
+ "properties": {
+ "ecommerce": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "first_time_customer_restriction": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "once_per_customer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "prerequisite_subtotal_min": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starts_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "times_used": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "usage_limit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "usage_limits": {
+ "additionalProperties": false,
+ "properties": {
+ "first_time_customer_restriction": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "max_subsequent_redemptions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "one_application_per_customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recharge/v2/json/metafields_customer.json b/_data/taps/schemas/recharge/v2/json/metafields_customer.json
new file mode 100644
index 000000000..47e68179e
--- /dev/null
+++ b/_data/taps/schemas/recharge/v2/json/metafields_customer.json
@@ -0,0 +1,66 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "namespace": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner_resource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recharge/v2/json/metafields_store.json b/_data/taps/schemas/recharge/v2/json/metafields_store.json
new file mode 100644
index 000000000..47e68179e
--- /dev/null
+++ b/_data/taps/schemas/recharge/v2/json/metafields_store.json
@@ -0,0 +1,66 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "namespace": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner_resource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recharge/v2/json/metafields_subscription.json b/_data/taps/schemas/recharge/v2/json/metafields_subscription.json
new file mode 100644
index 000000000..47e68179e
--- /dev/null
+++ b/_data/taps/schemas/recharge/v2/json/metafields_subscription.json
@@ -0,0 +1,66 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "namespace": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner_resource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recharge/v2/json/onetimes.json b/_data/taps/schemas/recharge/v2/json/onetimes.json
new file mode 100644
index 000000000..70935193e
--- /dev/null
+++ b/_data/taps/schemas/recharge/v2/json/onetimes.json
@@ -0,0 +1,160 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "address_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "external_product_id": {
+ "additionalProperties": false,
+ "properties": {
+ "ecommerce": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "external_variant_id": {
+ "additionalProperties": false,
+ "properties": {
+ "ecommerce": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "next_charge_scheduled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "properties": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "recharge_product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shopify_product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shopify_variant_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sku_override": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "variant_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recharge/v2/json/orders.json b/_data/taps/schemas/recharge/v2/json/orders.json
new file mode 100644
index 000000000..76e39b2e3
--- /dev/null
+++ b/_data/taps/schemas/recharge/v2/json/orders.json
@@ -0,0 +1,1026 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "address_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "address_is_active": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "billing_address": {
+ "additionalProperties": false,
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "charge": {
+ "additionalProperties": false,
+ "properties": {
+ "external_transaction_id": {
+ "additionalProperties": false,
+ "properties": {
+ "payment_processor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "charge_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "charge_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "client_details": {
+ "additionalProperties": false,
+ "properties": {
+ "browser_ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_agent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_customer_id": {
+ "additionalProperties": false,
+ "properties": {
+ "ecommerce": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "hash": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_codes": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "discounts": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "value_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_cart_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_order_id": {
+ "additionalProperties": false,
+ "properties": {
+ "ecommerce": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "external_order_number": {
+ "additionalProperties": false,
+ "properties": {
+ "ecommerce": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hash": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_prepaid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_items": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "external_product_id": {
+ "additionalProperties": false,
+ "properties": {
+ "ecommerce": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "external_variant_id": {
+ "additionalProperties": false,
+ "properties": {
+ "ecommerce": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "grams": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "handle": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "images": {
+ "additionalProperties": false,
+ "properties": {
+ "large": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "medium": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "small": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sort_order": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "price": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "properties": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "purchase_item_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "purchase_item_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shopify_product_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shopify_variant_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sort_order": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_due": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_lines": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "taxable_amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_price_includes_tax": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "variant_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note_attributes": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "order_attributes": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "payment_processor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "processed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "scheduled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "shipped_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "shipping_address": {
+ "additionalProperties": false,
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shipping_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "shipping_lines": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_lines": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "taxable": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "shopify_cart_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shopify_customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shopify_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shopify_order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shopify_order_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subtotal_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_lines": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "total_discounts": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_line_items_price": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_refunds": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_tax": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_weight": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_weight_grams": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recharge/v2/json/products.json b/_data/taps/schemas/recharge/v2/json/products.json
new file mode 100644
index 000000000..f5b1e156b
--- /dev/null
+++ b/_data/taps/schemas/recharge/v2/json/products.json
@@ -0,0 +1,201 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "collection_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "discount_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "handle": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "images": {
+ "additionalProperties": false,
+ "properties": {
+ "large": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "medium": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "small": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shopify_product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscription_defaults": {
+ "additionalProperties": false,
+ "properties": {
+ "charge_interval_frequency": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cutoff_day_of_month": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cutoff_day_of_week": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expire_after_specific_number_of_charges": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "handle": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modifiable_properties": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "number_charges_until_expiration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "order_day_of_month": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_day_of_week": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_interval_frequency": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "order_interval_frequency_options": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "order_interval_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "storefront_purchase_options": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recharge/v2/json/store.json b/_data/taps/schemas/recharge/v2/json/store.json
new file mode 100644
index 000000000..27c85279e
--- /dev/null
+++ b/_data/taps/schemas/recharge/v2/json/store.json
@@ -0,0 +1,152 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "checkout_logo_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "checkout_platform": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_portal_base_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_api_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_platform": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iana_timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "identifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "merchant_portal_base_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "my_shopify_domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shop_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shop_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timezone": {
+ "properties": {
+ "iana_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iana_timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "weight_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recharge/v2/json/subscriptions.json b/_data/taps/schemas/recharge/v2/json/subscriptions.json
new file mode 100644
index 000000000..510a79dcf
--- /dev/null
+++ b/_data/taps/schemas/recharge/v2/json/subscriptions.json
@@ -0,0 +1,317 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "address_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "analytics_data": {
+ "additionalProperties": false,
+ "properties": {
+ "utm_params": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "utm_campaign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "utm_content": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "utm_data_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "utm_medium": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "utm_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "utm_term": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "utm_timestamp": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "cancellation_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cancellation_reason_comments": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cancelled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "charge_interval_frequency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "expire_after_specific_number_of_charges": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "external_product_id": {
+ "additionalProperties": false,
+ "properties": {
+ "ecommerce": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "external_variant_id": {
+ "additionalProperties": false,
+ "properties": {
+ "ecommerce": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "has_queued_charges": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_prepaid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_skippable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_swappable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "max_retries_reached": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "next_charge_scheduled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "order_day_of_month": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_day_of_week": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_interval_frequency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_interval_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "presentment_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "properties": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "recharge_product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shopify_product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shopify_variant_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sku_override": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "variant_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recharge/v2/recharge-v2-foreign-keys.yml b/_data/taps/schemas/recharge/v2/recharge-v2-foreign-keys.yml
new file mode 100644
index 000000000..3ea9b8250
--- /dev/null
+++ b/_data/taps/schemas/recharge/v2/recharge-v2-foreign-keys.yml
@@ -0,0 +1,360 @@
+tap: recharge
+version: '2'
+keys:
+ addresses_address_id:
+ - table: addresses
+ keys:
+ - id
+ - table: charges
+ keys:
+ - address_id
+ - table: onetimes
+ keys:
+ - address_id
+ - table: orders
+ keys:
+ - address_id
+ - table: subscriptions
+ keys:
+ - address_id
+ charges_charge_id:
+ - table: charges
+ keys:
+ - id
+ - table: orders
+ keys:
+ - charge_id
+ collections_collection_id:
+ - table: collections
+ keys:
+ - id
+ - table: products
+ keys:
+ - collection_id
+ customers_customer_id:
+ - table: addresses
+ keys:
+ - customer_id
+ - table: charges
+ keys:
+ - customer_id
+ - table: customers
+ keys:
+ - id
+ - table: onetimes
+ keys:
+ - customer_id
+ - table: orders
+ keys:
+ - customer_id
+ - table: subscriptions
+ keys:
+ - customer_id
+ discounts_discount_id:
+ - table: addresses
+ keys:
+ - discount_id
+ - table: discounts
+ keys:
+ - id
+ onetimes_onetime_id:
+ - table: onetimes
+ keys:
+ - id
+ orders_order_id:
+ - table: orders
+ keys:
+ - id
+ products_shopify_product_id:
+ - table: charges
+ keys:
+ - line_items.shopify_product_id
+ - table: onetimes
+ keys:
+ - shopify_product_id
+ - table: orders
+ keys:
+ - line_items.shopify_product_id
+ - table: products
+ keys:
+ - id
+ - table: subscriptions
+ keys:
+ - shopify_product_id
+ subscriptions_subscription_id:
+ - table: charges
+ keys:
+ - line_items.subscription_id
+ - table: orders
+ keys:
+ - line_items.subscription_id
+ - table: subscriptions
+ keys:
+ - id
+tables:
+- table-name: addresses
+ join:
+ - table-name: charges
+ keys:
+ - key: id
+ foreign-key: address_id
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: onetimes
+ keys:
+ - key: id
+ foreign-key: address_id
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: orders
+ keys:
+ - key: id
+ foreign-key: address_id
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: subscriptions
+ keys:
+ - key: id
+ foreign-key: address_id
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: id
+ - table-name: discounts
+ keys:
+ - key: discount_id
+ foreign-key: id
+- table-name: charges
+ join:
+ - table-name: addresses
+ keys:
+ - key: address_id
+ foreign-key: id
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: onetimes
+ keys:
+ - key: address_id
+ foreign-key: address_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: line_items.shopify_product_id
+ foreign-key: shopify_product_id
+ - table-name: orders
+ keys:
+ - key: address_id
+ foreign-key: address_id
+ - key: id
+ foreign-key: charge_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: line_items.shopify_product_id
+ foreign-key: line_items.shopify_product_id
+ - key: line_items.subscription_id
+ foreign-key: line_items.subscription_id
+ - table-name: subscriptions
+ keys:
+ - key: address_id
+ foreign-key: address_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: line_items.shopify_product_id
+ foreign-key: shopify_product_id
+ - key: line_items.subscription_id
+ foreign-key: id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: id
+ - table-name: products
+ keys:
+ - key: line_items.shopify_product_id
+ foreign-key: id
+- table-name: onetimes
+ join:
+ - table-name: addresses
+ keys:
+ - key: address_id
+ foreign-key: id
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: charges
+ keys:
+ - key: address_id
+ foreign-key: address_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: shopify_product_id
+ foreign-key: line_items.shopify_product_id
+ - table-name: orders
+ keys:
+ - key: address_id
+ foreign-key: address_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: shopify_product_id
+ foreign-key: line_items.shopify_product_id
+ - table-name: subscriptions
+ keys:
+ - key: address_id
+ foreign-key: address_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: shopify_product_id
+ foreign-key: shopify_product_id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: id
+ - table-name: products
+ keys:
+ - key: shopify_product_id
+ foreign-key: id
+- table-name: orders
+ join:
+ - table-name: addresses
+ keys:
+ - key: address_id
+ foreign-key: id
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: charges
+ keys:
+ - key: address_id
+ foreign-key: address_id
+ - key: charge_id
+ foreign-key: id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: line_items.shopify_product_id
+ foreign-key: line_items.shopify_product_id
+ - key: line_items.subscription_id
+ foreign-key: line_items.subscription_id
+ - table-name: onetimes
+ keys:
+ - key: address_id
+ foreign-key: address_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: line_items.shopify_product_id
+ foreign-key: shopify_product_id
+ - table-name: subscriptions
+ keys:
+ - key: address_id
+ foreign-key: address_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: line_items.shopify_product_id
+ foreign-key: shopify_product_id
+ - key: line_items.subscription_id
+ foreign-key: id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: id
+ - table-name: products
+ keys:
+ - key: line_items.shopify_product_id
+ foreign-key: id
+- table-name: subscriptions
+ join:
+ - table-name: addresses
+ keys:
+ - key: address_id
+ foreign-key: id
+ - key: customer_id
+ foreign-key: customer_id
+ - table-name: charges
+ keys:
+ - key: address_id
+ foreign-key: address_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: shopify_product_id
+ foreign-key: line_items.shopify_product_id
+ - key: id
+ foreign-key: line_items.subscription_id
+ - table-name: onetimes
+ keys:
+ - key: address_id
+ foreign-key: address_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: shopify_product_id
+ foreign-key: shopify_product_id
+ - table-name: orders
+ keys:
+ - key: address_id
+ foreign-key: address_id
+ - key: customer_id
+ foreign-key: customer_id
+ - key: shopify_product_id
+ foreign-key: line_items.shopify_product_id
+ - key: id
+ foreign-key: line_items.subscription_id
+ - table-name: customers
+ keys:
+ - key: customer_id
+ foreign-key: id
+ - table-name: products
+ keys:
+ - key: shopify_product_id
+ foreign-key: id
+- table-name: collections
+ join:
+ - table-name: products
+ keys:
+ - key: id
+ foreign-key: collection_id
+- table-name: products
+ join:
+ - table-name: collections
+ keys:
+ - key: collection_id
+ foreign-key: id
+ - table-name: charges
+ keys:
+ - key: id
+ foreign-key: line_items.shopify_product_id
+ - table-name: onetimes
+ keys:
+ - key: id
+ foreign-key: shopify_product_id
+ - table-name: orders
+ keys:
+ - key: id
+ foreign-key: line_items.shopify_product_id
+ - table-name: subscriptions
+ keys:
+ - key: id
+ foreign-key: shopify_product_id
+- table-name: customers
+ join:
+ - table-name: addresses
+ keys:
+ - key: id
+ foreign-key: customer_id
+ - table-name: charges
+ keys:
+ - key: id
+ foreign-key: customer_id
+ - table-name: onetimes
+ keys:
+ - key: id
+ foreign-key: customer_id
+ - table-name: orders
+ keys:
+ - key: id
+ foreign-key: customer_id
+ - table-name: subscriptions
+ keys:
+ - key: id
+ foreign-key: customer_id
+- table-name: discounts
+ join:
+ - table-name: addresses
+ keys:
+ - key: id
+ foreign-key: discount_id
diff --git a/_data/taps/schemas/recharge/v2/recharge-v2-tables.yml b/_data/taps/schemas/recharge/v2/recharge-v2-tables.yml
new file mode 100644
index 000000000..23b0c6cd8
--- /dev/null
+++ b/_data/taps/schemas/recharge/v2/recharge-v2-tables.yml
@@ -0,0 +1,157 @@
+tap: recharge
+version: '2'
+tables:
+- name: addresses
+ description: 'The `{{ table.name }}` table contains info about the addresses (shipping
+ locations) a customer has. A subscription is tied to a given address, but a customer
+ can have multiple addresses.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recharge/tree/master/tap_recharge/schemas/addresses.json
+ api-method: https://developer.rechargepayments.com/2021-11/addresses/list_addresses
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: charges
+ description: 'The `{{ table.name }}` table contains info about charges. A charge
+ is a placeholder for an upcoming charge once the charge is processed successfully.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recharge/tree/master/tap_recharge/schemas/charges.json
+ api-method: https://developer.rechargepayments.com/2021-11/charges/charge_list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: collections
+ description: 'The `{{ table.name }}` table contains info about your collections.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recharge/tree/master/tap_recharge/schemas/collections.json
+ api-method: https://developer.rechargepayments.com/2021-11/collection_products
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: customers
+ description: 'The `{{ table.name }}` table contains info about customer accounts
+ with a store.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recharge/tree/master/tap_recharge/schemas/customers.json
+ api-method: https://developer.rechargepayments.com/2021-11/customers/customers_list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: discounts
+ description: 'The `{{ table.name }}` table contains info about discounts.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recharge/tree/master/tap_recharge/schemas/discounts.json
+ api-method: https://developer.rechargepayments.com/2021-11/discounts/discounts_list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: metafields_customer
+ description: 'The `{{ table.name }}` table contains info about metafields related
+ to customers.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recharge/tree/master/tap_recharge/schemas/metafields_customer.json
+ api-method: https://developer.rechargepayments.com/2021-11/metafields/metafields_list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: metafields_store
+ description: 'The `{{ table.name }}` table contains info about metafields related
+ to stores.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recharge/tree/master/tap_recharge/schemas/metafields_store.json
+ api-method: https://developer.rechargepayments.com/2021-11/metafields/metafields_list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: metafields_subscription
+ description: 'The `{{ table.name }}` table contains info about metafields related
+ to subscriptions.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recharge/tree/master/tap_recharge/schemas/metafields_subscription.json
+ api-method: https://developer.rechargepayments.com/2021-11/metafields/metafields_list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: onetimes
+ description: 'The `{{ table.name }}` table contains info about one time products.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recharge/tree/master/tap_recharge/schemas/onetimes.json
+ api-method: https://developer.rechargepayments.com/2021-11/onetimes/onetimes_list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: orders
+ description: 'The `{{ table.name }}` table contains info about orders. Orders are
+ created after a charge is successfully processed.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recharge/tree/master/tap_recharge/schemas/orders.json
+ api-method: https://developer.rechargepayments.com/2021-11/orders/orders_list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: products
+ description: 'The `{{ table.name }}` table contains info about your products. This
+ table uses the 2021-01 API version.
+
+ '
+ links:
+ doc-link: https://developer.rechargepayments.com/2021-11/products/products_list
+ singer-schema: https://github.com/singer-io/tap-recharge/tree/master/tap_recharge/schemas/products.json
+ api-method: https://developer.rechargepayments.com/2021-01/products/products_list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: store
+ description: 'The `{{ table.name }}` table contains info about your store.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recharge/tree/master/tap_recharge/schemas/store.json
+ api-method: https://developer.rechargepayments.com/2021-11/store/store_retrieve
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: subscriptions
+ description: 'The `{{ table.name }}` table contains info about subscriptions. Subscriptions
+ are individual items that customers receive on a recurring basis.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recharge/tree/master/tap_recharge/schemas/subscriptions.json
+ api-method: https://developer.rechargepayments.com/2021-11/subscriptions/subscriptions_list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/recurly/v1/json/accounts.json b/_data/taps/schemas/recurly/v1/json/accounts.json
new file mode 100644
index 000000000..8719948ab
--- /dev/null
+++ b/_data/taps/schemas/recurly/v1/json/accounts.json
@@ -0,0 +1,553 @@
+{
+ "properties": {
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "street1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "street2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "bill_to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_info": {
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "street1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "street2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fraud": {
+ "properties": {
+ "decision": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "risk_rules_triggered": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "score": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method": {
+ "properties": {
+ "card_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "first_six": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_four": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by": {
+ "properties": {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "valid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "vat_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "cc_emails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "deleted_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exemption_certificate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hosted_login_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preferred_locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_addresses": {
+ "items": {
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "street1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "street2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "vat_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_exempt": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vat_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recurly/v1/json/adjustments.json b/_data/taps/schemas/recurly/v1/json/adjustments.json
new file mode 100644
index 000000000..13cedfd62
--- /dev/null
+++ b/_data/taps/schemas/recurly/v1/json/adjustments.json
@@ -0,0 +1,421 @@
+{
+ "properties": {
+ "account": {
+ "properties": {
+ "bill_to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "accounting_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "add_on_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "add_on_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "credit_applied": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "credit_reason_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "legacy_category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "origin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_line_item_invoice_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "previous_line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "proration_rate": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "refund": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "refunded_quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shipping_address": {
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "street1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "street2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "vat_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subtotal": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_exempt": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tax_info": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recurly/v1/json/billing_info.json b/_data/taps/schemas/recurly/v1/json/billing_info.json
new file mode 100644
index 000000000..6df429fd9
--- /dev/null
+++ b/_data/taps/schemas/recurly/v1/json/billing_info.json
@@ -0,0 +1,271 @@
+{
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "street1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "street2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "exemption_certificate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fraud": {
+ "properties": {
+ "decision": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "risk_rules_triggered": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "score": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method": {
+ "properties": {
+ "account_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "first_six": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_four": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "routing_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "routing_number_bank": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by": {
+ "properties": {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "valid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "vat_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recurly/v1/json/coupon_redemptions.json b/_data/taps/schemas/recurly/v1/json/coupon_redemptions.json
new file mode 100644
index 000000000..c17886d1c
--- /dev/null
+++ b/_data/taps/schemas/recurly/v1/json/coupon_redemptions.json
@@ -0,0 +1,356 @@
+{
+ "properties": {
+ "account": {
+ "properties": {
+ "bill_to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "coupon": {
+ "properties": {
+ "applies_to_all_plans": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "applies_to_non_plan_charges": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "coupon_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "discount": {
+ "properties": {
+ "currencies": {
+ "items": {
+ "properties": {
+ "amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "percent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "trial": {
+ "properties": {
+ "length": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expired_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "free_trial_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "free_trial_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hosted_page_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_redemptions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "max_redemptions_per_account": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plans": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plans_names": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "redeem_by": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "redemption_resource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "temporal_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "temporal_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unique_coupon_codes_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discounted": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "removed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unique_code_template": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recurly/v1/json/coupons.json b/_data/taps/schemas/recurly/v1/json/coupons.json
new file mode 100644
index 000000000..a5030f6b5
--- /dev/null
+++ b/_data/taps/schemas/recurly/v1/json/coupons.json
@@ -0,0 +1,259 @@
+{
+ "properties": {
+ "applies_to_all_plans": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "applies_to_non_plan_charges": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "coupon_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "discount": {
+ "properties": {
+ "currencies": {
+ "items": {
+ "properties": {
+ "amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "percent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "trial": {
+ "properties": {
+ "length": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expired_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "free_trial_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "free_trial_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hosted_page_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_redemptions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "max_redemptions_per_account": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plans": {
+ "items": {
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array",
+ "string"
+ ]
+ },
+ "plans_names": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "redeem_by": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "redemption_resource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "temporal_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "temporal_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unique_coupon_codes_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recurly/v1/json/invoices.json b/_data/taps/schemas/recurly/v1/json/invoices.json
new file mode 100644
index 000000000..131cd91e1
--- /dev/null
+++ b/_data/taps/schemas/recurly/v1/json/invoices.json
@@ -0,0 +1,1950 @@
+{
+ "properties": {
+ "account": {
+ "properties": {
+ "bill_to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name_on_account": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "street1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "street2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "balance": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "closed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "collection_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "credit_payments": {
+ "items": {
+ "properties": {
+ "account": {
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "applied_to_invoice": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_credit_payment_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_invoice": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "refund_transaction": {
+ "properties": {
+ "account": {
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avs_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "street1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "street2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "collected_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "collection_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_message_locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvv_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway_approval_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway_reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway_response_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway_response_time": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "gateway_response_values": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ip_address_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ip_address_v4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "origin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_transaction_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_gateway": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "payment_method": {
+ "properties": {
+ "card_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "first_six": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_four": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "refunded": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_ids": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "success": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voided_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "voided_by_invoice": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voided_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "due_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_items": {
+ "properties": {
+ "data": {
+ "items": {
+ "properties": {
+ "account": {
+ "properties": {
+ "bill_to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "accounting_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "add_on_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "add_on_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "credit_applied": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "credit_reason_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "legacy_category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "origin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_line_item_invoice_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "previous_line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "proration_rate": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "refund": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "refunded_quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shipping_addresses": {
+ "items": {
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "street1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "street2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "vat_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subtotal": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_exempt": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tax_info": {
+ "properties": {
+ "rate": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "has_more": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "next": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "net_terms": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "origin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "paid": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "po_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "previous_invoice_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refundable_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_ids": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "subtotal": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_info": {
+ "properties": {
+ "rate": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "terms_and_conditions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transactions": {
+ "items": {
+ "properties": {
+ "account": {
+ "properties": {
+ "bill_to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avs_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "street1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "street2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "collected_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "collection_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_message_locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvv_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway_approval_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway_reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway_response_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway_response_time": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "gateway_response_values": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ip_address_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ip_address_v4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "origin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_transaction_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_gateway": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "payment_method": {
+ "properties": {
+ "card_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "first_six": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_four": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "refunded": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_ids": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "success": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voided_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "voided_by_invoice": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "vat_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vat_reverse_charge_notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recurly/v1/json/plans.json b/_data/taps/schemas/recurly/v1/json/plans.json
new file mode 100644
index 000000000..20ece371a
--- /dev/null
+++ b/_data/taps/schemas/recurly/v1/json/plans.json
@@ -0,0 +1,188 @@
+{
+ "properties": {
+ "accounting_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "auto_renew": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currencies": {
+ "items": {
+ "properties": {
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "setup_fee": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unit_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "deleted_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hosted_pages": {
+ "properties": {
+ "bypass_confirmation": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "cancel_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_quantity": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "success_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval_length": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interval_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "setup_fee_accounting_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_exempt": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "total_billing_cycles": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "trial_length": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "trial_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recurly/v1/json/plans_add_ons.json b/_data/taps/schemas/recurly/v1/json/plans_add_ons.json
new file mode 100644
index 000000000..107ff0135
--- /dev/null
+++ b/_data/taps/schemas/recurly/v1/json/plans_add_ons.json
@@ -0,0 +1,113 @@
+{
+ "properties": {
+ "accounting_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currencies": {
+ "items": {
+ "properties": {
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "default_quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "deleted_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "display_quantity": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recurly/v1/json/subscriptions.json b/_data/taps/schemas/recurly/v1/json/subscriptions.json
new file mode 100644
index 000000000..25671ba69
--- /dev/null
+++ b/_data/taps/schemas/recurly/v1/json/subscriptions.json
@@ -0,0 +1,903 @@
+{
+ "properties": {
+ "account": {
+ "properties": {
+ "bill_to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "activated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "add_ons": {
+ "items": {
+ "properties": {
+ "add_on": {
+ "properties": {
+ "accounting_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "expired_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "add_ons_total": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "auto_renew": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "bank_account_authorized_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "canceled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "collection_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "coupon_redemptions": {
+ "items": {
+ "properties": {
+ "coupon": {
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "coupon_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount": {
+ "properties": {
+ "currencies": {
+ "items": {
+ "properties": {
+ "amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "percent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "trial": {
+ "properties": {
+ "length": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "expired_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "discounted": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "current_period_ends_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "current_period_started_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "current_term_ends_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "current_term_started_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "customer_notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expiration_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expires_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "net_terms": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "paused_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "pending_change": {
+ "properties": {
+ "activate_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "activated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "add_ons": {
+ "items": {
+ "properties": {
+ "add_on": {
+ "properties": {
+ "accounting_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "expired_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan": {
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "subscription_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "plan": {
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "po_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "remaining_billing_cycles": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "remaining_pause_cycles": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "renewal_billing_cycles": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shipping_address": {
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "street1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "street2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "vat_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subtotal": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "terms_and_conditions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_billing_cycles": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "trial_ends_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "trial_started_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "unit_amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recurly/v1/json/transactions.json b/_data/taps/schemas/recurly/v1/json/transactions.json
new file mode 100644
index 000000000..9df9f0b40
--- /dev/null
+++ b/_data/taps/schemas/recurly/v1/json/transactions.json
@@ -0,0 +1,512 @@
+{
+ "properties": {
+ "account": {
+ "properties": {
+ "bill_to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "avs_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "street1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "street2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "collected_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "collection_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_message_locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvv_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway_approval_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway_reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway_response_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway_response_time": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "gateway_response_values": {
+ "properties": {
+ "amount": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "amount_refunded": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "card_fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ip_address_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ip_address_v4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "origin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_transaction_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_gateway": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "payment_method": {
+ "properties": {
+ "card_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "first_six": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_four": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "refunded": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_ids": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "success": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voided_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "voided_by_invoice": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/recurly/v1/recurly-v1-foreign-keys.yml b/_data/taps/schemas/recurly/v1/recurly-v1-foreign-keys.yml
new file mode 100644
index 000000000..f0aa7b5b6
--- /dev/null
+++ b/_data/taps/schemas/recurly/v1/recurly-v1-foreign-keys.yml
@@ -0,0 +1,836 @@
+tap: recurly
+version: '1'
+keys:
+ accounts_account_id:
+ - table: accounts
+ keys:
+ - id
+ - parent_account_id
+ - shipping_addresses.account_id
+ - table: adjustments
+ keys:
+ - account.id
+ - account.parent_account_id
+ - table: billing_info
+ keys:
+ - account_id
+ - table: coupon_redemptions
+ keys:
+ - account_id
+ - table: invoices
+ keys:
+ - account.id
+ - account.parent_account_id
+ - credit_payments.refund_transaction.account.id
+ - line_items.data.shipping_addresses.account_id
+ - table: subscriptions
+ keys:
+ - shipping_address.account_id
+ - table: transactions
+ keys:
+ - account.id
+ - account.parent_account_id
+ adjustments_adjustment_id:
+ - table: adjustments
+ keys:
+ - id
+ coupons_coupon_id:
+ - table: coupon_redemptions
+ keys:
+ - coupon.id
+ - table: coupons
+ keys:
+ - id
+ - table: subscriptions
+ keys:
+ - coupon_redemptions.coupon.id
+ coupon_redemptions_:
+ - table: coupon_redemptions
+ keys:
+ - id
+ - table: subscriptions
+ keys:
+ - coupon_redemptions.id
+ invoices_invoice_id:
+ - table: adjustments
+ keys:
+ - invoice_id
+ - table: invoices
+ keys:
+ - id
+ - credit_payments.applied_to_invoice.id
+ - credit_payments.original_invoice.id
+ - credit_payments.refund_transaction.invoice.id
+ - credit_payments.refund_transaction.voided_by_invoice.id
+ - line_items.data.invoice_id
+ - subscription_ids
+ - table: transactions
+ keys:
+ - invoice.id
+ - voided_by_invoice.id
+ plans_plan_id:
+ - table: adjustments
+ keys:
+ - plan_id
+ - table: invoices
+ keys:
+ - line_items.data.plan_id
+ - table: plans
+ keys:
+ - id
+ - table: plans_add_ons
+ keys:
+ - plan_id
+ - table: subscriptions
+ keys:
+ - pending_change.plan.id
+ plans_add_ons_add_on_id:
+ - table: adjustments
+ keys:
+ - add_on_id
+ - table: invoices
+ keys:
+ - line_items.data.add_on_id
+ - table: plans_add_ons
+ keys:
+ - id
+ - table: subscriptions
+ keys:
+ - add_ons.add_on.id
+ subscriptions_subscription_id:
+ - table: invoices
+ keys:
+ - credit_payments.refund_transaction.subscription_ids
+ - line_items.data.subscription_id
+ - table: subscriptions
+ keys:
+ - id
+ - add_ons.subscription_id
+ - pending_change.add_ons.subscription_id
+ - pending_change.subscription_id
+ - table: transactions
+ keys:
+ - subscription_ids
+ transactions_:
+ - table: invoices
+ keys:
+ - credit_payments.refund_transaction.id
+ - credit_payments.refund_transaction.original_transaction_id
+ - transactions.id
+ - table: transactions
+ keys:
+ - id
+ - original_transaction_id
+tables:
+- table-name: accounts
+ join:
+ - table-name: adjustments
+ keys:
+ - key: id
+ foreign-key: account.id
+ - key: parent_account_id
+ foreign-key: account.id
+ - key: shipping_addresses.account_id
+ foreign-key: account.id
+ - key: id
+ foreign-key: account.parent_account_id
+ - key: parent_account_id
+ foreign-key: account.parent_account_id
+ - key: shipping_addresses.account_id
+ foreign-key: account.parent_account_id
+ - table-name: billing_info
+ keys:
+ - key: id
+ foreign-key: account_id
+ - key: parent_account_id
+ foreign-key: account_id
+ - key: shipping_addresses.account_id
+ foreign-key: account_id
+ - table-name: coupon_redemptions
+ keys:
+ - key: id
+ foreign-key: account_id
+ - key: parent_account_id
+ foreign-key: account_id
+ - key: shipping_addresses.account_id
+ foreign-key: account_id
+ - table-name: invoices
+ keys:
+ - key: id
+ foreign-key: account.id
+ - key: parent_account_id
+ foreign-key: account.id
+ - key: shipping_addresses.account_id
+ foreign-key: account.id
+ - key: id
+ foreign-key: account.parent_account_id
+ - key: parent_account_id
+ foreign-key: account.parent_account_id
+ - key: shipping_addresses.account_id
+ foreign-key: account.parent_account_id
+ - key: id
+ foreign-key: credit_payments.refund_transaction.account.id
+ - key: parent_account_id
+ foreign-key: credit_payments.refund_transaction.account.id
+ - key: shipping_addresses.account_id
+ foreign-key: credit_payments.refund_transaction.account.id
+ - key: id
+ foreign-key: line_items.data.shipping_addresses.account_id
+ - key: parent_account_id
+ foreign-key: line_items.data.shipping_addresses.account_id
+ - key: shipping_addresses.account_id
+ foreign-key: line_items.data.shipping_addresses.account_id
+ - table-name: subscriptions
+ keys:
+ - key: id
+ foreign-key: shipping_address.account_id
+ - key: parent_account_id
+ foreign-key: shipping_address.account_id
+ - key: shipping_addresses.account_id
+ foreign-key: shipping_address.account_id
+ - table-name: transactions
+ keys:
+ - key: id
+ foreign-key: account.id
+ - key: parent_account_id
+ foreign-key: account.id
+ - key: shipping_addresses.account_id
+ foreign-key: account.id
+ - key: id
+ foreign-key: account.parent_account_id
+ - key: parent_account_id
+ foreign-key: account.parent_account_id
+ - key: shipping_addresses.account_id
+ foreign-key: account.parent_account_id
+- table-name: adjustments
+ join:
+ - table-name: accounts
+ keys:
+ - key: account.id
+ foreign-key: id
+ - key: account.parent_account_id
+ foreign-key: id
+ - key: account.id
+ foreign-key: parent_account_id
+ - key: account.parent_account_id
+ foreign-key: parent_account_id
+ - key: account.id
+ foreign-key: shipping_addresses.account_id
+ - key: account.parent_account_id
+ foreign-key: shipping_addresses.account_id
+ - table-name: billing_info
+ keys:
+ - key: account.id
+ foreign-key: account_id
+ - key: account.parent_account_id
+ foreign-key: account_id
+ - table-name: coupon_redemptions
+ keys:
+ - key: account.id
+ foreign-key: account_id
+ - key: account.parent_account_id
+ foreign-key: account_id
+ - table-name: invoices
+ keys:
+ - key: account.id
+ foreign-key: account.id
+ - key: account.parent_account_id
+ foreign-key: account.id
+ - key: account.id
+ foreign-key: account.parent_account_id
+ - key: account.parent_account_id
+ foreign-key: account.parent_account_id
+ - key: account.id
+ foreign-key: credit_payments.refund_transaction.account.id
+ - key: account.parent_account_id
+ foreign-key: credit_payments.refund_transaction.account.id
+ - key: account.id
+ foreign-key: line_items.data.shipping_addresses.account_id
+ - key: account.parent_account_id
+ foreign-key: line_items.data.shipping_addresses.account_id
+ - key: invoice_id
+ foreign-key: id
+ - key: invoice_id
+ foreign-key: credit_payments.applied_to_invoice.id
+ - key: invoice_id
+ foreign-key: credit_payments.original_invoice.id
+ - key: invoice_id
+ foreign-key: credit_payments.refund_transaction.invoice.id
+ - key: invoice_id
+ foreign-key: credit_payments.refund_transaction.voided_by_invoice.id
+ - key: invoice_id
+ foreign-key: line_items.data.invoice_id
+ - key: invoice_id
+ foreign-key: subscription_ids
+ - key: plan_id
+ foreign-key: line_items.data.plan_id
+ - key: add_on_id
+ foreign-key: line_items.data.add_on_id
+ - table-name: subscriptions
+ keys:
+ - key: account.id
+ foreign-key: shipping_address.account_id
+ - key: account.parent_account_id
+ foreign-key: shipping_address.account_id
+ - key: plan_id
+ foreign-key: pending_change.plan.id
+ - key: add_on_id
+ foreign-key: add_ons.add_on.id
+ - table-name: transactions
+ keys:
+ - key: account.id
+ foreign-key: account.id
+ - key: account.parent_account_id
+ foreign-key: account.id
+ - key: account.id
+ foreign-key: account.parent_account_id
+ - key: account.parent_account_id
+ foreign-key: account.parent_account_id
+ - key: invoice_id
+ foreign-key: invoice.id
+ - key: invoice_id
+ foreign-key: voided_by_invoice.id
+ - table-name: plans
+ keys:
+ - key: plan_id
+ foreign-key: id
+ - table-name: plans_add_ons
+ keys:
+ - key: plan_id
+ foreign-key: plan_id
+ - key: add_on_id
+ foreign-key: id
+- table-name: billing_info
+ join:
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: id
+ - key: account_id
+ foreign-key: parent_account_id
+ - key: account_id
+ foreign-key: shipping_addresses.account_id
+ - table-name: adjustments
+ keys:
+ - key: account_id
+ foreign-key: account.id
+ - key: account_id
+ foreign-key: account.parent_account_id
+ - table-name: coupon_redemptions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: invoices
+ keys:
+ - key: account_id
+ foreign-key: account.id
+ - key: account_id
+ foreign-key: account.parent_account_id
+ - key: account_id
+ foreign-key: credit_payments.refund_transaction.account.id
+ - key: account_id
+ foreign-key: line_items.data.shipping_addresses.account_id
+ - table-name: subscriptions
+ keys:
+ - key: account_id
+ foreign-key: shipping_address.account_id
+ - table-name: transactions
+ keys:
+ - key: account_id
+ foreign-key: account.id
+ - key: account_id
+ foreign-key: account.parent_account_id
+- table-name: coupon_redemptions
+ join:
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: id
+ - key: account_id
+ foreign-key: parent_account_id
+ - key: account_id
+ foreign-key: shipping_addresses.account_id
+ - table-name: adjustments
+ keys:
+ - key: account_id
+ foreign-key: account.id
+ - key: account_id
+ foreign-key: account.parent_account_id
+ - table-name: billing_info
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: invoices
+ keys:
+ - key: account_id
+ foreign-key: account.id
+ - key: account_id
+ foreign-key: account.parent_account_id
+ - key: account_id
+ foreign-key: credit_payments.refund_transaction.account.id
+ - key: account_id
+ foreign-key: line_items.data.shipping_addresses.account_id
+ - table-name: subscriptions
+ keys:
+ - key: account_id
+ foreign-key: shipping_address.account_id
+ - key: coupon.id
+ foreign-key: coupon_redemptions.coupon.id
+ - key: id
+ foreign-key: coupon_redemptions.id
+ - table-name: transactions
+ keys:
+ - key: account_id
+ foreign-key: account.id
+ - key: account_id
+ foreign-key: account.parent_account_id
+ - table-name: coupons
+ keys:
+ - key: coupon.id
+ foreign-key: id
+- table-name: invoices
+ join:
+ - table-name: accounts
+ keys:
+ - key: account.id
+ foreign-key: id
+ - key: account.parent_account_id
+ foreign-key: id
+ - key: credit_payments.refund_transaction.account.id
+ foreign-key: id
+ - key: line_items.data.shipping_addresses.account_id
+ foreign-key: id
+ - key: account.id
+ foreign-key: parent_account_id
+ - key: account.parent_account_id
+ foreign-key: parent_account_id
+ - key: credit_payments.refund_transaction.account.id
+ foreign-key: parent_account_id
+ - key: line_items.data.shipping_addresses.account_id
+ foreign-key: parent_account_id
+ - key: account.id
+ foreign-key: shipping_addresses.account_id
+ - key: account.parent_account_id
+ foreign-key: shipping_addresses.account_id
+ - key: credit_payments.refund_transaction.account.id
+ foreign-key: shipping_addresses.account_id
+ - key: line_items.data.shipping_addresses.account_id
+ foreign-key: shipping_addresses.account_id
+ - table-name: adjustments
+ keys:
+ - key: account.id
+ foreign-key: account.id
+ - key: account.parent_account_id
+ foreign-key: account.id
+ - key: credit_payments.refund_transaction.account.id
+ foreign-key: account.id
+ - key: line_items.data.shipping_addresses.account_id
+ foreign-key: account.id
+ - key: account.id
+ foreign-key: account.parent_account_id
+ - key: account.parent_account_id
+ foreign-key: account.parent_account_id
+ - key: credit_payments.refund_transaction.account.id
+ foreign-key: account.parent_account_id
+ - key: line_items.data.shipping_addresses.account_id
+ foreign-key: account.parent_account_id
+ - key: id
+ foreign-key: invoice_id
+ - key: credit_payments.applied_to_invoice.id
+ foreign-key: invoice_id
+ - key: credit_payments.original_invoice.id
+ foreign-key: invoice_id
+ - key: credit_payments.refund_transaction.invoice.id
+ foreign-key: invoice_id
+ - key: credit_payments.refund_transaction.voided_by_invoice.id
+ foreign-key: invoice_id
+ - key: line_items.data.invoice_id
+ foreign-key: invoice_id
+ - key: subscription_ids
+ foreign-key: invoice_id
+ - key: line_items.data.plan_id
+ foreign-key: plan_id
+ - key: line_items.data.add_on_id
+ foreign-key: add_on_id
+ - table-name: billing_info
+ keys:
+ - key: account.id
+ foreign-key: account_id
+ - key: account.parent_account_id
+ foreign-key: account_id
+ - key: credit_payments.refund_transaction.account.id
+ foreign-key: account_id
+ - key: line_items.data.shipping_addresses.account_id
+ foreign-key: account_id
+ - table-name: coupon_redemptions
+ keys:
+ - key: account.id
+ foreign-key: account_id
+ - key: account.parent_account_id
+ foreign-key: account_id
+ - key: credit_payments.refund_transaction.account.id
+ foreign-key: account_id
+ - key: line_items.data.shipping_addresses.account_id
+ foreign-key: account_id
+ - table-name: subscriptions
+ keys:
+ - key: account.id
+ foreign-key: shipping_address.account_id
+ - key: account.parent_account_id
+ foreign-key: shipping_address.account_id
+ - key: credit_payments.refund_transaction.account.id
+ foreign-key: shipping_address.account_id
+ - key: line_items.data.shipping_addresses.account_id
+ foreign-key: shipping_address.account_id
+ - key: line_items.data.plan_id
+ foreign-key: pending_change.plan.id
+ - key: line_items.data.add_on_id
+ foreign-key: add_ons.add_on.id
+ - key: credit_payments.refund_transaction.subscription_ids
+ foreign-key: id
+ - key: line_items.data.subscription_id
+ foreign-key: id
+ - key: credit_payments.refund_transaction.subscription_ids
+ foreign-key: add_ons.subscription_id
+ - key: line_items.data.subscription_id
+ foreign-key: add_ons.subscription_id
+ - key: credit_payments.refund_transaction.subscription_ids
+ foreign-key: pending_change.add_ons.subscription_id
+ - key: line_items.data.subscription_id
+ foreign-key: pending_change.add_ons.subscription_id
+ - key: credit_payments.refund_transaction.subscription_ids
+ foreign-key: pending_change.subscription_id
+ - key: line_items.data.subscription_id
+ foreign-key: pending_change.subscription_id
+ - table-name: transactions
+ keys:
+ - key: account.id
+ foreign-key: account.id
+ - key: account.parent_account_id
+ foreign-key: account.id
+ - key: credit_payments.refund_transaction.account.id
+ foreign-key: account.id
+ - key: line_items.data.shipping_addresses.account_id
+ foreign-key: account.id
+ - key: account.id
+ foreign-key: account.parent_account_id
+ - key: account.parent_account_id
+ foreign-key: account.parent_account_id
+ - key: credit_payments.refund_transaction.account.id
+ foreign-key: account.parent_account_id
+ - key: line_items.data.shipping_addresses.account_id
+ foreign-key: account.parent_account_id
+ - key: id
+ foreign-key: invoice.id
+ - key: credit_payments.applied_to_invoice.id
+ foreign-key: invoice.id
+ - key: credit_payments.original_invoice.id
+ foreign-key: invoice.id
+ - key: credit_payments.refund_transaction.invoice.id
+ foreign-key: invoice.id
+ - key: credit_payments.refund_transaction.voided_by_invoice.id
+ foreign-key: invoice.id
+ - key: line_items.data.invoice_id
+ foreign-key: invoice.id
+ - key: subscription_ids
+ foreign-key: invoice.id
+ - key: id
+ foreign-key: voided_by_invoice.id
+ - key: credit_payments.applied_to_invoice.id
+ foreign-key: voided_by_invoice.id
+ - key: credit_payments.original_invoice.id
+ foreign-key: voided_by_invoice.id
+ - key: credit_payments.refund_transaction.invoice.id
+ foreign-key: voided_by_invoice.id
+ - key: credit_payments.refund_transaction.voided_by_invoice.id
+ foreign-key: voided_by_invoice.id
+ - key: line_items.data.invoice_id
+ foreign-key: voided_by_invoice.id
+ - key: subscription_ids
+ foreign-key: voided_by_invoice.id
+ - key: credit_payments.refund_transaction.subscription_ids
+ foreign-key: subscription_ids
+ - key: line_items.data.subscription_id
+ foreign-key: subscription_ids
+ - key: credit_payments.refund_transaction.id
+ foreign-key: id
+ - key: credit_payments.refund_transaction.original_transaction_id
+ foreign-key: id
+ - key: transactions.id
+ foreign-key: id
+ - key: credit_payments.refund_transaction.id
+ foreign-key: original_transaction_id
+ - key: credit_payments.refund_transaction.original_transaction_id
+ foreign-key: original_transaction_id
+ - key: transactions.id
+ foreign-key: original_transaction_id
+ - table-name: plans
+ keys:
+ - key: line_items.data.plan_id
+ foreign-key: id
+ - table-name: plans_add_ons
+ keys:
+ - key: line_items.data.plan_id
+ foreign-key: plan_id
+ - key: line_items.data.add_on_id
+ foreign-key: id
+- table-name: subscriptions
+ join:
+ - table-name: accounts
+ keys:
+ - key: shipping_address.account_id
+ foreign-key: id
+ - key: shipping_address.account_id
+ foreign-key: parent_account_id
+ - key: shipping_address.account_id
+ foreign-key: shipping_addresses.account_id
+ - table-name: adjustments
+ keys:
+ - key: shipping_address.account_id
+ foreign-key: account.id
+ - key: shipping_address.account_id
+ foreign-key: account.parent_account_id
+ - key: pending_change.plan.id
+ foreign-key: plan_id
+ - key: add_ons.add_on.id
+ foreign-key: add_on_id
+ - table-name: billing_info
+ keys:
+ - key: shipping_address.account_id
+ foreign-key: account_id
+ - table-name: coupon_redemptions
+ keys:
+ - key: shipping_address.account_id
+ foreign-key: account_id
+ - key: coupon_redemptions.coupon.id
+ foreign-key: coupon.id
+ - key: coupon_redemptions.id
+ foreign-key: id
+ - table-name: invoices
+ keys:
+ - key: shipping_address.account_id
+ foreign-key: account.id
+ - key: shipping_address.account_id
+ foreign-key: account.parent_account_id
+ - key: shipping_address.account_id
+ foreign-key: credit_payments.refund_transaction.account.id
+ - key: shipping_address.account_id
+ foreign-key: line_items.data.shipping_addresses.account_id
+ - key: pending_change.plan.id
+ foreign-key: line_items.data.plan_id
+ - key: add_ons.add_on.id
+ foreign-key: line_items.data.add_on_id
+ - key: id
+ foreign-key: credit_payments.refund_transaction.subscription_ids
+ - key: add_ons.subscription_id
+ foreign-key: credit_payments.refund_transaction.subscription_ids
+ - key: pending_change.add_ons.subscription_id
+ foreign-key: credit_payments.refund_transaction.subscription_ids
+ - key: pending_change.subscription_id
+ foreign-key: credit_payments.refund_transaction.subscription_ids
+ - key: id
+ foreign-key: line_items.data.subscription_id
+ - key: add_ons.subscription_id
+ foreign-key: line_items.data.subscription_id
+ - key: pending_change.add_ons.subscription_id
+ foreign-key: line_items.data.subscription_id
+ - key: pending_change.subscription_id
+ foreign-key: line_items.data.subscription_id
+ - table-name: transactions
+ keys:
+ - key: shipping_address.account_id
+ foreign-key: account.id
+ - key: shipping_address.account_id
+ foreign-key: account.parent_account_id
+ - key: id
+ foreign-key: subscription_ids
+ - key: add_ons.subscription_id
+ foreign-key: subscription_ids
+ - key: pending_change.add_ons.subscription_id
+ foreign-key: subscription_ids
+ - key: pending_change.subscription_id
+ foreign-key: subscription_ids
+ - table-name: coupons
+ keys:
+ - key: coupon_redemptions.coupon.id
+ foreign-key: id
+ - table-name: plans
+ keys:
+ - key: pending_change.plan.id
+ foreign-key: id
+ - table-name: plans_add_ons
+ keys:
+ - key: pending_change.plan.id
+ foreign-key: plan_id
+ - key: add_ons.add_on.id
+ foreign-key: id
+- table-name: transactions
+ join:
+ - table-name: accounts
+ keys:
+ - key: account.id
+ foreign-key: id
+ - key: account.parent_account_id
+ foreign-key: id
+ - key: account.id
+ foreign-key: parent_account_id
+ - key: account.parent_account_id
+ foreign-key: parent_account_id
+ - key: account.id
+ foreign-key: shipping_addresses.account_id
+ - key: account.parent_account_id
+ foreign-key: shipping_addresses.account_id
+ - table-name: adjustments
+ keys:
+ - key: account.id
+ foreign-key: account.id
+ - key: account.parent_account_id
+ foreign-key: account.id
+ - key: account.id
+ foreign-key: account.parent_account_id
+ - key: account.parent_account_id
+ foreign-key: account.parent_account_id
+ - key: invoice.id
+ foreign-key: invoice_id
+ - key: voided_by_invoice.id
+ foreign-key: invoice_id
+ - table-name: billing_info
+ keys:
+ - key: account.id
+ foreign-key: account_id
+ - key: account.parent_account_id
+ foreign-key: account_id
+ - table-name: coupon_redemptions
+ keys:
+ - key: account.id
+ foreign-key: account_id
+ - key: account.parent_account_id
+ foreign-key: account_id
+ - table-name: invoices
+ keys:
+ - key: account.id
+ foreign-key: account.id
+ - key: account.parent_account_id
+ foreign-key: account.id
+ - key: account.id
+ foreign-key: account.parent_account_id
+ - key: account.parent_account_id
+ foreign-key: account.parent_account_id
+ - key: account.id
+ foreign-key: credit_payments.refund_transaction.account.id
+ - key: account.parent_account_id
+ foreign-key: credit_payments.refund_transaction.account.id
+ - key: account.id
+ foreign-key: line_items.data.shipping_addresses.account_id
+ - key: account.parent_account_id
+ foreign-key: line_items.data.shipping_addresses.account_id
+ - key: invoice.id
+ foreign-key: id
+ - key: voided_by_invoice.id
+ foreign-key: id
+ - key: invoice.id
+ foreign-key: credit_payments.applied_to_invoice.id
+ - key: voided_by_invoice.id
+ foreign-key: credit_payments.applied_to_invoice.id
+ - key: invoice.id
+ foreign-key: credit_payments.original_invoice.id
+ - key: voided_by_invoice.id
+ foreign-key: credit_payments.original_invoice.id
+ - key: invoice.id
+ foreign-key: credit_payments.refund_transaction.invoice.id
+ - key: voided_by_invoice.id
+ foreign-key: credit_payments.refund_transaction.invoice.id
+ - key: invoice.id
+ foreign-key: credit_payments.refund_transaction.voided_by_invoice.id
+ - key: voided_by_invoice.id
+ foreign-key: credit_payments.refund_transaction.voided_by_invoice.id
+ - key: invoice.id
+ foreign-key: line_items.data.invoice_id
+ - key: voided_by_invoice.id
+ foreign-key: line_items.data.invoice_id
+ - key: invoice.id
+ foreign-key: subscription_ids
+ - key: voided_by_invoice.id
+ foreign-key: subscription_ids
+ - key: subscription_ids
+ foreign-key: credit_payments.refund_transaction.subscription_ids
+ - key: subscription_ids
+ foreign-key: line_items.data.subscription_id
+ - key: id
+ foreign-key: credit_payments.refund_transaction.id
+ - key: original_transaction_id
+ foreign-key: credit_payments.refund_transaction.id
+ - key: id
+ foreign-key: credit_payments.refund_transaction.original_transaction_id
+ - key: original_transaction_id
+ foreign-key: credit_payments.refund_transaction.original_transaction_id
+ - key: id
+ foreign-key: transactions.id
+ - key: original_transaction_id
+ foreign-key: transactions.id
+ - table-name: subscriptions
+ keys:
+ - key: account.id
+ foreign-key: shipping_address.account_id
+ - key: account.parent_account_id
+ foreign-key: shipping_address.account_id
+ - key: subscription_ids
+ foreign-key: id
+ - key: subscription_ids
+ foreign-key: add_ons.subscription_id
+ - key: subscription_ids
+ foreign-key: pending_change.add_ons.subscription_id
+ - key: subscription_ids
+ foreign-key: pending_change.subscription_id
+- table-name: coupons
+ join:
+ - table-name: coupon_redemptions
+ keys:
+ - key: id
+ foreign-key: coupon.id
+ - table-name: subscriptions
+ keys:
+ - key: id
+ foreign-key: coupon_redemptions.coupon.id
+- table-name: plans
+ join:
+ - table-name: adjustments
+ keys:
+ - key: id
+ foreign-key: plan_id
+ - table-name: invoices
+ keys:
+ - key: id
+ foreign-key: line_items.data.plan_id
+ - table-name: plans_add_ons
+ keys:
+ - key: id
+ foreign-key: plan_id
+ - table-name: subscriptions
+ keys:
+ - key: id
+ foreign-key: pending_change.plan.id
+- table-name: plans_add_ons
+ join:
+ - table-name: adjustments
+ keys:
+ - key: plan_id
+ foreign-key: plan_id
+ - key: id
+ foreign-key: add_on_id
+ - table-name: invoices
+ keys:
+ - key: plan_id
+ foreign-key: line_items.data.plan_id
+ - key: id
+ foreign-key: line_items.data.add_on_id
+ - table-name: plans
+ keys:
+ - key: plan_id
+ foreign-key: id
+ - table-name: subscriptions
+ keys:
+ - key: plan_id
+ foreign-key: pending_change.plan.id
+ - key: id
+ foreign-key: add_ons.add_on.id
diff --git a/_data/taps/schemas/recurly/v1/recurly-v1-tables.yml b/_data/taps/schemas/recurly/v1/recurly-v1-tables.yml
new file mode 100644
index 000000000..78dbeeeae
--- /dev/null
+++ b/_data/taps/schemas/recurly/v1/recurly-v1-tables.yml
@@ -0,0 +1,162 @@
+tap: recurly
+version: '1'
+tables:
+- name: accounts
+ description: 'The `{{ table.name }}` table contains info about the customer accounts
+ in your {{ integration.display_name }} account. Account objects store the history
+ of the customer, billing info, etc.
+
+
+ ### Custom fields
+
+
+ Stitch''s {{ integration.display_name }} integration supports replicating custom
+ fields for {{ table.name }} objects.
+
+ '
+ links:
+ doc-link: https://dev.recurly.com/docs/account-object
+ singer-schema: https://github.com/singer-io/tap-recurly/blob/master/tap_recurly/schemas/accounts.json
+ api-method: https://partner-docs.recurly.com/v2018-08-09#operation/list_accounts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: adjustments
+ description: 'The `{{ table.name }}` table contains info about adjustments, which
+ are credits and charges associated with your customers.
+
+ '
+ links:
+ doc-link: https://dev.recurly.com/docs/adjustment-object
+ singer-schema: https://github.com/singer-io/tap-recurly/blob/master/tap_recurly/schemas/adjustments.json
+ api-method: https://partner-docs.recurly.com/v2018-08-09#operation/list_account_line_items
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: billing_info
+ description: 'The `{{ table.name }}` table contains info about the billing information
+ for [`accounts`](#accounts).
+
+
+ **Note**: To replicate this table, you must also have the [`accounts`](#accounts)
+ table set to replicate.
+
+
+ ### Custom fields
+
+
+ Stitch''s {{ integration.display_name }} integration supports replicating custom
+ fields for billing info objects.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recurly/blob/master/tap_recurly/schemas/billing_info.json
+ api-method: https://partner-docs.recurly.com/v2018-08-09#operation/get_billing_info
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: account_id
+ replication-key: updated_at
+- name: coupons
+ description: 'The `{{ table.name }}` table contains info about the coupons available
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recurly/blob/master/tap_recurly/schemas/coupons.json
+ api-method: https://partner-docs.recurly.com/v2018-08-09#operation/list_coupons
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: plans
+ description: 'The `{{ table.name }}` table contains info about the plans in your
+ {{ integration.display_name }} account. A plan tells {{ integration.display_name
+ }} how much to charge customers.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recurly/blob/master/tap_recurly/schemas/plans.json
+ api-method: https://partner-docs.recurly.com/v2018-08-09#operation/list_plans
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: plans_add_ons
+ description: 'The `{{ table.name }}` table contains info about the add-ons in your
+ {{ integration.display_name }} account. An add-on is a charge billed each billing
+ period in addition to a subscription''s base charge.
+
+
+ **Note**: To replicate this table, you must also have the [`plans`](#plans) table
+ set to replicate.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recurly/blob/master/tap_recurly/schemas/plans_add_ons.json
+ api-method: https://partner-docs.recurly.com/v2018-08-09#operation/list_plan_add_ons
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: subscriptions
+ description: 'The `{{ table.name }}` table contains info about the subscriptions
+ in your {{ integration.display_name }} account. Subscriptions are created when
+ your customers subscribe to one of your plans. The customer''s subscription tells
+ {{ integration.display_name }} when and how much to bill the customer.
+
+
+ ### Custom fields
+
+
+ Stitch''s {{ integration.display_name }} integration supports replicating custom
+ fields for subscription objects.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recurly/blob/master/tap_recurly/schemas/subscriptions.json
+ api-method: https://partner-docs.recurly.com/v2018-08-09#operation/list_subscriptions
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: transactions
+ description: 'The `{{ table.name }}` table contains info about the transactions
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recurly/blob/master/tap_recurly/schemas/transactions.json
+ api-method: https://partner-docs.recurly.com/v2018-08-09#operation/list_transactions
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: collected_at
+- name: coupon_redemptions
+ description: The `{{ table.name }}` table contains info about the coupons redeemed
+ in your {{ integration.display_name }} account.
+ links:
+ singer-schema: https://github.com/singer-io/tap-recurly/blob/master/tap_recurly/schemas/coupon_redemptions.json
+ api-method: https://recurly.com/developers/api/v2018-08-09/index.html#operation/list_account_coupon_redemptions
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created_at
+ parent-tables:
+ - accounts
+ - subscription
+ - invoices
+- name: invoices
+ description: 'The `{{ table.name }}` table contains info about the invoices in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-recurly/blob/master/tap_recurly/schemas/invoices.json
+ api-method: https://recurly.com/developers/api/v2018-08-09/index.html#operation/list_account_invoices
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/referral-saasquatch/v1/json/referrals.json b/_data/taps/schemas/referral-saasquatch/v1/json/referrals.json
new file mode 100644
index 000000000..7c364a421
--- /dev/null
+++ b/_data/taps/schemas/referral-saasquatch/v1/json/referrals.json
@@ -0,0 +1,91 @@
+{
+ "properties": {
+ "dateConverted": {
+ "anyOf": [
+ {
+ "type": "date-time"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "dateModerated": {
+ "anyOf": [
+ {
+ "type": "date-time"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "dateReferralEnded": {
+ "anyOf": [
+ {
+ "type": "date-time"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "dateReferralPaid": {
+ "anyOf": [
+ {
+ "type": "date-time"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "dateReferralStarted": {
+ "anyOf": [
+ {
+ "type": "date-time"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "id": {
+ "properties": {
+ "key": true,
+ "type": "string"
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "programId": {
+ "type": "string"
+ },
+ "referredAccount": {
+ "type": "string"
+ },
+ "referredModerationStatus": {
+ "type": "string"
+ },
+ "referredReward": {
+ "type": "string"
+ },
+ "referredUser": {
+ "type": "string"
+ },
+ "referrerAccount": {
+ "type": "string"
+ },
+ "referrerModerationStatus": {
+ "type": "string"
+ },
+ "referrerReward": {
+ "type": "string"
+ },
+ "referrerUser": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/referral-saasquatch/v1/json/reward_balances.json b/_data/taps/schemas/referral-saasquatch/v1/json/reward_balances.json
new file mode 100644
index 000000000..752509d6b
--- /dev/null
+++ b/_data/taps/schemas/referral-saasquatch/v1/json/reward_balances.json
@@ -0,0 +1,32 @@
+{
+ "properties": {
+ "accountId": {
+ "properties": {
+ "key": true,
+ "type": "string"
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "amount": {
+ "type": "integer"
+ },
+ "type": {
+ "type": "string"
+ },
+ "unit": {
+ "type": "string"
+ },
+ "userId": {
+ "properties": {
+ "key": true,
+ "type": "string"
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/referral-saasquatch/v1/json/users.json b/_data/taps/schemas/referral-saasquatch/v1/json/users.json
new file mode 100644
index 000000000..2b01f3afa
--- /dev/null
+++ b/_data/taps/schemas/referral-saasquatch/v1/json/users.json
@@ -0,0 +1,75 @@
+{
+ "properties": {
+ "accountId": {
+ "properties": {
+ "key": true,
+ "type": "string"
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "dateCreated": {
+ "anyOf": [
+ {
+ "type": "date-time"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "email": {
+ "type": "string"
+ },
+ "emailHash": {
+ "type": "string"
+ },
+ "emailShareLink": {
+ "type": "string"
+ },
+ "facebookShareLink": {
+ "type": "string"
+ },
+ "firstName": {
+ "type": "string"
+ },
+ "firstSeenIP": {
+ "type": "string"
+ },
+ "id": {
+ "properties": {
+ "key": true,
+ "type": "string"
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "imageUrl": {
+ "type": "string"
+ },
+ "lastName": {
+ "type": "string"
+ },
+ "lastSeenIP": {
+ "type": "string"
+ },
+ "linkedinShareLink": {
+ "type": "string"
+ },
+ "locale": {
+ "type": "string"
+ },
+ "referralSource": {
+ "type": "string"
+ },
+ "shareLink": {
+ "type": "string"
+ },
+ "twitterShareLink": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/referral-saasquatch/v1/referral-saasquatch-v1-foreign-keys.yml b/_data/taps/schemas/referral-saasquatch/v1/referral-saasquatch-v1-foreign-keys.yml
new file mode 100644
index 000000000..e1a6f51b2
--- /dev/null
+++ b/_data/taps/schemas/referral-saasquatch/v1/referral-saasquatch-v1-foreign-keys.yml
@@ -0,0 +1,84 @@
+tap: referral-saasquatch
+version: '1'
+keys:
+ users_userId:
+ - table: referrals
+ keys:
+ - referredUser
+ - referrerUser
+ - table: reward_balances
+ keys:
+ - userId
+ - table: users
+ keys:
+ - id
+ users_accountId:
+ - table: referrals
+ keys:
+ - referredAccount
+ - referrerAccount
+ - table: reward_balances
+ keys:
+ - accountId
+ - table: users
+ keys:
+ - accountId
+tables:
+- table-name: referrals
+ join:
+ - table-name: reward_balances
+ keys:
+ - key: referredUser
+ foreign-key: userId
+ - key: referrerUser
+ foreign-key: userId
+ - key: referredAccount
+ foreign-key: accountId
+ - key: referrerAccount
+ foreign-key: accountId
+ - table-name: users
+ keys:
+ - key: referredUser
+ foreign-key: id
+ - key: referrerUser
+ foreign-key: id
+ - key: referredAccount
+ foreign-key: accountId
+ - key: referrerAccount
+ foreign-key: accountId
+- table-name: reward_balances
+ join:
+ - table-name: referrals
+ keys:
+ - key: userId
+ foreign-key: referredUser
+ - key: userId
+ foreign-key: referrerUser
+ - key: accountId
+ foreign-key: referredAccount
+ - key: accountId
+ foreign-key: referrerAccount
+ - table-name: users
+ keys:
+ - key: userId
+ foreign-key: id
+ - key: accountId
+ foreign-key: accountId
+- table-name: users
+ join:
+ - table-name: referrals
+ keys:
+ - key: id
+ foreign-key: referredUser
+ - key: id
+ foreign-key: referrerUser
+ - key: accountId
+ foreign-key: referredAccount
+ - key: accountId
+ foreign-key: referrerAccount
+ - table-name: reward_balances
+ keys:
+ - key: id
+ foreign-key: userId
+ - key: accountId
+ foreign-key: accountId
diff --git a/_data/taps/schemas/referral-saasquatch/v1/referral-saasquatch-v1-tables.yml b/_data/taps/schemas/referral-saasquatch/v1/referral-saasquatch-v1-tables.yml
new file mode 100644
index 000000000..4c353ec50
--- /dev/null
+++ b/_data/taps/schemas/referral-saasquatch/v1/referral-saasquatch-v1-tables.yml
@@ -0,0 +1,42 @@
+tap: referral-saasquatch
+version: '1'
+tables:
+- name: referrals
+ description: 'The `{{ table.name }}` table contains info about all of the referrals
+ in your {{ integration.display_name }} tenant.
+
+ '
+ links:
+ doc-link: https://docs.referralsaasquatch.com/api/methods/#open_list_referrals
+ singer-schema: https://github.com/singer-io/tap-referral-saasquatch/blob/master/tap_referral_saasquatch/schemas/referrals.json
+ api-method: https://docs.referralsaasquatch.com/api/methods/#list_referrals
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: reward_balances
+ description: 'The `{{ table.name }}` table contains info about the balances for
+ all rewards.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-referral-saasquatch/blob/master/tap_referral_saasquatch/schemas/reward_balances.json
+ api-method: https://docs.referralsaasquatch.com/api/methods#list_balances
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - userId
+ - accountId
+- name: users
+ description: 'The `{{ table.name }}` table contains info about the users in your
+ {{ integration.display_name }} tenant.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-referral-saasquatch/blob/master/tap_referral_saasquatch/schemas/users.json
+ api-method: https://docs.referralsaasquatch.com/api/methods#list_users
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - id
+ - accountId
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/revinate/v1/json/hotel_reviews_snapshot.json b/_data/taps/schemas/revinate/v1/json/hotel_reviews_snapshot.json
new file mode 100644
index 000000000..2241226b5
--- /dev/null
+++ b/_data/taps/schemas/revinate/v1/json/hotel_reviews_snapshot.json
@@ -0,0 +1,79 @@
+{
+ "properties": {
+ "aggregate_average_rating": {
+ "type": [
+ "number"
+ ]
+ },
+ "aggregate_new_reviews": {
+ "type": [
+ "number"
+ ]
+ },
+ "aggregate_pos_reviews_pct": {
+ "type": [
+ "number"
+ ]
+ },
+ "aggregate_trip_advisor_marke_ranking_pctl": {
+ "type": [
+ "number"
+ ]
+ },
+ "aggregate_trip_advisor_market_ranking": {
+ "type": [
+ "integer"
+ ]
+ },
+ "aggregate_trip_advisor_market_size": {
+ "type": [
+ "integer"
+ ]
+ },
+ "aggregate_values_json": {
+ "type": [
+ "string"
+ ]
+ },
+ "hotel_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "hotel_reviews_snapshot_json": {
+ "type": [
+ "string"
+ ]
+ },
+ "hotel_reviews_snapshot_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "links_json": {
+ "type": [
+ "string"
+ ]
+ },
+ "snapshot_end_date": {
+ "type": [
+ "integer"
+ ]
+ },
+ "snapshot_start_date": {
+ "type": [
+ "integer"
+ ]
+ },
+ "values_by_review_site_json": {
+ "type": [
+ "string"
+ ]
+ },
+ "values_by_time_json": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/revinate/v1/json/hotel_reviews_snapshot_by_site.json b/_data/taps/schemas/revinate/v1/json/hotel_reviews_snapshot_by_site.json
new file mode 100644
index 000000000..a3a867d0e
--- /dev/null
+++ b/_data/taps/schemas/revinate/v1/json/hotel_reviews_snapshot_by_site.json
@@ -0,0 +1,89 @@
+{
+ "properties": {
+ "hotel_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "hotel_reviews_snapshot_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "review_site_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "review_site_json": {
+ "type": [
+ "string"
+ ]
+ },
+ "review_site_main_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "review_site_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "review_site_slug": {
+ "type": [
+ "string"
+ ]
+ },
+ "review_site_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "site_average_rating": {
+ "type": [
+ "number"
+ ]
+ },
+ "site_json": {
+ "type": [
+ "string"
+ ]
+ },
+ "site_new_reviews": {
+ "type": [
+ "integer"
+ ]
+ },
+ "site_pos_reviews_pct": {
+ "type": [
+ "number"
+ ]
+ },
+ "site_trip_advisor_market_ranking": {
+ "type": [
+ "integer"
+ ]
+ },
+ "site_trip_advisor_market_ranking_pctl": {
+ "type": [
+ "number"
+ ]
+ },
+ "site_trip_advisor_market_size": {
+ "type": [
+ "integer"
+ ]
+ },
+ "snapshot_end_date": {
+ "type": [
+ "integer"
+ ]
+ },
+ "snapshot_start_date": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/revinate/v1/json/hotel_reviews_snapshot_by_time.json b/_data/taps/schemas/revinate/v1/json/hotel_reviews_snapshot_by_time.json
new file mode 100644
index 000000000..4c614f1eb
--- /dev/null
+++ b/_data/taps/schemas/revinate/v1/json/hotel_reviews_snapshot_by_time.json
@@ -0,0 +1,54 @@
+{
+ "properties": {
+ "hotel_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "hotel_reviews_snapshot_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "snapshot_average_rating": {
+ "type": [
+ "number"
+ ]
+ },
+ "snapshot_new_reviews": {
+ "type": [
+ "number"
+ ]
+ },
+ "snapshot_pos_reviews_pct": {
+ "type": [
+ "number"
+ ]
+ },
+ "snapshot_trip_advisor_market_ranking": {
+ "type": [
+ "integer"
+ ]
+ },
+ "snapshot_trip_advisor_market_ranking_pctl": {
+ "type": [
+ "number"
+ ]
+ },
+ "snapshot_trip_advisor_market_size": {
+ "type": [
+ "integer"
+ ]
+ },
+ "time_period_json": {
+ "type": [
+ "string"
+ ]
+ },
+ "unix_time": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/revinate/v1/json/hotels.json b/_data/taps/schemas/revinate/v1/json/hotels.json
new file mode 100644
index 000000000..325d048be
--- /dev/null
+++ b/_data/taps/schemas/revinate/v1/json/hotels.json
@@ -0,0 +1,99 @@
+{
+ "properties": {
+ "account_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "address1": {
+ "type": [
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "hotel_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "hotel_json": {
+ "type": [
+ "string"
+ ]
+ },
+ "hotel_reviews_snapshot_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "hotel_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "links_json": {
+ "type": [
+ "string"
+ ]
+ },
+ "logo": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "revinate_login_uri": {
+ "type": [
+ "string"
+ ]
+ },
+ "revinate_purchase_uri": {
+ "type": [
+ "string"
+ ]
+ },
+ "slug": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "trip_advisor_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/revinate/v1/json/reviews.json b/_data/taps/schemas/revinate/v1/json/reviews.json
new file mode 100644
index 000000000..44aa293fb
--- /dev/null
+++ b/_data/taps/schemas/revinate/v1/json/reviews.json
@@ -0,0 +1,189 @@
+{
+ "properties": {
+ "author": {
+ "type": [
+ "string"
+ ]
+ },
+ "author_location": {
+ "type": [
+ "string"
+ ]
+ },
+ "body": {
+ "type": [
+ "string"
+ ]
+ },
+ "crawled_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "date_collected": {
+ "type": [
+ "integer"
+ ]
+ },
+ "date_review": {
+ "type": [
+ "integer"
+ ]
+ },
+ "guest_stay_json": {
+ "type": [
+ "string"
+ ]
+ },
+ "hotel_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "hotel_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "language_english_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "language_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "language_json": {
+ "type": [
+ "string"
+ ]
+ },
+ "language_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "language_slug": {
+ "type": [
+ "string"
+ ]
+ },
+ "language_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "links_json": {
+ "type": [
+ "string"
+ ]
+ },
+ "nps": {
+ "type": [
+ "integer"
+ ]
+ },
+ "rating": {
+ "type": [
+ "number"
+ ]
+ },
+ "response_json": {
+ "type": [
+ "string"
+ ]
+ },
+ "review_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "review_json": {
+ "type": [
+ "string"
+ ]
+ },
+ "review_site_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "review_site_json": {
+ "type": [
+ "string"
+ ]
+ },
+ "review_site_main_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "review_site_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "review_site_slug": {
+ "type": [
+ "string"
+ ]
+ },
+ "review_site_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "review_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "subratings_cleanliness": {
+ "type": [
+ "number"
+ ]
+ },
+ "subratings_hotel_condition": {
+ "type": [
+ "number"
+ ]
+ },
+ "subratings_json": {
+ "type": [
+ "string"
+ ]
+ },
+ "subratings_rooms": {
+ "type": [
+ "number"
+ ]
+ },
+ "subratings_service": {
+ "type": [
+ "number"
+ ]
+ },
+ "survey_topics_json": {
+ "type": [
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "trip_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/revinate/v1/revinate-v1-foreign-keys.yml b/_data/taps/schemas/revinate/v1/revinate-v1-foreign-keys.yml
new file mode 100644
index 000000000..895a79f88
--- /dev/null
+++ b/_data/taps/schemas/revinate/v1/revinate-v1-foreign-keys.yml
@@ -0,0 +1,129 @@
+tap: revinate
+version: '1'
+keys:
+ hotels_hotel_id:
+ - table: hotel_reviews_snapshot
+ keys:
+ - hotel_id
+ - table: hotel_reviews_snapshot_by_site
+ keys:
+ - hotel_id
+ - table: hotel_reviews_snapshot_by_time
+ keys:
+ - hotel_id
+ - table: hotels
+ keys:
+ - hotel_id
+ - table: reviews
+ keys:
+ - hotel_id
+ _review_site_id:
+ - table: hotel_reviews_snapshot_by_site
+ keys:
+ - review_site_id
+ - table: reviews
+ keys:
+ - review_site_id
+ hotels_trip_advisor_id:
+ - table: hotels
+ keys:
+ - trip_advisor_id
+ reviews_review_id:
+ - table: reviews
+ keys:
+ - review_id
+tables:
+- table-name: hotel_reviews_snapshot
+ join:
+ - table-name: hotel_reviews_snapshot_by_site
+ keys:
+ - key: hotel_id
+ foreign-key: hotel_id
+ - table-name: hotel_reviews_snapshot_by_time
+ keys:
+ - key: hotel_id
+ foreign-key: hotel_id
+ - table-name: hotels
+ keys:
+ - key: hotel_id
+ foreign-key: hotel_id
+ - table-name: reviews
+ keys:
+ - key: hotel_id
+ foreign-key: hotel_id
+- table-name: hotel_reviews_snapshot_by_site
+ join:
+ - table-name: hotel_reviews_snapshot
+ keys:
+ - key: hotel_id
+ foreign-key: hotel_id
+ - table-name: hotel_reviews_snapshot_by_time
+ keys:
+ - key: hotel_id
+ foreign-key: hotel_id
+ - table-name: hotels
+ keys:
+ - key: hotel_id
+ foreign-key: hotel_id
+ - table-name: reviews
+ keys:
+ - key: hotel_id
+ foreign-key: hotel_id
+ - key: review_site_id
+ foreign-key: review_site_id
+- table-name: hotel_reviews_snapshot_by_time
+ join:
+ - table-name: hotel_reviews_snapshot
+ keys:
+ - key: hotel_id
+ foreign-key: hotel_id
+ - table-name: hotel_reviews_snapshot_by_site
+ keys:
+ - key: hotel_id
+ foreign-key: hotel_id
+ - table-name: hotels
+ keys:
+ - key: hotel_id
+ foreign-key: hotel_id
+ - table-name: reviews
+ keys:
+ - key: hotel_id
+ foreign-key: hotel_id
+- table-name: hotels
+ join:
+ - table-name: hotel_reviews_snapshot
+ keys:
+ - key: hotel_id
+ foreign-key: hotel_id
+ - table-name: hotel_reviews_snapshot_by_site
+ keys:
+ - key: hotel_id
+ foreign-key: hotel_id
+ - table-name: hotel_reviews_snapshot_by_time
+ keys:
+ - key: hotel_id
+ foreign-key: hotel_id
+ - table-name: reviews
+ keys:
+ - key: hotel_id
+ foreign-key: hotel_id
+- table-name: reviews
+ join:
+ - table-name: hotel_reviews_snapshot
+ keys:
+ - key: hotel_id
+ foreign-key: hotel_id
+ - table-name: hotel_reviews_snapshot_by_site
+ keys:
+ - key: hotel_id
+ foreign-key: hotel_id
+ - key: review_site_id
+ foreign-key: review_site_id
+ - table-name: hotel_reviews_snapshot_by_time
+ keys:
+ - key: hotel_id
+ foreign-key: hotel_id
+ - table-name: hotels
+ keys:
+ - key: hotel_id
+ foreign-key: hotel_id
diff --git a/_data/taps/schemas/revinate/v1/revinate-v1-tables.yml b/_data/taps/schemas/revinate/v1/revinate-v1-tables.yml
new file mode 100644
index 000000000..e0f8955db
--- /dev/null
+++ b/_data/taps/schemas/revinate/v1/revinate-v1-tables.yml
@@ -0,0 +1,120 @@
+tap: revinate
+version: '1'
+tap-repo-schemas: false
+tables:
+- name: hotels
+ description: 'The `{{ table.name }}` table contains info about the hotels in your
+ {{ integration.display_name }} account.
+
+
+ **Note**: Stitch will only replicate data for the hotels that the user whose API
+ key is used to [authenticate the integration](#add-stitch-data-source) has access
+ to. If you''re missing records, verify that the authenticating user has access
+ to those hotels in {{ integration.display_name }}.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-revinate/blob/master/tap_revinate/schemas.py#L1
+ api-method: https://porter.revinate.com/documentation#hotels
+ table-details:
+ replication-method: Full Table
+ primary-key: hotel_id
+- name: hotel_reviews_snapshot
+ description: 'The `{{ table.name }}` table contains snapshot summary stats of reviews
+ for the last completed week, segmented by hotel.
+
+
+ **Note**: Stitch will only replicate review snapshot data for the hotels that
+ the user whose API key is used to [authenticate the integration](#add-stitch-data-source)
+ has access to. If you''re missing records, verify that the authenticating user
+ has access to those hotels in {{ integration.display_name }}.
+
+
+ #### Replication {#review-snapshot-replication}
+
+
+ During each replication job, snapshot data for the last completed week will be
+ replicated. This means that if the integration is scheduled to run every 30 minutes,
+ then snapshot data for the last week will be replicated every 30 minutes.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-revinate/blob/master/tap_revinate/schemas.py#L26
+ api-method: https://porter.revinate.com/documentation#hotels
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - hotel_id
+ - snapshot_start_date
+ replication-key: snapshot_start_date
+- name: hotel_reviews_snapshot_by_site
+ description: 'The `{{ table.name }}` table contains snapshot summary stats of reviews
+ for the last completed week, segmented by hotel and review site.
+
+
+ **Note**: Stitch will only replicate review snapshot data for the hotels that
+ the user whose API key is used to [authenticate the integration](#add-stitch-data-source)
+ has access to. If you''re missing records, verify that the authenticating user
+ has access to those hotels in {{ integration.display_name }}.
+
+
+ #### Replication {#review-snapshot--site-replication}
+
+
+ During each replication job, snapshot data for the last completed week will be
+ replicated. This means that if the integration is scheduled to run every 30 minutes,
+ then snapshot data for the last week will be replicated every 30 minutes.
+
+ '
+ links:
+ doc-link: https://porter.revinate.com/documentation#review-sites
+ singer-schema: https://github.com/singer-io/tap-revinate/blob/master/tap_revinate/schemas.py#L47
+ api-method: https://porter.revinate.com/documentation#hotels
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - hotel_id
+ - review_site_id
+ - snapshot_start_date
+ replication-key: snapshot_start_date
+- name: hotel_reviews_snapshot_by_time
+ description: 'The `{{ table.name }}` table contains snapshot summary stats of reviews
+ for the last completed week, segmented by hotel and time.
+
+
+ **Note**: Stitch will only replicate review snapshot data for the hotels that
+ the user whose API key is used to [authenticate the integration](#add-stitch-data-source)
+ has access to. If you''re missing records, verify that the authenticating user
+ has access to those hotels in {{ integration.display_name }}.
+
+
+ #### Replication {#review-snapshot-time-replication}
+
+
+ During each replication job, snapshot data for the last completed week will be
+ replicated. This means that if the integration is scheduled to run every 30 minutes,
+ then snapshot data for the last week will be replicated every 30 minutes.
+
+ '
+ links:
+ doc-link: https://porter.revinate.com/documentation#review-sites
+ singer-schema: https://github.com/singer-io/tap-revinate/blob/master/tap_revinate/schemas.py#L70
+ api-method: https://porter.revinate.com/documentation#hotels
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - hotel_id
+ - unix_time
+- name: reviews
+ description: "The `table_name` table contains a subset of the latest reviews for\
+ \ the hotels in your {{ integration.display_name }} account.\n\n **Note**: Stitch\
+ \ will only replicate review data for the hotels that the user whose API key is\
+ \ used to [authenticate the integration](#add-stitch-data-source) has access to.\
+ \ If you're missing records, verify that the authenticating user has access to\
+ \ those hotels in {{ integration.display_name }}.\n"
+ links:
+ api-method: https://porter.revinate.com/documentation#reviews
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: review_id
+ replication-key: updated_at
diff --git a/_data/taps/schemas/ringcentral/v1/json/call_log.json b/_data/taps/schemas/ringcentral/v1/json/call_log.json
new file mode 100644
index 000000000..889912193
--- /dev/null
+++ b/_data/taps/schemas/ringcentral/v1/json/call_log.json
@@ -0,0 +1,135 @@
+{
+ "properties": {
+ "_contact_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deleted": {},
+ "direction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": "integer"
+ },
+ "extension": {
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "from": {
+ "properties": {
+ "extensionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message": {},
+ "reason": {},
+ "reasonDescription": {},
+ "result": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sessionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "startTime": {
+ "type": "date-time"
+ },
+ "to": {
+ "properties": {
+ "extensionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ringcentral/v1/json/company_call_log.json b/_data/taps/schemas/ringcentral/v1/json/company_call_log.json
new file mode 100644
index 000000000..e9adea37b
--- /dev/null
+++ b/_data/taps/schemas/ringcentral/v1/json/company_call_log.json
@@ -0,0 +1,123 @@
+{
+ "properties": {
+ "_contact_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deleted": {},
+ "direction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": "integer"
+ },
+ "extension": {
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "from": {
+ "properties": {
+ "location": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message": {},
+ "reason": {},
+ "reasonDescription": {},
+ "result": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sessionId": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "startTime": {
+ "type": "date-time"
+ },
+ "to": {
+ "properties": {
+ "location": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ringcentral/v1/json/contacts.json b/_data/taps/schemas/ringcentral/v1/json/contacts.json
new file mode 100644
index 000000000..c45b866a9
--- /dev/null
+++ b/_data/taps/schemas/ringcentral/v1/json/contacts.json
@@ -0,0 +1,57 @@
+{
+ "properties": {
+ "account": {
+ "properties": {
+ "id": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "email": {
+ "type": "string"
+ },
+ "extensionNumber": {
+ "type": "integer"
+ },
+ "firstName": {
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "jobTitle": {
+ "type": "string"
+ },
+ "lastName": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "phoneNumbers": {
+ "items": {
+ "properties": {
+ "phoneNumber": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "usageType": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "status": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ringcentral/v1/json/messages.json b/_data/taps/schemas/ringcentral/v1/json/messages.json
new file mode 100644
index 000000000..fb7a078be
--- /dev/null
+++ b/_data/taps/schemas/ringcentral/v1/json/messages.json
@@ -0,0 +1,59 @@
+{
+ "properties": {
+ "_contact_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "attachments": {},
+ "availability": {
+ "type": "string"
+ },
+ "conversation": {},
+ "conversationId": {},
+ "coverIndex": {
+ "type": "integer"
+ },
+ "creationTime": {
+ "type": "date-time"
+ },
+ "deleted": {},
+ "direction": {
+ "type": "string"
+ },
+ "faxPageCount": {
+ "type": "integer"
+ },
+ "faxResolution": {
+ "type": "string"
+ },
+ "from": {},
+ "id": {
+ "type": "string"
+ },
+ "lastModifiedTime": {
+ "type": "date-time"
+ },
+ "messageStatus": {
+ "type": "string"
+ },
+ "priority": {
+ "type": "string"
+ },
+ "readStatus": {
+ "type": "string"
+ },
+ "smsSendingAttemptsCount": {},
+ "subject": {},
+ "to": {},
+ "type": {
+ "type": "string"
+ },
+ "uri": {
+ "type": "string"
+ },
+ "vmTranscriptionStatus": {}
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ringcentral/v1/ringcentral-v1-tables.yml b/_data/taps/schemas/ringcentral/v1/ringcentral-v1-tables.yml
new file mode 100644
index 000000000..932e55b9c
--- /dev/null
+++ b/_data/taps/schemas/ringcentral/v1/ringcentral-v1-tables.yml
@@ -0,0 +1,47 @@
+tap: ringcentral
+version: '1'
+tables:
+- name: call_log
+ description: 'The `{{ table.name }}` contains info about your call logs.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ringcentral/blob/master/tap_ringcentral/schemas/call_log.json
+ api-method: https://developers.ringcentral.com/api-reference/Call-Log/readUserCallLog
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: company_call_log
+ description: 'The `{{ table.name }}` contains info about company call log records.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ringcentral/blob/master/tap_ringcentral/schemas/company_call_log.json
+ api-method: https://developers.ringcentral.com/api-reference#Call-Log-loadCompanyCallLog
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: contacts
+ description: 'The `{{ table.name }}` contains info about corporate users of federated
+ accounts.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ringcentral/blob/master/tap_ringcentral/schemas/contacts.json
+ api-method: https://developers.ringcentral.com/api-reference/Internal-Contacts/readDirectoryEntry
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: messages
+ description: 'The `{{ table.name }}` contains info about an extension mailbox''s
+ messages.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ringcentral/blob/master/tap_ringcentral/schemas/messages.json
+ api-method: https://developers.ringcentral.com/api-reference/Message-Store/listMessages
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - id
+ - conversationId
diff --git a/_data/taps/schemas/saasoptics/v1/json/accounts.json b/_data/taps/schemas/saasoptics/v1/json/accounts.json
new file mode 100644
index 000000000..2c9e9199b
--- /dev/null
+++ b/_data/taps/schemas/saasoptics/v1/json/accounts.json
@@ -0,0 +1,54 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "intacct_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "intacct_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "intacct_recordno": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "netsuite_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source_system": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/saasoptics/v1/json/auto_renewal_profiles.json b/_data/taps/schemas/saasoptics/v1/json/auto_renewal_profiles.json
new file mode 100644
index 000000000..225b260bd
--- /dev/null
+++ b/_data/taps/schemas/saasoptics/v1/json/auto_renewal_profiles.json
@@ -0,0 +1,42 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "generate_revenue": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "months": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recognize": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/saasoptics/v1/json/billing_descriptions.json b/_data/taps/schemas/saasoptics/v1/json/billing_descriptions.json
new file mode 100644
index 000000000..36eaf5aa5
--- /dev/null
+++ b/_data/taps/schemas/saasoptics/v1/json/billing_descriptions.json
@@ -0,0 +1,30 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "contents": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/saasoptics/v1/json/billing_methods.json b/_data/taps/schemas/saasoptics/v1/json/billing_methods.json
new file mode 100644
index 000000000..ee00de343
--- /dev/null
+++ b/_data/taps/schemas/saasoptics/v1/json/billing_methods.json
@@ -0,0 +1,18 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/saasoptics/v1/json/contracts.json b/_data/taps/schemas/saasoptics/v1/json/contracts.json
new file mode 100644
index 000000000..dd18b7607
--- /dev/null
+++ b/_data/taps/schemas/saasoptics/v1/json/contracts.json
@@ -0,0 +1,431 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "billing_profile": {
+ "additionalProperties": false,
+ "properties": {
+ "account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "addr1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "addr2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "addr3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "alt_contact": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "alt_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contact": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "customer_type_ref_fullname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_credit_memo_template": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "default_invoice_template": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "edit_sequence": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_use_code": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fax": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_email_preference": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "invoice_print_preference": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "job_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "job_end_date": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "type": "date-time"
+ }
+ ]
+ },
+ "job_projected_end_date": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "type": "date-time"
+ }
+ ]
+ },
+ "job_start_date": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "type": "date-time"
+ }
+ ]
+ },
+ "job_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "job_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_terms": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resale_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sales_rep": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "salutation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_addr1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_addr2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_addr3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_zip_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entry_date": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "type": "date-time"
+ }
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_job": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "lead_date": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "type": "date-time"
+ }
+ ]
+ },
+ "lead_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modified": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "type": "date-time"
+ }
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number_field1": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "number_field2": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "qb_job_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "register": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sf_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text_field1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text_field2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unbalanced_revenue_exception": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/saasoptics/v1/json/country_codes.json b/_data/taps/schemas/saasoptics/v1/json/country_codes.json
new file mode 100644
index 000000000..6b57be283
--- /dev/null
+++ b/_data/taps/schemas/saasoptics/v1/json/country_codes.json
@@ -0,0 +1,24 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/saasoptics/v1/json/currency_codes.json b/_data/taps/schemas/saasoptics/v1/json/currency_codes.json
new file mode 100644
index 000000000..e985a68d1
--- /dev/null
+++ b/_data/taps/schemas/saasoptics/v1/json/currency_codes.json
@@ -0,0 +1,18 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/saasoptics/v1/json/customers.json b/_data/taps/schemas/saasoptics/v1/json/customers.json
new file mode 100644
index 000000000..e5715fffd
--- /dev/null
+++ b/_data/taps/schemas/saasoptics/v1/json/customers.json
@@ -0,0 +1,528 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "autopay_enrollment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_profile": {
+ "additionalProperties": false,
+ "properties": {
+ "account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "addr1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "addr2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "addr3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "alt_contact": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "alt_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avatax_address_validation_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contact": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "customer_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "default_class": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "default_credit_memo_template": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "default_invoice_template": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "edit_sequence": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entity_use_code": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fax": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_email_preference": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "invoice_print_preference": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "item_sales_tax": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_updated_by_qb": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "payment_terms": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resale_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sales_rep": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sales_rep_fullname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sales_tax_code": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "salutation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_addr1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_addr2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_addr3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_zip_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "cc_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "crm_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_autorenewal_profile": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_email_from_so": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "default_enable_ach_payment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "default_enable_cc_payment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "default_theme": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "do_not_sync": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "einvoicing_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enable_autopay": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "escalation_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "industry": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "market": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number_field1": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "number_field2": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "number_field3": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "parent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "qb_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recurly_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "segment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sf_default_renewal_opportunity_rule": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sf_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sf_opportunity_price_book_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sf_owner_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stripe_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subsegment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text_field1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text_field2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text_field3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unbalanced_revenue_exception": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/saasoptics/v1/json/deleted_contracts.json b/_data/taps/schemas/saasoptics/v1/json/deleted_contracts.json
new file mode 100644
index 000000000..886ae27d3
--- /dev/null
+++ b/_data/taps/schemas/saasoptics/v1/json/deleted_contracts.json
@@ -0,0 +1,24 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "deleted": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/saasoptics/v1/json/deleted_invoices.json b/_data/taps/schemas/saasoptics/v1/json/deleted_invoices.json
new file mode 100644
index 000000000..886ae27d3
--- /dev/null
+++ b/_data/taps/schemas/saasoptics/v1/json/deleted_invoices.json
@@ -0,0 +1,24 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "deleted": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/saasoptics/v1/json/deleted_revenue_entries.json b/_data/taps/schemas/saasoptics/v1/json/deleted_revenue_entries.json
new file mode 100644
index 000000000..886ae27d3
--- /dev/null
+++ b/_data/taps/schemas/saasoptics/v1/json/deleted_revenue_entries.json
@@ -0,0 +1,24 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "deleted": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/saasoptics/v1/json/deleted_transactions.json b/_data/taps/schemas/saasoptics/v1/json/deleted_transactions.json
new file mode 100644
index 000000000..886ae27d3
--- /dev/null
+++ b/_data/taps/schemas/saasoptics/v1/json/deleted_transactions.json
@@ -0,0 +1,24 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "deleted": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/saasoptics/v1/json/invoices.json b/_data/taps/schemas/saasoptics/v1/json/invoices.json
new file mode 100644
index 000000000..f62016d3f
--- /dev/null
+++ b/_data/taps/schemas/saasoptics/v1/json/invoices.json
@@ -0,0 +1,580 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "applied_amount": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "auditentry_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "auditentry_created_by_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "auditentry_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "auditentry_modified_by_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "auditentry_qb_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "auditentry_qb_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "avatax_commit_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "avatax_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avatax_modify_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "avatax_reconciliation_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avatax_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "balance": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "billing_addr1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_addr2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_addr3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_zip_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contract": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted_in_qb": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "do_not_sync": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "due_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ei_theme": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "email_from_so": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enable_ach_payment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enable_cc_payment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "exported_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "foreign_exchange_rate": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ignore_date_when_syncing": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_paid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "line_items": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "deleted_in_qb": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "exported_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "home_amount": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "invoice": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "item": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "local_amount": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "no_transaction_permitted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "qb_class": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "qb_time_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "qb_txn_line_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "recurly_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_of": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "refund_of_stripe_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sf_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stripe_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sync_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "transaction": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "memo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "other": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "po_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "qb_ar_account": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "qb_class": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "qb_currency": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "qb_customer_message": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "qb_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "qb_payment_terms": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "qb_sales_rep": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "qb_template": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "qb_txn_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recurly_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_of": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sales_tax": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "sales_tax_percentage": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "sf_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ship_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "shipping_addr1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_addr2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_addr3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_zip_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stripe_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stripe_refund_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subtotal": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "sync_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "to_be_emailed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "to_be_printed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/saasoptics/v1/json/items.json b/_data/taps/schemas/saasoptics/v1/json/items.json
new file mode 100644
index 000000000..12b08c6b1
--- /dev/null
+++ b/_data/taps/schemas/saasoptics/v1/json/items.json
@@ -0,0 +1,300 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "asset_account": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "avatax_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avatax_sales_tax_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_method": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "create_revenue": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "default_duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enable_create_transactions": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enforce_start_date_after_end_date": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gl_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "gl_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gl_is_active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "gl_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "gl_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "income_account": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "intacct_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "intacct_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "intacct_recordno": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_discount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_sales_tax": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "liability_account": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "needs_so_profile": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "netsuite_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "netsuite_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "normalized_term": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_family": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "qb_account": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "qb_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "qb_only": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "qb_sales_tax_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recurly_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recurring": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "renew_all_open_transactions": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "renew_using_same_item": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "revenue_recognition_method": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sf_do_not_sync": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "source_system": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stripe_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sync_invoices": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "transaction_end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "transaction_start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "wizard_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/saasoptics/v1/json/payment_terms.json b/_data/taps/schemas/saasoptics/v1/json/payment_terms.json
new file mode 100644
index 000000000..aa462f417
--- /dev/null
+++ b/_data/taps/schemas/saasoptics/v1/json/payment_terms.json
@@ -0,0 +1,55 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "intacct_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "intacct_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "intacct_recordno": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "netsuite_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "num_days": {
+ "multipleOf": 1.0,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/saasoptics/v1/json/registers.json b/_data/taps/schemas/saasoptics/v1/json/registers.json
new file mode 100644
index 000000000..b3aa40f4c
--- /dev/null
+++ b/_data/taps/schemas/saasoptics/v1/json/registers.json
@@ -0,0 +1,42 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_qb_ar_account": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "generated_invoice_number_prefix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/saasoptics/v1/json/revenue_entries.json b/_data/taps/schemas/saasoptics/v1/json/revenue_entries.json
new file mode 100644
index 000000000..241b1bec0
--- /dev/null
+++ b/_data/taps/schemas/saasoptics/v1/json/revenue_entries.json
@@ -0,0 +1,50 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "home_amount": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "local_amount": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "transaction": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/saasoptics/v1/json/revenue_recognition_methods.json b/_data/taps/schemas/saasoptics/v1/json/revenue_recognition_methods.json
new file mode 100644
index 000000000..ee00de343
--- /dev/null
+++ b/_data/taps/schemas/saasoptics/v1/json/revenue_recognition_methods.json
@@ -0,0 +1,18 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/saasoptics/v1/json/sales_orders.json b/_data/taps/schemas/saasoptics/v1/json/sales_orders.json
new file mode 100644
index 000000000..97e69d05b
--- /dev/null
+++ b/_data/taps/schemas/saasoptics/v1/json/sales_orders.json
@@ -0,0 +1,1438 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "close_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "contract_channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contract_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contract_entry_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "contract_is_job": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "contract_lead_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "contract_lead_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contract_notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contract_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contract_number_field1": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "contract_number_field2": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "contract_register_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contract_sf_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contract_text_field1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contract_text_field2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contract_unbalanced_revenue_exception": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_by_username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_alt_contact": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_alt_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_autopay_enrollment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_billing_addr3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_billing_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_billing_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_billing_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_billing_street": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_billing_zip_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_contact": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_crm_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_default_autorenewal_profile": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_default_cadence_template": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_default_email_from_so": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_default_enable_ach_payment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "customer_default_enable_cc_payment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "customer_default_invoice_template": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_default_theme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_do_not_sync": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "customer_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_enable_autopay": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "customer_entity_use_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_fax": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_industry": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_invoice_email_preference": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "customer_invoice_print_preference": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "customer_item_sales_tax": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_market": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_number_field1": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "customer_number_field2": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "customer_number_field3": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "customer_parent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_payment_terms": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_resale_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_sales_rep": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_sales_tax_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_salutation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_segment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_sf_default_renewal_opportunity_rule": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_sf_opportunity_price_book_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_sf_owner_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_sfdc_object_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_shipping_addr3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_shipping_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_shipping_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_shipping_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_shipping_street": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_shipping_zip_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_subsegment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_text_field1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_text_field2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_text_field3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_unbalanced_revenue_exception": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "line_items": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "affected_transaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_by_username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "invoice_billing_addr1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_billing_addr2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_billing_addr3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_billing_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_billing_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_billing_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_billing_zip_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_cadence_template": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "invoice_do_not_sync": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "invoice_ei_combine_all_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_ei_combine_lines": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_ei_theme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_email_from_so": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "invoice_enable_ach_payment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "invoice_enable_cc_payment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "invoice_ignore_date_when_syncing": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "invoice_memo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_other": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_payment_terms": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_po_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_qb_class": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_qb_customer_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_qb_payment_terms": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_qb_sales_rep": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_qb_template": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_ship_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "invoice_shipping_addr1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_shipping_addr2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_shipping_addr3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_shipping_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_shipping_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_shipping_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_shipping_zip_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_suppress_zero_value_line_items": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "invoice_to_be_emailed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "invoice_to_be_printed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "processed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "project_template": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "renewed_transaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sfdc_object_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_amount": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transaction_amount_after_discount": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transaction_arr_amount": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transaction_billing_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_conversion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_crm_opportunity_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_crm_opportunity_line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_discount_amount": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transaction_duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_effective_change_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "transaction_effective_end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "transaction_end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "transaction_flagged": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_foreign_exchange_rate": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transaction_generate_invoices": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "transaction_generate_revenue": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "transaction_ili_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_ili_qb_class": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_invoice_end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "transaction_invoice_quantity": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transaction_invoice_start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "transaction_item_class_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_item_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_item_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_monthly_rate": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transaction_normalized_amount": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transaction_normalized_term": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_number_field1": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transaction_number_field2": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transaction_order_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "transaction_order_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_quantity": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transaction_recognize": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "transaction_renew_using_item": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_renewal_amount": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transaction_renewal_amount_percentage": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transaction_renewal_duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_renewal_factor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_renewal_probability": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transaction_renewal_quantity": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transaction_revenue_amount": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transaction_revenue_end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "transaction_revenue_recognition_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_revenue_start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "transaction_sales_manager": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_sales_rep": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_sf_group_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_sf_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_sf_renewal_opportunitiy_rule": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "transaction_term_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "transaction_text_field1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_text_field2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_unbalanced_revenue_exception": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_total": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "project_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "project_template": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_addr1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_addr2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_addr3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_alt_contact": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_alt_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_company_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_contact": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_default_credit_memo_template": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_default_invoice_template": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "quickbooks_job_fax": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_invoice_email_preference": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "quickbooks_job_invoice_print_preference": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "quickbooks_job_is_active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "quickbooks_job_last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_payment_terms": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_projected_end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "quickbooks_job_resale_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_sales_rep": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_salutation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_shipping_addr1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_shipping_addr2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_shipping_addr3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_shipping_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_shipping_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_shipping_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_shipping_zip_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "quickbooks_job_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quickbooks_job_zip_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sales_order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stage_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/saasoptics/v1/json/transactions.json b/_data/taps/schemas/saasoptics/v1/json/transactions.json
new file mode 100644
index 000000000..017b0474b
--- /dev/null
+++ b/_data/taps/schemas/saasoptics/v1/json/transactions.json
@@ -0,0 +1,459 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "always_use_amount_as_normalized_amount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "auditentry_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "auditentry_created_by_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "auditentry_modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "auditentry_modified_by_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "automatically_update_revenue": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "autorenewal_profile": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "billing_method": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cancelled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "contract": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversion": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "crm_opportunity_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "crm_opportunity_line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "different_invoice_item_permitted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "do_not_sync_invoices": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "flagged": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "foreign_exchange_rate": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "home_amount": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "home_arr_amount": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "home_normalized_amount": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "home_normalized_rate": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "home_rate": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ili_qb_class": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_autorenewal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "item": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "item_class": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "local_amount": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "local_arr_amount": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "local_normalized_amount": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "local_normalized_rate": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "local_rate": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "modified": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "monthyear": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number_field1": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "number_field2": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "order_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "order_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "project": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "recognize": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "reconcile_required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "renew_using_item": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "renewal_amount": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "renewal_amount_percentage": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "renewal_amount_value": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "renewal_duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "renewal_factor": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "renewal_of_set": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "renewal_probability": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "renewal_quantity": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "revenue_amount": {
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "revenue_notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sales_manager": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sales_rep": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sf_group_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sf_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sf_opportunity_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sf_opportunity_line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sf_renewal_opportunity_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sf_renewal_opportunity_line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sf_renewal_opportunity_rule": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "term_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "text_field1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text_field2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unbalanced_revenue_exception": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/saasoptics/v1/saasoptics-v1-tables.yml b/_data/taps/schemas/saasoptics/v1/saasoptics-v1-tables.yml
new file mode 100644
index 000000000..5f5eec765
--- /dev/null
+++ b/_data/taps/schemas/saasoptics/v1/saasoptics-v1-tables.yml
@@ -0,0 +1,227 @@
+tap: saasoptics
+version: '1'
+tables:
+- name: accounts
+ description: 'The `{{ table.name }}` table contains info about accounts, or records
+ in your Chart of Accounts, in {{ integration.display_name }}.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-saasoptics/blob/master/tap_saasoptics/schemas/accounts.json
+ api-method: https://saasoptics.zendesk.com/hc/en-us/articles/115013751507-Accounts-R-
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: auto_renewal_profiles
+ description: 'The `{{ table.name }}` table contains info about auto-renwal profiles,
+ or transaction renewal rules in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-saasoptics/blob/master/tap_saasoptics/schemas/auto_renewal_profiles.json
+ api-method: https://saasoptics.zendesk.com/hc/en-us/articles/115013918268-Auto-Renewal-Profiles-R-
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: billing_descriptions
+ description: 'The `{{ table.name }}` table contains info about billing line item
+ descriptions.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-saasoptics/blob/master/tap_saasoptics/schemas/billing_descriptions.json
+ api-method: https://saasoptics.zendesk.com/hc/en-us/articles/115013751807-Billing-Line-Item-Descriptions-R-
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: billing_methods
+ description: 'The `{{ table.name }}` table contains info about billing methods,
+ which are used to specify billing/invoice frequencies for transactions in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-saasoptics/blob/master/tap_saasoptics/schemas/billing_methods.json
+ api-method: https://saasoptics.zendesk.com/hc/en-us/articles/115003604433-Billing-Methods-R-
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: contracts
+ description: 'The `{{ table.name }}` table contains info about the contracts in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-saasoptics/blob/master/tap_saasoptics/schemas/contracts.json
+ api-method: https://saasoptics.zendesk.com/hc/en-us/articles/115013751607-Contracts-CRUD-
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: modified
+- name: country_codes
+ description: 'The `{{ table.name }}` table contains info about country codes.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-saasoptics/blob/master/tap_saasoptics/schemas/country_codes.json
+ api-method: https://saasoptics.zendesk.com/hc/en-us/articles/115003604453-Country-Codes-R-
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: currency_codes
+ description: 'The `{{ table.name }}` table contains info about currency codes.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-saasoptics/blob/master/tap_saasoptics/schemas/currency_codes.json
+ api-method: https://saasoptics.zendesk.com/hc/en-us/articles/115003604453-Country-Codes-R-
+ table-details:
+ replication-method: Full Table
+ primary-key: code
+- name: customers
+ description: 'The `{{ table.name }}` table contains info about customers.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-saasoptics/blob/master/tap_saasoptics/schemas/customers.json
+ api-method: https://saasoptics.zendesk.com/hc/en-us/articles/115013751587-Customers-CRUD-
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: modified
+- name: deleted_contracts
+ description: 'The `{{ table.name }}` table contains a list of deleted {{ integration.display_name
+ }} contracts.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-saasoptics/blob/master/tap_saasoptics/schemas/deleted_contracts.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: deleted
+- name: deleted_invoices
+ description: 'The `{{ table.name }}` table contains a list of deleted {{ integration.display_name
+ }} invoices.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-saasoptics/blob/master/tap_saasoptics/schemas/deleted_invoices.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: deleted
+- name: deleted_revenue_entries
+ description: 'The `{{ table.name }}` table contains a list of deleted {{ integration.display_name
+ }} revenue entries.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-saasoptics/blob/master/tap_saasoptics/schemas/deleted_revenue_entries.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: deleted
+- name: deleted_transactions
+ description: 'The `{{ table.name }}` table contains a list of deleted {{ integration.display_name
+ }} transactions.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-saasoptics/blob/master/tap_saasoptics/schemas/deleted_transactions.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: deleted
+- name: invoices
+ description: 'The `{{ table.name }}` table contains info about invoices in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-saasoptics/blob/master/tap_saasoptics/schemas/invoices.json
+ api-method: https://saasoptics.zendesk.com/hc/en-us/articles/115013918148-Invoices-CRUD-
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: auditentry_modified
+- name: items
+ description: 'The `{{ table.name }}` table contains info about items, which are
+ products and services you sell.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-saasoptics/blob/master/tap_saasoptics/schemas/items.json
+ api-method: https://saasoptics.zendesk.com/hc/en-us/articles/115013751567-Items-R-
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: modified
+- name: payment_terms
+ description: "The `{{ table.name }}` table contains info about invoice payment terms.\
+ \ \n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-saasoptics/blob/master/tap_saasoptics/schemas/payment_terms.json
+ api-method: https://saasoptics.zendesk.com/hc/en-us/articles/115003642673-Payment-Terms-R-
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: registers
+ description: 'The `{{ table.name }}` table contains info about registers, which
+ can contain one or more [contracts](#contracts).
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-saasoptics/blob/master/tap_saasoptics/schemas/registers.json
+ api-method: https://saasoptics.zendesk.com/hc/en-us/articles/115013751707-Registers-R-
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: modified
+- name: revenue_entries
+ description: 'The `{{ table.name }}` table contains info about revenue entries.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-saasoptics/blob/master/tap_saasoptics/schemas/revenue_entries.json
+ api-method: https://saasoptics.zendesk.com/hc/en-us/articles/115003674273-Revenue-Entries-R-
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: modified
+- name: revenue_recognition_methods
+ description: 'The `{{ table.name }}` table contains info about revenue recognition
+ methods, which are the methods for calculating and generating revenue records
+ for a transaction.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-saasoptics/blob/master/tap_saasoptics/schemas/revenue_recognition_methods.json
+ api-method: https://saasoptics.zendesk.com/hc/en-us/articles/115003617774-Revenue-Recognition-Methods-R-
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: sales_orders
+ description: 'The `{{ table.name }}` table contains info about sales orders, which
+ have historically been synced in through the Salesforce integration and processed
+ into financial records within {{ integration.display_name }}.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-saasoptics/blob/master/tap_saasoptics/schemas/sales_orders.json
+ api-method: https://saasoptics.zendesk.com/hc/en-us/articles/360000738813-Sales-Orders-CR-
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: transactions
+ description: 'The `{{ table.name }}` table contains info about transactions.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-saasoptics/blob/master/tap_saasoptics/schemas/transactions.json
+ api-method: https://saasoptics.zendesk.com/hc/en-us/articles/360000066333-Transactions-CRUD-
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: modified
diff --git a/_data/taps/schemas/sailthru/v1/json/ad_targeter_plans.json b/_data/taps/schemas/sailthru/v1/json/ad_targeter_plans.json
new file mode 100644
index 000000000..34439f78a
--- /dev/null
+++ b/_data/taps/schemas/sailthru/v1/json/ad_targeter_plans.json
@@ -0,0 +1,38 @@
+{
+ "properties": {
+ "list": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "schedule": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/sailthru/v1/json/blast_query.json b/_data/taps/schemas/sailthru/v1/json/blast_query.json
new file mode 100644
index 000000000..10364036d
--- /dev/null
+++ b/_data/taps/schemas/sailthru/v1/json/blast_query.json
@@ -0,0 +1,80 @@
+{
+ "properties": {
+ "blast_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "click_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_hash": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_ten_clicks": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "first_ten_clicks_time": {
+ "items": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "open_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "profile_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "purchase_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "send_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/sailthru/v1/json/blast_repeats.json b/_data/taps/schemas/sailthru/v1/json/blast_repeats.json
new file mode 100644
index 000000000..ea6cf1d84
--- /dev/null
+++ b/_data/taps/schemas/sailthru/v1/json/blast_repeats.json
@@ -0,0 +1,170 @@
+{
+ "properties": {
+ "create_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "create_user": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "days": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "days_month": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "error_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "errors": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "generate_time": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_static": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "list": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message_criteria": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modify_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "modify_user": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "previous_blast_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "repeat_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "report_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "seed_emails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "send_time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suppress_list": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "template": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "template_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/sailthru/v1/json/blast_save_list.json b/_data/taps/schemas/sailthru/v1/json/blast_save_list.json
new file mode 100644
index 000000000..0afb85e9a
--- /dev/null
+++ b/_data/taps/schemas/sailthru/v1/json/blast_save_list.json
@@ -0,0 +1,176 @@
+{
+ "properties": {
+ "clicks": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_hash": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "engagement": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_purchase_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "geolocation_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "geolocation_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "geolocation_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "geolocation_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "largest_purchase_item_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_click": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_open": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_pageview": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_purchase_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "lifetime_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "list_signup": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lists": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "opens": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "optout_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "pageviews": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "profile_created_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "profile_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "purchase_count": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "purchase_incomplete": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "purchase_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "signup": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "top_device": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/sailthru/v1/json/blasts.json b/_data/taps/schemas/sailthru/v1/json/blasts.json
new file mode 100644
index 000000000..2f9844778
--- /dev/null
+++ b/_data/taps/schemas/sailthru/v1/json/blasts.json
@@ -0,0 +1,132 @@
+{
+ "properties": {
+ "blast_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "copy_template": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "data_feed_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "list": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modify_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "modify_user": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "schedule_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "sent_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "stats": {
+ "properties": {
+ "total": {
+ "properties": {
+ "beacon_noclick": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "open_total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pv": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/sailthru/v1/json/lists.json b/_data/taps/schemas/sailthru/v1/json/lists.json
new file mode 100644
index 000000000..020e9ea40
--- /dev/null
+++ b/_data/taps/schemas/sailthru/v1/json/lists.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "create_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "list_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "valid_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/sailthru/v1/json/purchase_log.json b/_data/taps/schemas/sailthru/v1/json/purchase_log.json
new file mode 100644
index 000000000..0db51a523
--- /dev/null
+++ b/_data/taps/schemas/sailthru/v1/json/purchase_log.json
@@ -0,0 +1,68 @@
+{
+ "properties": {
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email_hash": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "extid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantities": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_prices": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "urls": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/sailthru/v1/json/users.json b/_data/taps/schemas/sailthru/v1/json/users.json
new file mode 100644
index 000000000..792f9df8a
--- /dev/null
+++ b/_data/taps/schemas/sailthru/v1/json/users.json
@@ -0,0 +1,56 @@
+{
+ "properties": {
+ "cookie": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "engagement": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lists": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "optout_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "profile_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vars": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/sailthru/v1/sailthru-v1-foreign-keys.yml b/_data/taps/schemas/sailthru/v1/sailthru-v1-foreign-keys.yml
new file mode 100644
index 000000000..83fcca789
--- /dev/null
+++ b/_data/taps/schemas/sailthru/v1/sailthru-v1-foreign-keys.yml
@@ -0,0 +1,172 @@
+tap: sailthru
+version: '1'
+keys:
+ lists_list_id:
+ - table: lists
+ keys:
+ - list_id
+ - table: ad_targeter_plans
+ keys:
+ - list
+ - table: blast_save_list
+ keys:
+ - lists
+ - table: users
+ keys:
+ - lists
+ - table: blasts
+ keys:
+ - list
+ - table: blast_repeats
+ keys:
+ - list
+ blasts_blast_id:
+ - table: blasts
+ keys:
+ - blast_id
+ - table: blast_query
+ keys:
+ - blast_id
+tables:
+- table-name: lists
+ join:
+ - table-name: ad_targeter_plans
+ keys:
+ - key: list_id
+ foreign-key: list
+ - table-name: blast_save_list
+ keys:
+ - key: list_id
+ foreign-key: lists
+ - table-name: users
+ keys:
+ - key: list_id
+ foreign-key: lists
+ - table-name: blasts
+ keys:
+ - key: list_id
+ foreign-key: list
+ - table-name: blast_repeats
+ keys:
+ - key: list_id
+ foreign-key: list
+- table-name: ad_targeter_plans
+ join:
+ - table-name: lists
+ keys:
+ - key: list
+ foreign-key: list_id
+ - table-name: blast_save_list
+ keys:
+ - key: list
+ foreign-key: lists
+ - table-name: users
+ keys:
+ - key: list
+ foreign-key: lists
+ - table-name: blasts
+ keys:
+ - key: list
+ foreign-key: list
+ - table-name: blast_repeats
+ keys:
+ - key: list
+ foreign-key: list
+- table-name: blast_save_list
+ join:
+ - table-name: lists
+ keys:
+ - key: lists
+ foreign-key: list_id
+ - table-name: ad_targeter_plans
+ keys:
+ - key: lists
+ foreign-key: list
+ - table-name: users
+ keys:
+ - key: lists
+ foreign-key: lists
+ - table-name: blasts
+ keys:
+ - key: lists
+ foreign-key: list
+ - table-name: blast_repeats
+ keys:
+ - key: lists
+ foreign-key: list
+- table-name: users
+ join:
+ - table-name: lists
+ keys:
+ - key: lists
+ foreign-key: list_id
+ - table-name: ad_targeter_plans
+ keys:
+ - key: lists
+ foreign-key: list
+ - table-name: blast_save_list
+ keys:
+ - key: lists
+ foreign-key: lists
+ - table-name: blasts
+ keys:
+ - key: lists
+ foreign-key: list
+ - table-name: blast_repeats
+ keys:
+ - key: lists
+ foreign-key: list
+- table-name: blasts
+ join:
+ - table-name: lists
+ keys:
+ - key: list
+ foreign-key: list_id
+ - table-name: ad_targeter_plans
+ keys:
+ - key: list
+ foreign-key: list
+ - table-name: blast_save_list
+ keys:
+ - key: list
+ foreign-key: lists
+ - table-name: users
+ keys:
+ - key: list
+ foreign-key: lists
+ - table-name: blast_repeats
+ keys:
+ - key: list
+ foreign-key: list
+ - table-name: blast_query
+ keys:
+ - key: blast_id
+ foreign-key: blast_id
+- table-name: blast_repeats
+ join:
+ - table-name: lists
+ keys:
+ - key: list
+ foreign-key: list_id
+ - table-name: ad_targeter_plans
+ keys:
+ - key: list
+ foreign-key: list
+ - table-name: blast_save_list
+ keys:
+ - key: list
+ foreign-key: lists
+ - table-name: users
+ keys:
+ - key: list
+ foreign-key: lists
+ - table-name: blasts
+ keys:
+ - key: list
+ foreign-key: list
+- table-name: blast_query
+ join:
+ - table-name: blasts
+ keys:
+ - key: blast_id
+ foreign-key: blast_id
diff --git a/_data/taps/schemas/sailthru/v1/sailthru-v1-tables.yml b/_data/taps/schemas/sailthru/v1/sailthru-v1-tables.yml
new file mode 100644
index 000000000..df523f734
--- /dev/null
+++ b/_data/taps/schemas/sailthru/v1/sailthru-v1-tables.yml
@@ -0,0 +1,107 @@
+tap: sailthru
+version: '1'
+tables:
+- name: ad_targeter_plans
+ description: 'The `{{ table.name }}` table contains information about Ad Targeter
+ Plans in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://getstarted.sailthru.com/email/ad-targeter/ad-targeter-overview/
+ singer-schema: https://github.com/singer-io/tap-sailthru/blob/master/tap_sailthru/schemas/ad_targeter_plans.json
+ api-method: https://getstarted.sailthru.com/developers/api/ad-plan/
+ table-details:
+ replication-method: Full Table
+ primary-key: plan_id
+- name: blasts
+ description: 'The `{{ table.name }}` table contains infomation about your specific
+ {{ integration.display_name }} campaigns, or information about campaigns by status
+ types: `sent`, `sending`, `scheduled`, `unscheduled`.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-sailthru/blob/master/tap_sailthru/schemas/blasts.json
+ api-method: https://getstarted.sailthru.com/developers/api/blast/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: blast_id
+ replication-key: modify_time
+- name: blast_query
+ description: 'The `{{ table.name }}` table contains information from blast query
+ jobs in your {{ integration.display_name }} account. This is a child table of
+ `blasts`.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-sailthru/tree/master/tap_sailthru/schemas/blast_query.json
+ api-method: https://getstarted.sailthru.com/developers/api/job/#blast-query
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - blast_id
+ - profile_id
+- name: blast_repeats
+ description: 'The `{{ table.name }}` table contains information about recurring
+ campaigns in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-sailthru/blob/master/tap_sailthru/schemas/blast_repeats.json
+ api-method: https://getstarted.sailthru.com/developers/api/blast_repeat/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: repeat_id
+ replication-key: modify_time
+- name: blast_save_list
+ description: 'The `{{ table.name }}` table contains a list of users that received
+ a specific campaign from your {{ integration.display_name }} account. This is
+ a child table of `lists`.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-sailthru/blob/master/tap_sailthru/schemas/blast_save_list.json
+ api-method: https://getstarted.sailthru.com/developers/api/job/#blast-save-list
+ table-details:
+ replication-method: Full Table
+ primary-key: profile_id
+- name: lists
+ description: 'The `{{ table.name }}` table contains basic information about lists
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://getstarted.sailthru.com/audience/managing-lists/lists-overview/
+ singer-schema: https://github.com/singer-io/tap-sailthru/blob/master/tap_sailthru/schemas/lists.json
+ api-method: https://getstarted.sailthru.com/developers/api/list/
+ table-details:
+ replication-method: Full Table
+ primary-key: list_id
+- name: purchase_log
+ description: 'The `{{ table.name }}` table contains a a list of user data in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-sailthru/blob/master/tap_sailthru/schemas/purchase_log.json
+ api-method: https://getstarted.sailthru.com/developers/api/job/#export-purchase-log
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - channel
+ - email_hash
+ - extid
+ - message_id
+ - price
+ replication-key: date
+- name: users
+ description: 'The `{{ table.name }}` table contains user data from your {{ integration.display_name
+ }} account. This is a child table of `blast_save_list`.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-sailthru/blob/master/tap_sailthru/schemas/users.json
+ api-method: https://getstarted.sailthru.com/developers/api/user/
+ table-details:
+ replication-method: Full Table
+ primary-key: profile_id
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/salesforce-marketing-cloud/v1/json/campaigns.json b/_data/taps/schemas/salesforce-marketing-cloud/v1/json/campaigns.json
new file mode 100644
index 000000000..45af64c05
--- /dev/null
+++ b/_data/taps/schemas/salesforce-marketing-cloud/v1/json/campaigns.json
@@ -0,0 +1,47 @@
+{
+ "properties": {
+ "campaignCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modifiedDate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/salesforce-marketing-cloud/v1/json/content_areas.json b/_data/taps/schemas/salesforce-marketing-cloud/v1/json/content_areas.json
new file mode 100644
index 000000000..0c1e37373
--- /dev/null
+++ b/_data/taps/schemas/salesforce-marketing-cloud/v1/json/content_areas.json
@@ -0,0 +1,173 @@
+{
+ "properties": {
+ "BackgroundColor": {
+ "description": "Indicates background color of content area",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BorderColor": {
+ "description": "Indicates color of border surrounding content area",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BorderWidth": {
+ "description": "Indicates pixel width of border surrounding content area",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "CategoryID": {
+ "description": "Specifies the identifier of the folder.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Cellpadding": {
+ "description": "Indicates pixel value of padding around content area",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Cellspacing": {
+ "description": "Indicates pixel value of spacing for content area",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Content": {
+ "description": "Identifies content contained in a content area.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CreatedDate": {
+ "description": "Read-only date and time of the object's creation.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CustomerKey": {
+ "description": "User-supplied unique identifier for an object within an object type (corresponds to the external key assigned to an object in the user interface).",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FontFamily": {
+ "description": "Indicates font family used in content area",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasFontSize": {
+ "description": "Indicates whether the content area includes a specified font size or not",
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ID": {
+ "description": "Read-only legacy identifier for an object. Not supported on all objects. Some objects use the ObjectID property as the Marketing Cloud unique ID.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "IsBlank": {
+ "description": "Indicates if specified content area contains no content.",
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDynamicContent": {
+ "description": "Indicates if specific content area contains dynamic content.",
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsLocked": {
+ "description": "Indicates if specific email content area within an Enterprise or Enterprise 2.0 account is locked and cannot be changed by subaccounts.",
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSurvey": {
+ "description": "Indicates whether a specific content area contains survey questions.",
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Key": {
+ "description": "Specifies key associated with content area in HTML body. Relates to the Email object via a custom type.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ModifiedDate": {
+ "description": "Indicates the last time object information was modified.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "description": "Name of the object or property.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ObjectID": {
+ "description": "System-controlled, read-only text string identifier for object.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PartnerProperties": {
+ "description": "Specifies key-value pairs of properties associated with an object.",
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "Width": {
+ "description": "Indicates pixel width of content area",
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/salesforce-marketing-cloud/v1/json/data_extension.json b/_data/taps/schemas/salesforce-marketing-cloud/v1/json/data_extension.json
new file mode 100644
index 000000000..bd62c18b7
--- /dev/null
+++ b/_data/taps/schemas/salesforce-marketing-cloud/v1/json/data_extension.json
@@ -0,0 +1,14 @@
+{
+ "properties": {
+ "CategoryID": {
+ "type": [
+ "integer"
+ ]
+ },
+ "_CustomObjectKey": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/salesforce-marketing-cloud/v1/json/emails.json b/_data/taps/schemas/salesforce-marketing-cloud/v1/json/emails.json
new file mode 100644
index 000000000..a5d44414b
--- /dev/null
+++ b/_data/taps/schemas/salesforce-marketing-cloud/v1/json/emails.json
@@ -0,0 +1,206 @@
+{
+ "properties": {
+ "CategoryID": {
+ "description": "Specifies the identifier of the folder containing the email.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "CharacterSet": {
+ "description": "Indicates encoding used in an email message.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ClonedFromID": {
+ "description": "ID of email message from which the specified email message was created.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ContentAreaIDs": {
+ "description": "Contains information on content areas included in an email message.",
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": "array"
+ },
+ "ContentCheckStatus": {
+ "description": "Indicates whether content validation has completed for this email message.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CreatedDate": {
+ "description": "Read-only date and time of the object's creation.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CustomerKey": {
+ "description": "User-supplied unique identifier for an object within an object type (corresponds to the external key assigned to an object in the user interface).",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EmailType": {
+ "description": "Defines preferred email type.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HTMLBody": {
+ "description": "Contains HTML body of an email message.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasDynamicSubjectLine": {
+ "description": "Indicates whether email message contains a dynamic subject line.",
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ID": {
+ "description": "Read-only legacy identifier for an object. Not supported on all objects. Some objects use the ObjectID property as the Marketing Cloud unique ID.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "IsActive": {
+ "description": "Specifies whether the object is active.",
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsHTMLPaste": {
+ "description": "Indicates whether email message was created via pasted HTML.",
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ModifiedDate": {
+ "description": "Indicates the last time object information was modified.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "description": "Name of the object or property.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ObjectID": {
+ "description": "System-controlled, read-only text string identifier for object.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PartnerProperties": {
+ "description": "Specifies key-value pairs of properties associated with an object.",
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "PreHeader": {
+ "description": "Contains text used in preheader of email message on mobile devices.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "description": "Defines status of object. Status of an address.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Subject": {
+ "description": "Contains subject area information for a message.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SyncTextWithHTML": {
+ "description": "Makes the text version of an email contain the same content as the HTML version.",
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "TextBody": {
+ "description": "Contains raw text body of a message.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "__AdditionalEmailAttribute1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "__AdditionalEmailAttribute2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "__AdditionalEmailAttribute3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "__AdditionalEmailAttribute4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "__AdditionalEmailAttribute5": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/salesforce-marketing-cloud/v1/json/events.json b/_data/taps/schemas/salesforce-marketing-cloud/v1/json/events.json
new file mode 100644
index 000000000..20c9d01ba
--- /dev/null
+++ b/_data/taps/schemas/salesforce-marketing-cloud/v1/json/events.json
@@ -0,0 +1,54 @@
+{
+ "properties": {
+ "BatchID": {
+ "description": "Ties triggered send sent events to other events (like clicks and opens that occur at a later date and time)",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "CorrelationID": {
+ "description": "Identifies correlation of objects across several requests.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EventDate": {
+ "description": "Date when a tracking event occurred.",
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "EventType": {
+ "description": "The type of tracking event",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SendID": {
+ "description": "Contains identifier for a specific send.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "SubscriberKey": {
+ "description": "Identification of a specific subscriber.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "URL": {
+ "description": "URL that was clicked.",
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/salesforce-marketing-cloud/v1/json/folders.json b/_data/taps/schemas/salesforce-marketing-cloud/v1/json/folders.json
new file mode 100644
index 000000000..75f5efe20
--- /dev/null
+++ b/_data/taps/schemas/salesforce-marketing-cloud/v1/json/folders.json
@@ -0,0 +1,103 @@
+{
+ "properties": {
+ "AllowChildren": {
+ "description": "Specifies whether a data folder can have child data folders.",
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ContentType": {
+ "description": "Defines the type of content contained within a folder.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CreatedDate": {
+ "description": "Read-only date and time of the object's creation.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CustomerKey": {
+ "description": "User-supplied unique identifier for an object within an object type (corresponds to the external key assigned to an object in the user interface).",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "description": "Describes and provides information regarding the object.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ID": {
+ "description": "Read-only legacy identifier for an object. Not supported on all objects. Some objects use the ObjectID property as the Marketing Cloud unique ID.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ModifiedDate": {
+ "description": "Indicates the last time object information was modified.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "description": "Name of the object or property.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ObjectID": {
+ "description": "System-controlled, read-only text string identifier for object.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ParentFolder": {
+ "description": "Specifies the parent folder for a data folder.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "PartnerProperties": {
+ "description": "Specifies key-value pairs of properties associated with an object.",
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "Type": {
+ "description": "Indicates type of specific list. Valid values include Public, Private, Salesforce, GlobalUnsubscribe, and Master.",
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/salesforce-marketing-cloud/v1/json/list_sends.json b/_data/taps/schemas/salesforce-marketing-cloud/v1/json/list_sends.json
new file mode 100644
index 000000000..1913b6206
--- /dev/null
+++ b/_data/taps/schemas/salesforce-marketing-cloud/v1/json/list_sends.json
@@ -0,0 +1,166 @@
+{
+ "properties": {
+ "CreatedDate": {
+ "description": "Read-only date and time of the object's creation.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CustomerKey": {
+ "description": "User-supplied unique identifier for an object within an object type (corresponds to the external key assigned to an object in the user interface).",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ExistingUndeliverables": {
+ "description": "Indicates whether bounces occurred on previous send.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ExistingUnsubscribes": {
+ "description": "Indicates whether unsubscriptions occurred on previous send.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ForwardedEmails": {
+ "description": "Number of emails forwarded for a send.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "HardBounces": {
+ "description": "Indicates number of hard bounces associated with a send.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ID": {
+ "description": "Read-only legacy identifier for an object. Not supported on all objects. Some objects use the ObjectID property as the Marketing Cloud unique ID.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "InvalidAddresses": {
+ "description": "Specifies the number of invalid addresses associated with a send.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ListID": {
+ "description": "List associated with the send.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "MissingAddresses": {
+ "description": "Specifies number of missing addresses encountered within a send.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ModifiedDate": {
+ "description": "Indicates the last time object information was modified.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "NumberDelivered": {
+ "description": "Number of sent emails that did not bounce.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "NumberSent": {
+ "description": "Number of emails actually sent as part of an email send. This number reflects all of the sent messages and may include bounced messages.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ObjectID": {
+ "description": "System-controlled, read-only text string identifier for object.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "OtherBounces": {
+ "description": "Specifies number of Other-type bounces in a send.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "PartnerProperties": {
+ "description": "Specifies key-value pairs of properties associated with an object.",
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "SendID": {
+ "description": "Contains identifier for a specific send.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "SoftBounces": {
+ "description": "Indicates number of soft bounces associated with a specific send.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "UniqueClicks": {
+ "description": "Indicates number of unique clicks on message.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "UniqueOpens": {
+ "description": "Indicates number of unique opens resulting from a triggered send.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Unsubscribes": {
+ "description": "Indicates the number of unsubscribe events associated with a send.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/salesforce-marketing-cloud/v1/json/list_subscribers.json b/_data/taps/schemas/salesforce-marketing-cloud/v1/json/list_subscribers.json
new file mode 100644
index 000000000..8d76801d8
--- /dev/null
+++ b/_data/taps/schemas/salesforce-marketing-cloud/v1/json/list_subscribers.json
@@ -0,0 +1,75 @@
+{
+ "properties": {
+ "CreatedDate": {
+ "description": "Read-only date and time of the object's creation.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ID": {
+ "description": "Read-only legacy identifier for an object. Not supported on all objects. Some objects use the ObjectID property as the Marketing Cloud unique ID.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ListID": {
+ "description": "Defines identification for a list the subscriber resides on.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ModifiedDate": {
+ "description": "Indicates the last time object information was modified.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ObjectID": {
+ "description": "System-controlled, read-only text string identifier for object.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PartnerProperties": {
+ "description": "Specifies key-value pairs of properties associated with an object.",
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "Status": {
+ "description": "Defines status of object. Status of an address.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubscriberKey": {
+ "description": "Identification of a specific subscriber.",
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/salesforce-marketing-cloud/v1/json/lists.json b/_data/taps/schemas/salesforce-marketing-cloud/v1/json/lists.json
new file mode 100644
index 000000000..f4a7e11a2
--- /dev/null
+++ b/_data/taps/schemas/salesforce-marketing-cloud/v1/json/lists.json
@@ -0,0 +1,96 @@
+{
+ "properties": {
+ "Category": {
+ "description": "ID of the folder that an item is located in.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "CreatedDate": {
+ "description": "Read-only date and time of the object's creation.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "description": "Describes and provides information regarding the object.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ID": {
+ "description": "Read-only legacy identifier for an object. Not supported on all objects. Some objects use the ObjectID property as the Marketing Cloud unique ID.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ListClassification": {
+ "description": "Specifies the classification for a list.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ListName": {
+ "description": "Name of a specific list.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ModifiedDate": {
+ "description": "Indicates the last time object information was modified.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ObjectID": {
+ "description": "System-controlled, read-only text string identifier for object.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PartnerProperties": {
+ "description": "Specifies key-value pairs of properties associated with an object.",
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "SendClassification": {
+ "description": "Indicates the send classification to use as part of a send definition.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "description": "Indicates type of specific list. Valid values include Public, Private, Salesforce, GlobalUnsubscribe, and Master.",
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/salesforce-marketing-cloud/v1/json/sends.json b/_data/taps/schemas/salesforce-marketing-cloud/v1/json/sends.json
new file mode 100644
index 000000000..94525f887
--- /dev/null
+++ b/_data/taps/schemas/salesforce-marketing-cloud/v1/json/sends.json
@@ -0,0 +1,117 @@
+{
+ "properties": {
+ "CreatedDate": {
+ "description": "Read-only date and time of the object's creation.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EmailID": {
+ "description": "Specifies the ID of an email message associated with a send.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "EmailName": {
+ "description": "Specifies the name of an email message associated with a send.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FromAddress": {
+ "description": "Indicates From address associated with a object. Deprecated for email send definitions and triggered send definitions.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FromName": {
+ "description": "Specifies the default email message From Name. Deprecated for email send definitions and triggered send definitions.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ID": {
+ "description": "Read-only legacy identifier for an object. Not supported on all objects. Some objects use the ObjectID property as the Marketing Cloud unique ID.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "IsAlwaysOn": {
+ "description": "Indicates whether the request can be performed while the system is is maintenance mode. A value of true indicates the system will process the request.",
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsMultipart": {
+ "description": "Indicates whether the email is sent with Multipart/MIME enabled.",
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ModifiedDate": {
+ "description": "Indicates the last time object information was modified.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PartnerProperties": {
+ "description": "Specifies key-value pairs of properties associated with an object.",
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "SendDate": {
+ "description": "Indicates the date on which a send occurred. Set this value to have a CST (Central Standard Time) value.",
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "SentDate": {
+ "description": "Indicates date on which a send took place.",
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Status": {
+ "description": "Defines status of object. Status of an address.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Subject": {
+ "description": "Contains subject area information for a message.",
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/salesforce-marketing-cloud/v1/json/subscribers.json b/_data/taps/schemas/salesforce-marketing-cloud/v1/json/subscribers.json
new file mode 100644
index 000000000..dd6c742b0
--- /dev/null
+++ b/_data/taps/schemas/salesforce-marketing-cloud/v1/json/subscribers.json
@@ -0,0 +1,203 @@
+{
+ "properties": {
+ "Addresses": {
+ "description": "Indicates addresses belonging to a subscriber, used to create, retrieve, update or delete an email or SMS Address for a given subscriber.",
+ "items": {
+ "properties": {
+ "Address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "Attributes": {
+ "description": "Specifies key-value pairs of properties associated with an object.",
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "CreatedDate": {
+ "description": "Read-only date and time of the object's creation.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CustomerKey": {
+ "description": "User-supplied unique identifier for an object within an object type (corresponds to the external key assigned to an object in the user interface).",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EmailAddress": {
+ "description": "Contains the email address for a subscriber. Indicates the data extension field contains email address data.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EmailTypePreference": {
+ "description": "The format in which email should be sent",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ID": {
+ "description": "Read-only legacy identifier for an object. Not supported on all objects. Some objects use the ObjectID property as the Marketing Cloud unique ID.",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ListIDs": {
+ "description": "Defines list IDs a subscriber resides on.",
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ "Locale": {
+ "description": "Contains the locale information for an Account. If no location is set, Locale defaults to en-US (English in United States).",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ModifiedDate": {
+ "description": "Indicates the last time object information was modified.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ObjectID": {
+ "description": "System-controlled, read-only text string identifier for object.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PartnerKey": {
+ "description": "Unique identifier provided by partner for an object, accessible only via API.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PartnerProperties": {
+ "description": "Specifies key-value pairs of properties associated with an object.",
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "PartnerType": {
+ "description": "Defines partner associated with a subscriber.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrimaryEmailAddress": {
+ "description": "Indicates primary email address for a subscriber.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrimarySMSAddress": {
+ "description": "Indicates primary SMS address for a subscriber. Used to create and update SMS Address for a given subscriber.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrimarySMSPublicationStatus": {
+ "description": "Indicates the subscriber's modality status.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "description": "Defines status of object. Status of an address.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubscriberKey": {
+ "description": "Identification of a specific subscriber.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubscriberTypeDefinition": {
+ "description": "Specifies if a subscriber resides in an integration, such as Salesforce or Microsoft Dynamics CRM",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UnsubscribedDate": {
+ "description": "Represents date subscriber unsubscribed from a list.",
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/salesforce-marketing-cloud/v1/salesforce-marketing-cloud-v1-foreign-keys.yml b/_data/taps/schemas/salesforce-marketing-cloud/v1/salesforce-marketing-cloud-v1-foreign-keys.yml
new file mode 100644
index 000000000..490ee4250
--- /dev/null
+++ b/_data/taps/schemas/salesforce-marketing-cloud/v1/salesforce-marketing-cloud-v1-foreign-keys.yml
@@ -0,0 +1,256 @@
+tap: salesforce-marketing-cloud
+version: '1'
+keys:
+ campaign_:
+ - table: campaigns
+ keys:
+ - ID
+ content_area_:
+ - table: content_areas
+ keys:
+ - ID
+ - table: emails
+ keys:
+ - ContentAreaIDs
+ email_EmailID:
+ - table: emails
+ keys:
+ - ID
+ - ClonedFromID
+ - table: sends
+ keys:
+ - EmailID
+ folder_CategoryID:
+ - table: content_areas
+ keys:
+ - CategoryID
+ - table: emails
+ keys:
+ - CategoryID
+ - table: folders
+ keys:
+ - ID
+ - ParentFolder
+ - table: lists
+ keys:
+ - Category
+ list_ListID:
+ - table: lists
+ keys:
+ - ID
+ - table: list_sends
+ keys:
+ - ListID
+ - table: list_subscribers
+ keys:
+ - ListID
+ - table: subscribers
+ keys:
+ - ListIDs
+ event_SendID:
+ - table: events
+ keys:
+ - SendID
+ - table: list_sends
+ keys:
+ - SendID
+ - table: sends
+ keys:
+ - ID
+ subscriber_SubscriberKey:
+ - table: events
+ keys:
+ - SubscriberKey
+ - table: list_subscribers
+ keys:
+ - SubscriberKey
+ - table: subscribers
+ keys:
+ - ID
+tables:
+- table-name: content_areas
+ join:
+ - table-name: emails
+ keys:
+ - key: ID
+ foreign-key: ContentAreaIDs
+ - key: CategoryID
+ foreign-key: CategoryID
+ - table-name: folders
+ keys:
+ - key: CategoryID
+ foreign-key: ID
+ - key: CategoryID
+ foreign-key: ParentFolder
+ - table-name: lists
+ keys:
+ - key: CategoryID
+ foreign-key: Category
+- table-name: emails
+ join:
+ - table-name: content_areas
+ keys:
+ - key: ContentAreaIDs
+ foreign-key: ID
+ - key: CategoryID
+ foreign-key: CategoryID
+ - table-name: sends
+ keys:
+ - key: ID
+ foreign-key: EmailID
+ - key: ClonedFromID
+ foreign-key: EmailID
+ - table-name: folders
+ keys:
+ - key: CategoryID
+ foreign-key: ID
+ - key: CategoryID
+ foreign-key: ParentFolder
+ - table-name: lists
+ keys:
+ - key: CategoryID
+ foreign-key: Category
+- table-name: sends
+ join:
+ - table-name: emails
+ keys:
+ - key: EmailID
+ foreign-key: ID
+ - key: EmailID
+ foreign-key: ClonedFromID
+ - table-name: events
+ keys:
+ - key: ID
+ foreign-key: SendID
+ - table-name: list_sends
+ keys:
+ - key: ID
+ foreign-key: SendID
+- table-name: folders
+ join:
+ - table-name: content_areas
+ keys:
+ - key: ID
+ foreign-key: CategoryID
+ - key: ParentFolder
+ foreign-key: CategoryID
+ - table-name: emails
+ keys:
+ - key: ID
+ foreign-key: CategoryID
+ - key: ParentFolder
+ foreign-key: CategoryID
+ - table-name: lists
+ keys:
+ - key: ID
+ foreign-key: Category
+ - key: ParentFolder
+ foreign-key: Category
+- table-name: lists
+ join:
+ - table-name: content_areas
+ keys:
+ - key: Category
+ foreign-key: CategoryID
+ - table-name: emails
+ keys:
+ - key: Category
+ foreign-key: CategoryID
+ - table-name: folders
+ keys:
+ - key: Category
+ foreign-key: ID
+ - key: Category
+ foreign-key: ParentFolder
+ - table-name: list_sends
+ keys:
+ - key: ID
+ foreign-key: ListID
+ - table-name: list_subscribers
+ keys:
+ - key: ID
+ foreign-key: ListID
+ - table-name: subscribers
+ keys:
+ - key: ID
+ foreign-key: ListIDs
+- table-name: list_sends
+ join:
+ - table-name: lists
+ keys:
+ - key: ListID
+ foreign-key: ID
+ - table-name: list_subscribers
+ keys:
+ - key: ListID
+ foreign-key: ListID
+ - table-name: subscribers
+ keys:
+ - key: ListID
+ foreign-key: ListIDs
+ - table-name: events
+ keys:
+ - key: SendID
+ foreign-key: SendID
+ - table-name: sends
+ keys:
+ - key: SendID
+ foreign-key: ID
+- table-name: list_subscribers
+ join:
+ - table-name: lists
+ keys:
+ - key: ListID
+ foreign-key: ID
+ - table-name: list_sends
+ keys:
+ - key: ListID
+ foreign-key: ListID
+ - table-name: subscribers
+ keys:
+ - key: ListID
+ foreign-key: ListIDs
+ - key: SubscriberKey
+ foreign-key: ID
+ - table-name: events
+ keys:
+ - key: SubscriberKey
+ foreign-key: SubscriberKey
+- table-name: subscribers
+ join:
+ - table-name: lists
+ keys:
+ - key: ListIDs
+ foreign-key: ID
+ - table-name: list_sends
+ keys:
+ - key: ListIDs
+ foreign-key: ListID
+ - table-name: list_subscribers
+ keys:
+ - key: ListIDs
+ foreign-key: ListID
+ - key: ID
+ foreign-key: SubscriberKey
+ - table-name: events
+ keys:
+ - key: ID
+ foreign-key: SubscriberKey
+- table-name: events
+ join:
+ - table-name: list_sends
+ keys:
+ - key: SendID
+ foreign-key: SendID
+ - table-name: sends
+ keys:
+ - key: SendID
+ foreign-key: ID
+ - table-name: list_subscribers
+ keys:
+ - key: SubscriberKey
+ foreign-key: SubscriberKey
+ - table-name: subscribers
+ keys:
+ - key: SubscriberKey
+ foreign-key: ID
diff --git a/_data/taps/schemas/salesforce-marketing-cloud/v1/salesforce-marketing-cloud-v1-tables.yml b/_data/taps/schemas/salesforce-marketing-cloud/v1/salesforce-marketing-cloud-v1-tables.yml
new file mode 100644
index 000000000..4597d52d5
--- /dev/null
+++ b/_data/taps/schemas/salesforce-marketing-cloud/v1/salesforce-marketing-cloud-v1-tables.yml
@@ -0,0 +1,156 @@
+tap: salesforce-marketing-cloud
+version: '1'
+tap-repo-schemas: true
+tables:
+- name: campaigns
+ description: 'The `{{ table.name }}` table contains info about the campaigns in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-exacttarget/blob/master/tap_exacttarget/endpoints/campaigns.py
+ api-method: https://developer.salesforce.com/docs/atlas.en-us.noversion.mc-apis.meta/mc-apis/campaign.htm
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ replication-key: modifiedDate
+- name: content_areas
+ description: 'The `{{ table.name }}` table contains info about the reusable content
+ sections in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-exacttarget/blob/master/tap_exacttarget/endpoints/content_areas.py
+ api-method: https://developer.salesforce.com/docs/atlas.en-us.noversion.mc-apis.meta/mc-apis/contentarea.htm
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: ID
+ replication-key: ModifiedDate
+- name: data_extension
+ report: true
+ description: 'The `{{ table.name }}` table contains info about the data extensions
+ in your {{ integration.display_name }} account. A table will be created for each
+ [data extension](https://help.salesforce.com/articleView?id=mc_cab_data_extensions.htm&type=5){:target="new"}
+ in your {{ integration.display_name }} account.
+
+
+ For example: If there are two data extensions named `MobileAddress` and `MobileSubscription`,
+ two tables would be created: `{{ table.name }}._MobileAddress` and `{{ table.name
+ }}._MobileSubscription`
+
+
+ **Note**: Retrieving data extension data requires [**Read, Write** permissions
+ for Data Extensions](#add-api-component-to-package).
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-exacttarget/blob/master/tap_exacttarget/endpoints/data_extensions.py
+ api-method: https://developer.salesforce.com/docs/atlas.en-us.noversion.mc-apis.meta/mc-apis/dataextensionobject.htm
+ table-details:
+ replication-method: Full Table
+ primary-key: _CustomObjectKey
+- name: emails
+ description: 'The `{{ table.name }}` table contains info about the emails in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-exacttarget/blob/master/tap_exacttarget/endpoints/emails.py
+ api-method: https://developer.salesforce.com/docs/atlas.en-us.noversion.mc-apis.meta/mc-apis/email.htm
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: ID
+ replication-key: ModifiedDate
+- name: folders
+ description: 'The `{{ table.name }}` table contains info about the folders in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-exacttarget/blob/master/tap_exacttarget/endpoints/folders.py
+ api-method: https://developer.salesforce.com/docs/atlas.en-us.noversion.mc-apis.meta/mc-apis/datafolder.htm
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: ID
+ replication-key: ModifiedDate
+- name: lists
+ description: 'The `{{ table.name }}` table contains info about the lists in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://developer.salesforce.com/docs/atlas.en-us.noversion.mc-apis.meta/mc-apis/list.htm
+ singer-schema: https://github.com/singer-io/tap-exacttarget/blob/master/tap_exacttarget/endpoints/lists.py
+ api-method: https://developer.salesforce.com/docs/atlas.en-us.noversion.mc-apis.meta/mc-apis/retrieve.htm
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: ID
+ replication-key: ModifiedDate
+- name: list_sends
+ description: 'The `{{ table.name }}` table contains info about the completed sends
+ for lists in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-exacttarget/blob/master/tap_exacttarget/endpoints/list_sends.py
+ api-method: https://developer.salesforce.com/docs/atlas.en-us.noversion.mc-apis.meta/mc-apis/listsend.htm
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - ListID
+ - SendID
+ replication-key: ModifiedDate
+- name: list_subscribers
+ description: 'The `{{ table.name }}` table contains info about the lists associated
+ with a specific subscriber in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-exacttarget/blob/master/tap_exacttarget/endpoints/list_subscribers.py
+ api-method: https://developer.salesforce.com/docs/atlas.en-us.noversion.mc-apis.meta/mc-apis/listsubscriber.htm
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - ListID
+ - SubscriberKey
+ replication-key: ModifiedDate
+- name: sends
+ description: 'The `{{ table.name }}` table contains info about the email sends in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-exacttarget/blob/master/tap_exacttarget/endpoints/sends.py
+ api-method: https://developer.salesforce.com/docs/atlas.en-us.noversion.mc-apis.meta/mc-apis/send.htm
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: ID
+ replication-key: ModifiedDate
+- name: subscribers
+ description: 'The `{{ table.name }}` table contains info about the subscribers (people
+ subscribed to receive email and/or SMS communication) in your {{ integration.display_name
+ }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-exacttarget/blob/master/tap_exacttarget/endpoints/subscribers.py
+ api-method: https://developer.salesforce.com/docs/atlas.en-us.noversion.mc-apis.meta/mc-apis/subscriber.htm
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: ID
+ replication-key: ModifiedDate
+- name: events
+ description: 'The `{{ table.name }}` table contains info about the events in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-exacttarget/blob/master/tap_exacttarget/schemas/events.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - EventType
+ - EventDate
+ - SendID
+ - SubscriberKey
+ replication-key: EventDate
diff --git a/_data/taps/schemas/salesforce/v1/json/account.json b/_data/taps/schemas/salesforce/v1/json/account.json
new file mode 100644
index 000000000..b940dbece
--- /dev/null
+++ b/_data/taps/schemas/salesforce/v1/json/account.json
@@ -0,0 +1,319 @@
+{
+ "properties": {
+ "accountNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "accountSource": {
+ "type": [
+ "string"
+ ]
+ },
+ "annualRevenue": {
+ "type": [
+ "number"
+ ]
+ },
+ "billingAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "billingCity": {
+ "type": [
+ "string"
+ ]
+ },
+ "billingCountry": {
+ "type": [
+ "string"
+ ]
+ },
+ "billingCountryCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "billingGeocodeAccuracy": {
+ "type": [
+ "string"
+ ]
+ },
+ "billingLatitude": {
+ "type": [
+ "integer"
+ ]
+ },
+ "billingLongitude": {
+ "type": [
+ "integer"
+ ]
+ },
+ "billingPostalCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "billingState": {
+ "type": [
+ "string"
+ ]
+ },
+ "billingStateCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "billingStreet": {
+ "type": [
+ "string"
+ ]
+ },
+ "cleanStatus": {
+ "type": [
+ "string"
+ ]
+ },
+ "connectionReceivedId": {
+ "type": [
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "dunsNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "industry": {
+ "type": [
+ "string"
+ ]
+ },
+ "isCustomerPortal": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isDeleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isPartner": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isPersonAccount": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "jigsaw": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastActivityDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastReferenceDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastViewedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "masterRecordId": {
+ "type": [
+ "string"
+ ]
+ },
+ "naicsCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "naicsDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "numberOfEmployees": {
+ "type": [
+ "number"
+ ]
+ },
+ "operatingHoursId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ownerId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ownership": {
+ "type": [
+ "string"
+ ]
+ },
+ "parentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "photoUrl": {
+ "type": [
+ "string"
+ ]
+ },
+ "rating": {
+ "type": [
+ "string"
+ ]
+ },
+ "recordTypeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "salutation": {
+ "type": [
+ "string"
+ ]
+ },
+ "shippingAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "shippingCity": {
+ "type": [
+ "string"
+ ]
+ },
+ "shippingCountry": {
+ "type": [
+ "string"
+ ]
+ },
+ "shippingCountryCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "shippingGeocodeAccuracy": {
+ "type": [
+ "string"
+ ]
+ },
+ "shippingLatitude": {
+ "type": [
+ "integer"
+ ]
+ },
+ "shippingLongitude": {
+ "type": [
+ "integer"
+ ]
+ },
+ "shippingPostalCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "shippingState": {
+ "type": [
+ "string"
+ ]
+ },
+ "shippingStateCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "shippingStreet": {
+ "type": [
+ "string"
+ ]
+ },
+ "sic": {
+ "type": [
+ "string"
+ ]
+ },
+ "sicDesc": {
+ "type": [
+ "string"
+ ]
+ },
+ "site": {
+ "type": [
+ "string"
+ ]
+ },
+ "systemModStamp": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "tickerSymbol": {
+ "type": [
+ "string"
+ ]
+ },
+ "tradeStyle": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "website": {
+ "type": [
+ "string"
+ ]
+ },
+ "yearStarted": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/salesforce/v1/json/contact.json b/_data/taps/schemas/salesforce/v1/json/contact.json
new file mode 100644
index 000000000..002ea8ec2
--- /dev/null
+++ b/_data/taps/schemas/salesforce/v1/json/contact.json
@@ -0,0 +1,329 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "assistantName": {
+ "type": [
+ "string"
+ ]
+ },
+ "assistantPhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "birthdate": {
+ "type": [
+ "date"
+ ]
+ },
+ "canAllowPortalSelfReg": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "cleanStatus": {
+ "type": [
+ "string"
+ ]
+ },
+ "connectionReceivedId": {
+ "type": [
+ "string"
+ ]
+ },
+ "connectionSentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "department": {
+ "type": [
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "doNotCall": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "emailBouncedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "emailBouncedReason": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "firstName": {
+ "type": [
+ "string"
+ ]
+ },
+ "hasOptedOutOfEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "hasOptedOutOfFax": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "homePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "isDeleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isEmailBounced": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isPersonAccount": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "jigsaw": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastActivityDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastName": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastReferenceDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastViewedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "leadSource": {
+ "type": [
+ "string"
+ ]
+ },
+ "mailingAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "mailingCity": {
+ "type": [
+ "string"
+ ]
+ },
+ "mailingCountry": {
+ "type": [
+ "string"
+ ]
+ },
+ "mailingCountryCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "mailingGeocodeAccuracy": {
+ "type": [
+ "string"
+ ]
+ },
+ "mailingLatitude": {
+ "type": [
+ "integer"
+ ]
+ },
+ "mailingLongitude": {
+ "type": [
+ "integer"
+ ]
+ },
+ "mailingPostalCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "mailingState": {
+ "type": [
+ "string"
+ ]
+ },
+ "mailingStateCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "mailingStreet": {
+ "type": [
+ "string"
+ ]
+ },
+ "masterRecordId": {
+ "type": [
+ "string"
+ ]
+ },
+ "middleName": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobilePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "otherAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "otherCity": {
+ "type": [
+ "string"
+ ]
+ },
+ "otherCountry": {
+ "type": [
+ "string"
+ ]
+ },
+ "otherCountryCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "otherGeocodeAccuracy": {
+ "type": [
+ "string"
+ ]
+ },
+ "otherLatitude": {
+ "type": [
+ "integer"
+ ]
+ },
+ "otherLongitude": {
+ "type": [
+ "integer"
+ ]
+ },
+ "otherPhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "otherPostalCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "otherState": {
+ "type": [
+ "string"
+ ]
+ },
+ "otherStateCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "otherStreet": {
+ "type": [
+ "string"
+ ]
+ },
+ "ownerId": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "photoUrl": {
+ "type": [
+ "string"
+ ]
+ },
+ "recordTypeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "reportsToId": {
+ "type": [
+ "string"
+ ]
+ },
+ "salutation": {
+ "type": [
+ "string"
+ ]
+ },
+ "suffix": {
+ "type": [
+ "string"
+ ]
+ },
+ "systemModStamp": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/salesforce/v1/json/lead.json b/_data/taps/schemas/salesforce/v1/json/lead.json
new file mode 100644
index 000000000..8fb55d685
--- /dev/null
+++ b/_data/taps/schemas/salesforce/v1/json/lead.json
@@ -0,0 +1,294 @@
+{
+ "properties": {
+ "PostalCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "address": {
+ "type": [
+ "string"
+ ]
+ },
+ "annualRevenue": {
+ "type": [
+ "number"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "cleanStatus": {
+ "type": [
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "string"
+ ]
+ },
+ "companyDunsNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "connectionReceivedId": {
+ "type": [
+ "string"
+ ]
+ },
+ "convertedAccountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "convertedContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "convertedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "convertedOpportunityId": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "countryCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "currencyIsoCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "division": {
+ "type": [
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "emailBouncedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "emailBouncedReason": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "firstName": {
+ "type": [
+ "string"
+ ]
+ },
+ "geocodeAccuracy": {
+ "type": [
+ "string"
+ ]
+ },
+ "hasOptedOutOfEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "industry": {
+ "type": [
+ "string"
+ ]
+ },
+ "isConverted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isDeleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isUnreadByOwner": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "jigsaw": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastActivityDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastName": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastReferenceDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastViewedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "integer"
+ ]
+ },
+ "leadSource": {
+ "type": [
+ "string"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "integer"
+ ]
+ },
+ "masterRecordId": {
+ "type": [
+ "string"
+ ]
+ },
+ "middleName": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobilePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "numberOfEmployees": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ownerId": {
+ "type": [
+ "string"
+ ]
+ },
+ "partnerAccountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "photoUrl": {
+ "type": [
+ "string"
+ ]
+ },
+ "rating": {
+ "type": [
+ "string"
+ ]
+ },
+ "recordTypeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "salutation": {
+ "type": [
+ "string"
+ ]
+ },
+ "scoreIntelligenceId": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "stateCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "street": {
+ "type": [
+ "string"
+ ]
+ },
+ "suffix": {
+ "type": [
+ "string"
+ ]
+ },
+ "systemModStamp": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "website": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/salesforce/v1/json/opportunity.json b/_data/taps/schemas/salesforce/v1/json/opportunity.json
new file mode 100644
index 000000000..d28ea5d05
--- /dev/null
+++ b/_data/taps/schemas/salesforce/v1/json/opportunity.json
@@ -0,0 +1,204 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "campaignId": {
+ "type": [
+ "string"
+ ]
+ },
+ "closeDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "connectionReceivedId": {
+ "type": [
+ "string"
+ ]
+ },
+ "connectionSentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "currencyIsoCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "expectedRevenue": {
+ "type": [
+ "number"
+ ]
+ },
+ "fiscal": {
+ "type": [
+ "string"
+ ]
+ },
+ "fiscalQuarter": {
+ "type": [
+ "integer"
+ ]
+ },
+ "fiscalYear": {
+ "type": [
+ "integer"
+ ]
+ },
+ "forecastCategory": {
+ "type": [
+ "string"
+ ]
+ },
+ "forecastCategoryName": {
+ "type": [
+ "string"
+ ]
+ },
+ "hasOpenActivity": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "hasOpportunityLineItem": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "hasOverdueTask": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "isClosed": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isDeleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isExcludedFromTerritory2Filter": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isSplit": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isWon": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "lastActivityDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastReferenceDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastViewedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "leadSource": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nextStep": {
+ "type": [
+ "string"
+ ]
+ },
+ "ownerId": {
+ "type": [
+ "string"
+ ]
+ },
+ "pricebook2Id": {
+ "type": [
+ "string"
+ ]
+ },
+ "pricebookId": {
+ "type": [
+ "string"
+ ]
+ },
+ "probability": {
+ "type": [
+ "integer"
+ ]
+ },
+ "recordTypeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "stageName": {
+ "type": [
+ "string"
+ ]
+ },
+ "syncedQuoteId": {
+ "type": [
+ "string"
+ ]
+ },
+ "systemModStamp": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "territory2Id": {
+ "type": [
+ "string"
+ ]
+ },
+ "totalOpportunityQuantity": {
+ "type": [
+ "number"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/salesforce/v1/json/user.json b/_data/taps/schemas/salesforce/v1/json/user.json
new file mode 100644
index 000000000..217248372
--- /dev/null
+++ b/_data/taps/schemas/salesforce/v1/json/user.json
@@ -0,0 +1,744 @@
+{
+ "properties": {
+ "aboutMe": {
+ "type": [
+ "string"
+ ]
+ },
+ "accountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "address": {
+ "type": [
+ "string"
+ ]
+ },
+ "alias": {
+ "type": [
+ "string"
+ ]
+ },
+ "badgeText": {
+ "type": [
+ "string"
+ ]
+ },
+ "bannerPhotoUrl": {
+ "type": [
+ "string"
+ ]
+ },
+ "callCenterId": {
+ "type": [
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "communityNickname": {
+ "type": [
+ "string"
+ ]
+ },
+ "companyName": {
+ "type": [
+ "string"
+ ]
+ },
+ "contactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "countryCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "defaultCurrencyIsoCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "defaultDivision": {
+ "type": [
+ "string"
+ ]
+ },
+ "defaultGroupNotificationFrequency": {
+ "type": [
+ "string"
+ ]
+ },
+ "delegatedApproverId": {
+ "type": [
+ "string"
+ ]
+ },
+ "department": {
+ "type": [
+ "string"
+ ]
+ },
+ "digestFrequency": {
+ "type": [
+ "string"
+ ]
+ },
+ "division": {
+ "type": [
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "emailEncodingKey": {
+ "type": [
+ "string"
+ ]
+ },
+ "emailPreferencesAutoBcc": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "employeeNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "extension": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "federationIdentifier": {
+ "type": [
+ "string"
+ ]
+ },
+ "firstName": {
+ "type": [
+ "string"
+ ]
+ },
+ "forecastEnabled": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "fullPhotoUrl": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "isActive": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isPortalEnabled": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isPortalSelfRegistered": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isPrmSuperUser": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isProfilePhotoActive": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "jigsawImportLimitOverride": {
+ "type": [
+ "integer"
+ ]
+ },
+ "languageLocaleKey": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastLoginDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastName": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastReferenceDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastViewedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "integer"
+ ]
+ },
+ "localeSidKey": {
+ "type": [
+ "string"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "integer"
+ ]
+ },
+ "manager": {
+ "type": [
+ "string"
+ ]
+ },
+ "managerId": {
+ "type": [
+ "string"
+ ]
+ },
+ "mediumBannerPhotoUrl": {
+ "type": [
+ "string"
+ ]
+ },
+ "middleName": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobilePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "offlineTrialExpirationDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "portalRole": {
+ "type": [
+ "string"
+ ]
+ },
+ "postalCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "profileId": {
+ "type": [
+ "string"
+ ]
+ },
+ "receivesAdminInfoEmails": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "receivesInfoEmails": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "senderEmail": {
+ "type": [
+ "string"
+ ]
+ },
+ "senderName": {
+ "type": [
+ "string"
+ ]
+ },
+ "signature": {
+ "type": [
+ "string"
+ ]
+ },
+ "smallBannerPhotoUrl": {
+ "type": [
+ "string"
+ ]
+ },
+ "smallPhotoUrl": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "stateCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "street": {
+ "type": [
+ "string"
+ ]
+ },
+ "suffix": {
+ "type": [
+ "string"
+ ]
+ },
+ "systemModStamp": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "timeZoneSidKey": {
+ "type": [
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "userPermissionsCallCenterAutoLogin": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPermissionsChatterAnswersUser": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPermissionsInteractionUser": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPermissionsJigsawProspectingUser": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPermissionsKnowledgeUser": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPermissionsLiveAgentUser": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPermissionsMarketingUser": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPermissionsMobileUser": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPermissionsOfflineUser": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPermissionsSFContentUser": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPermissionsSiteforceContributorUser": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPermissionsSiteforcePublisherUser": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPermissionsSupportUser": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPermissionsWorkDotComeUserFeature": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesAcitivityRemindersPopup": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesApexPagesDeveloperMode": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesContentEmailAsAndWhen": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesContentNoEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisCommentAfterLikeEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisMentionsCommentEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisProfPostCommentEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableAllFeedsEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableBookmarkEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableChangeCommentEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableEndorsementEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableFeedbackEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableFileShareNotificationsForApi": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableFollowersEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableLaterCommentEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableLikeEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableMentionsPostEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableMessageEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableProfilePostEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableRewardEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableSharePostEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableWorkEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesEnableAutoSubForFeeds": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesEventRemindersCheckboxDefault": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesHideBiggerPhotoCallout": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesHideCSNDesktopTask": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesHideCSNGetChatterMobileTask": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesHideChatterOnboardingSplash": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesHideHideSecondChatterOnboardingSplash": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesHideS1BrowserUI": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesHideSfxWelcomeMat": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesJigsawListUser": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesLightningExperiencePreferred": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesPathAssistantCollapsed": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesReminderSoundOff": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowCityToExternalUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowCityToGuestUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowCountryToExternalUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowCountryToGuestUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowEmailToExternalUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowEmailToGuestUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowFaxToExternalUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowFaxToGuestUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowManagerToExternalUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowManagerToGuestUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowMobilePhoneToExternalUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowMobilePhoneToGuestUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowPostalCodeToExternalUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowPostalCodeToGuestUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowProfilePicToExternalUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowProfilePicToGuestUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowStateToExternalUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowStateToGuestUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowStreetAddressToExternalUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowStreetAddressToGuestUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowTitleToExternalUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowTitleToGuestUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowWorkPhoneToExternalUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowWorkPhoneToGuestUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesSortFeedByComment": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesTaskRemindersCheckboxDefault": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userRoleId": {
+ "type": [
+ "string"
+ ]
+ },
+ "userType": {
+ "type": [
+ "string"
+ ]
+ },
+ "username": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/salesforce/v1/salesforce-v1-foreign-keys.yml b/_data/taps/schemas/salesforce/v1/salesforce-v1-foreign-keys.yml
new file mode 100644
index 000000000..d7dc0efc2
--- /dev/null
+++ b/_data/taps/schemas/salesforce/v1/salesforce-v1-foreign-keys.yml
@@ -0,0 +1,241 @@
+tap: salesforce
+version: '1'
+keys:
+ account_accountId:
+ - table: account
+ keys:
+ - id
+ - table: contact
+ keys:
+ - accountId
+ - table: lead
+ keys:
+ - convertedAccountId
+ - table: opportunity
+ keys:
+ - accountId
+ - table: user
+ keys:
+ - accountId
+ contact_contactId:
+ - table: contact
+ keys:
+ - id
+ - table: lead
+ keys:
+ - convertedContactId
+ - table: user
+ keys:
+ - contactId
+ lead_leadId:
+ - table: lead
+ keys:
+ - id
+ opportunity_opportunityId:
+ - table: lead
+ keys:
+ - convertedOpportunityId
+ - table: opportunity
+ keys:
+ - id
+ user_ownerId:
+ - table: account
+ keys:
+ - ownerId
+ - table: contact
+ keys:
+ - ownerId
+ - table: lead
+ keys:
+ - ownerId
+ - table: opportunity
+ keys:
+ - ownerId
+ - table: user
+ keys:
+ - id
+ - delegatedApproverId
+ - managerId
+ users_userRoleId:
+ - table: user
+ keys:
+ - userRoleId
+tables:
+- table-name: account
+ join:
+ - table-name: contact
+ keys:
+ - key: id
+ foreign-key: accountId
+ - key: ownerId
+ foreign-key: ownerId
+ - table-name: lead
+ keys:
+ - key: id
+ foreign-key: convertedAccountId
+ - key: ownerId
+ foreign-key: ownerId
+ - table-name: opportunity
+ keys:
+ - key: id
+ foreign-key: accountId
+ - key: ownerId
+ foreign-key: ownerId
+ - table-name: user
+ keys:
+ - key: id
+ foreign-key: accountId
+ - key: ownerId
+ foreign-key: id
+ - key: ownerId
+ foreign-key: delegatedApproverId
+ - key: ownerId
+ foreign-key: managerId
+- table-name: contact
+ join:
+ - table-name: account
+ keys:
+ - key: accountId
+ foreign-key: id
+ - key: ownerId
+ foreign-key: ownerId
+ - table-name: lead
+ keys:
+ - key: accountId
+ foreign-key: convertedAccountId
+ - key: id
+ foreign-key: convertedContactId
+ - key: ownerId
+ foreign-key: ownerId
+ - table-name: opportunity
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: ownerId
+ foreign-key: ownerId
+ - table-name: user
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: id
+ foreign-key: contactId
+ - key: ownerId
+ foreign-key: id
+ - key: ownerId
+ foreign-key: delegatedApproverId
+ - key: ownerId
+ foreign-key: managerId
+- table-name: lead
+ join:
+ - table-name: account
+ keys:
+ - key: convertedAccountId
+ foreign-key: id
+ - key: ownerId
+ foreign-key: ownerId
+ - table-name: contact
+ keys:
+ - key: convertedAccountId
+ foreign-key: accountId
+ - key: convertedContactId
+ foreign-key: id
+ - key: ownerId
+ foreign-key: ownerId
+ - table-name: opportunity
+ keys:
+ - key: convertedAccountId
+ foreign-key: accountId
+ - key: convertedOpportunityId
+ foreign-key: id
+ - key: ownerId
+ foreign-key: ownerId
+ - table-name: user
+ keys:
+ - key: convertedAccountId
+ foreign-key: accountId
+ - key: convertedContactId
+ foreign-key: contactId
+ - key: ownerId
+ foreign-key: id
+ - key: ownerId
+ foreign-key: delegatedApproverId
+ - key: ownerId
+ foreign-key: managerId
+- table-name: opportunity
+ join:
+ - table-name: account
+ keys:
+ - key: accountId
+ foreign-key: id
+ - key: ownerId
+ foreign-key: ownerId
+ - table-name: contact
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: ownerId
+ foreign-key: ownerId
+ - table-name: lead
+ keys:
+ - key: accountId
+ foreign-key: convertedAccountId
+ - key: id
+ foreign-key: convertedOpportunityId
+ - key: ownerId
+ foreign-key: ownerId
+ - table-name: user
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: ownerId
+ foreign-key: id
+ - key: ownerId
+ foreign-key: delegatedApproverId
+ - key: ownerId
+ foreign-key: managerId
+- table-name: user
+ join:
+ - table-name: account
+ keys:
+ - key: accountId
+ foreign-key: id
+ - key: id
+ foreign-key: ownerId
+ - key: delegatedApproverId
+ foreign-key: ownerId
+ - key: managerId
+ foreign-key: ownerId
+ - table-name: contact
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: contactId
+ foreign-key: id
+ - key: id
+ foreign-key: ownerId
+ - key: delegatedApproverId
+ foreign-key: ownerId
+ - key: managerId
+ foreign-key: ownerId
+ - table-name: lead
+ keys:
+ - key: accountId
+ foreign-key: convertedAccountId
+ - key: contactId
+ foreign-key: convertedContactId
+ - key: id
+ foreign-key: ownerId
+ - key: delegatedApproverId
+ foreign-key: ownerId
+ - key: managerId
+ foreign-key: ownerId
+ - table-name: opportunity
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: id
+ foreign-key: ownerId
+ - key: delegatedApproverId
+ foreign-key: ownerId
+ - key: managerId
+ foreign-key: ownerId
diff --git a/_data/taps/schemas/salesforce/v1/salesforce-v1-tables.yml b/_data/taps/schemas/salesforce/v1/salesforce-v1-tables.yml
new file mode 100644
index 000000000..96b3bb929
--- /dev/null
+++ b/_data/taps/schemas/salesforce/v1/salesforce-v1-tables.yml
@@ -0,0 +1,60 @@
+tap: salesforce
+version: '1'
+tap-repo-schemas: false
+tables:
+- name: account
+ description: 'The `{{ table.name }}` table contains info about the individual accounts
+ (organizations and persons) involved with your business. This could be a customer,
+ a competitor, a partner, and so on.
+
+ '
+ links:
+ doc-link: https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_account.htm#!
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: systemModStamp
+- name: contact
+ description: 'The `{{ table.name }}` table contains info about your contacts, who
+ are individuals associated with accounts in your {{ integration.display_name }}
+ instance.
+
+ '
+ links:
+ doc-link: https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_contact.htm
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: systemModStamp
+- name: lead
+ description: 'The `{{ table.name }}` table contains info about your leads, who are
+ prospects or potential Opportunities.
+
+ '
+ links:
+ doc-link: https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_lead.htm
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: systemModStamp
+- name: opportunity
+ description: 'The `{{ table.name }}` table contains info about your opportunities,
+ which are sales or pending deals.
+
+ '
+ links:
+ doc-link: https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_opportunity.htm
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: systemModStamp
+- name: user
+ description: 'The `user` table contains info about the users in your organization.
+
+ '
+ links:
+ doc-link: https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_user.htm
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: systemModStamp
diff --git a/_data/taps/schemas/salesforce/v2/json/account.json b/_data/taps/schemas/salesforce/v2/json/account.json
new file mode 100644
index 000000000..b940dbece
--- /dev/null
+++ b/_data/taps/schemas/salesforce/v2/json/account.json
@@ -0,0 +1,319 @@
+{
+ "properties": {
+ "accountNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "accountSource": {
+ "type": [
+ "string"
+ ]
+ },
+ "annualRevenue": {
+ "type": [
+ "number"
+ ]
+ },
+ "billingAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "billingCity": {
+ "type": [
+ "string"
+ ]
+ },
+ "billingCountry": {
+ "type": [
+ "string"
+ ]
+ },
+ "billingCountryCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "billingGeocodeAccuracy": {
+ "type": [
+ "string"
+ ]
+ },
+ "billingLatitude": {
+ "type": [
+ "integer"
+ ]
+ },
+ "billingLongitude": {
+ "type": [
+ "integer"
+ ]
+ },
+ "billingPostalCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "billingState": {
+ "type": [
+ "string"
+ ]
+ },
+ "billingStateCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "billingStreet": {
+ "type": [
+ "string"
+ ]
+ },
+ "cleanStatus": {
+ "type": [
+ "string"
+ ]
+ },
+ "connectionReceivedId": {
+ "type": [
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "dunsNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "industry": {
+ "type": [
+ "string"
+ ]
+ },
+ "isCustomerPortal": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isDeleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isPartner": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isPersonAccount": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "jigsaw": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastActivityDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastReferenceDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastViewedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "masterRecordId": {
+ "type": [
+ "string"
+ ]
+ },
+ "naicsCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "naicsDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "numberOfEmployees": {
+ "type": [
+ "number"
+ ]
+ },
+ "operatingHoursId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ownerId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ownership": {
+ "type": [
+ "string"
+ ]
+ },
+ "parentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "photoUrl": {
+ "type": [
+ "string"
+ ]
+ },
+ "rating": {
+ "type": [
+ "string"
+ ]
+ },
+ "recordTypeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "salutation": {
+ "type": [
+ "string"
+ ]
+ },
+ "shippingAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "shippingCity": {
+ "type": [
+ "string"
+ ]
+ },
+ "shippingCountry": {
+ "type": [
+ "string"
+ ]
+ },
+ "shippingCountryCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "shippingGeocodeAccuracy": {
+ "type": [
+ "string"
+ ]
+ },
+ "shippingLatitude": {
+ "type": [
+ "integer"
+ ]
+ },
+ "shippingLongitude": {
+ "type": [
+ "integer"
+ ]
+ },
+ "shippingPostalCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "shippingState": {
+ "type": [
+ "string"
+ ]
+ },
+ "shippingStateCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "shippingStreet": {
+ "type": [
+ "string"
+ ]
+ },
+ "sic": {
+ "type": [
+ "string"
+ ]
+ },
+ "sicDesc": {
+ "type": [
+ "string"
+ ]
+ },
+ "site": {
+ "type": [
+ "string"
+ ]
+ },
+ "systemModStamp": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "tickerSymbol": {
+ "type": [
+ "string"
+ ]
+ },
+ "tradeStyle": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "website": {
+ "type": [
+ "string"
+ ]
+ },
+ "yearStarted": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/salesforce/v2/json/contact.json b/_data/taps/schemas/salesforce/v2/json/contact.json
new file mode 100644
index 000000000..002ea8ec2
--- /dev/null
+++ b/_data/taps/schemas/salesforce/v2/json/contact.json
@@ -0,0 +1,329 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "assistantName": {
+ "type": [
+ "string"
+ ]
+ },
+ "assistantPhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "birthdate": {
+ "type": [
+ "date"
+ ]
+ },
+ "canAllowPortalSelfReg": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "cleanStatus": {
+ "type": [
+ "string"
+ ]
+ },
+ "connectionReceivedId": {
+ "type": [
+ "string"
+ ]
+ },
+ "connectionSentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "department": {
+ "type": [
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "doNotCall": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "emailBouncedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "emailBouncedReason": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "firstName": {
+ "type": [
+ "string"
+ ]
+ },
+ "hasOptedOutOfEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "hasOptedOutOfFax": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "homePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "isDeleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isEmailBounced": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isPersonAccount": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "jigsaw": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastActivityDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastName": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastReferenceDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastViewedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "leadSource": {
+ "type": [
+ "string"
+ ]
+ },
+ "mailingAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "mailingCity": {
+ "type": [
+ "string"
+ ]
+ },
+ "mailingCountry": {
+ "type": [
+ "string"
+ ]
+ },
+ "mailingCountryCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "mailingGeocodeAccuracy": {
+ "type": [
+ "string"
+ ]
+ },
+ "mailingLatitude": {
+ "type": [
+ "integer"
+ ]
+ },
+ "mailingLongitude": {
+ "type": [
+ "integer"
+ ]
+ },
+ "mailingPostalCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "mailingState": {
+ "type": [
+ "string"
+ ]
+ },
+ "mailingStateCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "mailingStreet": {
+ "type": [
+ "string"
+ ]
+ },
+ "masterRecordId": {
+ "type": [
+ "string"
+ ]
+ },
+ "middleName": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobilePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "otherAddress": {
+ "type": [
+ "string"
+ ]
+ },
+ "otherCity": {
+ "type": [
+ "string"
+ ]
+ },
+ "otherCountry": {
+ "type": [
+ "string"
+ ]
+ },
+ "otherCountryCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "otherGeocodeAccuracy": {
+ "type": [
+ "string"
+ ]
+ },
+ "otherLatitude": {
+ "type": [
+ "integer"
+ ]
+ },
+ "otherLongitude": {
+ "type": [
+ "integer"
+ ]
+ },
+ "otherPhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "otherPostalCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "otherState": {
+ "type": [
+ "string"
+ ]
+ },
+ "otherStateCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "otherStreet": {
+ "type": [
+ "string"
+ ]
+ },
+ "ownerId": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "photoUrl": {
+ "type": [
+ "string"
+ ]
+ },
+ "recordTypeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "reportsToId": {
+ "type": [
+ "string"
+ ]
+ },
+ "salutation": {
+ "type": [
+ "string"
+ ]
+ },
+ "suffix": {
+ "type": [
+ "string"
+ ]
+ },
+ "systemModStamp": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/salesforce/v2/json/lead.json b/_data/taps/schemas/salesforce/v2/json/lead.json
new file mode 100644
index 000000000..8fb55d685
--- /dev/null
+++ b/_data/taps/schemas/salesforce/v2/json/lead.json
@@ -0,0 +1,294 @@
+{
+ "properties": {
+ "PostalCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "address": {
+ "type": [
+ "string"
+ ]
+ },
+ "annualRevenue": {
+ "type": [
+ "number"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "cleanStatus": {
+ "type": [
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "string"
+ ]
+ },
+ "companyDunsNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "connectionReceivedId": {
+ "type": [
+ "string"
+ ]
+ },
+ "convertedAccountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "convertedContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "convertedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "convertedOpportunityId": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "countryCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "currencyIsoCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "division": {
+ "type": [
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "emailBouncedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "emailBouncedReason": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "firstName": {
+ "type": [
+ "string"
+ ]
+ },
+ "geocodeAccuracy": {
+ "type": [
+ "string"
+ ]
+ },
+ "hasOptedOutOfEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "industry": {
+ "type": [
+ "string"
+ ]
+ },
+ "isConverted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isDeleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isUnreadByOwner": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "jigsaw": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastActivityDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastName": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastReferenceDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastViewedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "integer"
+ ]
+ },
+ "leadSource": {
+ "type": [
+ "string"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "integer"
+ ]
+ },
+ "masterRecordId": {
+ "type": [
+ "string"
+ ]
+ },
+ "middleName": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobilePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "numberOfEmployees": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ownerId": {
+ "type": [
+ "string"
+ ]
+ },
+ "partnerAccountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "photoUrl": {
+ "type": [
+ "string"
+ ]
+ },
+ "rating": {
+ "type": [
+ "string"
+ ]
+ },
+ "recordTypeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "salutation": {
+ "type": [
+ "string"
+ ]
+ },
+ "scoreIntelligenceId": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "stateCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "street": {
+ "type": [
+ "string"
+ ]
+ },
+ "suffix": {
+ "type": [
+ "string"
+ ]
+ },
+ "systemModStamp": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "website": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/salesforce/v2/json/opportunity.json b/_data/taps/schemas/salesforce/v2/json/opportunity.json
new file mode 100644
index 000000000..d28ea5d05
--- /dev/null
+++ b/_data/taps/schemas/salesforce/v2/json/opportunity.json
@@ -0,0 +1,204 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "campaignId": {
+ "type": [
+ "string"
+ ]
+ },
+ "closeDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "connectionReceivedId": {
+ "type": [
+ "string"
+ ]
+ },
+ "connectionSentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "currencyIsoCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "expectedRevenue": {
+ "type": [
+ "number"
+ ]
+ },
+ "fiscal": {
+ "type": [
+ "string"
+ ]
+ },
+ "fiscalQuarter": {
+ "type": [
+ "integer"
+ ]
+ },
+ "fiscalYear": {
+ "type": [
+ "integer"
+ ]
+ },
+ "forecastCategory": {
+ "type": [
+ "string"
+ ]
+ },
+ "forecastCategoryName": {
+ "type": [
+ "string"
+ ]
+ },
+ "hasOpenActivity": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "hasOpportunityLineItem": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "hasOverdueTask": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "isClosed": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isDeleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isExcludedFromTerritory2Filter": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isSplit": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isWon": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "lastActivityDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastReferenceDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastViewedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "leadSource": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nextStep": {
+ "type": [
+ "string"
+ ]
+ },
+ "ownerId": {
+ "type": [
+ "string"
+ ]
+ },
+ "pricebook2Id": {
+ "type": [
+ "string"
+ ]
+ },
+ "pricebookId": {
+ "type": [
+ "string"
+ ]
+ },
+ "probability": {
+ "type": [
+ "integer"
+ ]
+ },
+ "recordTypeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "stageName": {
+ "type": [
+ "string"
+ ]
+ },
+ "syncedQuoteId": {
+ "type": [
+ "string"
+ ]
+ },
+ "systemModStamp": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "territory2Id": {
+ "type": [
+ "string"
+ ]
+ },
+ "totalOpportunityQuantity": {
+ "type": [
+ "number"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/salesforce/v2/json/user.json b/_data/taps/schemas/salesforce/v2/json/user.json
new file mode 100644
index 000000000..217248372
--- /dev/null
+++ b/_data/taps/schemas/salesforce/v2/json/user.json
@@ -0,0 +1,744 @@
+{
+ "properties": {
+ "aboutMe": {
+ "type": [
+ "string"
+ ]
+ },
+ "accountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "address": {
+ "type": [
+ "string"
+ ]
+ },
+ "alias": {
+ "type": [
+ "string"
+ ]
+ },
+ "badgeText": {
+ "type": [
+ "string"
+ ]
+ },
+ "bannerPhotoUrl": {
+ "type": [
+ "string"
+ ]
+ },
+ "callCenterId": {
+ "type": [
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "communityNickname": {
+ "type": [
+ "string"
+ ]
+ },
+ "companyName": {
+ "type": [
+ "string"
+ ]
+ },
+ "contactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "countryCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "defaultCurrencyIsoCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "defaultDivision": {
+ "type": [
+ "string"
+ ]
+ },
+ "defaultGroupNotificationFrequency": {
+ "type": [
+ "string"
+ ]
+ },
+ "delegatedApproverId": {
+ "type": [
+ "string"
+ ]
+ },
+ "department": {
+ "type": [
+ "string"
+ ]
+ },
+ "digestFrequency": {
+ "type": [
+ "string"
+ ]
+ },
+ "division": {
+ "type": [
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "emailEncodingKey": {
+ "type": [
+ "string"
+ ]
+ },
+ "emailPreferencesAutoBcc": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "employeeNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "extension": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "federationIdentifier": {
+ "type": [
+ "string"
+ ]
+ },
+ "firstName": {
+ "type": [
+ "string"
+ ]
+ },
+ "forecastEnabled": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "fullPhotoUrl": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "isActive": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isPortalEnabled": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isPortalSelfRegistered": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isPrmSuperUser": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "isProfilePhotoActive": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "jigsawImportLimitOverride": {
+ "type": [
+ "integer"
+ ]
+ },
+ "languageLocaleKey": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastLoginDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastName": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastReferenceDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "lastViewedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "integer"
+ ]
+ },
+ "localeSidKey": {
+ "type": [
+ "string"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "integer"
+ ]
+ },
+ "manager": {
+ "type": [
+ "string"
+ ]
+ },
+ "managerId": {
+ "type": [
+ "string"
+ ]
+ },
+ "mediumBannerPhotoUrl": {
+ "type": [
+ "string"
+ ]
+ },
+ "middleName": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobilePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "offlineTrialExpirationDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "phone": {
+ "type": [
+ "string"
+ ]
+ },
+ "portalRole": {
+ "type": [
+ "string"
+ ]
+ },
+ "postalCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "profileId": {
+ "type": [
+ "string"
+ ]
+ },
+ "receivesAdminInfoEmails": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "receivesInfoEmails": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "senderEmail": {
+ "type": [
+ "string"
+ ]
+ },
+ "senderName": {
+ "type": [
+ "string"
+ ]
+ },
+ "signature": {
+ "type": [
+ "string"
+ ]
+ },
+ "smallBannerPhotoUrl": {
+ "type": [
+ "string"
+ ]
+ },
+ "smallPhotoUrl": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "stateCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "street": {
+ "type": [
+ "string"
+ ]
+ },
+ "suffix": {
+ "type": [
+ "string"
+ ]
+ },
+ "systemModStamp": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "timeZoneSidKey": {
+ "type": [
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "userPermissionsCallCenterAutoLogin": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPermissionsChatterAnswersUser": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPermissionsInteractionUser": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPermissionsJigsawProspectingUser": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPermissionsKnowledgeUser": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPermissionsLiveAgentUser": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPermissionsMarketingUser": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPermissionsMobileUser": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPermissionsOfflineUser": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPermissionsSFContentUser": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPermissionsSiteforceContributorUser": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPermissionsSiteforcePublisherUser": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPermissionsSupportUser": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPermissionsWorkDotComeUserFeature": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesAcitivityRemindersPopup": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesApexPagesDeveloperMode": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesContentEmailAsAndWhen": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesContentNoEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisCommentAfterLikeEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisMentionsCommentEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisProfPostCommentEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableAllFeedsEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableBookmarkEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableChangeCommentEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableEndorsementEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableFeedbackEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableFileShareNotificationsForApi": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableFollowersEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableLaterCommentEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableLikeEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableMentionsPostEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableMessageEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableProfilePostEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableRewardEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableSharePostEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesDisableWorkEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesEnableAutoSubForFeeds": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesEventRemindersCheckboxDefault": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesHideBiggerPhotoCallout": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesHideCSNDesktopTask": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesHideCSNGetChatterMobileTask": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesHideChatterOnboardingSplash": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesHideHideSecondChatterOnboardingSplash": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesHideS1BrowserUI": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesHideSfxWelcomeMat": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesJigsawListUser": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesLightningExperiencePreferred": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesPathAssistantCollapsed": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesReminderSoundOff": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowCityToExternalUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowCityToGuestUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowCountryToExternalUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowCountryToGuestUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowEmailToExternalUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowEmailToGuestUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowFaxToExternalUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowFaxToGuestUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowManagerToExternalUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowManagerToGuestUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowMobilePhoneToExternalUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowMobilePhoneToGuestUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowPostalCodeToExternalUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowPostalCodeToGuestUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowProfilePicToExternalUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowProfilePicToGuestUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowStateToExternalUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowStateToGuestUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowStreetAddressToExternalUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowStreetAddressToGuestUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowTitleToExternalUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowTitleToGuestUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowWorkPhoneToExternalUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesShowWorkPhoneToGuestUsers": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesSortFeedByComment": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userPreferencesTaskRemindersCheckboxDefault": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "userRoleId": {
+ "type": [
+ "string"
+ ]
+ },
+ "userType": {
+ "type": [
+ "string"
+ ]
+ },
+ "username": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/salesforce/v2/salesforce-v2-foreign-keys.yml b/_data/taps/schemas/salesforce/v2/salesforce-v2-foreign-keys.yml
new file mode 100644
index 000000000..7db0e4485
--- /dev/null
+++ b/_data/taps/schemas/salesforce/v2/salesforce-v2-foreign-keys.yml
@@ -0,0 +1,241 @@
+tap: salesforce
+version: '2'
+keys:
+ account_accountId:
+ - table: account
+ keys:
+ - id
+ - table: contact
+ keys:
+ - accountId
+ - table: lead
+ keys:
+ - convertedAccountId
+ - table: opportunity
+ keys:
+ - accountId
+ - table: user
+ keys:
+ - accountId
+ contact_contactId:
+ - table: contact
+ keys:
+ - id
+ - table: lead
+ keys:
+ - convertedContactId
+ - table: user
+ keys:
+ - contactId
+ lead_leadId:
+ - table: lead
+ keys:
+ - id
+ opportunity_opportunityId:
+ - table: lead
+ keys:
+ - convertedOpportunityId
+ - table: opportunity
+ keys:
+ - id
+ user_ownerId:
+ - table: account
+ keys:
+ - ownerId
+ - table: contact
+ keys:
+ - ownerId
+ - table: lead
+ keys:
+ - ownerId
+ - table: opportunity
+ keys:
+ - ownerId
+ - table: user
+ keys:
+ - id
+ - delegatedApproverId
+ - managerId
+ users_userRoleId:
+ - table: user
+ keys:
+ - userRoleId
+tables:
+- table-name: account
+ join:
+ - table-name: contact
+ keys:
+ - key: id
+ foreign-key: accountId
+ - key: ownerId
+ foreign-key: ownerId
+ - table-name: lead
+ keys:
+ - key: id
+ foreign-key: convertedAccountId
+ - key: ownerId
+ foreign-key: ownerId
+ - table-name: opportunity
+ keys:
+ - key: id
+ foreign-key: accountId
+ - key: ownerId
+ foreign-key: ownerId
+ - table-name: user
+ keys:
+ - key: id
+ foreign-key: accountId
+ - key: ownerId
+ foreign-key: id
+ - key: ownerId
+ foreign-key: delegatedApproverId
+ - key: ownerId
+ foreign-key: managerId
+- table-name: contact
+ join:
+ - table-name: account
+ keys:
+ - key: accountId
+ foreign-key: id
+ - key: ownerId
+ foreign-key: ownerId
+ - table-name: lead
+ keys:
+ - key: accountId
+ foreign-key: convertedAccountId
+ - key: id
+ foreign-key: convertedContactId
+ - key: ownerId
+ foreign-key: ownerId
+ - table-name: opportunity
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: ownerId
+ foreign-key: ownerId
+ - table-name: user
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: id
+ foreign-key: contactId
+ - key: ownerId
+ foreign-key: id
+ - key: ownerId
+ foreign-key: delegatedApproverId
+ - key: ownerId
+ foreign-key: managerId
+- table-name: lead
+ join:
+ - table-name: account
+ keys:
+ - key: convertedAccountId
+ foreign-key: id
+ - key: ownerId
+ foreign-key: ownerId
+ - table-name: contact
+ keys:
+ - key: convertedAccountId
+ foreign-key: accountId
+ - key: convertedContactId
+ foreign-key: id
+ - key: ownerId
+ foreign-key: ownerId
+ - table-name: opportunity
+ keys:
+ - key: convertedAccountId
+ foreign-key: accountId
+ - key: convertedOpportunityId
+ foreign-key: id
+ - key: ownerId
+ foreign-key: ownerId
+ - table-name: user
+ keys:
+ - key: convertedAccountId
+ foreign-key: accountId
+ - key: convertedContactId
+ foreign-key: contactId
+ - key: ownerId
+ foreign-key: id
+ - key: ownerId
+ foreign-key: delegatedApproverId
+ - key: ownerId
+ foreign-key: managerId
+- table-name: opportunity
+ join:
+ - table-name: account
+ keys:
+ - key: accountId
+ foreign-key: id
+ - key: ownerId
+ foreign-key: ownerId
+ - table-name: contact
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: ownerId
+ foreign-key: ownerId
+ - table-name: lead
+ keys:
+ - key: accountId
+ foreign-key: convertedAccountId
+ - key: id
+ foreign-key: convertedOpportunityId
+ - key: ownerId
+ foreign-key: ownerId
+ - table-name: user
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: ownerId
+ foreign-key: id
+ - key: ownerId
+ foreign-key: delegatedApproverId
+ - key: ownerId
+ foreign-key: managerId
+- table-name: user
+ join:
+ - table-name: account
+ keys:
+ - key: accountId
+ foreign-key: id
+ - key: id
+ foreign-key: ownerId
+ - key: delegatedApproverId
+ foreign-key: ownerId
+ - key: managerId
+ foreign-key: ownerId
+ - table-name: contact
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: contactId
+ foreign-key: id
+ - key: id
+ foreign-key: ownerId
+ - key: delegatedApproverId
+ foreign-key: ownerId
+ - key: managerId
+ foreign-key: ownerId
+ - table-name: lead
+ keys:
+ - key: accountId
+ foreign-key: convertedAccountId
+ - key: contactId
+ foreign-key: convertedContactId
+ - key: id
+ foreign-key: ownerId
+ - key: delegatedApproverId
+ foreign-key: ownerId
+ - key: managerId
+ foreign-key: ownerId
+ - table-name: opportunity
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: id
+ foreign-key: ownerId
+ - key: delegatedApproverId
+ foreign-key: ownerId
+ - key: managerId
+ foreign-key: ownerId
diff --git a/_data/taps/schemas/salesforce/v2/salesforce-v2-tables.yml b/_data/taps/schemas/salesforce/v2/salesforce-v2-tables.yml
new file mode 100644
index 000000000..40ae936cd
--- /dev/null
+++ b/_data/taps/schemas/salesforce/v2/salesforce-v2-tables.yml
@@ -0,0 +1,65 @@
+tap: salesforce
+version: '2'
+tap-repo-schemas: false
+tables:
+- name: account
+ description: 'The `{{ table.name }}` table contains info about the individual accounts
+ (organizations and persons) involved with your business. This could be a customer,
+ a competitor, a partner, and so on.
+
+ '
+ links:
+ doc-link: https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_account.htm#!
+ singer-schema: null
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: systemModStamp
+- name: contact
+ description: 'The `{{ table.name }}` table contains info about your contacts, who
+ are individuals associated with accounts in your {{ integration.display_name }}
+ instance.
+
+ '
+ links:
+ doc-link: https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_contact.htm
+ singer-schema: null
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: systemModStamp
+- name: lead
+ description: 'The `{{ table.name }}` table contains info about your leads, who are
+ prospects or potential Opportunities.
+
+ '
+ links:
+ doc-link: https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_lead.htm
+ singer-schema: null
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: systemModStamp
+- name: opportunity
+ description: 'The `{{ table.name }}` table contains info about your opportunities,
+ which are sales or pending deals.
+
+ '
+ links:
+ doc-link: https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_opportunity.htm
+ singer-schema: null
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: systemModStamp
+- name: user
+ description: 'The `user` table contains info about the users in your organization.
+
+ '
+ links:
+ doc-link: https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_user.htm
+ singer-schema: null
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: systemModStamp
diff --git a/_data/taps/schemas/selligent/v1/json/campaign.json b/_data/taps/schemas/selligent/v1/json/campaign.json
new file mode 100644
index 000000000..4480cfe17
--- /dev/null
+++ b/_data/taps/schemas/selligent/v1/json/campaign.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "asset_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "asset_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "modified_time": {
+ "type": [
+ "string"
+ ]
+ },
+ "version_number": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/selligent/v1/json/internal_datasource.json b/_data/taps/schemas/selligent/v1/json/internal_datasource.json
new file mode 100644
index 000000000..e9bca03b9
--- /dev/null
+++ b/_data/taps/schemas/selligent/v1/json/internal_datasource.json
@@ -0,0 +1,46 @@
+{
+ "properties": {
+ "asset_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "asset_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "cloud_sync": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "data_source_stat": {
+ "properties": {
+ "num_total_rec": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "modified_time": {
+ "type": [
+ "string"
+ ]
+ },
+ "version_number": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/selligent/v1/json/owner.json b/_data/taps/schemas/selligent/v1/json/owner.json
new file mode 100644
index 000000000..d20a3647c
--- /dev/null
+++ b/_data/taps/schemas/selligent/v1/json/owner.json
@@ -0,0 +1,24 @@
+{
+ "properties": {
+ "asset_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "modified_time": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/selligent/v1/json/program.json b/_data/taps/schemas/selligent/v1/json/program.json
new file mode 100644
index 000000000..46a0e667f
--- /dev/null
+++ b/_data/taps/schemas/selligent/v1/json/program.json
@@ -0,0 +1,34 @@
+{
+ "properties": {
+ "asset_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "asset_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "modified_time": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/selligent/v1/json/source.json b/_data/taps/schemas/selligent/v1/json/source.json
new file mode 100644
index 000000000..96e2c511c
--- /dev/null
+++ b/_data/taps/schemas/selligent/v1/json/source.json
@@ -0,0 +1,29 @@
+{
+ "properties": {
+ "asset_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "asset_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "data_source_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "modified_time": {
+ "type": [
+ "string"
+ ]
+ },
+ "version_number": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/selligent/v1/json/transactional_mailing.json b/_data/taps/schemas/selligent/v1/json/transactional_mailing.json
new file mode 100644
index 000000000..7f323612e
--- /dev/null
+++ b/_data/taps/schemas/selligent/v1/json/transactional_mailing.json
@@ -0,0 +1,71 @@
+{
+ "properties": {
+ "approved": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "asset_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "channel": {
+ "type": [
+ "string"
+ ]
+ },
+ "compliance": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "mailing_priority": {
+ "type": [
+ "string"
+ ]
+ },
+ "mailing_server_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "mailing_status": {
+ "type": [
+ "string"
+ ]
+ },
+ "modified_time": {
+ "type": [
+ "string"
+ ]
+ },
+ "target": {
+ "properties": {
+ "asset_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "asset_name": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "version_number": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/selligent/v1/selligent-v1-foreign-keys.yml b/_data/taps/schemas/selligent/v1/selligent-v1-foreign-keys.yml
new file mode 100644
index 000000000..7199e9857
--- /dev/null
+++ b/_data/taps/schemas/selligent/v1/selligent-v1-foreign-keys.yml
@@ -0,0 +1,155 @@
+tap: selligent
+version: '1'
+keys:
+ campaign_asset_id:
+ - table: campaign
+ keys:
+ - asset_id
+ - table: internal_datasource
+ keys:
+ - id
+ - table: owner
+ keys:
+ - asset_id
+ - table: source
+ keys:
+ - asset_id
+ - table: transactional_mailing
+ keys:
+ - id
+ - table: program
+ keys:
+ - id
+tables:
+- table-name: campaign
+ join:
+ - table-name: internal_datasource
+ keys:
+ - key: asset_id
+ foreign-key: id
+ - table-name: owner
+ keys:
+ - key: asset_id
+ foreign-key: asset_id
+ - table-name: source
+ keys:
+ - key: asset_id
+ foreign-key: asset_id
+ - table-name: transactional_mailing
+ keys:
+ - key: asset_id
+ foreign-key: id
+ - table-name: program
+ keys:
+ - key: asset_id
+ foreign-key: id
+- table-name: internal_datasource
+ join:
+ - table-name: campaign
+ keys:
+ - key: id
+ foreign-key: asset_id
+ - table-name: owner
+ keys:
+ - key: id
+ foreign-key: asset_id
+ - table-name: source
+ keys:
+ - key: id
+ foreign-key: asset_id
+ - table-name: transactional_mailing
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: program
+ keys:
+ - key: id
+ foreign-key: id
+- table-name: owner
+ join:
+ - table-name: campaign
+ keys:
+ - key: asset_id
+ foreign-key: asset_id
+ - table-name: internal_datasource
+ keys:
+ - key: asset_id
+ foreign-key: id
+ - table-name: source
+ keys:
+ - key: asset_id
+ foreign-key: asset_id
+ - table-name: transactional_mailing
+ keys:
+ - key: asset_id
+ foreign-key: id
+ - table-name: program
+ keys:
+ - key: asset_id
+ foreign-key: id
+- table-name: source
+ join:
+ - table-name: campaign
+ keys:
+ - key: asset_id
+ foreign-key: asset_id
+ - table-name: internal_datasource
+ keys:
+ - key: asset_id
+ foreign-key: id
+ - table-name: owner
+ keys:
+ - key: asset_id
+ foreign-key: asset_id
+ - table-name: transactional_mailing
+ keys:
+ - key: asset_id
+ foreign-key: id
+ - table-name: program
+ keys:
+ - key: asset_id
+ foreign-key: id
+- table-name: transactional_mailing
+ join:
+ - table-name: campaign
+ keys:
+ - key: id
+ foreign-key: asset_id
+ - table-name: internal_datasource
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: owner
+ keys:
+ - key: id
+ foreign-key: asset_id
+ - table-name: source
+ keys:
+ - key: id
+ foreign-key: asset_id
+ - table-name: program
+ keys:
+ - key: id
+ foreign-key: id
+- table-name: program
+ join:
+ - table-name: campaign
+ keys:
+ - key: id
+ foreign-key: asset_id
+ - table-name: internal_datasource
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: owner
+ keys:
+ - key: id
+ foreign-key: asset_id
+ - table-name: source
+ keys:
+ - key: id
+ foreign-key: asset_id
+ - table-name: transactional_mailing
+ keys:
+ - key: id
+ foreign-key: id
diff --git a/_data/taps/schemas/selligent/v1/selligent-v1-tables.yml b/_data/taps/schemas/selligent/v1/selligent-v1-tables.yml
new file mode 100644
index 000000000..b2e7fb366
--- /dev/null
+++ b/_data/taps/schemas/selligent/v1/selligent-v1-tables.yml
@@ -0,0 +1,46 @@
+tap: selligent
+version: '1'
+tap-repo-schemas: false
+tables:
+- name: campaign
+ description: This table contains campaign data.
+ links:
+ singer-schema: https://github.com/singer-io/tap-selligent/blob/master/tap_selligent/schemas.py
+ table-details:
+ replication-method: Full Table
+ primary-key: asset_id
+- name: internal_datasource
+ description: This table contains internal data source data.
+ links:
+ singer-schema: https://github.com/singer-io/tap-selligent/blob/master/tap_selligent/schemas.py
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: owner
+ description: This table contains owner data.
+ links:
+ singer-schema: https://github.com/singer-io/tap-selligent/blob/master/tap_selligent/schemas.py
+ table-details:
+ replication-method: Full Table
+ primary-key: asset_id
+- name: program
+ description: This table contains program data.
+ links:
+ singer-schema: https://github.com/singer-io/tap-selligent/blob/master/tap_selligent/schemas.py
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: source
+ description: This table contains source data.
+ links:
+ singer-schema: https://github.com/singer-io/tap-selligent/blob/master/tap_selligent/schemas.py
+ table-details:
+ replication-method: Full Table
+ primary-key: asset_id
+- name: transactional_mailing
+ description: This table contains transactional mailing data.
+ links:
+ singer-schema: https://github.com/singer-io/tap-selligent/blob/master/tap_selligent/schemas.py
+ table-details:
+ replication-method: Full Table
+ primary-key: id
diff --git a/_data/taps/schemas/sendgrid-core/v1/json/blocks.json b/_data/taps/schemas/sendgrid-core/v1/json/blocks.json
new file mode 100644
index 000000000..93c0d4392
--- /dev/null
+++ b/_data/taps/schemas/sendgrid-core/v1/json/blocks.json
@@ -0,0 +1,28 @@
+{
+ "properties": {
+ "created": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/sendgrid-core/v1/json/bounces.json b/_data/taps/schemas/sendgrid-core/v1/json/bounces.json
new file mode 100644
index 000000000..93c0d4392
--- /dev/null
+++ b/_data/taps/schemas/sendgrid-core/v1/json/bounces.json
@@ -0,0 +1,28 @@
+{
+ "properties": {
+ "created": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/sendgrid-core/v1/json/campaigns.json b/_data/taps/schemas/sendgrid-core/v1/json/campaigns.json
new file mode 100644
index 000000000..73de6dc91
--- /dev/null
+++ b/_data/taps/schemas/sendgrid-core/v1/json/campaigns.json
@@ -0,0 +1,82 @@
+{
+ "properties": {
+ "categories": {
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "custom_unsubscribe_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_content": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ip_pool": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "list_ids": {
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "plain_content": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "segment_ids": {
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "sender_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suppression_group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/sendgrid-core/v1/json/contacts.json b/_data/taps/schemas/sendgrid-core/v1/json/contacts.json
new file mode 100644
index 000000000..8b0a82d44
--- /dev/null
+++ b/_data/taps/schemas/sendgrid-core/v1/json/contacts.json
@@ -0,0 +1,65 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "custom_fields": {
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_clicked": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_emailed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_opened": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/sendgrid-core/v1/json/global_suppressions.json b/_data/taps/schemas/sendgrid-core/v1/json/global_suppressions.json
new file mode 100644
index 000000000..1ec61f914
--- /dev/null
+++ b/_data/taps/schemas/sendgrid-core/v1/json/global_suppressions.json
@@ -0,0 +1,16 @@
+{
+ "properties": {
+ "created": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/sendgrid-core/v1/json/groups_all.json b/_data/taps/schemas/sendgrid-core/v1/json/groups_all.json
new file mode 100644
index 000000000..16d658d95
--- /dev/null
+++ b/_data/taps/schemas/sendgrid-core/v1/json/groups_all.json
@@ -0,0 +1,40 @@
+{
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_email_sent_at": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unsubscribes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/sendgrid-core/v1/json/groups_members.json b/_data/taps/schemas/sendgrid-core/v1/json/groups_members.json
new file mode 100644
index 000000000..569c3d00d
--- /dev/null
+++ b/_data/taps/schemas/sendgrid-core/v1/json/groups_members.json
@@ -0,0 +1,15 @@
+{
+ "properties": {
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/sendgrid-core/v1/json/invalids.json b/_data/taps/schemas/sendgrid-core/v1/json/invalids.json
new file mode 100644
index 000000000..97eb58ee1
--- /dev/null
+++ b/_data/taps/schemas/sendgrid-core/v1/json/invalids.json
@@ -0,0 +1,22 @@
+{
+ "properties": {
+ "created": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/sendgrid-core/v1/json/lists_all.json b/_data/taps/schemas/sendgrid-core/v1/json/lists_all.json
new file mode 100644
index 000000000..790f1221d
--- /dev/null
+++ b/_data/taps/schemas/sendgrid-core/v1/json/lists_all.json
@@ -0,0 +1,22 @@
+{
+ "properties": {
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recipient_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/sendgrid-core/v1/json/lists_members.json b/_data/taps/schemas/sendgrid-core/v1/json/lists_members.json
new file mode 100644
index 000000000..95670a7e8
--- /dev/null
+++ b/_data/taps/schemas/sendgrid-core/v1/json/lists_members.json
@@ -0,0 +1,70 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "custom_fields": {
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_clicked": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_emailed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_opened": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "list_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/sendgrid-core/v1/json/segments_all.json b/_data/taps/schemas/sendgrid-core/v1/json/segments_all.json
new file mode 100644
index 000000000..5e53e74d3
--- /dev/null
+++ b/_data/taps/schemas/sendgrid-core/v1/json/segments_all.json
@@ -0,0 +1,28 @@
+{
+ "properties": {
+ "conditions": {
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recipient_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/sendgrid-core/v1/json/segments_members.json b/_data/taps/schemas/sendgrid-core/v1/json/segments_members.json
new file mode 100644
index 000000000..769e0c37b
--- /dev/null
+++ b/_data/taps/schemas/sendgrid-core/v1/json/segments_members.json
@@ -0,0 +1,69 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "custom_fields": {
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_clicked": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_emailed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_opened": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "segment_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/sendgrid-core/v1/json/spam_reports.json b/_data/taps/schemas/sendgrid-core/v1/json/spam_reports.json
new file mode 100644
index 000000000..6b7d5dcf0
--- /dev/null
+++ b/_data/taps/schemas/sendgrid-core/v1/json/spam_reports.json
@@ -0,0 +1,22 @@
+{
+ "properties": {
+ "created": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/sendgrid-core/v1/json/templates_all.json b/_data/taps/schemas/sendgrid-core/v1/json/templates_all.json
new file mode 100644
index 000000000..663be43a0
--- /dev/null
+++ b/_data/taps/schemas/sendgrid-core/v1/json/templates_all.json
@@ -0,0 +1,22 @@
+{
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "versions": {
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/sendgrid-core/v1/sendgrid-core-v1-foreign-keys.yml b/_data/taps/schemas/sendgrid-core/v1/sendgrid-core-v1-foreign-keys.yml
new file mode 100644
index 000000000..f98d3a173
--- /dev/null
+++ b/_data/taps/schemas/sendgrid-core/v1/sendgrid-core-v1-foreign-keys.yml
@@ -0,0 +1,359 @@
+tap: sendgrid-core
+version: '1'
+keys:
+ campaigns_id:
+ - table: campaigns
+ keys:
+ - id
+ contacts_id:
+ - table: contacts
+ keys:
+ - id
+ _email:
+ - table: blocks
+ keys:
+ - email
+ - table: bounces
+ keys:
+ - email
+ - table: contacts
+ keys:
+ - email
+ - table: groups_members
+ keys:
+ - email
+ - table: invalids
+ keys:
+ - email
+ - table: lists_members
+ keys:
+ - email
+ - table: segments_members
+ keys:
+ - email
+ - table: spam_reports
+ keys:
+ - email
+ lists_all_list_id:
+ - table: lists_all
+ keys:
+ - id
+ - table: campaigns
+ keys:
+ - list_ids
+ lists_members_id:
+ - table: lists_members
+ keys:
+ - id
+ segments_segment_id:
+ - table: segments_all
+ keys:
+ - id
+ - table: campaigns
+ keys:
+ - segment_ids
+ - table: segments_members
+ keys:
+ - segment_id
+ segments_members_id:
+ - table: segments_members
+ keys:
+ - id
+ groups_all_suppression_group_id:
+ - table: campaigns
+ keys:
+ - suppression_group_id
+ - table: groups_members
+ keys:
+ - group_id
+ templates_all_id:
+ - table: templates_all
+ keys:
+ - id
+tables:
+- table-name: campaigns
+ join:
+ - table-name: lists_all
+ keys:
+ - key: list_ids
+ foreign-key: id
+ - table-name: segments_all
+ keys:
+ - key: segment_ids
+ foreign-key: id
+ - table-name: segments_members
+ keys:
+ - key: segment_ids
+ foreign-key: segment_id
+ - table-name: groups_members
+ keys:
+ - key: suppression_group_id
+ foreign-key: group_id
+- table-name: contacts
+ join:
+ - table-name: blocks
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: bounces
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: groups_members
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: invalids
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: lists_members
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: segments_members
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: spam_reports
+ keys:
+ - key: email
+ foreign-key: email
+- table-name: blocks
+ join:
+ - table-name: bounces
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: contacts
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: groups_members
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: invalids
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: lists_members
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: segments_members
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: spam_reports
+ keys:
+ - key: email
+ foreign-key: email
+- table-name: bounces
+ join:
+ - table-name: blocks
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: contacts
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: groups_members
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: invalids
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: lists_members
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: segments_members
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: spam_reports
+ keys:
+ - key: email
+ foreign-key: email
+- table-name: groups_members
+ join:
+ - table-name: blocks
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: bounces
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: contacts
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: invalids
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: lists_members
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: segments_members
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: spam_reports
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: campaigns
+ keys:
+ - key: group_id
+ foreign-key: suppression_group_id
+- table-name: invalids
+ join:
+ - table-name: blocks
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: bounces
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: contacts
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: groups_members
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: lists_members
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: segments_members
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: spam_reports
+ keys:
+ - key: email
+ foreign-key: email
+- table-name: lists_members
+ join:
+ - table-name: blocks
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: bounces
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: contacts
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: groups_members
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: invalids
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: segments_members
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: spam_reports
+ keys:
+ - key: email
+ foreign-key: email
+- table-name: segments_members
+ join:
+ - table-name: blocks
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: bounces
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: contacts
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: groups_members
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: invalids
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: lists_members
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: spam_reports
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: segments_all
+ keys:
+ - key: segment_id
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: segment_id
+ foreign-key: segment_ids
+- table-name: spam_reports
+ join:
+ - table-name: blocks
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: bounces
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: contacts
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: groups_members
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: invalids
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: lists_members
+ keys:
+ - key: email
+ foreign-key: email
+ - table-name: segments_members
+ keys:
+ - key: email
+ foreign-key: email
+- table-name: lists_all
+ join:
+ - table-name: campaigns
+ keys:
+ - key: id
+ foreign-key: list_ids
+- table-name: segments_all
+ join:
+ - table-name: campaigns
+ keys:
+ - key: id
+ foreign-key: segment_ids
+ - table-name: segments_members
+ keys:
+ - key: id
+ foreign-key: segment_id
diff --git a/_data/taps/schemas/sendgrid-core/v1/sendgrid-core-v1-tables.yml b/_data/taps/schemas/sendgrid-core/v1/sendgrid-core-v1-tables.yml
new file mode 100644
index 000000000..2a0e5f490
--- /dev/null
+++ b/_data/taps/schemas/sendgrid-core/v1/sendgrid-core-v1-tables.yml
@@ -0,0 +1,139 @@
+tap: sendgrid-core
+version: '1'
+tables:
+- name: blocks
+ description: 'The `{{ table.name }}` table contains info about the email addresses
+ currently on your blocks list. There are several causes for blocked emails: A
+ mail server IP address being on an ISP blacklist, blocked by an ISP, or if the
+ receiving server flags the message content.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-sendgrid/blob/master/tap_sendgrid/schemas/blocks.json
+ api-method: https://sendgrid.com/docs/API_Reference/Web_API_v3/blocks.html#List-all-blocks-GET
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: email
+- name: bounces
+ description: 'The `{{ table.name }}` table contains info about bounced emails. A
+ bounced email is when the message is undeliverable and returned to the server
+ that sent it.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-sendgrid/blob/master/tap_sendgrid/schemas/bounces.json
+ api-method: https://sendgrid.com/docs/API_Reference/Web_API_v3/bounces.html#List-all-bounces-GET
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: email
+- name: contacts
+ description: 'The `{{ table.name }}` table contains info about the contacts in your
+ SendGrid account.
+
+
+ #### Contact custom fields
+
+
+ Stitch''s {{ integration.display_name }} integration will replicate any custom
+ fields associated with contact records.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-sendgrid/blob/master/tap_sendgrid/schemas/contacts.json
+ api-method: https://sendgrid.com/docs/API_Reference/Web_API_v3/Marketing_Campaigns/contactdb.html#Get-Recipients-Matching-Search-Criteria-GET
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: global_suppressions
+ description: 'The `{{ table.name }}` table contains info about global suppressions,
+ or global unsubscribes. Recipients who are globally suppressed will be removed
+ from any email you send.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-sendgrid/blob/master/tap_sendgrid/schemas/global_suppressions.json
+ api-method: https://sendgrid.com/docs/API_Reference/Web_API_v3/Suppression_Management/global_suppressions.html#-Global-Unsubscribes
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: email
+- name: groups_all
+ description: 'The `{{ table.name }}` table contains info about the groups in your
+ SendGrid account. Groups are specific types of email you want your recipients
+ to be able to unsubscribe from or subscribe to. For example: Newsletters, Invoices,
+ Alerts, etc.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-sendgrid/blob/master/tap_sendgrid/schemas/groups_all.json
+ api-method: https://sendgrid.com/docs/API_Reference/Web_API_v3/Suppression_Management/groups.html#-GET
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: groups_members
+ description: 'The `{{ table.name }}` table contains a list of `email` and `group_id`
+ pairs, allowing you to identify recipients and the groups they are members of.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-sendgrid/blob/master/tap_sendgrid/schemas/groups_members.json
+ api-method: https://sendgrid.com/docs/API_Reference/Web_API_v3/Suppression_Management/suppressions.html#-GET
+ table-details:
+ replication-method: Full Table
+ primary-key: email
+- name: campaigns
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-sendgrid/blob/master/tap_sendgrid/schemas/campaigns.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: invalids
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-sendgrid/blob/master/tap_sendgrid/schemas/invalids.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: email
+- name: lists_all
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-sendgrid/blob/master/tap_sendgrid/schemas/lists_all.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: lists_members
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-sendgrid/blob/master/tap_sendgrid/schemas/lists_members.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: segments_all
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-sendgrid/blob/master/tap_sendgrid/schemas/segments_all.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: segments_members
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-sendgrid/blob/master/tap_sendgrid/schemas/segments_members.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: spam_reports
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-sendgrid/blob/master/tap_sendgrid/schemas/spam_reports.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: email
+- name: templates_all
+ description: ''
+ links:
+ singer-schema: https://github.com/singer-io/tap-sendgrid/blob/master/tap_sendgrid/schemas/templates_all.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/shiphero/v1/json/orders.json b/_data/taps/schemas/shiphero/v1/json/orders.json
new file mode 100644
index 000000000..0aff67149
--- /dev/null
+++ b/_data/taps/schemas/shiphero/v1/json/orders.json
@@ -0,0 +1,715 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "adult_signature_required": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "alcohol": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "allocation_priority": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "allow_partial": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "allow_split": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "billing_address": {
+ "additionalProperties": false,
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expected_weight_in_oz": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "flagged": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fraudscore": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fraudscore_details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fulfillment_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gift_invoice": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "gift_note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_dry_ice": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "hold_shipment_until": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "holds": {
+ "additionalProperties": false,
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fraud": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "operator": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "payment": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shipping_method": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ignore_address_validation_errors": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "insurance": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "insurance_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "invoice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_items": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "backorder_quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "barcode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_barcode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_options": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customs_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eligible_for_return": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fulfillment_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "large_thumbnail": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locked_to_warehouse_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "option_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "partner_line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity_allocated": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity_pending_fulfillment": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity_shipped": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subtotal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thumbnail": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "warehouse": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "warehouse_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "lock_data": {
+ "properties": {},
+ "type": "object"
+ },
+ "order_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "order_history": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "information": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "order_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "packing_note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "partner_order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "priority_flag": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "profile": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "requested_delivery_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "require_signature": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "required_ship_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "saturday_delivery": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shipping_address": {
+ "additionalProperties": false,
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shipping_lines": {
+ "additionalProperties": false,
+ "properties": {
+ "carrier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shipping_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "shop_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subtotal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "third_party_shipper": {
+ "additionalProperties": false,
+ "properties": {
+ "account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "total_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_tax": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/shiphero/v1/json/products.json b/_data/taps/schemas/shiphero/v1/json/products.json
new file mode 100644
index 000000000..46123bcba
--- /dev/null
+++ b/_data/taps/schemas/shiphero/v1/json/products.json
@@ -0,0 +1,437 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "barcode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_of_manufacture": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "customs_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customs_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "do_not_count": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "dropship": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "final_sale": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ignore_on_customs": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ignore_on_invoice": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "images": {
+ "items": {
+ "properties": {
+ "sort": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "kit": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "kit_build": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "kit_components": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "length": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "no_air": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "product_note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reorder_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reorder_level": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reserve_inventory": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tariff_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thumbnail": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "value_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "virtual": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "warehouses": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "allocated": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "available": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "backorder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "customs_value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inventory_bin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inventory_overstock_bin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "on_hand": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "purchase_orders": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "expected_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "po_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity_received": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sell_ahead": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "sell_ahead": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "value_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "warehouse": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "warehouse_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "weight": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "weight_in_oz": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/shiphero/v1/json/shipments.json b/_data/taps/schemas/shiphero/v1/json/shipments.json
new file mode 100644
index 000000000..63164f743
--- /dev/null
+++ b/_data/taps/schemas/shiphero/v1/json/shipments.json
@@ -0,0 +1,637 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "carrier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "label_cost": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "length": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "line_items": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "partner_line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shipment_line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order": {
+ "additionalProperties": false,
+ "properties": {
+ "authorizations": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "authorized_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "card_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "postauthed_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "refunded_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "fulfillment_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "line_items": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "backorder_quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "barcode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_barcode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_options": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customs_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eligible_for_return": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fulfillment_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "large_thumbnail": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locked_to_warehouse_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "option_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "partner_line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_attributes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity_allocated": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity_pending_fulfillment": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity_shipped": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subtotal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thumbnail": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "warehouse": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "warehouse_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "note_attributes": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "order_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "order_history": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "information": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "order_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "partner_order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ready_to_ship": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shipping_address": {
+ "additionalProperties": false,
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shipping_lines": {
+ "additionalProperties": false,
+ "properties": {
+ "carrier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shop_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subtotal_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array",
+ "string"
+ ]
+ },
+ "total_discounts": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_tax": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipment_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipper_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipper_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "warehouse": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "weight": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/shiphero/v1/json/vendors.json b/_data/taps/schemas/shiphero/v1/json/vendors.json
new file mode 100644
index 000000000..34657c669
--- /dev/null
+++ b/_data/taps/schemas/shiphero/v1/json/vendors.json
@@ -0,0 +1,24 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vendor_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/shiphero/v1/shiphero-v1-foreign-keys.yml b/_data/taps/schemas/shiphero/v1/shiphero-v1-foreign-keys.yml
new file mode 100644
index 000000000..7fb33ac74
--- /dev/null
+++ b/_data/taps/schemas/shiphero/v1/shiphero-v1-foreign-keys.yml
@@ -0,0 +1,82 @@
+tap: shiphero
+version: '1'
+keys:
+ orders_order_id:
+ - table: orders
+ keys:
+ - id
+ - table: shipments
+ keys:
+ - order_id
+ - order.id
+ products_product_id:
+ - table: orders
+ keys:
+ - line_items.product_id
+ - table: products
+ keys:
+ - id
+ - table: shipments
+ keys:
+ - order.line_items.product_id
+ _warehouse_id:
+ - table: orders
+ keys:
+ - line_items.warehouse_id
+ - table: products
+ keys:
+ - warehouses.warehouse_id
+ - table: shipments
+ keys:
+ - order.line_items.warehouse_id
+tables:
+- table-name: orders
+ join:
+ - table-name: shipments
+ keys:
+ - key: id
+ foreign-key: order_id
+ - key: id
+ foreign-key: order.id
+ - key: line_items.product_id
+ foreign-key: order.line_items.product_id
+ - key: line_items.warehouse_id
+ foreign-key: order.line_items.warehouse_id
+ - table-name: products
+ keys:
+ - key: line_items.product_id
+ foreign-key: id
+ - key: line_items.warehouse_id
+ foreign-key: warehouses.warehouse_id
+- table-name: shipments
+ join:
+ - table-name: orders
+ keys:
+ - key: order_id
+ foreign-key: id
+ - key: order.id
+ foreign-key: id
+ - key: order.line_items.product_id
+ foreign-key: line_items.product_id
+ - key: order.line_items.warehouse_id
+ foreign-key: line_items.warehouse_id
+ - table-name: products
+ keys:
+ - key: order.line_items.product_id
+ foreign-key: id
+ - key: order.line_items.warehouse_id
+ foreign-key: warehouses.warehouse_id
+- table-name: products
+ join:
+ - table-name: orders
+ keys:
+ - key: id
+ foreign-key: line_items.product_id
+ - key: warehouses.warehouse_id
+ foreign-key: line_items.warehouse_id
+ - table-name: shipments
+ keys:
+ - key: id
+ foreign-key: order.line_items.product_id
+ - key: warehouses.warehouse_id
+ foreign-key: order.line_items.warehouse_id
diff --git a/_data/taps/schemas/shiphero/v1/shiphero-v1-tables.yml b/_data/taps/schemas/shiphero/v1/shiphero-v1-tables.yml
new file mode 100644
index 000000000..5238c60a1
--- /dev/null
+++ b/_data/taps/schemas/shiphero/v1/shiphero-v1-tables.yml
@@ -0,0 +1,49 @@
+tap: shiphero
+version: '1'
+tables:
+- name: orders
+ description: 'The `{{ table.name }}` table contains info about the orders in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-shiphero/blob/master/tap_shiphero/schemas/orders.json
+ api-method: https://shipheropublic.docs.apiary.io/#reference/orders/get-orders/get-orders
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: products
+ description: 'The `{{ table.name }}` table contains info about the products in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-shiphero/blob/master/tap_shiphero/schemas/products.json
+ api-method: https://shipheropublic.docs.apiary.io/#reference/products/get-product/get-product
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: shipments
+ description: 'The `{{ table.name }}` table contains info about the shipments in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-shiphero/blob/master/tap_shiphero/schemas/shipments.json
+ api-method: https://shipheropublic.docs.apiary.io/#reference/shipment/get-shipments/get-shipments
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: shipment_id
+- name: vendors
+ description: 'The `{{ table.name }}` table contains info about the vendors in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-shiphero/blob/master/tap_shiphero/schemas/vendors.json
+ api-method: https://shipheropublic.docs.apiary.io/#reference/vendors/list-vendors/list-vendors
+ table-details:
+ replication-method: Full Table
+ primary-key: vendor_id
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/shippo/v1/json/addresses.json b/_data/taps/schemas/shippo/v1/json/addresses.json
new file mode 100644
index 000000000..2a879882d
--- /dev/null
+++ b/_data/taps/schemas/shippo/v1/json/addresses.json
@@ -0,0 +1,88 @@
+{
+ "properties": {
+ "city": {
+ "type": "string"
+ },
+ "company": {
+ "type": "string"
+ },
+ "country": {
+ "type": "string"
+ },
+ "email": {
+ "type": "string"
+ },
+ "is_residential": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "messages": {
+ "items": {
+ "code": {
+ "type": "string"
+ },
+ "source": {
+ "type": "string"
+ },
+ "text": {
+ "type": "string"
+ }
+ },
+ "type": "array"
+ },
+ "metadata": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "object_created": {
+ "type": "date-time"
+ },
+ "object_id": {
+ "type": "string"
+ },
+ "object_owner": {
+ "type": "string"
+ },
+ "object_purpose": {
+ "type": "string"
+ },
+ "object_source": {
+ "type": "string"
+ },
+ "object_state": {
+ "type": "string"
+ },
+ "object_updated": {
+ "type": "date-time"
+ },
+ "phone": {
+ "type": "string"
+ },
+ "state": {
+ "type": "string"
+ },
+ "street1": {
+ "type": "string"
+ },
+ "street2": {
+ "type": "string"
+ },
+ "test": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "zip": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "object_id"
+ ],
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/shippo/v1/json/parcels.json b/_data/taps/schemas/shippo/v1/json/parcels.json
new file mode 100644
index 000000000..4572804ac
--- /dev/null
+++ b/_data/taps/schemas/shippo/v1/json/parcels.json
@@ -0,0 +1,60 @@
+{
+ "properties": {
+ "distance_unit": {
+ "type": "string"
+ },
+ "extra": {
+ "properties": {},
+ "type": "object"
+ },
+ "height": {
+ "type": "string"
+ },
+ "length": {
+ "type": "string"
+ },
+ "mass_unit": {
+ "type": "string"
+ },
+ "metadata": {
+ "type": "string"
+ },
+ "object_created": {
+ "type": "date-time"
+ },
+ "object_id": {
+ "type": "string"
+ },
+ "object_owner": {
+ "type": "string"
+ },
+ "object_state": {
+ "type": "string"
+ },
+ "object_updated": {
+ "type": "date-time"
+ },
+ "template": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "test": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "weight": {
+ "type": "string"
+ },
+ "width": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "object_id"
+ ],
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/shippo/v1/json/refunds.json b/_data/taps/schemas/shippo/v1/json/refunds.json
new file mode 100644
index 000000000..faeff2f9a
--- /dev/null
+++ b/_data/taps/schemas/shippo/v1/json/refunds.json
@@ -0,0 +1,32 @@
+{
+ "properties": {
+ "object_created": {
+ "type": "date-time"
+ },
+ "object_id": {
+ "type": "string"
+ },
+ "object_owner": {
+ "type": "string"
+ },
+ "object_status": {
+ "type": "string"
+ },
+ "object_updated": {
+ "type": "date-time"
+ },
+ "test": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "transaction": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "object_id"
+ ],
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/shippo/v1/json/shipments.json b/_data/taps/schemas/shippo/v1/json/shipments.json
new file mode 100644
index 000000000..41aa33316
--- /dev/null
+++ b/_data/taps/schemas/shippo/v1/json/shipments.json
@@ -0,0 +1,100 @@
+{
+ "properties": {
+ "carrier_accounts": {
+ "type": "array"
+ },
+ "customs_declaration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "extra": {
+ "type": "object"
+ },
+ "insurance_amount": {
+ "type": "string"
+ },
+ "insurance_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "messages": {
+ "items": {
+ "code": {
+ "type": "string"
+ },
+ "source": {
+ "type": "string"
+ },
+ "text": {
+ "type": "string"
+ }
+ },
+ "type": "array"
+ },
+ "metadata": {
+ "type": "string"
+ },
+ "object_created": {
+ "type": "date-time"
+ },
+ "object_from": {
+ "type": "string"
+ },
+ "object_id": {
+ "type": "string"
+ },
+ "object_owner": {
+ "type": "string"
+ },
+ "object_parcel": {
+ "type": "string"
+ },
+ "object_purpose": {
+ "type": "string"
+ },
+ "object_return": {
+ "type": "string"
+ },
+ "object_state": {
+ "type": "string"
+ },
+ "object_status": {
+ "type": "string"
+ },
+ "object_to": {
+ "type": "string"
+ },
+ "object_updated": {
+ "type": "date-time"
+ },
+ "rates_list": {
+ "type": "array"
+ },
+ "rates_url": {
+ "type": "string"
+ },
+ "reference1": {
+ "type": "string"
+ },
+ "reference2": {
+ "type": "string"
+ },
+ "submission_date": {
+ "type": "date-time"
+ },
+ "test": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "required": [
+ "object_id"
+ ],
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/shippo/v1/json/transactions.json b/_data/taps/schemas/shippo/v1/json/transactions.json
new file mode 100644
index 000000000..109c27cf8
--- /dev/null
+++ b/_data/taps/schemas/shippo/v1/json/transactions.json
@@ -0,0 +1,76 @@
+{
+ "properties": {
+ "commercial_invoice_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label_url": {
+ "type": "string"
+ },
+ "messages": {
+ "items": {
+ "code": {
+ "type": "string"
+ },
+ "source": {
+ "type": "string"
+ },
+ "text": {
+ "type": "string"
+ }
+ },
+ "type": "array"
+ },
+ "metadata": {
+ "type": "string"
+ },
+ "object_created": {
+ "type": "date-time"
+ },
+ "object_id": {
+ "type": "string"
+ },
+ "object_owner": {
+ "type": "string"
+ },
+ "object_state": {
+ "type": "string"
+ },
+ "object_status": {
+ "type": "string"
+ },
+ "object_updated": {
+ "type": "date-time"
+ },
+ "rate": {
+ "type": "string"
+ },
+ "test": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tracking_history": {
+ "type": "array"
+ },
+ "tracking_number": {
+ "type": "string"
+ },
+ "tracking_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_url_provider": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "object_id"
+ ],
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/shippo/v1/shippo-v1-foreign-keys.yml b/_data/taps/schemas/shippo/v1/shippo-v1-foreign-keys.yml
new file mode 100644
index 000000000..6ae5cd98b
--- /dev/null
+++ b/_data/taps/schemas/shippo/v1/shippo-v1-foreign-keys.yml
@@ -0,0 +1,77 @@
+tap: shippo
+version: '1'
+keys:
+ addresses_:
+ - table: addresses
+ keys:
+ - object_id
+ - table: shipments
+ keys:
+ - object_from
+ - object_to
+ - object_return
+ parcels_:
+ - table: parcels
+ keys:
+ - object_id
+ - table: shipments
+ keys:
+ - object_parcel
+ refunds_:
+ - table: refunds
+ keys:
+ - object_id
+ shipments_shipment:
+ - table: shipment
+ keys:
+ - shipment
+ transactions_transaction:
+ - table: refunds
+ keys:
+ - transaction
+ - table: transactions
+ keys:
+ - object_id
+tables:
+- table-name: addresses
+ join:
+ - table-name: shipments
+ keys:
+ - key: object_id
+ foreign-key: object_from
+ - key: object_id
+ foreign-key: object_to
+ - key: object_id
+ foreign-key: object_return
+- table-name: shipments
+ join:
+ - table-name: addresses
+ keys:
+ - key: object_from
+ foreign-key: object_id
+ - key: object_to
+ foreign-key: object_id
+ - key: object_return
+ foreign-key: object_id
+ - table-name: parcels
+ keys:
+ - key: object_parcel
+ foreign-key: object_id
+- table-name: parcels
+ join:
+ - table-name: shipments
+ keys:
+ - key: object_id
+ foreign-key: object_parcel
+- table-name: refunds
+ join:
+ - table-name: transactions
+ keys:
+ - key: transaction
+ foreign-key: object_id
+- table-name: transactions
+ join:
+ - table-name: refunds
+ keys:
+ - key: object_id
+ foreign-key: transaction
diff --git a/_data/taps/schemas/shippo/v1/shippo-v1-tables.yml b/_data/taps/schemas/shippo/v1/shippo-v1-tables.yml
new file mode 100644
index 000000000..a6ec1be25
--- /dev/null
+++ b/_data/taps/schemas/shippo/v1/shippo-v1-tables.yml
@@ -0,0 +1,74 @@
+tap: shippo
+version: '1'
+tap-repo-schemas: true
+tables:
+- name: addresses
+ description: 'The `{{ table.name }}` table contains info about address objects.
+ These are used to create shipments, obtain rates, and print labels.
+
+ '
+ links:
+ doc-link: https://goshippo.com/docs/reference#addresses
+ singer-schema: https://github.com/singer-io/tap-shippo/blob/master/tap_shippo/schemas/addresses.json
+ api-method: https://goshippo.com/docs/reference?version=2016-10-25
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: object_id
+ replication-key: object_updated
+- name: parcels
+ description: 'The `{{ table.name }}` table contains info about parcel objects. Parcels
+ are used to create shipments, obtain rates, and print labels.
+
+ '
+ links:
+ doc-link: https://goshippo.com/docs/reference#parcels
+ api-method: https://goshippo.com/docs/reference?version=2016-10-25#parcels-list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: object_id
+ replication-key: object_updated
+- name: refunds
+ description: 'The `{{ table.name }}` table contains info about refunds, which are
+ reimbursements for successfully created but **unused** transactions.
+
+
+ #### Refund processing time and data discrepancies
+
+
+ If the data in this table doesn''t look like you''d expect it to, keep in mind
+ that refunds can take up to 14 days to be processed.
+
+ '
+ links:
+ doc-link: https://goshippo.com/docs/reference#refunds
+ singer-schema: https://github.com/singer-io/tap-shippo/blob/master/tap_shippo/schemas/refunds.json
+ api-method: https://goshippo.com/docs/reference?version=2016-10-25#refunds-list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: object_id
+ replication-key: object_updated
+- name: shipments
+ description: 'The `{{ table.name }}` table contains info about shipment objects.
+ Shipment objects are made up of to and from addresses and the parcel to be shipped.
+
+ '
+ links:
+ doc-link: https://goshippo.com/docs/reference#shipments
+ singer-schema: https://github.com/singer-io/tap-shippo/blob/master/tap_shippo/schemas/shipments.json
+ api-method: https://goshippo.com/docs/reference?version=2016-10-25#shipments-list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: object_id
+ replication-key: object_updated
+- name: transactions
+ description: 'The `{{ table.name }}` table contains info about transactions, which
+ are the purchases of shipping labels from a shipping provider for a specific service.
+
+ '
+ links:
+ doc-link: https://goshippo.com/docs/reference#transactions
+ singer-schema: https://github.com/singer-io/tap-shippo/blob/master/tap_shippo/schemas/transactions.json
+ api-method: https://goshippo.com/docs/reference?version=2016-10-25#transactions-list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: object_id
diff --git a/_data/taps/schemas/shopify/v1/json/abandoned_checkouts.json b/_data/taps/schemas/shopify/v1/json/abandoned_checkouts.json
new file mode 100644
index 000000000..890e2566f
--- /dev/null
+++ b/_data/taps/schemas/shopify/v1/json/abandoned_checkouts.json
@@ -0,0 +1,1748 @@
+{
+ "properties": {
+ "abandoned_checkout_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_address": {
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "buyer_accepts_marketing": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "buyer_accepts_sms_marketing": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "cart_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "closed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "completed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "properties": {
+ "accepts_marketing": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "accepts_marketing_updated_at": {
+ "anyOf": [
+ {
+ "type": "date-time"
+ },
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "addresses": {
+ "items": {
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_address": {
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_marketing_consent": {
+ "properties": {
+ "consent_updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "opt_in_level": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_order_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_order_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "marketing_opt_in_level": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "multipass_identifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "orders_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sms_marketing_consent": {
+ "properties": {
+ "consent_collected_from": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "consent_updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "opt_in_level": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_exempt": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tax_exemptions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "total_spent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "verified_email": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customer_locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "device_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_codes": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "landing_site": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_items": {
+ "items": {
+ "patternProperties": {
+ ".+": {}
+ },
+ "properties": {
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "applied_discount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "applied_discounts": {
+ "items": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "compare_at_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "destination_location": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "legacy": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "localized_country_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "localized_province_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destination_location_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_allocations": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "amount_set": {},
+ "discount_application_index": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "duties": {},
+ "fulfillable_quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fulfillment_service": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fulfillment_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gift_card": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "grams": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "origin_location": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "legacy": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "localized_country_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "localized_province_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "origin_location_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pre_tax_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "pre_tax_price_set": {},
+ "price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "price_set": {},
+ "product_exists": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "properties": {
+ "anyOf": [
+ {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "requires_shipping": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_lines": {
+ "items": {
+ "patternProperties": {
+ ".+": {}
+ },
+ "properties": {
+ "channel_liable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "compare_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "price_set": {},
+ "rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_discount_set": {},
+ "variant_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "variant_inventory_management": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "variant_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vendor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note_attributes": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "presentment_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referring_site": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_address": {
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shipping_lines": {
+ "items": {
+ "properties": {
+ "api_client_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "applied_discounts": {
+ "items": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "carrier_identifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "carrier_service_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_tax_lines": {
+ "items": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "delivery_category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "markup": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "requested_fulfillment_service_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_lines": {
+ "items": {
+ "patternProperties": {
+ ".+": {}
+ },
+ "properties": {
+ "channel_liable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "compare_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "price_set": {},
+ "rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "validation_context": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "sms_marketing_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source_identifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subtotal_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_lines": {
+ "items": {
+ "patternProperties": {
+ ".+": {}
+ },
+ "properties": {
+ "channel_liable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "compare_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "price_set": {},
+ "rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "taxes_included": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_discounts": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_duties": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_line_items_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_weight": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/shopify/v1/json/collects.json b/_data/taps/schemas/shopify/v1/json/collects.json
new file mode 100644
index 000000000..863c5c319
--- /dev/null
+++ b/_data/taps/schemas/shopify/v1/json/collects.json
@@ -0,0 +1,47 @@
+{
+ "properties": {
+ "collection_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sort_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/shopify/v1/json/custom_collections.json b/_data/taps/schemas/shopify/v1/json/custom_collections.json
new file mode 100644
index 000000000..4b3cf9139
--- /dev/null
+++ b/_data/taps/schemas/shopify/v1/json/custom_collections.json
@@ -0,0 +1,103 @@
+{
+ "properties": {
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body_html": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "handle": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "image": {
+ "properties": {
+ "alt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "src": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "published_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "published_scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sort_order": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "template_suffix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/shopify/v1/json/customers.json b/_data/taps/schemas/shopify/v1/json/customers.json
new file mode 100644
index 000000000..b58a28f83
--- /dev/null
+++ b/_data/taps/schemas/shopify/v1/json/customers.json
@@ -0,0 +1,443 @@
+{
+ "properties": {
+ "accepts_marketing": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "accepts_marketing_updated_at": {
+ "anyOf": [
+ {
+ "type": "date-time"
+ },
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "addresses": {
+ "items": {
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_address": {
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_marketing_consent": {
+ "properties": {
+ "consent_updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "opt_in_level": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_order_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_order_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "marketing_opt_in_level": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "multipass_identifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "orders_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sms_marketing_consent": {
+ "properties": {
+ "consent_collected_from": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "consent_updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "opt_in_level": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_exempt": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tax_exemptions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "total_spent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "verified_email": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/shopify/v1/json/events.json b/_data/taps/schemas/shopify/v1/json/events.json
new file mode 100644
index 000000000..1cd75748a
--- /dev/null
+++ b/_data/taps/schemas/shopify/v1/json/events.json
@@ -0,0 +1,82 @@
+{
+ "properties": {
+ "arguments": {
+ "anyOf": [
+ {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ ]
+ },
+ "author": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subject_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verb": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/shopify/v1/json/inventory_items.json b/_data/taps/schemas/shopify/v1/json/inventory_items.json
new file mode 100644
index 000000000..6b89c2427
--- /dev/null
+++ b/_data/taps/schemas/shopify/v1/json/inventory_items.json
@@ -0,0 +1,97 @@
+{
+ "properties": {
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cost": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "country_code_of_origin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_harmonized_system_codes": {
+ "items": {
+ "properties": {
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "harmonized_system_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "harmonized_system_code": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "province_code_of_origin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "requires_shipping": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracked": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/shopify/v1/json/inventory_levels.json b/_data/taps/schemas/shopify/v1/json/inventory_levels.json
new file mode 100644
index 000000000..33e8978e6
--- /dev/null
+++ b/_data/taps/schemas/shopify/v1/json/inventory_levels.json
@@ -0,0 +1,35 @@
+{
+ "properties": {
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "available": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inventory_item_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/shopify/v1/json/locations.json b/_data/taps/schemas/shopify/v1/json/locations.json
new file mode 100644
index 000000000..7bfa3f6d1
--- /dev/null
+++ b/_data/taps/schemas/shopify/v1/json/locations.json
@@ -0,0 +1,122 @@
+{
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "legacy": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "localized_country_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "localized_province_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/shopify/v1/json/metafields.json b/_data/taps/schemas/shopify/v1/json/metafields.json
new file mode 100644
index 000000000..9961db73b
--- /dev/null
+++ b/_data/taps/schemas/shopify/v1/json/metafields.json
@@ -0,0 +1,80 @@
+{
+ "properties": {
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "namespace": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "owner_resource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "value": {
+ "properties": {},
+ "type": [
+ "null",
+ "integer",
+ "object",
+ "string"
+ ]
+ },
+ "value_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/shopify/v1/json/order_refunds.json b/_data/taps/schemas/shopify/v1/json/order_refunds.json
new file mode 100644
index 000000000..1677620aa
--- /dev/null
+++ b/_data/taps/schemas/shopify/v1/json/order_refunds.json
@@ -0,0 +1,955 @@
+{
+ "properties": {
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "duties": {},
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_adjustments": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "amount_set": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "kind": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_amount_set": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "processed_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_line_items": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "line_item": {
+ "patternProperties": {
+ ".+": {}
+ },
+ "properties": {
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_allocations": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount_set": {
+ "properties": {
+ "presentment_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shop_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "discount_application_index": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "fulfillable_quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fulfillment_service": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fulfillment_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gift_card": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "grams": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pre_tax_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pre_tax_price_set": {
+ "properties": {
+ "presentment_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shop_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price_set": {
+ "properties": {
+ "presentment_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shop_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "product_exists": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "properties": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "requires_shipping": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_lines": {
+ "items": {
+ "patternProperties": {
+ ".+": {}
+ },
+ "properties": {
+ "price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price_set": {
+ "properties": {
+ "presentment_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shop_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_discount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_discount_set": {
+ "properties": {
+ "presentment_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shop_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "variant_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "variant_inventory_management": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "variant_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vendor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "restock_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subtotal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "subtotal_set": {
+ "properties": {
+ "presentment_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shop_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_tax_set": {
+ "properties": {
+ "presentment_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shop_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "restock": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "transactions": {
+ "items": {
+ "properties": {
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "authorization": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "device_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "error_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "kind": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "payment_details": {
+ "properties": {
+ "acquirer_reference_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avs_result_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "credit_card_bin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "credit_card_company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "credit_card_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvv_result_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payments_refund_attributes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "processed_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "payments_refund_attributes": {
+ "properties": {
+ "acquirer_reference_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "processed_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt": {},
+ "source_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "test": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/shopify/v1/json/orders.json b/_data/taps/schemas/shopify/v1/json/orders.json
new file mode 100644
index 000000000..702a43fc8
--- /dev/null
+++ b/_data/taps/schemas/shopify/v1/json/orders.json
@@ -0,0 +1,3718 @@
+{
+ "properties": {
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "billing_address": {
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "browser_ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "buyer_accepts_marketing": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "cancel_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cancelled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cart_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "checkout_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "checkout_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "client_details": {
+ "properties": {
+ "accept_language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "browser_height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "browser_ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "browser_width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "session_hash": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_agent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "closed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "confirmed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "contact_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "current_subtotal_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "current_subtotal_price_set": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "current_total_additional_fees_set": {
+ "properties": {
+ "presentment_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shop_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "current_total_discounts": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "current_total_discounts_set": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "current_total_duties_set": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "current_total_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "current_total_price_set": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "current_total_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "current_total_tax_set": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customer": {
+ "properties": {
+ "accepts_marketing": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "accepts_marketing_updated_at": {
+ "anyOf": [
+ {
+ "type": "date-time"
+ },
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "addresses": {
+ "items": {
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_address": {
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_marketing_consent": {
+ "properties": {
+ "consent_updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "opt_in_level": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "marketing_opt_in_level": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "multipass_identifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sms_marketing_consent": {
+ "properties": {
+ "consent_collected_from": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "consent_updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "opt_in_level": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_exempt": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tax_exemptions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "verified_email": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customer_locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "device_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_applications": {
+ "items": {
+ "properties": {
+ "allocation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "target_selection": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "target_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "value_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "discount_codes": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "estimated_taxes": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "financial_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fulfillment_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fulfillments": {
+ "items": {
+ "properties": {
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "line_items": {
+ "items": {
+ "patternProperties": {
+ ".+": {}
+ },
+ "properties": {
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "applied_discount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "applied_discounts": {
+ "items": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "compare_at_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "destination_location": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "legacy": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "localized_country_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "localized_province_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destination_location_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_allocations": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "amount_set": {},
+ "discount_application_index": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "duties": {},
+ "fulfillable_quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fulfillment_service": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fulfillment_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gift_card": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "grams": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "origin_location": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "legacy": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "localized_country_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "localized_province_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "origin_location_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pre_tax_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "pre_tax_price_set": {},
+ "price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "price_set": {},
+ "product_exists": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "properties": {
+ "anyOf": [
+ {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "requires_shipping": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_lines": {
+ "items": {
+ "patternProperties": {
+ ".+": {}
+ },
+ "properties": {
+ "channel_liable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "compare_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "price_set": {},
+ "rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_discount_set": {},
+ "variant_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "variant_inventory_management": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "variant_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vendor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt": {
+ "properties": {
+ "authorization": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "testcase": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "service": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipment_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_numbers": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tracking_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_urls": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "landing_site": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "landing_site_ref": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_items": {
+ "items": {
+ "patternProperties": {
+ ".+": {}
+ },
+ "properties": {
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "applied_discount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "applied_discounts": {
+ "items": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "compare_at_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "destination_location": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "legacy": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "localized_country_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "localized_province_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destination_location_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_allocations": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "amount_set": {},
+ "discount_application_index": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "duties": {},
+ "fulfillable_quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fulfillment_service": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fulfillment_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gift_card": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "grams": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "origin_location": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "legacy": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "localized_country_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "localized_province_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "origin_location_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pre_tax_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "pre_tax_price_set": {},
+ "price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "price_set": {},
+ "product_exists": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "properties": {
+ "anyOf": [
+ {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "requires_shipping": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_lines": {
+ "items": {
+ "patternProperties": {
+ ".+": {}
+ },
+ "properties": {
+ "channel_liable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "compare_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "price_set": {},
+ "rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_discount_set": {},
+ "variant_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "variant_inventory_management": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "variant_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vendor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "merchant_of_record_app_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note_attributes": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "order_adjustments": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "amount_set": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "kind": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_amount_set": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "order_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "order_status_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_total_additional_fees_set": {
+ "properties": {
+ "presentment_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shop_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "original_total_duties_set": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "payment_gateway_names": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "payment_terms": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "due_in_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "payment_schedules": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "completed_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "due_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "expected_payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "issued_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "payment_terms_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_terms_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "presentment_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "processed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referring_site": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refunds": {
+ "items": {
+ "properties": {
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_adjustments": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "amount_set": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "kind": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_amount_set": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "processed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "refund_line_items": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "line_item": {
+ "patternProperties": {
+ ".+": {}
+ },
+ "properties": {
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "applied_discount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "applied_discounts": {
+ "items": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "compare_at_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "destination_location": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "legacy": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "localized_country_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "localized_province_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destination_location_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount_allocations": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "amount_set": {},
+ "discount_application_index": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "duties": {},
+ "fulfillable_quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fulfillment_service": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fulfillment_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gift_card": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "grams": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_price": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "origin_location": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "legacy": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "localized_country_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "localized_province_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "origin_location_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pre_tax_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "pre_tax_price_set": {},
+ "price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "price_set": {},
+ "product_exists": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "properties": {
+ "anyOf": [
+ {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "requires_shipping": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_lines": {
+ "items": {
+ "patternProperties": {
+ ".+": {}
+ },
+ "properties": {
+ "channel_liable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "compare_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "price_set": {},
+ "rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_discount_set": {},
+ "variant_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "variant_inventory_management": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "variant_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "vendor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "restock_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subtotal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "restock": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "shipping_address": {
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shipping_lines": {
+ "items": {
+ "properties": {
+ "carrier_identifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delivery_category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_allocations": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "discount_application_index": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "discounted_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "discounted_price_set": {},
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "price_set": {},
+ "requested_fulfillment_service_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_lines": {
+ "items": {
+ "patternProperties": {
+ ".+": {}
+ },
+ "properties": {
+ "channel_liable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "compare_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "price_set": {},
+ "rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "source_identifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subtotal_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "subtotal_price_set": {},
+ "tags": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_lines": {
+ "items": {
+ "patternProperties": {
+ ".+": {}
+ },
+ "properties": {
+ "channel_liable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "compare_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "price_set": {},
+ "rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "taxes_included": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "test": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_discounts": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_discounts_set": {},
+ "total_line_items_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_line_items_price_set": {},
+ "total_outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_price_set": {},
+ "total_shipping_price_set": {},
+ "total_tax": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_tax_set": {},
+ "total_tip_received": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_weight": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/shopify/v1/json/products.json b/_data/taps/schemas/shopify/v1/json/products.json
new file mode 100644
index 000000000..e802e672d
--- /dev/null
+++ b/_data/taps/schemas/shopify/v1/json/products.json
@@ -0,0 +1,469 @@
+{
+ "properties": {
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body_html": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "handle": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "image": {
+ "properties": {
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "alt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "src": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "variant_ids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "images": {
+ "items": {
+ "properties": {
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "alt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "src": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "variant_ids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "options": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "values": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "product_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "published_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "published_scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "template_suffix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "variants": {
+ "items": {
+ "properties": {
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "barcode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "compare_at_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "fulfillment_service": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "grams": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "image_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inventory_item_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inventory_management": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inventory_policy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inventory_quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "old_inventory_quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "option1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "option2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "option3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "requires_shipping": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "weight": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "weight_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "vendor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/shopify/v1/json/transactions.json b/_data/taps/schemas/shopify/v1/json/transactions.json
new file mode 100644
index 000000000..d654fc918
--- /dev/null
+++ b/_data/taps/schemas/shopify/v1/json/transactions.json
@@ -0,0 +1,284 @@
+{
+ "properties": {
+ "admin_graphql_api_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "authorization": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "device_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "error_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gateway": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "kind": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "payment_details": {
+ "properties": {
+ "avs_result_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "credit_card_bin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "credit_card_company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "credit_card_expiration_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "credit_card_expiration_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "credit_card_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "credit_card_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "credit_card_wallet": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvv_result_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "payment_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payments_refund_attributes": {
+ "properties": {
+ "acquirer_reference_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "processed_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt": {
+ "patternProperties": {
+ ".+": {}
+ },
+ "properties": {
+ "fee_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "gross_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "source_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "test": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "total_unsettled_set": {
+ "properties": {
+ "presentment_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shop_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/shopify/v1/shopify-v1-foreign-keys.yml b/_data/taps/schemas/shopify/v1/shopify-v1-foreign-keys.yml
new file mode 100644
index 000000000..8f9c907a6
--- /dev/null
+++ b/_data/taps/schemas/shopify/v1/shopify-v1-foreign-keys.yml
@@ -0,0 +1,354 @@
+tap: shopify
+version: '1'
+keys:
+ collects_collects_id:
+ - table: collects
+ keys:
+ - id
+ custom_collections_collection_id:
+ - table: collects
+ keys:
+ - collection_id
+ - table: custom_collections
+ keys:
+ - id
+ customers_customer_id:
+ - table: abandoned_checkouts
+ keys:
+ - customer.default_address.customer_id
+ - customer.id
+ - customer.addresses.customer_id
+ - table: customers
+ keys:
+ - id
+ - addresses.id
+ metafields_metafield_id:
+ - table: metafields
+ keys:
+ - id
+ orders_order_id:
+ - table: abandoned_checkouts
+ keys:
+ - customer.last_order_id
+ - table: customers
+ keys:
+ - last_order_id
+ - table: order_refunds
+ keys:
+ - order_id
+ - table: orders
+ keys:
+ - id
+ - refunds.order_adjustments.order_id
+ - table: transactions
+ keys:
+ - order_id
+ order_refunds_refund_id:
+ - table: order_refunds
+ keys:
+ - id
+ - table: orders
+ keys:
+ - refunds.id
+ - refunds.order_adjustments.refund_id
+ product_product_id:
+ - table: abandoned_checkouts
+ keys:
+ - line_items.product_id
+ - table: collects
+ keys:
+ - product_id
+ - table: order_refunds
+ keys:
+ - refund_line_items.line_item.product_id
+ - table: orders
+ keys:
+ - fulfillments.line_items.product_id
+ - refunds.refund_line_items.line_item.product_id
+ - line_items.product_id
+ - table: products
+ keys:
+ - id
+ - options.product_id
+ transactions_transaction_id:
+ - table: transactions
+ keys:
+ - id
+ - parent_id
+tables:
+- table-name: collects
+ join:
+ - table-name: custom_collections
+ keys:
+ - key: collection_id
+ foreign-key: id
+ - table-name: abandoned_checkouts
+ keys:
+ - key: product_id
+ foreign-key: line_items.product_id
+ - table-name: order_refunds
+ keys:
+ - key: product_id
+ foreign-key: refund_line_items.line_item.product_id
+ - table-name: orders
+ keys:
+ - key: product_id
+ foreign-key: fulfillments.line_items.product_id
+ - key: product_id
+ foreign-key: refunds.refund_line_items.line_item.product_id
+ - key: product_id
+ foreign-key: line_items.product_id
+ - table-name: products
+ keys:
+ - key: product_id
+ foreign-key: id
+ - key: product_id
+ foreign-key: options.product_id
+- table-name: custom_collections
+ join:
+ - table-name: collects
+ keys:
+ - key: id
+ foreign-key: collection_id
+- table-name: abandoned_checkouts
+ join:
+ - table-name: customers
+ keys:
+ - key: customer.default_address.customer_id
+ foreign-key: id
+ - key: customer.id
+ foreign-key: id
+ - key: customer.addresses.customer_id
+ foreign-key: id
+ - key: customer.default_address.customer_id
+ foreign-key: addresses.id
+ - key: customer.id
+ foreign-key: addresses.id
+ - key: customer.addresses.customer_id
+ foreign-key: addresses.id
+ - key: customer.last_order_id
+ foreign-key: last_order_id
+ - table-name: order_refunds
+ keys:
+ - key: customer.last_order_id
+ foreign-key: order_id
+ - key: line_items.product_id
+ foreign-key: refund_line_items.line_item.product_id
+ - table-name: orders
+ keys:
+ - key: customer.last_order_id
+ foreign-key: id
+ - key: customer.last_order_id
+ foreign-key: refunds.order_adjustments.order_id
+ - key: line_items.product_id
+ foreign-key: fulfillments.line_items.product_id
+ - key: line_items.product_id
+ foreign-key: refunds.refund_line_items.line_item.product_id
+ - key: line_items.product_id
+ foreign-key: line_items.product_id
+ - table-name: transactions
+ keys:
+ - key: customer.last_order_id
+ foreign-key: order_id
+ - table-name: collects
+ keys:
+ - key: line_items.product_id
+ foreign-key: product_id
+ - table-name: products
+ keys:
+ - key: line_items.product_id
+ foreign-key: id
+ - key: line_items.product_id
+ foreign-key: options.product_id
+- table-name: customers
+ join:
+ - table-name: abandoned_checkouts
+ keys:
+ - key: id
+ foreign-key: customer.default_address.customer_id
+ - key: addresses.id
+ foreign-key: customer.default_address.customer_id
+ - key: id
+ foreign-key: customer.id
+ - key: addresses.id
+ foreign-key: customer.id
+ - key: id
+ foreign-key: customer.addresses.customer_id
+ - key: addresses.id
+ foreign-key: customer.addresses.customer_id
+ - key: last_order_id
+ foreign-key: customer.last_order_id
+ - table-name: order_refunds
+ keys:
+ - key: last_order_id
+ foreign-key: order_id
+ - table-name: orders
+ keys:
+ - key: last_order_id
+ foreign-key: id
+ - key: last_order_id
+ foreign-key: refunds.order_adjustments.order_id
+ - table-name: transactions
+ keys:
+ - key: last_order_id
+ foreign-key: order_id
+- table-name: order_refunds
+ join:
+ - table-name: abandoned_checkouts
+ keys:
+ - key: order_id
+ foreign-key: customer.last_order_id
+ - key: refund_line_items.line_item.product_id
+ foreign-key: line_items.product_id
+ - table-name: customers
+ keys:
+ - key: order_id
+ foreign-key: last_order_id
+ - table-name: orders
+ keys:
+ - key: order_id
+ foreign-key: id
+ - key: order_id
+ foreign-key: refunds.order_adjustments.order_id
+ - key: id
+ foreign-key: refunds.id
+ - key: id
+ foreign-key: refunds.order_adjustments.refund_id
+ - key: refund_line_items.line_item.product_id
+ foreign-key: fulfillments.line_items.product_id
+ - key: refund_line_items.line_item.product_id
+ foreign-key: refunds.refund_line_items.line_item.product_id
+ - key: refund_line_items.line_item.product_id
+ foreign-key: line_items.product_id
+ - table-name: transactions
+ keys:
+ - key: order_id
+ foreign-key: order_id
+ - table-name: collects
+ keys:
+ - key: refund_line_items.line_item.product_id
+ foreign-key: product_id
+ - table-name: products
+ keys:
+ - key: refund_line_items.line_item.product_id
+ foreign-key: id
+ - key: refund_line_items.line_item.product_id
+ foreign-key: options.product_id
+- table-name: orders
+ join:
+ - table-name: abandoned_checkouts
+ keys:
+ - key: id
+ foreign-key: customer.last_order_id
+ - key: refunds.order_adjustments.order_id
+ foreign-key: customer.last_order_id
+ - key: fulfillments.line_items.product_id
+ foreign-key: line_items.product_id
+ - key: refunds.refund_line_items.line_item.product_id
+ foreign-key: line_items.product_id
+ - key: line_items.product_id
+ foreign-key: line_items.product_id
+ - table-name: customers
+ keys:
+ - key: id
+ foreign-key: last_order_id
+ - key: refunds.order_adjustments.order_id
+ foreign-key: last_order_id
+ - table-name: order_refunds
+ keys:
+ - key: id
+ foreign-key: order_id
+ - key: refunds.order_adjustments.order_id
+ foreign-key: order_id
+ - key: refunds.id
+ foreign-key: id
+ - key: refunds.order_adjustments.refund_id
+ foreign-key: id
+ - key: fulfillments.line_items.product_id
+ foreign-key: refund_line_items.line_item.product_id
+ - key: refunds.refund_line_items.line_item.product_id
+ foreign-key: refund_line_items.line_item.product_id
+ - key: line_items.product_id
+ foreign-key: refund_line_items.line_item.product_id
+ - table-name: transactions
+ keys:
+ - key: id
+ foreign-key: order_id
+ - key: refunds.order_adjustments.order_id
+ foreign-key: order_id
+ - table-name: collects
+ keys:
+ - key: fulfillments.line_items.product_id
+ foreign-key: product_id
+ - key: refunds.refund_line_items.line_item.product_id
+ foreign-key: product_id
+ - key: line_items.product_id
+ foreign-key: product_id
+ - table-name: products
+ keys:
+ - key: fulfillments.line_items.product_id
+ foreign-key: id
+ - key: refunds.refund_line_items.line_item.product_id
+ foreign-key: id
+ - key: line_items.product_id
+ foreign-key: id
+ - key: fulfillments.line_items.product_id
+ foreign-key: options.product_id
+ - key: refunds.refund_line_items.line_item.product_id
+ foreign-key: options.product_id
+ - key: line_items.product_id
+ foreign-key: options.product_id
+- table-name: transactions
+ join:
+ - table-name: abandoned_checkouts
+ keys:
+ - key: order_id
+ foreign-key: customer.last_order_id
+ - table-name: customers
+ keys:
+ - key: order_id
+ foreign-key: last_order_id
+ - table-name: order_refunds
+ keys:
+ - key: order_id
+ foreign-key: order_id
+ - table-name: orders
+ keys:
+ - key: order_id
+ foreign-key: id
+ - key: order_id
+ foreign-key: refunds.order_adjustments.order_id
+- table-name: products
+ join:
+ - table-name: abandoned_checkouts
+ keys:
+ - key: id
+ foreign-key: line_items.product_id
+ - key: options.product_id
+ foreign-key: line_items.product_id
+ - table-name: collects
+ keys:
+ - key: id
+ foreign-key: product_id
+ - key: options.product_id
+ foreign-key: product_id
+ - table-name: order_refunds
+ keys:
+ - key: id
+ foreign-key: refund_line_items.line_item.product_id
+ - key: options.product_id
+ foreign-key: refund_line_items.line_item.product_id
+ - table-name: orders
+ keys:
+ - key: id
+ foreign-key: fulfillments.line_items.product_id
+ - key: options.product_id
+ foreign-key: fulfillments.line_items.product_id
+ - key: id
+ foreign-key: refunds.refund_line_items.line_item.product_id
+ - key: options.product_id
+ foreign-key: refunds.refund_line_items.line_item.product_id
+ - key: id
+ foreign-key: line_items.product_id
+ - key: options.product_id
+ foreign-key: line_items.product_id
diff --git a/_data/taps/schemas/shopify/v1/shopify-v1-tables.yml b/_data/taps/schemas/shopify/v1/shopify-v1-tables.yml
new file mode 100644
index 000000000..78f12db95
--- /dev/null
+++ b/_data/taps/schemas/shopify/v1/shopify-v1-tables.yml
@@ -0,0 +1,205 @@
+tap: shopify
+version: '1'
+tables:
+- name: abandoned_checkouts
+ description: 'The `{{ table.name }}` table contains info about abandoned checkouts.
+ {{ integration.display_name }} considers a checkout to be abandoned when a customer
+ has entered billing and shipping details, but hasn''t completed the purchase.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/abandoned_checkouts.json
+ api-method: https://shopify.dev/docs/admin-api/rest/reference/orders/abandoned-checkouts?api[version]=2019-07
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: collects
+ description: 'The `{{ table.name }}` table contains info about collects, which are
+ used to manage relationships between products and custom collections. For every
+ product in a custom collection, there''s a collect that tracks the ID of both
+ the product and the custom collection.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/collects.json
+ api-method: https://shopify.dev/docs/admin-api/rest/reference/products/collect?api[version]=2019-07
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: customers
+ description: 'The `{{ table.name }}` table contains info about the shop''s customers.
+ This includes their contact details, order history, and email marketing preferences.
+
+
+ #### Customer metafield data
+
+
+ To replicate customer metafield data, you must set this table and the [`metafields`](#metafields)
+ table to replicate.
+
+ '
+ links:
+ doc-link: https://shopify.dev/docs/admin-api/rest/reference/customers
+ singer-schema: https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/customers.json
+ api-method: https://shopify.dev/docs/admin-api/rest/reference/customers/customer?api[version]=2019-07
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: custom_collections
+ description: 'The `{{ table.name }}` table contains info about custom collections.
+ A custom collection is a grouping of products that a merchant creates to make
+ their store easier to browse.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/custom_collections.json
+ api-method: https://shopify.dev/docs/admin-api/rest/reference/products/customcollection?api[version]=2019-07
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: events
+ description: 'The `{{ table.name }}` table contains info about events in the shop.
+
+ '
+ links:
+ doc-link: https://shopify.dev/api/admin-rest/2022-01/resources/event#top
+ singer-schema: https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/events.json
+ api-method: https://shopify.dev/api/admin-rest/2022-01/resources/event#get-events
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created_at
+- name: inventory_items
+ description: 'The `{{ table.name }}` table contains info about items in a shop.
+
+ '
+ links:
+ doc-link: https://shopify.dev/api/admin-rest/2022-01/resources/inventoryitem#top
+ singer-schema: https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/inventory_items.json
+ api-method: https://shopify.dev/api/admin-rest/2022-01/resources/inventoryitem#get-inventory-items
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: inventory_levels
+ description: 'The `{{ table.name }}` table contains info about quantities of an
+ inventory item for a location.
+
+ '
+ links:
+ doc-link: https://shopify.dev/api/admin-rest/2022-01/resources/inventorylevel#top
+ singer-schema: https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/inventory_levels.json
+ api-method: https://shopify.dev/api/admin-rest/2022-01/resources/inventorylevel#get-inventory-levels
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - inventory_item_id
+ - location_id
+ replication-key: updated_at
+- name: locations
+ description: 'The `{{ table.name }}` table contains info about .
+
+ '
+ links:
+ doc-link: https://shopify.dev/api/admin-rest/2022-01/resources/location#top
+ singer-schema: https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/locations.json
+ api-method: https://shopify.dev/api/admin-rest/2022-01/resources/location#get-locations
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: metafields
+ description: 'The `{{ table.name }}` table contains info about resource metafields.
+ These are arbitrary fields used to store additional information about resources.
+
+
+ #### Metafield replication and resource types {#metafield-replication-and-resources}
+
+
+ **By default, this table will include only shop-level metafield data**. To replicate
+ the metafields for a given resource type, this table and the table for the resource
+ must be set to replicate.
+
+
+ For example: To replicate metafield data for Orders, the `orders` table must also
+ be set to replicate.
+
+
+ Metafield data is available for [`customers`](#customers), [`products`](#products),
+ and [`orders`](#orders).
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/metafields.json
+ api-method: https://shopify.dev/docs/admin-api/rest/reference/metafield?api[version]=2019-07
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: orders
+ description: 'The `{{ table.name }}` table contains info about a shop''s completed
+ orders.
+
+
+ #### Order metafield data
+
+
+ To replicate order metafield data, you must set this table and the [`metafields`](#metafields)
+ table to replicate.
+
+ '
+ links:
+ doc-link: https://shopify.dev/docs/admin-api/rest/reference/orders/
+ singer-schema: https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/orders.json
+ api-method: https://shopify.dev/docs/admin-api/rest/reference/orders/order?api[version]=2019-07
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: order_refunds
+ description: 'The `{{ table.name }}` table contains info about refunds associated
+ with orders.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/order_refunds.json
+ api-method: https://shopify.dev/docs/admin-api/rest/reference/orders/refund?api[version]=2019-07
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created_at
+- name: products
+ description: 'The `{{ table.name }}` table contains info about a shop''s products.
+
+
+ #### Product metafield data
+
+
+ To replicate product metafield data, you must set this table and the [`metafields`](#metafields)
+ table to replicate.
+
+ '
+ links:
+ doc-link: https://shopify.dev/docs/admin-api/rest/reference/products
+ singer-schema: https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/products.json
+ api-method: https://shopify.dev/docs/admin-api/rest/reference/products/product?api[version]=2019-07
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: transactions
+ description: 'The `{{ table.name }}` table contains info about transactions.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/transactions.json
+ api-method: https://shopify.dev/docs/admin-api/rest/reference/orders/transaction?api[version]=2019-07
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created_at
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/slack/v1/json/channel_members.json b/_data/taps/schemas/slack/v1/json/channel_members.json
new file mode 100644
index 000000000..31a920d79
--- /dev/null
+++ b/_data/taps/schemas/slack/v1/json/channel_members.json
@@ -0,0 +1,21 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "channel_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/slack/v1/json/channels.json b/_data/taps/schemas/slack/v1/json/channels.json
new file mode 100644
index 000000000..a213a5aea
--- /dev/null
+++ b/_data/taps/schemas/slack/v1/json/channels.json
@@ -0,0 +1,247 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "channel_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_channel": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_ext_shared": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_general": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_group": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_im": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_member": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_mpim": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_org_shared": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_pending_ext_shared": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_private": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_shared": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "members": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name_normalized": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "num_members": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "parent_conversation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pending_connected_team_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "pending_shared": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "previous_names": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "purpose": {
+ "properties": {
+ "creator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_set": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shared_team_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "topic": {
+ "properties": {
+ "creator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_set": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "unlinked": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/slack/v1/json/files.json b/_data/taps/schemas/slack/v1/json/files.json
new file mode 100644
index 000000000..6fc6165c5
--- /dev/null
+++ b/_data/taps/schemas/slack/v1/json/files.json
@@ -0,0 +1,443 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "channels": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "comments_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_delete": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "display_as_bot": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "editable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "editor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "filetype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "groups": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "has_rich_preview": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_exif_rotation": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ims": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "is_external": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_public": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_starred": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_tombstoned": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_editor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mimetype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "non_owner_editable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "num_stars": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "original_h": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "original_w": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "permalink": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "permalink_public": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinned_info": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "pinned_to": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "pretty_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preview": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "public_url_shared": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "source_team": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thumb_1024": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thumb_1024_h": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumb_1024_w": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumb_160": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thumb_360": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thumb_360_h": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumb_360_w": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumb_480": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thumb_480_h": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumb_480_w": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumb_64": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thumb_720": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thumb_720_h": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumb_720_w": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumb_80": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thumb_800": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thumb_800_h": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumb_800_w": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumb_960": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thumb_960_h": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumb_960_w": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumb_tiny": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url_private": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url_private_download": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_team": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/slack/v1/json/messages.json b/_data/taps/schemas/slack/v1/json/messages.json
new file mode 100644
index 000000000..ab71eeea9
--- /dev/null
+++ b/_data/taps/schemas/slack/v1/json/messages.json
@@ -0,0 +1,357 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "blocks": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "bot_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bot_profile": {
+ "additionalProperties": false,
+ "properties": {
+ "app_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "team_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "channel_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "client_msg_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_as_bot": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "file_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "file_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "icons": {
+ "additionalProperties": false,
+ "properties": {
+ "emoji": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "inviter": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_delayed_message": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_intro": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_starred": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_read": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "latest_reply": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "old_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "permalink": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinned_to": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "purpose": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reactions": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "users": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reply_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reply_users": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reply_users_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "source_team": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscribed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "subtype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "team": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thread_ts": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ts": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unread_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "upload": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "user": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_team": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/slack/v1/json/remote_files.json b/_data/taps/schemas/slack/v1/json/remote_files.json
new file mode 100644
index 000000000..6fc6165c5
--- /dev/null
+++ b/_data/taps/schemas/slack/v1/json/remote_files.json
@@ -0,0 +1,443 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "channels": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "comments_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_delete": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "display_as_bot": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "editable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "editor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "filetype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "groups": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "has_rich_preview": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_exif_rotation": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ims": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "is_external": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_public": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_starred": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_tombstoned": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_editor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mimetype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "non_owner_editable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "num_stars": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "original_h": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "original_w": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "permalink": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "permalink_public": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinned_info": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "pinned_to": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "pretty_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preview": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "public_url_shared": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "source_team": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thumb_1024": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thumb_1024_h": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumb_1024_w": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumb_160": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thumb_360": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thumb_360_h": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumb_360_w": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumb_480": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thumb_480_h": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumb_480_w": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumb_64": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thumb_720": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thumb_720_h": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumb_720_w": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumb_80": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thumb_800": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thumb_800_h": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumb_800_w": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumb_960": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thumb_960_h": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumb_960_w": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumb_tiny": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url_private": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url_private_download": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_team": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/slack/v1/json/teams.json b/_data/taps/schemas/slack/v1/json/teams.json
new file mode 100644
index 000000000..d7794095e
--- /dev/null
+++ b/_data/taps/schemas/slack/v1/json/teams.json
@@ -0,0 +1,198 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatar_base_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_create": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discoverable": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enterprise_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enterprise_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_compliance_export": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "icon": {
+ "properties": {
+ "image_102": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_132": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_230": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_34": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_44": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_68": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_88": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_assigned": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_enterprise": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "messages_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "msg_edit_window_mins": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "over_integrations_limit": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "over_storage_limit": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "plan": {
+ "enum": [
+ "",
+ "std",
+ "plus",
+ "compliance",
+ "enterprise"
+ ],
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/slack/v1/json/threads.json b/_data/taps/schemas/slack/v1/json/threads.json
new file mode 100644
index 000000000..4d475c1f5
--- /dev/null
+++ b/_data/taps/schemas/slack/v1/json/threads.json
@@ -0,0 +1,111 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "blocks": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "channel_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "client_msg_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latest_reply": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reply_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reply_users": {
+ "items": {
+ "type": "string"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reply_users_count": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "subscribed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "team": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thread_ts": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ts": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/slack/v1/json/user_groups.json b/_data/taps/schemas/slack/v1/json/user_groups.json
new file mode 100644
index 000000000..05553a8cd
--- /dev/null
+++ b/_data/taps/schemas/slack/v1/json/user_groups.json
@@ -0,0 +1,186 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_archived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_group": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_moved": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_mpim": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_open": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_pending_ext_shared": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_read_only": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_thread_only": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_read": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "members": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name_normalized": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "num_members": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "parent_group": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "priority": {
+ "type": "number"
+ },
+ "purpose": {
+ "additionalProperties": false,
+ "properties": {
+ "creator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_set": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "topic": {
+ "additionalProperties": false,
+ "properties": {
+ "creator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_set": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "unread_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unread_count_display": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/slack/v1/json/users.json b/_data/taps/schemas/slack/v1/json/users.json
new file mode 100644
index 000000000..80892b916
--- /dev/null
+++ b/_data/taps/schemas/slack/v1/json/users.json
@@ -0,0 +1,131 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "has_2fa": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_app_user": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_bot": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_owner": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_primary_owner": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_restricted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_ultra_restricted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "profile": {
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "real_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "team_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tz": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tz_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tz_offset": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/slack/v1/slack-v1-foreign-keys.yml b/_data/taps/schemas/slack/v1/slack-v1-foreign-keys.yml
new file mode 100644
index 000000000..18a37139a
--- /dev/null
+++ b/_data/taps/schemas/slack/v1/slack-v1-foreign-keys.yml
@@ -0,0 +1,976 @@
+tap: slack
+version: '1'
+keys:
+ channels_id:
+ - table: channels
+ keys:
+ - id
+ - table: channel_members
+ keys:
+ - channel_id
+ - table: files
+ keys:
+ - channels
+ - pinned_to
+ - table: messages
+ keys:
+ - channel_id
+ - pinned_to
+ - table: remote_files
+ keys:
+ - channels
+ - pinned_to
+ - table: threads
+ keys:
+ - channel_id
+ user_groups_id:
+ - table: files
+ keys:
+ - groups
+ - table: remote_files
+ keys:
+ - groups
+ - table: user_groups
+ keys:
+ - id
+ - parent_group
+ files_id:
+ - table: files
+ keys:
+ - id
+ - table: messages
+ keys:
+ - file_ids
+ teams_id:
+ - table: channels
+ keys:
+ - pending_connected_team_ids
+ - table: files
+ keys:
+ - source_team
+ - user_team
+ - table: messages
+ keys:
+ - bot_profile.team_id
+ - team
+ - source_team
+ - user_team
+ - table: remote_files
+ keys:
+ - source_team
+ - user_team
+ - table: teams
+ keys:
+ - id
+ - table: threads
+ keys:
+ - team
+ - table: users
+ keys:
+ - team_id
+ users_user:
+ - table: channel_members
+ keys:
+ - user_id
+ - table: channels
+ keys:
+ - creator
+ - members
+ - table: files
+ keys:
+ - user
+ - table: messages
+ keys:
+ - reply_users
+ - reactions.users
+ - user
+ - table: remote_files
+ keys:
+ - user
+ - table: threads
+ keys:
+ - user
+ - reply_users
+ - table: user_groups
+ keys:
+ - members
+ - purpose.creator
+ - topic.creator
+ - table: users
+ keys:
+ - id
+tables:
+- table-name: channels
+ join:
+ - table-name: channel_members
+ keys:
+ - key: id
+ foreign-key: channel_id
+ - key: creator
+ foreign-key: user_id
+ - key: members
+ foreign-key: user_id
+ - table-name: files
+ keys:
+ - key: id
+ foreign-key: channels
+ - key: id
+ foreign-key: pinned_to
+ - key: pending_connected_team_ids
+ foreign-key: source_team
+ - key: pending_connected_team_ids
+ foreign-key: user_team
+ - key: creator
+ foreign-key: user
+ - key: members
+ foreign-key: user
+ - table-name: messages
+ keys:
+ - key: id
+ foreign-key: channel_id
+ - key: id
+ foreign-key: pinned_to
+ - key: pending_connected_team_ids
+ foreign-key: bot_profile.team_id
+ - key: pending_connected_team_ids
+ foreign-key: team
+ - key: pending_connected_team_ids
+ foreign-key: source_team
+ - key: pending_connected_team_ids
+ foreign-key: user_team
+ - key: creator
+ foreign-key: reply_users
+ - key: members
+ foreign-key: reply_users
+ - key: creator
+ foreign-key: reactions.users
+ - key: members
+ foreign-key: reactions.users
+ - key: creator
+ foreign-key: user
+ - key: members
+ foreign-key: user
+ - table-name: remote_files
+ keys:
+ - key: id
+ foreign-key: channels
+ - key: id
+ foreign-key: pinned_to
+ - key: pending_connected_team_ids
+ foreign-key: source_team
+ - key: pending_connected_team_ids
+ foreign-key: user_team
+ - key: creator
+ foreign-key: user
+ - key: members
+ foreign-key: user
+ - table-name: threads
+ keys:
+ - key: id
+ foreign-key: channel_id
+ - key: pending_connected_team_ids
+ foreign-key: team
+ - key: creator
+ foreign-key: user
+ - key: members
+ foreign-key: user
+ - key: creator
+ foreign-key: reply_users
+ - key: members
+ foreign-key: reply_users
+ - table-name: teams
+ keys:
+ - key: pending_connected_team_ids
+ foreign-key: id
+ - table-name: users
+ keys:
+ - key: pending_connected_team_ids
+ foreign-key: team_id
+ - key: creator
+ foreign-key: id
+ - key: members
+ foreign-key: id
+ - table-name: user_groups
+ keys:
+ - key: creator
+ foreign-key: members
+ - key: members
+ foreign-key: members
+ - key: creator
+ foreign-key: purpose.creator
+ - key: members
+ foreign-key: purpose.creator
+ - key: creator
+ foreign-key: topic.creator
+ - key: members
+ foreign-key: topic.creator
+- table-name: channel_members
+ join:
+ - table-name: channels
+ keys:
+ - key: channel_id
+ foreign-key: id
+ - key: user_id
+ foreign-key: creator
+ - key: user_id
+ foreign-key: members
+ - table-name: files
+ keys:
+ - key: channel_id
+ foreign-key: channels
+ - key: channel_id
+ foreign-key: pinned_to
+ - key: user_id
+ foreign-key: user
+ - table-name: messages
+ keys:
+ - key: channel_id
+ foreign-key: channel_id
+ - key: channel_id
+ foreign-key: pinned_to
+ - key: user_id
+ foreign-key: reply_users
+ - key: user_id
+ foreign-key: reactions.users
+ - key: user_id
+ foreign-key: user
+ - table-name: remote_files
+ keys:
+ - key: channel_id
+ foreign-key: channels
+ - key: channel_id
+ foreign-key: pinned_to
+ - key: user_id
+ foreign-key: user
+ - table-name: threads
+ keys:
+ - key: channel_id
+ foreign-key: channel_id
+ - key: user_id
+ foreign-key: user
+ - key: user_id
+ foreign-key: reply_users
+ - table-name: user_groups
+ keys:
+ - key: user_id
+ foreign-key: members
+ - key: user_id
+ foreign-key: purpose.creator
+ - key: user_id
+ foreign-key: topic.creator
+ - table-name: users
+ keys:
+ - key: user_id
+ foreign-key: id
+- table-name: files
+ join:
+ - table-name: channels
+ keys:
+ - key: channels
+ foreign-key: id
+ - key: pinned_to
+ foreign-key: id
+ - key: source_team
+ foreign-key: pending_connected_team_ids
+ - key: user_team
+ foreign-key: pending_connected_team_ids
+ - key: user
+ foreign-key: creator
+ - key: user
+ foreign-key: members
+ - table-name: channel_members
+ keys:
+ - key: channels
+ foreign-key: channel_id
+ - key: pinned_to
+ foreign-key: channel_id
+ - key: user
+ foreign-key: user_id
+ - table-name: messages
+ keys:
+ - key: channels
+ foreign-key: channel_id
+ - key: pinned_to
+ foreign-key: channel_id
+ - key: channels
+ foreign-key: pinned_to
+ - key: pinned_to
+ foreign-key: pinned_to
+ - key: id
+ foreign-key: file_ids
+ - key: source_team
+ foreign-key: bot_profile.team_id
+ - key: user_team
+ foreign-key: bot_profile.team_id
+ - key: source_team
+ foreign-key: team
+ - key: user_team
+ foreign-key: team
+ - key: source_team
+ foreign-key: source_team
+ - key: user_team
+ foreign-key: source_team
+ - key: source_team
+ foreign-key: user_team
+ - key: user_team
+ foreign-key: user_team
+ - key: user
+ foreign-key: reply_users
+ - key: user
+ foreign-key: reactions.users
+ - key: user
+ foreign-key: user
+ - table-name: remote_files
+ keys:
+ - key: channels
+ foreign-key: channels
+ - key: pinned_to
+ foreign-key: channels
+ - key: channels
+ foreign-key: pinned_to
+ - key: pinned_to
+ foreign-key: pinned_to
+ - key: groups
+ foreign-key: groups
+ - key: source_team
+ foreign-key: source_team
+ - key: user_team
+ foreign-key: source_team
+ - key: source_team
+ foreign-key: user_team
+ - key: user_team
+ foreign-key: user_team
+ - key: user
+ foreign-key: user
+ - table-name: threads
+ keys:
+ - key: channels
+ foreign-key: channel_id
+ - key: pinned_to
+ foreign-key: channel_id
+ - key: source_team
+ foreign-key: team
+ - key: user_team
+ foreign-key: team
+ - key: user
+ foreign-key: user
+ - key: user
+ foreign-key: reply_users
+ - table-name: user_groups
+ keys:
+ - key: groups
+ foreign-key: id
+ - key: groups
+ foreign-key: parent_group
+ - key: user
+ foreign-key: members
+ - key: user
+ foreign-key: purpose.creator
+ - key: user
+ foreign-key: topic.creator
+ - table-name: teams
+ keys:
+ - key: source_team
+ foreign-key: id
+ - key: user_team
+ foreign-key: id
+ - table-name: users
+ keys:
+ - key: source_team
+ foreign-key: team_id
+ - key: user_team
+ foreign-key: team_id
+ - key: user
+ foreign-key: id
+- table-name: messages
+ join:
+ - table-name: channels
+ keys:
+ - key: channel_id
+ foreign-key: id
+ - key: pinned_to
+ foreign-key: id
+ - key: bot_profile.team_id
+ foreign-key: pending_connected_team_ids
+ - key: team
+ foreign-key: pending_connected_team_ids
+ - key: source_team
+ foreign-key: pending_connected_team_ids
+ - key: user_team
+ foreign-key: pending_connected_team_ids
+ - key: reply_users
+ foreign-key: creator
+ - key: reactions.users
+ foreign-key: creator
+ - key: user
+ foreign-key: creator
+ - key: reply_users
+ foreign-key: members
+ - key: reactions.users
+ foreign-key: members
+ - key: user
+ foreign-key: members
+ - table-name: channel_members
+ keys:
+ - key: channel_id
+ foreign-key: channel_id
+ - key: pinned_to
+ foreign-key: channel_id
+ - key: reply_users
+ foreign-key: user_id
+ - key: reactions.users
+ foreign-key: user_id
+ - key: user
+ foreign-key: user_id
+ - table-name: files
+ keys:
+ - key: channel_id
+ foreign-key: channels
+ - key: pinned_to
+ foreign-key: channels
+ - key: channel_id
+ foreign-key: pinned_to
+ - key: pinned_to
+ foreign-key: pinned_to
+ - key: file_ids
+ foreign-key: id
+ - key: bot_profile.team_id
+ foreign-key: source_team
+ - key: team
+ foreign-key: source_team
+ - key: source_team
+ foreign-key: source_team
+ - key: user_team
+ foreign-key: source_team
+ - key: bot_profile.team_id
+ foreign-key: user_team
+ - key: team
+ foreign-key: user_team
+ - key: source_team
+ foreign-key: user_team
+ - key: user_team
+ foreign-key: user_team
+ - key: reply_users
+ foreign-key: user
+ - key: reactions.users
+ foreign-key: user
+ - key: user
+ foreign-key: user
+ - table-name: remote_files
+ keys:
+ - key: channel_id
+ foreign-key: channels
+ - key: pinned_to
+ foreign-key: channels
+ - key: channel_id
+ foreign-key: pinned_to
+ - key: pinned_to
+ foreign-key: pinned_to
+ - key: bot_profile.team_id
+ foreign-key: source_team
+ - key: team
+ foreign-key: source_team
+ - key: source_team
+ foreign-key: source_team
+ - key: user_team
+ foreign-key: source_team
+ - key: bot_profile.team_id
+ foreign-key: user_team
+ - key: team
+ foreign-key: user_team
+ - key: source_team
+ foreign-key: user_team
+ - key: user_team
+ foreign-key: user_team
+ - key: reply_users
+ foreign-key: user
+ - key: reactions.users
+ foreign-key: user
+ - key: user
+ foreign-key: user
+ - table-name: threads
+ keys:
+ - key: channel_id
+ foreign-key: channel_id
+ - key: pinned_to
+ foreign-key: channel_id
+ - key: bot_profile.team_id
+ foreign-key: team
+ - key: team
+ foreign-key: team
+ - key: source_team
+ foreign-key: team
+ - key: user_team
+ foreign-key: team
+ - key: reply_users
+ foreign-key: user
+ - key: reactions.users
+ foreign-key: user
+ - key: user
+ foreign-key: user
+ - key: reply_users
+ foreign-key: reply_users
+ - key: reactions.users
+ foreign-key: reply_users
+ - key: user
+ foreign-key: reply_users
+ - table-name: teams
+ keys:
+ - key: bot_profile.team_id
+ foreign-key: id
+ - key: team
+ foreign-key: id
+ - key: source_team
+ foreign-key: id
+ - key: user_team
+ foreign-key: id
+ - table-name: users
+ keys:
+ - key: bot_profile.team_id
+ foreign-key: team_id
+ - key: team
+ foreign-key: team_id
+ - key: source_team
+ foreign-key: team_id
+ - key: user_team
+ foreign-key: team_id
+ - key: reply_users
+ foreign-key: id
+ - key: reactions.users
+ foreign-key: id
+ - key: user
+ foreign-key: id
+ - table-name: user_groups
+ keys:
+ - key: reply_users
+ foreign-key: members
+ - key: reactions.users
+ foreign-key: members
+ - key: user
+ foreign-key: members
+ - key: reply_users
+ foreign-key: purpose.creator
+ - key: reactions.users
+ foreign-key: purpose.creator
+ - key: user
+ foreign-key: purpose.creator
+ - key: reply_users
+ foreign-key: topic.creator
+ - key: reactions.users
+ foreign-key: topic.creator
+ - key: user
+ foreign-key: topic.creator
+- table-name: remote_files
+ join:
+ - table-name: channels
+ keys:
+ - key: channels
+ foreign-key: id
+ - key: pinned_to
+ foreign-key: id
+ - key: source_team
+ foreign-key: pending_connected_team_ids
+ - key: user_team
+ foreign-key: pending_connected_team_ids
+ - key: user
+ foreign-key: creator
+ - key: user
+ foreign-key: members
+ - table-name: channel_members
+ keys:
+ - key: channels
+ foreign-key: channel_id
+ - key: pinned_to
+ foreign-key: channel_id
+ - key: user
+ foreign-key: user_id
+ - table-name: files
+ keys:
+ - key: channels
+ foreign-key: channels
+ - key: pinned_to
+ foreign-key: channels
+ - key: channels
+ foreign-key: pinned_to
+ - key: pinned_to
+ foreign-key: pinned_to
+ - key: groups
+ foreign-key: groups
+ - key: source_team
+ foreign-key: source_team
+ - key: user_team
+ foreign-key: source_team
+ - key: source_team
+ foreign-key: user_team
+ - key: user_team
+ foreign-key: user_team
+ - key: user
+ foreign-key: user
+ - table-name: messages
+ keys:
+ - key: channels
+ foreign-key: channel_id
+ - key: pinned_to
+ foreign-key: channel_id
+ - key: channels
+ foreign-key: pinned_to
+ - key: pinned_to
+ foreign-key: pinned_to
+ - key: source_team
+ foreign-key: bot_profile.team_id
+ - key: user_team
+ foreign-key: bot_profile.team_id
+ - key: source_team
+ foreign-key: team
+ - key: user_team
+ foreign-key: team
+ - key: source_team
+ foreign-key: source_team
+ - key: user_team
+ foreign-key: source_team
+ - key: source_team
+ foreign-key: user_team
+ - key: user_team
+ foreign-key: user_team
+ - key: user
+ foreign-key: reply_users
+ - key: user
+ foreign-key: reactions.users
+ - key: user
+ foreign-key: user
+ - table-name: threads
+ keys:
+ - key: channels
+ foreign-key: channel_id
+ - key: pinned_to
+ foreign-key: channel_id
+ - key: source_team
+ foreign-key: team
+ - key: user_team
+ foreign-key: team
+ - key: user
+ foreign-key: user
+ - key: user
+ foreign-key: reply_users
+ - table-name: user_groups
+ keys:
+ - key: groups
+ foreign-key: id
+ - key: groups
+ foreign-key: parent_group
+ - key: user
+ foreign-key: members
+ - key: user
+ foreign-key: purpose.creator
+ - key: user
+ foreign-key: topic.creator
+ - table-name: teams
+ keys:
+ - key: source_team
+ foreign-key: id
+ - key: user_team
+ foreign-key: id
+ - table-name: users
+ keys:
+ - key: source_team
+ foreign-key: team_id
+ - key: user_team
+ foreign-key: team_id
+ - key: user
+ foreign-key: id
+- table-name: threads
+ join:
+ - table-name: channels
+ keys:
+ - key: channel_id
+ foreign-key: id
+ - key: team
+ foreign-key: pending_connected_team_ids
+ - key: user
+ foreign-key: creator
+ - key: reply_users
+ foreign-key: creator
+ - key: user
+ foreign-key: members
+ - key: reply_users
+ foreign-key: members
+ - table-name: channel_members
+ keys:
+ - key: channel_id
+ foreign-key: channel_id
+ - key: user
+ foreign-key: user_id
+ - key: reply_users
+ foreign-key: user_id
+ - table-name: files
+ keys:
+ - key: channel_id
+ foreign-key: channels
+ - key: channel_id
+ foreign-key: pinned_to
+ - key: team
+ foreign-key: source_team
+ - key: team
+ foreign-key: user_team
+ - key: user
+ foreign-key: user
+ - key: reply_users
+ foreign-key: user
+ - table-name: messages
+ keys:
+ - key: channel_id
+ foreign-key: channel_id
+ - key: channel_id
+ foreign-key: pinned_to
+ - key: team
+ foreign-key: bot_profile.team_id
+ - key: team
+ foreign-key: team
+ - key: team
+ foreign-key: source_team
+ - key: team
+ foreign-key: user_team
+ - key: user
+ foreign-key: reply_users
+ - key: reply_users
+ foreign-key: reply_users
+ - key: user
+ foreign-key: reactions.users
+ - key: reply_users
+ foreign-key: reactions.users
+ - key: user
+ foreign-key: user
+ - key: reply_users
+ foreign-key: user
+ - table-name: remote_files
+ keys:
+ - key: channel_id
+ foreign-key: channels
+ - key: channel_id
+ foreign-key: pinned_to
+ - key: team
+ foreign-key: source_team
+ - key: team
+ foreign-key: user_team
+ - key: user
+ foreign-key: user
+ - key: reply_users
+ foreign-key: user
+ - table-name: teams
+ keys:
+ - key: team
+ foreign-key: id
+ - table-name: users
+ keys:
+ - key: team
+ foreign-key: team_id
+ - key: user
+ foreign-key: id
+ - key: reply_users
+ foreign-key: id
+ - table-name: user_groups
+ keys:
+ - key: user
+ foreign-key: members
+ - key: reply_users
+ foreign-key: members
+ - key: user
+ foreign-key: purpose.creator
+ - key: reply_users
+ foreign-key: purpose.creator
+ - key: user
+ foreign-key: topic.creator
+ - key: reply_users
+ foreign-key: topic.creator
+- table-name: user_groups
+ join:
+ - table-name: files
+ keys:
+ - key: id
+ foreign-key: groups
+ - key: parent_group
+ foreign-key: groups
+ - key: members
+ foreign-key: user
+ - key: purpose.creator
+ foreign-key: user
+ - key: topic.creator
+ foreign-key: user
+ - table-name: remote_files
+ keys:
+ - key: id
+ foreign-key: groups
+ - key: parent_group
+ foreign-key: groups
+ - key: members
+ foreign-key: user
+ - key: purpose.creator
+ foreign-key: user
+ - key: topic.creator
+ foreign-key: user
+ - table-name: channel_members
+ keys:
+ - key: members
+ foreign-key: user_id
+ - key: purpose.creator
+ foreign-key: user_id
+ - key: topic.creator
+ foreign-key: user_id
+ - table-name: channels
+ keys:
+ - key: members
+ foreign-key: creator
+ - key: purpose.creator
+ foreign-key: creator
+ - key: topic.creator
+ foreign-key: creator
+ - key: members
+ foreign-key: members
+ - key: purpose.creator
+ foreign-key: members
+ - key: topic.creator
+ foreign-key: members
+ - table-name: messages
+ keys:
+ - key: members
+ foreign-key: reply_users
+ - key: purpose.creator
+ foreign-key: reply_users
+ - key: topic.creator
+ foreign-key: reply_users
+ - key: members
+ foreign-key: reactions.users
+ - key: purpose.creator
+ foreign-key: reactions.users
+ - key: topic.creator
+ foreign-key: reactions.users
+ - key: members
+ foreign-key: user
+ - key: purpose.creator
+ foreign-key: user
+ - key: topic.creator
+ foreign-key: user
+ - table-name: threads
+ keys:
+ - key: members
+ foreign-key: user
+ - key: purpose.creator
+ foreign-key: user
+ - key: topic.creator
+ foreign-key: user
+ - key: members
+ foreign-key: reply_users
+ - key: purpose.creator
+ foreign-key: reply_users
+ - key: topic.creator
+ foreign-key: reply_users
+ - table-name: users
+ keys:
+ - key: members
+ foreign-key: id
+ - key: purpose.creator
+ foreign-key: id
+ - key: topic.creator
+ foreign-key: id
+- table-name: teams
+ join:
+ - table-name: channels
+ keys:
+ - key: id
+ foreign-key: pending_connected_team_ids
+ - table-name: files
+ keys:
+ - key: id
+ foreign-key: source_team
+ - key: id
+ foreign-key: user_team
+ - table-name: messages
+ keys:
+ - key: id
+ foreign-key: bot_profile.team_id
+ - key: id
+ foreign-key: team
+ - key: id
+ foreign-key: source_team
+ - key: id
+ foreign-key: user_team
+ - table-name: remote_files
+ keys:
+ - key: id
+ foreign-key: source_team
+ - key: id
+ foreign-key: user_team
+ - table-name: threads
+ keys:
+ - key: id
+ foreign-key: team
+ - table-name: users
+ keys:
+ - key: id
+ foreign-key: team_id
+- table-name: users
+ join:
+ - table-name: channels
+ keys:
+ - key: team_id
+ foreign-key: pending_connected_team_ids
+ - key: id
+ foreign-key: creator
+ - key: id
+ foreign-key: members
+ - table-name: files
+ keys:
+ - key: team_id
+ foreign-key: source_team
+ - key: team_id
+ foreign-key: user_team
+ - key: id
+ foreign-key: user
+ - table-name: messages
+ keys:
+ - key: team_id
+ foreign-key: bot_profile.team_id
+ - key: team_id
+ foreign-key: team
+ - key: team_id
+ foreign-key: source_team
+ - key: team_id
+ foreign-key: user_team
+ - key: id
+ foreign-key: reply_users
+ - key: id
+ foreign-key: reactions.users
+ - key: id
+ foreign-key: user
+ - table-name: remote_files
+ keys:
+ - key: team_id
+ foreign-key: source_team
+ - key: team_id
+ foreign-key: user_team
+ - key: id
+ foreign-key: user
+ - table-name: teams
+ keys:
+ - key: team_id
+ foreign-key: id
+ - table-name: threads
+ keys:
+ - key: team_id
+ foreign-key: team
+ - key: id
+ foreign-key: user
+ - key: id
+ foreign-key: reply_users
+ - table-name: channel_members
+ keys:
+ - key: id
+ foreign-key: user_id
+ - table-name: user_groups
+ keys:
+ - key: id
+ foreign-key: members
+ - key: id
+ foreign-key: purpose.creator
+ - key: id
+ foreign-key: topic.creator
diff --git a/_data/taps/schemas/slack/v1/slack-v1-tables.yml b/_data/taps/schemas/slack/v1/slack-v1-tables.yml
new file mode 100644
index 000000000..b34d0a16c
--- /dev/null
+++ b/_data/taps/schemas/slack/v1/slack-v1-tables.yml
@@ -0,0 +1,128 @@
+tap: slack
+version: '1'
+tables:
+- name: channels
+ description: 'The `{{ table.name }}` table contains info about the channels in your
+ {{ integration.display_name }} workspace. This includes conversations, channels,
+ and direct messages.
+
+
+ **Note**: Some types of channels - for example, private or archived channels -
+ will be replicated only if the appropriate settings are configured in the integration''s
+ settings. Refer to the {{ integration.display_name }} [setup steps](#add-integration)
+ for more info.
+
+ '
+ links:
+ doc-link: https://api.slack.com/types/channel
+ singer-schema: https://github.com/singer-io/tap-slack/blob/master/tap_slack/schemas/channels.json
+ api-method: https://api.slack.com/methods/conversations.list
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: channel_members
+ description: 'The `{{ table.name }}` table contain info about members of channels
+ in your {{ integration.display_name }} workspace. Channels include conversations,
+ channels, and direct messages in your {{ integration.display_name }} workspace.
+
+ '
+ links:
+ doc-link: https://api.slack.com/docs/conversations-api
+ singer-schema: https://github.com/singer-io/tap-slack/blob/master/tap_slack/schemas/channel_members.json
+ api-method: https://api.slack.com/methods/conversations.members
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - channel_id
+ - user_id
+- name: files
+ description: 'The `{{ table.name }}` table contains info about {{ integration.display_name
+ }} team files.
+
+ '
+ links:
+ doc-link: https://api.slack.com/types/file
+ singer-schema: https://github.com/singer-io/tap-slack/blob/master/tap_slack/schemas/files.json
+ api-method: https://api.slack.com/methods/files.list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated
+- name: messages
+ description: 'The `{{ table.name }}` table contains the history of messages and
+ events in conversations in your {{ integration.display_name }} workspace.
+
+ '
+ links:
+ doc-link: https://api.slack.com/types/conversation
+ singer-schema: https://github.com/singer-io/tap-slack/blob/master/tap_slack/schemas/messages.json
+ api-method: https://api.slack.com/methods/conversations.history
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - channel_id
+ - ts
+ replication-key: ts
+- name: remote_files
+ description: 'The `{{ table.name }}` table contains info about remote files added
+ to {{ integration.display_name }}.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-slack/blob/master/tap_slack/schemas/remote_files.json
+ api-method: https://api.slack.com/methods/files.remote.list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated
+- name: teams
+ description: 'The `{{ table.name }}` table contains info about teams in your {{
+ integration.display_name }} workspace.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-slack/blob/master/tap_slack/schemas/teams.json
+ api-method: https://api.slack.com/methods/team.info
+ table-details:
+ replication-method: Full Table
+- name: threads
+ description: "The `{{ table.name }}` table contains info about conversation threads\
+ \ in your {{ integration.display_name }} team. \n\n**Note**: While this table\
+ \ uses Full Table, it's not truly replicated in full during each replication job.\
+ \ Each time a message in a thread is updated, the entire thread and all the messages\
+ \ it contains will be replicated in full. This means that while only updated threads\
+ \ are replicated, they are replicated in full whenever they're updated.\n"
+ links:
+ doc-link: https://api.slack.com/docs/conversations-api
+ singer-schema: https://github.com/singer-io/tap-slack/blob/master/tap_slack/schemas/threads.json
+ api-method: https://api.slack.com/methods/conversations.replies
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - channel_id
+ - thread_ts
+- name: users
+ description: 'The `{{ table.name }}` table lists contains info about the users in
+ your {{ integration.display_name }} team. This includes deactivated and deleted
+ users.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-slack/blob/master/tap_slack/schemas/users.json
+ api-method: https://api.slack.com/methods/users.list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated
+- name: user_groups
+ description: 'The `{{ table.name }}` table contains info about user groups from
+ your {{ integration.display_name }} team.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-slack/blob/master/tap_slack/schemas/user_groups.json
+ api-method: https://api.slack.com/methods/usergroups.list
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/ad_account_stats_daily.json b/_data/taps/schemas/snapchat-ads/v1/json/ad_account_stats_daily.json
new file mode 100644
index 000000000..052c53161
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/ad_account_stats_daily.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "end_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "finalized_data_end_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "granularity": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "spend": {
+ "type": [
+ "integer"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "swipe_up_attribution_window": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "view_attribution_window": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/ad_account_stats_hourly.json b/_data/taps/schemas/snapchat-ads/v1/json/ad_account_stats_hourly.json
new file mode 100644
index 000000000..052c53161
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/ad_account_stats_hourly.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "end_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "finalized_data_end_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "granularity": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "spend": {
+ "type": [
+ "integer"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "swipe_up_attribution_window": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "view_attribution_window": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/ad_accounts.json b/_data/taps/schemas/snapchat-ads/v1/json/ad_accounts.json
new file mode 100644
index 000000000..be11017ff
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/ad_accounts.json
@@ -0,0 +1,193 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "advertiser": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "advertiser_organization_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "agency_client_metadata": {
+ "additionalProperties": true,
+ "properties": {
+ "address_line_1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "administrative_district_level_1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zipcode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "agency_representing_client": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "client_based_in_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "client_paying_invoices": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding_source_ids": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lifetime_spend_cap_micro": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organization_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "paying_advertiser_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "regulations": {
+ "additionalProperties": true,
+ "properties": {
+ "restricted_delivery_signals": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/ad_squad_stats_daily.json b/_data/taps/schemas/snapchat-ads/v1/json/ad_squad_stats_daily.json
new file mode 100644
index 000000000..4402cadc3
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/ad_squad_stats_daily.json
@@ -0,0 +1,684 @@
+{
+ "properties": {
+ "android_installs": {
+ "type": [
+ "integer"
+ ]
+ },
+ "android_installs_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "android_installs_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_avg_view_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_frequency": {
+ "type": [
+ "number"
+ ]
+ },
+ "attachment_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_quartile_1": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_quartile_2": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_quartile_3": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_total_view_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_uniques": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_view_completion": {
+ "type": [
+ "integer"
+ ]
+ },
+ "avg_screen_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "avg_view_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_achievement_unlocked": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_achievement_unlocked_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_achievement_unlocked_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_click": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_click_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_click_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_view": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_view_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_view_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_billing": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_billing_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_billing_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_cart": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_cart_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_cart_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_to_wishlist": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_to_wishlist_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_to_wishlist_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_app_opens": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_app_opens_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_app_opens_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_complete_tutorial": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_complete_tutorial_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_complete_tutorial_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_invite": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_invite_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_invite_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_level_completes": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_level_completes_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_level_completes_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_list_view": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_list_view_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_list_view_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_login": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_login_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_login_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_page_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_page_views_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_page_views_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_value": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_value_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_value_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_rate": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_rate_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_rate_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_reserve": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_reserve_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_reserve_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_save": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_save_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_save_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_searches": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_searches_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_searches_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_share": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_share_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_share_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_sign_ups": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_sign_ups_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_sign_ups_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_spend_credits": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_spend_credits_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_spend_credits_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_checkout": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_checkout_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_checkout_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_trial": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_trial_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_trial_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_subscribe": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_subscribe_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_subscribe_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_view_content": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_view_content_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_view_content_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_1": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_1_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_1_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_2": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_2_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_2_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_3": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_3_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_3_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_4": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_4_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_4_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_5": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_5_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_5_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "end_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "finalized_data_end_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "frequency": {
+ "type": [
+ "number"
+ ]
+ },
+ "granularity": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ios_installs": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ios_installs_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ios_installs_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quartile_1": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quartile_2": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quartile_3": {
+ "type": [
+ "integer"
+ ]
+ },
+ "screen_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "spend": {
+ "type": [
+ "integer"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "swipe_up_attribution_window": {
+ "type": [
+ "string"
+ ]
+ },
+ "swipe_up_percent": {
+ "type": [
+ "integer"
+ ]
+ },
+ "swipes": {
+ "type": [
+ "integer"
+ ]
+ },
+ "total_installs": {
+ "type": [
+ "integer"
+ ]
+ },
+ "total_installs_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "total_installs_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "uniques": {
+ "type": [
+ "integer"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "video_views_15s": {
+ "type": [
+ "integer"
+ ]
+ },
+ "video_views_time_based": {
+ "type": [
+ "integer"
+ ]
+ },
+ "view_attribution_window": {
+ "type": [
+ "string"
+ ]
+ },
+ "view_completion": {
+ "type": [
+ "integer"
+ ]
+ },
+ "view_time_millis": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/ad_squad_stats_hourly.json b/_data/taps/schemas/snapchat-ads/v1/json/ad_squad_stats_hourly.json
new file mode 100644
index 000000000..4402cadc3
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/ad_squad_stats_hourly.json
@@ -0,0 +1,684 @@
+{
+ "properties": {
+ "android_installs": {
+ "type": [
+ "integer"
+ ]
+ },
+ "android_installs_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "android_installs_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_avg_view_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_frequency": {
+ "type": [
+ "number"
+ ]
+ },
+ "attachment_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_quartile_1": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_quartile_2": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_quartile_3": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_total_view_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_uniques": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_view_completion": {
+ "type": [
+ "integer"
+ ]
+ },
+ "avg_screen_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "avg_view_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_achievement_unlocked": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_achievement_unlocked_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_achievement_unlocked_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_click": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_click_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_click_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_view": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_view_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_view_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_billing": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_billing_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_billing_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_cart": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_cart_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_cart_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_to_wishlist": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_to_wishlist_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_to_wishlist_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_app_opens": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_app_opens_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_app_opens_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_complete_tutorial": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_complete_tutorial_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_complete_tutorial_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_invite": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_invite_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_invite_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_level_completes": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_level_completes_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_level_completes_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_list_view": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_list_view_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_list_view_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_login": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_login_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_login_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_page_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_page_views_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_page_views_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_value": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_value_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_value_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_rate": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_rate_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_rate_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_reserve": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_reserve_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_reserve_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_save": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_save_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_save_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_searches": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_searches_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_searches_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_share": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_share_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_share_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_sign_ups": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_sign_ups_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_sign_ups_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_spend_credits": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_spend_credits_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_spend_credits_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_checkout": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_checkout_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_checkout_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_trial": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_trial_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_trial_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_subscribe": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_subscribe_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_subscribe_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_view_content": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_view_content_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_view_content_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_1": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_1_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_1_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_2": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_2_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_2_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_3": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_3_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_3_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_4": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_4_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_4_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_5": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_5_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_5_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "end_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "finalized_data_end_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "frequency": {
+ "type": [
+ "number"
+ ]
+ },
+ "granularity": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ios_installs": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ios_installs_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ios_installs_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quartile_1": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quartile_2": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quartile_3": {
+ "type": [
+ "integer"
+ ]
+ },
+ "screen_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "spend": {
+ "type": [
+ "integer"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "swipe_up_attribution_window": {
+ "type": [
+ "string"
+ ]
+ },
+ "swipe_up_percent": {
+ "type": [
+ "integer"
+ ]
+ },
+ "swipes": {
+ "type": [
+ "integer"
+ ]
+ },
+ "total_installs": {
+ "type": [
+ "integer"
+ ]
+ },
+ "total_installs_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "total_installs_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "uniques": {
+ "type": [
+ "integer"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "video_views_15s": {
+ "type": [
+ "integer"
+ ]
+ },
+ "video_views_time_based": {
+ "type": [
+ "integer"
+ ]
+ },
+ "view_attribution_window": {
+ "type": [
+ "string"
+ ]
+ },
+ "view_completion": {
+ "type": [
+ "integer"
+ ]
+ },
+ "view_time_millis": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/ad_squads.json b/_data/taps/schemas/snapchat-ads/v1/json/ad_squads.json
new file mode 100644
index 000000000..1eaf0f312
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/ad_squads.json
@@ -0,0 +1,353 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "ad_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "auto_bid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "bid_micro": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "bid_strategy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_event": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cap_and_exclusion_config": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "daily_budget_micro": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "delivery_constraint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "impression_goal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lifetime_budget_micro": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "optimization_goal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pacing_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pixel_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "placement": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "placement_v2": {
+ "additionalProperties": true,
+ "properties": {
+ "config": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exclusion": {
+ "additionalProperties": true,
+ "properties": {
+ "content_types": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "inclusion": {
+ "additionalProperties": true,
+ "properties": {
+ "content_types": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "platforms": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "product_properties": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "reach_and_frequency_micro": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reach_and_frequency_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reach_goal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "target_bid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "targeting": {
+ "additionalProperties": true,
+ "properties": {
+ "demographics": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "devices": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "enable_targeting_expansion": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "geos": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "interests": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "regulated_content": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "segments": {
+ "anyOf": [
+ {
+ "items": {},
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "targeting_reach_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/ad_stats_daily.json b/_data/taps/schemas/snapchat-ads/v1/json/ad_stats_daily.json
new file mode 100644
index 000000000..4402cadc3
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/ad_stats_daily.json
@@ -0,0 +1,684 @@
+{
+ "properties": {
+ "android_installs": {
+ "type": [
+ "integer"
+ ]
+ },
+ "android_installs_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "android_installs_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_avg_view_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_frequency": {
+ "type": [
+ "number"
+ ]
+ },
+ "attachment_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_quartile_1": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_quartile_2": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_quartile_3": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_total_view_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_uniques": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_view_completion": {
+ "type": [
+ "integer"
+ ]
+ },
+ "avg_screen_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "avg_view_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_achievement_unlocked": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_achievement_unlocked_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_achievement_unlocked_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_click": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_click_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_click_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_view": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_view_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_view_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_billing": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_billing_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_billing_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_cart": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_cart_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_cart_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_to_wishlist": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_to_wishlist_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_to_wishlist_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_app_opens": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_app_opens_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_app_opens_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_complete_tutorial": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_complete_tutorial_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_complete_tutorial_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_invite": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_invite_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_invite_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_level_completes": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_level_completes_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_level_completes_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_list_view": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_list_view_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_list_view_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_login": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_login_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_login_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_page_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_page_views_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_page_views_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_value": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_value_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_value_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_rate": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_rate_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_rate_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_reserve": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_reserve_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_reserve_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_save": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_save_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_save_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_searches": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_searches_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_searches_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_share": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_share_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_share_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_sign_ups": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_sign_ups_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_sign_ups_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_spend_credits": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_spend_credits_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_spend_credits_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_checkout": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_checkout_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_checkout_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_trial": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_trial_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_trial_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_subscribe": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_subscribe_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_subscribe_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_view_content": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_view_content_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_view_content_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_1": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_1_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_1_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_2": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_2_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_2_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_3": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_3_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_3_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_4": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_4_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_4_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_5": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_5_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_5_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "end_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "finalized_data_end_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "frequency": {
+ "type": [
+ "number"
+ ]
+ },
+ "granularity": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ios_installs": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ios_installs_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ios_installs_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quartile_1": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quartile_2": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quartile_3": {
+ "type": [
+ "integer"
+ ]
+ },
+ "screen_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "spend": {
+ "type": [
+ "integer"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "swipe_up_attribution_window": {
+ "type": [
+ "string"
+ ]
+ },
+ "swipe_up_percent": {
+ "type": [
+ "integer"
+ ]
+ },
+ "swipes": {
+ "type": [
+ "integer"
+ ]
+ },
+ "total_installs": {
+ "type": [
+ "integer"
+ ]
+ },
+ "total_installs_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "total_installs_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "uniques": {
+ "type": [
+ "integer"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "video_views_15s": {
+ "type": [
+ "integer"
+ ]
+ },
+ "video_views_time_based": {
+ "type": [
+ "integer"
+ ]
+ },
+ "view_attribution_window": {
+ "type": [
+ "string"
+ ]
+ },
+ "view_completion": {
+ "type": [
+ "integer"
+ ]
+ },
+ "view_time_millis": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/ad_stats_hourly.json b/_data/taps/schemas/snapchat-ads/v1/json/ad_stats_hourly.json
new file mode 100644
index 000000000..4402cadc3
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/ad_stats_hourly.json
@@ -0,0 +1,684 @@
+{
+ "properties": {
+ "android_installs": {
+ "type": [
+ "integer"
+ ]
+ },
+ "android_installs_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "android_installs_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_avg_view_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_frequency": {
+ "type": [
+ "number"
+ ]
+ },
+ "attachment_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_quartile_1": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_quartile_2": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_quartile_3": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_total_view_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_uniques": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_view_completion": {
+ "type": [
+ "integer"
+ ]
+ },
+ "avg_screen_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "avg_view_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_achievement_unlocked": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_achievement_unlocked_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_achievement_unlocked_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_click": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_click_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_click_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_view": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_view_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_view_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_billing": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_billing_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_billing_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_cart": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_cart_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_cart_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_to_wishlist": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_to_wishlist_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_to_wishlist_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_app_opens": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_app_opens_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_app_opens_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_complete_tutorial": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_complete_tutorial_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_complete_tutorial_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_invite": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_invite_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_invite_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_level_completes": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_level_completes_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_level_completes_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_list_view": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_list_view_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_list_view_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_login": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_login_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_login_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_page_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_page_views_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_page_views_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_value": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_value_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_value_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_rate": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_rate_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_rate_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_reserve": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_reserve_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_reserve_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_save": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_save_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_save_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_searches": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_searches_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_searches_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_share": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_share_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_share_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_sign_ups": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_sign_ups_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_sign_ups_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_spend_credits": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_spend_credits_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_spend_credits_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_checkout": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_checkout_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_checkout_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_trial": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_trial_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_trial_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_subscribe": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_subscribe_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_subscribe_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_view_content": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_view_content_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_view_content_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_1": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_1_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_1_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_2": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_2_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_2_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_3": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_3_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_3_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_4": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_4_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_4_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_5": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_5_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_5_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "end_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "finalized_data_end_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "frequency": {
+ "type": [
+ "number"
+ ]
+ },
+ "granularity": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ios_installs": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ios_installs_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ios_installs_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quartile_1": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quartile_2": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quartile_3": {
+ "type": [
+ "integer"
+ ]
+ },
+ "screen_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "spend": {
+ "type": [
+ "integer"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "swipe_up_attribution_window": {
+ "type": [
+ "string"
+ ]
+ },
+ "swipe_up_percent": {
+ "type": [
+ "integer"
+ ]
+ },
+ "swipes": {
+ "type": [
+ "integer"
+ ]
+ },
+ "total_installs": {
+ "type": [
+ "integer"
+ ]
+ },
+ "total_installs_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "total_installs_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "uniques": {
+ "type": [
+ "integer"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "video_views_15s": {
+ "type": [
+ "integer"
+ ]
+ },
+ "video_views_time_based": {
+ "type": [
+ "integer"
+ ]
+ },
+ "view_attribution_window": {
+ "type": [
+ "string"
+ ]
+ },
+ "view_completion": {
+ "type": [
+ "integer"
+ ]
+ },
+ "view_time_millis": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/ads.json b/_data/taps/schemas/snapchat-ads/v1/json/ads.json
new file mode 100644
index 000000000..5d373f769
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/ads.json
@@ -0,0 +1,169 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "ad_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_squad_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creative_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "paying_advertiser_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "render_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "review_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "review_status_reasons": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "third_party_paid_impression_tracking_urls": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "expanded_tracking_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_url_metadata": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "third_party_swipe_tracking_urls": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "expanded_tracking_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_url_metadata": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/audience_segments.json b/_data/taps/schemas/snapchat-ads/v1/json/audience_segments.json
new file mode 100644
index 000000000..c7712f661
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/audience_segments.json
@@ -0,0 +1,97 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "ad_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "approximate_number_users": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organization_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "retention_in_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "source_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targetable_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "upload_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visible_to": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/billing_centers.json b/_data/taps/schemas/snapchat-ads/v1/json/billing_centers.json
new file mode 100644
index 000000000..c2ca82776
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/billing_centers.json
@@ -0,0 +1,78 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "address_line_1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "administrative_district_level_1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "alternative_email_addresses": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locality": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organization_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/campaign_stats_daily.json b/_data/taps/schemas/snapchat-ads/v1/json/campaign_stats_daily.json
new file mode 100644
index 000000000..4402cadc3
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/campaign_stats_daily.json
@@ -0,0 +1,684 @@
+{
+ "properties": {
+ "android_installs": {
+ "type": [
+ "integer"
+ ]
+ },
+ "android_installs_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "android_installs_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_avg_view_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_frequency": {
+ "type": [
+ "number"
+ ]
+ },
+ "attachment_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_quartile_1": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_quartile_2": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_quartile_3": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_total_view_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_uniques": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_view_completion": {
+ "type": [
+ "integer"
+ ]
+ },
+ "avg_screen_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "avg_view_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_achievement_unlocked": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_achievement_unlocked_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_achievement_unlocked_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_click": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_click_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_click_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_view": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_view_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_view_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_billing": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_billing_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_billing_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_cart": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_cart_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_cart_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_to_wishlist": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_to_wishlist_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_to_wishlist_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_app_opens": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_app_opens_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_app_opens_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_complete_tutorial": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_complete_tutorial_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_complete_tutorial_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_invite": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_invite_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_invite_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_level_completes": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_level_completes_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_level_completes_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_list_view": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_list_view_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_list_view_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_login": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_login_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_login_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_page_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_page_views_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_page_views_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_value": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_value_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_value_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_rate": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_rate_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_rate_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_reserve": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_reserve_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_reserve_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_save": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_save_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_save_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_searches": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_searches_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_searches_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_share": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_share_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_share_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_sign_ups": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_sign_ups_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_sign_ups_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_spend_credits": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_spend_credits_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_spend_credits_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_checkout": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_checkout_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_checkout_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_trial": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_trial_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_trial_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_subscribe": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_subscribe_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_subscribe_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_view_content": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_view_content_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_view_content_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_1": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_1_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_1_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_2": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_2_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_2_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_3": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_3_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_3_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_4": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_4_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_4_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_5": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_5_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_5_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "end_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "finalized_data_end_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "frequency": {
+ "type": [
+ "number"
+ ]
+ },
+ "granularity": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ios_installs": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ios_installs_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ios_installs_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quartile_1": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quartile_2": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quartile_3": {
+ "type": [
+ "integer"
+ ]
+ },
+ "screen_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "spend": {
+ "type": [
+ "integer"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "swipe_up_attribution_window": {
+ "type": [
+ "string"
+ ]
+ },
+ "swipe_up_percent": {
+ "type": [
+ "integer"
+ ]
+ },
+ "swipes": {
+ "type": [
+ "integer"
+ ]
+ },
+ "total_installs": {
+ "type": [
+ "integer"
+ ]
+ },
+ "total_installs_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "total_installs_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "uniques": {
+ "type": [
+ "integer"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "video_views_15s": {
+ "type": [
+ "integer"
+ ]
+ },
+ "video_views_time_based": {
+ "type": [
+ "integer"
+ ]
+ },
+ "view_attribution_window": {
+ "type": [
+ "string"
+ ]
+ },
+ "view_completion": {
+ "type": [
+ "integer"
+ ]
+ },
+ "view_time_millis": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/campaign_stats_hourly.json b/_data/taps/schemas/snapchat-ads/v1/json/campaign_stats_hourly.json
new file mode 100644
index 000000000..4402cadc3
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/campaign_stats_hourly.json
@@ -0,0 +1,684 @@
+{
+ "properties": {
+ "android_installs": {
+ "type": [
+ "integer"
+ ]
+ },
+ "android_installs_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "android_installs_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_avg_view_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_frequency": {
+ "type": [
+ "number"
+ ]
+ },
+ "attachment_impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_quartile_1": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_quartile_2": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_quartile_3": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_total_view_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_uniques": {
+ "type": [
+ "integer"
+ ]
+ },
+ "attachment_view_completion": {
+ "type": [
+ "integer"
+ ]
+ },
+ "avg_screen_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "avg_view_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_achievement_unlocked": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_achievement_unlocked_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_achievement_unlocked_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_click": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_click_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_click_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_view": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_view_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_ad_view_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_billing": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_billing_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_billing_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_cart": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_cart_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_cart_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_to_wishlist": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_to_wishlist_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_add_to_wishlist_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_app_opens": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_app_opens_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_app_opens_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_complete_tutorial": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_complete_tutorial_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_complete_tutorial_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_invite": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_invite_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_invite_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_level_completes": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_level_completes_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_level_completes_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_list_view": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_list_view_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_list_view_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_login": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_login_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_login_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_page_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_page_views_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_page_views_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_value": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_value_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_value_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_purchases_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_rate": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_rate_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_rate_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_reserve": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_reserve_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_reserve_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_save": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_save_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_save_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_searches": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_searches_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_searches_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_share": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_share_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_share_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_sign_ups": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_sign_ups_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_sign_ups_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_spend_credits": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_spend_credits_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_spend_credits_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_checkout": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_checkout_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_checkout_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_trial": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_trial_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_start_trial_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_subscribe": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_subscribe_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_subscribe_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_view_content": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_view_content_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "conversion_view_content_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_1": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_1_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_1_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_2": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_2_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_2_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_3": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_3_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_3_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_4": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_4_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_4_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_5": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_5_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "custom_event_5_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "end_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "finalized_data_end_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "frequency": {
+ "type": [
+ "number"
+ ]
+ },
+ "granularity": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ios_installs": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ios_installs_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ios_installs_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quartile_1": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quartile_2": {
+ "type": [
+ "integer"
+ ]
+ },
+ "quartile_3": {
+ "type": [
+ "integer"
+ ]
+ },
+ "screen_time_millis": {
+ "type": [
+ "integer"
+ ]
+ },
+ "spend": {
+ "type": [
+ "integer"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "swipe_up_attribution_window": {
+ "type": [
+ "string"
+ ]
+ },
+ "swipe_up_percent": {
+ "type": [
+ "integer"
+ ]
+ },
+ "swipes": {
+ "type": [
+ "integer"
+ ]
+ },
+ "total_installs": {
+ "type": [
+ "integer"
+ ]
+ },
+ "total_installs_app": {
+ "type": [
+ "integer"
+ ]
+ },
+ "total_installs_web": {
+ "type": [
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "uniques": {
+ "type": [
+ "integer"
+ ]
+ },
+ "video_views": {
+ "type": [
+ "integer"
+ ]
+ },
+ "video_views_15s": {
+ "type": [
+ "integer"
+ ]
+ },
+ "video_views_time_based": {
+ "type": [
+ "integer"
+ ]
+ },
+ "view_attribution_window": {
+ "type": [
+ "string"
+ ]
+ },
+ "view_completion": {
+ "type": [
+ "integer"
+ ]
+ },
+ "view_time_millis": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/campaigns.json b/_data/taps/schemas/snapchat-ads/v1/json/campaigns.json
new file mode 100644
index 000000000..60dad15db
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/campaigns.json
@@ -0,0 +1,94 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "ad_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "buy_model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "daily_budget_micro": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "end_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lifetime_spend_cap_micro": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "measurement_spec": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "objective": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "regulations": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/creatives.json b/_data/taps/schemas/snapchat-ads/v1/json/creatives.json
new file mode 100644
index 000000000..479d8e54a
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/creatives.json
@@ -0,0 +1,200 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "ad_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_product": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_to_lens_properties": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ad_to_message_properties": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "app_install_properties": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "brand_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "call_to_action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "collection_properties": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "composite_properties": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deep_link_properties": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "dynamic_render_properties": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "forced_view_eligibility": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "headline": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "longform_video_properties": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "packaging_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "playback_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preview_creative_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preview_properties": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "render_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "review_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shareable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "top_snap_crop_position": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "top_snap_media_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "web_view_properties": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/funding_sources.json b/_data/taps/schemas/snapchat-ads/v1/json/funding_sources.json
new file mode 100644
index 000000000..07c1a9524
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/funding_sources.json
@@ -0,0 +1,132 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "available_credit_micro": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "budget_spent_micro": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "card_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "daily_spend_limit_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "daily_spend_limit_micro": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "expiration_month": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expiration_year": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organization_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_budget_micro": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "value_micro": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/media.json b/_data/taps/schemas/snapchat-ads/v1/json/media.json
new file mode 100644
index 000000000..21d986fb3
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/media.json
@@ -0,0 +1,127 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "ad_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "download_link": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "file_size_in_bytes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "hash": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_metadata": {
+ "additionalProperties": false,
+ "properties": {
+ "height_px": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "image_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "width_px": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "is_demo_media": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "lens_package_metadata": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "media_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "video_metadata": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "visibility": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/members.json b/_data/taps/schemas/snapchat-ads/v1/json/members.json
new file mode 100644
index 000000000..266184a78
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/members.json
@@ -0,0 +1,48 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "member_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organization_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/organizations.json b/_data/taps/schemas/snapchat-ads/v1/json/organizations.json
new file mode 100644
index 000000000..f6c1de266
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/organizations.json
@@ -0,0 +1,148 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "accepted_term_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line_1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "administrative_district_level_1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "configuration_settings": {
+ "additionalProperties": true,
+ "properties": {
+ "notifications_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "contact_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contact_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contact_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contact_phone_optin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locality": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "my_display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "my_invited_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "my_member_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "roles": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/phone_numbers.json b/_data/taps/schemas/snapchat-ads/v1/json/phone_numbers.json
new file mode 100644
index 000000000..b1707be13
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/phone_numbers.json
@@ -0,0 +1,60 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "ad_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "numerical_country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "verification_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/pixel_domain_stats.json b/_data/taps/schemas/snapchat-ads/v1/json/pixel_domain_stats.json
new file mode 100644
index 000000000..d3eb100f6
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/pixel_domain_stats.json
@@ -0,0 +1,67 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "domains": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "domain_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_events": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "end_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pixel_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/pixels.json b/_data/taps/schemas/snapchat-ads/v1/json/pixels.json
new file mode 100644
index 000000000..391e7651b
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/pixels.json
@@ -0,0 +1,73 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "ad_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "effective_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organization_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pixel_javascript": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "visible_to": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/product_catalogs.json b/_data/taps/schemas/snapchat-ads/v1/json/product_catalogs.json
new file mode 100644
index 000000000..c684c6968
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/product_catalogs.json
@@ -0,0 +1,79 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "default_product_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event_sources": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organization_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/product_sets.json b/_data/taps/schemas/snapchat-ads/v1/json/product_sets.json
new file mode 100644
index 000000000..dd539f9d9
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/product_sets.json
@@ -0,0 +1,44 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "catalog_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "filter": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/roles.json b/_data/taps/schemas/snapchat-ads/v1/json/roles.json
new file mode 100644
index 000000000..f54bc9e70
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/roles.json
@@ -0,0 +1,54 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "container_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "container_kind": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "member_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organization_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/targeting_advanced_demographics.json b/_data/taps/schemas/snapchat-ads/v1/json/targeting_advanced_demographics.json
new file mode 100644
index 000000000..0df7a4679
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/targeting_advanced_demographics.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "country_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/targeting_age_groups.json b/_data/taps/schemas/snapchat-ads/v1/json/targeting_age_groups.json
new file mode 100644
index 000000000..0df7a4679
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/targeting_age_groups.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "country_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/targeting_android_versions.json b/_data/taps/schemas/snapchat-ads/v1/json/targeting_android_versions.json
new file mode 100644
index 000000000..0df7a4679
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/targeting_android_versions.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "country_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/targeting_carriers.json b/_data/taps/schemas/snapchat-ads/v1/json/targeting_carriers.json
new file mode 100644
index 000000000..0df7a4679
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/targeting_carriers.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "country_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/targeting_connection_types.json b/_data/taps/schemas/snapchat-ads/v1/json/targeting_connection_types.json
new file mode 100644
index 000000000..0df7a4679
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/targeting_connection_types.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "country_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/targeting_countries.json b/_data/taps/schemas/snapchat-ads/v1/json/targeting_countries.json
new file mode 100644
index 000000000..5889a4756
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/targeting_countries.json
@@ -0,0 +1,154 @@
+{
+ "properties": {
+ "city": {
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "continent": {
+ "properties": {
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "country": {
+ "properties": {
+ "code": {
+ "type": [
+ "string"
+ ]
+ },
+ "code2": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "metro": {
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "regions": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "string"
+ ]
+ },
+ "region": {
+ "properties": {
+ "code": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/targeting_device_makes.json b/_data/taps/schemas/snapchat-ads/v1/json/targeting_device_makes.json
new file mode 100644
index 000000000..0df7a4679
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/targeting_device_makes.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "country_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/targeting_genders.json b/_data/taps/schemas/snapchat-ads/v1/json/targeting_genders.json
new file mode 100644
index 000000000..0df7a4679
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/targeting_genders.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "country_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/targeting_interests_dlxc.json b/_data/taps/schemas/snapchat-ads/v1/json/targeting_interests_dlxc.json
new file mode 100644
index 000000000..0df7a4679
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/targeting_interests_dlxc.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "country_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/targeting_interests_dlxp.json b/_data/taps/schemas/snapchat-ads/v1/json/targeting_interests_dlxp.json
new file mode 100644
index 000000000..0df7a4679
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/targeting_interests_dlxp.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "country_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/targeting_interests_dlxs.json b/_data/taps/schemas/snapchat-ads/v1/json/targeting_interests_dlxs.json
new file mode 100644
index 000000000..0df7a4679
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/targeting_interests_dlxs.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "country_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/targeting_interests_nln.json b/_data/taps/schemas/snapchat-ads/v1/json/targeting_interests_nln.json
new file mode 100644
index 000000000..0df7a4679
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/targeting_interests_nln.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "country_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/targeting_interests_plc.json b/_data/taps/schemas/snapchat-ads/v1/json/targeting_interests_plc.json
new file mode 100644
index 000000000..0df7a4679
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/targeting_interests_plc.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "country_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/targeting_interests_scls.json b/_data/taps/schemas/snapchat-ads/v1/json/targeting_interests_scls.json
new file mode 100644
index 000000000..0df7a4679
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/targeting_interests_scls.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "country_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/targeting_ios_versions.json b/_data/taps/schemas/snapchat-ads/v1/json/targeting_ios_versions.json
new file mode 100644
index 000000000..0df7a4679
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/targeting_ios_versions.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "country_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/targeting_languages.json b/_data/taps/schemas/snapchat-ads/v1/json/targeting_languages.json
new file mode 100644
index 000000000..0df7a4679
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/targeting_languages.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "country_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/targeting_location_categories.json b/_data/taps/schemas/snapchat-ads/v1/json/targeting_location_categories.json
new file mode 100644
index 000000000..0df7a4679
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/targeting_location_categories.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "country_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/targeting_metros.json b/_data/taps/schemas/snapchat-ads/v1/json/targeting_metros.json
new file mode 100644
index 000000000..5889a4756
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/targeting_metros.json
@@ -0,0 +1,154 @@
+{
+ "properties": {
+ "city": {
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "continent": {
+ "properties": {
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "country": {
+ "properties": {
+ "code": {
+ "type": [
+ "string"
+ ]
+ },
+ "code2": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "metro": {
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "regions": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "string"
+ ]
+ },
+ "region": {
+ "properties": {
+ "code": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/targeting_os_types.json b/_data/taps/schemas/snapchat-ads/v1/json/targeting_os_types.json
new file mode 100644
index 000000000..0df7a4679
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/targeting_os_types.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "country_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/targeting_postal_codes.json b/_data/taps/schemas/snapchat-ads/v1/json/targeting_postal_codes.json
new file mode 100644
index 000000000..5889a4756
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/targeting_postal_codes.json
@@ -0,0 +1,154 @@
+{
+ "properties": {
+ "city": {
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "continent": {
+ "properties": {
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "country": {
+ "properties": {
+ "code": {
+ "type": [
+ "string"
+ ]
+ },
+ "code2": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "metro": {
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "regions": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "string"
+ ]
+ },
+ "region": {
+ "properties": {
+ "code": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/json/targeting_regions.json b/_data/taps/schemas/snapchat-ads/v1/json/targeting_regions.json
new file mode 100644
index 000000000..5889a4756
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/json/targeting_regions.json
@@ -0,0 +1,154 @@
+{
+ "properties": {
+ "city": {
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "continent": {
+ "properties": {
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "country": {
+ "properties": {
+ "code": {
+ "type": [
+ "string"
+ ]
+ },
+ "code2": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "metro": {
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "regions": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "path": {
+ "type": [
+ "string"
+ ]
+ },
+ "region": {
+ "properties": {
+ "code": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_group": {
+ "type": [
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/snapchat-ads/v1/snapchat-ads-v1-tables.yml b/_data/taps/schemas/snapchat-ads/v1/snapchat-ads-v1-tables.yml
new file mode 100644
index 000000000..52a65603c
--- /dev/null
+++ b/_data/taps/schemas/snapchat-ads/v1/snapchat-ads-v1-tables.yml
@@ -0,0 +1,458 @@
+tap: snapchat-ads
+version: '1'
+tables:
+- name: ads
+ description: This stream retrieves all Ads under a specified Ad account
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#get-all-ads-under-an-ad-account
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/ads.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: ad_accounts
+ description: This stream retrieves all ad accounts for the specified Organization.
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#get-all-ad-accounts
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/blob/master/tap_snapchat_ads/schemas/ad_accounts.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: ad_account_stats_daily
+ description: This endpoint retrieves the spend metric for the specified Ad Account
+ at DAY granularity, the spend metric is the only metric available for the ad account
+ entity
+ tap-repo-schema: false
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#get-ad-account-stats
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/blob/master/tap_snapchat_ads/schemas/shared/ad_account_stats.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - id
+ - start_time
+ replication-key: end_time
+- name: ad_account_stats_hourly
+ description: This endpoint retrieves the spend metric for the specified Ad Account
+ at HOUR granularity, the spend metric is the only metric available for the ad
+ account entity
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#get-ad-account-stats
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/blob/master/tap_snapchat_ads/schemas/shared/ad_account_stats.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - id
+ - start_time
+ replication-key: end_time
+ tap-repo-schema: false
+- name: ad_squads
+ description: This stream retrieves all ad squads within a specified ad account.
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#get-all-ad-squads-under-an-ad-account
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/blob/master/tap_snapchat_ads/schemas/ad_squads.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: ad_squad_stats_daily
+ description: This stream retrieves stats for the specified Ad Squad at DAY granularity
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#get-ad-squad-stats
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/blob/master/tap_snapchat_ads/schemas/shared/stats.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - id
+ - start_time
+ replication-key: end_time
+ tap-repo-schema: false
+- name: ad_squad_stats_hourly
+ description: This stream retrieves stats for the specified Ad Squad at HOUR granularity
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#get-ad-squad-stats
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/blob/master/tap_snapchat_ads/schemas/shared/stats.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - id
+ - start_time
+ replication-key: end_time
+ tap-repo-schema: false
+- name: ad_stats_daily
+ description: This stream retrieves stats for the specified Ad at DAY granularity
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#get-ad-stats
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/blob/master/tap_snapchat_ads/schemas/shared/stats.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - id
+ - start_time
+ replication-key: end_time
+ tap-repo-schema: false
+- name: ad_stats_hourly
+ description: This stream retrieves stats for the specified Ad at HOUR granularity
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#get-ad-stats
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/blob/master/tap_snapchat_ads/schemas/shared/stats.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - id
+ - start_time
+ replication-key: end_time
+ tap-repo-schema: false
+- name: audience_segments
+ description: This stream retrieves all Customer List segments within a specified
+ ad account.
+ links:
+ doc-link: https://marketingapi.snapchat.com/docs/#get-all-audience-segments
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/audience_segments.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: billing_centers
+ description: Billing Centers allow Businesses to have multiple invoicing locations
+ to choose from. A Billing Center is the contact that will be receiving invoices.
+ links:
+ doc-link: https://marketingapi.snapchat.com/docs/#billing-centers
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/billing_centers.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: campaigns
+ description: This stream retrieves all campaigns within a specified ad account
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#get-all-campaigns
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/campaigns.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: campaign_stats_daily
+ description: This stream retrieves stats for the specified Campaign at DAY granularity
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#get-campaign-stats
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/shared/stats.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - id
+ - start_time
+ replication-key: end_time
+ tap-repo-schema: false
+- name: campaign_stats_hourly
+ description: This stream retrieves stats for the specified Campaign at HOUR granularity
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#get-campaign-stats
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/shared/stats.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - id
+ - start_time
+ replication-key: end_time
+ tap-repo-schema: false
+- name: creatives
+ description: This endpoint retrieves all creatives associated with an ad account
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#get-all-creatives
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/creatives.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: funding_sources
+ description: An Funding Source is owned by an Organization and defines the financial
+ instrument/terms responsible for the ad spend. Funding sources are assigned to
+ an Ad Account in order to pay for the activity within that Ad Account.
+ links:
+ doc-link: https://marketingapi.snapchat.com/docs/#funding-sources
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/funding_sources.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: media
+ description: This stream retrieves all media entities associated with an ad account
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#get-all-media
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/blob/master/tap_snapchat_ads/schemas/media.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: members
+ description: This stream retrieves the information of all Members of an Organization
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/?python#get-all-members-of-an-organization
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/members.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: organizations
+ description: This stream retrieves all organizations.
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#get-all-organizations
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/blob/master/tap_snapchat_ads/schemas/organizations.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: phone_numbers
+ description: This stream retrieves all verified phone numbers for an Ad Account.
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#swipe-to-call-text-phone-number-verification
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/blob/master/tap_snapchat_ads/schemas/phone_numbers.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: pixels
+ description: This stream retrieves the pixel associated with the specified Ad Account.
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#get-the-pixel-associated-with-an-ad-account
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/blob/master/tap_snapchat_ads/schemas/pixels.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: pixel_domain_stats
+ description: This stream retrieves the domains that have fired the pixel in the
+ past 7 days.
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#get-pixel-domains
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/blob/master/tap_snapchat_ads/schemas/pixel_domain_stats.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: product_catalogs
+ description: This stream will retrieve a list of all the catalogs within an organization
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#get-all-catalogs
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/blob/master/tap_snapchat_ads/schemas/product_catalogs.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: product_sets
+ description: This stream will get all the Product Sets within the Catalog.
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#get-all-product-sets
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/blob/master/tap_snapchat_ads/schemas/product_sets.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: roles
+ description: This stream retrieves all Roles assigned within an Organization
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/?python#get-all-roles-in-organization
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/blob/master/tap_snapchat_ads/schemas/roles.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: targeting_advanced_demographics
+ description: This stream retrieves the list of Advanced Demographics targeting options
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#demographics-advanced-demographics
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/blob/master/tap_snapchat_ads/schemas/shared/targeting.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ tap-repo-schema: false
+- name: targeting_age_groups
+ description: This stream retrieves the list of age group targeting options.
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#demographics-age-groups
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/blob/master/tap_snapchat_ads/schemas/shared/targeting.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ tap-repo-schema: false
+- name: targeting_android_versions
+ description: This stream retrieves the list of device OS version targeting options.
+ These OS versions can then be used in targeting as os_version_min and os_version_max.
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#device-os-version
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/shared/targeting.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ tap-repo-schema: false
+- name: targeting_carriers
+ description: This stream retrieves the list of device carrier targeting options.
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#device-carrier
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/shared/targeting.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ tap-repo-schema: false
+- name: targeting_connection_types
+ description: This stream retrieves the list of device connection type targeting
+ options.
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#device-connection-type
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/shared/targeting.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ tap-repo-schema: false
+- name: targeting_countries
+ description: This stream retrieves the list of country targeting options.
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#geolocation-country
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/shared/targeting_geo.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ tap-repo-schema: false
+- name: targeting_device_makes
+ description: This stream retrieves the list of device make targeting options. Please
+ note that specifying a parent level make option like `Apple/` in the targeting
+ spec will include all devices of the kind `Apple/*` like `Apple/iPad (3rd Gen)/`,
+ `Apple/iPhone 4/`, `Apple/iPhone 7 Plus/` etc.
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#device-make
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/shared/targeting.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ tap-repo-schema: false
+- name: targeting_genders
+ description: This stream retrieves the list of gender targeting options.
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#demographics-gender
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/shared/targeting.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ tap-repo-schema: false
+- name: targeting_interests_dlxc
+ description: This stream retrieves the list of Oracle Datalogix DLXC targeting options.
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#get-oracle-datalogix-dlxc-interest-targeting-options
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/shared/targeting.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ tap-repo-schema: false
+- name: targeting_interests_dlxp
+ description: This stream retrieves the list of Oracle Datalogix DLXP targeting options.
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#get-oracle-datalogix-dlxp-interest-targeting-options
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/shared/targeting.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ tap-repo-schema: false
+- name: targeting_interests_dlxs
+ description: This stream retrieves the list of Oracle Datalogix DLXS Interests targeting
+ options.
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#get-oracle-datalogix-dlxs-interest-targeting-options
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/shared/targeting.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ tap-repo-schema: false
+- name: targeting_interests_nln
+ description: This stream retrieves the list of Nielsen interest targeting options
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#get-nielsen-interest-targeting-options
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/shared/targeting.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ tap-repo-schema: false
+- name: targeting_interests_plc
+ description: This stream retrieves the list of placed visitation segments targeting
+ options by the specified country code
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#interests-placed-visitation-segments
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/shared/targeting.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ tap-repo-schema: false
+- name: targeting_interests_scls
+ description: This stream retrieves the list of Snap Lifestyle Categories targeting
+ options by the specified country code
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#interests-snap-lifestyle-categories
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/shared/targeting.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ tap-repo-schema: false
+- name: targeting_ios_versions
+ description: This stream retrieves the list of device OS version targeting options.
+ These OS versions can then be used in targeting as os_version_min and os_version_max.
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#device-os-version
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/shared/targeting.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ tap-repo-schema: false
+- name: targeting_languages
+ description: This stream retrieves the list of language targeting options.
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#demographics-language
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/shared/targeting.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ tap-repo-schema: false
+- name: targeting_location_categories
+ description: Location targeting allows an advertiser to target users based on their
+ location.
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#location
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/shared/targeting.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ tap-repo-schema: false
+- name: targeting_metros
+ description: This stream retrieves the list of metro/dma targeting options.
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#geolocation-metro-dma
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/shared/targeting_geo.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ tap-repo-schema: false
+- name: targeting_os_types
+ description: This stream retrieves the list of device OS type targeting options.
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#device-os-type
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/shared/targeting.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ tap-repo-schema: false
+- name: targeting_postal_codes
+ description: This stream retrieves the list of zipcode targeting options.
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#zipcode
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/shared/targeting_geo.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ tap-repo-schema: false
+- name: targeting_regions
+ description: This stream retrieves the list of region/state targeting options.
+ links:
+ doc-link: https://developers.snapchat.com/api/docs/#geolocation-region-state
+ singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/shared/targeting_geo.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+ tap-repo-schema: false
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/square/v1/json/bank_accounts.json b/_data/taps/schemas/square/v1/json/bank_accounts.json
new file mode 100644
index 000000000..3b3c1a274
--- /dev/null
+++ b/_data/taps/schemas/square/v1/json/bank_accounts.json
@@ -0,0 +1,86 @@
+{
+ "properties": {
+ "account_number_suffix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creditable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "debitable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "holder_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "primary_bank_identification_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v1/json/cash_drawer_shifts.json b/_data/taps/schemas/square/v1/json/cash_drawer_shifts.json
new file mode 100644
index 000000000..0226fb304
--- /dev/null
+++ b/_data/taps/schemas/square/v1/json/cash_drawer_shifts.json
@@ -0,0 +1,101 @@
+{
+ "properties": {
+ "closed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "closed_cash_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ended_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "expected_cash_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "opened_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "opened_cash_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v1/json/categories.json b/_data/taps/schemas/square/v1/json/categories.json
new file mode 100644
index 000000000..07a8fea4a
--- /dev/null
+++ b/_data/taps/schemas/square/v1/json/categories.json
@@ -0,0 +1,70 @@
+{
+ "properties": {
+ "absent_at_location_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "category_data": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "present_at_all_locations": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v1/json/customers.json b/_data/taps/schemas/square/v1/json/customers.json
new file mode 100644
index 000000000..bc3902adb
--- /dev/null
+++ b/_data/taps/schemas/square/v1/json/customers.json
@@ -0,0 +1,142 @@
+{
+ "properties": {
+ "address": {
+ "properties": {
+ "address_line_1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "administrative_district_level_1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locality": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "birthday": {
+ "anyOf": [
+ {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ ]
+ },
+ "company_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creation_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "family_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "given_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preferences": {
+ "properties": {
+ "email_unsubscribed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v1/json/discounts.json b/_data/taps/schemas/square/v1/json/discounts.json
new file mode 100644
index 000000000..eadada9c7
--- /dev/null
+++ b/_data/taps/schemas/square/v1/json/discounts.json
@@ -0,0 +1,126 @@
+{
+ "properties": {
+ "absent_at_location_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "discount_data": {
+ "properties": {
+ "amount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "application_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label_color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modify_tax_basis": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percentage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pin_required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "present_at_all_locations": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v1/json/employees.json b/_data/taps/schemas/square/v1/json/employees.json
new file mode 100644
index 000000000..87ff48485
--- /dev/null
+++ b/_data/taps/schemas/square/v1/json/employees.json
@@ -0,0 +1,68 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_owner": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v1/json/inventories.json b/_data/taps/schemas/square/v1/json/inventories.json
new file mode 100644
index 000000000..2b2747745
--- /dev/null
+++ b/_data/taps/schemas/square/v1/json/inventories.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "calculated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "catalog_object_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "catalog_object_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v1/json/items.json b/_data/taps/schemas/square/v1/json/items.json
new file mode 100644
index 000000000..33191026c
--- /dev/null
+++ b/_data/taps/schemas/square/v1/json/items.json
@@ -0,0 +1,392 @@
+{
+ "properties": {
+ "absent_at_location_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "item_data": {
+ "properties": {
+ "abbreviation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "available_electronically": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "available_for_pickup": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "available_online": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "category_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "item_options": {
+ "items": {
+ "properties": {
+ "item_option_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "label_color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "legacy_tax_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "modifier_list_info": {
+ "items": {
+ "properties": {
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "modifier_list_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "skip_modifier_screen": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tax_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "variations": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "item_variation_data": {
+ "properties": {
+ "inventory_alert_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location_overrides": {
+ "items": {
+ "properties": {
+ "inventory_alert_threshold": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inventory_alert_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sold_out": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "track_inventory": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ordinal": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "pricing_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "track_inventory": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "user_data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "present_at_all_locations": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "present_at_location_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "visibility": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "present_at_all_locations": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "present_at_location_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v1/json/locations.json b/_data/taps/schemas/square/v1/json/locations.json
new file mode 100644
index 000000000..4380c8c39
--- /dev/null
+++ b/_data/taps/schemas/square/v1/json/locations.json
@@ -0,0 +1,292 @@
+{
+ "properties": {
+ "address": {
+ "properties": {
+ "address_line_1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line_3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "administrative_district_level_1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "administrative_district_level_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "administrative_district_level_3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locality": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organization": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sublocality": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sublocality_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sublocality_3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "business_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "business_hours": {
+ "properties": {
+ "periods": {
+ "items": {
+ "properties": {
+ "day_of_week": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end_local_time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_local_time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "business_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "capabilities": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "coordinates": {
+ "properties": {
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "facebook_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "instagram_username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "language_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mcc": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "merchant_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "twitter_username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "website_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v1/json/modifier_lists.json b/_data/taps/schemas/square/v1/json/modifier_lists.json
new file mode 100644
index 000000000..11764a263
--- /dev/null
+++ b/_data/taps/schemas/square/v1/json/modifier_lists.json
@@ -0,0 +1,184 @@
+{
+ "properties": {
+ "absent_at_location_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "modifier_list_data": {
+ "properties": {
+ "modifiers": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "modifier_data": {
+ "properties": {
+ "modifier_list_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "on_by_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ordinal": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "present_at_all_locations": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ordinal": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "selection_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "present_at_all_locations": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v1/json/orders.json b/_data/taps/schemas/square/v1/json/orders.json
new file mode 100644
index 000000000..04cc19ac5
--- /dev/null
+++ b/_data/taps/schemas/square/v1/json/orders.json
@@ -0,0 +1,1668 @@
+{
+ "properties": {
+ "amount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card_details": {
+ "properties": {
+ "avs_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card": {
+ "properties": {
+ "bin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prepaid_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "cvv_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entry_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "category_data": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "closed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "delay_action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delay_duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delayed_until": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_data": {
+ "properties": {
+ "amount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "fulfillments": {
+ "items": {
+ "properties": {
+ "pickup_details": {
+ "properties": {
+ "canceled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "expired_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "expires_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pickup_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "recipient": {
+ "properties": {
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "rejected_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "line_items": {
+ "items": {
+ "properties": {
+ "base_price_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "catalog_object_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gross_sales_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_discount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_tax_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "variation_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "variation_total_price_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "net_amounts": {
+ "properties": {
+ "discount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "service_charge_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tax_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tip_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "present_at_all_locations": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "processing_fee": {
+ "items": {
+ "properties": {
+ "amount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "effective_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "refunded_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "refunds": {
+ "items": {
+ "properties": {
+ "amount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tender_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "return_amounts": {
+ "properties": {
+ "discount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "service_charge_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tax_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tip_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "returns": {
+ "items": {
+ "properties": {
+ "return_line_items": {
+ "items": {
+ "properties": {
+ "applied_discounts": {
+ "items": {
+ "properties": {
+ "applied_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "discount_uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "applied_taxes": {
+ "items": {
+ "properties": {
+ "applied_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tax_uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "base_price_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "catalog_object_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gross_return_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity_unit": {
+ "properties": {
+ "measurement_unit": {
+ "properties": {
+ "area_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_unit": {
+ "properties": {
+ "abbreviation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "generic_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "length_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "time_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "volume_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "weight_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "precision": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "return_modifiers": {
+ "items": {
+ "properties": {
+ "base_price_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "catalog_object_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source_modifier_uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_price_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "source_line_item_uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_discount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_tax_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "variation_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "variation_total_price_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "source_order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "source": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "source_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_data": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tenders": {
+ "items": {
+ "properties": {
+ "amount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card_details": {
+ "properties": {
+ "card": {
+ "properties": {
+ "bin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prepaid_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "entry_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "total_discount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_service_charge_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_tax_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_tip_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v1/json/payments.json b/_data/taps/schemas/square/v1/json/payments.json
new file mode 100644
index 000000000..cebd77cb7
--- /dev/null
+++ b/_data/taps/schemas/square/v1/json/payments.json
@@ -0,0 +1,373 @@
+{
+ "properties": {
+ "amount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card_details": {
+ "properties": {
+ "auth_result_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avs_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card": {
+ "properties": {
+ "bin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cardholder_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prepaid_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "cvv_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entry_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "errors": {
+ "items": {
+ "properties": {
+ "category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "detail": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delay_action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delay_duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delayed_until": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "processing_fee": {
+ "items": {
+ "properties": {
+ "amount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "effective_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "receipt_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "refunded_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "risk_evaluation": {
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "risk_level": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "source_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v1/json/refunds.json b/_data/taps/schemas/square/v1/json/refunds.json
new file mode 100644
index 000000000..1eeecb578
--- /dev/null
+++ b/_data/taps/schemas/square/v1/json/refunds.json
@@ -0,0 +1,122 @@
+{
+ "properties": {
+ "amount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "processing_fee": {
+ "items": {
+ "properties": {
+ "amount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "effective_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v1/json/roles.json b/_data/taps/schemas/square/v1/json/roles.json
new file mode 100644
index 000000000..ef6b1d547
--- /dev/null
+++ b/_data/taps/schemas/square/v1/json/roles.json
@@ -0,0 +1,50 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_owner": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "permissions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v1/json/settlements.json b/_data/taps/schemas/square/v1/json/settlements.json
new file mode 100644
index 000000000..5362d3dac
--- /dev/null
+++ b/_data/taps/schemas/square/v1/json/settlements.json
@@ -0,0 +1,114 @@
+{
+ "properties": {
+ "bank_account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entries": {
+ "items": {
+ "properties": {
+ "`type`": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "fee_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "payment_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "initiated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v1/json/shifts.json b/_data/taps/schemas/square/v1/json/shifts.json
new file mode 100644
index 000000000..33fcdaffb
--- /dev/null
+++ b/_data/taps/schemas/square/v1/json/shifts.json
@@ -0,0 +1,158 @@
+{
+ "properties": {
+ "breaks": {
+ "items": {
+ "properties": {
+ "break_type_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "expected_duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_paid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "employee_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "wage": {
+ "properties": {
+ "hourly_rate": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v1/json/taxes.json b/_data/taps/schemas/square/v1/json/taxes.json
new file mode 100644
index 000000000..55c350130
--- /dev/null
+++ b/_data/taps/schemas/square/v1/json/taxes.json
@@ -0,0 +1,112 @@
+{
+ "properties": {
+ "absent_at_location_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "present_at_all_locations": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tax_data": {
+ "properties": {
+ "applies_to_custom_amounts": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "calculation_phase": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "inclusion_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percentage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_type_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_type_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v1/square-v1-foreign-keys.yml b/_data/taps/schemas/square/v1/square-v1-foreign-keys.yml
new file mode 100644
index 000000000..ae1e32200
--- /dev/null
+++ b/_data/taps/schemas/square/v1/square-v1-foreign-keys.yml
@@ -0,0 +1,1155 @@
+tap: square
+version: '1'
+keys:
+ bank_accounts_id:
+ - table: bank_accounts
+ keys:
+ - id
+ - table: settlements
+ keys:
+ - bank_account_id
+ categories_category_id:
+ - table: categories
+ keys:
+ - id
+ - table: items
+ keys:
+ - item_data.category_id
+ discounts_:
+ - table: discounts
+ keys:
+ - id
+ employees_id:
+ - table: employees
+ keys:
+ - id
+ - table: shifts
+ keys:
+ - employee_id
+ items_item_id:
+ - table: items
+ keys:
+ - id
+ - item_data.variations.item_variation_data.item_id
+ locations_id:
+ - table: bank_accounts
+ keys:
+ - id
+ - table: categories
+ keys:
+ - absent_at_location_ids
+ - table: discounts
+ keys:
+ - absent_at_location_ids
+ - table: employees
+ keys:
+ - location_ids
+ - table: inventories
+ keys:
+ - location_id
+ - table: items
+ keys:
+ - absent_at_location_ids
+ - item_data.variations.item_variation_data.location_overrides.location_id
+ - item_data.variations.present_at_location_ids
+ - present_at_location_ids
+ - table: locations
+ keys:
+ - id
+ - table: modifier_lists
+ keys:
+ - absent_at_location_ids
+ - table: orders
+ keys:
+ - id
+ - refunds.id
+ - tenders.id
+ - table: payments
+ keys:
+ - id
+ - table: refunds
+ keys:
+ - id
+ - table: shifts
+ keys:
+ - id
+ - table: taxes
+ keys:
+ - absent_at_location_ids
+ modifier_lists_modifier_list_id:
+ - table: items
+ keys:
+ - item_data.modifier_list_info.modifier_list_id
+ - table: modifier_lists
+ keys:
+ - id
+ - modifier_list_data.modifiers.modifier_data.modifier_list_id
+ orders_id:
+ - table: orders
+ keys:
+ - id
+ - order_id
+ - returns.source_order_id
+ - table: payments
+ keys:
+ - order_id
+ - table: refunds
+ keys:
+ - order_id
+ payments_id:
+ - table: orders
+ keys:
+ - payment_id
+ - tenders.id
+ - table: payments
+ keys:
+ - id
+ - table: refunds
+ keys:
+ - payment_id
+ refunds_id:
+ - table: orders
+ keys:
+ - refund_ids
+ - refunds.id
+ - table: payments
+ keys:
+ - order_id
+ - refund_ids
+ - table: refunds
+ keys:
+ - id
+ roles_id:
+ - table: roles
+ keys:
+ - id
+ taxes_id:
+ - table: items
+ keys:
+ - item_data.tax_ids
+ - table: taxes
+ keys:
+ - id
+ _tender_id:
+ - table: orders
+ keys:
+ - tender_id
+ - refunds.tender_id
+ - tenders.id
+tables:
+- table-name: bank_accounts
+ join:
+ - table-name: settlements
+ keys:
+ - key: id
+ foreign-key: bank_account_id
+ - table-name: categories
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: discounts
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: employees
+ keys:
+ - key: id
+ foreign-key: location_ids
+ - table-name: inventories
+ keys:
+ - key: id
+ foreign-key: location_id
+ - table-name: items
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - key: id
+ foreign-key: item_data.variations.item_variation_data.location_overrides.location_id
+ - key: id
+ foreign-key: item_data.variations.present_at_location_ids
+ - key: id
+ foreign-key: present_at_location_ids
+ - table-name: locations
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: modifier_lists
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: orders
+ keys:
+ - key: id
+ foreign-key: id
+ - key: id
+ foreign-key: refunds.id
+ - key: id
+ foreign-key: tenders.id
+ - table-name: payments
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: refunds
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: shifts
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: taxes
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+- table-name: settlements
+ join:
+ - table-name: bank_accounts
+ keys:
+ - key: bank_account_id
+ foreign-key: id
+- table-name: categories
+ join:
+ - table-name: items
+ keys:
+ - key: id
+ foreign-key: item_data.category_id
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - key: absent_at_location_ids
+ foreign-key: item_data.variations.item_variation_data.location_overrides.location_id
+ - key: absent_at_location_ids
+ foreign-key: item_data.variations.present_at_location_ids
+ - key: absent_at_location_ids
+ foreign-key: present_at_location_ids
+ - table-name: bank_accounts
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: discounts
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - table-name: employees
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: location_ids
+ - table-name: inventories
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: location_id
+ - table-name: locations
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: modifier_lists
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - table-name: orders
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - key: absent_at_location_ids
+ foreign-key: refunds.id
+ - key: absent_at_location_ids
+ foreign-key: tenders.id
+ - table-name: payments
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: refunds
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: shifts
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: taxes
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+- table-name: items
+ join:
+ - table-name: categories
+ keys:
+ - key: item_data.category_id
+ foreign-key: id
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - key: item_data.variations.item_variation_data.location_overrides.location_id
+ foreign-key: absent_at_location_ids
+ - key: item_data.variations.present_at_location_ids
+ foreign-key: absent_at_location_ids
+ - key: present_at_location_ids
+ foreign-key: absent_at_location_ids
+ - table-name: bank_accounts
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - key: item_data.variations.item_variation_data.location_overrides.location_id
+ foreign-key: id
+ - key: item_data.variations.present_at_location_ids
+ foreign-key: id
+ - key: present_at_location_ids
+ foreign-key: id
+ - table-name: discounts
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - key: item_data.variations.item_variation_data.location_overrides.location_id
+ foreign-key: absent_at_location_ids
+ - key: item_data.variations.present_at_location_ids
+ foreign-key: absent_at_location_ids
+ - key: present_at_location_ids
+ foreign-key: absent_at_location_ids
+ - table-name: employees
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: location_ids
+ - key: item_data.variations.item_variation_data.location_overrides.location_id
+ foreign-key: location_ids
+ - key: item_data.variations.present_at_location_ids
+ foreign-key: location_ids
+ - key: present_at_location_ids
+ foreign-key: location_ids
+ - table-name: inventories
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: location_id
+ - key: item_data.variations.item_variation_data.location_overrides.location_id
+ foreign-key: location_id
+ - key: item_data.variations.present_at_location_ids
+ foreign-key: location_id
+ - key: present_at_location_ids
+ foreign-key: location_id
+ - table-name: locations
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - key: item_data.variations.item_variation_data.location_overrides.location_id
+ foreign-key: id
+ - key: item_data.variations.present_at_location_ids
+ foreign-key: id
+ - key: present_at_location_ids
+ foreign-key: id
+ - table-name: modifier_lists
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - key: item_data.variations.item_variation_data.location_overrides.location_id
+ foreign-key: absent_at_location_ids
+ - key: item_data.variations.present_at_location_ids
+ foreign-key: absent_at_location_ids
+ - key: present_at_location_ids
+ foreign-key: absent_at_location_ids
+ - key: item_data.modifier_list_info.modifier_list_id
+ foreign-key: id
+ - key: item_data.modifier_list_info.modifier_list_id
+ foreign-key: modifier_list_data.modifiers.modifier_data.modifier_list_id
+ - table-name: orders
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - key: item_data.variations.item_variation_data.location_overrides.location_id
+ foreign-key: id
+ - key: item_data.variations.present_at_location_ids
+ foreign-key: id
+ - key: present_at_location_ids
+ foreign-key: id
+ - key: absent_at_location_ids
+ foreign-key: refunds.id
+ - key: item_data.variations.item_variation_data.location_overrides.location_id
+ foreign-key: refunds.id
+ - key: item_data.variations.present_at_location_ids
+ foreign-key: refunds.id
+ - key: present_at_location_ids
+ foreign-key: refunds.id
+ - key: absent_at_location_ids
+ foreign-key: tenders.id
+ - key: item_data.variations.item_variation_data.location_overrides.location_id
+ foreign-key: tenders.id
+ - key: item_data.variations.present_at_location_ids
+ foreign-key: tenders.id
+ - key: present_at_location_ids
+ foreign-key: tenders.id
+ - table-name: payments
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - key: item_data.variations.item_variation_data.location_overrides.location_id
+ foreign-key: id
+ - key: item_data.variations.present_at_location_ids
+ foreign-key: id
+ - key: present_at_location_ids
+ foreign-key: id
+ - table-name: refunds
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - key: item_data.variations.item_variation_data.location_overrides.location_id
+ foreign-key: id
+ - key: item_data.variations.present_at_location_ids
+ foreign-key: id
+ - key: present_at_location_ids
+ foreign-key: id
+ - table-name: shifts
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - key: item_data.variations.item_variation_data.location_overrides.location_id
+ foreign-key: id
+ - key: item_data.variations.present_at_location_ids
+ foreign-key: id
+ - key: present_at_location_ids
+ foreign-key: id
+ - table-name: taxes
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - key: item_data.variations.item_variation_data.location_overrides.location_id
+ foreign-key: absent_at_location_ids
+ - key: item_data.variations.present_at_location_ids
+ foreign-key: absent_at_location_ids
+ - key: present_at_location_ids
+ foreign-key: absent_at_location_ids
+ - key: item_data.tax_ids
+ foreign-key: id
+- table-name: discounts
+ join:
+ - table-name: bank_accounts
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: categories
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - table-name: employees
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: location_ids
+ - table-name: inventories
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: location_id
+ - table-name: items
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - key: absent_at_location_ids
+ foreign-key: item_data.variations.item_variation_data.location_overrides.location_id
+ - key: absent_at_location_ids
+ foreign-key: item_data.variations.present_at_location_ids
+ - key: absent_at_location_ids
+ foreign-key: present_at_location_ids
+ - table-name: locations
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: modifier_lists
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - table-name: orders
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - key: absent_at_location_ids
+ foreign-key: refunds.id
+ - key: absent_at_location_ids
+ foreign-key: tenders.id
+ - table-name: payments
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: refunds
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: shifts
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: taxes
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+- table-name: employees
+ join:
+ - table-name: shifts
+ keys:
+ - key: id
+ foreign-key: employee_id
+ - key: location_ids
+ foreign-key: id
+ - table-name: bank_accounts
+ keys:
+ - key: location_ids
+ foreign-key: id
+ - table-name: categories
+ keys:
+ - key: location_ids
+ foreign-key: absent_at_location_ids
+ - table-name: discounts
+ keys:
+ - key: location_ids
+ foreign-key: absent_at_location_ids
+ - table-name: inventories
+ keys:
+ - key: location_ids
+ foreign-key: location_id
+ - table-name: items
+ keys:
+ - key: location_ids
+ foreign-key: absent_at_location_ids
+ - key: location_ids
+ foreign-key: item_data.variations.item_variation_data.location_overrides.location_id
+ - key: location_ids
+ foreign-key: item_data.variations.present_at_location_ids
+ - key: location_ids
+ foreign-key: present_at_location_ids
+ - table-name: locations
+ keys:
+ - key: location_ids
+ foreign-key: id
+ - table-name: modifier_lists
+ keys:
+ - key: location_ids
+ foreign-key: absent_at_location_ids
+ - table-name: orders
+ keys:
+ - key: location_ids
+ foreign-key: id
+ - key: location_ids
+ foreign-key: refunds.id
+ - key: location_ids
+ foreign-key: tenders.id
+ - table-name: payments
+ keys:
+ - key: location_ids
+ foreign-key: id
+ - table-name: refunds
+ keys:
+ - key: location_ids
+ foreign-key: id
+ - table-name: taxes
+ keys:
+ - key: location_ids
+ foreign-key: absent_at_location_ids
+- table-name: shifts
+ join:
+ - table-name: employees
+ keys:
+ - key: employee_id
+ foreign-key: id
+ - key: id
+ foreign-key: location_ids
+ - table-name: bank_accounts
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: categories
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: discounts
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: inventories
+ keys:
+ - key: id
+ foreign-key: location_id
+ - table-name: items
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - key: id
+ foreign-key: item_data.variations.item_variation_data.location_overrides.location_id
+ - key: id
+ foreign-key: item_data.variations.present_at_location_ids
+ - key: id
+ foreign-key: present_at_location_ids
+ - table-name: locations
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: modifier_lists
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: orders
+ keys:
+ - key: id
+ foreign-key: id
+ - key: id
+ foreign-key: refunds.id
+ - key: id
+ foreign-key: tenders.id
+ - table-name: payments
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: refunds
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: taxes
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+- table-name: inventories
+ join:
+ - table-name: bank_accounts
+ keys:
+ - key: location_id
+ foreign-key: id
+ - table-name: categories
+ keys:
+ - key: location_id
+ foreign-key: absent_at_location_ids
+ - table-name: discounts
+ keys:
+ - key: location_id
+ foreign-key: absent_at_location_ids
+ - table-name: employees
+ keys:
+ - key: location_id
+ foreign-key: location_ids
+ - table-name: items
+ keys:
+ - key: location_id
+ foreign-key: absent_at_location_ids
+ - key: location_id
+ foreign-key: item_data.variations.item_variation_data.location_overrides.location_id
+ - key: location_id
+ foreign-key: item_data.variations.present_at_location_ids
+ - key: location_id
+ foreign-key: present_at_location_ids
+ - table-name: locations
+ keys:
+ - key: location_id
+ foreign-key: id
+ - table-name: modifier_lists
+ keys:
+ - key: location_id
+ foreign-key: absent_at_location_ids
+ - table-name: orders
+ keys:
+ - key: location_id
+ foreign-key: id
+ - key: location_id
+ foreign-key: refunds.id
+ - key: location_id
+ foreign-key: tenders.id
+ - table-name: payments
+ keys:
+ - key: location_id
+ foreign-key: id
+ - table-name: refunds
+ keys:
+ - key: location_id
+ foreign-key: id
+ - table-name: shifts
+ keys:
+ - key: location_id
+ foreign-key: id
+ - table-name: taxes
+ keys:
+ - key: location_id
+ foreign-key: absent_at_location_ids
+- table-name: locations
+ join:
+ - table-name: bank_accounts
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: categories
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: discounts
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: employees
+ keys:
+ - key: id
+ foreign-key: location_ids
+ - table-name: inventories
+ keys:
+ - key: id
+ foreign-key: location_id
+ - table-name: items
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - key: id
+ foreign-key: item_data.variations.item_variation_data.location_overrides.location_id
+ - key: id
+ foreign-key: item_data.variations.present_at_location_ids
+ - key: id
+ foreign-key: present_at_location_ids
+ - table-name: modifier_lists
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: orders
+ keys:
+ - key: id
+ foreign-key: id
+ - key: id
+ foreign-key: refunds.id
+ - key: id
+ foreign-key: tenders.id
+ - table-name: payments
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: refunds
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: shifts
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: taxes
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+- table-name: modifier_lists
+ join:
+ - table-name: bank_accounts
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: categories
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - table-name: discounts
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - table-name: employees
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: location_ids
+ - table-name: inventories
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: location_id
+ - table-name: items
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - key: absent_at_location_ids
+ foreign-key: item_data.variations.item_variation_data.location_overrides.location_id
+ - key: absent_at_location_ids
+ foreign-key: item_data.variations.present_at_location_ids
+ - key: absent_at_location_ids
+ foreign-key: present_at_location_ids
+ - key: id
+ foreign-key: item_data.modifier_list_info.modifier_list_id
+ - key: modifier_list_data.modifiers.modifier_data.modifier_list_id
+ foreign-key: item_data.modifier_list_info.modifier_list_id
+ - table-name: locations
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: orders
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - key: absent_at_location_ids
+ foreign-key: refunds.id
+ - key: absent_at_location_ids
+ foreign-key: tenders.id
+ - table-name: payments
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: refunds
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: shifts
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: taxes
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+- table-name: orders
+ join:
+ - table-name: bank_accounts
+ keys:
+ - key: id
+ foreign-key: id
+ - key: refunds.id
+ foreign-key: id
+ - key: tenders.id
+ foreign-key: id
+ - table-name: categories
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - key: refunds.id
+ foreign-key: absent_at_location_ids
+ - key: tenders.id
+ foreign-key: absent_at_location_ids
+ - table-name: discounts
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - key: refunds.id
+ foreign-key: absent_at_location_ids
+ - key: tenders.id
+ foreign-key: absent_at_location_ids
+ - table-name: employees
+ keys:
+ - key: id
+ foreign-key: location_ids
+ - key: refunds.id
+ foreign-key: location_ids
+ - key: tenders.id
+ foreign-key: location_ids
+ - table-name: inventories
+ keys:
+ - key: id
+ foreign-key: location_id
+ - key: refunds.id
+ foreign-key: location_id
+ - key: tenders.id
+ foreign-key: location_id
+ - table-name: items
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - key: refunds.id
+ foreign-key: absent_at_location_ids
+ - key: tenders.id
+ foreign-key: absent_at_location_ids
+ - key: id
+ foreign-key: item_data.variations.item_variation_data.location_overrides.location_id
+ - key: refunds.id
+ foreign-key: item_data.variations.item_variation_data.location_overrides.location_id
+ - key: tenders.id
+ foreign-key: item_data.variations.item_variation_data.location_overrides.location_id
+ - key: id
+ foreign-key: item_data.variations.present_at_location_ids
+ - key: refunds.id
+ foreign-key: item_data.variations.present_at_location_ids
+ - key: tenders.id
+ foreign-key: item_data.variations.present_at_location_ids
+ - key: id
+ foreign-key: present_at_location_ids
+ - key: refunds.id
+ foreign-key: present_at_location_ids
+ - key: tenders.id
+ foreign-key: present_at_location_ids
+ - table-name: locations
+ keys:
+ - key: id
+ foreign-key: id
+ - key: refunds.id
+ foreign-key: id
+ - key: tenders.id
+ foreign-key: id
+ - table-name: modifier_lists
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - key: refunds.id
+ foreign-key: absent_at_location_ids
+ - key: tenders.id
+ foreign-key: absent_at_location_ids
+ - table-name: payments
+ keys:
+ - key: id
+ foreign-key: id
+ - key: refunds.id
+ foreign-key: id
+ - key: tenders.id
+ foreign-key: id
+ - key: id
+ foreign-key: order_id
+ - key: order_id
+ foreign-key: order_id
+ - key: returns.source_order_id
+ foreign-key: order_id
+ - key: payment_id
+ foreign-key: id
+ - key: refund_ids
+ foreign-key: order_id
+ - key: refunds.id
+ foreign-key: order_id
+ - key: refund_ids
+ foreign-key: refund_ids
+ - key: refunds.id
+ foreign-key: refund_ids
+ - table-name: refunds
+ keys:
+ - key: id
+ foreign-key: id
+ - key: refunds.id
+ foreign-key: id
+ - key: tenders.id
+ foreign-key: id
+ - key: id
+ foreign-key: order_id
+ - key: order_id
+ foreign-key: order_id
+ - key: returns.source_order_id
+ foreign-key: order_id
+ - key: payment_id
+ foreign-key: payment_id
+ - key: tenders.id
+ foreign-key: payment_id
+ - key: refund_ids
+ foreign-key: id
+ - table-name: shifts
+ keys:
+ - key: id
+ foreign-key: id
+ - key: refunds.id
+ foreign-key: id
+ - key: tenders.id
+ foreign-key: id
+ - table-name: taxes
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - key: refunds.id
+ foreign-key: absent_at_location_ids
+ - key: tenders.id
+ foreign-key: absent_at_location_ids
+- table-name: payments
+ join:
+ - table-name: bank_accounts
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: categories
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: discounts
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: employees
+ keys:
+ - key: id
+ foreign-key: location_ids
+ - table-name: inventories
+ keys:
+ - key: id
+ foreign-key: location_id
+ - table-name: items
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - key: id
+ foreign-key: item_data.variations.item_variation_data.location_overrides.location_id
+ - key: id
+ foreign-key: item_data.variations.present_at_location_ids
+ - key: id
+ foreign-key: present_at_location_ids
+ - table-name: locations
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: modifier_lists
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: orders
+ keys:
+ - key: id
+ foreign-key: id
+ - key: id
+ foreign-key: refunds.id
+ - key: id
+ foreign-key: tenders.id
+ - key: order_id
+ foreign-key: id
+ - key: order_id
+ foreign-key: order_id
+ - key: order_id
+ foreign-key: returns.source_order_id
+ - key: id
+ foreign-key: payment_id
+ - key: order_id
+ foreign-key: refund_ids
+ - key: refund_ids
+ foreign-key: refund_ids
+ - key: order_id
+ foreign-key: refunds.id
+ - key: refund_ids
+ foreign-key: refunds.id
+ - table-name: refunds
+ keys:
+ - key: id
+ foreign-key: id
+ - key: order_id
+ foreign-key: order_id
+ - key: id
+ foreign-key: payment_id
+ - key: order_id
+ foreign-key: id
+ - key: refund_ids
+ foreign-key: id
+ - table-name: shifts
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: taxes
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+- table-name: refunds
+ join:
+ - table-name: bank_accounts
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: categories
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: discounts
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: employees
+ keys:
+ - key: id
+ foreign-key: location_ids
+ - table-name: inventories
+ keys:
+ - key: id
+ foreign-key: location_id
+ - table-name: items
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - key: id
+ foreign-key: item_data.variations.item_variation_data.location_overrides.location_id
+ - key: id
+ foreign-key: item_data.variations.present_at_location_ids
+ - key: id
+ foreign-key: present_at_location_ids
+ - table-name: locations
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: modifier_lists
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: orders
+ keys:
+ - key: id
+ foreign-key: id
+ - key: id
+ foreign-key: refunds.id
+ - key: id
+ foreign-key: tenders.id
+ - key: order_id
+ foreign-key: id
+ - key: order_id
+ foreign-key: order_id
+ - key: order_id
+ foreign-key: returns.source_order_id
+ - key: payment_id
+ foreign-key: payment_id
+ - key: payment_id
+ foreign-key: tenders.id
+ - key: id
+ foreign-key: refund_ids
+ - table-name: payments
+ keys:
+ - key: id
+ foreign-key: id
+ - key: order_id
+ foreign-key: order_id
+ - key: payment_id
+ foreign-key: id
+ - key: id
+ foreign-key: order_id
+ - key: id
+ foreign-key: refund_ids
+ - table-name: shifts
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: taxes
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+- table-name: taxes
+ join:
+ - table-name: bank_accounts
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: categories
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - table-name: discounts
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - table-name: employees
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: location_ids
+ - table-name: inventories
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: location_id
+ - table-name: items
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - key: absent_at_location_ids
+ foreign-key: item_data.variations.item_variation_data.location_overrides.location_id
+ - key: absent_at_location_ids
+ foreign-key: item_data.variations.present_at_location_ids
+ - key: absent_at_location_ids
+ foreign-key: present_at_location_ids
+ - key: id
+ foreign-key: item_data.tax_ids
+ - table-name: locations
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: modifier_lists
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - table-name: orders
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - key: absent_at_location_ids
+ foreign-key: refunds.id
+ - key: absent_at_location_ids
+ foreign-key: tenders.id
+ - table-name: payments
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: refunds
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: shifts
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
diff --git a/_data/taps/schemas/square/v1/square-v1-tables.yml b/_data/taps/schemas/square/v1/square-v1-tables.yml
new file mode 100644
index 000000000..2212dcf4f
--- /dev/null
+++ b/_data/taps/schemas/square/v1/square-v1-tables.yml
@@ -0,0 +1,224 @@
+tap: square
+version: '1'
+tables:
+- name: bank_accounts
+ description: 'The `{{ table.name }}` contains information about a merchant''s bank
+ account in {{ integration.display_name }}.
+
+
+ **Note**: This table can''t be replicated if the **Connect to a sandbox environment**
+ box is checked in the [integration''s settings](#add-stitch-data-source) due to
+ limits imposed by {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developer.squareup.com/reference/square/bank-accounts-api
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/bank_accounts.json
+ api-method: https://developer.squareup.com/reference/square/bank-accounts-api/get-bank-account
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: cash_drawer_shifts
+ description: 'The `{{ table.name }}` table contains infomration about cash transactions
+ in {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developer.squareup.com/reference/square/cash-drawers-api/retrieve-cash-drawer-shift#response-body
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/cash_drawer_shifts.json
+ api-method: https://developer.squareup.com/reference/square/cash-drawers-api/retrieve-cash-drawer-shift
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: categories
+ description: 'The `{{ table.name }}` table contains information about item categories
+ for a given location in {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developer.squareup.com/reference/square/catalog-api/v1-list-categories
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/categories.json
+ api-method: https://developer.squareup.com/reference/square/catalog-api/list-catalog
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: customers
+ description: 'The `{{ table.name }}` contains information about customer profiles
+ associated with your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/customers.json
+ api-method: https://developer.squareup.com/reference/square/customers-api/list-customers
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: discounts
+ description: 'The `{{ table.name }}` table contains information about discounts
+ for a given location in {{ integration.display_name }}.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/discounts.json
+ api-method: https://developer.squareup.com/reference/square/catalog-api/list-catalog
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: employees
+ description: 'The `{{ table.name }}` table contains information about your employees
+ in {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developer.squareup.com/reference/square/employees-api
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/employees.json
+ api-method: https://developer.squareup.com/reference/square/employees-api/v1-list-employees
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: inventories
+ description: 'The `{{ table.name }}` table contains info about the current calculated
+ stock count for a {{ integration.display_name }} location.
+
+ '
+ links:
+ doc-link: https://developer.squareup.com/reference/square/inventory-api
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/inventories.json
+ api-method: https://developer.squareup.com/reference/square/inventory-api/retrieve-inventory-count
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: items
+ description: 'The `{{ table.name }}` table contains information about items for
+ a given location in {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developer.squareup.com/reference/square/catalog-api
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/items.json
+ api-method: https://developer.squareup.com/reference/square/catalog-api/list-catalog
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: locations
+ description: 'The `{{ table.name }}` table contains information about all of your
+ business locations in {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developer.squareup.com/reference/square/locations-api
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/locations.json
+ api-method: https://developer.squareup.com/reference/square/locations-api/list-locations
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: modifier_lists
+ description: 'The `{{ table.name }}` table contains information about modifier lists
+ for a given location in {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developer.squareup.com/reference/square/catalog-api/v1-list-modifier-lists
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/modifier_lists.json
+ api-method: https://developer.squareup.com/reference/square/catalog-api/list-catalog
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: orders
+ description: 'The `{{ table.name }}` table contains information about order updates
+ in {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developer.squareup.com/reference/square/orders-api
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/orders.json
+ api-method: https://developer.squareup.com/reference/square/orders-api/search-orders
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: payments
+ description: 'The `{{ table.name }}` table contains information about all payments
+ taken in {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developer.squareup.com/reference/square/payments-api
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/payments.json
+ api-method: https://developer.squareup.com/reference/square/payments-api/list-payments
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: refunds
+ description: 'The `{{ table.name }}` table contains information about refunds on
+ items in {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developer.squareup.com/reference/square/refunds-api
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/refunds.json
+ api-method: https://developer.squareup.com/reference/square/refunds-api/list-payment-refunds
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: roles
+ description: "The `{{ table.name }}` table contains information about employees'\
+ \ roles in {{ integration.display_name }}. \n\n**Note**: This table can't be replicated\
+ \ if the **Connect to a sandbox environment** box is checked in the [integration's\
+ \ settings](#add-stitch-data-source) due to limits imposed by {{ integration.display_name\
+ \ }}.\n"
+ links:
+ doc-link: https://developer.squareup.com/reference/square/employees-api
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/roles.json
+ api-method: https://developer.squareup.com/reference/square/employees-api/v1-list-employee-roles
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: settlements
+ description: 'The `{{ table.name }}` table contains information about deposits and
+ withdrawals issued by {{ integration.display_name }}.
+
+
+ **Note**: This table can''t be replicated if the **Connect to a sandbox environment**
+ box is checked in the [integration''s settings](#add-stitch-data-source) due to
+ limits imposed by {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developer.squareup.com/reference/square/settlements-api
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/settlements.json
+ api-method: https://developer.squareup.com/reference/square/settlements-api/v1-list-settlements
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: shifts
+ description: 'The `{{ table.name }}` table contains information about employee''s
+ shifts in {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developer.squareup.com/reference/square/labor-api
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/shifts.json
+ api-method: https://developer.squareup.com/reference/square/labor-api/search-shifts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: taxes
+ description: 'The `{{ table.name }}` table contains information about taxes enabled
+ on your items in {{ integration.display_name }}.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/taxes.json
+ api-method: https://developer.squareup.com/reference/square/catalog-api/list-catalog
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/square/v2/json/bank_accounts.json b/_data/taps/schemas/square/v2/json/bank_accounts.json
new file mode 100644
index 000000000..a61c72732
--- /dev/null
+++ b/_data/taps/schemas/square/v2/json/bank_accounts.json
@@ -0,0 +1,104 @@
+{
+ "properties": {
+ "account_number_suffix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "creditable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "debit_mandate_reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "debitable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "holder_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "primary_bank_identification_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "secondary_bank_identification_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v2/json/cash_drawer_shifts.json b/_data/taps/schemas/square/v2/json/cash_drawer_shifts.json
new file mode 100644
index 000000000..418172427
--- /dev/null
+++ b/_data/taps/schemas/square/v2/json/cash_drawer_shifts.json
@@ -0,0 +1,119 @@
+{
+ "properties": {
+ "closed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "closed_cash_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ended_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "expected_cash_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "opened_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "opened_cash_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v2/json/categories.json b/_data/taps/schemas/square/v2/json/categories.json
new file mode 100644
index 000000000..07a8fea4a
--- /dev/null
+++ b/_data/taps/schemas/square/v2/json/categories.json
@@ -0,0 +1,70 @@
+{
+ "properties": {
+ "absent_at_location_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "category_data": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "present_at_all_locations": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v2/json/customers.json b/_data/taps/schemas/square/v2/json/customers.json
new file mode 100644
index 000000000..767f17c4a
--- /dev/null
+++ b/_data/taps/schemas/square/v2/json/customers.json
@@ -0,0 +1,246 @@
+{
+ "properties": {
+ "address": {
+ "properties": {
+ "address_line_1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line_3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "administrative_district_level_1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "administrative_district_level_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "administrative_district_level_3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locality": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sublocality": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sublocality_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sublocality_3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "birthday": {
+ "anyOf": [
+ {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ ]
+ },
+ "company_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creation_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "family_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "given_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preferences": {
+ "properties": {
+ "email_unsubscribed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "segment_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tax_ids": {
+ "properties": {
+ "eu_vat": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v2/json/discounts.json b/_data/taps/schemas/square/v2/json/discounts.json
new file mode 100644
index 000000000..eadada9c7
--- /dev/null
+++ b/_data/taps/schemas/square/v2/json/discounts.json
@@ -0,0 +1,126 @@
+{
+ "properties": {
+ "absent_at_location_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "discount_data": {
+ "properties": {
+ "amount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "application_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "label_color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modify_tax_basis": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percentage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pin_required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "present_at_all_locations": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v2/json/inventories.json b/_data/taps/schemas/square/v2/json/inventories.json
new file mode 100644
index 000000000..2b2747745
--- /dev/null
+++ b/_data/taps/schemas/square/v2/json/inventories.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "calculated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "catalog_object_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "catalog_object_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v2/json/items.json b/_data/taps/schemas/square/v2/json/items.json
new file mode 100644
index 000000000..33191026c
--- /dev/null
+++ b/_data/taps/schemas/square/v2/json/items.json
@@ -0,0 +1,392 @@
+{
+ "properties": {
+ "absent_at_location_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "item_data": {
+ "properties": {
+ "abbreviation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "available_electronically": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "available_for_pickup": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "available_online": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "category_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "item_options": {
+ "items": {
+ "properties": {
+ "item_option_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "label_color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "legacy_tax_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "modifier_list_info": {
+ "items": {
+ "properties": {
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "modifier_list_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "skip_modifier_screen": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tax_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "variations": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "item_variation_data": {
+ "properties": {
+ "inventory_alert_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location_overrides": {
+ "items": {
+ "properties": {
+ "inventory_alert_threshold": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inventory_alert_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sold_out": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "track_inventory": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ordinal": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "pricing_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "track_inventory": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "user_data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "present_at_all_locations": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "present_at_location_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "visibility": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "present_at_all_locations": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "present_at_location_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v2/json/locations.json b/_data/taps/schemas/square/v2/json/locations.json
new file mode 100644
index 000000000..fdcb1379b
--- /dev/null
+++ b/_data/taps/schemas/square/v2/json/locations.json
@@ -0,0 +1,304 @@
+{
+ "properties": {
+ "address": {
+ "properties": {
+ "address_line_1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line_3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "administrative_district_level_1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "administrative_district_level_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "administrative_district_level_3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locality": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sublocality": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sublocality_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sublocality_3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "business_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "business_hours": {
+ "properties": {
+ "periods": {
+ "items": {
+ "properties": {
+ "day_of_week": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end_local_time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_local_time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "business_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "capabilities": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "coordinates": {
+ "properties": {
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "facebook_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "full_format_logo_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "instagram_username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "language_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "logo_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mcc": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "merchant_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pos_background_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "twitter_username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "website_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v2/json/modifier_lists.json b/_data/taps/schemas/square/v2/json/modifier_lists.json
new file mode 100644
index 000000000..11764a263
--- /dev/null
+++ b/_data/taps/schemas/square/v2/json/modifier_lists.json
@@ -0,0 +1,184 @@
+{
+ "properties": {
+ "absent_at_location_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "modifier_list_data": {
+ "properties": {
+ "modifiers": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "modifier_data": {
+ "properties": {
+ "modifier_list_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "on_by_default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ordinal": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "present_at_all_locations": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ordinal": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "selection_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "present_at_all_locations": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v2/json/orders.json b/_data/taps/schemas/square/v2/json/orders.json
new file mode 100644
index 000000000..cc39045ab
--- /dev/null
+++ b/_data/taps/schemas/square/v2/json/orders.json
@@ -0,0 +1,2748 @@
+{
+ "properties": {
+ "closed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "discounts": {
+ "items": {
+ "properties": {
+ "amount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "applied_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "catalog_object_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "catalog_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percentage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pricing_rule_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "fulfillments": {
+ "items": {
+ "properties": {
+ "pickup_details": {
+ "properties": {
+ "accepted_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "auto_complete_duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cancel_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "canceled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "expired_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "expires_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "picked_up_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "pickup_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "pickup_window_duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "placed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "prep_time_duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ready_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "recipient": {
+ "properties": {
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "rejected_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "schedule_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_items": {
+ "items": {
+ "properties": {
+ "base_price_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "catalog_object_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "catalog_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "gross_sales_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "item_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modifiers": {
+ "items": {
+ "properties": {
+ "base_price_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "catalog_object_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "catalog_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_price_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity_unit": {
+ "properties": {
+ "catalog_object_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "catalog_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "measurement_unit": {
+ "properties": {
+ "area_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_unit": {
+ "properties": {
+ "abbreviation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "generic_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "length_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "time_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "volume_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "weight_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "precision": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_discount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_tax_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "variation_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "variation_total_price_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "net_amount_due_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "net_amounts": {
+ "properties": {
+ "discount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "service_charge_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tax_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tip_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "pricing_options": {
+ "properties": {
+ "auto_apply_discounts": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refunds": {
+ "items": {
+ "properties": {
+ "amount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "processing_fee_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tender_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "return_amounts": {
+ "properties": {
+ "discount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "service_charge_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tax_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tip_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "returns": {
+ "items": {
+ "properties": {
+ "return_amounts": {
+ "properties": {
+ "discount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "service_charge_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tax_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tip_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "return_discounts": {
+ "items": {
+ "properties": {
+ "amount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "applied_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "catalog_object_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "catalog_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percentage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source_discount_uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "return_line_items": {
+ "items": {
+ "properties": {
+ "applied_discounts": {
+ "items": {
+ "properties": {
+ "applied_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "discount_uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "applied_service_charges": {
+ "items": {
+ "properties": {
+ "applied_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "service_charge_uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "applied_taxes": {
+ "items": {
+ "properties": {
+ "applied_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tax_uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "base_price_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "catalog_object_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "catalog_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "gross_return_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "item_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity_unit": {
+ "properties": {
+ "catalog_object_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "catalog_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "measurement_unit": {
+ "properties": {
+ "area_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_unit": {
+ "properties": {
+ "abbreviation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "generic_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "length_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "time_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "volume_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "weight_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "precision": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "return_modifiers": {
+ "items": {
+ "properties": {
+ "base_price_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "catalog_object_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "catalog_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source_modifier_uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_price_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "source_line_item_uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_discount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_service_charge_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_tax_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "variation_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "variation_total_price_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "return_service_charges": {
+ "items": {
+ "properties": {
+ "amount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "applied_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "calculation_phase": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "catalog_object_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "catalog_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percentage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source_service_charge_uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "total_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_tax_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "return_taxes": {
+ "items": {
+ "properties": {
+ "applied_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "catalog_object_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "catalog_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percentage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source_tax_uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "rounding_adjustment": {
+ "properties": {
+ "amount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "source_order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "service_charges": {
+ "items": {
+ "properties": {
+ "amount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "applied_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "calculation_phase": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "catalog_object_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "catalog_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percentage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "total_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_tax_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "source": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "taxes": {
+ "items": {
+ "properties": {
+ "applied_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "catalog_object_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "catalog_version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percentage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tenders": {
+ "items": {
+ "properties": {
+ "amount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card_details": {
+ "properties": {
+ "card": {
+ "properties": {
+ "billing_address": {
+ "properties": {
+ "address_line_1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line_3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "administrative_district_level_1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "administrative_district_level_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "administrative_district_level_3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locality": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sublocality": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sublocality_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sublocality_3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "bin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_co_brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cardholder_name ": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "merchant_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prepaid_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "entry_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "cash_details": {
+ "properties": {
+ "buyer_tendered_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "change_back_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "processing_fee_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tip_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "transaction_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "total_discount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_service_charge_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_tax_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_tip_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v2/json/payments.json b/_data/taps/schemas/square/v2/json/payments.json
new file mode 100644
index 000000000..19f656298
--- /dev/null
+++ b/_data/taps/schemas/square/v2/json/payments.json
@@ -0,0 +1,1186 @@
+{
+ "properties": {
+ "amount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "app_fee_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "application_details": {
+ "properties": {
+ "application_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "square_product": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "approved_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "bank_account_details": {
+ "properties": {
+ "account_ownership_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ach_details": {
+ "properties": {
+ "account_number_suffix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "errors": {
+ "items": {
+ "properties": {
+ "category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "detail": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transfer_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "billing_address": {
+ "properties": {
+ "address_line_1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line_3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "administrative_district_level_1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "administrative_district_level_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "administrative_district_level_3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locality": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sublocality": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sublocality_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sublocality_3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "buy_now_pay_later_details": {
+ "properties": {
+ "afterpay_details": {
+ "properties": {
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "clearpay_details": {
+ "properties": {
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "buyer_email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "capabilities": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "card_details": {
+ "properties": {
+ "application_cryptogram": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application_identifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "auth_result_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avs_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card": {
+ "properties": {
+ "billing_address": {
+ "properties": {
+ "address_line_1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line_3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "administrative_district_level_1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "administrative_district_level_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "administrative_district_level_3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locality": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sublocality": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sublocality_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sublocality_3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "bin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_co_brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cardholder_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "merchant_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prepaid_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card_payment_timeline": {
+ "properties": {
+ "authorized_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "captured_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "voided_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "cvv_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entry_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "errors": {
+ "items": {
+ "properties": {
+ "category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "detail": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verification_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verification_results": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "cash_details": {
+ "properties": {
+ "buyer_supplied_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "change_back_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delay_action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delay_duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delayed_until": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "device_details": {
+ "properties": {
+ "device_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "device_installation_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "device_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "external_details": {
+ "properties": {
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source_fee_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "source_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "note": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "processing_fee": {
+ "items": {
+ "properties": {
+ "amount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "effective_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "receipt_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "refunded_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "risk_evaluation": {
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "risk_level": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shipping_address": {
+ "properties": {
+ "address_line_1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line_3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "administrative_district_level_1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "administrative_district_level_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "administrative_district_level_3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locality": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sublocality": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sublocality_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sublocality_3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "source_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_description_identifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "team_member_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tip_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "total_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "version_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "wallet_details": {
+ "properties": {
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cash_app_details": {
+ "properties": {
+ "buyer_cashtag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "buyer_country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "buyer_full_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v2/json/payouts.json b/_data/taps/schemas/square/v2/json/payouts.json
new file mode 100644
index 000000000..a0b5acd95
--- /dev/null
+++ b/_data/taps/schemas/square/v2/json/payouts.json
@@ -0,0 +1,148 @@
+{
+ "properties": {
+ "amount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "arrival_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "destination": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "end_to_end_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payout_fee": {
+ "items": {
+ "properties": {
+ "amount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "effective_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v2/json/refunds.json b/_data/taps/schemas/square/v2/json/refunds.json
new file mode 100644
index 000000000..209127eb2
--- /dev/null
+++ b/_data/taps/schemas/square/v2/json/refunds.json
@@ -0,0 +1,378 @@
+{
+ "properties": {
+ "amount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "app_fee_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "destination_details": {
+ "properties": {
+ "card_details": {
+ "properties": {
+ "card": {
+ "properties": {
+ "billing_address": {
+ "properties": {
+ "address_line_1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line_3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "administrative_district_level_1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "administrative_district_level_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "administrative_district_level_3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locality": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sublocality": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sublocality_2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sublocality_3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "bin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_co_brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cardholder_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "merchant_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prepaid_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "entry_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "destination_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "processing_fee": {
+ "items": {
+ "properties": {
+ "amount_money": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "effective_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "team_member_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unlinked": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v2/json/roles.json b/_data/taps/schemas/square/v2/json/roles.json
new file mode 100644
index 000000000..ef6b1d547
--- /dev/null
+++ b/_data/taps/schemas/square/v2/json/roles.json
@@ -0,0 +1,50 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_owner": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "permissions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v2/json/shifts.json b/_data/taps/schemas/square/v2/json/shifts.json
new file mode 100644
index 000000000..9273b6f86
--- /dev/null
+++ b/_data/taps/schemas/square/v2/json/shifts.json
@@ -0,0 +1,164 @@
+{
+ "properties": {
+ "breaks": {
+ "items": {
+ "properties": {
+ "break_type_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "expected_duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_paid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "end_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "team_member_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "wage": {
+ "properties": {
+ "hourly_rate": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "job_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v2/json/taxes.json b/_data/taps/schemas/square/v2/json/taxes.json
new file mode 100644
index 000000000..55c350130
--- /dev/null
+++ b/_data/taps/schemas/square/v2/json/taxes.json
@@ -0,0 +1,112 @@
+{
+ "properties": {
+ "absent_at_location_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "present_at_all_locations": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tax_data": {
+ "properties": {
+ "applies_to_custom_amounts": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "calculation_phase": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "inclusion_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percentage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_type_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_type_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v2/json/team_members.json b/_data/taps/schemas/square/v2/json/team_members.json
new file mode 100644
index 000000000..ac698833c
--- /dev/null
+++ b/_data/taps/schemas/square/v2/json/team_members.json
@@ -0,0 +1,94 @@
+{
+ "properties": {
+ "assigned_locations": {
+ "properties": {
+ "assignment_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "family_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "given_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_owner": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/square/v2/square-v2-foreign-keys.yml b/_data/taps/schemas/square/v2/square-v2-foreign-keys.yml
new file mode 100644
index 000000000..766e25838
--- /dev/null
+++ b/_data/taps/schemas/square/v2/square-v2-foreign-keys.yml
@@ -0,0 +1,1111 @@
+tap: square
+version: '2'
+keys:
+ bank_accounts_id:
+ - table: bank_accounts
+ keys:
+ - id
+ categories_category_id:
+ - table: categories
+ keys:
+ - id
+ - table: items
+ keys:
+ - item_data.category_id
+ discounts_:
+ - table: discounts
+ keys:
+ - id
+ employees_id:
+ - table: team_members
+ keys:
+ - id
+ - table: shifts
+ keys:
+ - team_member_id
+ items_item_id:
+ - table: items
+ keys:
+ - id
+ - item_data.variations.item_variation_data.item_id
+ locations_id:
+ - table: bank_accounts
+ keys:
+ - id
+ - table: categories
+ keys:
+ - absent_at_location_ids
+ - table: discounts
+ keys:
+ - absent_at_location_ids
+ - table: team_members
+ keys:
+ - assigned_locations.location_ids
+ - table: inventories
+ keys:
+ - location_id
+ - table: items
+ keys:
+ - absent_at_location_ids
+ - item_data.variations.item_variation_data.location_overrides.location_id
+ - item_data.variations.present_at_location_ids
+ - present_at_location_ids
+ - table: locations
+ keys:
+ - id
+ - table: modifier_lists
+ keys:
+ - absent_at_location_ids
+ - table: orders
+ keys:
+ - id
+ - refunds.id
+ - tenders.id
+ - table: payments
+ keys:
+ - id
+ - table: refunds
+ keys:
+ - id
+ - table: shifts
+ keys:
+ - id
+ - table: taxes
+ keys:
+ - absent_at_location_ids
+ modifier_lists_modifier_list_id:
+ - table: items
+ keys:
+ - item_data.modifier_list_info.modifier_list_id
+ - table: modifier_lists
+ keys:
+ - id
+ - modifier_list_data.modifiers.modifier_data.modifier_list_id
+ orders_id:
+ - table: orders
+ keys:
+ - id
+ - returns.source_order_id
+ - table: payments
+ keys:
+ - order_id
+ - table: refunds
+ keys:
+ - order_id
+ payments_id:
+ - table: orders
+ keys:
+ - tenders.id
+ - table: payments
+ keys:
+ - id
+ - table: refunds
+ keys:
+ - payment_id
+ refunds_id:
+ - table: orders
+ keys:
+ - refunds.id
+ - table: payments
+ keys:
+ - order_id
+ - refund_ids
+ - table: refunds
+ keys:
+ - id
+ roles_id:
+ - table: roles
+ keys:
+ - id
+ taxes_id:
+ - table: items
+ keys:
+ - item_data.tax_ids
+ - table: taxes
+ keys:
+ - id
+ _tender_id:
+ - table: orders
+ keys:
+ - tender_id
+ - refunds.tender_id
+ - tenders.id
+tables:
+- table-name: bank_accounts
+ join:
+ - table-name: categories
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: discounts
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: team_members
+ keys:
+ - key: id
+ foreign-key: assigned_locations.location_ids
+ - table-name: inventories
+ keys:
+ - key: id
+ foreign-key: location_id
+ - table-name: items
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - key: id
+ foreign-key: item_data.variations.item_variation_data.location_overrides.location_id
+ - key: id
+ foreign-key: item_data.variations.present_at_location_ids
+ - key: id
+ foreign-key: present_at_location_ids
+ - table-name: locations
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: modifier_lists
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: orders
+ keys:
+ - key: id
+ foreign-key: id
+ - key: id
+ foreign-key: refunds.id
+ - key: id
+ foreign-key: tenders.id
+ - table-name: payments
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: refunds
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: shifts
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: taxes
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+- table-name: categories
+ join:
+ - table-name: items
+ keys:
+ - key: id
+ foreign-key: item_data.category_id
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - key: absent_at_location_ids
+ foreign-key: item_data.variations.item_variation_data.location_overrides.location_id
+ - key: absent_at_location_ids
+ foreign-key: item_data.variations.present_at_location_ids
+ - key: absent_at_location_ids
+ foreign-key: present_at_location_ids
+ - table-name: bank_accounts
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: discounts
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - table-name: team_members
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: assigned_locations.location_ids
+ - table-name: inventories
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: location_id
+ - table-name: locations
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: modifier_lists
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - table-name: orders
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - key: absent_at_location_ids
+ foreign-key: refunds.id
+ - key: absent_at_location_ids
+ foreign-key: tenders.id
+ - table-name: payments
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: refunds
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: shifts
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: taxes
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+- table-name: items
+ join:
+ - table-name: categories
+ keys:
+ - key: item_data.category_id
+ foreign-key: id
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - key: item_data.variations.item_variation_data.location_overrides.location_id
+ foreign-key: absent_at_location_ids
+ - key: item_data.variations.present_at_location_ids
+ foreign-key: absent_at_location_ids
+ - key: present_at_location_ids
+ foreign-key: absent_at_location_ids
+ - table-name: bank_accounts
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - key: item_data.variations.item_variation_data.location_overrides.location_id
+ foreign-key: id
+ - key: item_data.variations.present_at_location_ids
+ foreign-key: id
+ - key: present_at_location_ids
+ foreign-key: id
+ - table-name: discounts
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - key: item_data.variations.item_variation_data.location_overrides.location_id
+ foreign-key: absent_at_location_ids
+ - key: item_data.variations.present_at_location_ids
+ foreign-key: absent_at_location_ids
+ - key: present_at_location_ids
+ foreign-key: absent_at_location_ids
+ - table-name: team_members
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: assigned_locations.location_ids
+ - key: item_data.variations.item_variation_data.location_overrides.location_id
+ foreign-key: assigned_locations.location_ids
+ - key: item_data.variations.present_at_location_ids
+ foreign-key: assigned_locations.location_ids
+ - key: present_at_location_ids
+ foreign-key: assigned_locations.location_ids
+ - table-name: inventories
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: location_id
+ - key: item_data.variations.item_variation_data.location_overrides.location_id
+ foreign-key: location_id
+ - key: item_data.variations.present_at_location_ids
+ foreign-key: location_id
+ - key: present_at_location_ids
+ foreign-key: location_id
+ - table-name: locations
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - key: item_data.variations.item_variation_data.location_overrides.location_id
+ foreign-key: id
+ - key: item_data.variations.present_at_location_ids
+ foreign-key: id
+ - key: present_at_location_ids
+ foreign-key: id
+ - table-name: modifier_lists
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - key: item_data.variations.item_variation_data.location_overrides.location_id
+ foreign-key: absent_at_location_ids
+ - key: item_data.variations.present_at_location_ids
+ foreign-key: absent_at_location_ids
+ - key: present_at_location_ids
+ foreign-key: absent_at_location_ids
+ - key: item_data.modifier_list_info.modifier_list_id
+ foreign-key: id
+ - key: item_data.modifier_list_info.modifier_list_id
+ foreign-key: modifier_list_data.modifiers.modifier_data.modifier_list_id
+ - table-name: orders
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - key: item_data.variations.item_variation_data.location_overrides.location_id
+ foreign-key: id
+ - key: item_data.variations.present_at_location_ids
+ foreign-key: id
+ - key: present_at_location_ids
+ foreign-key: id
+ - key: absent_at_location_ids
+ foreign-key: refunds.id
+ - key: item_data.variations.item_variation_data.location_overrides.location_id
+ foreign-key: refunds.id
+ - key: item_data.variations.present_at_location_ids
+ foreign-key: refunds.id
+ - key: present_at_location_ids
+ foreign-key: refunds.id
+ - key: absent_at_location_ids
+ foreign-key: tenders.id
+ - key: item_data.variations.item_variation_data.location_overrides.location_id
+ foreign-key: tenders.id
+ - key: item_data.variations.present_at_location_ids
+ foreign-key: tenders.id
+ - key: present_at_location_ids
+ foreign-key: tenders.id
+ - table-name: payments
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - key: item_data.variations.item_variation_data.location_overrides.location_id
+ foreign-key: id
+ - key: item_data.variations.present_at_location_ids
+ foreign-key: id
+ - key: present_at_location_ids
+ foreign-key: id
+ - table-name: refunds
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - key: item_data.variations.item_variation_data.location_overrides.location_id
+ foreign-key: id
+ - key: item_data.variations.present_at_location_ids
+ foreign-key: id
+ - key: present_at_location_ids
+ foreign-key: id
+ - table-name: shifts
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - key: item_data.variations.item_variation_data.location_overrides.location_id
+ foreign-key: id
+ - key: item_data.variations.present_at_location_ids
+ foreign-key: id
+ - key: present_at_location_ids
+ foreign-key: id
+ - table-name: taxes
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - key: item_data.variations.item_variation_data.location_overrides.location_id
+ foreign-key: absent_at_location_ids
+ - key: item_data.variations.present_at_location_ids
+ foreign-key: absent_at_location_ids
+ - key: present_at_location_ids
+ foreign-key: absent_at_location_ids
+ - key: item_data.tax_ids
+ foreign-key: id
+- table-name: discounts
+ join:
+ - table-name: bank_accounts
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: categories
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - table-name: team_members
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: assigned_locations.location_ids
+ - table-name: inventories
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: location_id
+ - table-name: items
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - key: absent_at_location_ids
+ foreign-key: item_data.variations.item_variation_data.location_overrides.location_id
+ - key: absent_at_location_ids
+ foreign-key: item_data.variations.present_at_location_ids
+ - key: absent_at_location_ids
+ foreign-key: present_at_location_ids
+ - table-name: locations
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: modifier_lists
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - table-name: orders
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - key: absent_at_location_ids
+ foreign-key: refunds.id
+ - key: absent_at_location_ids
+ foreign-key: tenders.id
+ - table-name: payments
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: refunds
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: shifts
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: taxes
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+- table-name: team_members
+ join:
+ - table-name: shifts
+ keys:
+ - key: id
+ foreign-key: team_member_id
+ - key: assigned_locations.location_ids
+ foreign-key: id
+ - table-name: bank_accounts
+ keys:
+ - key: assigned_locations.location_ids
+ foreign-key: id
+ - table-name: categories
+ keys:
+ - key: assigned_locations.location_ids
+ foreign-key: absent_at_location_ids
+ - table-name: discounts
+ keys:
+ - key: assigned_locations.location_ids
+ foreign-key: absent_at_location_ids
+ - table-name: inventories
+ keys:
+ - key: assigned_locations.location_ids
+ foreign-key: location_id
+ - table-name: items
+ keys:
+ - key: assigned_locations.location_ids
+ foreign-key: absent_at_location_ids
+ - key: assigned_locations.location_ids
+ foreign-key: item_data.variations.item_variation_data.location_overrides.location_id
+ - key: assigned_locations.location_ids
+ foreign-key: item_data.variations.present_at_location_ids
+ - key: assigned_locations.location_ids
+ foreign-key: present_at_location_ids
+ - table-name: locations
+ keys:
+ - key: assigned_locations.location_ids
+ foreign-key: id
+ - table-name: modifier_lists
+ keys:
+ - key: assigned_locations.location_ids
+ foreign-key: absent_at_location_ids
+ - table-name: orders
+ keys:
+ - key: assigned_locations.location_ids
+ foreign-key: id
+ - key: assigned_locations.location_ids
+ foreign-key: refunds.id
+ - key: assigned_locations.location_ids
+ foreign-key: tenders.id
+ - table-name: payments
+ keys:
+ - key: assigned_locations.location_ids
+ foreign-key: id
+ - table-name: refunds
+ keys:
+ - key: assigned_locations.location_ids
+ foreign-key: id
+ - table-name: taxes
+ keys:
+ - key: assigned_locations.location_ids
+ foreign-key: absent_at_location_ids
+- table-name: shifts
+ join:
+ - table-name: team_members
+ keys:
+ - key: team_member_id
+ foreign-key: id
+ - key: id
+ foreign-key: assigned_locations.location_ids
+ - table-name: bank_accounts
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: categories
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: discounts
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: inventories
+ keys:
+ - key: id
+ foreign-key: location_id
+ - table-name: items
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - key: id
+ foreign-key: item_data.variations.item_variation_data.location_overrides.location_id
+ - key: id
+ foreign-key: item_data.variations.present_at_location_ids
+ - key: id
+ foreign-key: present_at_location_ids
+ - table-name: locations
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: modifier_lists
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: orders
+ keys:
+ - key: id
+ foreign-key: id
+ - key: id
+ foreign-key: refunds.id
+ - key: id
+ foreign-key: tenders.id
+ - table-name: payments
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: refunds
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: taxes
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+- table-name: inventories
+ join:
+ - table-name: bank_accounts
+ keys:
+ - key: location_id
+ foreign-key: id
+ - table-name: categories
+ keys:
+ - key: location_id
+ foreign-key: absent_at_location_ids
+ - table-name: discounts
+ keys:
+ - key: location_id
+ foreign-key: absent_at_location_ids
+ - table-name: team_members
+ keys:
+ - key: location_id
+ foreign-key: assigned_locations.location_ids
+ - table-name: items
+ keys:
+ - key: location_id
+ foreign-key: absent_at_location_ids
+ - key: location_id
+ foreign-key: item_data.variations.item_variation_data.location_overrides.location_id
+ - key: location_id
+ foreign-key: item_data.variations.present_at_location_ids
+ - key: location_id
+ foreign-key: present_at_location_ids
+ - table-name: locations
+ keys:
+ - key: location_id
+ foreign-key: id
+ - table-name: modifier_lists
+ keys:
+ - key: location_id
+ foreign-key: absent_at_location_ids
+ - table-name: orders
+ keys:
+ - key: location_id
+ foreign-key: id
+ - key: location_id
+ foreign-key: refunds.id
+ - key: location_id
+ foreign-key: tenders.id
+ - table-name: payments
+ keys:
+ - key: location_id
+ foreign-key: id
+ - table-name: refunds
+ keys:
+ - key: location_id
+ foreign-key: id
+ - table-name: shifts
+ keys:
+ - key: location_id
+ foreign-key: id
+ - table-name: taxes
+ keys:
+ - key: location_id
+ foreign-key: absent_at_location_ids
+- table-name: locations
+ join:
+ - table-name: bank_accounts
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: categories
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: discounts
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: team_members
+ keys:
+ - key: id
+ foreign-key: assigned_locations.location_ids
+ - table-name: inventories
+ keys:
+ - key: id
+ foreign-key: location_id
+ - table-name: items
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - key: id
+ foreign-key: item_data.variations.item_variation_data.location_overrides.location_id
+ - key: id
+ foreign-key: item_data.variations.present_at_location_ids
+ - key: id
+ foreign-key: present_at_location_ids
+ - table-name: modifier_lists
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: orders
+ keys:
+ - key: id
+ foreign-key: id
+ - key: id
+ foreign-key: refunds.id
+ - key: id
+ foreign-key: tenders.id
+ - table-name: payments
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: refunds
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: shifts
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: taxes
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+- table-name: modifier_lists
+ join:
+ - table-name: bank_accounts
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: categories
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - table-name: discounts
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - table-name: team_members
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: assigned_locations.location_ids
+ - table-name: inventories
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: location_id
+ - table-name: items
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - key: absent_at_location_ids
+ foreign-key: item_data.variations.item_variation_data.location_overrides.location_id
+ - key: absent_at_location_ids
+ foreign-key: item_data.variations.present_at_location_ids
+ - key: absent_at_location_ids
+ foreign-key: present_at_location_ids
+ - key: id
+ foreign-key: item_data.modifier_list_info.modifier_list_id
+ - key: modifier_list_data.modifiers.modifier_data.modifier_list_id
+ foreign-key: item_data.modifier_list_info.modifier_list_id
+ - table-name: locations
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: orders
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - key: absent_at_location_ids
+ foreign-key: refunds.id
+ - key: absent_at_location_ids
+ foreign-key: tenders.id
+ - table-name: payments
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: refunds
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: shifts
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: taxes
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+- table-name: orders
+ join:
+ - table-name: bank_accounts
+ keys:
+ - key: id
+ foreign-key: id
+ - key: refunds.id
+ foreign-key: id
+ - key: tenders.id
+ foreign-key: id
+ - table-name: categories
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - key: refunds.id
+ foreign-key: absent_at_location_ids
+ - key: tenders.id
+ foreign-key: absent_at_location_ids
+ - table-name: discounts
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - key: refunds.id
+ foreign-key: absent_at_location_ids
+ - key: tenders.id
+ foreign-key: absent_at_location_ids
+ - table-name: team_members
+ keys:
+ - key: id
+ foreign-key: assigned_locations.location_ids
+ - key: refunds.id
+ foreign-key: assigned_locations.location_ids
+ - key: tenders.id
+ foreign-key: assigned_locations.location_ids
+ - table-name: inventories
+ keys:
+ - key: id
+ foreign-key: location_id
+ - key: refunds.id
+ foreign-key: location_id
+ - key: tenders.id
+ foreign-key: location_id
+ - table-name: items
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - key: refunds.id
+ foreign-key: absent_at_location_ids
+ - key: tenders.id
+ foreign-key: absent_at_location_ids
+ - key: id
+ foreign-key: item_data.variations.item_variation_data.location_overrides.location_id
+ - key: refunds.id
+ foreign-key: item_data.variations.item_variation_data.location_overrides.location_id
+ - key: tenders.id
+ foreign-key: item_data.variations.item_variation_data.location_overrides.location_id
+ - key: id
+ foreign-key: item_data.variations.present_at_location_ids
+ - key: refunds.id
+ foreign-key: item_data.variations.present_at_location_ids
+ - key: tenders.id
+ foreign-key: item_data.variations.present_at_location_ids
+ - key: id
+ foreign-key: present_at_location_ids
+ - key: refunds.id
+ foreign-key: present_at_location_ids
+ - key: tenders.id
+ foreign-key: present_at_location_ids
+ - table-name: locations
+ keys:
+ - key: id
+ foreign-key: id
+ - key: refunds.id
+ foreign-key: id
+ - key: tenders.id
+ foreign-key: id
+ - table-name: modifier_lists
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - key: refunds.id
+ foreign-key: absent_at_location_ids
+ - key: tenders.id
+ foreign-key: absent_at_location_ids
+ - table-name: payments
+ keys:
+ - key: id
+ foreign-key: id
+ - key: refunds.id
+ foreign-key: id
+ - key: tenders.id
+ foreign-key: id
+ - key: id
+ foreign-key: order_id
+ - key: returns.source_order_id
+ foreign-key: order_id
+ - key: refunds.id
+ foreign-key: order_id
+ - key: refunds.id
+ foreign-key: refund_ids
+ - table-name: refunds
+ keys:
+ - key: id
+ foreign-key: id
+ - key: refunds.id
+ foreign-key: id
+ - key: tenders.id
+ foreign-key: id
+ - key: id
+ foreign-key: order_id
+ - key: returns.source_order_id
+ foreign-key: order_id
+ - key: tenders.id
+ foreign-key: payment_id
+ - table-name: shifts
+ keys:
+ - key: id
+ foreign-key: id
+ - key: refunds.id
+ foreign-key: id
+ - key: tenders.id
+ foreign-key: id
+ - table-name: taxes
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - key: refunds.id
+ foreign-key: absent_at_location_ids
+ - key: tenders.id
+ foreign-key: absent_at_location_ids
+- table-name: payments
+ join:
+ - table-name: bank_accounts
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: categories
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: discounts
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: team_members
+ keys:
+ - key: id
+ foreign-key: assigned_locations.location_ids
+ - table-name: inventories
+ keys:
+ - key: id
+ foreign-key: location_id
+ - table-name: items
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - key: id
+ foreign-key: item_data.variations.item_variation_data.location_overrides.location_id
+ - key: id
+ foreign-key: item_data.variations.present_at_location_ids
+ - key: id
+ foreign-key: present_at_location_ids
+ - table-name: locations
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: modifier_lists
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: orders
+ keys:
+ - key: id
+ foreign-key: id
+ - key: id
+ foreign-key: refunds.id
+ - key: id
+ foreign-key: tenders.id
+ - key: order_id
+ foreign-key: id
+ - key: order_id
+ foreign-key: returns.source_order_id
+ - key: order_id
+ foreign-key: refunds.id
+ - key: refund_ids
+ foreign-key: refunds.id
+ - table-name: refunds
+ keys:
+ - key: id
+ foreign-key: id
+ - key: order_id
+ foreign-key: order_id
+ - key: id
+ foreign-key: payment_id
+ - key: order_id
+ foreign-key: id
+ - key: refund_ids
+ foreign-key: id
+ - table-name: shifts
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: taxes
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+- table-name: refunds
+ join:
+ - table-name: bank_accounts
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: categories
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: discounts
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: team_members
+ keys:
+ - key: id
+ foreign-key: assigned_locations.location_ids
+ - table-name: inventories
+ keys:
+ - key: id
+ foreign-key: location_id
+ - table-name: items
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - key: id
+ foreign-key: item_data.variations.item_variation_data.location_overrides.location_id
+ - key: id
+ foreign-key: item_data.variations.present_at_location_ids
+ - key: id
+ foreign-key: present_at_location_ids
+ - table-name: locations
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: modifier_lists
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+ - table-name: orders
+ keys:
+ - key: id
+ foreign-key: id
+ - key: id
+ foreign-key: refunds.id
+ - key: id
+ foreign-key: tenders.id
+ - key: order_id
+ foreign-key: id
+ - key: order_id
+ foreign-key: returns.source_order_id
+ - key: payment_id
+ foreign-key: tenders.id
+ - table-name: payments
+ keys:
+ - key: id
+ foreign-key: id
+ - key: order_id
+ foreign-key: order_id
+ - key: payment_id
+ foreign-key: id
+ - key: id
+ foreign-key: order_id
+ - key: id
+ foreign-key: refund_ids
+ - table-name: shifts
+ keys:
+ - key: id
+ foreign-key: id
+ - table-name: taxes
+ keys:
+ - key: id
+ foreign-key: absent_at_location_ids
+- table-name: taxes
+ join:
+ - table-name: bank_accounts
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: categories
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - table-name: discounts
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - table-name: team_members
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: assigned_locations.location_ids
+ - table-name: inventories
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: location_id
+ - table-name: items
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - key: absent_at_location_ids
+ foreign-key: item_data.variations.item_variation_data.location_overrides.location_id
+ - key: absent_at_location_ids
+ foreign-key: item_data.variations.present_at_location_ids
+ - key: absent_at_location_ids
+ foreign-key: present_at_location_ids
+ - key: id
+ foreign-key: item_data.tax_ids
+ - table-name: locations
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: modifier_lists
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: absent_at_location_ids
+ - table-name: orders
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - key: absent_at_location_ids
+ foreign-key: refunds.id
+ - key: absent_at_location_ids
+ foreign-key: tenders.id
+ - table-name: payments
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: refunds
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
+ - table-name: shifts
+ keys:
+ - key: absent_at_location_ids
+ foreign-key: id
diff --git a/_data/taps/schemas/square/v2/square-v2-tables.yml b/_data/taps/schemas/square/v2/square-v2-tables.yml
new file mode 100644
index 000000000..1ab531dd2
--- /dev/null
+++ b/_data/taps/schemas/square/v2/square-v2-tables.yml
@@ -0,0 +1,206 @@
+tap: square
+version: '2'
+tables:
+- name: bank_accounts
+ description: 'The `{{ table.name }}` contains information about a merchant''s bank
+ account in {{ integration.display_name }}.
+
+
+ **Note**: This table can''t be replicated if the **Connect to a sandbox environment**
+ box is checked in the [integration''s settings](#add-stitch-data-source) due to
+ limits imposed by {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developer.squareup.com/reference/square/bank-accounts-api
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/bank_accounts.json
+ api-method: https://developer.squareup.com/reference/square/bank-accounts-api/get-bank-account
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: cash_drawer_shifts
+ description: 'The `{{ table.name }}` table contains infomration about cash transactions
+ in {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developer.squareup.com/reference/square/cash-drawers-api/retrieve-cash-drawer-shift#response-body
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/cash_drawer_shifts.json
+ api-method: https://developer.squareup.com/reference/square/cash-drawers-api/retrieve-cash-drawer-shift
+ table-details:
+ replication-method: Full Table
+- name: categories
+ description: 'The `{{ table.name }}` table contains information about item categories
+ for a given location in {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developer.squareup.com/reference/square/catalog-api/v1-list-categories
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/categories.json
+ api-method: https://developer.squareup.com/reference/square/catalog-api/list-catalog
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: customers
+ description: 'The `{{ table.name }}` contains information about customer profiles
+ associated with your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/customers.json
+ api-method: https://developer.squareup.com/reference/square/customers-api/list-customers
+ table-details:
+ replication-method: Key-based Incremental
+ replication-key: updated_at
+- name: discounts
+ description: 'The `{{ table.name }}` table contains information about discounts
+ for a given location in {{ integration.display_name }}.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/discounts.json
+ api-method: https://developer.squareup.com/reference/square/catalog-api/list-catalog
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: inventories
+ description: 'The `{{ table.name }}` table contains info about the current calculated
+ stock count for a {{ integration.display_name }} location.
+
+ '
+ links:
+ doc-link: https://developer.squareup.com/reference/square/inventory-api
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/inventories.json
+ api-method: https://developer.squareup.com/reference/square/inventory-api/retrieve-inventory-count
+ table-details:
+ replication-method: Full Table
+ loading-behavior: Append-Only
+- name: items
+ description: 'The `{{ table.name }}` table contains information about items for
+ a given location in {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developer.squareup.com/reference/square/catalog-api
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/items.json
+ api-method: https://developer.squareup.com/reference/square/catalog-api/list-catalog
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: locations
+ description: 'The `{{ table.name }}` table contains information about all of your
+ business locations in {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developer.squareup.com/reference/square/locations-api
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/locations.json
+ api-method: https://developer.squareup.com/reference/square/locations-api/list-locations
+ table-details:
+ replication-method: Full Table
+- name: modifier_lists
+ description: 'The `{{ table.name }}` table contains information about modifier lists
+ for a given location in {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developer.squareup.com/reference/square/catalog-api/v1-list-modifier-lists
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/modifier_lists.json
+ api-method: https://developer.squareup.com/reference/square/catalog-api/list-catalog
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: orders
+ description: 'The `{{ table.name }}` table contains information about order updates
+ in {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developer.squareup.com/reference/square/orders-api
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/orders.json
+ api-method: https://developer.squareup.com/reference/square/orders-api/search-orders
+ table-details:
+ replication-method: Key-based Incremental
+ replication-key: updated_at
+- name: payments
+ description: 'The `{{ table.name }}` table contains information about all payments
+ taken in {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developer.squareup.com/reference/square/payments-api
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/payments.json
+ api-method: https://developer.squareup.com/reference/square/payments-api/list-payments
+ table-details:
+ replication-method: Full Table
+- name: payouts
+ description: The `{{ table.name }}` table contains information about all payouts
+ made in {{ integration.display_name }}.
+ links:
+ doc-link: https://developer.squareup.com/reference/square/payouts-api
+ singer-schema: https://github.com/singer-io/tap-square/tree/TDL-23235-add-payouts-stream/tap_square/schemas/payouts.json
+ api-method: https://developer.squareup.com/reference/square/payouts-api/list-payouts
+ table-details:
+ replication-method: Full Table
+- name: refunds
+ description: 'The `{{ table.name }}` table contains information about refunds on
+ items in {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developer.squareup.com/reference/square/refunds-api
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/refunds.json
+ api-method: https://developer.squareup.com/reference/square/refunds-api/list-payment-refunds
+ table-details:
+ replication-method: Full Table
+- name: roles
+ description: "The `{{ table.name }}` table contains information about employees'\
+ \ roles in {{ integration.display_name }}. \n\n**Note**: This table can't be replicated\
+ \ if the **Connect to a sandbox environment** box is checked in the [integration's\
+ \ settings](#add-stitch-data-source) due to limits imposed by {{ integration.display_name\
+ \ }}.\n"
+ links:
+ doc-link: https://developer.squareup.com/reference/square/employees-api
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/roles.json
+ api-method: https://developer.squareup.com/reference/square/employees-api/v1-list-employee-roles
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: shifts
+ description: 'The `{{ table.name }}` table contains information about employee''s
+ shifts in {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developer.squareup.com/reference/square/labor-api
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/shifts.json
+ api-method: https://developer.squareup.com/reference/square/labor-api/search-shifts
+ table-details:
+ replication-method: Key-based Incremental
+ replication-key: updated_at
+- name: taxes
+ description: 'The `{{ table.name }}` table contains information about taxes enabled
+ on your items in {{ integration.display_name }}.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-square/blob/master/tap_square/schemas/taxes.json
+ api-method: https://developer.squareup.com/reference/square/catalog-api/list-catalog
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: team_members
+ description: ''
+ links:
+ doc-link: null
+ singer-schema: https://github.com/singer-io/tap-square/tree/TDL-23352-schema-changes/tap_square/schemas/team_members.json
+ api-method: https://developer.squareup.com/reference/square/team-api/search-team-members
+ table-details:
+ replication-method: Key-based Incremental
+ replication-key: updated_at
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/stripe/v1/json/balance_transactions.json b/_data/taps/schemas/stripe/v1/json/balance_transactions.json
new file mode 100644
index 000000000..850f689ee
--- /dev/null
+++ b/_data/taps/schemas/stripe/v1/json/balance_transactions.json
@@ -0,0 +1,143 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "available_on": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exchange_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fee": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fee_details": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "application": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "net": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sourced_transfers": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v1/json/charges.json b/_data/taps/schemas/stripe/v1/json/charges.json
new file mode 100644
index 000000000..cd9858ad5
--- /dev/null
+++ b/_data/taps/schemas/stripe/v1/json/charges.json
@@ -0,0 +1,2294 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_captured": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_refunded": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "application": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application_fee": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application_fee_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "balance_transaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_details": {
+ "properties": {
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "calculated_statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "captured": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "card": {
+ "properties": {
+ "address_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dispute": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "disputed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "failure_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "failure_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fraud_details": {
+ "properties": {
+ "stripe_report": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "on_behalf_of": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "outcome": {
+ "properties": {
+ "network_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "risk_level": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "risk_score": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "seller_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "paid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "payment_intent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method_details": {
+ "properties": {
+ "ach_credit_transfer": {
+ "properties": {
+ "account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "swift_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ach_debit": {
+ "properties": {
+ "account_holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "alipay": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "bancontact": {
+ "properties": {
+ "bank_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iban_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preferred_language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card": {
+ "properties": {
+ "address_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_present": {
+ "properties": {
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emv_auth_data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "generated_card": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "network": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "read_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt": {
+ "properties": {
+ "application_cryptogram": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application_preferred_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authorization_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authorization_response_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cardholder_verification_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dedicated_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "terminal_verification_results": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_status_information": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "checks": {
+ "properties": {
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_postal_code_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eps": {
+ "properties": {
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "giropay": {
+ "properties": {
+ "bank_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ideal": {
+ "properties": {
+ "bank": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iban_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "installments": {
+ "properties": {
+ "plan": {
+ "properties": {
+ "count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "klarna": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "multibanco": {
+ "properties": {
+ "entity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "network": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "p24": {
+ "properties": {
+ "reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "sepa_debit": {
+ "properties": {
+ "bank_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "branch_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mandate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "sofort": {
+ "properties": {
+ "bank_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iban_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "stripe_account": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "three_d_secure": {
+ "properties": {
+ "authenticated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "succeeded": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "wallet": {
+ "properties": {
+ "amex_express_checkout": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "apple_pay": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "google_pay": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "masterpass": {
+ "properties": {
+ "billing_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "samsung_pay": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visa_checkout": {
+ "properties": {
+ "billing_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "wechat": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card_present": {
+ "properties": {
+ "amount_authorized": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cardholder_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emv_auth_data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "generated_card": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "network": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "overcapture_supported": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "read_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt": {
+ "properties": {
+ "account_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application_cryptogram": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application_preferred_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authorization_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authorization_response_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cardholder_verification_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dedicated_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "terminal_verification_results": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_status_information": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "receipt_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refunded": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "refunds": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "review": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "source": {
+ "properties": {
+ "ach_credit_transfer": {
+ "properties": {
+ "account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_holder_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "swift_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "address_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "alipay": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "bancontact": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card": {
+ "properties": {
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "three_d_secure": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "client_secret": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eps": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "flow": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ideal": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "multibanco": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner": {
+ "properties": {
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "receiver": {
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount_charged": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_received": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_returned": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "refund_attributes_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_attributes_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "redirect": {
+ "properties": {
+ "failure_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "return_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "source_transfer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor_suffix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transfer_data": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "transfer_group": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v1/json/coupons.json b/_data/taps/schemas/stripe/v1/json/coupons.json
new file mode 100644
index 000000000..05a1dd5f6
--- /dev/null
+++ b/_data/taps/schemas/stripe/v1/json/coupons.json
@@ -0,0 +1,111 @@
+{
+ "properties": {
+ "amount_off": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration_in_months": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "max_redemptions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percent_off": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "percent_off_precise": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "redeem_by": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "times_redeemed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "valid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v1/json/customers.json b/_data/taps/schemas/stripe/v1/json/customers.json
new file mode 100644
index 000000000..ebc22fc25
--- /dev/null
+++ b/_data/taps/schemas/stripe/v1/json/customers.json
@@ -0,0 +1,1747 @@
+{
+ "properties": {
+ "account_balance": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "balance": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cards": {
+ "items": {
+ "properties": {
+ "address_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_card": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delinquent": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount": {
+ "properties": {
+ "coupon": {
+ "properties": {
+ "amount_off": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration_in_months": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "max_redemptions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percent_off": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "percent_off_precise": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "redeem_by": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "times_redeemed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "valid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "subscription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_prefix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_settings": {
+ "properties": {
+ "custom_fields": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "default_payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "footer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "next_invoice_sequence": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preferred_locales": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "shipping": {
+ "properties": {
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "sources": {
+ "anyOf": [
+ {
+ "items": {
+ "properties": {
+ "ach_credit_transfer": {
+ "properties": {
+ "account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_holder_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "swift_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "address_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "alipay": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "bancontact": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card": {
+ "properties": {
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "three_d_secure": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "client_secret": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eps": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "flow": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ideal": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "multibanco": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner": {
+ "properties": {
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "receiver": {
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount_charged": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_received": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_returned": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "refund_attributes_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_attributes_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "redirect": {
+ "properties": {
+ "failure_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "return_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ {
+ "ach_credit_transfer": {
+ "properties": {
+ "account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_holder_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "swift_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "address_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "alipay": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "bancontact": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card": {
+ "properties": {
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "three_d_secure": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "client_secret": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eps": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "flow": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ideal": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "multibanco": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner": {
+ "properties": {
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "receiver": {
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount_charged": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_received": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_returned": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "refund_attributes_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_attributes_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "redirect": {
+ "properties": {
+ "failure_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "return_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ }
+ ]
+ },
+ "subscriptions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tax_exempt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_info": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_info_verification": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v1/json/disputes.json b/_data/taps/schemas/stripe/v1/json/disputes.json
new file mode 100644
index 000000000..19eac8139
--- /dev/null
+++ b/_data/taps/schemas/stripe/v1/json/disputes.json
@@ -0,0 +1,302 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "balance_transactions": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "charge": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "evidence": {
+ "properties": {
+ "access_activity_log": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cancellation_policy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cancellation_policy_disclosure": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cancellation_rebuttal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_communication": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_purchase_ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_signature": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duplicate_charge_documentation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duplicate_charge_explanation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duplicate_charge_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_policy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_policy_disclosure": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_refusal_explanation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "service_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "service_documentation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_carrier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_documentation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_tracking_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uncategorized_file": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uncategorized_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "string",
+ "object"
+ ]
+ },
+ "evidence_details": {
+ "properties": {
+ "due_by": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "has_evidence": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "past_due": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "submission_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_charge_refundable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v1/json/events.json b/_data/taps/schemas/stripe/v1/json/events.json
new file mode 100644
index 000000000..524697566
--- /dev/null
+++ b/_data/taps/schemas/stripe/v1/json/events.json
@@ -0,0 +1,66 @@
+{
+ "properties": {
+ "api_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "data": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pending_webhooks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "request": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v1/json/invoice_items.json b/_data/taps/schemas/stripe/v1/json/invoice_items.json
new file mode 100644
index 000000000..a3dce1dc9
--- /dev/null
+++ b/_data/taps/schemas/stripe/v1/json/invoice_items.json
@@ -0,0 +1,414 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discountable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "discounts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "period": {
+ "properties": {
+ "end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "plan": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "aggregate_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_decimal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "billing_scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tiers": {
+ "items": {
+ "properties": {
+ "flat_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "up_to": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "string",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tiers_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transform_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trial_period_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "usage_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "proration": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_item": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_rates": {
+ "items": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inclusive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "jurisdiction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percentage": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount_decimal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v1/json/invoice_line_items.json b/_data/taps/schemas/stripe/v1/json/invoice_line_items.json
new file mode 100644
index 000000000..da6da3076
--- /dev/null
+++ b/_data/taps/schemas/stripe/v1/json/invoice_line_items.json
@@ -0,0 +1,368 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amounts": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "discountable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "discounts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_item": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "period": {
+ "properties": {
+ "end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "plan": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "aggregate_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_decimal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "billing_scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tiers": {
+ "items": {
+ "properties": {
+ "flat_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "up_to": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "string",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tiers_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transform_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trial_period_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "usage_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "proration": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_item": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_amounts": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inclusive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tax_rate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v1/json/invoices.json b/_data/taps/schemas/stripe/v1/json/invoices.json
new file mode 100644
index 000000000..e098105e7
--- /dev/null
+++ b/_data/taps/schemas/stripe/v1/json/invoices.json
@@ -0,0 +1,911 @@
+{
+ "properties": {
+ "account_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_tax_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "amount_due": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_paid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_remaining": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "application_fee": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "attempt_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "attempted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "auto_advance": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "billing": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "charge": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "closed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "collection_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customer_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_shipping": {
+ "properties": {
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customer_tax_exempt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_tax_ids": {
+ "items": {
+ "properties": {
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "default_payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_tax_rates": {
+ "items": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inclusive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "jurisdiction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percentage": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount": {
+ "properties": {
+ "coupon": {
+ "properties": {
+ "amount_off": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration_in_months": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "max_redemptions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percent_off": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "percent_off_precise": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "redeem_by": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "times_redeemed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "valid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "subscription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "discounts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "due_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ending_balance": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "finalized_at": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "footer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "forgiven": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "hosted_invoice_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_pdf": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_finalization_error": {
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "doc_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "param": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "lines": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "properties": {},
+ "type": [
+ "null",
+ "array",
+ "object"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "next_payment_attempt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "paid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "payment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_intent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "period_end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "period_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "post_payment_credit_notes_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pre_payment_credit_notes_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "receipt_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starting_balance": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status_transitions": {
+ "properties": {
+ "finalized_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "marked_uncollectible_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "paid_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "voided_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "subscription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subtotal": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_discount_amounts": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "total_tax_amounts": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inclusive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tax_rate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "transfer_data": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "webhooks_delivered_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v1/json/payout_transactions.json b/_data/taps/schemas/stripe/v1/json/payout_transactions.json
new file mode 100644
index 000000000..1dd38e57f
--- /dev/null
+++ b/_data/taps/schemas/stripe/v1/json/payout_transactions.json
@@ -0,0 +1,20 @@
+{
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payout_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v1/json/payouts.json b/_data/taps/schemas/stripe/v1/json/payouts.json
new file mode 100644
index 000000000..c162ce4aa
--- /dev/null
+++ b/_data/taps/schemas/stripe/v1/json/payouts.json
@@ -0,0 +1,270 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_reversed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "arrival_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "automatic": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "balance_transaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_account": {
+ "properties": {
+ "account_holder_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "failure_balance_transaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "failure_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "failure_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_payout": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recipient": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reversed_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source_transaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transfer_group": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v1/json/plans.json b/_data/taps/schemas/stripe/v1/json/plans.json
new file mode 100644
index 000000000..a4d771c5b
--- /dev/null
+++ b/_data/taps/schemas/stripe/v1/json/plans.json
@@ -0,0 +1,181 @@
+{
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "aggregate_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_decimal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "billing_scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tiers": {
+ "items": {
+ "properties": {
+ "flat_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "up_to": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "string",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tiers_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transform_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trial_period_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "usage_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object",
+ "string"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v1/json/products.json b/_data/taps/schemas/stripe/v1/json/products.json
new file mode 100644
index 000000000..31dddd0b5
--- /dev/null
+++ b/_data/taps/schemas/stripe/v1/json/products.json
@@ -0,0 +1,167 @@
+{
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "attributes": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "caption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deactivate_on": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "images": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "package_dimensions": {
+ "properties": {
+ "height": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "length": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "weight": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shippable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v1/json/subscription_items.json b/_data/taps/schemas/stripe/v1/json/subscription_items.json
new file mode 100644
index 000000000..352d59837
--- /dev/null
+++ b/_data/taps/schemas/stripe/v1/json/subscription_items.json
@@ -0,0 +1,323 @@
+{
+ "properties": {
+ "application_fee_percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "billing_thresholds": {
+ "properties": {
+ "usage_gte": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "cancel_at_period_end": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "canceled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "current_period_end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "current_period_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ended_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "aggregate_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_decimal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "billing_scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tiers": {
+ "items": {
+ "properties": {
+ "flat_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "up_to": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "string",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tiers_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transform_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trial_period_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "usage_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "trial_end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "trial_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v1/json/subscriptions.json b/_data/taps/schemas/stripe/v1/json/subscriptions.json
new file mode 100644
index 000000000..60abbb425
--- /dev/null
+++ b/_data/taps/schemas/stripe/v1/json/subscriptions.json
@@ -0,0 +1,611 @@
+{
+ "properties": {
+ "application_fee_percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "billing": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_cycle_anchor": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "billing_thresholds": {
+ "properties": {
+ "amount_gte": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reset_billing_cycle_anchor": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "cancel_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cancel_at_period_end": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "canceled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "collection_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "current_period_end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "current_period_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "days_until_due": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "default_payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount": {
+ "properties": {
+ "coupon": {
+ "properties": {
+ "amount_off": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration_in_months": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "max_redemptions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percent_off": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "percent_off_precise": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "redeem_by": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "times_redeemed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "valid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "subscription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ended_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_customer_balance_settings": {
+ "properties": {
+ "consume_applied_balance_on_void": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "latest_invoice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "next_pending_invoice_item_invoice": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pause_collection": {
+ "properties": {
+ "behavior": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resumes_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "pending_invoice_item_interval": {
+ "properties": {
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "pending_setup_intent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "aggregate_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "billing_scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tiers": {
+ "items": {
+ "properties": {
+ "flat_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "up_to": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "integer",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tiers_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transform_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trial_period_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "usage_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "schedule": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transfer_data": {
+ "properties": {
+ "amount_percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trial_end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "trial_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v1/json/transfers.json b/_data/taps/schemas/stripe/v1/json/transfers.json
new file mode 100644
index 000000000..f112533fc
--- /dev/null
+++ b/_data/taps/schemas/stripe/v1/json/transfers.json
@@ -0,0 +1,160 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_reversed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "arrival_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "automatic": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "balance_transaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "failure_balance_transaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recipient": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reversals": {
+ "items": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reversed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "source_transaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transfer_group": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v1/stripe-v1-foreign-keys.yml b/_data/taps/schemas/stripe/v1/stripe-v1-foreign-keys.yml
new file mode 100644
index 000000000..2a278cc3e
--- /dev/null
+++ b/_data/taps/schemas/stripe/v1/stripe-v1-foreign-keys.yml
@@ -0,0 +1,922 @@
+tap: stripe
+version: '1'
+keys:
+ balance_transactions_balance_transaction:
+ - table: balance_transactions
+ keys:
+ - id
+ - table: charges
+ keys:
+ - balance_transaction
+ - table: payouts
+ keys:
+ - balance_transaction
+ - failure_balance_transaction
+ - table: transfers
+ keys:
+ - balance_transaction
+ - failure_balance_transaction
+ - table: disputes
+ keys:
+ - balance_transactions.id
+ _card:
+ - table: charges
+ keys:
+ - card.id
+ - source.id
+ - table: customers
+ keys:
+ - cards.id
+ charges_charge:
+ - table: charges
+ keys:
+ - id
+ - table: invoices
+ keys:
+ - charge
+ - table: disputes
+ keys:
+ - charge
+ coupons_coupon:
+ - table: coupons
+ keys:
+ - id
+ - table: customers
+ keys:
+ - discount.coupon.id
+ - table: invoices
+ keys:
+ - discount.coupon.id
+ - table: subscriptions
+ keys:
+ - discount.coupon.id
+ customers_customer:
+ - table: charges
+ keys:
+ - customer
+ - card.customer
+ - table: customers
+ keys:
+ - id
+ - cards.customer
+ - discount.customer
+ - table: invoice_items
+ keys:
+ - customer
+ - table: invoices
+ keys:
+ - customer
+ - discount.customer
+ - table: subscription_items
+ keys:
+ - customer
+ - table: subscriptions
+ keys:
+ - customer
+ events_event:
+ - table: events
+ keys:
+ - id
+ invoices_invoice:
+ - table: charges
+ keys:
+ - invoice
+ - table: invoice_items
+ keys:
+ - invoice
+ - table: invoice_line_items
+ keys:
+ - invoice
+ - table: invoices
+ keys:
+ - id
+ invoice_items_invoice_item:
+ - table: invoice_items
+ keys:
+ - id
+ - table: invoice_line_items
+ keys:
+ - invoice_item
+ invoice_line_items_invoice_line_item:
+ - table: invoice_line_items
+ keys:
+ - id
+ - table: invoices
+ keys:
+ - lines
+ plans_plan:
+ - table: invoice_items
+ keys:
+ - plan.id
+ - table: plans
+ keys:
+ - id
+ - table: subscription_items
+ keys:
+ - plan.id
+ - table: subscriptions
+ keys:
+ - plan.id
+ payouts_payout:
+ - table: payouts
+ keys:
+ - id
+ - table: payout_transactions
+ keys:
+ - payout_id
+ products_product:
+ - table: invoice_items
+ keys:
+ - plan.product
+ - table: invoice_line_items
+ keys:
+ - plan.product
+ - table: plans
+ keys:
+ - product
+ - table: products
+ keys:
+ - id
+ - table: subscription_items
+ keys:
+ - plan.product
+ - table: subscriptions
+ keys:
+ - plan.product
+ subscription_items_subscription_item:
+ - table: invoice_items
+ keys:
+ - subscription_item
+ - table: subscription_items
+ keys:
+ - id
+ - table: subscriptions
+ keys:
+ - items
+ subscriptions_subscription:
+ - table: customers
+ keys:
+ - subscriptions
+ - discount.subscription
+ - table: invoice_items
+ keys:
+ - subscription
+ - table: invoice_line_items
+ keys:
+ - subscription
+ - table: invoices
+ keys:
+ - subscription
+ - discount.subscription
+ - table: subscriptions
+ keys:
+ - id
+ - table: subscription_items
+ keys:
+ - subscription
+ transfers_transfer:
+ - table: charges
+ keys:
+ - source_transfer
+ - table: transfers
+ keys:
+ - id
+ disputes_id:
+ - table: disputes
+ keys:
+ - id
+ payout_transactions_id:
+ - table: payout_transactions
+ keys:
+ - id
+tables:
+- table-name: balance_transactions
+ join:
+ - table-name: charges
+ keys:
+ - key: id
+ foreign-key: balance_transaction
+ - table-name: payouts
+ keys:
+ - key: id
+ foreign-key: balance_transaction
+ - key: id
+ foreign-key: failure_balance_transaction
+ - table-name: transfers
+ keys:
+ - key: id
+ foreign-key: balance_transaction
+ - key: id
+ foreign-key: failure_balance_transaction
+ - table-name: disputes
+ keys:
+ - key: id
+ foreign-key: balance_transactions.id
+- table-name: charges
+ join:
+ - table-name: balance_transactions
+ keys:
+ - key: balance_transaction
+ foreign-key: id
+ - table-name: payouts
+ keys:
+ - key: balance_transaction
+ foreign-key: balance_transaction
+ - key: balance_transaction
+ foreign-key: failure_balance_transaction
+ - table-name: transfers
+ keys:
+ - key: balance_transaction
+ foreign-key: balance_transaction
+ - key: balance_transaction
+ foreign-key: failure_balance_transaction
+ - key: source_transfer
+ foreign-key: id
+ - table-name: disputes
+ keys:
+ - key: balance_transaction
+ foreign-key: balance_transactions.id
+ - key: id
+ foreign-key: charge
+ - table-name: customers
+ keys:
+ - key: card.id
+ foreign-key: cards.id
+ - key: source.id
+ foreign-key: cards.id
+ - key: customer
+ foreign-key: id
+ - key: card.customer
+ foreign-key: id
+ - key: customer
+ foreign-key: cards.customer
+ - key: card.customer
+ foreign-key: cards.customer
+ - key: customer
+ foreign-key: discount.customer
+ - key: card.customer
+ foreign-key: discount.customer
+ - table-name: invoices
+ keys:
+ - key: id
+ foreign-key: charge
+ - key: customer
+ foreign-key: customer
+ - key: card.customer
+ foreign-key: customer
+ - key: customer
+ foreign-key: discount.customer
+ - key: card.customer
+ foreign-key: discount.customer
+ - key: invoice
+ foreign-key: id
+ - table-name: invoice_items
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: card.customer
+ foreign-key: customer
+ - key: invoice
+ foreign-key: invoice
+ - table-name: subscription_items
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: card.customer
+ foreign-key: customer
+ - table-name: subscriptions
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: card.customer
+ foreign-key: customer
+ - table-name: invoice_line_items
+ keys:
+ - key: invoice
+ foreign-key: invoice
+- table-name: payouts
+ join:
+ - table-name: balance_transactions
+ keys:
+ - key: balance_transaction
+ foreign-key: id
+ - key: failure_balance_transaction
+ foreign-key: id
+ - table-name: charges
+ keys:
+ - key: balance_transaction
+ foreign-key: balance_transaction
+ - key: failure_balance_transaction
+ foreign-key: balance_transaction
+ - table-name: transfers
+ keys:
+ - key: balance_transaction
+ foreign-key: balance_transaction
+ - key: failure_balance_transaction
+ foreign-key: balance_transaction
+ - key: balance_transaction
+ foreign-key: failure_balance_transaction
+ - key: failure_balance_transaction
+ foreign-key: failure_balance_transaction
+ - table-name: disputes
+ keys:
+ - key: balance_transaction
+ foreign-key: balance_transactions.id
+ - key: failure_balance_transaction
+ foreign-key: balance_transactions.id
+ - table-name: payout_transactions
+ keys:
+ - key: id
+ foreign-key: payout_id
+- table-name: transfers
+ join:
+ - table-name: balance_transactions
+ keys:
+ - key: balance_transaction
+ foreign-key: id
+ - key: failure_balance_transaction
+ foreign-key: id
+ - table-name: charges
+ keys:
+ - key: balance_transaction
+ foreign-key: balance_transaction
+ - key: failure_balance_transaction
+ foreign-key: balance_transaction
+ - key: id
+ foreign-key: source_transfer
+ - table-name: payouts
+ keys:
+ - key: balance_transaction
+ foreign-key: balance_transaction
+ - key: failure_balance_transaction
+ foreign-key: balance_transaction
+ - key: balance_transaction
+ foreign-key: failure_balance_transaction
+ - key: failure_balance_transaction
+ foreign-key: failure_balance_transaction
+ - table-name: disputes
+ keys:
+ - key: balance_transaction
+ foreign-key: balance_transactions.id
+ - key: failure_balance_transaction
+ foreign-key: balance_transactions.id
+- table-name: disputes
+ join:
+ - table-name: balance_transactions
+ keys:
+ - key: balance_transactions.id
+ foreign-key: id
+ - table-name: charges
+ keys:
+ - key: balance_transactions.id
+ foreign-key: balance_transaction
+ - key: charge
+ foreign-key: id
+ - table-name: payouts
+ keys:
+ - key: balance_transactions.id
+ foreign-key: balance_transaction
+ - key: balance_transactions.id
+ foreign-key: failure_balance_transaction
+ - table-name: transfers
+ keys:
+ - key: balance_transactions.id
+ foreign-key: balance_transaction
+ - key: balance_transactions.id
+ foreign-key: failure_balance_transaction
+ - table-name: invoices
+ keys:
+ - key: charge
+ foreign-key: charge
+- table-name: customers
+ join:
+ - table-name: charges
+ keys:
+ - key: cards.id
+ foreign-key: card.id
+ - key: cards.id
+ foreign-key: source.id
+ - key: id
+ foreign-key: customer
+ - key: cards.customer
+ foreign-key: customer
+ - key: discount.customer
+ foreign-key: customer
+ - key: id
+ foreign-key: card.customer
+ - key: cards.customer
+ foreign-key: card.customer
+ - key: discount.customer
+ foreign-key: card.customer
+ - table-name: coupons
+ keys:
+ - key: discount.coupon.id
+ foreign-key: id
+ - table-name: invoices
+ keys:
+ - key: discount.coupon.id
+ foreign-key: discount.coupon.id
+ - key: id
+ foreign-key: customer
+ - key: cards.customer
+ foreign-key: customer
+ - key: discount.customer
+ foreign-key: customer
+ - key: id
+ foreign-key: discount.customer
+ - key: cards.customer
+ foreign-key: discount.customer
+ - key: discount.customer
+ foreign-key: discount.customer
+ - key: subscriptions
+ foreign-key: subscription
+ - key: discount.subscription
+ foreign-key: subscription
+ - key: subscriptions
+ foreign-key: discount.subscription
+ - key: discount.subscription
+ foreign-key: discount.subscription
+ - table-name: subscriptions
+ keys:
+ - key: discount.coupon.id
+ foreign-key: discount.coupon.id
+ - key: id
+ foreign-key: customer
+ - key: cards.customer
+ foreign-key: customer
+ - key: discount.customer
+ foreign-key: customer
+ - key: subscriptions
+ foreign-key: id
+ - key: discount.subscription
+ foreign-key: id
+ - table-name: invoice_items
+ keys:
+ - key: id
+ foreign-key: customer
+ - key: cards.customer
+ foreign-key: customer
+ - key: discount.customer
+ foreign-key: customer
+ - key: subscriptions
+ foreign-key: subscription
+ - key: discount.subscription
+ foreign-key: subscription
+ - table-name: subscription_items
+ keys:
+ - key: id
+ foreign-key: customer
+ - key: cards.customer
+ foreign-key: customer
+ - key: discount.customer
+ foreign-key: customer
+ - key: subscriptions
+ foreign-key: subscription
+ - key: discount.subscription
+ foreign-key: subscription
+ - table-name: invoice_line_items
+ keys:
+ - key: subscriptions
+ foreign-key: subscription
+ - key: discount.subscription
+ foreign-key: subscription
+- table-name: invoices
+ join:
+ - table-name: charges
+ keys:
+ - key: charge
+ foreign-key: id
+ - key: customer
+ foreign-key: customer
+ - key: discount.customer
+ foreign-key: customer
+ - key: customer
+ foreign-key: card.customer
+ - key: discount.customer
+ foreign-key: card.customer
+ - key: id
+ foreign-key: invoice
+ - table-name: disputes
+ keys:
+ - key: charge
+ foreign-key: charge
+ - table-name: coupons
+ keys:
+ - key: discount.coupon.id
+ foreign-key: id
+ - table-name: customers
+ keys:
+ - key: discount.coupon.id
+ foreign-key: discount.coupon.id
+ - key: customer
+ foreign-key: id
+ - key: discount.customer
+ foreign-key: id
+ - key: customer
+ foreign-key: cards.customer
+ - key: discount.customer
+ foreign-key: cards.customer
+ - key: customer
+ foreign-key: discount.customer
+ - key: discount.customer
+ foreign-key: discount.customer
+ - key: subscription
+ foreign-key: subscriptions
+ - key: discount.subscription
+ foreign-key: subscriptions
+ - key: subscription
+ foreign-key: discount.subscription
+ - key: discount.subscription
+ foreign-key: discount.subscription
+ - table-name: subscriptions
+ keys:
+ - key: discount.coupon.id
+ foreign-key: discount.coupon.id
+ - key: customer
+ foreign-key: customer
+ - key: discount.customer
+ foreign-key: customer
+ - key: subscription
+ foreign-key: id
+ - key: discount.subscription
+ foreign-key: id
+ - table-name: invoice_items
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: discount.customer
+ foreign-key: customer
+ - key: id
+ foreign-key: invoice
+ - key: subscription
+ foreign-key: subscription
+ - key: discount.subscription
+ foreign-key: subscription
+ - table-name: subscription_items
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: discount.customer
+ foreign-key: customer
+ - key: subscription
+ foreign-key: subscription
+ - key: discount.subscription
+ foreign-key: subscription
+ - table-name: invoice_line_items
+ keys:
+ - key: id
+ foreign-key: invoice
+ - key: lines
+ foreign-key: id
+ - key: subscription
+ foreign-key: subscription
+ - key: discount.subscription
+ foreign-key: subscription
+- table-name: coupons
+ join:
+ - table-name: customers
+ keys:
+ - key: id
+ foreign-key: discount.coupon.id
+ - table-name: invoices
+ keys:
+ - key: id
+ foreign-key: discount.coupon.id
+ - table-name: subscriptions
+ keys:
+ - key: id
+ foreign-key: discount.coupon.id
+- table-name: subscriptions
+ join:
+ - table-name: coupons
+ keys:
+ - key: discount.coupon.id
+ foreign-key: id
+ - table-name: customers
+ keys:
+ - key: discount.coupon.id
+ foreign-key: discount.coupon.id
+ - key: customer
+ foreign-key: id
+ - key: customer
+ foreign-key: cards.customer
+ - key: customer
+ foreign-key: discount.customer
+ - key: id
+ foreign-key: subscriptions
+ - key: id
+ foreign-key: discount.subscription
+ - table-name: invoices
+ keys:
+ - key: discount.coupon.id
+ foreign-key: discount.coupon.id
+ - key: customer
+ foreign-key: customer
+ - key: customer
+ foreign-key: discount.customer
+ - key: id
+ foreign-key: subscription
+ - key: id
+ foreign-key: discount.subscription
+ - table-name: charges
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: customer
+ foreign-key: card.customer
+ - table-name: invoice_items
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: plan.id
+ foreign-key: plan.id
+ - key: plan.product
+ foreign-key: plan.product
+ - key: items
+ foreign-key: subscription_item
+ - key: id
+ foreign-key: subscription
+ - table-name: subscription_items
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: plan.id
+ foreign-key: plan.id
+ - key: plan.product
+ foreign-key: plan.product
+ - key: items
+ foreign-key: id
+ - key: id
+ foreign-key: subscription
+ - table-name: plans
+ keys:
+ - key: plan.id
+ foreign-key: id
+ - key: plan.product
+ foreign-key: product
+ - table-name: invoice_line_items
+ keys:
+ - key: plan.product
+ foreign-key: plan.product
+ - key: id
+ foreign-key: subscription
+ - table-name: products
+ keys:
+ - key: plan.product
+ foreign-key: id
+- table-name: invoice_items
+ join:
+ - table-name: charges
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: customer
+ foreign-key: card.customer
+ - key: invoice
+ foreign-key: invoice
+ - table-name: customers
+ keys:
+ - key: customer
+ foreign-key: id
+ - key: customer
+ foreign-key: cards.customer
+ - key: customer
+ foreign-key: discount.customer
+ - key: subscription
+ foreign-key: subscriptions
+ - key: subscription
+ foreign-key: discount.subscription
+ - table-name: invoices
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: customer
+ foreign-key: discount.customer
+ - key: invoice
+ foreign-key: id
+ - key: subscription
+ foreign-key: subscription
+ - key: subscription
+ foreign-key: discount.subscription
+ - table-name: subscription_items
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: plan.id
+ foreign-key: plan.id
+ - key: plan.product
+ foreign-key: plan.product
+ - key: subscription_item
+ foreign-key: id
+ - key: subscription
+ foreign-key: subscription
+ - table-name: subscriptions
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: plan.id
+ foreign-key: plan.id
+ - key: plan.product
+ foreign-key: plan.product
+ - key: subscription_item
+ foreign-key: items
+ - key: subscription
+ foreign-key: id
+ - table-name: invoice_line_items
+ keys:
+ - key: invoice
+ foreign-key: invoice
+ - key: id
+ foreign-key: invoice_item
+ - key: plan.product
+ foreign-key: plan.product
+ - key: subscription
+ foreign-key: subscription
+ - table-name: plans
+ keys:
+ - key: plan.id
+ foreign-key: id
+ - key: plan.product
+ foreign-key: product
+ - table-name: products
+ keys:
+ - key: plan.product
+ foreign-key: id
+- table-name: subscription_items
+ join:
+ - table-name: charges
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: customer
+ foreign-key: card.customer
+ - table-name: customers
+ keys:
+ - key: customer
+ foreign-key: id
+ - key: customer
+ foreign-key: cards.customer
+ - key: customer
+ foreign-key: discount.customer
+ - key: subscription
+ foreign-key: subscriptions
+ - key: subscription
+ foreign-key: discount.subscription
+ - table-name: invoice_items
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: plan.id
+ foreign-key: plan.id
+ - key: plan.product
+ foreign-key: plan.product
+ - key: id
+ foreign-key: subscription_item
+ - key: subscription
+ foreign-key: subscription
+ - table-name: invoices
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: customer
+ foreign-key: discount.customer
+ - key: subscription
+ foreign-key: subscription
+ - key: subscription
+ foreign-key: discount.subscription
+ - table-name: subscriptions
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: plan.id
+ foreign-key: plan.id
+ - key: plan.product
+ foreign-key: plan.product
+ - key: id
+ foreign-key: items
+ - key: subscription
+ foreign-key: id
+ - table-name: plans
+ keys:
+ - key: plan.id
+ foreign-key: id
+ - key: plan.product
+ foreign-key: product
+ - table-name: invoice_line_items
+ keys:
+ - key: plan.product
+ foreign-key: plan.product
+ - key: subscription
+ foreign-key: subscription
+ - table-name: products
+ keys:
+ - key: plan.product
+ foreign-key: id
+- table-name: invoice_line_items
+ join:
+ - table-name: charges
+ keys:
+ - key: invoice
+ foreign-key: invoice
+ - table-name: invoice_items
+ keys:
+ - key: invoice
+ foreign-key: invoice
+ - key: invoice_item
+ foreign-key: id
+ - key: plan.product
+ foreign-key: plan.product
+ - key: subscription
+ foreign-key: subscription
+ - table-name: invoices
+ keys:
+ - key: invoice
+ foreign-key: id
+ - key: id
+ foreign-key: lines
+ - key: subscription
+ foreign-key: subscription
+ - key: subscription
+ foreign-key: discount.subscription
+ - table-name: plans
+ keys:
+ - key: plan.product
+ foreign-key: product
+ - table-name: products
+ keys:
+ - key: plan.product
+ foreign-key: id
+ - table-name: subscription_items
+ keys:
+ - key: plan.product
+ foreign-key: plan.product
+ - key: subscription
+ foreign-key: subscription
+ - table-name: subscriptions
+ keys:
+ - key: plan.product
+ foreign-key: plan.product
+ - key: subscription
+ foreign-key: id
+ - table-name: customers
+ keys:
+ - key: subscription
+ foreign-key: subscriptions
+ - key: subscription
+ foreign-key: discount.subscription
+- table-name: plans
+ join:
+ - table-name: invoice_items
+ keys:
+ - key: id
+ foreign-key: plan.id
+ - key: product
+ foreign-key: plan.product
+ - table-name: subscription_items
+ keys:
+ - key: id
+ foreign-key: plan.id
+ - key: product
+ foreign-key: plan.product
+ - table-name: subscriptions
+ keys:
+ - key: id
+ foreign-key: plan.id
+ - key: product
+ foreign-key: plan.product
+ - table-name: invoice_line_items
+ keys:
+ - key: product
+ foreign-key: plan.product
+ - table-name: products
+ keys:
+ - key: product
+ foreign-key: id
+- table-name: payout_transactions
+ join:
+ - table-name: payouts
+ keys:
+ - key: payout_id
+ foreign-key: id
+- table-name: products
+ join:
+ - table-name: invoice_items
+ keys:
+ - key: id
+ foreign-key: plan.product
+ - table-name: invoice_line_items
+ keys:
+ - key: id
+ foreign-key: plan.product
+ - table-name: plans
+ keys:
+ - key: id
+ foreign-key: product
+ - table-name: subscription_items
+ keys:
+ - key: id
+ foreign-key: plan.product
+ - table-name: subscriptions
+ keys:
+ - key: id
+ foreign-key: plan.product
diff --git a/_data/taps/schemas/stripe/v1/stripe-v1-tables.yml b/_data/taps/schemas/stripe/v1/stripe-v1-tables.yml
new file mode 100644
index 000000000..f9292f852
--- /dev/null
+++ b/_data/taps/schemas/stripe/v1/stripe-v1-tables.yml
@@ -0,0 +1,251 @@
+tap: stripe
+version: '1'
+tables:
+- name: balance_transactions
+ description: 'The `{{ table.name }}` table contains info about transactions have
+ have contributed to your Stripe account balance, including charges, transfers,
+ etc.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/balance/balance_transaction
+ singer-schema: https://github.com/singer-io/tap-stripe/blob/master/tap_stripe/schemas/balance_transactions.json
+ api-method: https://stripe.com/docs/api/balance/balance_history
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: charges
+ description: 'The `{{ table.name }}` table contains info about charges to credit
+ and debit cards.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/charges/object
+ singer-schema: https://github.com/singer-io/tap-stripe/blob/master/tap_stripe/schemas/charges.json
+ api-method: https://stripe.com/docs/api/charges/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: coupons
+ description: 'The `{{ table.name }}` table contains info about percent or amount-off
+ discounts that may be applied to a customer. **Note:** Coupons only apply to invoices;
+ they don''t apply to one-off charges.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/coupons
+ singer-schema: https://github.com/singer-io/tap-stripe/blob/master/tap_stripe/schemas/coupons.json
+ api-method: https://stripe.com/docs/api/coupons/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: disputes
+ description: This table contains information about customer disputes related to
+ charges on their credit card.
+ links:
+ doc-link: https://stripe.com/docs/api/disputes/object
+ singer-schema: https://github.com/singer-io/tap-stripe/blob/master/tap_stripe/schemas/disputes.json
+ api-method: https://stripe.com/docs/api/disputes/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: events
+ description: 'The `{{ table.name }}` table contains info about [events](https://stripe.com/docs/api/events){:target="new"}.
+ When an event occurs, a new event object is created. This table acts as the history
+ of an object, allowing you to see how it has changed over time.
+
+
+ For example: When an invoice is created, an `invoice.created` event is created.
+ When the draft invoice is finalized and updated to be open, an `invoice.finalized`
+ event is created. When the invoice is sent to the customer, an `invoice.sent`
+ event is created.
+
+
+ For more info about this table and how data is replicated, refer to the [Replication](#replication)
+ section. Additionally, refer to [{{ integration.display_name }}''s documentation](https://stripe.com/docs/api/events/types){:target="new"}
+ for info about event types and the objects they describe.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/events
+ singer-schema: https://github.com/singer-io/tap-stripe/blob/master/tap_stripe/schemas/events.json
+ api-method: https://stripe.com/docs/api/events/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: invoices
+ description: 'The `{{ table.name }}` table contains info about invoices. Invoices
+ are statements of amounts owed by customers, which can be one-off charges or generated
+ periodically from a subscription.
+
+
+ #### Invoice line items
+
+
+ Full records for the line items associated with an invoice can be found in the
+ [`invoice_line_items`](#invoice_line_items) table. To replicate these records,
+ you must set this table and the `invoice_line_items` table to replicate.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/invoices
+ singer-schema: https://github.com/singer-io/tap-stripe/blob/master/tap_stripe/schemas/invoices.json
+ api-method: https://stripe.com/docs/api/invoices/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: date
+- name: invoice_items
+ description: 'The `{{ table.name }}` table contains info about items contained in
+ customer invoices.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-stripe/blob/master/tap_stripe/schemas/invoice_items.json
+ api-method: https://stripe.com/docs/api/invoiceitems/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: date
+- name: invoice_line_items
+ description: 'The `{{ table.name }}` table contains info about the line items contained
+ in invoices.
+
+
+ **Note**: In order to replicate invoice line item data, the [`invoices`](#invoices)
+ table must also be set to replicate.
+
+
+ #### Invoice line item replication
+
+
+ To replicate invoice line items, Stitch will use the Replication Key of the corresponding
+ invoice in the [`invoices`](#invoices) table to detect new and updated records.
+ This means that any time an invoice is updated, its associated line items will
+ also be replicated.
+
+
+ For example: An invoice with five line items is updated when its status changes
+ from `draft` to `open`. The record in `invoices` will be replicated, as will the
+ records for its five line items. In this example, a total of six records will
+ be replicated.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/invoices/line_item
+ singer-schema: https://github.com/singer-io/tap-stripe/blob/master/tap_stripe/schemas/invoice_line_items.json
+ api-method: https://stripe.com/docs/api/invoices/invoice_lines
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - invoice
+ - id
+- name: payouts
+ description: 'The `{{ table.name }}` table contains info about payouts, which occur
+ when you receive funds from {{ integration.display_name }} or initiate a payout
+ to a bank account of the debit card of a connected {{ integration.display_name
+ }} account.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/payouts
+ singer-schema: https://github.com/singer-io/tap-stripe/blob/master/tap_stripe/schemas/payouts.json
+ api-method: https://stripe.com/docs/api/payouts/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: payout_transactions
+ description: This table contains info about payout transactions.
+ links:
+ doc-link: https://stripe.com/docs/api/payouts
+ singer-schema: https://github.com/singer-io/tap-stripe/blob/master/tap_stripe/schemas/payout_transactions.json
+ api-method: https://stripe.com/docs/api/payouts/list
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: plans
+ description: 'The `{{ table.name }}` table contains info about the plans in your
+ {{ integration.display_name }} account. A plan defines the base price, currency,
+ and billing cycle for subscriptions.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/plans
+ singer-schema: https://github.com/singer-io/tap-stripe/blob/master/tap_stripe/schemas/plans.json
+ api-method: https://stripe.com/docs/api/plans/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: products
+ description: 'The `{{ table.name }}` table contains info about the products in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/products
+ singer-schema: https://github.com/singer-io/tap-stripe/blob/master/tap_stripe/schemas/products.json
+ api-method: https://stripe.com/docs/api/products/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated
+- name: subscriptions
+ description: 'The `{{ table.name }}` table contains info about subscriptions, which
+ allow you to charge a customer on a recurring basis. A subscription ties a customer
+ to a particular [plan](#plans).
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/subscriptions
+ singer-schema: https://github.com/singer-io/tap-stripe/blob/master/tap_stripe/schemas/subscriptions.json
+ api-method: https://stripe.com/docs/api/subscriptions/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: subscription_items
+ description: 'The `{{ table.name }}` table contains info about subscription items.
+ In {{ integration.display_name }}, subscription items are used to create customer
+ subscriptions with more than one plan.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/subscription_items
+ singer-schema: https://github.com/singer-io/tap-stripe/blob/master/tap_stripe/schemas/subscription_items.json
+ api-method: https://stripe.com/docs/api/subscription_items/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: transfers
+ description: 'The `{{ table.name }}` table contains info about transfers sent to
+ connected accounts.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-stripe/blob/master/tap_stripe/schemas/transfers.json
+ api-method: https://stripe.com/docs/api/transfers/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: customers
+ description: 'The `{{ table.name }}` table contains info about your customers.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/customers/object
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/customers.json
+ api-method: https://stripe.com/docs/api/customers/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/stripe/v2/json/balance_transactions.json b/_data/taps/schemas/stripe/v2/json/balance_transactions.json
new file mode 100644
index 000000000..850f689ee
--- /dev/null
+++ b/_data/taps/schemas/stripe/v2/json/balance_transactions.json
@@ -0,0 +1,143 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "available_on": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exchange_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fee": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fee_details": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "application": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "net": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sourced_transfers": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v2/json/charges.json b/_data/taps/schemas/stripe/v2/json/charges.json
new file mode 100644
index 000000000..c3349c652
--- /dev/null
+++ b/_data/taps/schemas/stripe/v2/json/charges.json
@@ -0,0 +1,2300 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_captured": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_refunded": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "application": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application_fee": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application_fee_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "balance_transaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_details": {
+ "properties": {
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "calculated_statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "captured": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "card": {
+ "properties": {
+ "address_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dispute": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "disputed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "failure_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "failure_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fraud_details": {
+ "properties": {
+ "stripe_report": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "on_behalf_of": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "outcome": {
+ "properties": {
+ "network_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "risk_level": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "risk_score": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "seller_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "paid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "payment_intent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method_details": {
+ "properties": {
+ "ach_credit_transfer": {
+ "properties": {
+ "account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "swift_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ach_debit": {
+ "properties": {
+ "account_holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "alipay": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "bancontact": {
+ "properties": {
+ "bank_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iban_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preferred_language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card": {
+ "properties": {
+ "address_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_present": {
+ "properties": {
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emv_auth_data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "generated_card": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "network": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "read_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt": {
+ "properties": {
+ "application_cryptogram": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application_preferred_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authorization_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authorization_response_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cardholder_verification_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dedicated_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "terminal_verification_results": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_status_information": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "checks": {
+ "properties": {
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_postal_code_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eps": {
+ "properties": {
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "giropay": {
+ "properties": {
+ "bank_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ideal": {
+ "properties": {
+ "bank": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iban_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "installments": {
+ "properties": {
+ "plan": {
+ "properties": {
+ "count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "klarna": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "multibanco": {
+ "properties": {
+ "entity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "network": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "p24": {
+ "properties": {
+ "reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "sepa_debit": {
+ "properties": {
+ "bank_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "branch_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mandate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "sofort": {
+ "properties": {
+ "bank_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iban_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "stripe_account": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "three_d_secure": {
+ "properties": {
+ "authenticated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "succeeded": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "wallet": {
+ "properties": {
+ "amex_express_checkout": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "apple_pay": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "google_pay": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "masterpass": {
+ "properties": {
+ "billing_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "samsung_pay": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visa_checkout": {
+ "properties": {
+ "billing_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "wechat": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card_present": {
+ "properties": {
+ "amount_authorized": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cardholder_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emv_auth_data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "generated_card": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "network": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "overcapture_supported": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "read_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt": {
+ "properties": {
+ "account_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application_cryptogram": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application_preferred_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authorization_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authorization_response_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cardholder_verification_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dedicated_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "terminal_verification_results": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_status_information": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "receipt_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refunded": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "refunds": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "review": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "source": {
+ "properties": {
+ "ach_credit_transfer": {
+ "properties": {
+ "account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_holder_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "swift_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "address_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "alipay": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "bancontact": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card": {
+ "properties": {
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "three_d_secure": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "client_secret": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eps": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "flow": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ideal": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "multibanco": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner": {
+ "properties": {
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "receiver": {
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount_charged": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_received": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_returned": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "refund_attributes_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_attributes_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "redirect": {
+ "properties": {
+ "failure_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "return_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "source_transfer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor_suffix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transfer_data": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "transfer_group": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v2/json/coupons.json b/_data/taps/schemas/stripe/v2/json/coupons.json
new file mode 100644
index 000000000..f71f6bf04
--- /dev/null
+++ b/_data/taps/schemas/stripe/v2/json/coupons.json
@@ -0,0 +1,117 @@
+{
+ "properties": {
+ "amount_off": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration_in_months": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "max_redemptions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percent_off": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "percent_off_precise": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "redeem_by": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "times_redeemed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "valid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v2/json/customers.json b/_data/taps/schemas/stripe/v2/json/customers.json
new file mode 100644
index 000000000..95f1730da
--- /dev/null
+++ b/_data/taps/schemas/stripe/v2/json/customers.json
@@ -0,0 +1,1950 @@
+{
+ "properties": {
+ "account_balance": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "balance": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cards": {
+ "items": {
+ "properties": {
+ "address_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_card": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delinquent": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount": {
+ "properties": {
+ "checkout_session": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "coupon": {
+ "properties": {
+ "amount_off": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration_in_months": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "max_redemptions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percent_off": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "percent_off_precise": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "redeem_by": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "times_redeemed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "valid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_item": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promotion_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "subscription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_prefix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_settings": {
+ "properties": {
+ "custom_fields": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "default_payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "footer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "next_invoice_sequence": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preferred_locales": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "shipping": {
+ "properties": {
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "sources": {
+ "anyOf": [
+ {
+ "items": {
+ "properties": {
+ "ach_credit_transfer": {
+ "properties": {
+ "account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_holder_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "swift_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "address_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "alipay": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "bancontact": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card": {
+ "properties": {
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "three_d_secure": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "client_secret": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eps": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "flow": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ideal": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "multibanco": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner": {
+ "properties": {
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "receiver": {
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount_charged": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_received": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_returned": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "refund_attributes_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_attributes_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "redirect": {
+ "properties": {
+ "failure_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "return_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ {
+ "ach_credit_transfer": {
+ "properties": {
+ "account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_holder_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "swift_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "address_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "alipay": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "bancontact": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card": {
+ "properties": {
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "three_d_secure": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "client_secret": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eps": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "flow": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ideal": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "multibanco": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner": {
+ "properties": {
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "receiver": {
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount_charged": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_received": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_returned": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "refund_attributes_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_attributes_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "redirect": {
+ "properties": {
+ "failure_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "return_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ }
+ ]
+ },
+ "subscriptions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tax_exempt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_ids": {
+ "anyOf": [
+ {
+ "items": {
+ "properties": {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verification": {
+ "properties": {
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verification": {
+ "properties": {
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ }
+ ]
+ },
+ "tax_info": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_info_verification": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v2/json/disputes.json b/_data/taps/schemas/stripe/v2/json/disputes.json
new file mode 100644
index 000000000..24beec295
--- /dev/null
+++ b/_data/taps/schemas/stripe/v2/json/disputes.json
@@ -0,0 +1,308 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "balance_transactions": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "charge": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "evidence": {
+ "properties": {
+ "access_activity_log": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cancellation_policy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cancellation_policy_disclosure": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cancellation_rebuttal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_communication": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_purchase_ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_signature": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duplicate_charge_documentation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duplicate_charge_explanation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duplicate_charge_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_policy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_policy_disclosure": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_refusal_explanation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "service_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "service_documentation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_carrier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_documentation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_tracking_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uncategorized_file": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uncategorized_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "string",
+ "object"
+ ]
+ },
+ "evidence_details": {
+ "properties": {
+ "due_by": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "has_evidence": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "past_due": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "submission_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_charge_refundable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v2/json/events.json b/_data/taps/schemas/stripe/v2/json/events.json
new file mode 100644
index 000000000..524697566
--- /dev/null
+++ b/_data/taps/schemas/stripe/v2/json/events.json
@@ -0,0 +1,66 @@
+{
+ "properties": {
+ "api_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "data": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pending_webhooks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "request": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v2/json/invoice_items.json b/_data/taps/schemas/stripe/v2/json/invoice_items.json
new file mode 100644
index 000000000..a632cedd9
--- /dev/null
+++ b/_data/taps/schemas/stripe/v2/json/invoice_items.json
@@ -0,0 +1,426 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discountable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "discounts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "period": {
+ "properties": {
+ "end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "plan": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "aggregate_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_decimal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "billing_scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tiers": {
+ "items": {
+ "properties": {
+ "flat_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "up_to": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "string",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tiers_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transform_usage": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trial_period_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "proration": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_item": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_rates": {
+ "items": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inclusive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "jurisdiction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percentage": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount_decimal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v2/json/invoice_line_items.json b/_data/taps/schemas/stripe/v2/json/invoice_line_items.json
new file mode 100644
index 000000000..8acf846ed
--- /dev/null
+++ b/_data/taps/schemas/stripe/v2/json/invoice_line_items.json
@@ -0,0 +1,680 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amounts": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "discountable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "discounts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_item": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "period": {
+ "properties": {
+ "end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "plan": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "aggregate_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_decimal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "billing_scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tiers": {
+ "items": {
+ "properties": {
+ "flat_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "up_to": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "string",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tiers_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transform_usage": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trial_period_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "price": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "billing_scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "lookup_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recurring": {
+ "properties": {
+ "aggregate_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "usage_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tax_behavior": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tiers": {
+ "items": {
+ "properties": {
+ "flat_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "flat_amount_decimal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount_decimal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "up_to": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tiers_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transform_quantity": {
+ "properties": {
+ "divide_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "round": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount_decimal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "proration": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "proration_details": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_item": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_amounts": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inclusive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tax_rate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tax_rates": {
+ "items": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inclusive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "jurisdiction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percentage": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_type": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v2/json/invoices.json b/_data/taps/schemas/stripe/v2/json/invoices.json
new file mode 100644
index 000000000..d52ec18b9
--- /dev/null
+++ b/_data/taps/schemas/stripe/v2/json/invoices.json
@@ -0,0 +1,1105 @@
+{
+ "properties": {
+ "account_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_tax_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "amount_due": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_paid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_remaining": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "application_fee": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "application_fee_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "attempt_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "attempted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "auto_advance": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "automatic_tax": {
+ "properties": {
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "billing": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "charge": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "closed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "collection_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customer_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_shipping": {
+ "properties": {
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customer_tax_exempt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_tax_ids": {
+ "items": {
+ "properties": {
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "default_payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_tax_rates": {
+ "items": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inclusive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "jurisdiction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percentage": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount": {
+ "properties": {
+ "checkout_session": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "coupon": {
+ "properties": {
+ "amount_off": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration_in_months": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "max_redemptions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percent_off": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "percent_off_precise": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "redeem_by": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "times_redeemed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "valid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_item": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promotion_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "subscription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "discounts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "due_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ending_balance": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "finalized_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "footer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "forgiven": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "hosted_invoice_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_pdf": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_finalization_error": {
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "doc_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "param": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "lines": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "properties": {},
+ "type": [
+ "null",
+ "array",
+ "object"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "next_payment_attempt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "on_behalf_of": {
+ "properties": {},
+ "type": [
+ "null",
+ "string",
+ "object"
+ ]
+ },
+ "paid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "paid_out_of_band": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "payment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_intent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_settings": {
+ "properties": {
+ "payment_method_options": {
+ "properties": {
+ "acss_debit": {
+ "properties": {
+ "mandate_options": {
+ "properties": {
+ "transaction_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "verification_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "bancontact": {
+ "properties": {
+ "preferred_language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card": {
+ "properties": {
+ "request_three_d_secure": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "payment_method_types": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "period_end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "period_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "post_payment_credit_notes_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pre_payment_credit_notes_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quote": {
+ "properties": {},
+ "type": [
+ "null",
+ "object",
+ "string"
+ ]
+ },
+ "receipt_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starting_balance": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status_transitions": {
+ "properties": {
+ "finalized_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "marked_uncollectible_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "paid_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "voided_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "subscription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subtotal": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_discount_amounts": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "total_tax_amounts": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inclusive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tax_rate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "transfer_data": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "webhooks_delivered_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v2/json/payment_intents.json b/_data/taps/schemas/stripe/v2/json/payment_intents.json
new file mode 100644
index 000000000..d71cd9b67
--- /dev/null
+++ b/_data/taps/schemas/stripe/v2/json/payment_intents.json
@@ -0,0 +1,5685 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_capturable": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_received": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "application": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application_fee_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "automatic_payment_methods": {
+ "properties": {
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "canceled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cancellation_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "capture_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "charges": {
+ "anyOf": [
+ {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_captured": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_refunded": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "application": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application_fee": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application_fee_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "balance_transaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_details": {
+ "properties": {
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "calculated_statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "captured": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "card": {
+ "properties": {
+ "address_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dispute": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "disputed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "failure_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "failure_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fraud_details": {
+ "properties": {
+ "stripe_report": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "on_behalf_of": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "outcome": {
+ "properties": {
+ "network_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "risk_level": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "risk_score": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "seller_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "paid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "payment_intent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method_details": {
+ "properties": {
+ "ach_credit_transfer": {
+ "properties": {
+ "account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "swift_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ach_debit": {
+ "properties": {
+ "account_holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "alipay": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "bancontact": {
+ "properties": {
+ "bank_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iban_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preferred_language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card": {
+ "properties": {
+ "address_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_present": {
+ "properties": {
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emv_auth_data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "generated_card": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "network": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "read_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt": {
+ "properties": {
+ "application_cryptogram": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application_preferred_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authorization_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authorization_response_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cardholder_verification_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dedicated_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "terminal_verification_results": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_status_information": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "checks": {
+ "properties": {
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_postal_code_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eps": {
+ "properties": {
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "giropay": {
+ "properties": {
+ "bank_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ideal": {
+ "properties": {
+ "bank": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iban_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "installments": {
+ "properties": {
+ "plan": {
+ "properties": {
+ "count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "klarna": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "multibanco": {
+ "properties": {
+ "entity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "network": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "p24": {
+ "properties": {
+ "reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "sepa_debit": {
+ "properties": {
+ "bank_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "branch_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mandate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "sofort": {
+ "properties": {
+ "bank_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iban_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "stripe_account": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "three_d_secure": {
+ "properties": {
+ "authenticated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "succeeded": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "wallet": {
+ "properties": {
+ "amex_express_checkout": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "apple_pay": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "google_pay": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "masterpass": {
+ "properties": {
+ "billing_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "samsung_pay": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visa_checkout": {
+ "properties": {
+ "billing_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "wechat": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card_present": {
+ "properties": {
+ "amount_authorized": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cardholder_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emv_auth_data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "generated_card": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "network": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "overcapture_supported": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "read_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt": {
+ "properties": {
+ "account_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application_cryptogram": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application_preferred_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authorization_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authorization_response_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cardholder_verification_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dedicated_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "terminal_verification_results": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_status_information": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "receipt_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refunded": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "refunds": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "review": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "source": {
+ "properties": {
+ "ach_credit_transfer": {
+ "properties": {
+ "account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_holder_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "swift_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "address_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "alipay": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "bancontact": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card": {
+ "properties": {
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "three_d_secure": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "client_secret": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eps": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "flow": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ideal": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "multibanco": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner": {
+ "properties": {
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "receiver": {
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount_charged": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_received": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_returned": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "refund_attributes_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_attributes_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "redirect": {
+ "properties": {
+ "failure_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "return_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "source_transfer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor_suffix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transfer_data": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "transfer_group": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_captured": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_refunded": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "application": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application_fee": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application_fee_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "balance_transaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_details": {
+ "properties": {
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "calculated_statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "captured": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "card": {
+ "properties": {
+ "address_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dispute": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "disputed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "failure_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "failure_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fraud_details": {
+ "properties": {
+ "stripe_report": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "on_behalf_of": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "outcome": {
+ "properties": {
+ "network_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "risk_level": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "risk_score": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "seller_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "paid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "payment_intent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method_details": {
+ "properties": {
+ "ach_credit_transfer": {
+ "properties": {
+ "account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "swift_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ach_debit": {
+ "properties": {
+ "account_holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "alipay": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "bancontact": {
+ "properties": {
+ "bank_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iban_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preferred_language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card": {
+ "properties": {
+ "address_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_present": {
+ "properties": {
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emv_auth_data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "generated_card": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "network": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "read_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt": {
+ "properties": {
+ "application_cryptogram": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application_preferred_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authorization_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authorization_response_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cardholder_verification_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dedicated_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "terminal_verification_results": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_status_information": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "checks": {
+ "properties": {
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_postal_code_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eps": {
+ "properties": {
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "giropay": {
+ "properties": {
+ "bank_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ideal": {
+ "properties": {
+ "bank": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iban_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "installments": {
+ "properties": {
+ "plan": {
+ "properties": {
+ "count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "klarna": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "multibanco": {
+ "properties": {
+ "entity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "network": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "p24": {
+ "properties": {
+ "reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "sepa_debit": {
+ "properties": {
+ "bank_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "branch_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mandate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "sofort": {
+ "properties": {
+ "bank_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iban_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "stripe_account": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "three_d_secure": {
+ "properties": {
+ "authenticated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "succeeded": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "wallet": {
+ "properties": {
+ "amex_express_checkout": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "apple_pay": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "google_pay": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "masterpass": {
+ "properties": {
+ "billing_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "samsung_pay": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visa_checkout": {
+ "properties": {
+ "billing_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "wechat": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card_present": {
+ "properties": {
+ "amount_authorized": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cardholder_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emv_auth_data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "generated_card": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "network": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "overcapture_supported": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "read_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt": {
+ "properties": {
+ "account_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application_cryptogram": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application_preferred_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authorization_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authorization_response_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cardholder_verification_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dedicated_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "terminal_verification_results": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_status_information": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "receipt_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refunded": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "refunds": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "review": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "source": {
+ "ach_credit_transfer": {
+ "properties": {
+ "account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_holder_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "swift_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "address_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "alipay": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "bancontact": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card": {
+ "properties": {
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "three_d_secure": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "client_secret": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eps": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "flow": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ideal": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "multibanco": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner": {
+ "properties": {
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "receiver": {
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount_charged": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_received": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_returned": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "refund_attributes_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_attributes_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "redirect": {
+ "properties": {
+ "failure_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "return_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "source_transfer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor_suffix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transfer_data": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "transfer_group": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ }
+ ]
+ },
+ "client_secret": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "confirmation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_payment_error": {
+ "properties": {
+ "charge": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "decline_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "doc_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "param": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "next_action": {
+ "properties": {
+ "alipay_handle_redirect": {
+ "properties": {
+ "native_data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "native_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "return_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "boleto_display_details": {
+ "properties": {
+ "expires_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "hosted_voucher_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pdf": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "oxxo_display_details": {
+ "properties": {
+ "expires_after": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "hosted_voucher_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "redirect_to_url": {
+ "properties": {
+ "return_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "use_stripe_sdk": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "verify_with_microdeposits": {
+ "properties": {
+ "arrival_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "hosted_verification_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "wechat_pay_display_qr_code": {
+ "properties": {
+ "data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_data_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_url_png": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_url_svg": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "wechat_pay_redirect_to_android_app": {
+ "properties": {
+ "app_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nonce_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "package": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "partner_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prepay_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "wechat_pay_redirect_to_ios_app": {
+ "properties": {
+ "native_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "on_behalf_of": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method_options": {
+ "properties": {
+ "acss_debit": {
+ "properties": {
+ "mandate_options": {
+ "properties": {
+ "custom_mandate_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_schedule": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "object"
+ ],
+ "verification_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "afterpay_clearpay": {
+ "properties": {
+ "reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "alipay": {
+ "properties": {
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "au_becs_debit": {
+ "properties": {
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "bacs_debit": {
+ "properties": {
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "bancontact": {
+ "properties": {
+ "preferred_language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "boleto": {
+ "properties": {
+ "expires_after_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card": {
+ "properties": {
+ "installments": {
+ "properties": {
+ "available_plans": {
+ "items": {
+ "properties": {
+ "count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "plan": {
+ "properties": {
+ "count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "network": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "request_three_d_secure": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card_present": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "eps": {
+ "properties": {
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "fps": {
+ "properties": {
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "giropay": {
+ "properties": {
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "grabpay": {
+ "properties": {
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ideal": {
+ "properties": {
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "interac_present": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "klarna": {
+ "properties": {
+ "preferred_locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "oxxo": {
+ "properties": {
+ "expires_after_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "p24": {
+ "properties": {
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "sepa_debit": {
+ "properties": {
+ "mandate_options": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "sofort": {
+ "properties": {
+ "preferred_language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "wechat_pay": {
+ "properties": {
+ "app_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "client": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "payment_method_types": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "processing": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "receipt_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "review": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping": {
+ "properties": {
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "carrier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor_suffix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transfer_data": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "transfer_group": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v2/json/payout_transactions.json b/_data/taps/schemas/stripe/v2/json/payout_transactions.json
new file mode 100644
index 000000000..1dd38e57f
--- /dev/null
+++ b/_data/taps/schemas/stripe/v2/json/payout_transactions.json
@@ -0,0 +1,20 @@
+{
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payout_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v2/json/payouts.json b/_data/taps/schemas/stripe/v2/json/payouts.json
new file mode 100644
index 000000000..d4111b240
--- /dev/null
+++ b/_data/taps/schemas/stripe/v2/json/payouts.json
@@ -0,0 +1,276 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_reversed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "arrival_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "automatic": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "balance_transaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_account": {
+ "properties": {
+ "account_holder_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "failure_balance_transaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "failure_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "failure_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_payout": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recipient": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reversed_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source_transaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transfer_group": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v2/json/plans.json b/_data/taps/schemas/stripe/v2/json/plans.json
new file mode 100644
index 000000000..57a85d7a7
--- /dev/null
+++ b/_data/taps/schemas/stripe/v2/json/plans.json
@@ -0,0 +1,187 @@
+{
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "aggregate_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_decimal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "billing_scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tiers": {
+ "items": {
+ "properties": {
+ "flat_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "up_to": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "string",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tiers_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transform_usage": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trial_period_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object",
+ "string"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v2/json/products.json b/_data/taps/schemas/stripe/v2/json/products.json
new file mode 100644
index 000000000..1be6c5790
--- /dev/null
+++ b/_data/taps/schemas/stripe/v2/json/products.json
@@ -0,0 +1,179 @@
+{
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "attributes": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "caption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deactivate_on": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "images": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "package_dimensions": {
+ "properties": {
+ "height": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "length": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "weight": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shippable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v2/json/subscription_items.json b/_data/taps/schemas/stripe/v2/json/subscription_items.json
new file mode 100644
index 000000000..7af15288a
--- /dev/null
+++ b/_data/taps/schemas/stripe/v2/json/subscription_items.json
@@ -0,0 +1,629 @@
+{
+ "properties": {
+ "application_fee_percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "billing_thresholds": {
+ "properties": {
+ "usage_gte": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "cancel_at_period_end": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "canceled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "current_period_end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "current_period_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ended_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "aggregate_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_decimal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "billing_scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tiers": {
+ "items": {
+ "properties": {
+ "flat_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "up_to": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "string",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tiers_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transform_usage": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trial_period_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "price": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "billing_scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "lookup_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recurring": {
+ "properties": {
+ "aggregate_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "usage_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tax_behavior": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tiers": {
+ "items": {
+ "properties": {
+ "flat_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "flat_amount_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "up_to": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tiers_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transform_quantity": {
+ "properties": {
+ "divide_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "round": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_rates": {
+ "items": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inclusive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "jurisdiction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percentage": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_type": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "trial_end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "trial_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v2/json/subscriptions.json b/_data/taps/schemas/stripe/v2/json/subscriptions.json
new file mode 100644
index 000000000..e602bdd96
--- /dev/null
+++ b/_data/taps/schemas/stripe/v2/json/subscriptions.json
@@ -0,0 +1,647 @@
+{
+ "properties": {
+ "application_fee_percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "billing": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_cycle_anchor": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "billing_thresholds": {
+ "properties": {
+ "amount_gte": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reset_billing_cycle_anchor": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "cancel_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cancel_at_period_end": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "canceled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "collection_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "current_period_end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "current_period_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "days_until_due": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "default_payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount": {
+ "properties": {
+ "checkout_session": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "coupon": {
+ "properties": {
+ "amount_off": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration_in_months": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "max_redemptions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percent_off": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "percent_off_precise": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "redeem_by": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "times_redeemed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "valid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_item": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promotion_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "subscription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ended_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_customer_balance_settings": {
+ "properties": {
+ "consume_applied_balance_on_void": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "latest_invoice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "next_pending_invoice_item_invoice": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pause_collection": {
+ "properties": {
+ "behavior": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resumes_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "pending_invoice_item_interval": {
+ "properties": {
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "pending_setup_intent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "aggregate_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "billing_scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tiers": {
+ "items": {
+ "properties": {
+ "flat_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "up_to": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "integer",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tiers_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transform_usage": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trial_period_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "usage_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "schedule": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transfer_data": {
+ "properties": {
+ "amount_percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trial_end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "trial_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v2/json/transfers.json b/_data/taps/schemas/stripe/v2/json/transfers.json
new file mode 100644
index 000000000..c7f62ac9d
--- /dev/null
+++ b/_data/taps/schemas/stripe/v2/json/transfers.json
@@ -0,0 +1,166 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_reversed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "arrival_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "automatic": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "balance_transaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "failure_balance_transaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recipient": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reversals": {
+ "items": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reversed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "source_transaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transfer_group": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v2/stripe-v2-foreign-keys.yml b/_data/taps/schemas/stripe/v2/stripe-v2-foreign-keys.yml
new file mode 100644
index 000000000..c482617f5
--- /dev/null
+++ b/_data/taps/schemas/stripe/v2/stripe-v2-foreign-keys.yml
@@ -0,0 +1,922 @@
+tap: stripe
+version: '2'
+keys:
+ balance_transactions_balance_transaction:
+ - table: balance_transactions
+ keys:
+ - id
+ - table: charges
+ keys:
+ - balance_transaction
+ - table: payouts
+ keys:
+ - balance_transaction
+ - failure_balance_transaction
+ - table: transfers
+ keys:
+ - balance_transaction
+ - failure_balance_transaction
+ - table: disputes
+ keys:
+ - balance_transactions.id
+ _card:
+ - table: charges
+ keys:
+ - card.id
+ - source.id
+ - table: customers
+ keys:
+ - cards.id
+ charges_charge:
+ - table: charges
+ keys:
+ - id
+ - table: invoices
+ keys:
+ - charge
+ - table: disputes
+ keys:
+ - charge
+ coupons_coupon:
+ - table: coupons
+ keys:
+ - id
+ - table: customers
+ keys:
+ - discount.coupon.id
+ - table: invoices
+ keys:
+ - discount.coupon.id
+ - table: subscriptions
+ keys:
+ - discount.coupon.id
+ customers_customer:
+ - table: charges
+ keys:
+ - customer
+ - card.customer
+ - table: customers
+ keys:
+ - id
+ - cards.customer
+ - discount.customer
+ - table: invoice_items
+ keys:
+ - customer
+ - table: invoices
+ keys:
+ - customer
+ - discount.customer
+ - table: subscription_items
+ keys:
+ - customer
+ - table: subscriptions
+ keys:
+ - customer
+ events_event:
+ - table: events
+ keys:
+ - id
+ invoices_invoice:
+ - table: charges
+ keys:
+ - invoice
+ - table: invoice_items
+ keys:
+ - invoice
+ - table: invoice_line_items
+ keys:
+ - invoice
+ - table: invoices
+ keys:
+ - id
+ invoice_items_invoice_item:
+ - table: invoice_items
+ keys:
+ - id
+ - table: invoice_line_items
+ keys:
+ - invoice_item
+ invoice_line_items_invoice_line_item:
+ - table: invoice_line_items
+ keys:
+ - id
+ - table: invoices
+ keys:
+ - lines
+ plans_plan:
+ - table: invoice_items
+ keys:
+ - plan.id
+ - table: plans
+ keys:
+ - id
+ - table: subscription_items
+ keys:
+ - plan.id
+ - table: subscriptions
+ keys:
+ - plan.id
+ payouts_payout:
+ - table: payouts
+ keys:
+ - id
+ - table: payout_transactions
+ keys:
+ - payout_id
+ products_product:
+ - table: invoice_items
+ keys:
+ - plan.product
+ - table: invoice_line_items
+ keys:
+ - plan.product
+ - table: plans
+ keys:
+ - product
+ - table: products
+ keys:
+ - id
+ - table: subscription_items
+ keys:
+ - plan.product
+ - table: subscriptions
+ keys:
+ - plan.product
+ subscription_items_subscription_item:
+ - table: invoice_items
+ keys:
+ - subscription_item
+ - table: subscription_items
+ keys:
+ - id
+ - table: subscriptions
+ keys:
+ - items
+ subscriptions_subscription:
+ - table: customers
+ keys:
+ - subscriptions
+ - discount.subscription
+ - table: invoice_items
+ keys:
+ - subscription
+ - table: invoice_line_items
+ keys:
+ - subscription
+ - table: invoices
+ keys:
+ - subscription
+ - discount.subscription
+ - table: subscriptions
+ keys:
+ - id
+ - table: subscription_items
+ keys:
+ - subscription
+ transfers_transfer:
+ - table: charges
+ keys:
+ - source_transfer
+ - table: transfers
+ keys:
+ - id
+ disputes_id:
+ - table: disputes
+ keys:
+ - id
+ payout_transactions_id:
+ - table: payout_transactions
+ keys:
+ - id
+tables:
+- table-name: balance_transactions
+ join:
+ - table-name: charges
+ keys:
+ - key: id
+ foreign-key: balance_transaction
+ - table-name: payouts
+ keys:
+ - key: id
+ foreign-key: balance_transaction
+ - key: id
+ foreign-key: failure_balance_transaction
+ - table-name: transfers
+ keys:
+ - key: id
+ foreign-key: balance_transaction
+ - key: id
+ foreign-key: failure_balance_transaction
+ - table-name: disputes
+ keys:
+ - key: id
+ foreign-key: balance_transactions.id
+- table-name: charges
+ join:
+ - table-name: balance_transactions
+ keys:
+ - key: balance_transaction
+ foreign-key: id
+ - table-name: payouts
+ keys:
+ - key: balance_transaction
+ foreign-key: balance_transaction
+ - key: balance_transaction
+ foreign-key: failure_balance_transaction
+ - table-name: transfers
+ keys:
+ - key: balance_transaction
+ foreign-key: balance_transaction
+ - key: balance_transaction
+ foreign-key: failure_balance_transaction
+ - key: source_transfer
+ foreign-key: id
+ - table-name: disputes
+ keys:
+ - key: balance_transaction
+ foreign-key: balance_transactions.id
+ - key: id
+ foreign-key: charge
+ - table-name: customers
+ keys:
+ - key: card.id
+ foreign-key: cards.id
+ - key: source.id
+ foreign-key: cards.id
+ - key: customer
+ foreign-key: id
+ - key: card.customer
+ foreign-key: id
+ - key: customer
+ foreign-key: cards.customer
+ - key: card.customer
+ foreign-key: cards.customer
+ - key: customer
+ foreign-key: discount.customer
+ - key: card.customer
+ foreign-key: discount.customer
+ - table-name: invoices
+ keys:
+ - key: id
+ foreign-key: charge
+ - key: customer
+ foreign-key: customer
+ - key: card.customer
+ foreign-key: customer
+ - key: customer
+ foreign-key: discount.customer
+ - key: card.customer
+ foreign-key: discount.customer
+ - key: invoice
+ foreign-key: id
+ - table-name: invoice_items
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: card.customer
+ foreign-key: customer
+ - key: invoice
+ foreign-key: invoice
+ - table-name: subscription_items
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: card.customer
+ foreign-key: customer
+ - table-name: subscriptions
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: card.customer
+ foreign-key: customer
+ - table-name: invoice_line_items
+ keys:
+ - key: invoice
+ foreign-key: invoice
+- table-name: payouts
+ join:
+ - table-name: balance_transactions
+ keys:
+ - key: balance_transaction
+ foreign-key: id
+ - key: failure_balance_transaction
+ foreign-key: id
+ - table-name: charges
+ keys:
+ - key: balance_transaction
+ foreign-key: balance_transaction
+ - key: failure_balance_transaction
+ foreign-key: balance_transaction
+ - table-name: transfers
+ keys:
+ - key: balance_transaction
+ foreign-key: balance_transaction
+ - key: failure_balance_transaction
+ foreign-key: balance_transaction
+ - key: balance_transaction
+ foreign-key: failure_balance_transaction
+ - key: failure_balance_transaction
+ foreign-key: failure_balance_transaction
+ - table-name: disputes
+ keys:
+ - key: balance_transaction
+ foreign-key: balance_transactions.id
+ - key: failure_balance_transaction
+ foreign-key: balance_transactions.id
+ - table-name: payout_transactions
+ keys:
+ - key: id
+ foreign-key: payout_id
+- table-name: transfers
+ join:
+ - table-name: balance_transactions
+ keys:
+ - key: balance_transaction
+ foreign-key: id
+ - key: failure_balance_transaction
+ foreign-key: id
+ - table-name: charges
+ keys:
+ - key: balance_transaction
+ foreign-key: balance_transaction
+ - key: failure_balance_transaction
+ foreign-key: balance_transaction
+ - key: id
+ foreign-key: source_transfer
+ - table-name: payouts
+ keys:
+ - key: balance_transaction
+ foreign-key: balance_transaction
+ - key: failure_balance_transaction
+ foreign-key: balance_transaction
+ - key: balance_transaction
+ foreign-key: failure_balance_transaction
+ - key: failure_balance_transaction
+ foreign-key: failure_balance_transaction
+ - table-name: disputes
+ keys:
+ - key: balance_transaction
+ foreign-key: balance_transactions.id
+ - key: failure_balance_transaction
+ foreign-key: balance_transactions.id
+- table-name: disputes
+ join:
+ - table-name: balance_transactions
+ keys:
+ - key: balance_transactions.id
+ foreign-key: id
+ - table-name: charges
+ keys:
+ - key: balance_transactions.id
+ foreign-key: balance_transaction
+ - key: charge
+ foreign-key: id
+ - table-name: payouts
+ keys:
+ - key: balance_transactions.id
+ foreign-key: balance_transaction
+ - key: balance_transactions.id
+ foreign-key: failure_balance_transaction
+ - table-name: transfers
+ keys:
+ - key: balance_transactions.id
+ foreign-key: balance_transaction
+ - key: balance_transactions.id
+ foreign-key: failure_balance_transaction
+ - table-name: invoices
+ keys:
+ - key: charge
+ foreign-key: charge
+- table-name: customers
+ join:
+ - table-name: charges
+ keys:
+ - key: cards.id
+ foreign-key: card.id
+ - key: cards.id
+ foreign-key: source.id
+ - key: id
+ foreign-key: customer
+ - key: cards.customer
+ foreign-key: customer
+ - key: discount.customer
+ foreign-key: customer
+ - key: id
+ foreign-key: card.customer
+ - key: cards.customer
+ foreign-key: card.customer
+ - key: discount.customer
+ foreign-key: card.customer
+ - table-name: coupons
+ keys:
+ - key: discount.coupon.id
+ foreign-key: id
+ - table-name: invoices
+ keys:
+ - key: discount.coupon.id
+ foreign-key: discount.coupon.id
+ - key: id
+ foreign-key: customer
+ - key: cards.customer
+ foreign-key: customer
+ - key: discount.customer
+ foreign-key: customer
+ - key: id
+ foreign-key: discount.customer
+ - key: cards.customer
+ foreign-key: discount.customer
+ - key: discount.customer
+ foreign-key: discount.customer
+ - key: subscriptions
+ foreign-key: subscription
+ - key: discount.subscription
+ foreign-key: subscription
+ - key: subscriptions
+ foreign-key: discount.subscription
+ - key: discount.subscription
+ foreign-key: discount.subscription
+ - table-name: subscriptions
+ keys:
+ - key: discount.coupon.id
+ foreign-key: discount.coupon.id
+ - key: id
+ foreign-key: customer
+ - key: cards.customer
+ foreign-key: customer
+ - key: discount.customer
+ foreign-key: customer
+ - key: subscriptions
+ foreign-key: id
+ - key: discount.subscription
+ foreign-key: id
+ - table-name: invoice_items
+ keys:
+ - key: id
+ foreign-key: customer
+ - key: cards.customer
+ foreign-key: customer
+ - key: discount.customer
+ foreign-key: customer
+ - key: subscriptions
+ foreign-key: subscription
+ - key: discount.subscription
+ foreign-key: subscription
+ - table-name: subscription_items
+ keys:
+ - key: id
+ foreign-key: customer
+ - key: cards.customer
+ foreign-key: customer
+ - key: discount.customer
+ foreign-key: customer
+ - key: subscriptions
+ foreign-key: subscription
+ - key: discount.subscription
+ foreign-key: subscription
+ - table-name: invoice_line_items
+ keys:
+ - key: subscriptions
+ foreign-key: subscription
+ - key: discount.subscription
+ foreign-key: subscription
+- table-name: invoices
+ join:
+ - table-name: charges
+ keys:
+ - key: charge
+ foreign-key: id
+ - key: customer
+ foreign-key: customer
+ - key: discount.customer
+ foreign-key: customer
+ - key: customer
+ foreign-key: card.customer
+ - key: discount.customer
+ foreign-key: card.customer
+ - key: id
+ foreign-key: invoice
+ - table-name: disputes
+ keys:
+ - key: charge
+ foreign-key: charge
+ - table-name: coupons
+ keys:
+ - key: discount.coupon.id
+ foreign-key: id
+ - table-name: customers
+ keys:
+ - key: discount.coupon.id
+ foreign-key: discount.coupon.id
+ - key: customer
+ foreign-key: id
+ - key: discount.customer
+ foreign-key: id
+ - key: customer
+ foreign-key: cards.customer
+ - key: discount.customer
+ foreign-key: cards.customer
+ - key: customer
+ foreign-key: discount.customer
+ - key: discount.customer
+ foreign-key: discount.customer
+ - key: subscription
+ foreign-key: subscriptions
+ - key: discount.subscription
+ foreign-key: subscriptions
+ - key: subscription
+ foreign-key: discount.subscription
+ - key: discount.subscription
+ foreign-key: discount.subscription
+ - table-name: subscriptions
+ keys:
+ - key: discount.coupon.id
+ foreign-key: discount.coupon.id
+ - key: customer
+ foreign-key: customer
+ - key: discount.customer
+ foreign-key: customer
+ - key: subscription
+ foreign-key: id
+ - key: discount.subscription
+ foreign-key: id
+ - table-name: invoice_items
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: discount.customer
+ foreign-key: customer
+ - key: id
+ foreign-key: invoice
+ - key: subscription
+ foreign-key: subscription
+ - key: discount.subscription
+ foreign-key: subscription
+ - table-name: subscription_items
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: discount.customer
+ foreign-key: customer
+ - key: subscription
+ foreign-key: subscription
+ - key: discount.subscription
+ foreign-key: subscription
+ - table-name: invoice_line_items
+ keys:
+ - key: id
+ foreign-key: invoice
+ - key: lines
+ foreign-key: id
+ - key: subscription
+ foreign-key: subscription
+ - key: discount.subscription
+ foreign-key: subscription
+- table-name: coupons
+ join:
+ - table-name: customers
+ keys:
+ - key: id
+ foreign-key: discount.coupon.id
+ - table-name: invoices
+ keys:
+ - key: id
+ foreign-key: discount.coupon.id
+ - table-name: subscriptions
+ keys:
+ - key: id
+ foreign-key: discount.coupon.id
+- table-name: subscriptions
+ join:
+ - table-name: coupons
+ keys:
+ - key: discount.coupon.id
+ foreign-key: id
+ - table-name: customers
+ keys:
+ - key: discount.coupon.id
+ foreign-key: discount.coupon.id
+ - key: customer
+ foreign-key: id
+ - key: customer
+ foreign-key: cards.customer
+ - key: customer
+ foreign-key: discount.customer
+ - key: id
+ foreign-key: subscriptions
+ - key: id
+ foreign-key: discount.subscription
+ - table-name: invoices
+ keys:
+ - key: discount.coupon.id
+ foreign-key: discount.coupon.id
+ - key: customer
+ foreign-key: customer
+ - key: customer
+ foreign-key: discount.customer
+ - key: id
+ foreign-key: subscription
+ - key: id
+ foreign-key: discount.subscription
+ - table-name: charges
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: customer
+ foreign-key: card.customer
+ - table-name: invoice_items
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: plan.id
+ foreign-key: plan.id
+ - key: plan.product
+ foreign-key: plan.product
+ - key: items
+ foreign-key: subscription_item
+ - key: id
+ foreign-key: subscription
+ - table-name: subscription_items
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: plan.id
+ foreign-key: plan.id
+ - key: plan.product
+ foreign-key: plan.product
+ - key: items
+ foreign-key: id
+ - key: id
+ foreign-key: subscription
+ - table-name: plans
+ keys:
+ - key: plan.id
+ foreign-key: id
+ - key: plan.product
+ foreign-key: product
+ - table-name: invoice_line_items
+ keys:
+ - key: plan.product
+ foreign-key: plan.product
+ - key: id
+ foreign-key: subscription
+ - table-name: products
+ keys:
+ - key: plan.product
+ foreign-key: id
+- table-name: invoice_items
+ join:
+ - table-name: charges
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: customer
+ foreign-key: card.customer
+ - key: invoice
+ foreign-key: invoice
+ - table-name: customers
+ keys:
+ - key: customer
+ foreign-key: id
+ - key: customer
+ foreign-key: cards.customer
+ - key: customer
+ foreign-key: discount.customer
+ - key: subscription
+ foreign-key: subscriptions
+ - key: subscription
+ foreign-key: discount.subscription
+ - table-name: invoices
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: customer
+ foreign-key: discount.customer
+ - key: invoice
+ foreign-key: id
+ - key: subscription
+ foreign-key: subscription
+ - key: subscription
+ foreign-key: discount.subscription
+ - table-name: subscription_items
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: plan.id
+ foreign-key: plan.id
+ - key: plan.product
+ foreign-key: plan.product
+ - key: subscription_item
+ foreign-key: id
+ - key: subscription
+ foreign-key: subscription
+ - table-name: subscriptions
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: plan.id
+ foreign-key: plan.id
+ - key: plan.product
+ foreign-key: plan.product
+ - key: subscription_item
+ foreign-key: items
+ - key: subscription
+ foreign-key: id
+ - table-name: invoice_line_items
+ keys:
+ - key: invoice
+ foreign-key: invoice
+ - key: id
+ foreign-key: invoice_item
+ - key: plan.product
+ foreign-key: plan.product
+ - key: subscription
+ foreign-key: subscription
+ - table-name: plans
+ keys:
+ - key: plan.id
+ foreign-key: id
+ - key: plan.product
+ foreign-key: product
+ - table-name: products
+ keys:
+ - key: plan.product
+ foreign-key: id
+- table-name: subscription_items
+ join:
+ - table-name: charges
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: customer
+ foreign-key: card.customer
+ - table-name: customers
+ keys:
+ - key: customer
+ foreign-key: id
+ - key: customer
+ foreign-key: cards.customer
+ - key: customer
+ foreign-key: discount.customer
+ - key: subscription
+ foreign-key: subscriptions
+ - key: subscription
+ foreign-key: discount.subscription
+ - table-name: invoice_items
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: plan.id
+ foreign-key: plan.id
+ - key: plan.product
+ foreign-key: plan.product
+ - key: id
+ foreign-key: subscription_item
+ - key: subscription
+ foreign-key: subscription
+ - table-name: invoices
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: customer
+ foreign-key: discount.customer
+ - key: subscription
+ foreign-key: subscription
+ - key: subscription
+ foreign-key: discount.subscription
+ - table-name: subscriptions
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: plan.id
+ foreign-key: plan.id
+ - key: plan.product
+ foreign-key: plan.product
+ - key: id
+ foreign-key: items
+ - key: subscription
+ foreign-key: id
+ - table-name: plans
+ keys:
+ - key: plan.id
+ foreign-key: id
+ - key: plan.product
+ foreign-key: product
+ - table-name: invoice_line_items
+ keys:
+ - key: plan.product
+ foreign-key: plan.product
+ - key: subscription
+ foreign-key: subscription
+ - table-name: products
+ keys:
+ - key: plan.product
+ foreign-key: id
+- table-name: invoice_line_items
+ join:
+ - table-name: charges
+ keys:
+ - key: invoice
+ foreign-key: invoice
+ - table-name: invoice_items
+ keys:
+ - key: invoice
+ foreign-key: invoice
+ - key: invoice_item
+ foreign-key: id
+ - key: plan.product
+ foreign-key: plan.product
+ - key: subscription
+ foreign-key: subscription
+ - table-name: invoices
+ keys:
+ - key: invoice
+ foreign-key: id
+ - key: id
+ foreign-key: lines
+ - key: subscription
+ foreign-key: subscription
+ - key: subscription
+ foreign-key: discount.subscription
+ - table-name: plans
+ keys:
+ - key: plan.product
+ foreign-key: product
+ - table-name: products
+ keys:
+ - key: plan.product
+ foreign-key: id
+ - table-name: subscription_items
+ keys:
+ - key: plan.product
+ foreign-key: plan.product
+ - key: subscription
+ foreign-key: subscription
+ - table-name: subscriptions
+ keys:
+ - key: plan.product
+ foreign-key: plan.product
+ - key: subscription
+ foreign-key: id
+ - table-name: customers
+ keys:
+ - key: subscription
+ foreign-key: subscriptions
+ - key: subscription
+ foreign-key: discount.subscription
+- table-name: plans
+ join:
+ - table-name: invoice_items
+ keys:
+ - key: id
+ foreign-key: plan.id
+ - key: product
+ foreign-key: plan.product
+ - table-name: subscription_items
+ keys:
+ - key: id
+ foreign-key: plan.id
+ - key: product
+ foreign-key: plan.product
+ - table-name: subscriptions
+ keys:
+ - key: id
+ foreign-key: plan.id
+ - key: product
+ foreign-key: plan.product
+ - table-name: invoice_line_items
+ keys:
+ - key: product
+ foreign-key: plan.product
+ - table-name: products
+ keys:
+ - key: product
+ foreign-key: id
+- table-name: payout_transactions
+ join:
+ - table-name: payouts
+ keys:
+ - key: payout_id
+ foreign-key: id
+- table-name: products
+ join:
+ - table-name: invoice_items
+ keys:
+ - key: id
+ foreign-key: plan.product
+ - table-name: invoice_line_items
+ keys:
+ - key: id
+ foreign-key: plan.product
+ - table-name: plans
+ keys:
+ - key: id
+ foreign-key: product
+ - table-name: subscription_items
+ keys:
+ - key: id
+ foreign-key: plan.product
+ - table-name: subscriptions
+ keys:
+ - key: id
+ foreign-key: plan.product
diff --git a/_data/taps/schemas/stripe/v2/stripe-v2-tables.yml b/_data/taps/schemas/stripe/v2/stripe-v2-tables.yml
new file mode 100644
index 000000000..c48cc6458
--- /dev/null
+++ b/_data/taps/schemas/stripe/v2/stripe-v2-tables.yml
@@ -0,0 +1,262 @@
+tap: stripe
+version: '2'
+tables:
+- name: balance_transactions
+ description: The `{{ table.name }}` table contains info about transactions have
+ have contributed to your Stripe account balance, including charges, transfers,
+ etc.
+ links:
+ doc-link: https://stripe.com/docs/api/balance/balance_transaction
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/balance_transactions.json
+ api-method: https://stripe.com/docs/api/balance/balance_history
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: charges
+ description: 'The `{{ table.name }}` table contains info about charges to credit
+ and debit cards.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/charges/object
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/charges.json
+ api-method: https://stripe.com/docs/api/charges/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: coupons
+ description: 'The `{{ table.name }}` table contains info about percent or amount-off
+ discounts that may be applied to a customer. **Note:** Coupons only apply to invoices;
+ they don''t apply to one-off charges.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/coupons
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/coupons.json
+ api-method: https://stripe.com/docs/api/coupons/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: customers
+ description: 'The `{{ table.name }}` table contains info about your customers.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/customers/object
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/customers.json
+ api-method: https://stripe.com/docs/api/customers/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: disputes
+ description: This table contains information about customer disputes related to
+ charges on their credit card.
+ links:
+ doc-link: https://stripe.com/docs/api/disputes/object
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/disputes.json
+ api-method: https://stripe.com/docs/api/disputes/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: events
+ description: 'The `{{ table.name }}` table contains info about [events](https://stripe.com/docs/api/events){:target="new"}.
+ When an event occurs, a new event object is created. This table acts as the history
+ of an object, allowing you to see how it has changed over time.
+
+
+ For example: When an invoice is created, an `invoice.created` event is created.
+ When the draft invoice is finalized and updated to be open, an `invoice.finalized`
+ event is created. When the invoice is sent to the customer, an `invoice.sent`
+ event is created.
+
+
+ For more info about this table and how data is replicated, refer to the [Replication](#replication)
+ section. Additionally, refer to [{{ integration.display_name }}''s documentation](https://stripe.com/docs/api/events/types){:target="new"}
+ for info about event types and the objects they describe.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/events
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/events.json
+ api-method: https://stripe.com/docs/api/events/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: invoices
+ description: 'The `{{ table.name }}` table contains info about invoices. Invoices
+ are statements of amounts owed by customers, which can be one-off charges or generated
+ periodically from a subscription.
+
+
+ #### Invoice line items
+
+
+ Full records for the line items associated with an invoice can be found in the
+ [`invoice_line_items`](#invoice_line_items) table. To replicate these records,
+ you must set this table and the `invoice_line_items` table to replicate.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/invoices
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/invoices.json
+ api-method: https://stripe.com/docs/api/invoices/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: invoice_line_items
+ description: 'The `{{ table.name }}` table contains info about the line items contained
+ in invoices.
+
+
+ **Note**: In order to replicate invoice line item data, the [`invoices`](#invoices)
+ table must also be set to replicate.
+
+
+ #### Invoice line item replication
+
+
+ To replicate invoice line items, Stitch will use the Replication Key of the corresponding
+ invoice in the [`invoices`](#invoices) table to detect new and updated records.
+ This means that any time an invoice is updated, its associated line items will
+ also be replicated.
+
+
+ For example: An invoice with five line items is updated when its status changes
+ from `draft` to `open`. The record in `invoices` will be replicated, as will the
+ records for its five line items. In this example, a total of six records will
+ be replicated.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/invoices/line_item
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/invoice_line_items.json
+ api-method: https://stripe.com/docs/api/invoices/invoice_lines
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - id
+ - invoice
+- name: payment_intents
+ description: 'This table contains information about payments, from creation through
+ checkout, in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/payments/payment-intents
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/payment_intents.json
+ api-method: https://stripe.com/docs/api/payment_intents/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: payouts
+ description: 'The `{{ table.name }}` table contains info about payouts, which occur
+ when you receive funds from {{ integration.display_name }} or initiate a payout
+ to a bank account of the debit card of a connected {{ integration.display_name
+ }} account.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/payouts
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/payouts.json
+ api-method: https://stripe.com/docs/api/payouts/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: payout_transactions
+ description: This table contains info about payout transactions.
+ links:
+ doc-link: https://stripe.com/docs/api/payouts
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/payout_transactions.json
+ api-method: https://stripe.com/docs/api/payouts/list
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: plans
+ description: 'The `{{ table.name }}` table contains info about the plans in your
+ {{ integration.display_name }} account. A plan defines the base price, currency,
+ and billing cycle for subscriptions.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/plans
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/plans.json
+ api-method: https://stripe.com/docs/api/plans/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: products
+ description: 'The `{{ table.name }}` table contains info about the products in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/products
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/products.json
+ api-method: https://stripe.com/docs/api/products/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: subscriptions
+ description: 'The `{{ table.name }}` table contains info about subscriptions, which
+ allow you to charge a customer on a recurring basis. A subscription ties a customer
+ to a particular [plan](#plans).
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/subscriptions
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/subscriptions.json
+ api-method: https://stripe.com/docs/api/subscriptions/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: subscription_items
+ description: The `{{ table.name }}` table contains info about subscription items.
+ In {{ integration.display_name }}, subscription items are used to create customer
+ subscriptions with more than one plan.
+ links:
+ doc-link: https://stripe.com/docs/api/subscription_items
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/subscription_items.json
+ api-method: https://stripe.com/docs/api/subscription_items/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: invoice_items
+ description: 'The `{{ table.name }}` table contains info about items contained in
+ customer invoices.
+
+ '
+ links:
+ doc-link: null
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/invoice_items.json
+ api-method: https://stripe.com/docs/api/invoiceitems/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: date
+- name: transfers
+ description: 'The `{{ table.name }}` table contains info about transfers sent to
+ connected accounts.
+
+ '
+ links:
+ doc-link: null
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/transfers.json
+ api-method: https://stripe.com/docs/api/transfers/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/stripe/v3/json/balance_transactions.json b/_data/taps/schemas/stripe/v3/json/balance_transactions.json
new file mode 100644
index 000000000..850f689ee
--- /dev/null
+++ b/_data/taps/schemas/stripe/v3/json/balance_transactions.json
@@ -0,0 +1,143 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "available_on": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exchange_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "fee": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fee_details": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "application": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "net": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sourced_transfers": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v3/json/charges.json b/_data/taps/schemas/stripe/v3/json/charges.json
new file mode 100644
index 000000000..76d8510a7
--- /dev/null
+++ b/_data/taps/schemas/stripe/v3/json/charges.json
@@ -0,0 +1,2458 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_captured": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_refunded": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "application": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application_fee": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application_fee_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "balance_transaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_details": {
+ "properties": {
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "calculated_statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "captured": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "card": {
+ "properties": {
+ "address_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dispute": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "disputed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "failure_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "failure_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fraud_details": {
+ "properties": {
+ "stripe_report": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "on_behalf_of": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "outcome": {
+ "properties": {
+ "network_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "risk_level": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "risk_score": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "seller_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "paid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "payment_intent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method_details": {
+ "properties": {
+ "ach_credit_transfer": {
+ "properties": {
+ "account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "swift_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ach_debit": {
+ "properties": {
+ "account_holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "alipay": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "bancontact": {
+ "properties": {
+ "bank_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iban_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preferred_language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card": {
+ "properties": {
+ "address_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_present": {
+ "properties": {
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emv_auth_data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "generated_card": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "network": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "read_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt": {
+ "properties": {
+ "application_cryptogram": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application_preferred_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authorization_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authorization_response_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cardholder_verification_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dedicated_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "terminal_verification_results": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_status_information": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "checks": {
+ "properties": {
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_postal_code_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eps": {
+ "properties": {
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "giropay": {
+ "properties": {
+ "bank_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ideal": {
+ "properties": {
+ "bank": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iban_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "installments": {
+ "properties": {
+ "plan": {
+ "properties": {
+ "count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "klarna": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "multibanco": {
+ "properties": {
+ "entity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "network": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "p24": {
+ "properties": {
+ "reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "sepa_debit": {
+ "properties": {
+ "bank_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "branch_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mandate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "sofort": {
+ "properties": {
+ "bank_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iban_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "stripe_account": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "three_d_secure": {
+ "properties": {
+ "authenticated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "succeeded": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "wallet": {
+ "properties": {
+ "amex_express_checkout": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "apple_pay": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "google_pay": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "masterpass": {
+ "properties": {
+ "billing_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "samsung_pay": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visa_checkout": {
+ "properties": {
+ "billing_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "wechat": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card_present": {
+ "properties": {
+ "amount_authorized": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cardholder_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emv_auth_data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "generated_card": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "network": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "overcapture_supported": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "read_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt": {
+ "properties": {
+ "account_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application_cryptogram": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application_preferred_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authorization_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authorization_response_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cardholder_verification_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dedicated_file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "terminal_verification_results": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_status_information": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "receipt_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refunded": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "refunds": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "balance_transaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "charge": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "failure_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "instructions_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "next_action": {
+ "properties": {
+ "display_details": {
+ "properties": {
+ "email_sent": {
+ "properties": {
+ "email_sent_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email_sent_to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "expires_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_intent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source_transfer_reversal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transfer_reversal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "review": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "source": {
+ "properties": {
+ "ach_credit_transfer": {
+ "properties": {
+ "account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_holder_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "swift_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "address_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "alipay": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "bancontact": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card": {
+ "properties": {
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "three_d_secure": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "client_secret": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eps": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "flow": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ideal": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "multibanco": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner": {
+ "properties": {
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "receiver": {
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount_charged": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_received": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_returned": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "refund_attributes_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_attributes_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "redirect": {
+ "properties": {
+ "failure_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "return_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "source_transfer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor_suffix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transfer_data": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "transfer_group": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v3/json/coupons.json b/_data/taps/schemas/stripe/v3/json/coupons.json
new file mode 100644
index 000000000..f71f6bf04
--- /dev/null
+++ b/_data/taps/schemas/stripe/v3/json/coupons.json
@@ -0,0 +1,117 @@
+{
+ "properties": {
+ "amount_off": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration_in_months": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "max_redemptions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percent_off": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "percent_off_precise": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "redeem_by": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "times_redeemed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "valid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v3/json/customers.json b/_data/taps/schemas/stripe/v3/json/customers.json
new file mode 100644
index 000000000..95f1730da
--- /dev/null
+++ b/_data/taps/schemas/stripe/v3/json/customers.json
@@ -0,0 +1,1950 @@
+{
+ "properties": {
+ "account_balance": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "balance": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "cards": {
+ "items": {
+ "properties": {
+ "address_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_card": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "delinquent": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount": {
+ "properties": {
+ "checkout_session": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "coupon": {
+ "properties": {
+ "amount_off": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration_in_months": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "max_redemptions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percent_off": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "percent_off_precise": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "redeem_by": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "times_redeemed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "valid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_item": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promotion_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "subscription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_prefix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_settings": {
+ "properties": {
+ "custom_fields": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "default_payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "footer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "next_invoice_sequence": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "preferred_locales": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "shipping": {
+ "properties": {
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "sources": {
+ "anyOf": [
+ {
+ "items": {
+ "properties": {
+ "ach_credit_transfer": {
+ "properties": {
+ "account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_holder_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "swift_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "address_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "alipay": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "bancontact": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card": {
+ "properties": {
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "three_d_secure": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "client_secret": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eps": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "flow": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ideal": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "multibanco": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner": {
+ "properties": {
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "receiver": {
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount_charged": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_received": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_returned": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "refund_attributes_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_attributes_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "redirect": {
+ "properties": {
+ "failure_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "return_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ {
+ "ach_credit_transfer": {
+ "properties": {
+ "account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_holder_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_account_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "swift_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "address_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "alipay": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "bancontact": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card": {
+ "properties": {
+ "address_line1_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_zip_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "three_d_secure": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "client_secret": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cvc_check": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "eps": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "exp_month": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "exp_year": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "flow": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funding": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ideal": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "multibanco": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner": {
+ "properties": {
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "receiver": {
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount_charged": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_received": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_returned": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "refund_attributes_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_attributes_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "redirect": {
+ "properties": {
+ "failure_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "return_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tokenization_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ }
+ ]
+ },
+ "subscriptions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tax_exempt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_ids": {
+ "anyOf": [
+ {
+ "items": {
+ "properties": {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verification": {
+ "properties": {
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verification": {
+ "properties": {
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ }
+ ]
+ },
+ "tax_info": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_info_verification": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v3/json/disputes.json b/_data/taps/schemas/stripe/v3/json/disputes.json
new file mode 100644
index 000000000..24beec295
--- /dev/null
+++ b/_data/taps/schemas/stripe/v3/json/disputes.json
@@ -0,0 +1,308 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "balance_transactions": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "charge": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "evidence": {
+ "properties": {
+ "access_activity_log": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cancellation_policy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cancellation_policy_disclosure": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cancellation_rebuttal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_communication": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_email_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_purchase_ip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_signature": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duplicate_charge_documentation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duplicate_charge_explanation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duplicate_charge_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "receipt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_policy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_policy_disclosure": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "refund_refusal_explanation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "service_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "service_documentation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_carrier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_documentation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_tracking_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uncategorized_file": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uncategorized_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "string",
+ "object"
+ ]
+ },
+ "evidence_details": {
+ "properties": {
+ "due_by": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "has_evidence": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "past_due": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "submission_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "is_charge_refundable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v3/json/events.json b/_data/taps/schemas/stripe/v3/json/events.json
new file mode 100644
index 000000000..524697566
--- /dev/null
+++ b/_data/taps/schemas/stripe/v3/json/events.json
@@ -0,0 +1,66 @@
+{
+ "properties": {
+ "api_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "data": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pending_webhooks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "request": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v3/json/invoice_items.json b/_data/taps/schemas/stripe/v3/json/invoice_items.json
new file mode 100644
index 000000000..a632cedd9
--- /dev/null
+++ b/_data/taps/schemas/stripe/v3/json/invoice_items.json
@@ -0,0 +1,426 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discountable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "discounts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "period": {
+ "properties": {
+ "end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "plan": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "aggregate_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_decimal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "billing_scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tiers": {
+ "items": {
+ "properties": {
+ "flat_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "up_to": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "string",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tiers_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transform_usage": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trial_period_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "proration": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_item": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_rates": {
+ "items": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inclusive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "jurisdiction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percentage": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount_decimal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v3/json/invoice_line_items.json b/_data/taps/schemas/stripe/v3/json/invoice_line_items.json
new file mode 100644
index 000000000..8acf846ed
--- /dev/null
+++ b/_data/taps/schemas/stripe/v3/json/invoice_line_items.json
@@ -0,0 +1,680 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount_amounts": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "discountable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "discounts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_item": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "period": {
+ "properties": {
+ "end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "plan": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "aggregate_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_decimal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "billing_scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tiers": {
+ "items": {
+ "properties": {
+ "flat_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "up_to": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "string",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tiers_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transform_usage": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trial_period_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "price": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "billing_scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "lookup_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recurring": {
+ "properties": {
+ "aggregate_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "usage_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tax_behavior": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tiers": {
+ "items": {
+ "properties": {
+ "flat_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "flat_amount_decimal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount_decimal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "up_to": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tiers_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transform_quantity": {
+ "properties": {
+ "divide_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "round": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount_decimal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "proration": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "proration_details": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_item": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_amounts": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inclusive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tax_rate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tax_rates": {
+ "items": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inclusive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "jurisdiction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percentage": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_type": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v3/json/invoices.json b/_data/taps/schemas/stripe/v3/json/invoices.json
new file mode 100644
index 000000000..596233c24
--- /dev/null
+++ b/_data/taps/schemas/stripe/v3/json/invoices.json
@@ -0,0 +1,1119 @@
+{
+ "properties": {
+ "account_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_tax_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "amount_due": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_paid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_remaining": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "application_fee": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "application_fee_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "attempt_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "attempted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "auto_advance": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "automatic_tax": {
+ "properties": {
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "billing": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "charge": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "closed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "collection_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customer_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_shipping": {
+ "properties": {
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customer_tax_exempt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_tax_ids": {
+ "items": {
+ "properties": {
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "default_payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_tax_rates": {
+ "items": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inclusive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "jurisdiction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percentage": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount": {
+ "properties": {
+ "checkout_session": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "coupon": {
+ "properties": {
+ "amount_off": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration_in_months": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "max_redemptions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percent_off": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "percent_off_precise": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "redeem_by": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "times_redeemed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "valid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_item": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promotion_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "subscription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "discounts": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "due_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ending_balance": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "finalized_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "footer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "forgiven": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "hosted_invoice_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_pdf": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_finalization_error": {
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "doc_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "param": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "lines": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "properties": {},
+ "type": [
+ "null",
+ "array",
+ "object"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "next_payment_attempt": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "on_behalf_of": {
+ "properties": {},
+ "type": [
+ "null",
+ "string",
+ "object"
+ ]
+ },
+ "paid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "paid_out_of_band": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "payment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_intent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_settings": {
+ "properties": {
+ "payment_method_options": {
+ "properties": {
+ "acss_debit": {
+ "properties": {
+ "mandate_options": {
+ "properties": {
+ "transaction_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "verification_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "bancontact": {
+ "properties": {
+ "preferred_language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card": {
+ "properties": {
+ "request_three_d_secure": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "payment_method_types": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "period_end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "period_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "post_payment_credit_notes_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "pre_payment_credit_notes_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quote": {
+ "properties": {},
+ "type": [
+ "null",
+ "object",
+ "string"
+ ]
+ },
+ "receipt_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starting_balance": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status_transitions": {
+ "properties": {
+ "finalized_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "marked_uncollectible_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "paid_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "voided_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "subscription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription_details": {
+ "properties": {
+ "metadata": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "subtotal": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tax_percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_discount_amounts": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "discount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "total_tax_amounts": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inclusive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tax_rate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "transfer_data": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "webhooks_delivered_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v3/json/payment_intents.json b/_data/taps/schemas/stripe/v3/json/payment_intents.json
new file mode 100644
index 000000000..556fcafa3
--- /dev/null
+++ b/_data/taps/schemas/stripe/v3/json/payment_intents.json
@@ -0,0 +1,1093 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_capturable": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_received": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "application": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "application_fee_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "automatic_payment_methods": {
+ "properties": {
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "canceled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cancellation_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "capture_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "client_secret": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "confirmation_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_payment_error": {
+ "properties": {
+ "charge": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "decline_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "doc_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "param": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "latest_charge": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "next_action": {
+ "properties": {
+ "alipay_handle_redirect": {
+ "properties": {
+ "native_data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "native_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "return_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "boleto_display_details": {
+ "properties": {
+ "expires_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "hosted_voucher_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pdf": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "oxxo_display_details": {
+ "properties": {
+ "expires_after": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "hosted_voucher_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "redirect_to_url": {
+ "properties": {
+ "return_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "use_stripe_sdk": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "verify_with_microdeposits": {
+ "properties": {
+ "arrival_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "hosted_verification_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "wechat_pay_display_qr_code": {
+ "properties": {
+ "data": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_data_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_url_png": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_url_svg": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "wechat_pay_redirect_to_android_app": {
+ "properties": {
+ "app_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nonce_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "package": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "partner_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prepay_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sign": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "wechat_pay_redirect_to_ios_app": {
+ "properties": {
+ "native_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "on_behalf_of": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method_options": {
+ "properties": {
+ "acss_debit": {
+ "properties": {
+ "mandate_options": {
+ "properties": {
+ "custom_mandate_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_schedule": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transaction_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "object"
+ ],
+ "verification_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "afterpay_clearpay": {
+ "properties": {
+ "reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "alipay": {
+ "properties": {
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "au_becs_debit": {
+ "properties": {
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "bacs_debit": {
+ "properties": {
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "bancontact": {
+ "properties": {
+ "preferred_language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "boleto": {
+ "properties": {
+ "expires_after_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card": {
+ "properties": {
+ "installments": {
+ "properties": {
+ "available_plans": {
+ "items": {
+ "properties": {
+ "count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "plan": {
+ "properties": {
+ "count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "network": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "request_three_d_secure": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card_present": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "eps": {
+ "properties": {
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "fps": {
+ "properties": {
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "giropay": {
+ "properties": {
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "grabpay": {
+ "properties": {
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ideal": {
+ "properties": {
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "interac_present": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "klarna": {
+ "properties": {
+ "preferred_locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "oxxo": {
+ "properties": {
+ "expires_after_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "p24": {
+ "properties": {
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "sepa_debit": {
+ "properties": {
+ "mandate_options": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "sofort": {
+ "properties": {
+ "preferred_language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "wechat_pay": {
+ "properties": {
+ "app_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "client": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "payment_method_types": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "processing": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "receipt_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "review": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "setup_future_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping": {
+ "properties": {
+ "address": {
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "carrier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor_suffix": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transfer_data": {
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "transfer_group": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v3/json/payout_transactions.json b/_data/taps/schemas/stripe/v3/json/payout_transactions.json
new file mode 100644
index 000000000..1dd38e57f
--- /dev/null
+++ b/_data/taps/schemas/stripe/v3/json/payout_transactions.json
@@ -0,0 +1,20 @@
+{
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payout_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v3/json/payouts.json b/_data/taps/schemas/stripe/v3/json/payouts.json
new file mode 100644
index 000000000..d4111b240
--- /dev/null
+++ b/_data/taps/schemas/stripe/v3/json/payouts.json
@@ -0,0 +1,276 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_reversed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "arrival_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "automatic": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "balance_transaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_account": {
+ "properties": {
+ "account_holder_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_holder_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bank_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fingerprint": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "routing_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "failure_balance_transaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "failure_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "failure_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_payout": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recipient": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reversed_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source_transaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transfer_group": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v3/json/plans.json b/_data/taps/schemas/stripe/v3/json/plans.json
new file mode 100644
index 000000000..57a85d7a7
--- /dev/null
+++ b/_data/taps/schemas/stripe/v3/json/plans.json
@@ -0,0 +1,187 @@
+{
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "aggregate_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_decimal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "billing_scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tiers": {
+ "items": {
+ "properties": {
+ "flat_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "up_to": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "string",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tiers_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transform_usage": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trial_period_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object",
+ "string"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v3/json/products.json b/_data/taps/schemas/stripe/v3/json/products.json
new file mode 100644
index 000000000..1be6c5790
--- /dev/null
+++ b/_data/taps/schemas/stripe/v3/json/products.json
@@ -0,0 +1,179 @@
+{
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "attributes": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "caption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deactivate_on": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "images": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "package_dimensions": {
+ "properties": {
+ "height": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "length": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "weight": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shippable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v3/json/subscription_items.json b/_data/taps/schemas/stripe/v3/json/subscription_items.json
new file mode 100644
index 000000000..7af15288a
--- /dev/null
+++ b/_data/taps/schemas/stripe/v3/json/subscription_items.json
@@ -0,0 +1,629 @@
+{
+ "properties": {
+ "application_fee_percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "billing_thresholds": {
+ "properties": {
+ "usage_gte": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "cancel_at_period_end": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "canceled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "current_period_end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "current_period_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ended_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "aggregate_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_decimal": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "billing_scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tiers": {
+ "items": {
+ "properties": {
+ "flat_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "up_to": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "string",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tiers_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transform_usage": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trial_period_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "price": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "billing_scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "lookup_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recurring": {
+ "properties": {
+ "aggregate_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "usage_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "tax_behavior": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tiers": {
+ "items": {
+ "properties": {
+ "flat_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "flat_amount_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "up_to": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tiers_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transform_quantity": {
+ "properties": {
+ "divide_by": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "round": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount_decimal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "tax_rates": {
+ "items": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inclusive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "jurisdiction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percentage": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_type": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "trial_end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "trial_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v3/json/subscriptions.json b/_data/taps/schemas/stripe/v3/json/subscriptions.json
new file mode 100644
index 000000000..e602bdd96
--- /dev/null
+++ b/_data/taps/schemas/stripe/v3/json/subscriptions.json
@@ -0,0 +1,647 @@
+{
+ "properties": {
+ "application_fee_percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "billing": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_cycle_anchor": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "billing_thresholds": {
+ "properties": {
+ "amount_gte": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reset_billing_cycle_anchor": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "cancel_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cancel_at_period_end": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "canceled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "collection_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "current_period_end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "current_period_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "days_until_due": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "default_payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "discount": {
+ "properties": {
+ "checkout_session": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "coupon": {
+ "properties": {
+ "amount_off": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration_in_months": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "max_redemptions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "percent_off": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "percent_off_precise": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "redeem_by": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "times_redeemed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "valid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_item": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promotion_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "subscription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ended_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invoice_customer_balance_settings": {
+ "properties": {
+ "consume_applied_balance_on_void": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "items": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "latest_invoice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "next_pending_invoice_item_invoice": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pause_collection": {
+ "properties": {
+ "behavior": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resumes_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "pending_invoice_item_interval": {
+ "properties": {
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "pending_setup_intent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan": {
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "aggregate_usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "billing_scheme": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "interval_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tiers": {
+ "items": {
+ "properties": {
+ "flat_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "unit_amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "up_to": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "integer",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tiers_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transform_usage": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trial_period_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "usage_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "schedule": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tax_percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "transfer_data": {
+ "properties": {
+ "amount_percent": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trial_end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "trial_start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v3/json/transfers.json b/_data/taps/schemas/stripe/v3/json/transfers.json
new file mode 100644
index 000000000..c7f62ac9d
--- /dev/null
+++ b/_data/taps/schemas/stripe/v3/json/transfers.json
@@ -0,0 +1,166 @@
+{
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "amount_reversed": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "arrival_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "automatic": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "balance_transaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "failure_balance_transaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "livemode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metadata": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "object": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recipient": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reversals": {
+ "items": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "reversed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "source_transaction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statement_descriptor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transfer_group": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_by_event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/stripe/v3/stripe-v3-foreign-keys.yml b/_data/taps/schemas/stripe/v3/stripe-v3-foreign-keys.yml
new file mode 100644
index 000000000..951a9b56a
--- /dev/null
+++ b/_data/taps/schemas/stripe/v3/stripe-v3-foreign-keys.yml
@@ -0,0 +1,922 @@
+tap: stripe
+version: '3'
+keys:
+ balance_transactions_balance_transaction:
+ - table: balance_transactions
+ keys:
+ - id
+ - table: charges
+ keys:
+ - balance_transaction
+ - table: payouts
+ keys:
+ - balance_transaction
+ - failure_balance_transaction
+ - table: transfers
+ keys:
+ - balance_transaction
+ - failure_balance_transaction
+ - table: disputes
+ keys:
+ - balance_transactions.id
+ _card:
+ - table: charges
+ keys:
+ - card.id
+ - source.id
+ - table: customers
+ keys:
+ - cards.id
+ charges_charge:
+ - table: charges
+ keys:
+ - id
+ - table: invoices
+ keys:
+ - charge
+ - table: disputes
+ keys:
+ - charge
+ coupons_coupon:
+ - table: coupons
+ keys:
+ - id
+ - table: customers
+ keys:
+ - discount.coupon.id
+ - table: invoices
+ keys:
+ - discount.coupon.id
+ - table: subscriptions
+ keys:
+ - discount.coupon.id
+ customers_customer:
+ - table: charges
+ keys:
+ - customer
+ - card.customer
+ - table: customers
+ keys:
+ - id
+ - cards.customer
+ - discount.customer
+ - table: invoice_items
+ keys:
+ - customer
+ - table: invoices
+ keys:
+ - customer
+ - discount.customer
+ - table: subscription_items
+ keys:
+ - customer
+ - table: subscriptions
+ keys:
+ - customer
+ events_event:
+ - table: events
+ keys:
+ - id
+ invoices_invoice:
+ - table: charges
+ keys:
+ - invoice
+ - table: invoice_items
+ keys:
+ - invoice
+ - table: invoice_line_items
+ keys:
+ - invoice
+ - table: invoices
+ keys:
+ - id
+ invoice_items_invoice_item:
+ - table: invoice_items
+ keys:
+ - id
+ - table: invoice_line_items
+ keys:
+ - invoice_item
+ invoice_line_items_invoice_line_item:
+ - table: invoice_line_items
+ keys:
+ - id
+ - table: invoices
+ keys:
+ - lines
+ plans_plan:
+ - table: invoice_items
+ keys:
+ - plan.id
+ - table: plans
+ keys:
+ - id
+ - table: subscription_items
+ keys:
+ - plan.id
+ - table: subscriptions
+ keys:
+ - plan.id
+ payouts_payout:
+ - table: payouts
+ keys:
+ - id
+ - table: payout_transactions
+ keys:
+ - payout_id
+ products_product:
+ - table: invoice_items
+ keys:
+ - plan.product
+ - table: invoice_line_items
+ keys:
+ - plan.product
+ - table: plans
+ keys:
+ - product
+ - table: products
+ keys:
+ - id
+ - table: subscription_items
+ keys:
+ - plan.product
+ - table: subscriptions
+ keys:
+ - plan.product
+ subscription_items_subscription_item:
+ - table: invoice_items
+ keys:
+ - subscription_item
+ - table: subscription_items
+ keys:
+ - id
+ - table: subscriptions
+ keys:
+ - items
+ subscriptions_subscription:
+ - table: customers
+ keys:
+ - subscriptions
+ - discount.subscription
+ - table: invoice_items
+ keys:
+ - subscription
+ - table: invoice_line_items
+ keys:
+ - subscription
+ - table: invoices
+ keys:
+ - subscription
+ - discount.subscription
+ - table: subscriptions
+ keys:
+ - id
+ - table: subscription_items
+ keys:
+ - subscription
+ transfers_transfer:
+ - table: charges
+ keys:
+ - source_transfer
+ - table: transfers
+ keys:
+ - id
+ disputes_id:
+ - table: disputes
+ keys:
+ - id
+ payout_transactions_id:
+ - table: payout_transactions
+ keys:
+ - id
+tables:
+- table-name: balance_transactions
+ join:
+ - table-name: charges
+ keys:
+ - key: id
+ foreign-key: balance_transaction
+ - table-name: payouts
+ keys:
+ - key: id
+ foreign-key: balance_transaction
+ - key: id
+ foreign-key: failure_balance_transaction
+ - table-name: transfers
+ keys:
+ - key: id
+ foreign-key: balance_transaction
+ - key: id
+ foreign-key: failure_balance_transaction
+ - table-name: disputes
+ keys:
+ - key: id
+ foreign-key: balance_transactions.id
+- table-name: charges
+ join:
+ - table-name: balance_transactions
+ keys:
+ - key: balance_transaction
+ foreign-key: id
+ - table-name: payouts
+ keys:
+ - key: balance_transaction
+ foreign-key: balance_transaction
+ - key: balance_transaction
+ foreign-key: failure_balance_transaction
+ - table-name: transfers
+ keys:
+ - key: balance_transaction
+ foreign-key: balance_transaction
+ - key: balance_transaction
+ foreign-key: failure_balance_transaction
+ - key: source_transfer
+ foreign-key: id
+ - table-name: disputes
+ keys:
+ - key: balance_transaction
+ foreign-key: balance_transactions.id
+ - key: id
+ foreign-key: charge
+ - table-name: customers
+ keys:
+ - key: card.id
+ foreign-key: cards.id
+ - key: source.id
+ foreign-key: cards.id
+ - key: customer
+ foreign-key: id
+ - key: card.customer
+ foreign-key: id
+ - key: customer
+ foreign-key: cards.customer
+ - key: card.customer
+ foreign-key: cards.customer
+ - key: customer
+ foreign-key: discount.customer
+ - key: card.customer
+ foreign-key: discount.customer
+ - table-name: invoices
+ keys:
+ - key: id
+ foreign-key: charge
+ - key: customer
+ foreign-key: customer
+ - key: card.customer
+ foreign-key: customer
+ - key: customer
+ foreign-key: discount.customer
+ - key: card.customer
+ foreign-key: discount.customer
+ - key: invoice
+ foreign-key: id
+ - table-name: invoice_items
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: card.customer
+ foreign-key: customer
+ - key: invoice
+ foreign-key: invoice
+ - table-name: subscription_items
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: card.customer
+ foreign-key: customer
+ - table-name: subscriptions
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: card.customer
+ foreign-key: customer
+ - table-name: invoice_line_items
+ keys:
+ - key: invoice
+ foreign-key: invoice
+- table-name: payouts
+ join:
+ - table-name: balance_transactions
+ keys:
+ - key: balance_transaction
+ foreign-key: id
+ - key: failure_balance_transaction
+ foreign-key: id
+ - table-name: charges
+ keys:
+ - key: balance_transaction
+ foreign-key: balance_transaction
+ - key: failure_balance_transaction
+ foreign-key: balance_transaction
+ - table-name: transfers
+ keys:
+ - key: balance_transaction
+ foreign-key: balance_transaction
+ - key: failure_balance_transaction
+ foreign-key: balance_transaction
+ - key: balance_transaction
+ foreign-key: failure_balance_transaction
+ - key: failure_balance_transaction
+ foreign-key: failure_balance_transaction
+ - table-name: disputes
+ keys:
+ - key: balance_transaction
+ foreign-key: balance_transactions.id
+ - key: failure_balance_transaction
+ foreign-key: balance_transactions.id
+ - table-name: payout_transactions
+ keys:
+ - key: id
+ foreign-key: payout_id
+- table-name: transfers
+ join:
+ - table-name: balance_transactions
+ keys:
+ - key: balance_transaction
+ foreign-key: id
+ - key: failure_balance_transaction
+ foreign-key: id
+ - table-name: charges
+ keys:
+ - key: balance_transaction
+ foreign-key: balance_transaction
+ - key: failure_balance_transaction
+ foreign-key: balance_transaction
+ - key: id
+ foreign-key: source_transfer
+ - table-name: payouts
+ keys:
+ - key: balance_transaction
+ foreign-key: balance_transaction
+ - key: failure_balance_transaction
+ foreign-key: balance_transaction
+ - key: balance_transaction
+ foreign-key: failure_balance_transaction
+ - key: failure_balance_transaction
+ foreign-key: failure_balance_transaction
+ - table-name: disputes
+ keys:
+ - key: balance_transaction
+ foreign-key: balance_transactions.id
+ - key: failure_balance_transaction
+ foreign-key: balance_transactions.id
+- table-name: disputes
+ join:
+ - table-name: balance_transactions
+ keys:
+ - key: balance_transactions.id
+ foreign-key: id
+ - table-name: charges
+ keys:
+ - key: balance_transactions.id
+ foreign-key: balance_transaction
+ - key: charge
+ foreign-key: id
+ - table-name: payouts
+ keys:
+ - key: balance_transactions.id
+ foreign-key: balance_transaction
+ - key: balance_transactions.id
+ foreign-key: failure_balance_transaction
+ - table-name: transfers
+ keys:
+ - key: balance_transactions.id
+ foreign-key: balance_transaction
+ - key: balance_transactions.id
+ foreign-key: failure_balance_transaction
+ - table-name: invoices
+ keys:
+ - key: charge
+ foreign-key: charge
+- table-name: customers
+ join:
+ - table-name: charges
+ keys:
+ - key: cards.id
+ foreign-key: card.id
+ - key: cards.id
+ foreign-key: source.id
+ - key: id
+ foreign-key: customer
+ - key: cards.customer
+ foreign-key: customer
+ - key: discount.customer
+ foreign-key: customer
+ - key: id
+ foreign-key: card.customer
+ - key: cards.customer
+ foreign-key: card.customer
+ - key: discount.customer
+ foreign-key: card.customer
+ - table-name: coupons
+ keys:
+ - key: discount.coupon.id
+ foreign-key: id
+ - table-name: invoices
+ keys:
+ - key: discount.coupon.id
+ foreign-key: discount.coupon.id
+ - key: id
+ foreign-key: customer
+ - key: cards.customer
+ foreign-key: customer
+ - key: discount.customer
+ foreign-key: customer
+ - key: id
+ foreign-key: discount.customer
+ - key: cards.customer
+ foreign-key: discount.customer
+ - key: discount.customer
+ foreign-key: discount.customer
+ - key: subscriptions
+ foreign-key: subscription
+ - key: discount.subscription
+ foreign-key: subscription
+ - key: subscriptions
+ foreign-key: discount.subscription
+ - key: discount.subscription
+ foreign-key: discount.subscription
+ - table-name: subscriptions
+ keys:
+ - key: discount.coupon.id
+ foreign-key: discount.coupon.id
+ - key: id
+ foreign-key: customer
+ - key: cards.customer
+ foreign-key: customer
+ - key: discount.customer
+ foreign-key: customer
+ - key: subscriptions
+ foreign-key: id
+ - key: discount.subscription
+ foreign-key: id
+ - table-name: invoice_items
+ keys:
+ - key: id
+ foreign-key: customer
+ - key: cards.customer
+ foreign-key: customer
+ - key: discount.customer
+ foreign-key: customer
+ - key: subscriptions
+ foreign-key: subscription
+ - key: discount.subscription
+ foreign-key: subscription
+ - table-name: subscription_items
+ keys:
+ - key: id
+ foreign-key: customer
+ - key: cards.customer
+ foreign-key: customer
+ - key: discount.customer
+ foreign-key: customer
+ - key: subscriptions
+ foreign-key: subscription
+ - key: discount.subscription
+ foreign-key: subscription
+ - table-name: invoice_line_items
+ keys:
+ - key: subscriptions
+ foreign-key: subscription
+ - key: discount.subscription
+ foreign-key: subscription
+- table-name: invoices
+ join:
+ - table-name: charges
+ keys:
+ - key: charge
+ foreign-key: id
+ - key: customer
+ foreign-key: customer
+ - key: discount.customer
+ foreign-key: customer
+ - key: customer
+ foreign-key: card.customer
+ - key: discount.customer
+ foreign-key: card.customer
+ - key: id
+ foreign-key: invoice
+ - table-name: disputes
+ keys:
+ - key: charge
+ foreign-key: charge
+ - table-name: coupons
+ keys:
+ - key: discount.coupon.id
+ foreign-key: id
+ - table-name: customers
+ keys:
+ - key: discount.coupon.id
+ foreign-key: discount.coupon.id
+ - key: customer
+ foreign-key: id
+ - key: discount.customer
+ foreign-key: id
+ - key: customer
+ foreign-key: cards.customer
+ - key: discount.customer
+ foreign-key: cards.customer
+ - key: customer
+ foreign-key: discount.customer
+ - key: discount.customer
+ foreign-key: discount.customer
+ - key: subscription
+ foreign-key: subscriptions
+ - key: discount.subscription
+ foreign-key: subscriptions
+ - key: subscription
+ foreign-key: discount.subscription
+ - key: discount.subscription
+ foreign-key: discount.subscription
+ - table-name: subscriptions
+ keys:
+ - key: discount.coupon.id
+ foreign-key: discount.coupon.id
+ - key: customer
+ foreign-key: customer
+ - key: discount.customer
+ foreign-key: customer
+ - key: subscription
+ foreign-key: id
+ - key: discount.subscription
+ foreign-key: id
+ - table-name: invoice_items
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: discount.customer
+ foreign-key: customer
+ - key: id
+ foreign-key: invoice
+ - key: subscription
+ foreign-key: subscription
+ - key: discount.subscription
+ foreign-key: subscription
+ - table-name: subscription_items
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: discount.customer
+ foreign-key: customer
+ - key: subscription
+ foreign-key: subscription
+ - key: discount.subscription
+ foreign-key: subscription
+ - table-name: invoice_line_items
+ keys:
+ - key: id
+ foreign-key: invoice
+ - key: lines
+ foreign-key: id
+ - key: subscription
+ foreign-key: subscription
+ - key: discount.subscription
+ foreign-key: subscription
+- table-name: coupons
+ join:
+ - table-name: customers
+ keys:
+ - key: id
+ foreign-key: discount.coupon.id
+ - table-name: invoices
+ keys:
+ - key: id
+ foreign-key: discount.coupon.id
+ - table-name: subscriptions
+ keys:
+ - key: id
+ foreign-key: discount.coupon.id
+- table-name: subscriptions
+ join:
+ - table-name: coupons
+ keys:
+ - key: discount.coupon.id
+ foreign-key: id
+ - table-name: customers
+ keys:
+ - key: discount.coupon.id
+ foreign-key: discount.coupon.id
+ - key: customer
+ foreign-key: id
+ - key: customer
+ foreign-key: cards.customer
+ - key: customer
+ foreign-key: discount.customer
+ - key: id
+ foreign-key: subscriptions
+ - key: id
+ foreign-key: discount.subscription
+ - table-name: invoices
+ keys:
+ - key: discount.coupon.id
+ foreign-key: discount.coupon.id
+ - key: customer
+ foreign-key: customer
+ - key: customer
+ foreign-key: discount.customer
+ - key: id
+ foreign-key: subscription
+ - key: id
+ foreign-key: discount.subscription
+ - table-name: charges
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: customer
+ foreign-key: card.customer
+ - table-name: invoice_items
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: plan.id
+ foreign-key: plan.id
+ - key: plan.product
+ foreign-key: plan.product
+ - key: items
+ foreign-key: subscription_item
+ - key: id
+ foreign-key: subscription
+ - table-name: subscription_items
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: plan.id
+ foreign-key: plan.id
+ - key: plan.product
+ foreign-key: plan.product
+ - key: items
+ foreign-key: id
+ - key: id
+ foreign-key: subscription
+ - table-name: plans
+ keys:
+ - key: plan.id
+ foreign-key: id
+ - key: plan.product
+ foreign-key: product
+ - table-name: invoice_line_items
+ keys:
+ - key: plan.product
+ foreign-key: plan.product
+ - key: id
+ foreign-key: subscription
+ - table-name: products
+ keys:
+ - key: plan.product
+ foreign-key: id
+- table-name: invoice_items
+ join:
+ - table-name: charges
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: customer
+ foreign-key: card.customer
+ - key: invoice
+ foreign-key: invoice
+ - table-name: customers
+ keys:
+ - key: customer
+ foreign-key: id
+ - key: customer
+ foreign-key: cards.customer
+ - key: customer
+ foreign-key: discount.customer
+ - key: subscription
+ foreign-key: subscriptions
+ - key: subscription
+ foreign-key: discount.subscription
+ - table-name: invoices
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: customer
+ foreign-key: discount.customer
+ - key: invoice
+ foreign-key: id
+ - key: subscription
+ foreign-key: subscription
+ - key: subscription
+ foreign-key: discount.subscription
+ - table-name: subscription_items
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: plan.id
+ foreign-key: plan.id
+ - key: plan.product
+ foreign-key: plan.product
+ - key: subscription_item
+ foreign-key: id
+ - key: subscription
+ foreign-key: subscription
+ - table-name: subscriptions
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: plan.id
+ foreign-key: plan.id
+ - key: plan.product
+ foreign-key: plan.product
+ - key: subscription_item
+ foreign-key: items
+ - key: subscription
+ foreign-key: id
+ - table-name: invoice_line_items
+ keys:
+ - key: invoice
+ foreign-key: invoice
+ - key: id
+ foreign-key: invoice_item
+ - key: plan.product
+ foreign-key: plan.product
+ - key: subscription
+ foreign-key: subscription
+ - table-name: plans
+ keys:
+ - key: plan.id
+ foreign-key: id
+ - key: plan.product
+ foreign-key: product
+ - table-name: products
+ keys:
+ - key: plan.product
+ foreign-key: id
+- table-name: subscription_items
+ join:
+ - table-name: charges
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: customer
+ foreign-key: card.customer
+ - table-name: customers
+ keys:
+ - key: customer
+ foreign-key: id
+ - key: customer
+ foreign-key: cards.customer
+ - key: customer
+ foreign-key: discount.customer
+ - key: subscription
+ foreign-key: subscriptions
+ - key: subscription
+ foreign-key: discount.subscription
+ - table-name: invoice_items
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: plan.id
+ foreign-key: plan.id
+ - key: plan.product
+ foreign-key: plan.product
+ - key: id
+ foreign-key: subscription_item
+ - key: subscription
+ foreign-key: subscription
+ - table-name: invoices
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: customer
+ foreign-key: discount.customer
+ - key: subscription
+ foreign-key: subscription
+ - key: subscription
+ foreign-key: discount.subscription
+ - table-name: subscriptions
+ keys:
+ - key: customer
+ foreign-key: customer
+ - key: plan.id
+ foreign-key: plan.id
+ - key: plan.product
+ foreign-key: plan.product
+ - key: id
+ foreign-key: items
+ - key: subscription
+ foreign-key: id
+ - table-name: plans
+ keys:
+ - key: plan.id
+ foreign-key: id
+ - key: plan.product
+ foreign-key: product
+ - table-name: invoice_line_items
+ keys:
+ - key: plan.product
+ foreign-key: plan.product
+ - key: subscription
+ foreign-key: subscription
+ - table-name: products
+ keys:
+ - key: plan.product
+ foreign-key: id
+- table-name: invoice_line_items
+ join:
+ - table-name: charges
+ keys:
+ - key: invoice
+ foreign-key: invoice
+ - table-name: invoice_items
+ keys:
+ - key: invoice
+ foreign-key: invoice
+ - key: invoice_item
+ foreign-key: id
+ - key: plan.product
+ foreign-key: plan.product
+ - key: subscription
+ foreign-key: subscription
+ - table-name: invoices
+ keys:
+ - key: invoice
+ foreign-key: id
+ - key: id
+ foreign-key: lines
+ - key: subscription
+ foreign-key: subscription
+ - key: subscription
+ foreign-key: discount.subscription
+ - table-name: plans
+ keys:
+ - key: plan.product
+ foreign-key: product
+ - table-name: products
+ keys:
+ - key: plan.product
+ foreign-key: id
+ - table-name: subscription_items
+ keys:
+ - key: plan.product
+ foreign-key: plan.product
+ - key: subscription
+ foreign-key: subscription
+ - table-name: subscriptions
+ keys:
+ - key: plan.product
+ foreign-key: plan.product
+ - key: subscription
+ foreign-key: id
+ - table-name: customers
+ keys:
+ - key: subscription
+ foreign-key: subscriptions
+ - key: subscription
+ foreign-key: discount.subscription
+- table-name: plans
+ join:
+ - table-name: invoice_items
+ keys:
+ - key: id
+ foreign-key: plan.id
+ - key: product
+ foreign-key: plan.product
+ - table-name: subscription_items
+ keys:
+ - key: id
+ foreign-key: plan.id
+ - key: product
+ foreign-key: plan.product
+ - table-name: subscriptions
+ keys:
+ - key: id
+ foreign-key: plan.id
+ - key: product
+ foreign-key: plan.product
+ - table-name: invoice_line_items
+ keys:
+ - key: product
+ foreign-key: plan.product
+ - table-name: products
+ keys:
+ - key: product
+ foreign-key: id
+- table-name: payout_transactions
+ join:
+ - table-name: payouts
+ keys:
+ - key: payout_id
+ foreign-key: id
+- table-name: products
+ join:
+ - table-name: invoice_items
+ keys:
+ - key: id
+ foreign-key: plan.product
+ - table-name: invoice_line_items
+ keys:
+ - key: id
+ foreign-key: plan.product
+ - table-name: plans
+ keys:
+ - key: id
+ foreign-key: product
+ - table-name: subscription_items
+ keys:
+ - key: id
+ foreign-key: plan.product
+ - table-name: subscriptions
+ keys:
+ - key: id
+ foreign-key: plan.product
diff --git a/_data/taps/schemas/stripe/v3/stripe-v3-tables.yml b/_data/taps/schemas/stripe/v3/stripe-v3-tables.yml
new file mode 100644
index 000000000..3633d8189
--- /dev/null
+++ b/_data/taps/schemas/stripe/v3/stripe-v3-tables.yml
@@ -0,0 +1,262 @@
+tap: stripe
+version: '3'
+tables:
+- name: balance_transactions
+ description: The `{{ table.name }}` table contains info about transactions have
+ have contributed to your Stripe account balance, including charges, transfers,
+ etc.
+ links:
+ doc-link: https://stripe.com/docs/api/balance/balance_transaction
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/balance_transactions.json
+ api-method: https://stripe.com/docs/api/balance/balance_history
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: charges
+ description: 'The `{{ table.name }}` table contains info about charges to credit
+ and debit cards.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/charges/object
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/charges.json
+ api-method: https://stripe.com/docs/api/charges/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: coupons
+ description: 'The `{{ table.name }}` table contains info about percent or amount-off
+ discounts that may be applied to a customer. **Note:** Coupons only apply to invoices;
+ they don''t apply to one-off charges.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/coupons
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/coupons.json
+ api-method: https://stripe.com/docs/api/coupons/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: customers
+ description: 'The `{{ table.name }}` table contains info about your customers.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/customers/object
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/customers.json
+ api-method: https://stripe.com/docs/api/customers/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: disputes
+ description: This table contains information about customer disputes related to
+ charges on their credit card.
+ links:
+ doc-link: https://stripe.com/docs/api/disputes/object
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/disputes.json
+ api-method: https://stripe.com/docs/api/disputes/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: events
+ description: 'The `{{ table.name }}` table contains info about [events](https://stripe.com/docs/api/events){:target="new"}.
+ When an event occurs, a new event object is created. This table acts as the history
+ of an object, allowing you to see how it has changed over time.
+
+
+ For example: When an invoice is created, an `invoice.created` event is created.
+ When the draft invoice is finalized and updated to be open, an `invoice.finalized`
+ event is created. When the invoice is sent to the customer, an `invoice.sent`
+ event is created.
+
+
+ For more info about this table and how data is replicated, refer to the [Replication](#replication)
+ section. Additionally, refer to [{{ integration.display_name }}''s documentation](https://stripe.com/docs/api/events/types){:target="new"}
+ for info about event types and the objects they describe.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/events
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/events.json
+ api-method: https://stripe.com/docs/api/events/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: invoices
+ description: 'The `{{ table.name }}` table contains info about invoices. Invoices
+ are statements of amounts owed by customers, which can be one-off charges or generated
+ periodically from a subscription.
+
+
+ #### Invoice line items
+
+
+ Full records for the line items associated with an invoice can be found in the
+ [`invoice_line_items`](#invoice_line_items) table. To replicate these records,
+ you must set this table and the `invoice_line_items` table to replicate.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/invoices
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/invoices.json
+ api-method: https://stripe.com/docs/api/invoices/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: invoice_items
+ description: 'The `{{ table.name }}` table contains info about items contained in
+ customer invoices.
+
+ '
+ links:
+ doc-link: null
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/invoice_items.json
+ api-method: https://stripe.com/docs/api/invoiceitems/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: date
+- name: invoice_line_items
+ description: 'The `{{ table.name }}` table contains info about the line items contained
+ in invoices.
+
+
+ **Note**: In order to replicate invoice line item data, the [`invoices`](#invoices)
+ table must also be set to replicate.
+
+
+ #### Invoice line item replication
+
+
+ To replicate invoice line items, Stitch will use the Replication Key of the corresponding
+ invoice in the [`invoices`](#invoices) table to detect new and updated records.
+ This means that any time an invoice is updated, its associated line items will
+ also be replicated.
+
+
+ For example: An invoice with five line items is updated when its status changes
+ from `draft` to `open`. The record in `invoices` will be replicated, as will the
+ records for its five line items. In this example, a total of six records will
+ be replicated.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/invoices/line_item
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/invoice_line_items.json
+ api-method: https://stripe.com/docs/api/invoices/invoice_lines
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - id
+ - invoice
+- name: payment_intents
+ description: 'This table contains information about payments, from creation through
+ checkout, in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/payments/payment-intents
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/payment_intents.json
+ api-method: https://stripe.com/docs/api/payment_intents/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: payouts
+ description: 'The `{{ table.name }}` table contains info about payouts, which occur
+ when you receive funds from {{ integration.display_name }} or initiate a payout
+ to a bank account of the debit card of a connected {{ integration.display_name
+ }} account.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/payouts
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/payouts.json
+ api-method: https://stripe.com/docs/api/payouts/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: payout_transactions
+ description: This table contains info about payout transactions.
+ links:
+ doc-link: https://stripe.com/docs/api/payouts
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/payout_transactions.json
+ api-method: https://stripe.com/docs/api/payouts/list
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: plans
+ description: 'The `{{ table.name }}` table contains info about the plans in your
+ {{ integration.display_name }} account. A plan defines the base price, currency,
+ and billing cycle for subscriptions.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/plans
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/plans.json
+ api-method: https://stripe.com/docs/api/plans/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: products
+ description: 'The `{{ table.name }}` table contains info about the products in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/products
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/products.json
+ api-method: https://stripe.com/docs/api/products/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: subscriptions
+ description: 'The `{{ table.name }}` table contains info about subscriptions, which
+ allow you to charge a customer on a recurring basis. A subscription ties a customer
+ to a particular [plan](#plans).
+
+ '
+ links:
+ doc-link: https://stripe.com/docs/api/subscriptions
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/subscriptions.json
+ api-method: https://stripe.com/docs/api/subscriptions/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: subscription_items
+ description: The `{{ table.name }}` table contains info about subscription items.
+ In {{ integration.display_name }}, subscription items are used to create customer
+ subscriptions with more than one plan.
+ links:
+ doc-link: https://stripe.com/docs/api/subscription_items
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/subscription_items.json
+ api-method: https://stripe.com/docs/api/subscription_items/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+- name: transfers
+ description: 'The `{{ table.name }}` table contains info about transfers sent to
+ connected accounts.
+
+ '
+ links:
+ doc-link: null
+ singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/transfers.json
+ api-method: https://stripe.com/docs/api/transfers/list
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/surveymonkey/v1/json/responses.json b/_data/taps/schemas/surveymonkey/v1/json/responses.json
new file mode 100644
index 000000000..7bbc37bb2
--- /dev/null
+++ b/_data/taps/schemas/surveymonkey/v1/json/responses.json
@@ -0,0 +1,221 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "analyze_url": {
+ "type": "string"
+ },
+ "collection_mode": {
+ "enum": [
+ "default",
+ "preview",
+ "data_entry",
+ "survey_preview",
+ "edit"
+ ],
+ "title": "CollectionMode",
+ "type": "string"
+ },
+ "collector_id": {
+ "type": "string"
+ },
+ "custom_value": {
+ "type": "string"
+ },
+ "custom_variables": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": "object"
+ },
+ "date_created": {
+ "type": "date-time"
+ },
+ "date_modified": {
+ "type": "date-time"
+ },
+ "edit_url": {
+ "type": "string"
+ },
+ "email_address": {
+ "type": "string"
+ },
+ "first_name": {
+ "type": "string"
+ },
+ "href": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "ip_address": {
+ "type": "string"
+ },
+ "last_name": {
+ "type": "string"
+ },
+ "logic_path": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": "object"
+ },
+ "metadata": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": "object"
+ },
+ "page_path": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "pages": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "questions": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "answers": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "choice_id": {
+ "type": "string"
+ },
+ "col_id": {
+ "type": "string"
+ },
+ "image": {
+ "type": "string"
+ },
+ "is_correct": {
+ "type": "boolean"
+ },
+ "other_id": {
+ "type": "string"
+ },
+ "row_id": {
+ "type": "string"
+ },
+ "score": {
+ "type": "integer"
+ },
+ "tag_data": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "text": {
+ "type": "string"
+ }
+ },
+ "required": [],
+ "title": "Answer",
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "id": {
+ "type": "string"
+ },
+ "variable_id": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "answers",
+ "id"
+ ],
+ "title": "Question",
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "id",
+ "questions"
+ ],
+ "title": "Page",
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "quiz_results": {
+ "additionalProperties": true,
+ "properties": {
+ "correct": {
+ "type": "integer"
+ },
+ "incorrect": {
+ "type": "integer"
+ },
+ "partially_correct": {
+ "type": "integer"
+ },
+ "score": {
+ "type": "integer"
+ },
+ "total_questions": {
+ "type": "integer"
+ },
+ "total_score": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "recipient_id": {
+ "type": "string"
+ },
+ "response_status": {
+ "enum": [
+ "partial",
+ "completed",
+ "disqualified",
+ "overquota"
+ ],
+ "title": "ResponseStatus",
+ "type": "string"
+ },
+ "survey_id": {
+ "type": "string"
+ },
+ "total_time": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "analyze_url",
+ "collection_mode",
+ "collector_id",
+ "custom_value",
+ "custom_variables",
+ "date_created",
+ "date_modified",
+ "edit_url",
+ "href",
+ "id",
+ "ip_address",
+ "first_name",
+ "last_name",
+ "email_address",
+ "logic_path",
+ "metadata",
+ "page_path",
+ "pages",
+ "recipient_id",
+ "response_status",
+ "survey_id",
+ "total_time"
+ ],
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/surveymonkey/v1/json/simplified_responses.json b/_data/taps/schemas/surveymonkey/v1/json/simplified_responses.json
new file mode 100644
index 000000000..99243b30f
--- /dev/null
+++ b/_data/taps/schemas/surveymonkey/v1/json/simplified_responses.json
@@ -0,0 +1,257 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "analyze_url": {
+ "type": "string"
+ },
+ "collection_mode": {
+ "enum": [
+ "default",
+ "preview",
+ "data_entry",
+ "survey_preview",
+ "edit"
+ ],
+ "title": "CollectionMode",
+ "type": "string"
+ },
+ "collector_id": {
+ "type": "string"
+ },
+ "custom_value": {
+ "type": "string"
+ },
+ "custom_variables": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": "object"
+ },
+ "date_created": {
+ "type": "date-time"
+ },
+ "date_modified": {
+ "type": "date-time"
+ },
+ "edit_url": {
+ "type": "string"
+ },
+ "email_address": {
+ "type": "string"
+ },
+ "first_name": {
+ "type": "string"
+ },
+ "href": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "ip_address": {
+ "type": "string"
+ },
+ "last_name": {
+ "type": "string"
+ },
+ "logic_path": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": "object"
+ },
+ "metadata": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": "object"
+ },
+ "page_path": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "pages": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "questions": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "answers": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "choice_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "col_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_correct": {
+ "type": "boolean"
+ },
+ "other_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "row_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "score": {
+ "type": "integer"
+ },
+ "simple_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tag_data": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Answer",
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "family": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "heading": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": "string"
+ },
+ "subtype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "variable_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Question",
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "title": "Page",
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "quiz_results": {
+ "additionalProperties": true,
+ "properties": {
+ "correct": {
+ "type": "integer"
+ },
+ "incorrect": {
+ "type": "integer"
+ },
+ "partially_correct": {
+ "type": "integer"
+ },
+ "score": {
+ "type": "integer"
+ },
+ "total_questions": {
+ "type": "integer"
+ },
+ "total_score": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "recipient_id": {
+ "type": "string"
+ },
+ "response_status": {
+ "enum": [
+ "partial",
+ "completed",
+ "disqualified",
+ "overquota"
+ ],
+ "title": "ResponseStatus",
+ "type": "string"
+ },
+ "survey_id": {
+ "type": "string"
+ },
+ "total_time": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "analyze_url",
+ "collection_mode",
+ "collector_id",
+ "custom_value",
+ "custom_variables",
+ "date_created",
+ "date_modified",
+ "edit_url",
+ "href",
+ "id",
+ "ip_address",
+ "first_name",
+ "last_name",
+ "email_address",
+ "logic_path",
+ "metadata",
+ "page_path",
+ "pages",
+ "recipient_id",
+ "response_status",
+ "survey_id",
+ "total_time"
+ ],
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/surveymonkey/v1/json/survey_details.json b/_data/taps/schemas/surveymonkey/v1/json/survey_details.json
new file mode 100644
index 000000000..434c319bf
--- /dev/null
+++ b/_data/taps/schemas/surveymonkey/v1/json/survey_details.json
@@ -0,0 +1,708 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "analyze_url": {
+ "type": "string"
+ },
+ "buttons_text": {
+ "additionalProperties": true,
+ "properties": {
+ "done_button": {
+ "type": "string"
+ },
+ "exit_button": {
+ "type": "string"
+ },
+ "next_button": {
+ "type": "string"
+ },
+ "prev_button": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "done_button",
+ "exit_button",
+ "next_button",
+ "prev_button"
+ ],
+ "title": "ButtonsText",
+ "type": "object"
+ },
+ "category": {
+ "type": "string"
+ },
+ "collect_url": {
+ "type": "string"
+ },
+ "custom_variables": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": "object"
+ },
+ "date_created": {
+ "type": "date-time"
+ },
+ "date_modified": {
+ "type": "date-time"
+ },
+ "edit_url": {
+ "type": "string"
+ },
+ "folder_id": {
+ "type": "string"
+ },
+ "footer": {
+ "type": "boolean"
+ },
+ "href": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "is_owner": {
+ "type": "boolean"
+ },
+ "language": {
+ "type": "string"
+ },
+ "nickname": {
+ "type": "string"
+ },
+ "page_count": {
+ "type": "integer"
+ },
+ "pages": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "description": {
+ "type": "string"
+ },
+ "href": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "position": {
+ "type": "integer"
+ },
+ "question_count": {
+ "type": "integer"
+ },
+ "questions": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "answers": {
+ "additionalProperties": true,
+ "properties": {
+ "choices": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "description": {
+ "title": "Description",
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "image": {
+ "additionalProperties": true,
+ "properties": {
+ "s3_key": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "url"
+ ],
+ "title": "Image",
+ "type": "object"
+ },
+ "is_na": {
+ "type": "boolean"
+ },
+ "position": {
+ "type": "integer"
+ },
+ "quiz_options": {
+ "additionalProperties": true,
+ "properties": {
+ "score": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "score"
+ ],
+ "title": "ChoiceQuizOptions",
+ "type": "object"
+ },
+ "text": {
+ "type": "string"
+ },
+ "visible": {
+ "type": "boolean"
+ },
+ "weight": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "id",
+ "position",
+ "text",
+ "visible"
+ ],
+ "title": "Choice",
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "cols": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "choices": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "is_na": {
+ "type": "boolean"
+ },
+ "position": {
+ "type": "integer"
+ },
+ "text": {
+ "type": "string"
+ },
+ "visible": {
+ "type": "boolean"
+ }
+ },
+ "title": "ColChoices",
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "id": {
+ "type": "string"
+ },
+ "is_na": {
+ "type": "boolean"
+ },
+ "position": {
+ "type": "integer"
+ },
+ "text": {
+ "type": "string"
+ },
+ "visible": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "id",
+ "position",
+ "text",
+ "visible"
+ ],
+ "title": "Col",
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "other": {
+ "additionalProperties": true,
+ "properties": {
+ "apply_all_rows": {
+ "type": "boolean"
+ },
+ "error_text": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "is_answer_choice": {
+ "type": "boolean"
+ },
+ "num_chars": {
+ "type": "integer"
+ },
+ "num_lines": {
+ "type": "integer"
+ },
+ "position": {
+ "type": "integer"
+ },
+ "text": {
+ "type": "string"
+ },
+ "visible": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "apply_all_rows",
+ "error_text",
+ "id",
+ "is_answer_choice",
+ "num_chars",
+ "num_lines",
+ "position",
+ "text",
+ "visible"
+ ],
+ "title": "Other",
+ "type": "object"
+ },
+ "rows": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "position": {
+ "type": "integer"
+ },
+ "required": {
+ "type": "boolean"
+ },
+ "text": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "visible": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "id",
+ "position",
+ "text",
+ "visible"
+ ],
+ "title": "Row",
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [],
+ "title": "Answers",
+ "type": "object"
+ },
+ "display_options": {
+ "additionalProperties": true,
+ "properties": {
+ "show_display_number": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "show_display_number"
+ ],
+ "title": "DisplayOptions",
+ "type": "object"
+ },
+ "family": {
+ "type": "string"
+ },
+ "forced_ranking": {
+ "type": "boolean"
+ },
+ "headings": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "description": {
+ "type": "string"
+ },
+ "heading": {
+ "type": "string"
+ },
+ "image": {
+ "additionalProperties": true,
+ "properties": {
+ "s3_key": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "url"
+ ],
+ "title": "Image",
+ "type": "object"
+ },
+ "random_assignment": {
+ "additionalProperties": true,
+ "properties": {
+ "description": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "percent": {
+ "type": "number"
+ },
+ "position": {
+ "type": "integer"
+ },
+ "variable_name": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "percent",
+ "position",
+ "variable_name"
+ ],
+ "title": "RandomAssignment",
+ "type": "object"
+ }
+ },
+ "title": "Heading",
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "href": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "layout": {
+ "additionalProperties": true,
+ "properties": {
+ "bottom_spacing": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "col_width": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "col_width_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "left_spacing": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_chars": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_lines": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "right_spacing": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "top_spacing": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "width_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "nickname": {
+ "type": "string"
+ },
+ "position": {
+ "type": "integer"
+ },
+ "quiz_options": {
+ "properties": {
+ "feedback": {
+ "properties": {
+ "correct_text": {
+ "type": "string"
+ },
+ "incorrect_text": {
+ "type": "string"
+ },
+ "partial_text": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "scoring_enabled": {
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "required": {
+ "additionalProperties": true,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text": {
+ "type": "string"
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "required": [
+ "amount",
+ "text",
+ "type"
+ ],
+ "title": "Required",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "sorting": {
+ "additionalProperties": true,
+ "properties": {
+ "ignore_last": {
+ "type": "boolean"
+ },
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "ignore_last",
+ "type"
+ ],
+ "title": "Sorting",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "subtype": {
+ "type": "string"
+ },
+ "validation": {
+ "additionalProperties": true,
+ "properties": {
+ "max": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "min": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sum": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sum_text": {
+ "type": "string"
+ },
+ "text": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "max",
+ "min",
+ "sum",
+ "sum_text",
+ "text",
+ "type"
+ ],
+ "title": "Validation",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "visible": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "family",
+ "forced_ranking",
+ "headings",
+ "href",
+ "id",
+ "position",
+ "required",
+ "sorting",
+ "subtype",
+ "validation",
+ "visible"
+ ],
+ "title": "Question",
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "title": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "description",
+ "href",
+ "id",
+ "position",
+ "question_count",
+ "questions",
+ "title"
+ ],
+ "title": "Page",
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "preview": {
+ "type": "string"
+ },
+ "question_count": {
+ "type": "integer"
+ },
+ "quiz_options": {
+ "additionalProperties": true,
+ "properties": {
+ "feedback": {
+ "additionalProperties": true,
+ "properties": {
+ "ranges": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "max": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ },
+ "min": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "max",
+ "message",
+ "min"
+ ],
+ "title": "Range",
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "ranges_type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "ranges",
+ "ranges_type"
+ ],
+ "title": "Feedback",
+ "type": "object"
+ },
+ "is_quiz_mode": {
+ "type": "boolean"
+ },
+ "show_results_type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "feedback",
+ "is_quiz_mode",
+ "show_results_type"
+ ],
+ "title": "SurveyQuizOptions",
+ "type": "object"
+ },
+ "response_count": {
+ "type": "integer"
+ },
+ "summary_url": {
+ "type": "string"
+ },
+ "title": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/surveymonkey/v1/surveymonkey-v1-foreign-keys.yml b/_data/taps/schemas/surveymonkey/v1/surveymonkey-v1-foreign-keys.yml
new file mode 100644
index 000000000..a86f87c0a
--- /dev/null
+++ b/_data/taps/schemas/surveymonkey/v1/surveymonkey-v1-foreign-keys.yml
@@ -0,0 +1,55 @@
+tap: surveymonkey
+version: '1'
+keys:
+ responses_id:
+ - table: responses
+ keys:
+ - id
+ - table: simplified_responses
+ keys:
+ - id
+ survey_details_id:
+ - table: survey_details
+ keys:
+ - id
+ - table: responses
+ keys:
+ - survey_id
+ - table: simplified_responses
+ keys:
+ - survey_id
+tables:
+- table-name: responses
+ join:
+ - table-name: simplified_responses
+ keys:
+ - key: id
+ foreign-key: id
+ - key: survey_id
+ foreign-key: survey_id
+ - table-name: survey_details
+ keys:
+ - key: survey_id
+ foreign-key: id
+- table-name: simplified_responses
+ join:
+ - table-name: responses
+ keys:
+ - key: id
+ foreign-key: id
+ - key: survey_id
+ foreign-key: survey_id
+ - table-name: survey_details
+ keys:
+ - key: survey_id
+ foreign-key: id
+- table-name: survey_details
+ join:
+ - table-name: responses
+ keys:
+ - key: id
+ foreign-key: survey_id
+ - table-name: simplified_responses
+ keys:
+ - key: id
+ foreign-key: survey_id
diff --git a/_data/taps/schemas/surveymonkey/v1/surveymonkey-v1-tables.yml b/_data/taps/schemas/surveymonkey/v1/surveymonkey-v1-tables.yml
new file mode 100644
index 000000000..ea4227d3c
--- /dev/null
+++ b/_data/taps/schemas/surveymonkey/v1/surveymonkey-v1-tables.yml
@@ -0,0 +1,34 @@
+tap: surveymonkey
+version: '1'
+tables:
+- name: responses
+ description: This table contains information about your survey responses.
+ links:
+ doc-link: https://developer.surveymonkey.com/api/v3/
+ singer-schema: https://github.com/singer-io/tap-surveymonkey/blob/master/tap_surveymonkey/schemas/responses.json
+ api-method: https://developer.surveymonkey.com/api/v3/#collectors-id-responses-id-details
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: date_modified
+- name: simplified_responses
+ description: This table contains a simplified version of information about your
+ survey responses.
+ links:
+ doc-link: https://developer.surveymonkey.com/api/v3/
+ singer-schema: https://github.com/singer-io/tap-surveymonkey/blob/master/tap_surveymonkey/schemas/simplified_responses.json
+ api-method: https://developer.surveymonkey.com/api/v3/#collectors-id-responses-id-details
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: date_modified
+- name: survey_details
+ description: This table contains information about your survey details.
+ links:
+ doc-link: https://developer.surveymonkey.com/api/v3/
+ singer-schema: https://github.com/singer-io/tap-surveymonkey/blob/master/tap_surveymonkey/schemas/survey_details.json
+ api-method: https://developer.surveymonkey.com/api/v3/#surveys
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: date_modified
diff --git a/_data/taps/schemas/surveymonkey/v2/json/responses.json b/_data/taps/schemas/surveymonkey/v2/json/responses.json
new file mode 100644
index 000000000..4b016e51d
--- /dev/null
+++ b/_data/taps/schemas/surveymonkey/v2/json/responses.json
@@ -0,0 +1,224 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "analyze_url": {
+ "type": "string"
+ },
+ "collection_mode": {
+ "enum": [
+ "default",
+ "preview",
+ "data_entry",
+ "survey_preview",
+ "edit"
+ ],
+ "title": "CollectionMode",
+ "type": "string"
+ },
+ "collector_id": {
+ "type": "string"
+ },
+ "custom_value": {
+ "type": "string"
+ },
+ "custom_variables": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": "object"
+ },
+ "date_created": {
+ "type": "date-time"
+ },
+ "date_modified": {
+ "type": "date-time"
+ },
+ "edit_url": {
+ "type": "string"
+ },
+ "email_address": {
+ "type": "string"
+ },
+ "first_name": {
+ "type": "string"
+ },
+ "href": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "ip_address": {
+ "type": "string"
+ },
+ "last_name": {
+ "type": "string"
+ },
+ "logic_path": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": "object"
+ },
+ "metadata": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": "object"
+ },
+ "page_path": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "pages": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "questions": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "answers": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "choice_id": {
+ "type": "string"
+ },
+ "col_id": {
+ "type": "string"
+ },
+ "image": {
+ "type": "string"
+ },
+ "is_correct": {
+ "type": "boolean"
+ },
+ "other_id": {
+ "type": "string"
+ },
+ "row_id": {
+ "type": "string"
+ },
+ "score": {
+ "type": "integer"
+ },
+ "tag_data": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "text": {
+ "type": "string"
+ }
+ },
+ "required": [],
+ "title": "Answer",
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "id": {
+ "type": "string"
+ },
+ "variable_id": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "answers",
+ "id"
+ ],
+ "title": "Question",
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "id",
+ "questions"
+ ],
+ "title": "Page",
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "quiz_results": {
+ "additionalProperties": true,
+ "properties": {
+ "correct": {
+ "type": "integer"
+ },
+ "incorrect": {
+ "type": "integer"
+ },
+ "partially_correct": {
+ "type": "integer"
+ },
+ "score": {
+ "type": "integer"
+ },
+ "total_questions": {
+ "type": "integer"
+ },
+ "total_score": {
+ "type": "integer"
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "recipient_id": {
+ "type": "string"
+ },
+ "response_status": {
+ "enum": [
+ "partial",
+ "completed",
+ "disqualified",
+ "overquota"
+ ],
+ "title": "ResponseStatus",
+ "type": "string"
+ },
+ "survey_id": {
+ "type": "string"
+ },
+ "total_time": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "analyze_url",
+ "collection_mode",
+ "collector_id",
+ "custom_value",
+ "custom_variables",
+ "date_created",
+ "date_modified",
+ "edit_url",
+ "href",
+ "id",
+ "ip_address",
+ "first_name",
+ "last_name",
+ "email_address",
+ "logic_path",
+ "metadata",
+ "page_path",
+ "pages",
+ "recipient_id",
+ "response_status",
+ "survey_id",
+ "total_time"
+ ],
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/surveymonkey/v2/json/simplified_responses.json b/_data/taps/schemas/surveymonkey/v2/json/simplified_responses.json
new file mode 100644
index 000000000..24e86b5d9
--- /dev/null
+++ b/_data/taps/schemas/surveymonkey/v2/json/simplified_responses.json
@@ -0,0 +1,260 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "analyze_url": {
+ "type": "string"
+ },
+ "collection_mode": {
+ "enum": [
+ "default",
+ "preview",
+ "data_entry",
+ "survey_preview",
+ "edit"
+ ],
+ "title": "CollectionMode",
+ "type": "string"
+ },
+ "collector_id": {
+ "type": "string"
+ },
+ "custom_value": {
+ "type": "string"
+ },
+ "custom_variables": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": "object"
+ },
+ "date_created": {
+ "type": "date-time"
+ },
+ "date_modified": {
+ "type": "date-time"
+ },
+ "edit_url": {
+ "type": "string"
+ },
+ "email_address": {
+ "type": "string"
+ },
+ "first_name": {
+ "type": "string"
+ },
+ "href": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "ip_address": {
+ "type": "string"
+ },
+ "last_name": {
+ "type": "string"
+ },
+ "logic_path": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": "object"
+ },
+ "metadata": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": "object"
+ },
+ "page_path": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "pages": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "questions": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "answers": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "choice_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "col_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_correct": {
+ "type": "boolean"
+ },
+ "other_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "row_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "score": {
+ "type": "integer"
+ },
+ "simple_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tag_data": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Answer",
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "family": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "heading": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": "string"
+ },
+ "subtype": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "variable_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "title": "Question",
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "title": "Page",
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "quiz_results": {
+ "additionalProperties": true,
+ "properties": {
+ "correct": {
+ "type": "integer"
+ },
+ "incorrect": {
+ "type": "integer"
+ },
+ "partially_correct": {
+ "type": "integer"
+ },
+ "score": {
+ "type": "integer"
+ },
+ "total_questions": {
+ "type": "integer"
+ },
+ "total_score": {
+ "type": "integer"
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "recipient_id": {
+ "type": "string"
+ },
+ "response_status": {
+ "enum": [
+ "partial",
+ "completed",
+ "disqualified",
+ "overquota"
+ ],
+ "title": "ResponseStatus",
+ "type": "string"
+ },
+ "survey_id": {
+ "type": "string"
+ },
+ "total_time": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "analyze_url",
+ "collection_mode",
+ "collector_id",
+ "custom_value",
+ "custom_variables",
+ "date_created",
+ "date_modified",
+ "edit_url",
+ "href",
+ "id",
+ "ip_address",
+ "first_name",
+ "last_name",
+ "email_address",
+ "logic_path",
+ "metadata",
+ "page_path",
+ "pages",
+ "recipient_id",
+ "response_status",
+ "survey_id",
+ "total_time"
+ ],
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/surveymonkey/v2/json/survey_details.json b/_data/taps/schemas/surveymonkey/v2/json/survey_details.json
new file mode 100644
index 000000000..95c670f54
--- /dev/null
+++ b/_data/taps/schemas/surveymonkey/v2/json/survey_details.json
@@ -0,0 +1,714 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "analyze_url": {
+ "type": "string"
+ },
+ "buttons_text": {
+ "additionalProperties": true,
+ "properties": {
+ "done_button": {
+ "type": "string"
+ },
+ "exit_button": {
+ "type": "string"
+ },
+ "next_button": {
+ "type": "string"
+ },
+ "prev_button": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "done_button",
+ "exit_button",
+ "next_button",
+ "prev_button"
+ ],
+ "title": "ButtonsText",
+ "type": "object"
+ },
+ "category": {
+ "type": "string"
+ },
+ "collect_url": {
+ "type": "string"
+ },
+ "custom_variables": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": "object"
+ },
+ "date_created": {
+ "type": "date-time"
+ },
+ "date_modified": {
+ "type": "date-time"
+ },
+ "edit_url": {
+ "type": "string"
+ },
+ "folder_id": {
+ "type": "string"
+ },
+ "footer": {
+ "type": "boolean"
+ },
+ "href": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "is_owner": {
+ "type": "boolean"
+ },
+ "language": {
+ "type": "string"
+ },
+ "nickname": {
+ "type": "string"
+ },
+ "page_count": {
+ "type": "integer"
+ },
+ "pages": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "description": {
+ "type": "string"
+ },
+ "href": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "position": {
+ "type": "integer"
+ },
+ "question_count": {
+ "type": "integer"
+ },
+ "questions": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "answers": {
+ "additionalProperties": true,
+ "properties": {
+ "choices": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "description": {
+ "title": "Description",
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "image": {
+ "additionalProperties": true,
+ "properties": {
+ "s3_key": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "url"
+ ],
+ "title": "Image",
+ "type": "object"
+ },
+ "is_na": {
+ "type": "boolean"
+ },
+ "position": {
+ "type": "integer"
+ },
+ "quiz_options": {
+ "additionalProperties": true,
+ "properties": {
+ "score": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "score"
+ ],
+ "title": "ChoiceQuizOptions",
+ "type": "object"
+ },
+ "text": {
+ "type": "string"
+ },
+ "visible": {
+ "type": "boolean"
+ },
+ "weight": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "id",
+ "position",
+ "text",
+ "visible"
+ ],
+ "title": "Choice",
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "cols": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "choices": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "is_na": {
+ "type": "boolean"
+ },
+ "position": {
+ "type": "integer"
+ },
+ "text": {
+ "type": "string"
+ },
+ "visible": {
+ "type": "boolean"
+ }
+ },
+ "title": "ColChoices",
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "id": {
+ "type": "string"
+ },
+ "is_na": {
+ "type": "boolean"
+ },
+ "position": {
+ "type": "integer"
+ },
+ "text": {
+ "type": "string"
+ },
+ "visible": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "id",
+ "position",
+ "text",
+ "visible"
+ ],
+ "title": "Col",
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "other": {
+ "additionalProperties": true,
+ "properties": {
+ "apply_all_rows": {
+ "type": "boolean"
+ },
+ "error_text": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "is_answer_choice": {
+ "type": "boolean"
+ },
+ "num_chars": {
+ "type": "integer"
+ },
+ "num_lines": {
+ "type": "integer"
+ },
+ "position": {
+ "type": "integer"
+ },
+ "text": {
+ "type": "string"
+ },
+ "visible": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "apply_all_rows",
+ "error_text",
+ "id",
+ "is_answer_choice",
+ "num_chars",
+ "num_lines",
+ "position",
+ "text",
+ "visible"
+ ],
+ "title": "Other",
+ "type": "object"
+ },
+ "rows": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "position": {
+ "type": "integer"
+ },
+ "required": {
+ "type": "boolean"
+ },
+ "text": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "visible": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "id",
+ "position",
+ "text",
+ "visible"
+ ],
+ "title": "Row",
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [],
+ "title": "Answers",
+ "type": "object"
+ },
+ "display_options": {
+ "additionalProperties": true,
+ "properties": {
+ "show_display_number": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "show_display_number"
+ ],
+ "title": "DisplayOptions",
+ "type": "object"
+ },
+ "family": {
+ "type": "string"
+ },
+ "forced_ranking": {
+ "type": "boolean"
+ },
+ "headings": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "description": {
+ "type": "string"
+ },
+ "heading": {
+ "type": "string"
+ },
+ "image": {
+ "additionalProperties": true,
+ "properties": {
+ "s3_key": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "url"
+ ],
+ "title": "Image",
+ "type": "object"
+ },
+ "random_assignment": {
+ "additionalProperties": true,
+ "properties": {
+ "description": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "percent": {
+ "type": "number"
+ },
+ "position": {
+ "type": "integer"
+ },
+ "variable_name": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "percent",
+ "position",
+ "variable_name"
+ ],
+ "title": "RandomAssignment",
+ "type": "object"
+ }
+ },
+ "title": "Heading",
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "href": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "layout": {
+ "additionalProperties": true,
+ "properties": {
+ "bottom_spacing": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "col_width": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "col_width_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "left_spacing": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_chars": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "num_lines": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "right_spacing": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "top_spacing": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "width_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "position": {
+ "type": "integer"
+ },
+ "quiz_options": {
+ "properties": {
+ "feedback": {
+ "properties": {
+ "correct_text": {
+ "type": "string"
+ },
+ "incorrect_text": {
+ "type": "string"
+ },
+ "partial_text": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "scoring_enabled": {
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "required": {
+ "additionalProperties": true,
+ "properties": {
+ "amount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text": {
+ "type": "string"
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "required": [
+ "amount",
+ "text",
+ "type"
+ ],
+ "title": "Required",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "sorting": {
+ "additionalProperties": true,
+ "properties": {
+ "ignore_last": {
+ "type": "boolean"
+ },
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "ignore_last",
+ "type"
+ ],
+ "title": "Sorting",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "subtype": {
+ "type": "string"
+ },
+ "validation": {
+ "additionalProperties": true,
+ "properties": {
+ "max": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "min": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sum": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sum_text": {
+ "type": "string"
+ },
+ "text": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "max",
+ "min",
+ "sum",
+ "sum_text",
+ "text",
+ "type"
+ ],
+ "title": "Validation",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "visible": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "family",
+ "forced_ranking",
+ "headings",
+ "href",
+ "id",
+ "position",
+ "required",
+ "sorting",
+ "subtype",
+ "validation",
+ "visible"
+ ],
+ "title": "Question",
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "title": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "description",
+ "href",
+ "id",
+ "position",
+ "question_count",
+ "questions",
+ "title"
+ ],
+ "title": "Page",
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "preview": {
+ "type": "string"
+ },
+ "question_count": {
+ "type": "integer"
+ },
+ "quiz_options": {
+ "additionalProperties": true,
+ "properties": {
+ "feedback": {
+ "additionalProperties": true,
+ "properties": {
+ "ranges": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "max": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ },
+ "min": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "max",
+ "message",
+ "min"
+ ],
+ "title": "Range",
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "ranges_type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "ranges",
+ "ranges_type"
+ ],
+ "title": "Feedback",
+ "type": "object"
+ },
+ "is_quiz_mode": {
+ "type": "boolean"
+ },
+ "show_results_type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "feedback",
+ "is_quiz_mode",
+ "show_results_type"
+ ],
+ "title": "SurveyQuizOptions",
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "response_count": {
+ "type": "integer"
+ },
+ "summary_url": {
+ "type": "string"
+ },
+ "title": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/surveymonkey/v2/json/surveys.json b/_data/taps/schemas/surveymonkey/v2/json/surveys.json
new file mode 100644
index 000000000..0afda34f0
--- /dev/null
+++ b/_data/taps/schemas/surveymonkey/v2/json/surveys.json
@@ -0,0 +1,52 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_modified": {
+ "type": "date-time"
+ },
+ "id": {
+ "type": "string"
+ },
+ "language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "question_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "response_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "date_modified"
+ ],
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/surveymonkey/v2/surveymonkey-v2-foreign-keys.yml b/_data/taps/schemas/surveymonkey/v2/surveymonkey-v2-foreign-keys.yml
new file mode 100644
index 000000000..b4c1b3f30
--- /dev/null
+++ b/_data/taps/schemas/surveymonkey/v2/surveymonkey-v2-foreign-keys.yml
@@ -0,0 +1,55 @@
+tap: surveymonkey
+version: '2'
+keys:
+ responses_id:
+ - table: responses
+ keys:
+ - id
+ - table: simplified_responses
+ keys:
+ - id
+ survey_details_id:
+ - table: survey_details
+ keys:
+ - id
+ - table: responses
+ keys:
+ - survey_id
+ - table: simplified_responses
+ keys:
+ - survey_id
+tables:
+- table-name: responses
+ join:
+ - table-name: simplified_responses
+ keys:
+ - key: id
+ foreign-key: id
+ - key: survey_id
+ foreign-key: survey_id
+ - table-name: survey_details
+ keys:
+ - key: survey_id
+ foreign-key: id
+- table-name: simplified_responses
+ join:
+ - table-name: responses
+ keys:
+ - key: id
+ foreign-key: id
+ - key: survey_id
+ foreign-key: survey_id
+ - table-name: survey_details
+ keys:
+ - key: survey_id
+ foreign-key: id
+- table-name: survey_details
+ join:
+ - table-name: responses
+ keys:
+ - key: id
+ foreign-key: survey_id
+ - table-name: simplified_responses
+ keys:
+ - key: id
+ foreign-key: survey_id
diff --git a/_data/taps/schemas/surveymonkey/v2/surveymonkey-v2-tables.yml b/_data/taps/schemas/surveymonkey/v2/surveymonkey-v2-tables.yml
new file mode 100644
index 000000000..117eded9a
--- /dev/null
+++ b/_data/taps/schemas/surveymonkey/v2/surveymonkey-v2-tables.yml
@@ -0,0 +1,43 @@
+tap: surveymonkey
+version: '2'
+tables:
+- name: responses
+ description: This table contains information about your survey responses.
+ links:
+ doc-link: https://developer.surveymonkey.com/api/v3/
+ singer-schema: https://github.com/singer-io/tap-surveymonkey/blob/master/tap_surveymonkey/schemas/responses.json
+ api-method: https://developer.surveymonkey.com/api/v3/#collectors-id-responses-id-details
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: date_modified
+- name: simplified_responses
+ description: This table contains a simplified version of information about your
+ survey responses.
+ links:
+ doc-link: https://developer.surveymonkey.com/api/v3/
+ singer-schema: https://github.com/singer-io/tap-surveymonkey/blob/master/tap_surveymonkey/schemas/simplified_responses.json
+ api-method: https://developer.surveymonkey.com/api/v3/#collectors-id-responses-id-details
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: date_modified
+- name: surveys
+ description: This table contains information about your surveys.
+ links:
+ doc-link: https://developer.surveymonkey.com/api/v3/
+ singer-schema: https://github.com/singer-io/tap-surveymonkey/tree/TDL-23990-changes/tap_surveymonkey/schemas/surveys.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: date_modified
+- name: survey_details
+ description: This table contains information about your survey details.
+ links:
+ doc-link: https://developer.surveymonkey.com/api/v3/
+ singer-schema: https://github.com/singer-io/tap-surveymonkey/blob/master/tap_surveymonkey/schemas/survey_details.json
+ api-method: https://developer.surveymonkey.com/api/v3/#surveys
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: date_modified
diff --git a/_data/taps/schemas/taboola/v1/json/campaign.json b/_data/taps/schemas/taboola/v1/json/campaign.json
new file mode 100644
index 000000000..3cde2f2b7
--- /dev/null
+++ b/_data/taps/schemas/taboola/v1/json/campaign.json
@@ -0,0 +1,146 @@
+{
+ "properties": {
+ "advertiser_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "approval_state": {
+ "type": [
+ "string"
+ ]
+ },
+ "country_targeting": {
+ "properties": {
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "value": {
+ "properties": {
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "cpc": {
+ "type": [
+ "number"
+ ]
+ },
+ "daily_cap": {
+ "type": [
+ "number"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "date"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_active": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "platform_targeting": {
+ "properties": {
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "value": {
+ "properties": {
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "publisher_targeting": {
+ "properties": {
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "value": {
+ "properties": {
+ "type": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "spending_limit": {
+ "type": [
+ "number"
+ ]
+ },
+ "spending_limit_model": {
+ "type": [
+ "string"
+ ]
+ },
+ "spent": {
+ "type": [
+ "number"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "date"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "tracking_code": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/taboola/v1/json/campaign_performance.json b/_data/taps/schemas/taboola/v1/json/campaign_performance.json
new file mode 100644
index 000000000..b3043cb3b
--- /dev/null
+++ b/_data/taps/schemas/taboola/v1/json/campaign_performance.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "campaign_id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cpa": {
+ "type": [
+ "number"
+ ]
+ },
+ "cpa_actions_num": {
+ "type": [
+ "integer"
+ ]
+ },
+ "cpa_conversion_rate": {
+ "type": [
+ "number"
+ ]
+ },
+ "cpc": {
+ "type": [
+ "number"
+ ]
+ },
+ "cpm": {
+ "type": [
+ "number"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "number"
+ ]
+ },
+ "currency": {
+ "type": [
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "date"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "integer"
+ ]
+ },
+ "spent": {
+ "type": [
+ "number"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/taboola/v1/taboola-v1-foreign-keys.yml b/_data/taps/schemas/taboola/v1/taboola-v1-foreign-keys.yml
new file mode 100644
index 000000000..f2304f475
--- /dev/null
+++ b/_data/taps/schemas/taboola/v1/taboola-v1-foreign-keys.yml
@@ -0,0 +1,23 @@
+tap: taboola
+version: '1'
+keys:
+ campaign_campaign_id:
+ - table: campaign
+ keys:
+ - id
+ - table: campaign_performance
+ keys:
+ - campaign_id
+tables:
+- table-name: campaign
+ join:
+ - table-name: campaign_performance
+ keys:
+ - key: id
+ foreign-key: campaign_id
+- table-name: campaign_performance
+ join:
+ - table-name: campaign
+ keys:
+ - key: campaign_id
+ foreign-key: id
diff --git a/_data/taps/schemas/taboola/v1/taboola-v1-tables.yml b/_data/taps/schemas/taboola/v1/taboola-v1-tables.yml
new file mode 100644
index 000000000..2b6cd9c03
--- /dev/null
+++ b/_data/taps/schemas/taboola/v1/taboola-v1-tables.yml
@@ -0,0 +1,72 @@
+tap: taboola
+version: '1'
+tap-repo-schemas: false
+tables:
+- name: campaign
+ description: 'The `{{ table.name }}` table contains info about the campaigns in
+ your Taboola account.
+
+
+ #### Replication
+
+
+ During every replication job, all campaigns in your Taboola account will be extracted,
+ or "fully replicated." If you look in the [Extraction Logs]({{ link.replication.extraction-logs
+ | prepend: site.baseurl }}) in the Stitch app, you''ll see lines like this:
+
+
+ ```
+
+ 2017-10-25 13:46:52,254Z tap - INFO Synced 100 campaigns.
+
+ 2017-10-25 13:46:52,255Z tap - INFO Done syncing campaigns.
+
+ ```
+
+
+ Roughly the same amount of campaigns should be extracted during every job, unless
+ brand new campaigns are added between jobs.
+
+
+ When Stitch loads the extracted records into your destination, however, only new
+ and updated campaigns will be loaded. **This means that only new and updated campaign
+ records will count towards your row count**.
+
+
+ #### Deleted campaigns
+
+
+ Currently, [the Singer tap](https://github.com/singer-io/tap-taboola){:target="new"}
+ powering this integration has no way to account for campaigns that are hard-deleted
+ in {{ integration.display_name }}. This means that if a campaign is deleted at
+ the source, the record for that campaign will remain in the destination.
+
+
+ #### NULL dates
+
+
+ On occasion, {{ integration.display_name }}''s API will push `NULL` for `start_date`
+ and `999-12-31` for `end_date`. [The Singer tap](https://github.com/singer-io/tap-taboola#gotchas){:target="new"}
+ behind this integration will convert `NULL` dates to `999-12-31` for consistency.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-taboola/blob/master/tap_taboola/schemas.py#L2
+ api-method: https://github.com/taboola/Backstage-API/blob/master/Backstage%20API%20-%20Campaigns.pdf
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: campaign_performance
+ description: 'The `{{ table.name }}` table contains performance data for the campaigns
+ in your {{ integration.display_name }} account, broken down by day.
+
+ '
+ links:
+ doc-link: https://github.com/taboola/Backstage-API/blob/master/Backstage%20API%20-%20Reports.pdf
+ singer-schema: https://github.com/singer-io/tap-taboola/blob/master/tap_taboola/schemas.py#L117
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - campaign_id
+ - date
+ replication-key: date
diff --git a/_data/taps/schemas/tiktok-ads/v1/json/ad_insights.json b/_data/taps/schemas/tiktok-ads/v1/json/ad_insights.json
new file mode 100644
index 000000000..9a3e6a730
--- /dev/null
+++ b/_data/taps/schemas/tiktok-ads/v1/json/ad_insights.json
@@ -0,0 +1,447 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "ad_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adgroup_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adgroup_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "advertiser_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_promotion_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "average_video_play": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "average_video_play_per_user": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "bid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bid_strategy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_event": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "budget": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "call_to_action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_budget": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_dedicate_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "clicks_on_music_disc": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "comments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversion": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversion_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "conversion_rate_v2": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_1000_reached": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cost_per_100_reached": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_conversion": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_result": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_secondary_goal_result": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpc": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpm": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "dpa_target_audience_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "follows": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "frequency": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "gross_impressions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_smart_creative": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "likes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "mobile_app_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "objective_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "opt_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "placement_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "profile_visits": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "profile_visits_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "promotion_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reach": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "real_time_conversion": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "real_time_conversion_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "real_time_conversion_rate_v2": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "real_time_cost_per_conversion": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "real_time_cost_per_result": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "real_time_result": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "real_time_result_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "result": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "result_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "secondary_goal_result": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "secondary_goal_result_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "shares": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "smart_target": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "spend": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "split_test": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stat_time_day": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "tt_app_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tt_app_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "video_play_actions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_views_p100": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_views_p25": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_views_p50": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_views_p75": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_watched_2s": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_watched_6s": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/tiktok-ads/v1/json/ad_insights_by_age_and_gender.json b/_data/taps/schemas/tiktok-ads/v1/json/ad_insights_by_age_and_gender.json
new file mode 100644
index 000000000..6e8852c41
--- /dev/null
+++ b/_data/taps/schemas/tiktok-ads/v1/json/ad_insights_by_age_and_gender.json
@@ -0,0 +1,315 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "ad_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adgroup_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adgroup_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "advertiser_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "age": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bid_strategy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_event": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "budget": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "call_to_action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_budget": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_dedicate_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversion": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversion_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "conversion_rate_v2": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_conversion": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_result": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpc": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpm": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "dpa_target_audience_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gender": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gross_impressions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_smart_creative": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mobile_app_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "objective_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "opt_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promotion_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "real_time_conversion": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "real_time_conversion_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "real_time_conversion_rate_v2": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "real_time_cost_per_conversion": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "real_time_cost_per_result": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "real_time_result": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "real_time_result_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "result": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "result_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "rf_campaign_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "smart_target": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "spend": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "split_test": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stat_time_day": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "tt_app_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tt_app_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/tiktok-ads/v1/json/ad_insights_by_country.json b/_data/taps/schemas/tiktok-ads/v1/json/ad_insights_by_country.json
new file mode 100644
index 000000000..cc96554be
--- /dev/null
+++ b/_data/taps/schemas/tiktok-ads/v1/json/ad_insights_by_country.json
@@ -0,0 +1,309 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "ad_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adgroup_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adgroup_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "advertiser_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bid_strategy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_event": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "budget": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "call_to_action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_budget": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_dedicate_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversion": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversion_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "conversion_rate_v2": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_conversion": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_result": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cpc": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpm": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "dpa_target_audience_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gross_impressions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_smart_creative": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mobile_app_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "objective_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "opt_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promotion_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "real_time_conversion": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "real_time_conversion_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "real_time_conversion_rate_v2": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "real_time_cost_per_conversion": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "real_time_cost_per_result": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "real_time_result": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "real_time_result_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "result": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "result_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "rf_campaign_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "smart_target": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "spend": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "split_test": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stat_time_day": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "tt_app_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tt_app_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/tiktok-ads/v1/json/ad_insights_by_platform.json b/_data/taps/schemas/tiktok-ads/v1/json/ad_insights_by_platform.json
new file mode 100644
index 000000000..8805be4c0
--- /dev/null
+++ b/_data/taps/schemas/tiktok-ads/v1/json/ad_insights_by_platform.json
@@ -0,0 +1,309 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "ad_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adgroup_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adgroup_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "advertiser_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bid_strategy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_event": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "budget": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "call_to_action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_budget": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_dedicate_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversion": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversion_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "conversion_rate_v2": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_conversion": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_result": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpc": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpm": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "dpa_target_audience_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gross_impressions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_smart_creative": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mobile_app_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "objective_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "opt_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "platform": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promotion_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "real_time_conversion": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "real_time_conversion_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "real_time_conversion_rate_v2": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "real_time_cost_per_conversion": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "real_time_cost_per_result": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "real_time_result": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "real_time_result_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "result": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "result_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "rf_campaign_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "smart_target": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "spend": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "split_test": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stat_time_day": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "tt_app_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tt_app_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/tiktok-ads/v1/json/adgroups.json b/_data/taps/schemas/tiktok-ads/v1/json/adgroups.json
new file mode 100644
index 000000000..5c2edd226
--- /dev/null
+++ b/_data/taps/schemas/tiktok-ads/v1/json/adgroups.json
@@ -0,0 +1,728 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "actions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "action_category_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "action_period": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "action_scene": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "video_user_actions": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "adgroup_app_profile_page_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adgroup_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adgroup_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "advertiser_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "age_groups": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "app_download_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "audience": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "audience_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bid_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "bid_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "billing_event": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand_safety_partner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand_safety_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "budget": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "budget_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "carriers_v2": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "catalog_authorized_bc": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "catalog_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversion_bid_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "conversion_window": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cpv_video_duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "create_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creative_material_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "current_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dayparting": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deep_bid_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deep_cpa_bid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "delivery_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "device_models": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "device_price_ranges": {
+ "items": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "excluded_audience": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "excluded_custom_actions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "frequency": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "frequency_schedule": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "gender": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "included_custom_actions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "interest_category_v2": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "interest_keywords": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "inventory_filter_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ios14_targeting": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ios_quota_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_comment_disable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_hfss": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_new_structure": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "languages": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "location": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "min_android_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "min_ios_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modify_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "network_types": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "next_day_retention": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "operating_systems": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "operation_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "optimization_event": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "optimization_goal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pacing": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "package": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pangle_audience_package_exclude": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "pangle_audience_package_include": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "pangle_block_app_list_id": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "pixel_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "placement_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "placements": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "product_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promotion_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promotion_website_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "purchased_impression": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "purchased_reach": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "rf_estimated_cpr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "rf_estimated_frequency": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "rf_purchased_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "roas_bid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "schedule_end_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "schedule_start_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "schedule_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "secondary_optimization_event": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "secondary_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "share_disabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "shopping_ads_retargeting_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "skip_learning_phase": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "statistic_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targeting_expansion": {
+ "properties": {
+ "expansion_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "expansion_types": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "video_download": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/tiktok-ads/v1/json/ads.json b/_data/taps/schemas/tiktok-ads/v1/json/ads.json
new file mode 100644
index 000000000..8bc4a3b3b
--- /dev/null
+++ b/_data/taps/schemas/tiktok-ads/v1/json/ads.json
@@ -0,0 +1,429 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "ad_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ad_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adgroup_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "adgroup_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "advertiser_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "brand_safety_vast_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "call_to_action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "carousel_image_index": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "catalog_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "click_tracking_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "create_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creative_authorized": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "current_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deeplink": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deeplink_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_destination": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dynamic_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fallback_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "image_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "impression_tracking_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_aco": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_new_structure": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "item_duet_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "item_group_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "item_stitch_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "landing_page_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "landing_page_urls": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modify_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "music_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operation_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "page_id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "playable_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_set_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_specific_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "profile_image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promotional_music_disabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "secondary_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shopping_ads_fallback_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shopping_ads_video_package_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shopping_deeplink_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "showcase_products": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "catalog_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "item_group_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "store_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "sku_ids": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tiktok_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_app_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_offline_event_set_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "utm_params": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "vast_moat_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "vertical_video_strategy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "video_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "viewability_postbid_partner": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "viewability_vast_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/tiktok-ads/v1/json/advertisers.json b/_data/taps/schemas/tiktok-ads/v1/json/advertisers.json
new file mode 100644
index 000000000..92f0edf9c
--- /dev/null
+++ b/_data/taps/schemas/tiktok-ads/v1/json/advertisers.json
@@ -0,0 +1,159 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "advertiser_account_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "advertiser_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "balance": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cellphone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contacter": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "create_time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "industry": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "license_no": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "license_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promotion_area": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promotion_center_city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promotion_center_province": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rejection_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "telephone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/tiktok-ads/v1/json/campaign_insights_by_province.json b/_data/taps/schemas/tiktok-ads/v1/json/campaign_insights_by_province.json
new file mode 100644
index 000000000..2f58b2868
--- /dev/null
+++ b/_data/taps/schemas/tiktok-ads/v1/json/campaign_insights_by_province.json
@@ -0,0 +1,195 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "advertiser_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_budget": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_dedicate_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "clicks": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversion": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conversion_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "conversion_rate_v2": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_conversion": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cost_per_result": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpc": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "cpm": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ctr": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "gross_impressions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "objective_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "real_time_conversion": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "real_time_conversion_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "real_time_conversion_rate_v2": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "real_time_cost_per_conversion": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "real_time_cost_per_result": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "real_time_result": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "real_time_result_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "result": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "result_rate": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "rf_campaign_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "spend": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "split_test": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "stat_time_day": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/tiktok-ads/v1/json/campaigns.json b/_data/taps/schemas/tiktok-ads/v1/json/campaigns.json
new file mode 100644
index 000000000..338d8956f
--- /dev/null
+++ b/_data/taps/schemas/tiktok-ads/v1/json/campaigns.json
@@ -0,0 +1,171 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "advertiser_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_promotion_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bid_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "budget": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "budget_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "budget_optimize_on": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "campaign_app_profile_page_state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_product_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "create_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "current_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deep_bid_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_new_structure": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_smart_performance_campaign": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "modify_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "objective": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "objective_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operation_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "optimization_goal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rf_campaign_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "roas_bid": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "secondary_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "special_industries": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/tiktok-ads/v1/tiktok-ads-v1-tables.yml b/_data/taps/schemas/tiktok-ads/v1/tiktok-ads-v1-tables.yml
new file mode 100644
index 000000000..df3f66e72
--- /dev/null
+++ b/_data/taps/schemas/tiktok-ads/v1/tiktok-ads-v1-tables.yml
@@ -0,0 +1,125 @@
+tap: tiktok-ads
+version: '1'
+tables:
+- name: adgroups
+ description: ''
+ links:
+ doc-link: https://ads.tiktok.com/marketing_api/docs?id=1708503489590273
+ singer-schema: https://github.com/singer-io/tap-tiktok-ads/tree/master/tap_tiktok_ads/schemas/adgroups.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - adgroup_id
+ - advertiser_id
+ - campaign_id
+ - modify_time
+ replication-key: modify_time
+- name: ads
+ description: ''
+ links:
+ doc-link: https://ads.tiktok.com/marketing_api/docs?id=1708572923161602
+ singer-schema: https://github.com/singer-io/tap-tiktok-ads/tree/master/tap_tiktok_ads/schemas/ads.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - ad_id
+ - adgroup_id
+ - advertiser_id
+ - campaign_id
+ - modify_time
+ replication-key: modify_time
+- name: advertisers
+ description: ''
+ links:
+ doc-link: https://ads.tiktok.com/marketing_api/docs?id=1708503235186689
+ singer-schema: https://github.com/singer-io/tap-tiktok-ads/tree/master/tap_tiktok_ads/schemas/advertisers.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - advertiser_id
+ - create_time
+ replication-key: create_time
+- name: ad_insights
+ description: ''
+ links:
+ doc-link: https://ads.tiktok.com/marketing_api/docs?id=1707957200780290
+ singer-schema: https://github.com/singer-io/tap-tiktok-ads/tree/master/tap_tiktok_ads/schemas/ad_insights.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - ad_id
+ - adgroup_id
+ - advertiser_id
+ - campaign_id
+ - stat_time_day
+ replication-key: stat_time_day
+- name: ad_insights_by_age_and_gender
+ description: ''
+ links:
+ doc-link: https://ads.tiktok.com/marketing_api/docs?id=1707957217727489
+ singer-schema: https://github.com/singer-io/tap-tiktok-ads/tree/master/tap_tiktok_ads/schemas/ad_insights_by_age_and_gender.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - ad_id
+ - adgroup_id
+ - advertiser_id
+ - age
+ - campaign_id
+ - gender
+ - stat_time_day
+ replication-key: stat_time_day
+- name: ad_insights_by_country
+ description: ''
+ links:
+ doc-link: https://ads.tiktok.com/marketing_api/docs?id=1707957217727489
+ singer-schema: https://github.com/singer-io/tap-tiktok-ads/tree/master/tap_tiktok_ads/schemas/ad_insights_by_country.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - ad_id
+ - adgroup_id
+ - advertiser_id
+ - campaign_id
+ - country_code
+ - stat_time_day
+ replication-key: stat_time_day
+- name: ad_insights_by_platform
+ description: ''
+ links:
+ doc-link: https://ads.tiktok.com/marketing_api/docs?id=1707957217727489
+ singer-schema: https://github.com/singer-io/tap-tiktok-ads/tree/master/tap_tiktok_ads/schemas/ad_insights_by_platform.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - ad_id
+ - adgroup_id
+ - campaign_id
+ - platform
+ - stat_time_day
+ replication-key: stat_time_day
+- name: campaigns
+ description: ''
+ links:
+ doc-link: https://ads.tiktok.com/marketing_api/docs?id=1708582970809346
+ singer-schema: https://github.com/singer-io/tap-tiktok-ads/tree/master/tap_tiktok_ads/schemas/campaigns.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - advertiser_id
+ - campaign_id
+ - modify_time
+ replication-key: modify_time
+- name: campaign_insights_by_province
+ description: ''
+ links:
+ doc-link: null
+ singer-schema: https://github.com/singer-io/tap-tiktok-ads/tree/master/tap_tiktok_ads/schemas/campaign_insights_by_province.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - advertiser_id
+ - campaign_id
+ - province_id
+ - stat_time_day
+ replication-key: stat_time_day
diff --git a/_data/taps/schemas/toggl/v1/json/clients.json b/_data/taps/schemas/toggl/v1/json/clients.json
new file mode 100644
index 000000000..b6001485c
--- /dev/null
+++ b/_data/taps/schemas/toggl/v1/json/clients.json
@@ -0,0 +1,50 @@
+{
+ "properties": {
+ "at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "cur": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hrate": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "wid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/toggl/v1/json/groups.json b/_data/taps/schemas/toggl/v1/json/groups.json
new file mode 100644
index 000000000..93839eaff
--- /dev/null
+++ b/_data/taps/schemas/toggl/v1/json/groups.json
@@ -0,0 +1,32 @@
+{
+ "properties": {
+ "at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "wid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/toggl/v1/json/projects.json b/_data/taps/schemas/toggl/v1/json/projects.json
new file mode 100644
index 000000000..0a0cad6ac
--- /dev/null
+++ b/_data/taps/schemas/toggl/v1/json/projects.json
@@ -0,0 +1,56 @@
+{
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "billable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "cid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_private": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "wid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/toggl/v1/json/tags.json b/_data/taps/schemas/toggl/v1/json/tags.json
new file mode 100644
index 000000000..1f7786f9b
--- /dev/null
+++ b/_data/taps/schemas/toggl/v1/json/tags.json
@@ -0,0 +1,26 @@
+{
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "wid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/toggl/v1/json/tasks.json b/_data/taps/schemas/toggl/v1/json/tasks.json
new file mode 100644
index 000000000..4c368f9f2
--- /dev/null
+++ b/_data/taps/schemas/toggl/v1/json/tasks.json
@@ -0,0 +1,56 @@
+{
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "estimated_seconds": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "wid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/toggl/v1/json/time_entries.json b/_data/taps/schemas/toggl/v1/json/time_entries.json
new file mode 100644
index 000000000..e9d74aebe
--- /dev/null
+++ b/_data/taps/schemas/toggl/v1/json/time_entries.json
@@ -0,0 +1,117 @@
+{
+ "properties": {
+ "billable": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "client": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cur": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dur": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "end": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_billable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "pid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "project": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "tags": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "task": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "use_stop": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "user": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/toggl/v1/json/users.json b/_data/taps/schemas/toggl/v1/json/users.json
new file mode 100644
index 000000000..265d4d74e
--- /dev/null
+++ b/_data/taps/schemas/toggl/v1/json/users.json
@@ -0,0 +1,140 @@
+{
+ "properties": {
+ "at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "beginning_of_week": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "date_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_wid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fullname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "invitation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "jquery_date_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "jquery_timeofday_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "new_blog_post": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "record_timeline": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "render_timeline": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "retention": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "should_upgrade": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "sidebar_piechart": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "store_start_and_stop_time": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "timeline_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "timeline_experiment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "timeofday_format": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/toggl/v1/json/workspace_users.json b/_data/taps/schemas/toggl/v1/json/workspace_users.json
new file mode 100644
index 000000000..f7f673341
--- /dev/null
+++ b/_data/taps/schemas/toggl/v1/json/workspace_users.json
@@ -0,0 +1,62 @@
+{
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "invite_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "wid": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/toggl/v1/json/workspaces.json b/_data/taps/schemas/toggl/v1/json/workspaces.json
new file mode 100644
index 000000000..e157fde44
--- /dev/null
+++ b/_data/taps/schemas/toggl/v1/json/workspaces.json
@@ -0,0 +1,80 @@
+{
+ "properties": {
+ "admin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "default_currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_hourly_rate": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "logo_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "only_admins_may_create_projects": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "only_admins_see_billable_rates": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "premium": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "rounding": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "rounding_minutes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/toggl/v1/toggl-v1-foreign-keys.yml b/_data/taps/schemas/toggl/v1/toggl-v1-foreign-keys.yml
new file mode 100644
index 000000000..bbf922196
--- /dev/null
+++ b/_data/taps/schemas/toggl/v1/toggl-v1-foreign-keys.yml
@@ -0,0 +1,335 @@
+tap: toggl
+version: '1'
+keys:
+ workspaces_wid:
+ - table: workspaces
+ keys:
+ - id
+ - table: clients
+ keys:
+ - wid
+ - table: groups
+ keys:
+ - wid
+ - table: projects
+ keys:
+ - wid
+ - table: tags
+ keys:
+ - wid
+ - table: tasks
+ keys:
+ - wid
+ - table: users
+ keys:
+ - default_wid
+ - table: workspace_users
+ keys:
+ - wid
+ clients_cid:
+ - table: clients
+ keys:
+ - id
+ - table: projects
+ keys:
+ - cid
+ groups_:
+ - table: groups
+ keys:
+ - id
+ projects_:
+ - table: projects
+ keys:
+ - id
+ tags_:
+ - table: tags
+ keys:
+ - id
+ tasks_tid:
+ - table: tasks
+ keys:
+ - id
+ - table: time_entries
+ keys:
+ - tid
+ users_uid:
+ - table: tasks
+ keys:
+ - uid
+ - table: time_entries
+ keys:
+ - uid
+ - table: users
+ keys:
+ - id
+tables:
+- table-name: workspaces
+ join:
+ - table-name: clients
+ keys:
+ - key: id
+ foreign-key: wid
+ - table-name: groups
+ keys:
+ - key: id
+ foreign-key: wid
+ - table-name: projects
+ keys:
+ - key: id
+ foreign-key: wid
+ - table-name: tags
+ keys:
+ - key: id
+ foreign-key: wid
+ - table-name: tasks
+ keys:
+ - key: id
+ foreign-key: wid
+ - table-name: users
+ keys:
+ - key: id
+ foreign-key: default_wid
+ - table-name: workspace_users
+ keys:
+ - key: id
+ foreign-key: wid
+- table-name: clients
+ join:
+ - table-name: workspaces
+ keys:
+ - key: wid
+ foreign-key: id
+ - table-name: groups
+ keys:
+ - key: wid
+ foreign-key: wid
+ - table-name: projects
+ keys:
+ - key: wid
+ foreign-key: wid
+ - key: id
+ foreign-key: cid
+ - table-name: tags
+ keys:
+ - key: wid
+ foreign-key: wid
+ - table-name: tasks
+ keys:
+ - key: wid
+ foreign-key: wid
+ - table-name: users
+ keys:
+ - key: wid
+ foreign-key: default_wid
+ - table-name: workspace_users
+ keys:
+ - key: wid
+ foreign-key: wid
+- table-name: groups
+ join:
+ - table-name: workspaces
+ keys:
+ - key: wid
+ foreign-key: id
+ - table-name: clients
+ keys:
+ - key: wid
+ foreign-key: wid
+ - table-name: projects
+ keys:
+ - key: wid
+ foreign-key: wid
+ - table-name: tags
+ keys:
+ - key: wid
+ foreign-key: wid
+ - table-name: tasks
+ keys:
+ - key: wid
+ foreign-key: wid
+ - table-name: users
+ keys:
+ - key: wid
+ foreign-key: default_wid
+ - table-name: workspace_users
+ keys:
+ - key: wid
+ foreign-key: wid
+- table-name: projects
+ join:
+ - table-name: workspaces
+ keys:
+ - key: wid
+ foreign-key: id
+ - table-name: clients
+ keys:
+ - key: wid
+ foreign-key: wid
+ - key: cid
+ foreign-key: id
+ - table-name: groups
+ keys:
+ - key: wid
+ foreign-key: wid
+ - table-name: tags
+ keys:
+ - key: wid
+ foreign-key: wid
+ - table-name: tasks
+ keys:
+ - key: wid
+ foreign-key: wid
+ - table-name: users
+ keys:
+ - key: wid
+ foreign-key: default_wid
+ - table-name: workspace_users
+ keys:
+ - key: wid
+ foreign-key: wid
+- table-name: tags
+ join:
+ - table-name: workspaces
+ keys:
+ - key: wid
+ foreign-key: id
+ - table-name: clients
+ keys:
+ - key: wid
+ foreign-key: wid
+ - table-name: groups
+ keys:
+ - key: wid
+ foreign-key: wid
+ - table-name: projects
+ keys:
+ - key: wid
+ foreign-key: wid
+ - table-name: tasks
+ keys:
+ - key: wid
+ foreign-key: wid
+ - table-name: users
+ keys:
+ - key: wid
+ foreign-key: default_wid
+ - table-name: workspace_users
+ keys:
+ - key: wid
+ foreign-key: wid
+- table-name: tasks
+ join:
+ - table-name: workspaces
+ keys:
+ - key: wid
+ foreign-key: id
+ - table-name: clients
+ keys:
+ - key: wid
+ foreign-key: wid
+ - table-name: groups
+ keys:
+ - key: wid
+ foreign-key: wid
+ - table-name: projects
+ keys:
+ - key: wid
+ foreign-key: wid
+ - table-name: tags
+ keys:
+ - key: wid
+ foreign-key: wid
+ - table-name: users
+ keys:
+ - key: wid
+ foreign-key: default_wid
+ - key: uid
+ foreign-key: id
+ - table-name: workspace_users
+ keys:
+ - key: wid
+ foreign-key: wid
+ - table-name: time_entries
+ keys:
+ - key: id
+ foreign-key: tid
+ - key: uid
+ foreign-key: uid
+- table-name: users
+ join:
+ - table-name: workspaces
+ keys:
+ - key: default_wid
+ foreign-key: id
+ - table-name: clients
+ keys:
+ - key: default_wid
+ foreign-key: wid
+ - table-name: groups
+ keys:
+ - key: default_wid
+ foreign-key: wid
+ - table-name: projects
+ keys:
+ - key: default_wid
+ foreign-key: wid
+ - table-name: tags
+ keys:
+ - key: default_wid
+ foreign-key: wid
+ - table-name: tasks
+ keys:
+ - key: default_wid
+ foreign-key: wid
+ - key: id
+ foreign-key: uid
+ - table-name: workspace_users
+ keys:
+ - key: default_wid
+ foreign-key: wid
+ - table-name: time_entries
+ keys:
+ - key: id
+ foreign-key: uid
+- table-name: workspace_users
+ join:
+ - table-name: workspaces
+ keys:
+ - key: wid
+ foreign-key: id
+ - table-name: clients
+ keys:
+ - key: wid
+ foreign-key: wid
+ - table-name: groups
+ keys:
+ - key: wid
+ foreign-key: wid
+ - table-name: projects
+ keys:
+ - key: wid
+ foreign-key: wid
+ - table-name: tags
+ keys:
+ - key: wid
+ foreign-key: wid
+ - table-name: tasks
+ keys:
+ - key: wid
+ foreign-key: wid
+ - table-name: users
+ keys:
+ - key: wid
+ foreign-key: default_wid
+- table-name: time_entries
+ join:
+ - table-name: tasks
+ keys:
+ - key: tid
+ foreign-key: id
+ - key: uid
+ foreign-key: uid
+ - table-name: users
+ keys:
+ - key: uid
+ foreign-key: id
diff --git a/_data/taps/schemas/toggl/v1/toggl-v1-tables.yml b/_data/taps/schemas/toggl/v1/toggl-v1-tables.yml
new file mode 100644
index 000000000..943b5b5c5
--- /dev/null
+++ b/_data/taps/schemas/toggl/v1/toggl-v1-tables.yml
@@ -0,0 +1,141 @@
+tap: toggl
+version: '1'
+tables:
+- name: clients
+ description: 'The `{{ table.name }}` table contains info about the clients in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://github.com/toggl/toggl_api_docs/blob/master/chapters/clients.md
+ singer-schema: https://github.com/singer-io/tap-toggl/blob/master/tap_toggl/schemas/clients.json
+ api-method: https://github.com/toggl/toggl_api_docs/blob/master/chapters/workspaces.md#get-workspace-clients
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: at
+- name: groups
+ description: 'The `{{ table.name }}` table contains info about the groups in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://github.com/toggl/toggl_api_docs/blob/master/chapters/groups.md
+ singer-schema: https://github.com/singer-io/tap-toggl/blob/master/tap_toggl/schemas/groups.json
+ api-method: https://github.com/toggl/toggl_api_docs/blob/master/chapters/workspaces.md#get-workspace-groups
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: at
+- name: projects
+ description: 'The `{{ table.name }}` table contains info about the projects in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://github.com/toggl/toggl_api_docs/blob/master/chapters/projects.md
+ singer-schema: https://github.com/singer-io/tap-toggl/blob/master/tap_toggl/schemas/projects.json
+ api-method: https://github.com/toggl/toggl_api_docs/blob/master/chapters/workspaces.md#get-workspace-projects
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: at
+- name: tags
+ description: 'The `{{ table.name }}` table contains info about the tags in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://github.com/toggl/toggl_api_docs/blob/master/chapters/tags.md
+ singer-schema: https://github.com/singer-io/tap-toggl/blob/master/tap_toggl/schemas/tags.json
+ api-method: https://github.com/toggl/toggl_api_docs/blob/master/chapters/workspaces.md#get-workspace-tags
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: tasks
+ description: 'The `{{ table.name }}` table contains info about the tasks in your
+ {{ integration.display_name }} account.
+
+
+ **Note**: Tasks are only available for {{ integration.display_name }} starter
+ and other paid workspaces.
+
+ '
+ links:
+ doc-link: https://github.com/toggl/toggl_api_docs/blob/master/chapters/tasks.md
+ singer-schema: https://github.com/singer-io/tap-toggl/blob/master/tap_toggl/schemas/tasks.json
+ api-method: https://github.com/toggl/toggl_api_docs/blob/master/chapters/workspaces.md#get-workspace-tasks
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: at
+- name: time_entries
+ description: 'The `{{ table.name }}` table contains info about time entries. **Note**:
+ This table uses an attribution window to replicate data. Refer to the [Replicating
+ time entry data](#replicating-time-entry-data) section for more info.
+
+
+ #### Time entries and user permissions {#time-entries-user-permissions}
+
+
+ The time entries Stitch replicates are dependent upon the user whose API token
+ is used to create the integration in Stitch. Stitch is only able to access the
+ same data as the user whose token is used.
+
+
+ For example: If the user is unable to access a workspace, or is not an Admin in
+ that workspace, Stitch will not be able to replicate time entry data for those
+ workspaces. In this case, only the user''s own time entries will be accessible
+ by Stitch.
+
+
+ If data from a workspace is missing, verify that the user whose API token is being
+ used in Stitch has Admin permissions in that workspace.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-toggl/blob/master/tap_toggl/schemas/time_entries.json
+ api-method: https://github.com/toggl/toggl_api_docs/blob/master/reports/detailed.md
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated
+- name: users
+ description: 'The `{{ table.name }}` table contains info about the users in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://github.com/toggl/toggl_api_docs/blob/master/chapters/users.md
+ singer-schema: https://github.com/singer-io/tap-toggl/blob/master/tap_toggl/schemas/users.json
+ api-method: https://github.com/toggl/toggl_api_docs/blob/master/chapters/workspaces.md#get-workspace-users
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: at
+- name: workspaces
+ description: 'The `{{ table.name }}` table contains info about the workspaces in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://github.com/toggl/toggl_api_docs/blob/master/chapters/workspaces.md
+ singer-schema: https://github.com/singer-io/tap-toggl/blob/master/tap_toggl/schemas/a_workspaces.json
+ api-method: https://github.com/toggl/toggl_api_docs/blob/master/chapters/workspaces.md#get-workspaces
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: at
+- name: workspace_users
+ description: 'The `{{ table.name }}` table contains info about the users in a workspace.
+
+ '
+ links:
+ doc-link: https://github.com/toggl/toggl_api_docs/blob/master/chapters/workspace_users.md
+ singer-schema: https://github.com/singer-io/tap-toggl/blob/master/tap_toggl/schemas/workspace_users.json
+ api-method: https://github.com/toggl/toggl_api_docs/blob/master/chapters/workspace_users.md#get-workspace-users
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: at
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/trello/v1/json/actions.json b/_data/taps/schemas/trello/v1/json/actions.json
new file mode 100644
index 000000000..b7f8b63f6
--- /dev/null
+++ b/_data/taps/schemas/trello/v1/json/actions.json
@@ -0,0 +1,590 @@
+{
+ "properties": {
+ "data": {
+ "properties": {
+ "board": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prefs": {
+ "properties": {
+ "background": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shortLink": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card": {
+ "properties": {
+ "closed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "desc": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idList": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idMembers": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "idShort": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pos": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "shortLink": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "cardSource": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idShort": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shortLink": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "deactivated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "idMember": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idMemberAdded": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idMemberInviter": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "list": {
+ "properties": {
+ "closed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pos": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "listAfter": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "listBefore": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "member": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "memberType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "old": {
+ "properties": {
+ "closed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "desc": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idList": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idMembers": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pos": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "prefs": {
+ "properties": {
+ "background": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "organization": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idMemberCreator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "limits": {
+ "properties": {
+ "reactions": {
+ "properties": {
+ "perAction": {
+ "properties": {
+ "disableAt": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "warnAt": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "uniquePerAction": {
+ "properties": {
+ "disableAt": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "warnAt": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "member": {
+ "properties": {
+ "activityBlocked": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatarHash": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avatarUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fullName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idMemberReferrer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "initials": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nonPublicAvailable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "memberCreator": {
+ "properties": {
+ "activityBlocked": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatarHash": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avatarUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fullName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idMemberReferrer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "initials": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nonPublicAvailable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/trello/v1/json/boards.json b/_data/taps/schemas/trello/v1/json/boards.json
new file mode 100644
index 000000000..03bd833be
--- /dev/null
+++ b/_data/taps/schemas/trello/v1/json/boards.json
@@ -0,0 +1,487 @@
+{
+ "properties": {
+ "closed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "creationMethod": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dateLastActivity": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "dateLastView": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "datePluginDisable": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "desc": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "descData": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enterpriseOwned": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": "string"
+ },
+ "idBoardSource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idEnterprise": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idOrganization": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idTags": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ixUpdate": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "labelNames": {
+ "properties": {
+ "black": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "blue": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "green": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lime": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "orange": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pink": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "purple": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "red": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sky": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "yellow": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "limits": {
+ "properties": {
+ "attachments": {
+ "properties": {
+ "perBoard": {
+ "properties": {
+ "disableAt": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "warnAt": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "memberships": {
+ "items": {
+ "properties": {
+ "deactivated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idMember": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "memberType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unconfirmed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinned": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "powerUps": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "prefs": {
+ "properties": {
+ "background": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "backgroundBottomColor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "backgroundBrightness": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "backgroundImage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "backgroundImageScaled": {
+ "items": {
+ "properties": {
+ "height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "backgroundTile": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "backgroundTopColor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "calendarFeedEnabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "canBeEnterprise": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "canBeOrg": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "canBePrivate": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "canBePublic": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "canInvite": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "cardAging": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cardCovers": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "comments": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hideVotes": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "invitations": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "isTemplate": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "permissionLevel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "selfJoin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "voting": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "premiumFeatures": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "shortLink": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shortUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "subscribed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "templateGallery": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/trello/v1/json/cards.json b/_data/taps/schemas/trello/v1/json/cards.json
new file mode 100644
index 000000000..ca031e82c
--- /dev/null
+++ b/_data/taps/schemas/trello/v1/json/cards.json
@@ -0,0 +1,474 @@
+{
+ "properties": {
+ "badges": {
+ "properties": {
+ "attachments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "attachmentsByType": {
+ "properties": {
+ "trello": {
+ "properties": {
+ "board": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "card": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "checkItems": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "checkItemsChecked": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "checkItemsEarliestDue": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "comments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "due": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "dueComplete": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "fogbugz": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "subscribed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "viewingMemberVoted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "votes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "checkItemStates": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "closed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "cover": {
+ "properties": {
+ "brightness": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idAttachment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idUploadedBackground": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customFieldItems": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idCustomField": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idModel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idValue": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "modelType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "properties": {
+ "checked": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "dateLastActivity": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "desc": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "descData": {
+ "properties": {
+ "emoji": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "due": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "dueComplete": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "dueReminder": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idAttachmentCover": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idBoard": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idChecklists": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "idLabels": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ "idList": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idMembers": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "idMembersVoted": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "idShort": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "isTemplate": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "labels": {
+ "items": {
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idBoard": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "manualCoverAttachment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pos": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "shortLink": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shortUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subscribed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/trello/v1/json/checklists.json b/_data/taps/schemas/trello/v1/json/checklists.json
new file mode 100644
index 000000000..3b247ac82
--- /dev/null
+++ b/_data/taps/schemas/trello/v1/json/checklists.json
@@ -0,0 +1,1090 @@
+{
+ "properties": {
+ "badges": {
+ "properties": {
+ "attachments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "attachmentsByType": {
+ "properties": {
+ "trello": {
+ "properties": {
+ "board": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "card": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "checkItems": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "checkItemsChecked": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "checkItemsEarliestDue": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "comments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "due": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dueComplete": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "fogbugz": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "subscribed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "viewingMemberVoted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "votes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "checkItemStates": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "checkItems": {
+ "items": {
+ "properties": {
+ "creationMethod": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "due": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idChecklist": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idMember": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nameData": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pos": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "closed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "cover": {
+ "properties": {
+ "brightness": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idAttachment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idUploadedBackground": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "creationMethod": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "data": {
+ "properties": {
+ "board": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prefs": {
+ "properties": {
+ "permissionLevel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "selfJoin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shortLink": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "card": {
+ "properties": {
+ "closed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "due": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dueComplete": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idShort": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shortLink": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "checklist": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "creationMethod": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "list": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "old": {
+ "properties": {
+ "closed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "due": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dueComplete": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prefs": {
+ "properties": {
+ "permissionLevel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "selfJoin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "organization": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "date": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dateLastActivity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dateLastView": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "datePluginDisable": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "desc": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "descData": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "due": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "dueComplete": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "dueReminder": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enterpriseOwned": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "fullName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idAttachmentCover": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idBoard": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idBoardSource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idCard": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idChecklists": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "idEnterprise": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idList": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idMemberCreator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idOrganization": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idShort": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "isTemplate": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ixUpdate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "labelNames": {
+ "properties": {
+ "black": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "blue": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "green": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lime": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "orange": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pink": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "purple": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "red": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sky": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "yellow": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "limits": {
+ "properties": {
+ "checkItems": {
+ "properties": {
+ "perChecklist": {
+ "properties": {
+ "disableAt": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "warnAt": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "manualCoverAttachment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "memberCreator": {
+ "properties": {
+ "activityBlocked": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "avatarHash": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avatarUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fullName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idMemberReferrer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "initials": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nonPublicAvailable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "memberships": {
+ "items": {
+ "properties": {
+ "deactivated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idMember": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "memberType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unconfirmed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pinned": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pos": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "prefs": {
+ "properties": {
+ "background": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "backgroundBottomColor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "backgroundBrightness": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "backgroundColor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "backgroundImage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "backgroundImageScaled": {
+ "items": {
+ "properties": {
+ "height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "backgroundTile": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "backgroundTopColor": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "calendarFeedEnabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "canBeEnterprise": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "canBeOrg": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "canBePrivate": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "canBePublic": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "canInvite": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "cardAging": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "cardCovers": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "comments": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hideVotes": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "invitations": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "isTemplate": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "permissionLevel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "selfJoin": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "voting": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shortLink": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shortUrl": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "softLimit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "starred": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "subscribed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "templateGallery": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/trello/v1/json/lists.json b/_data/taps/schemas/trello/v1/json/lists.json
new file mode 100644
index 000000000..168d88b1c
--- /dev/null
+++ b/_data/taps/schemas/trello/v1/json/lists.json
@@ -0,0 +1,50 @@
+{
+ "properties": {
+ "closed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "idBoard": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pos": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "softLimit": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subscribed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/trello/v1/json/users.json b/_data/taps/schemas/trello/v1/json/users.json
new file mode 100644
index 000000000..1c9691617
--- /dev/null
+++ b/_data/taps/schemas/trello/v1/json/users.json
@@ -0,0 +1,30 @@
+{
+ "properties": {
+ "boardId": {
+ "type": [
+ "string"
+ ]
+ },
+ "fullName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "username": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/trello/v1/trello-v1-foreign-keys.yml b/_data/taps/schemas/trello/v1/trello-v1-foreign-keys.yml
new file mode 100644
index 000000000..0631b749b
--- /dev/null
+++ b/_data/taps/schemas/trello/v1/trello-v1-foreign-keys.yml
@@ -0,0 +1,810 @@
+tap: trello
+version: '1'
+keys:
+ actions_id:
+ - table: actions
+ keys:
+ - id
+ boards_idBoard:
+ - table: boards
+ keys:
+ - id
+ - table: actions
+ keys:
+ - data.board.id
+ - table: cards
+ keys:
+ - idBoard
+ - labels.idBoard
+ - table: checklists
+ keys:
+ - data.board.id
+ - idBoard
+ - table: lists
+ keys:
+ - idBoard
+ - table: users
+ keys:
+ - boardId
+ cards_idCard:
+ - table: actions
+ keys:
+ - data.card.id
+ - table: cards
+ keys:
+ - id
+ - table: checklists
+ keys:
+ - idCard
+ - data.card.id
+ checklists_idCheckList:
+ - table: cards
+ keys:
+ - idChecklists
+ - table: checklists
+ keys:
+ - id
+ - checkItems.idChecklist
+ - data.checklist.id
+ lists_idList:
+ - table: actions
+ keys:
+ - data.card.idList
+ - data.list.id
+ - data.listAfter.id
+ - data.listBefore.id
+ - data.old.idList
+ - table: cards
+ keys:
+ - idList
+ - table: checklists
+ keys:
+ - idList
+ - data.list.id
+ - table: lists
+ keys:
+ - id
+ _idOrganization:
+ - table: actions
+ keys:
+ - data.organization.id
+ - table: boards
+ keys:
+ - idOrganization
+ - table: checklists
+ keys:
+ - idOrganization
+ - data.organization.id
+ _:
+ - table: boards
+ keys:
+ - idTags
+ users_idMember:
+ - table: actions
+ keys:
+ - idMemberCreator
+ - data.idMember
+ - data.idMemberAdded
+ - data.idMemberInviter
+ - data.card.idMembers
+ - data.member.id
+ - data.old.idMembers
+ - member.id
+ - memberCreator.id
+ - table: boards
+ keys:
+ - memberships.idMember
+ - table: cards
+ keys:
+ - idMembers
+ - idMembersVoted
+ - table: checklists
+ keys:
+ - checkItems.idMember
+ - idMemberCreator
+ - memberCreator.id
+ - memberships.idMember
+ - table: users
+ keys:
+ - id
+tables:
+- table-name: actions
+ join:
+ - table-name: boards
+ keys:
+ - key: data.board.id
+ foreign-key: id
+ - key: data.organization.id
+ foreign-key: idOrganization
+ - key: idMemberCreator
+ foreign-key: memberships.idMember
+ - key: data.idMember
+ foreign-key: memberships.idMember
+ - key: data.idMemberAdded
+ foreign-key: memberships.idMember
+ - key: data.idMemberInviter
+ foreign-key: memberships.idMember
+ - key: data.card.idMembers
+ foreign-key: memberships.idMember
+ - key: data.member.id
+ foreign-key: memberships.idMember
+ - key: data.old.idMembers
+ foreign-key: memberships.idMember
+ - key: member.id
+ foreign-key: memberships.idMember
+ - key: memberCreator.id
+ foreign-key: memberships.idMember
+ - table-name: cards
+ keys:
+ - key: data.board.id
+ foreign-key: idBoard
+ - key: data.board.id
+ foreign-key: labels.idBoard
+ - key: data.card.id
+ foreign-key: id
+ - key: data.card.idList
+ foreign-key: idList
+ - key: data.list.id
+ foreign-key: idList
+ - key: data.listAfter.id
+ foreign-key: idList
+ - key: data.listBefore.id
+ foreign-key: idList
+ - key: data.old.idList
+ foreign-key: idList
+ - key: idMemberCreator
+ foreign-key: idMembers
+ - key: data.idMember
+ foreign-key: idMembers
+ - key: data.idMemberAdded
+ foreign-key: idMembers
+ - key: data.idMemberInviter
+ foreign-key: idMembers
+ - key: data.card.idMembers
+ foreign-key: idMembers
+ - key: data.member.id
+ foreign-key: idMembers
+ - key: data.old.idMembers
+ foreign-key: idMembers
+ - key: member.id
+ foreign-key: idMembers
+ - key: memberCreator.id
+ foreign-key: idMembers
+ - key: idMemberCreator
+ foreign-key: idMembersVoted
+ - key: data.idMember
+ foreign-key: idMembersVoted
+ - key: data.idMemberAdded
+ foreign-key: idMembersVoted
+ - key: data.idMemberInviter
+ foreign-key: idMembersVoted
+ - key: data.card.idMembers
+ foreign-key: idMembersVoted
+ - key: data.member.id
+ foreign-key: idMembersVoted
+ - key: data.old.idMembers
+ foreign-key: idMembersVoted
+ - key: member.id
+ foreign-key: idMembersVoted
+ - key: memberCreator.id
+ foreign-key: idMembersVoted
+ - table-name: checklists
+ keys:
+ - key: data.board.id
+ foreign-key: data.board.id
+ - key: data.board.id
+ foreign-key: idBoard
+ - key: data.card.id
+ foreign-key: idCard
+ - key: data.card.id
+ foreign-key: data.card.id
+ - key: data.card.idList
+ foreign-key: idList
+ - key: data.list.id
+ foreign-key: idList
+ - key: data.listAfter.id
+ foreign-key: idList
+ - key: data.listBefore.id
+ foreign-key: idList
+ - key: data.old.idList
+ foreign-key: idList
+ - key: data.card.idList
+ foreign-key: data.list.id
+ - key: data.list.id
+ foreign-key: data.list.id
+ - key: data.listAfter.id
+ foreign-key: data.list.id
+ - key: data.listBefore.id
+ foreign-key: data.list.id
+ - key: data.old.idList
+ foreign-key: data.list.id
+ - key: data.organization.id
+ foreign-key: idOrganization
+ - key: data.organization.id
+ foreign-key: data.organization.id
+ - key: idMemberCreator
+ foreign-key: checkItems.idMember
+ - key: data.idMember
+ foreign-key: checkItems.idMember
+ - key: data.idMemberAdded
+ foreign-key: checkItems.idMember
+ - key: data.idMemberInviter
+ foreign-key: checkItems.idMember
+ - key: data.card.idMembers
+ foreign-key: checkItems.idMember
+ - key: data.member.id
+ foreign-key: checkItems.idMember
+ - key: data.old.idMembers
+ foreign-key: checkItems.idMember
+ - key: member.id
+ foreign-key: checkItems.idMember
+ - key: memberCreator.id
+ foreign-key: checkItems.idMember
+ - key: idMemberCreator
+ foreign-key: idMemberCreator
+ - key: data.idMember
+ foreign-key: idMemberCreator
+ - key: data.idMemberAdded
+ foreign-key: idMemberCreator
+ - key: data.idMemberInviter
+ foreign-key: idMemberCreator
+ - key: data.card.idMembers
+ foreign-key: idMemberCreator
+ - key: data.member.id
+ foreign-key: idMemberCreator
+ - key: data.old.idMembers
+ foreign-key: idMemberCreator
+ - key: member.id
+ foreign-key: idMemberCreator
+ - key: memberCreator.id
+ foreign-key: idMemberCreator
+ - key: idMemberCreator
+ foreign-key: memberCreator.id
+ - key: data.idMember
+ foreign-key: memberCreator.id
+ - key: data.idMemberAdded
+ foreign-key: memberCreator.id
+ - key: data.idMemberInviter
+ foreign-key: memberCreator.id
+ - key: data.card.idMembers
+ foreign-key: memberCreator.id
+ - key: data.member.id
+ foreign-key: memberCreator.id
+ - key: data.old.idMembers
+ foreign-key: memberCreator.id
+ - key: member.id
+ foreign-key: memberCreator.id
+ - key: memberCreator.id
+ foreign-key: memberCreator.id
+ - key: idMemberCreator
+ foreign-key: memberships.idMember
+ - key: data.idMember
+ foreign-key: memberships.idMember
+ - key: data.idMemberAdded
+ foreign-key: memberships.idMember
+ - key: data.idMemberInviter
+ foreign-key: memberships.idMember
+ - key: data.card.idMembers
+ foreign-key: memberships.idMember
+ - key: data.member.id
+ foreign-key: memberships.idMember
+ - key: data.old.idMembers
+ foreign-key: memberships.idMember
+ - key: member.id
+ foreign-key: memberships.idMember
+ - key: memberCreator.id
+ foreign-key: memberships.idMember
+ - table-name: lists
+ keys:
+ - key: data.board.id
+ foreign-key: idBoard
+ - key: data.card.idList
+ foreign-key: id
+ - key: data.list.id
+ foreign-key: id
+ - key: data.listAfter.id
+ foreign-key: id
+ - key: data.listBefore.id
+ foreign-key: id
+ - key: data.old.idList
+ foreign-key: id
+ - table-name: users
+ keys:
+ - key: data.board.id
+ foreign-key: boardId
+ - key: idMemberCreator
+ foreign-key: id
+ - key: data.idMember
+ foreign-key: id
+ - key: data.idMemberAdded
+ foreign-key: id
+ - key: data.idMemberInviter
+ foreign-key: id
+ - key: data.card.idMembers
+ foreign-key: id
+ - key: data.member.id
+ foreign-key: id
+ - key: data.old.idMembers
+ foreign-key: id
+ - key: member.id
+ foreign-key: id
+ - key: memberCreator.id
+ foreign-key: id
+- table-name: boards
+ join:
+ - table-name: actions
+ keys:
+ - key: id
+ foreign-key: data.board.id
+ - key: idOrganization
+ foreign-key: data.organization.id
+ - key: memberships.idMember
+ foreign-key: idMemberCreator
+ - key: memberships.idMember
+ foreign-key: data.idMember
+ - key: memberships.idMember
+ foreign-key: data.idMemberAdded
+ - key: memberships.idMember
+ foreign-key: data.idMemberInviter
+ - key: memberships.idMember
+ foreign-key: data.card.idMembers
+ - key: memberships.idMember
+ foreign-key: data.member.id
+ - key: memberships.idMember
+ foreign-key: data.old.idMembers
+ - key: memberships.idMember
+ foreign-key: member.id
+ - key: memberships.idMember
+ foreign-key: memberCreator.id
+ - table-name: cards
+ keys:
+ - key: id
+ foreign-key: idBoard
+ - key: id
+ foreign-key: labels.idBoard
+ - key: memberships.idMember
+ foreign-key: idMembers
+ - key: memberships.idMember
+ foreign-key: idMembersVoted
+ - table-name: checklists
+ keys:
+ - key: id
+ foreign-key: data.board.id
+ - key: id
+ foreign-key: idBoard
+ - key: idOrganization
+ foreign-key: idOrganization
+ - key: idOrganization
+ foreign-key: data.organization.id
+ - key: memberships.idMember
+ foreign-key: checkItems.idMember
+ - key: memberships.idMember
+ foreign-key: idMemberCreator
+ - key: memberships.idMember
+ foreign-key: memberCreator.id
+ - key: memberships.idMember
+ foreign-key: memberships.idMember
+ - table-name: lists
+ keys:
+ - key: id
+ foreign-key: idBoard
+ - table-name: users
+ keys:
+ - key: id
+ foreign-key: boardId
+ - key: memberships.idMember
+ foreign-key: id
+- table-name: cards
+ join:
+ - table-name: boards
+ keys:
+ - key: idBoard
+ foreign-key: id
+ - key: labels.idBoard
+ foreign-key: id
+ - key: idMembers
+ foreign-key: memberships.idMember
+ - key: idMembersVoted
+ foreign-key: memberships.idMember
+ - table-name: actions
+ keys:
+ - key: idBoard
+ foreign-key: data.board.id
+ - key: labels.idBoard
+ foreign-key: data.board.id
+ - key: id
+ foreign-key: data.card.id
+ - key: idList
+ foreign-key: data.card.idList
+ - key: idList
+ foreign-key: data.list.id
+ - key: idList
+ foreign-key: data.listAfter.id
+ - key: idList
+ foreign-key: data.listBefore.id
+ - key: idList
+ foreign-key: data.old.idList
+ - key: idMembers
+ foreign-key: idMemberCreator
+ - key: idMembersVoted
+ foreign-key: idMemberCreator
+ - key: idMembers
+ foreign-key: data.idMember
+ - key: idMembersVoted
+ foreign-key: data.idMember
+ - key: idMembers
+ foreign-key: data.idMemberAdded
+ - key: idMembersVoted
+ foreign-key: data.idMemberAdded
+ - key: idMembers
+ foreign-key: data.idMemberInviter
+ - key: idMembersVoted
+ foreign-key: data.idMemberInviter
+ - key: idMembers
+ foreign-key: data.card.idMembers
+ - key: idMembersVoted
+ foreign-key: data.card.idMembers
+ - key: idMembers
+ foreign-key: data.member.id
+ - key: idMembersVoted
+ foreign-key: data.member.id
+ - key: idMembers
+ foreign-key: data.old.idMembers
+ - key: idMembersVoted
+ foreign-key: data.old.idMembers
+ - key: idMembers
+ foreign-key: member.id
+ - key: idMembersVoted
+ foreign-key: member.id
+ - key: idMembers
+ foreign-key: memberCreator.id
+ - key: idMembersVoted
+ foreign-key: memberCreator.id
+ - table-name: checklists
+ keys:
+ - key: idBoard
+ foreign-key: data.board.id
+ - key: labels.idBoard
+ foreign-key: data.board.id
+ - key: idBoard
+ foreign-key: idBoard
+ - key: labels.idBoard
+ foreign-key: idBoard
+ - key: id
+ foreign-key: idCard
+ - key: id
+ foreign-key: data.card.id
+ - key: idChecklists
+ foreign-key: id
+ - key: idChecklists
+ foreign-key: checkItems.idChecklist
+ - key: idChecklists
+ foreign-key: data.checklist.id
+ - key: idList
+ foreign-key: idList
+ - key: idList
+ foreign-key: data.list.id
+ - key: idMembers
+ foreign-key: checkItems.idMember
+ - key: idMembersVoted
+ foreign-key: checkItems.idMember
+ - key: idMembers
+ foreign-key: idMemberCreator
+ - key: idMembersVoted
+ foreign-key: idMemberCreator
+ - key: idMembers
+ foreign-key: memberCreator.id
+ - key: idMembersVoted
+ foreign-key: memberCreator.id
+ - key: idMembers
+ foreign-key: memberships.idMember
+ - key: idMembersVoted
+ foreign-key: memberships.idMember
+ - table-name: lists
+ keys:
+ - key: idBoard
+ foreign-key: idBoard
+ - key: labels.idBoard
+ foreign-key: idBoard
+ - key: idList
+ foreign-key: id
+ - table-name: users
+ keys:
+ - key: idBoard
+ foreign-key: boardId
+ - key: labels.idBoard
+ foreign-key: boardId
+ - key: idMembers
+ foreign-key: id
+ - key: idMembersVoted
+ foreign-key: id
+- table-name: checklists
+ join:
+ - table-name: boards
+ keys:
+ - key: data.board.id
+ foreign-key: id
+ - key: idBoard
+ foreign-key: id
+ - key: idOrganization
+ foreign-key: idOrganization
+ - key: data.organization.id
+ foreign-key: idOrganization
+ - key: checkItems.idMember
+ foreign-key: memberships.idMember
+ - key: idMemberCreator
+ foreign-key: memberships.idMember
+ - key: memberCreator.id
+ foreign-key: memberships.idMember
+ - key: memberships.idMember
+ foreign-key: memberships.idMember
+ - table-name: actions
+ keys:
+ - key: data.board.id
+ foreign-key: data.board.id
+ - key: idBoard
+ foreign-key: data.board.id
+ - key: idCard
+ foreign-key: data.card.id
+ - key: data.card.id
+ foreign-key: data.card.id
+ - key: idList
+ foreign-key: data.card.idList
+ - key: data.list.id
+ foreign-key: data.card.idList
+ - key: idList
+ foreign-key: data.list.id
+ - key: data.list.id
+ foreign-key: data.list.id
+ - key: idList
+ foreign-key: data.listAfter.id
+ - key: data.list.id
+ foreign-key: data.listAfter.id
+ - key: idList
+ foreign-key: data.listBefore.id
+ - key: data.list.id
+ foreign-key: data.listBefore.id
+ - key: idList
+ foreign-key: data.old.idList
+ - key: data.list.id
+ foreign-key: data.old.idList
+ - key: idOrganization
+ foreign-key: data.organization.id
+ - key: data.organization.id
+ foreign-key: data.organization.id
+ - key: checkItems.idMember
+ foreign-key: idMemberCreator
+ - key: idMemberCreator
+ foreign-key: idMemberCreator
+ - key: memberCreator.id
+ foreign-key: idMemberCreator
+ - key: memberships.idMember
+ foreign-key: idMemberCreator
+ - key: checkItems.idMember
+ foreign-key: data.idMember
+ - key: idMemberCreator
+ foreign-key: data.idMember
+ - key: memberCreator.id
+ foreign-key: data.idMember
+ - key: memberships.idMember
+ foreign-key: data.idMember
+ - key: checkItems.idMember
+ foreign-key: data.idMemberAdded
+ - key: idMemberCreator
+ foreign-key: data.idMemberAdded
+ - key: memberCreator.id
+ foreign-key: data.idMemberAdded
+ - key: memberships.idMember
+ foreign-key: data.idMemberAdded
+ - key: checkItems.idMember
+ foreign-key: data.idMemberInviter
+ - key: idMemberCreator
+ foreign-key: data.idMemberInviter
+ - key: memberCreator.id
+ foreign-key: data.idMemberInviter
+ - key: memberships.idMember
+ foreign-key: data.idMemberInviter
+ - key: checkItems.idMember
+ foreign-key: data.card.idMembers
+ - key: idMemberCreator
+ foreign-key: data.card.idMembers
+ - key: memberCreator.id
+ foreign-key: data.card.idMembers
+ - key: memberships.idMember
+ foreign-key: data.card.idMembers
+ - key: checkItems.idMember
+ foreign-key: data.member.id
+ - key: idMemberCreator
+ foreign-key: data.member.id
+ - key: memberCreator.id
+ foreign-key: data.member.id
+ - key: memberships.idMember
+ foreign-key: data.member.id
+ - key: checkItems.idMember
+ foreign-key: data.old.idMembers
+ - key: idMemberCreator
+ foreign-key: data.old.idMembers
+ - key: memberCreator.id
+ foreign-key: data.old.idMembers
+ - key: memberships.idMember
+ foreign-key: data.old.idMembers
+ - key: checkItems.idMember
+ foreign-key: member.id
+ - key: idMemberCreator
+ foreign-key: member.id
+ - key: memberCreator.id
+ foreign-key: member.id
+ - key: memberships.idMember
+ foreign-key: member.id
+ - key: checkItems.idMember
+ foreign-key: memberCreator.id
+ - key: idMemberCreator
+ foreign-key: memberCreator.id
+ - key: memberCreator.id
+ foreign-key: memberCreator.id
+ - key: memberships.idMember
+ foreign-key: memberCreator.id
+ - table-name: cards
+ keys:
+ - key: data.board.id
+ foreign-key: idBoard
+ - key: idBoard
+ foreign-key: idBoard
+ - key: data.board.id
+ foreign-key: labels.idBoard
+ - key: idBoard
+ foreign-key: labels.idBoard
+ - key: idCard
+ foreign-key: id
+ - key: data.card.id
+ foreign-key: id
+ - key: id
+ foreign-key: idChecklists
+ - key: checkItems.idChecklist
+ foreign-key: idChecklists
+ - key: data.checklist.id
+ foreign-key: idChecklists
+ - key: idList
+ foreign-key: idList
+ - key: data.list.id
+ foreign-key: idList
+ - key: checkItems.idMember
+ foreign-key: idMembers
+ - key: idMemberCreator
+ foreign-key: idMembers
+ - key: memberCreator.id
+ foreign-key: idMembers
+ - key: memberships.idMember
+ foreign-key: idMembers
+ - key: checkItems.idMember
+ foreign-key: idMembersVoted
+ - key: idMemberCreator
+ foreign-key: idMembersVoted
+ - key: memberCreator.id
+ foreign-key: idMembersVoted
+ - key: memberships.idMember
+ foreign-key: idMembersVoted
+ - table-name: lists
+ keys:
+ - key: data.board.id
+ foreign-key: idBoard
+ - key: idBoard
+ foreign-key: idBoard
+ - key: idList
+ foreign-key: id
+ - key: data.list.id
+ foreign-key: id
+ - table-name: users
+ keys:
+ - key: data.board.id
+ foreign-key: boardId
+ - key: idBoard
+ foreign-key: boardId
+ - key: checkItems.idMember
+ foreign-key: id
+ - key: idMemberCreator
+ foreign-key: id
+ - key: memberCreator.id
+ foreign-key: id
+ - key: memberships.idMember
+ foreign-key: id
+- table-name: lists
+ join:
+ - table-name: boards
+ keys:
+ - key: idBoard
+ foreign-key: id
+ - table-name: actions
+ keys:
+ - key: idBoard
+ foreign-key: data.board.id
+ - key: id
+ foreign-key: data.card.idList
+ - key: id
+ foreign-key: data.list.id
+ - key: id
+ foreign-key: data.listAfter.id
+ - key: id
+ foreign-key: data.listBefore.id
+ - key: id
+ foreign-key: data.old.idList
+ - table-name: cards
+ keys:
+ - key: idBoard
+ foreign-key: idBoard
+ - key: idBoard
+ foreign-key: labels.idBoard
+ - key: id
+ foreign-key: idList
+ - table-name: checklists
+ keys:
+ - key: idBoard
+ foreign-key: data.board.id
+ - key: idBoard
+ foreign-key: idBoard
+ - key: id
+ foreign-key: idList
+ - key: id
+ foreign-key: data.list.id
+ - table-name: users
+ keys:
+ - key: idBoard
+ foreign-key: boardId
+- table-name: users
+ join:
+ - table-name: boards
+ keys:
+ - key: boardId
+ foreign-key: id
+ - key: id
+ foreign-key: memberships.idMember
+ - table-name: actions
+ keys:
+ - key: boardId
+ foreign-key: data.board.id
+ - key: id
+ foreign-key: idMemberCreator
+ - key: id
+ foreign-key: data.idMember
+ - key: id
+ foreign-key: data.idMemberAdded
+ - key: id
+ foreign-key: data.idMemberInviter
+ - key: id
+ foreign-key: data.card.idMembers
+ - key: id
+ foreign-key: data.member.id
+ - key: id
+ foreign-key: data.old.idMembers
+ - key: id
+ foreign-key: member.id
+ - key: id
+ foreign-key: memberCreator.id
+ - table-name: cards
+ keys:
+ - key: boardId
+ foreign-key: idBoard
+ - key: boardId
+ foreign-key: labels.idBoard
+ - key: id
+ foreign-key: idMembers
+ - key: id
+ foreign-key: idMembersVoted
+ - table-name: checklists
+ keys:
+ - key: boardId
+ foreign-key: data.board.id
+ - key: boardId
+ foreign-key: idBoard
+ - key: id
+ foreign-key: checkItems.idMember
+ - key: id
+ foreign-key: idMemberCreator
+ - key: id
+ foreign-key: memberCreator.id
+ - key: id
+ foreign-key: memberships.idMember
+ - table-name: lists
+ keys:
+ - key: boardId
+ foreign-key: idBoard
diff --git a/_data/taps/schemas/trello/v1/trello-v1-tables.yml b/_data/taps/schemas/trello/v1/trello-v1-tables.yml
new file mode 100644
index 000000000..d28ec0b95
--- /dev/null
+++ b/_data/taps/schemas/trello/v1/trello-v1-tables.yml
@@ -0,0 +1,94 @@
+tap: trello
+version: '1'
+tables:
+- name: actions
+ description: 'The {{ table.name }} table contains information about the actions
+ within each board the [authorizing user](#data-replication-board-membership) is
+ a member of.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-trello/blob/master/tap_trello/schemas/actions.json
+ api-method: https://developer.atlassian.com/cloud/trello/rest/#api-boards-boardId-actions-get
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: date
+- name: boards
+ description: 'The {{ table.name }} table contains info about the boards that the
+ [authorizing user](#data-replication-board-membership) is a member of.
+
+
+ #### Custom field support
+
+
+ Custom fields are supported for this table.
+
+ '
+ links:
+ doc-link: https://developer.atlassian.com/cloud/trello/rest/#api-boards-id-get
+ singer-schema: https://github.com/singer-io/tap-trello/blob/master/tap_trello/schemas/boards.json
+ api-method: https://developer.atlassian.com/cloud/trello/rest/#api-members-id-boards-get
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: cards
+ description: 'The {{ table.name }} table contains info about all of the cards on
+ boards that [authorizing user](#data-replication-board-membership) is a member
+ of.
+
+
+ #### Custom field support
+
+
+ Custom fields are supported for this table.
+
+ '
+ links:
+ doc-link: https://developer.atlassian.com/cloud/trello/rest/#api-cards-id-get
+ singer-schema: https://github.com/singer-io/tap-trello/blob/master/tap_trello/schemas/cards.json
+ api-method: https://developer.atlassian.com/cloud/trello/rest/#api-boards-id-cards-filter-get
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: checklists
+ description: 'The {{ table.name }} table contains info about checklists on boards
+ that the [authorizing user](#data-replication-board-membership) is a member of.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-trello/blob/master/tap_trello/schemas/checklists.json
+ api-method: https://developer.atlassian.com/cloud/trello/rest/#api-checklists-id-get
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: lists
+ description: 'The {{ table.name }} table contains info about lists on boards that
+ the [authorizing user](#data-replication-board-membership) is a member of.
+
+
+ **Note**: To replicate this table, the [boards](#boards) table must be set to
+ replicate.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-trello/blob/master/tap_trello/schemas/lists.json
+ api-method: https://developer.atlassian.com/cloud/trello/rest/#api-boards-id-lists-get
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: users
+ description: 'The {{ table.name }} table contains information about users who are
+ members of boards that the [authorizing user](#data-replication-board-membership)
+ is also a member of.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-trello/blob/master/tap_trello/schemas/users.json
+ api-method: https://developer.atlassian.com/cloud/trello/rest/#api-boards-id-members-get
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - id
+ - boardId
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/twilio/v1/json/account_balance.json b/_data/taps/schemas/twilio/v1/json/account_balance.json
new file mode 100644
index 000000000..57cb38f28
--- /dev/null
+++ b/_data/taps/schemas/twilio/v1/json/account_balance.json
@@ -0,0 +1,25 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "balance": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twilio/v1/json/accounts.json b/_data/taps/schemas/twilio/v1/json/accounts.json
new file mode 100644
index 000000000..9de99a841
--- /dev/null
+++ b/_data/taps/schemas/twilio/v1/json/accounts.json
@@ -0,0 +1,220 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "auth_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "friendly_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "owner_account_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subresource_uris": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "subresource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "addresses": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "applications": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authorized_connect_apps": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "available_phone_numbers": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "balance": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "calls": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conferences": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "connect_apps": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "incoming_phone_numbers": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "keys": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "messages": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notifications": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "outgoing_caller_ids": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "queues": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recordings": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "short_codes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "signing_keys": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transcriptions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twilio/v1/json/addresses.json b/_data/taps/schemas/twilio/v1/json/addresses.json
new file mode 100644
index 000000000..cf1f44a88
--- /dev/null
+++ b/_data/taps/schemas/twilio/v1/json/addresses.json
@@ -0,0 +1,96 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "emergency_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "friendly_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iso_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "street": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "validated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "verified": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twilio/v1/json/alerts.json b/_data/taps/schemas/twilio/v1/json/alerts.json
new file mode 100644
index 000000000..59bc81987
--- /dev/null
+++ b/_data/taps/schemas/twilio/v1/json/alerts.json
@@ -0,0 +1,96 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "alert_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "api_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_generated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "error_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "log_level": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "more_info": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "request_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "request_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "resource_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "service_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twilio/v1/json/applications.json b/_data/taps/schemas/twilio/v1/json/applications.json
new file mode 100644
index 000000000..a9b4ed3c3
--- /dev/null
+++ b/_data/taps/schemas/twilio/v1/json/applications.json
@@ -0,0 +1,126 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "api_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "friendly_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message_status_callback": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sms_fallback_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sms_fallback_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sms_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sms_status_callback": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sms_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status_callback": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status_callback_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voice_callback_id_lookup": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "voice_fallback_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voice_fallback_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voice_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voice_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twilio/v1/json/available_phone_number_countries.json b/_data/taps/schemas/twilio/v1/json/available_phone_number_countries.json
new file mode 100644
index 000000000..341428bb0
--- /dev/null
+++ b/_data/taps/schemas/twilio/v1/json/available_phone_number_countries.json
@@ -0,0 +1,88 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "beta": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subresource_uris": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "subresource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "local": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "mobile": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "toll_free": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twilio/v1/json/available_phone_numbers_local.json b/_data/taps/schemas/twilio/v1/json/available_phone_numbers_local.json
new file mode 100644
index 000000000..58ba8fabb
--- /dev/null
+++ b/_data/taps/schemas/twilio/v1/json/available_phone_numbers_local.json
@@ -0,0 +1,127 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "address_requirements": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "beta": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "capabilities": {
+ "additionalProperties": false,
+ "properties": {
+ "MMS": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "SMS": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "fax": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "voice": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "friendly_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iso_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lata": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latitude": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-06,
+ "type": "number"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "locality": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "longitude": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-06,
+ "type": "number"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rate_center": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twilio/v1/json/available_phone_numbers_mobile.json b/_data/taps/schemas/twilio/v1/json/available_phone_numbers_mobile.json
new file mode 100644
index 000000000..58ba8fabb
--- /dev/null
+++ b/_data/taps/schemas/twilio/v1/json/available_phone_numbers_mobile.json
@@ -0,0 +1,127 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "address_requirements": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "beta": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "capabilities": {
+ "additionalProperties": false,
+ "properties": {
+ "MMS": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "SMS": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "fax": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "voice": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "friendly_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iso_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lata": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latitude": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-06,
+ "type": "number"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "locality": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "longitude": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-06,
+ "type": "number"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rate_center": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twilio/v1/json/available_phone_numbers_toll_free.json b/_data/taps/schemas/twilio/v1/json/available_phone_numbers_toll_free.json
new file mode 100644
index 000000000..58ba8fabb
--- /dev/null
+++ b/_data/taps/schemas/twilio/v1/json/available_phone_numbers_toll_free.json
@@ -0,0 +1,127 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "address_requirements": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "beta": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "capabilities": {
+ "additionalProperties": false,
+ "properties": {
+ "MMS": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "SMS": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "fax": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "voice": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "friendly_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iso_country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lata": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latitude": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-06,
+ "type": "number"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "locality": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "longitude": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-06,
+ "type": "number"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rate_center": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twilio/v1/json/calls.json b/_data/taps/schemas/twilio/v1/json/calls.json
new file mode 100644
index 000000000..e59889d5e
--- /dev/null
+++ b/_data/taps/schemas/twilio/v1/json/calls.json
@@ -0,0 +1,215 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "annotation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "answered_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "api_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "caller_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "direction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "end_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "forwarded_from": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "from": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "from_formatted": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_call_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_number_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "price_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "queue_time": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subresource_uris": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "subresource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "notifications": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recordings": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ ]
+ },
+ "to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to_formatted": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trunk_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twilio/v1/json/conference_participants.json b/_data/taps/schemas/twilio/v1/json/conference_participants.json
new file mode 100644
index 000000000..905121bb1
--- /dev/null
+++ b/_data/taps/schemas/twilio/v1/json/conference_participants.json
@@ -0,0 +1,90 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "call_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "call_sid_to_coach": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "coaching": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "conference_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "end_conference_on_exit": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "hold": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "muted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "start_conference_on_enter": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twilio/v1/json/conferences.json b/_data/taps/schemas/twilio/v1/json/conferences.json
new file mode 100644
index 000000000..e66af64c8
--- /dev/null
+++ b/_data/taps/schemas/twilio/v1/json/conferences.json
@@ -0,0 +1,103 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "api_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "call_sid_ending_conference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "friendly_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reason_conference_ended": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subresource_uris": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "subresource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twilio/v1/json/dependent_phone_numbers.json b/_data/taps/schemas/twilio/v1/json/dependent_phone_numbers.json
new file mode 100644
index 000000000..c462e2468
--- /dev/null
+++ b/_data/taps/schemas/twilio/v1/json/dependent_phone_numbers.json
@@ -0,0 +1,189 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_requirements": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "api_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "capabilities": {
+ "additionalProperties": false,
+ "properties": {
+ "fax": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mms": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "sms": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "voice": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "emergency_address_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emergency_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "friendly_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sms_application_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sms_fallback_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sms_fallback_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sms_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sms_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status_callback": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status_callback_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trunk_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voice_application_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voice_caller_id_lookup": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "voice_fallback_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voice_fallback_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voice_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voice_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twilio/v1/json/incoming_phone_numbers.json b/_data/taps/schemas/twilio/v1/json/incoming_phone_numbers.json
new file mode 100644
index 000000000..6c1357178
--- /dev/null
+++ b/_data/taps/schemas/twilio/v1/json/incoming_phone_numbers.json
@@ -0,0 +1,237 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_requirements": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "api_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "beta": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "bundle_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "capabilities": {
+ "additionalProperties": false,
+ "properties": {
+ "fax": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mms": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "sms": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "voice": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "emergency_address_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emergency_address_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "emergency_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "friendly_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "identity_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "origin": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sms_application_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sms_fallback_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sms_fallback_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sms_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sms_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status_callback": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status_callback_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trunk_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voice_application_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voice_caller_id_lookup": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "voice_fallback_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voice_fallback_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voice_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voice_receive_mode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voice_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twilio/v1/json/keys.json b/_data/taps/schemas/twilio/v1/json/keys.json
new file mode 100644
index 000000000..328bdb32b
--- /dev/null
+++ b/_data/taps/schemas/twilio/v1/json/keys.json
@@ -0,0 +1,36 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "friendly_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twilio/v1/json/message_media.json b/_data/taps/schemas/twilio/v1/json/message_media.json
new file mode 100644
index 000000000..faf43ab2b
--- /dev/null
+++ b/_data/taps/schemas/twilio/v1/json/message_media.json
@@ -0,0 +1,48 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "parent_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twilio/v1/json/messages.json b/_data/taps/schemas/twilio/v1/json/messages.json
new file mode 100644
index 000000000..5c2d6a979
--- /dev/null
+++ b/_data/taps/schemas/twilio/v1/json/messages.json
@@ -0,0 +1,173 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "api_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_sent": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "direction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "error_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "error_message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "from": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "messaging_service_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "num_media": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "num_segments": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "price_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subresource_uris": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "subresource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "feedback": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "media": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ ]
+ },
+ "to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twilio/v1/json/outgoing_caller_ids.json b/_data/taps/schemas/twilio/v1/json/outgoing_caller_ids.json
new file mode 100644
index 000000000..9aec904eb
--- /dev/null
+++ b/_data/taps/schemas/twilio/v1/json/outgoing_caller_ids.json
@@ -0,0 +1,48 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "friendly_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twilio/v1/json/queues.json b/_data/taps/schemas/twilio/v1/json/queues.json
new file mode 100644
index 000000000..2024fd871
--- /dev/null
+++ b/_data/taps/schemas/twilio/v1/json/queues.json
@@ -0,0 +1,91 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "average_wait_time": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "current_size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "friendly_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subresource_uris": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "subresource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twilio/v1/json/recordings.json b/_data/taps/schemas/twilio/v1/json/recordings.json
new file mode 100644
index 000000000..c0c5d6eef
--- /dev/null
+++ b/_data/taps/schemas/twilio/v1/json/recordings.json
@@ -0,0 +1,188 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "api_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "call_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "channels": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "conference_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "encryption_details": {
+ "additionalProperties": false,
+ "properties": {
+ "encryption_cek": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "encryption_public_key_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "iv": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "error_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "price_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subresource_uris": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "subresource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "add_on_results": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transcriptions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twilio/v1/json/transcriptions.json b/_data/taps/schemas/twilio/v1/json/transcriptions.json
new file mode 100644
index 000000000..6bb05eba0
--- /dev/null
+++ b/_data/taps/schemas/twilio/v1/json/transcriptions.json
@@ -0,0 +1,85 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "api_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "price": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "price_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recording_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transcription_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twilio/v1/json/usage_records.json b/_data/taps/schemas/twilio/v1/json/usage_records.json
new file mode 100644
index 000000000..c67ff5c8d
--- /dev/null
+++ b/_data/taps/schemas/twilio/v1/json/usage_records.json
@@ -0,0 +1,198 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "api_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "as_of": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "count": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "count_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "price": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-06,
+ "type": "number"
+ }
+ ]
+ },
+ "price_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "subresource_uris": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "subresource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "all_time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "daily": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_month": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "monthly": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "this_month": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "today": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "yearly": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "yesterday": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "multipleOf": 1e-08,
+ "type": "number"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "usage_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twilio/v1/json/usage_triggers.json b/_data/taps/schemas/twilio/v1/json/usage_triggers.json
new file mode 100644
index 000000000..550dc4240
--- /dev/null
+++ b/_data/taps/schemas/twilio/v1/json/usage_triggers.json
@@ -0,0 +1,104 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "api_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "callback_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "callback_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "current_value": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "date_created": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_fired": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "date_updated": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "friendly_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recurring": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sid": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trigger_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trigger_value": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage_category": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "usage_record_uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twilio/v1/twilio-v1-tables.yml b/_data/taps/schemas/twilio/v1/twilio-v1-tables.yml
new file mode 100644
index 000000000..84d063a5d
--- /dev/null
+++ b/_data/taps/schemas/twilio/v1/twilio-v1-tables.yml
@@ -0,0 +1,302 @@
+tap: twilio
+version: '1'
+tables:
+- name: accounts
+ description: 'The **{{ table.name }}** table returns a list of accounts in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://www.twilio.com/docs/usage/api/account#read-multiple-account-resources
+ singer-schema: https://github.com/singer-io/tap-twilio/tree/master/tap_twilio/schemas/accounts.json
+ api-method: https://www.twilio.com/docs/usage/api/account?code-sample=code-list-all-accounts&code-language=curl&code-sdk-version=json
+ table-details:
+ replication-method: Full Table
+ primary-key: sid
+- name: account_balance
+ description: 'The **{{ table.name }}** returns your {{ integration.display_name
+ }} account balance.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twilio/tree/master/tap_twilio/schemas/account_balance.json
+ table-details:
+ replication-method: Full Table
+ primary-key: account_sid
+- name: addresses
+ description: 'The **{{ table.name }}** table returns a list of address resource
+ representations, each representing an address within your {{ integration.display_name
+ }} account.
+
+ '
+ links:
+ doc-link: https://www.twilio.com/docs/usage/api/address#read-multiple-address-resources
+ singer-schema: https://github.com/singer-io/tap-twilio/tree/master/tap_twilio/schemas/addresses.json
+ api-method: https://www.twilio.com/docs/usage/api/address?code-sample=code-show-all-addresses&code-language=curl&code-sdk-version=json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: sid
+ replication-key: date_updated
+- name: alerts
+ description: 'The **{{ table.name }}** returns a list of alerts generated for an
+ account within your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://www.twilio.com/docs/usage/monitor-alert#read-multiple-alert-resource
+ singer-schema: https://github.com/singer-io/tap-twilio/tree/master/tap_twilio/schemas/alerts.json
+ api-method: https://www.twilio.com/docs/usage/monitor-alert?code-sample=code-list-all-alerts&code-language=curl&code-sdk-version=json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: sid
+ replication-key: date_updated
+- name: applications
+ description: 'The **{{ table.name }}** table returns a list of application resource
+ representations, each representing an application within your {{ integration.display_name
+ }} account.
+
+ '
+ links:
+ doc-link: https://www.twilio.com/docs/usage/api/applications#read-multiple-application-resources
+ singer-schema: https://github.com/singer-io/tap-twilio/tree/master/tap_twilio/schemas/applications.json
+ api-method: https://www.twilio.com/docs/usage/api/applications?code-sample=code-list-all-application-resource-representations&code-language=curl&code-sdk-version=json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: sid
+ replication-key: date_created
+- name: available_phone_numbers_local
+ description: 'The **{{ table.name }}** table returns a list of available phone numbers
+ for local resources for your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twilio/tree/master/tap_twilio/schemas/available_phone_numbers_local.json
+ api-method: https://www.twilio.com/docs/phone-numbers/api/availablephonenumberlocal-resource#read-multiple-availablephonenumberlocal-resources
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - iso_country
+ - phone_number
+- name: available_phone_numbers_mobile
+ description: 'The **{{ table.name }}** table returns a list of available phone numbers
+ for mobile resources for your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://www.twilio.com/docs/phone-numbers/api/availablephonenumber-mobile-resource#read-multiple-availablephonenumbermobile-resources
+ singer-schema: https://github.com/singer-io/tap-twilio/tree/master/tap_twilio/schemas/available_phone_numbers_mobile.json
+ api-method: https://www.twilio.com/docs/phone-numbers/api/availablephonenumber-mobile-resource?code-sample=code-find-mobile-numbers-by-region&code-language=curl&code-sdk-version=json
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - iso_country
+ - phone_number
+- name: available_phone_numbers_toll_free
+ description: 'The **{{ table.name }}** table returns a list of available toll free
+ phone numbers for your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://www.twilio.com/docs/phone-numbers/api/availablephonenumber-tollfree-resource#read-multiple-availablephonenumbertollfree-resources
+ singer-schema: https://github.com/singer-io/tap-twilio/tree/master/tap_twilio/schemas/available_phone_numbers_toll_free.json
+ api-method: https://www.twilio.com/docs/phone-numbers/api/availablephonenumber-tollfree-resource?code-sample=code-find-any-toll-free-number&code-language=curl&code-sdk-version=json
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - iso_country
+ - phone_number
+- name: available_phone_number_countries
+ description: 'The **{{ table.name }}** table returns a list of countries that have
+ phone numbers to purchase for your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://www.twilio.com/docs/phone-numbers/api/availablephonenumber-resource#read-a-list-of-countries
+ singer-schema: https://github.com/singer-io/tap-twilio/tree/master/tap_twilio/schemas/available_phone_number_countries.json
+ api-method: https://www.twilio.com/docs/phone-numbers/api/availablephonenumber-resource?code-sample=code-read-a-list-of-countries&code-language=curl&code-sdk-version=json
+ table-details:
+ replication-method: Full Table
+ primary-key: country_code
+- name: calls
+ description: 'The **{{ table.name }}** table returns a list of phone calls made
+ to and from an account in your {{ integration.display_name }} account, identified
+ by its `AccountSid`.
+
+ '
+ links:
+ doc-link: https://www.twilio.com/docs/voice/api/call-resource#read-multiple-call-resources
+ singer-schema: https://github.com/singer-io/tap-twilio/tree/master/tap_twilio/schemas/calls.json
+ api-method: https://www.twilio.com/docs/voice/api/call-resource?code-sample=code-read-multiple-call-resources&code-language=curl&code-sdk-version=json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: sid
+ replication-key: date_updated
+- name: conferences
+ description: 'The **{{ table.name }}** table returns all the conferences within
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://www.twilio.com/docs/voice/api/conference-resource#read-multiple-conference-resources
+ singer-schema: https://github.com/singer-io/tap-twilio/tree/master/tap_twilio/schemas/conferences.json
+ api-method: https://www.twilio.com/docs/voice/api/conference-resource?code-sample=code-read-multiple-conference-resources&code-language=curl&code-sdk-version=json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: sid
+ replication-key: date_updated
+- name: conference_participants
+ description: 'The **{{ table.name }}** table returns the list of active participants
+ in the {{ integration.display_name }} conference identified by `ConferenceSid`.
+
+ '
+ links:
+ doc-link: https://www.twilio.com/docs/voice/api/conference-participant-resource#read-multiple-participant-resources
+ singer-schema: https://github.com/singer-io/tap-twilio/tree/master/tap_twilio/schemas/conference_participants.json
+ api-method: https://www.twilio.com/docs/voice/api/conference-participant-resource?code-sample=code-read-multiple-participant-resources&code-language=curl&code-sdk-version=json
+ table-details:
+ replication-method: Full Table
+ primary-key: uri
+- name: dependent_phone_numbers
+ description: 'The **{{ table.name }}** table returns a list of `IncomingPhoneNumbers`
+ in your {{ integration.display_name }} account that require the specified address.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twilio/tree/master/tap_twilio/schemas/dependent_phone_numbers.json
+ api-method: https://www.twilio.com/docs/usage/api/address?code-sample=code-list-dependent-pns-subresources&code-language=curl&code-sdk-version=json#instance-subresources
+ table-details:
+ replication-method: Full Table
+ primary-key: sid
+- name: incoming_phone_numbers
+ description: 'The **{{ table.name }}** table returns a list of `IncomingPhoneNumbers`
+ in your {{ integration.display_name }} account that require the specified address.
+
+ '
+ links:
+ doc-link: https://www.twilio.com/docs/phone-numbers/api/incomingphonenumber-resource#read-multiple-incomingphonenumber-resources
+ singer-schema: https://github.com/singer-io/tap-twilio/tree/master/tap_twilio/schemas/incoming_phone_numbers.json
+ api-method: https://www.twilio.com/docs/phone-numbers/api/incomingphonenumber-resource?code-sample=code-list-all-incomingphonenumber-resources-for-your-account&code-language=curl&code-sdk-version=json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: sid
+ replication-key: date_updated
+- name: keys
+ description: 'The **{{ table.name }}** table returns a list of API Keys in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twilio/tree/master/tap_twilio/schemas/keys.json
+ api-method: https://www.twilio.com/docs/usage/api/keys?code-sample=code-read-a-key-resource&code-language=curl&code-sdk-version=json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: sid
+ replication-key: date_updated
+- name: messages
+ description: 'The **{{ table.name }}** table returns a list of messages associated
+ with your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://www.twilio.com/docs/sms/api/message-resource#read-multiple-message-resources
+ singer-schema: https://github.com/singer-io/tap-twilio/tree/master/tap_twilio/schemas/messages.json
+ api-method: https://www.twilio.com/docs/sms/api/message-resource?code-sample=code-read-list-all-messages&code-language=curl&code-sdk-version=json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: sid
+ replication-key: date_updated
+- name: message_media
+ description: 'The **{{ table.name }}** table returns the list of media associated
+ with your {{ integration.display_name }} message.
+
+ '
+ links:
+ doc-link: https://www.twilio.com/docs/sms/api/media-resource#read-multiple-media-resources
+ singer-schema: https://github.com/singer-io/tap-twilio/tree/master/tap_twilio/schemas/message_media.json
+ api-method: https://www.twilio.com/docs/sms/api/media-resource?code-sample=code-read-media&code-language=curl&code-sdk-version=json
+ table-details:
+ replication-method: Full Table
+ primary-key: sid
+- name: outgoing_caller_ids
+ description: 'The **{{ table.name }}** table returns a list of `OutgoingCallerId`
+ resource representations, each representing a Caller ID number valid for a {{
+ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twilio/tree/master/tap_twilio/schemas/outgoing_caller_ids.json
+ api-method: https://www.twilio.com/docs/voice/api/outgoing-caller-ids?code-sample=code-list-an-accounts-outgoing-caller-ids&code-language=curl&code-sdk-version=json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: sid
+ replication-key: date_updated
+- name: queues
+ description: 'The **{{ table.name }}** table returns the list of call queues within
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://www.twilio.com/docs/voice/api/queue-resource#read-multiple-queue-resources
+ singer-schema: https://github.com/singer-io/tap-twilio/tree/master/tap_twilio/schemas/queues.json
+ api-method: https://www.twilio.com/docs/voice/api/queue-resource?code-sample=code-read-multiple-queue-resources&code-language=curl&code-sdk-version=json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: sid
+ replication-key: date_updated
+- name: recordings
+ description: 'The **{{ table.name }}** table returns a list of recordings, each
+ representing a recording generated during a call or conference in your {{ integration.display_name
+ }} account.
+
+ '
+ links:
+ doc-link: https://www.twilio.com/docs/voice/api/recording#read-multiple-recording-resources
+ singer-schema: https://github.com/singer-io/tap-twilio/tree/master/tap_twilio/schemas/recordings.json
+ api-method: https://www.twilio.com/docs/voice/api/recording?code-sample=code-get-all-recordings-for-an-account&code-language=curl&code-sdk-version=json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: sid
+ replication-key: date_created
+- name: transcriptions
+ description: 'The **{{ table.name }}** table returns the full set of transcriptions
+ generated from all recordings in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://www.twilio.com/docs/voice/api/recording-transcription#read-multiple-transcription-resources
+ singer-schema: https://github.com/singer-io/tap-twilio/tree/master/tap_twilio/schemas/transcriptions.json
+ api-method: https://www.twilio.com/docs/voice/api/recording-transcription?code-sample=code-read-list-all-transcriptions&code-language=curl&code-sdk-version=json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: sid
+ replication-key: date_updated
+- name: usage_records
+ description: 'The **{{ table.name }}** table returns a list of usage records in
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://www.twilio.com/docs/usage/api/usage-record#read-multiple-usagerecord-resources
+ singer-schema: https://github.com/singer-io/tap-twilio/tree/master/tap_twilio/schemas/usage_records.json
+ api-method: https://www.twilio.com/docs/usage/api/usage-record?code-sample=code-all-time-usage-all-usage-categories&code-language=curl&code-sdk-version=json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - account_sid
+ - category
+ - start_date
+ replication-key: start_date
+- name: usage_triggers
+ description: 'The **{{ table.name }}** table returns list of usage triggers in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://www.twilio.com/docs/usage/api/usage-trigger#read-multiple-usagetrigger-resources
+ singer-schema: https://github.com/singer-io/tap-twilio/tree/master/tap_twilio/schemas/usage_triggers.json
+ api-method: https://www.twilio.com/docs/usage/api/usage-trigger?code-sample=code-read-multiple-usagetrigger-resources&code-language=curl&code-sdk-version=json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: sid
+ replication-key: date_updated
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/twitter-ads/v1/json/account_media.json b/_data/taps/schemas/twitter-ads/v1/json/account_media.json
new file mode 100644
index 000000000..c217ec079
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/account_media.json
@@ -0,0 +1,124 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "daily_budget_amount_local_micro": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "duration_in_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "end_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "entity_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "frequency_cap": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "funding_instrument_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reasons_not_servable": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "servable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "standard_delivery": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "total_budget_amount_local_micro": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/accounts.json b/_data/taps/schemas/twitter-ads/v1/json/accounts.json
new file mode 100644
index 000000000..22c440d40
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/accounts.json
@@ -0,0 +1,81 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "approval_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "business_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "business_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "industry_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "salt": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timezone_switch_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/advertiser_business_categories.json b/_data/taps/schemas/twitter-ads/v1/json/advertiser_business_categories.json
new file mode 100644
index 000000000..594b4d731
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/advertiser_business_categories.json
@@ -0,0 +1,34 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "iab_categories": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/campaigns.json b/_data/taps/schemas/twitter-ads/v1/json/campaigns.json
new file mode 100644
index 000000000..290ae8fcb
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/campaigns.json
@@ -0,0 +1,118 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "budget_optimization": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "daily_budget_amount_local_micro": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "duration_in_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "entity_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "frequency_cap": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "funding_instrument_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reasons_not_servable": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "servable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "standard_delivery": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "total_budget_amount_local_micro": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/cards.json b/_data/taps/schemas/twitter-ads/v1/json/cards.json
new file mode 100644
index 000000000..004e8f067
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/cards.json
@@ -0,0 +1,64 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "card_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "components": {
+ "items": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/cards_image_conversation.json b/_data/taps/schemas/twitter-ads/v1/json/cards_image_conversation.json
new file mode 100644
index 000000000..2c53b05d1
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/cards_image_conversation.json
@@ -0,0 +1,105 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "first_cta": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_cta_tweet": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_display_height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "image_display_width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "media_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "media_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thank_you_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/cards_poll.json b/_data/taps/schemas/twitter-ads/v1/json/cards_poll.json
new file mode 100644
index 000000000..7682b14d4
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/cards_poll.json
@@ -0,0 +1,135 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_duration_seconds": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "duration_in_minutes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "end_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "first_choice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "second_choice": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "video_height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_hls_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "video_poster_height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_poster_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "video_poster_width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "video_width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/cards_video_conversation.json b/_data/taps/schemas/twitter-ads/v1/json/cards_video_conversation.json
new file mode 100644
index 000000000..c060f743b
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/cards_video_conversation.json
@@ -0,0 +1,117 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "card_uri": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "first_cta": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_cta_tweet": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "media_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "media_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "poster_media_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thank_you_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "video_height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "video_owner_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "video_width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/content_categories.json b/_data/taps/schemas/twitter-ads/v1/json/content_categories.json
new file mode 100644
index 000000000..594b4d731
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/content_categories.json
@@ -0,0 +1,34 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "iab_categories": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/example-custom-report.json b/_data/taps/schemas/twitter-ads/v1/json/example-custom-report.json
new file mode 100644
index 000000000..5547886f7
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/example-custom-report.json
@@ -0,0 +1,74 @@
+{
+ "properties": {
+ "METRICS_YOU_SELECT": {
+ "type": [
+ "varies"
+ ]
+ },
+ "account_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "end_time": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "entity": {
+ "type": [
+ "string"
+ ]
+ },
+ "entity_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "granularity": {
+ "type": [
+ "string"
+ ]
+ },
+ "placement": {
+ "type": [
+ "string"
+ ]
+ },
+ "platform": {
+ "type": [
+ "string"
+ ]
+ },
+ "report_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "segment_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "segment_value": {
+ "type": [
+ "string"
+ ]
+ },
+ "segmentation_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "{{ system-column.dimension-hash-key }}": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/funding_instruments.json b/_data/taps/schemas/twitter-ads/v1/json/funding_instruments.json
new file mode 100644
index 000000000..a1e5ebc77
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/funding_instruments.json
@@ -0,0 +1,118 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "able_to_fund": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "credit_limit_local_micro": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "credit_remaining_local_micro": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "entity_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "funded_amount_local_micro": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "io_header": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reasons_not_able_to_fund": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "start_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/iab_categories.json b/_data/taps/schemas/twitter-ads/v1/json/iab_categories.json
new file mode 100644
index 000000000..f591fdea5
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/iab_categories.json
@@ -0,0 +1,27 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/line_item_apps.json b/_data/taps/schemas/twitter-ads/v1/json/line_item_apps.json
new file mode 100644
index 000000000..7b431ceeb
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/line_item_apps.json
@@ -0,0 +1,57 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "app_store_identifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "os_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/line_items.json b/_data/taps/schemas/twitter-ads/v1/json/line_items.json
new file mode 100644
index 000000000..d881a3014
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/line_items.json
@@ -0,0 +1,204 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "advertiser_domain": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "advertiser_user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "automatically_select_bid": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "bid_amount_local_micro": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "bid_strategy": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bid_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "bid_unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "campaign_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "categories": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "charge_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "creative_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "end_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "entity_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "objective": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "optimization": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "placements": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "primary_web_event_tag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "target_cpa_local_micro": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_budget_amount_local_micro": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tracking_tags": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/media_creatives.json b/_data/taps/schemas/twitter-ads/v1/json/media_creatives.json
new file mode 100644
index 000000000..a23ce1d3e
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/media_creatives.json
@@ -0,0 +1,69 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "account_media_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "approval_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "landing_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "serving_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/preroll_call_to_actions.json b/_data/taps/schemas/twitter-ads/v1/json/preroll_call_to_actions.json
new file mode 100644
index 000000000..dfd9f3050
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/preroll_call_to_actions.json
@@ -0,0 +1,57 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "call_to_action": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "call_to_action_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/promotable_users.json b/_data/taps/schemas/twitter-ads/v1/json/promotable_users.json
new file mode 100644
index 000000000..028c92de0
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/promotable_users.json
@@ -0,0 +1,45 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "promotable_user_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/promoted_accounts.json b/_data/taps/schemas/twitter-ads/v1/json/promoted_accounts.json
new file mode 100644
index 000000000..10c4bbf27
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/promoted_accounts.json
@@ -0,0 +1,63 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "approval_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "entity_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/promoted_tweets.json b/_data/taps/schemas/twitter-ads/v1/json/promoted_tweets.json
new file mode 100644
index 000000000..c2c6e97fe
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/promoted_tweets.json
@@ -0,0 +1,63 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "approval_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "entity_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tweet_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/scheduled_promoted_tweets.json b/_data/taps/schemas/twitter-ads/v1/json/scheduled_promoted_tweets.json
new file mode 100644
index 000000000..6d3a51e78
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/scheduled_promoted_tweets.json
@@ -0,0 +1,57 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "scheduled_tweet_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tweet_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/tailored_audiences.json b/_data/taps/schemas/twitter-ads/v1/json/tailored_audiences.json
new file mode 100644
index 000000000..d1e7c911a
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/tailored_audiences.json
@@ -0,0 +1,107 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "audience_size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "audience_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_owner": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "partner_source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "permission_level": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reasons_not_targetable": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "targetable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "targetable_types": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/targeting_app_store_categories.json b/_data/taps/schemas/twitter-ads/v1/json/targeting_app_store_categories.json
new file mode 100644
index 000000000..c69399440
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/targeting_app_store_categories.json
@@ -0,0 +1,33 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "os_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targeting_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/targeting_conversations.json b/_data/taps/schemas/twitter-ads/v1/json/targeting_conversations.json
new file mode 100644
index 000000000..3c40d571b
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/targeting_conversations.json
@@ -0,0 +1,33 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "conversation_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targeting_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/targeting_criteria.json b/_data/taps/schemas/twitter-ads/v1/json/targeting_criteria.json
new file mode 100644
index 000000000..631c1add3
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/targeting_criteria.json
@@ -0,0 +1,81 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operator_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tailored_audience_expansion": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tailored_audience_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targeting_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/targeting_devices.json b/_data/taps/schemas/twitter-ads/v1/json/targeting_devices.json
new file mode 100644
index 000000000..68b0230c1
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/targeting_devices.json
@@ -0,0 +1,39 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "manufacturer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "os_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targeting_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/targeting_events.json b/_data/taps/schemas/twitter-ads/v1/json/targeting_events.json
new file mode 100644
index 000000000..bb09445b3
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/targeting_events.json
@@ -0,0 +1,184 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "country_breakdown_percentage": {
+ "additionalProperties": true,
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "device_breakdown_percentage": {
+ "additionalProperties": false,
+ "properties": {
+ "ANDROID": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "DESKTOP": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "IOS": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "OTHER_MOBILE": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "end_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "event_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gender_breakdown_percentage": {
+ "additionalProperties": false,
+ "properties": {
+ "female": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "male": {
+ "multipleOf": 1e-08,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "is_global": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reach": {
+ "additionalProperties": false,
+ "properties": {
+ "total_impressions": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_number_of_tweets": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total_reach": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "targeting_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "top_hashtags": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "top_tweets": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "top_users": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/targeting_interests.json b/_data/taps/schemas/twitter-ads/v1/json/targeting_interests.json
new file mode 100644
index 000000000..0f20d331b
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/targeting_interests.json
@@ -0,0 +1,27 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targeting_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/targeting_languages.json b/_data/taps/schemas/twitter-ads/v1/json/targeting_languages.json
new file mode 100644
index 000000000..0f20d331b
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/targeting_languages.json
@@ -0,0 +1,27 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targeting_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/targeting_locations.json b/_data/taps/schemas/twitter-ads/v1/json/targeting_locations.json
new file mode 100644
index 000000000..0b9d14967
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/targeting_locations.json
@@ -0,0 +1,39 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targeting_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/targeting_network_operators.json b/_data/taps/schemas/twitter-ads/v1/json/targeting_network_operators.json
new file mode 100644
index 000000000..1eeb42db7
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/targeting_network_operators.json
@@ -0,0 +1,33 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targeting_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/targeting_platform_versions.json b/_data/taps/schemas/twitter-ads/v1/json/targeting_platform_versions.json
new file mode 100644
index 000000000..ea9e7fb39
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/targeting_platform_versions.json
@@ -0,0 +1,39 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "os_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targeting_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/targeting_platforms.json b/_data/taps/schemas/twitter-ads/v1/json/targeting_platforms.json
new file mode 100644
index 000000000..0f20d331b
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/targeting_platforms.json
@@ -0,0 +1,27 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targeting_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targeting_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/targeting_tv_markets.json b/_data/taps/schemas/twitter-ads/v1/json/targeting_tv_markets.json
new file mode 100644
index 000000000..c3215548b
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/targeting_tv_markets.json
@@ -0,0 +1,27 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/targeting_tv_shows.json b/_data/taps/schemas/twitter-ads/v1/json/targeting_tv_shows.json
new file mode 100644
index 000000000..ebfc10ac5
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/targeting_tv_shows.json
@@ -0,0 +1,58 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "genre": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locales": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "targeting_value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/tracking_tags.json b/_data/taps/schemas/twitter-ads/v1/json/tracking_tags.json
new file mode 100644
index 000000000..beb1c268e
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/tracking_tags.json
@@ -0,0 +1,51 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_item_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_tag_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_tag_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/json/tweets.json b/_data/taps/schemas/twitter-ads/v1/json/tweets.json
new file mode 100644
index 000000000..19094afef
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/json/tweets.json
@@ -0,0 +1,1409 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "account_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "coordinates": {
+ "additionalProperties": false,
+ "properties": {
+ "coordinates": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "items": {
+ "multipleOf": 1e-10,
+ "type": "number"
+ },
+ "type": "array"
+ }
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "entities": {
+ "additionalProperties": false,
+ "properties": {
+ "hashtags": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "indices": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "media": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "display_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expanded_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "indices": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "media_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "media_url_https": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sizes": {
+ "additionalProperties": false,
+ "properties": {
+ "large": {
+ "additionalProperties": false,
+ "properties": {
+ "h": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "resize": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "w": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "medium": {
+ "additionalProperties": false,
+ "properties": {
+ "h": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "resize": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "w": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "small": {
+ "additionalProperties": false,
+ "properties": {
+ "h": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "resize": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "w": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "thumb": {
+ "additionalProperties": false,
+ "properties": {
+ "h": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "resize": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "w": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "polls": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "duration_minutes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "end_datetime": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "options": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "symbols": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "indices": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "urls": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "display_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expanded_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "indices": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "user_mentions": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "indices": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "screen_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "extended_entities": {
+ "additionalProperties": false,
+ "properties": {
+ "media": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "additional_media_info": {
+ "additionalProperties": false,
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "embeddable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "monetizable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "display_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expanded_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "indices": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "media_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "media_url_https": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sizes": {
+ "additionalProperties": false,
+ "properties": {
+ "large": {
+ "additionalProperties": false,
+ "properties": {
+ "h": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "resize": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "w": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "medium": {
+ "additionalProperties": false,
+ "properties": {
+ "h": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "resize": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "w": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "small": {
+ "additionalProperties": false,
+ "properties": {
+ "h": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "resize": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "w": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "thumb": {
+ "additionalProperties": false,
+ "properties": {
+ "h": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "resize": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "w": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "video_info": {
+ "additionalProperties": false,
+ "properties": {
+ "aspect_ratio": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "duration_millis": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "variants": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "bitrate": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "content_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "favorite_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "favorited": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "filter_level": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "in_reply_to_screen_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "in_reply_to_status_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "in_reply_to_status_id_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "in_reply_to_user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "in_reply_to_user_id_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_quote_status": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "lang": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "matching_rules": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "place": {
+ "additionalProperties": false,
+ "properties": {
+ "attributes": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "bounding_box": {
+ "additionalProperties": false,
+ "properties": {
+ "coordinates": {
+ "anyOf": [
+ {
+ "items": {
+ "anyOf": [
+ {
+ "items": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "items": {
+ "multipleOf": 1e-10,
+ "type": "number"
+ },
+ "type": "array"
+ }
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "place_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "possibly_sensitive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "quote_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quote_status_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "quote_status_id_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quoted_status": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "reply_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "retweet_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "retweeted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "retweeted_status": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "truncated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tweet_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "default_profile": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "default_profile_image": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "derived": {
+ "additionalProperties": false,
+ "properties": {
+ "locations": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "geo": {
+ "additionalProperties": false,
+ "properties": {
+ "coordinates": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "items": {
+ "multipleOf": 1e-10,
+ "type": "number"
+ },
+ "type": "array"
+ }
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "locality": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sub_region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "entities": {
+ "additionalProperties": false,
+ "properties": {
+ "description": {
+ "additionalProperties": false,
+ "properties": {
+ "urls": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": true,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "url": {
+ "additionalProperties": false,
+ "properties": {
+ "urls": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "display_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "expanded_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "indices": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "favourites_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "followers_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "friends_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id_str": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "listed_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "location": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "profile_banner_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "profile_image_url_https": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "protected": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "screen_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "statuses_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "verified": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "withheld_in_countries": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "withheld_scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/twitter-ads/v1/twitter-ads-v1-foreign-keys.yml b/_data/taps/schemas/twitter-ads/v1/twitter-ads-v1-foreign-keys.yml
new file mode 100644
index 000000000..4a8e9b0f0
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/twitter-ads-v1-foreign-keys.yml
@@ -0,0 +1,1448 @@
+tap: twitter-ads
+version: '1'
+keys:
+ accounts_account_id:
+ - table: account_media
+ keys:
+ - account_id
+ - table: accounts
+ keys:
+ - id
+ - table: campaigns
+ keys:
+ - account_id
+ - table: cards_image_conversation
+ keys:
+ - account_id
+ - table: cards_poll
+ keys:
+ - account_id
+ - table: cards_video_conversation
+ keys:
+ - account_id
+ - table: funding_instruments
+ keys:
+ - account_id
+ - table: line_item_apps
+ keys:
+ - account_id
+ - table: line_items
+ keys:
+ - account_id
+ - table: media_creatives
+ keys:
+ - account_id
+ - table: preroll_call_to_actions
+ keys:
+ - account_id
+ - table: promoted_accounts
+ keys:
+ - account_id
+ - table: promoted_tweets
+ keys:
+ - account_id
+ - table: scheduled_promoted_tweets
+ keys:
+ - account_id
+ - table: tailored_audiences
+ keys:
+ - account_id
+ - table: targeting_criteria
+ keys:
+ - account_id
+ - table: tweets
+ keys:
+ - account_id
+ account_media_account_media_id:
+ - table: media_creatives
+ keys:
+ - account_media_id
+ - table: account_media
+ keys:
+ - id
+ line_items_line_item_id:
+ - table: line_item_apps
+ keys:
+ - line_item_id
+ - table: media_creatives
+ keys:
+ - line_item_id
+ - table: preroll_call_to_actions
+ keys:
+ - line_item_id
+ - table: promoted_accounts
+ keys:
+ - line_item_id
+ - table: promoted_tweets
+ keys:
+ - line_item_id
+ - table: scheduled_promoted_tweets
+ keys:
+ - line_item_id
+ - table: targeting_criteria
+ keys:
+ - line_item_id
+ campaigns_campaign_id:
+ - table: campaigns
+ keys:
+ - id
+ - table: line_items
+ keys:
+ - campaign_id
+ funding_instruments_funding_instrument_id:
+ - table: account_media
+ keys:
+ - funding_instrument_id
+ - table: campaigns
+ keys:
+ - funding_instrument_id
+ - table: funding_instruments
+ keys:
+ - id
+ iab_categories_value:
+ - table: advertiser_business_categories
+ keys:
+ - iab_categories
+ - table: content_categories
+ keys:
+ - iab_categories
+ - table: iab_categories
+ keys:
+ - id
+ line_item_apps_line_item_app_id:
+ - table: line_item_apps
+ keys:
+ - line_item_app_id
+ tweets_tweet_id:
+ - table: promoted_tweets
+ keys:
+ - tweet_id
+ - table: scheduled_promoted_tweets
+ keys:
+ - tweet_id
+ - table: tweets
+ keys:
+ - id
+ _user_id:
+ - table: promotable_users
+ keys:
+ - user_id
+ - table: promoted_accounts
+ keys:
+ - user_id
+ - table: tweets
+ keys:
+ - entities.user_mentions.id
+ - in_reply_to_user_id
+ - user.id
+ _video_owner_id:
+ - table: cards_video_conversation
+ keys:
+ - video_owner_id
+tables:
+- table-name: account_media
+ join:
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: funding_instrument_id
+ foreign-key: funding_instrument_id
+ - table-name: cards_image_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_poll
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_video_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: funding_instruments
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: funding_instrument_id
+ foreign-key: id
+ - table-name: line_item_apps
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: line_items
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: media_creatives
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: id
+ foreign-key: account_media_id
+ - table-name: preroll_call_to_actions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: promoted_accounts
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: scheduled_promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: tailored_audiences
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: targeting_criteria
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+- table-name: accounts
+ join:
+ - table-name: account_media
+ keys:
+ - key: id
+ foreign-key: account_id
+ - table-name: campaigns
+ keys:
+ - key: id
+ foreign-key: account_id
+ - table-name: cards_image_conversation
+ keys:
+ - key: id
+ foreign-key: account_id
+ - table-name: cards_poll
+ keys:
+ - key: id
+ foreign-key: account_id
+ - table-name: cards_video_conversation
+ keys:
+ - key: id
+ foreign-key: account_id
+ - table-name: funding_instruments
+ keys:
+ - key: id
+ foreign-key: account_id
+ - table-name: line_item_apps
+ keys:
+ - key: id
+ foreign-key: account_id
+ - table-name: line_items
+ keys:
+ - key: id
+ foreign-key: account_id
+ - table-name: media_creatives
+ keys:
+ - key: id
+ foreign-key: account_id
+ - table-name: preroll_call_to_actions
+ keys:
+ - key: id
+ foreign-key: account_id
+ - table-name: promoted_accounts
+ keys:
+ - key: id
+ foreign-key: account_id
+ - table-name: promoted_tweets
+ keys:
+ - key: id
+ foreign-key: account_id
+ - table-name: scheduled_promoted_tweets
+ keys:
+ - key: id
+ foreign-key: account_id
+ - table-name: tailored_audiences
+ keys:
+ - key: id
+ foreign-key: account_id
+ - table-name: targeting_criteria
+ keys:
+ - key: id
+ foreign-key: account_id
+ - table-name: tweets
+ keys:
+ - key: id
+ foreign-key: account_id
+- table-name: campaigns
+ join:
+ - table-name: account_media
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: funding_instrument_id
+ foreign-key: funding_instrument_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: id
+ - table-name: cards_image_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_poll
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_video_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: funding_instruments
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: funding_instrument_id
+ foreign-key: id
+ - table-name: line_item_apps
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: line_items
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: id
+ foreign-key: campaign_id
+ - table-name: media_creatives
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: preroll_call_to_actions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: promoted_accounts
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: scheduled_promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: tailored_audiences
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: targeting_criteria
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+- table-name: cards_image_conversation
+ join:
+ - table-name: account_media
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_poll
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_video_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: funding_instruments
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: line_item_apps
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: line_items
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: media_creatives
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: preroll_call_to_actions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: promoted_accounts
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: scheduled_promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: tailored_audiences
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: targeting_criteria
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+- table-name: cards_poll
+ join:
+ - table-name: account_media
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_image_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_video_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: funding_instruments
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: line_item_apps
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: line_items
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: media_creatives
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: preroll_call_to_actions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: promoted_accounts
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: scheduled_promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: tailored_audiences
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: targeting_criteria
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+- table-name: cards_video_conversation
+ join:
+ - table-name: account_media
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_image_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_poll
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: funding_instruments
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: line_item_apps
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: line_items
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: media_creatives
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: preroll_call_to_actions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: promoted_accounts
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: scheduled_promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: tailored_audiences
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: targeting_criteria
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+- table-name: funding_instruments
+ join:
+ - table-name: account_media
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: id
+ foreign-key: funding_instrument_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: id
+ foreign-key: funding_instrument_id
+ - table-name: cards_image_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_poll
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_video_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: line_item_apps
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: line_items
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: media_creatives
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: preroll_call_to_actions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: promoted_accounts
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: scheduled_promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: tailored_audiences
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: targeting_criteria
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+- table-name: line_item_apps
+ join:
+ - table-name: account_media
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_image_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_poll
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_video_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: funding_instruments
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: line_items
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: media_creatives
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: preroll_call_to_actions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: promoted_accounts
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: scheduled_promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: tailored_audiences
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: targeting_criteria
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+- table-name: line_items
+ join:
+ - table-name: account_media
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: campaign_id
+ foreign-key: id
+ - table-name: cards_image_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_poll
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_video_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: funding_instruments
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: line_item_apps
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: media_creatives
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: preroll_call_to_actions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: promoted_accounts
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: scheduled_promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: tailored_audiences
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: targeting_criteria
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+- table-name: media_creatives
+ join:
+ - table-name: account_media
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: account_media_id
+ foreign-key: id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_image_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_poll
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_video_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: funding_instruments
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: line_item_apps
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: line_items
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: preroll_call_to_actions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: promoted_accounts
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: scheduled_promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: tailored_audiences
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: targeting_criteria
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+- table-name: preroll_call_to_actions
+ join:
+ - table-name: account_media
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_image_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_poll
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_video_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: funding_instruments
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: line_item_apps
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: line_items
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: media_creatives
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: promoted_accounts
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: scheduled_promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: tailored_audiences
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: targeting_criteria
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+- table-name: promoted_accounts
+ join:
+ - table-name: account_media
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_image_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_poll
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_video_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: funding_instruments
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: line_item_apps
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: line_items
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: media_creatives
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: preroll_call_to_actions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: scheduled_promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: tailored_audiences
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: targeting_criteria
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: user_id
+ foreign-key: entities.user_mentions.id
+ - key: user_id
+ foreign-key: in_reply_to_user_id
+ - key: user_id
+ foreign-key: user.id
+ - table-name: promotable_users
+ keys:
+ - key: user_id
+ foreign-key: user_id
+- table-name: promoted_tweets
+ join:
+ - table-name: account_media
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_image_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_poll
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_video_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: funding_instruments
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: line_item_apps
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: line_items
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: media_creatives
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: preroll_call_to_actions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: promoted_accounts
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: scheduled_promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - key: tweet_id
+ foreign-key: tweet_id
+ - table-name: tailored_audiences
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: targeting_criteria
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: tweet_id
+ foreign-key: id
+- table-name: scheduled_promoted_tweets
+ join:
+ - table-name: account_media
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_image_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_poll
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_video_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: funding_instruments
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: line_item_apps
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: line_items
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: media_creatives
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: preroll_call_to_actions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: promoted_accounts
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - key: tweet_id
+ foreign-key: tweet_id
+ - table-name: tailored_audiences
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: targeting_criteria
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: tweet_id
+ foreign-key: id
+- table-name: tailored_audiences
+ join:
+ - table-name: account_media
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_image_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_poll
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_video_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: funding_instruments
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: line_item_apps
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: line_items
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: media_creatives
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: preroll_call_to_actions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: promoted_accounts
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: scheduled_promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: targeting_criteria
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+- table-name: targeting_criteria
+ join:
+ - table-name: account_media
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_image_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_poll
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_video_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: funding_instruments
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: line_item_apps
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: line_items
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: media_creatives
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: preroll_call_to_actions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: promoted_accounts
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: scheduled_promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: line_item_id
+ foreign-key: line_item_id
+ - table-name: tailored_audiences
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+- table-name: tweets
+ join:
+ - table-name: account_media
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: accounts
+ keys:
+ - key: account_id
+ foreign-key: id
+ - table-name: campaigns
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_image_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_poll
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: cards_video_conversation
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: funding_instruments
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: line_item_apps
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: line_items
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: media_creatives
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: preroll_call_to_actions
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: promoted_accounts
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: entities.user_mentions.id
+ foreign-key: user_id
+ - key: in_reply_to_user_id
+ foreign-key: user_id
+ - key: user.id
+ foreign-key: user_id
+ - table-name: promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: id
+ foreign-key: tweet_id
+ - table-name: scheduled_promoted_tweets
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - key: id
+ foreign-key: tweet_id
+ - table-name: tailored_audiences
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: targeting_criteria
+ keys:
+ - key: account_id
+ foreign-key: account_id
+ - table-name: promotable_users
+ keys:
+ - key: entities.user_mentions.id
+ foreign-key: user_id
+ - key: in_reply_to_user_id
+ foreign-key: user_id
+ - key: user.id
+ foreign-key: user_id
+- table-name: advertiser_business_categories
+ join:
+ - table-name: content_categories
+ keys:
+ - key: iab_categories
+ foreign-key: iab_categories
+ - table-name: iab_categories
+ keys:
+ - key: iab_categories
+ foreign-key: id
+- table-name: content_categories
+ join:
+ - table-name: advertiser_business_categories
+ keys:
+ - key: iab_categories
+ foreign-key: iab_categories
+ - table-name: iab_categories
+ keys:
+ - key: iab_categories
+ foreign-key: id
+- table-name: iab_categories
+ join:
+ - table-name: advertiser_business_categories
+ keys:
+ - key: id
+ foreign-key: iab_categories
+ - table-name: content_categories
+ keys:
+ - key: id
+ foreign-key: iab_categories
+- table-name: promotable_users
+ join:
+ - table-name: promoted_accounts
+ keys:
+ - key: user_id
+ foreign-key: user_id
+ - table-name: tweets
+ keys:
+ - key: user_id
+ foreign-key: entities.user_mentions.id
+ - key: user_id
+ foreign-key: in_reply_to_user_id
+ - key: user_id
+ foreign-key: user.id
diff --git a/_data/taps/schemas/twitter-ads/v1/twitter-ads-v1-tables.yml b/_data/taps/schemas/twitter-ads/v1/twitter-ads-v1-tables.yml
new file mode 100644
index 000000000..24f293157
--- /dev/null
+++ b/_data/taps/schemas/twitter-ads/v1/twitter-ads-v1-tables.yml
@@ -0,0 +1,436 @@
+tap: twitter-ads
+version: '1'
+tables:
+- name: accounts
+ description: 'The `{{ table.name }}` table contains info about the advertising-enabled
+ accounts the user authenticating the integration has access to.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/accounts.json
+ api-method: https://developer.twitter.com/en/docs/ads/campaign-management/api-reference/accounts#accounts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: account_media
+ description: 'The `{{ table.name }}` table contains info about the account media
+ associated with an account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/account_media.json
+ api-method: https://developer.twitter.com/en/docs/ads/creatives/api-reference/account-media#account-media
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: advertiser_business_categories
+ description: 'The `{{ table.name }}` table contains info about the advertiser business
+ categories associated with an advertiser''s ad groups.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/advertiser_business_categories.json
+ api-method: https://developer.twitter.com/en/docs/ads/campaign-management/api-reference/advertiser-business-categories#advertiser-business-categories
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: campaigns
+ description: 'The `{{ table.name }}` table contains info about the campaigns associated
+ with an account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/campaigns.json
+ api-method: https://developer.twitter.com/en/docs/ads/campaign-management/api-reference/campaigns#campaigns
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: cards_image_conversation
+ description: 'The `{{ table.name }}` table contains info about image conversation
+ cards associated with an account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/cards_image_conversation.json
+ api-method: https://developer.twitter.com/en/docs/ads/creatives/api-reference/image-conversation#image-conversation-cards
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: cards_poll
+ description: 'The `{{ table.name }}` table contains info about poll cards associated
+ with an account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/cards_poll.json
+ api-method: https://developer.twitter.com/en/docs/ads/creatives/api-reference/poll#poll-cards
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: cards_video_conversation
+ description: 'The `{{ table.name }}` table contains info about the video conversation
+ cards associated with an account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/cards_video_conversation.json
+ api-method: https://developer.twitter.com/en/docs/ads/creatives/api-reference/video-conversation#video-conversation-cards
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: content_categories
+ description: 'The `{{ table.name }}` table contains info about the content categories
+ used as targeting criteria for ad groups.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/content_categories.json
+ api-method: https://developer.twitter.com/en/docs/ads/campaign-management/api-reference/content-categories#content-categories
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: EXAMPLE_CUSTOM_REPORT
+ description: '{% assign reference = integration.other-sections | where:"anchor","reference"
+ | first %}
+
+ {% assign custom-report-options = reference.custom-report-options %}
+
+
+ This is an example of a table created from a custom report configured in the integration''s
+ settings page.
+
+
+ Metric columns in report tables depend on the [entity selected for the report](#custom-report-configuration-options--compatibility).
+
+
+ When data is extracted for reports, Stitch uses the [Attribution Window](#add-stitch-data-source)
+ defined in the integration''s settings.
+
+ '
+ links:
+ doc-link: active_entities
+ table-details:
+ replication-method: Key-based Incremental
+ loading-behavior: Append-Only
+ primary-key: '{{ system-column.dimension-hash-key }}'
+ replication-key: end_time
+ report: true
+- name: funding_instruments
+ description: 'The `{{ table.name }}` table contains info about the funding instruments
+ associated with an account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/funding_instruments.json
+ api-method: https://developer.twitter.com/en/docs/ads/campaign-management/api-reference/funding-instruments#funding-instruments
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: iab_categories
+ description: 'The `{{ table.name }}` table contains info about the app categories
+ associated with ad groups.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/iab_categories.json
+ api-method: https://developer.twitter.com/en/docs/ads/campaign-management/api-reference/iab-categories#iab-categories
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: line_items
+ description: 'The `{{ table.name }}` table contains info about the line items (ad
+ groups) associated with an account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/line_items.json
+ api-method: https://developer.twitter.com/en/docs/ads/campaign-management/api-reference/line-items#line-items
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: line_item_apps
+ description: 'The `{{ table.name }}` table contains info about the apps associated
+ with line items associated with an account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/line_item_apps.json
+ api-method: https://developer.twitter.com/en/docs/ads/campaign-management/api-reference/line-item-apps#line-item-apps
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: media_creatives
+ description: 'The `{{ table.name }}` table contains info about the media creatives
+ associated with an account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/media_creatives.json
+ api-method: https://developer.twitter.com/en/docs/ads/campaign-management/api-reference/media-creatives#media-creatives
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: preroll_call_to_actions
+ description: 'The `{{ table.name }}` table contains info about the preroll call-to-actions
+ associated with line items (ad groups) associated with an account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/preroll_call_to_actions.json
+ api-method: https://developer.twitter.com/en/docs/ads/creatives/api-reference/preroll-call-to-actions#preroll-call-to-actions
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: promotable_users
+ description: 'The `{{ table.name }}` table contains info about the promotable users
+ associated with an account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/promotable_users.json
+ api-method: https://developer.twitter.com/en/docs/ads/campaign-management/api-reference/promotable-users#promotable-users
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: promoted_accounts
+ description: 'The `{{ table.name }}` table contains info about the promoted accounts
+ associated with line items (ad groups) associated with an account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/promoted_accounts.json
+ api-method: https://developer.twitter.com/en/docs/ads/campaign-management/api-reference/promoted-accounts#promoted-accounts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: promoted_tweets
+ description: 'The `{{ table.name }}` table contains info about references to Tweets
+ associated with line items (ad groups) associated with an account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/promoted_tweets.json
+ api-method: https://developer.twitter.com/en/docs/ads/campaign-management/api-reference/promoted-tweets#promoted-tweets
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: scheduled_promoted_tweets
+ description: 'The `{{ table.name }}` table contains info about the scheduled promoted
+ Tweets associated with an account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/scheduled_promoted_tweets.json
+ api-method: https://developer.twitter.com/en/docs/ads/campaign-management/api-reference/scheduled-promoted-tweets#scheduled-promoted-tweets
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: tailored_audiences
+ description: 'The `{{ table.name }}` table contains info about the Tailored Audiences
+ associated with an account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/tailored_audiences.json
+ api-method: https://developer.twitter.com/en/docs/ads/audiences/api-reference/tailored-audiences#tailored-audiences
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: targeting_app_store_categories
+ description: 'The `{{ table.name }}` table contains info about the app store targeting
+ categories associated with promoted products.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/targeting_app_store_categories.json
+ api-method: https://developer.twitter.com/en/docs/ads/campaign-management/api-reference/targeting-options#get-targeting-criteria-conversations
+ table-details:
+ replication-method: Full Table
+ primary-key: targeting_value
+- name: targeting_conversations
+ description: 'The `{{ table.name }}` table contains info about the conversation-based
+ targeting criteria for Promoted Products.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/targeting_conversations.json
+ api-method: https://developer.twitter.com/en/docs/ads/campaign-management/api-reference/targeting-options#get-targeting-criteria-conversations
+ table-details:
+ replication-method: Full Table
+ primary-key: targeting_value
+- name: targeting_criteria
+ description: 'The `{{ table.name }}` table contains info about the targeting criteria
+ associated with an account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/targeting_criteria.json
+ api-method: https://developer.twitter.com/en/docs/ads/campaign-management/api-reference/targeting-criteria#targeting-criteria
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - id
+ - line_item_id
+- name: targeting_devices
+ description: 'The `{{ table.name }}` table contains info about the device-based
+ targeting criteria for Promoted Products.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/targeting_devices.json
+ api-method: https://developer.twitter.com/en/docs/ads/campaign-management/api-reference/targeting-options#get-targeting-criteria-devices
+ table-details:
+ replication-method: Full Table
+ primary-key: targeting_value
+- name: targeting_interests
+ description: 'The `{{ table.name }}` table contains info about the interest-based
+ targeting criteria for Promoted Products.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/targeting_interests.json
+ api-method: https://developer.twitter.com/en/docs/ads/campaign-management/api-reference/targeting-options#get-targeting-criteria-interests
+ table-details:
+ replication-method: Full Table
+ primary-key: targeting_value
+- name: targeting_languages
+ description: 'The `{{ table.name }}` table contains info about the language-based
+ targeting criteria for Promoted Products.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/targeting_languages.json
+ api-method: https://developer.twitter.com/en/docs/ads/campaign-management/api-reference/targeting-options#get-targeting-criteria-languages
+ table-details:
+ replication-method: Full Table
+ primary-key: targeting_value
+- name: targeting_locations
+ description: 'The `{{ table.name }}` table contains info about location-based targeting
+ criteria for Promoted Products. According to {{ integration.display_name }}''s
+ documentation, geo-targeting is available for Promoted Accounts and Tweets at
+ the country, state/region, city, and postal code levels.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/targeting_locations.json
+ api-method: https://developer.twitter.com/en/docs/ads/campaign-management/api-reference/targeting-options#get-targeting-criteria-locations
+ table-details:
+ replication-method: Full Table
+ primary-key: targeting_value
+- name: targeting_network_operators
+ description: 'The `{{ table.name }}` table contains info about network operator-based
+ targeting criteria for Promoted Products.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/targeting_network_operators.json
+ api-method: https://developer.twitter.com/en/docs/ads/campaign-management/api-reference/targeting-options#get-targeting-criteria-network-operators
+ table-details:
+ replication-method: Full Table
+ primary-key: targeting_value
+- name: targeting_platforms
+ description: 'The `{{ table.name }}` table contains info about platform-based targeting
+ criteria for Promoted Products.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/targeting_platforms.json
+ api-method: https://developer.twitter.com/en/docs/ads/campaign-management/api-reference/targeting-options#get-targeting-criteria-platforms
+ table-details:
+ replication-method: Full Table
+ primary-key: targeting_value
+- name: targeting_platform_versions
+ description: 'The `{{ table.name }}` table contains info about mobile OS-version
+ based targeting criteria for Promoted Products.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/targeting_platform_versions.json
+ api-method: https://developer.twitter.com/en/docs/ads/campaign-management/api-reference/targeting-options#get-targeting-criteria-platform-versions
+ table-details:
+ replication-method: Full Table
+ primary-key: targeting_value
+- name: targeting_tv_markets
+ description: 'The `{{ table.name }}` table contains info about TV markets where
+ TV shows can be targeted. Use the [`targeting_tv_shows`](#targeting_tv_shows)
+ table for info about individual TV shows.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/targeting_tv_markets.json
+ api-method: https://developer.twitter.com/en/docs/ads/campaign-management/api-reference/targeting-options#get-targeting-criteria-tv-markets
+ table-details:
+ replication-method: Full Table
+ primary-key: locale
+- name: targeting_tv_shows
+ description: 'The `{{ table.name }}` table contains info about TV-show based targeting
+ criteria for Promoted Products.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/targeting_tv_shows.json
+ api-method: https://developer.twitter.com/en/docs/ads/campaign-management/api-reference/targeting-options#get-targeting-criteria-tv-shows
+ table-details:
+ replication-method: Full Table
+ primary-key: targeting_value
+- name: tweets
+ description: 'The `{{ table.name }}` table contains info about the scheduled and
+ published Tweets associated with an account''s full promotable user. **Note**:
+ This table doesn''t include draft Tweets.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/tweets.json
+ api-method: https://developer.twitter.com/en/docs/ads/creatives/api-reference/tweets#get-accounts-account-id-scoped-timeline
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created_at
+- name: cards
+ description: The `{{ table.name }}` table contains info about cards associated with
+ your account.
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/cards.json
+ doc-link: https://developer.twitter.com/en/docs/twitter-ads-api/creatives/api-reference/cards
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: targeting_events
+ description: 'The `{{ table.name }}` table contains info about event-based targeting
+ criteria for Promoted Products.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/targeting_events.json
+ doc-link: https://developer.twitter.com/en/docs/twitter-ads-api/campaign-management/api-reference/targeting-options#get-targeting-criteria-events
+ table-details:
+ replication-method: Full Table
+ primary-key: targeting_value
+- name: tracking_tags
+ description: The `{{ table.name }}` table contains info about tracking tags associated
+ with your account.
+ links:
+ singer-schema: https://github.com/singer-io/tap-twitter-ads/blob/master/tap_twitter_ads/schemas/tracking_tags.json
+ doc-link: https://developer.twitter.com/en/docs/twitter-ads-api/campaign-management/api-reference/tracking-tags
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/typeform/v1/json/answers.json b/_data/taps/schemas/typeform/v1/json/answers.json
new file mode 100644
index 000000000..2600153dc
--- /dev/null
+++ b/_data/taps/schemas/typeform/v1/json/answers.json
@@ -0,0 +1,63 @@
+{
+ "additionalProperties": false,
+ "key_properties": [
+ "landing_id",
+ "question_id"
+ ],
+ "properties": {
+ "answer": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "data_type": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "landed_at": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "landing_id": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "question_id": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ref": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "selected": true,
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/typeform/v1/json/forms.json b/_data/taps/schemas/typeform/v1/json/forms.json
new file mode 100644
index 000000000..8b7cc171e
--- /dev/null
+++ b/_data/taps/schemas/typeform/v1/json/forms.json
@@ -0,0 +1,94 @@
+{
+ "properties": {
+ "_links": {
+ "properties": {
+ "display": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_updated_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "properties": {
+ "href": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "settings": {
+ "properties": {
+ "is_public": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_trial": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "theme": {
+ "properties": {
+ "href": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/typeform/v1/json/landings.json b/_data/taps/schemas/typeform/v1/json/landings.json
new file mode 100644
index 000000000..adf4a9e29
--- /dev/null
+++ b/_data/taps/schemas/typeform/v1/json/landings.json
@@ -0,0 +1,86 @@
+{
+ "additionalProperties": false,
+ "bookmark_properties": [
+ "submitted_at"
+ ],
+ "key_properties": [
+ "landing_id"
+ ],
+ "properties": {
+ "browser": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hidden": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "landed_at": {
+ "selected": true,
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "landing_id": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "network_id": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "platform": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referer": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "submitted_at": {
+ "selected": true,
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "token": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_agent": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "selected": true,
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/typeform/v1/json/questions.json b/_data/taps/schemas/typeform/v1/json/questions.json
new file mode 100644
index 000000000..6f69ae86e
--- /dev/null
+++ b/_data/taps/schemas/typeform/v1/json/questions.json
@@ -0,0 +1,42 @@
+{
+ "additionalProperties": false,
+ "key_properties": [
+ "form_id",
+ "question_id"
+ ],
+ "properties": {
+ "form_id": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "question_id": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ref": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "selected": true,
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "selected": true,
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/typeform/v1/typeform-v1-foreign-keys.yml b/_data/taps/schemas/typeform/v1/typeform-v1-foreign-keys.yml
new file mode 100644
index 000000000..359874d94
--- /dev/null
+++ b/_data/taps/schemas/typeform/v1/typeform-v1-foreign-keys.yml
@@ -0,0 +1,57 @@
+tap: typeform
+version: '1'
+keys:
+ forms_form_id:
+ - table: forms
+ keys:
+ - id
+ - table: questions
+ keys:
+ - form_id
+ landings_landing_id:
+ - table: answers
+ keys:
+ - landing_id
+ - table: landings
+ keys:
+ - landing_id
+ questions_question_id:
+ - table: answers
+ keys:
+ - question_id
+ - table: questions
+ keys:
+ - question_id
+tables:
+- table-name: forms
+ join:
+ - table-name: questions
+ keys:
+ - key: id
+ foreign-key: form_id
+- table-name: questions
+ join:
+ - table-name: forms
+ keys:
+ - key: form_id
+ foreign-key: id
+ - table-name: answers
+ keys:
+ - key: question_id
+ foreign-key: question_id
+- table-name: answers
+ join:
+ - table-name: landings
+ keys:
+ - key: landing_id
+ foreign-key: landing_id
+ - table-name: questions
+ keys:
+ - key: question_id
+ foreign-key: question_id
+- table-name: landings
+ join:
+ - table-name: answers
+ keys:
+ - key: landing_id
+ foreign-key: landing_id
diff --git a/_data/taps/schemas/typeform/v1/typeform-v1-tables.yml b/_data/taps/schemas/typeform/v1/typeform-v1-tables.yml
new file mode 100644
index 000000000..5a409cd39
--- /dev/null
+++ b/_data/taps/schemas/typeform/v1/typeform-v1-tables.yml
@@ -0,0 +1,59 @@
+tap: typeform
+version: '1'
+tables:
+- name: answers
+ description: 'The `{{ table.name }}` table contains info about the answers submitted
+ for the forms specified in the {{ app.page-names.int-settings }} page.
+
+ '
+ links:
+ doc-link: https://developer.typeform.com/responses/
+ singer-schema: https://github.com/singer-io/tap-typeform/blob/master/tap_typeform/schemas/answers.json
+ api-method: https://developer.typeform.com/responses/reference/retrieve-responses
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - landing_id
+ - question_id
+ replication-key: landing_id
+- name: forms
+ description: 'The `{{ table.name }}` table contains info about the forms (public
+ and private) that are accesible by the user who authorized the integration in
+ Stitch.
+
+ '
+ links:
+ doc-link: https://developer.typeform.com/responses/
+ singer-schema: https://github.com/singer-io/tap-typeform/blob/master/tap_typeform/schemas/forms.json
+ api-method: https://developer.typeform.com/create/reference/retrieve-forms/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_updated_at
+- name: landings
+ description: 'The `{{ table.name }}` table contains info about form landings. Depending
+ on the [**Incremental Range**]() setting defined in the {{ app.page-names.int-settings
+ }} page, data may be aggregated on a daily or hourly basis.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-typeform/blob/master/tap_typeform/schemas/landings.json
+ api-method: https://developer.typeform.com/responses/reference/retrieve-responses
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: landing_id
+ replication-key: submitted_at
+- name: questions
+ description: 'The `{{ table.name }}` table contains a list of question titles and
+ IDs that can be used to link to [`answers`](#answers).
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-typeform/blob/master/tap_typeform/schemas/questions.json
+ api-method: https://developer.typeform.com/create/reference/retrieve-form/
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - form_id
+ - question_id
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/typeform/v2/json/answers.json b/_data/taps/schemas/typeform/v2/json/answers.json
new file mode 100644
index 000000000..0f63e1809
--- /dev/null
+++ b/_data/taps/schemas/typeform/v2/json/answers.json
@@ -0,0 +1,57 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "_sdc_form_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "answer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "data_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "landing_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "question_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ref": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "submitted_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/typeform/v2/json/forms.json b/_data/taps/schemas/typeform/v2/json/forms.json
new file mode 100644
index 000000000..be91ad888
--- /dev/null
+++ b/_data/taps/schemas/typeform/v2/json/forms.json
@@ -0,0 +1,100 @@
+{
+ "properties": {
+ "_links": {
+ "properties": {
+ "display": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_updated_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "self": {
+ "properties": {
+ "href": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "settings": {
+ "properties": {
+ "is_public": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_trial": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "theme": {
+ "properties": {
+ "href": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/typeform/v2/json/questions.json b/_data/taps/schemas/typeform/v2/json/questions.json
new file mode 100644
index 000000000..46ecd83a5
--- /dev/null
+++ b/_data/taps/schemas/typeform/v2/json/questions.json
@@ -0,0 +1,441 @@
+{
+ "additionalProperties": false,
+ "key_properties": [
+ "form_id",
+ "question_id"
+ ],
+ "properties": {
+ "attachment": {
+ "properties": {
+ "href": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "properties": {
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "scale": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "field_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "form_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "layout": {
+ "properties": {
+ "attachment": {
+ "properties": {
+ "href": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "properties": {
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "scale": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "placement": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "options": {
+ "items": {
+ "properties": {
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "properties": {
+ "properties": {
+ "allow_multiple_selection": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_other_choice": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "alphabetical_order": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "button_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "choices": {
+ "items": {
+ "properties": {
+ "attachment": {
+ "properties": {
+ "href": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ref": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "default_country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fields": {
+ "items": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "hide_marks": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "labels": {
+ "properties": {
+ "center": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "left": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "right": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "price": {
+ "properties": {
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "randomize": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "separator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shape": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "question_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ref": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sub_questions": {
+ "items": {
+ "properties": {
+ "question_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ref": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "validations": {
+ "properties": {
+ "max_length": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "max_selection": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "max_value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "min_selection": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "min_value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/typeform/v2/json/submitted_landings.json b/_data/taps/schemas/typeform/v2/json/submitted_landings.json
new file mode 100644
index 000000000..da8435910
--- /dev/null
+++ b/_data/taps/schemas/typeform/v2/json/submitted_landings.json
@@ -0,0 +1,87 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "_sdc_form_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "browser": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "landed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "landing_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "network_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "platform": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "submitted_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_agent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/typeform/v2/json/unsubmitted_landings.json b/_data/taps/schemas/typeform/v2/json/unsubmitted_landings.json
new file mode 100644
index 000000000..05c5828d0
--- /dev/null
+++ b/_data/taps/schemas/typeform/v2/json/unsubmitted_landings.json
@@ -0,0 +1,69 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "_sdc_form_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "browser": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "landed_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "landing_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "network_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "platform": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "response_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_agent": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/typeform/v2/typeform-v2-foreign-keys.yml b/_data/taps/schemas/typeform/v2/typeform-v2-foreign-keys.yml
new file mode 100644
index 000000000..7cfa70e62
--- /dev/null
+++ b/_data/taps/schemas/typeform/v2/typeform-v2-foreign-keys.yml
@@ -0,0 +1,78 @@
+tap: typeform
+version: '2'
+keys:
+ forms_form_id:
+ - table: forms
+ keys:
+ - id
+ - table: questions
+ keys:
+ - form_id
+ submitted_landings_landing_id:
+ - table: answers
+ keys:
+ - landing_id
+ - table: submitted_landings
+ keys:
+ - landing_id
+ - table: unsubmitted_landings
+ keys:
+ - landing_id
+ questions_question_id:
+ - table: answers
+ keys:
+ - question_id
+ - table: questions
+ keys:
+ - question_id
+tables:
+- table-name: forms
+ join:
+ - table-name: questions
+ keys:
+ - key: id
+ foreign-key: form_id
+- table-name: questions
+ join:
+ - table-name: forms
+ keys:
+ - key: form_id
+ foreign-key: id
+ - table-name: answers
+ keys:
+ - key: question_id
+ foreign-key: question_id
+- table-name: answers
+ join:
+ - table-name: submitted_landings
+ keys:
+ - key: landing_id
+ foreign-key: landing_id
+ - table-name: unsubmitted_landings
+ keys:
+ - key: landing_id
+ foreign-key: landing_id
+ - table-name: questions
+ keys:
+ - key: question_id
+ foreign-key: question_id
+- table-name: submitted_landings
+ join:
+ - table-name: answers
+ keys:
+ - key: landing_id
+ foreign-key: landing_id
+ - table-name: unsubmitted_landings
+ keys:
+ - key: landing_id
+ foreign-key: landing_id
+- table-name: unsubmitted_landings
+ join:
+ - table-name: answers
+ keys:
+ - key: landing_id
+ foreign-key: landing_id
+ - table-name: submitted_landings
+ keys:
+ - key: landing_id
+ foreign-key: landing_id
diff --git a/_data/taps/schemas/typeform/v2/typeform-v2-tables.yml b/_data/taps/schemas/typeform/v2/typeform-v2-tables.yml
new file mode 100644
index 000000000..54dbec08d
--- /dev/null
+++ b/_data/taps/schemas/typeform/v2/typeform-v2-tables.yml
@@ -0,0 +1,78 @@
+tap: typeform
+version: '2'
+tables:
+- name: answers
+ description: "The `{{ table.name }}` table contains info about the answers submitted\
+ \ for the forms specified in the {{ app.page-names.int-settings }} page. \n**Note**:\
+ \ There is no replication key for this table, it uses the replication key `submitted_at`\
+ \ from its parent stream [`submitted_landings`](#submitted-landings).\n"
+ links:
+ doc-link: https://developer.typeform.com/responses/
+ singer-schema: https://github.com/singer-io/tap-typeform/blob/master/tap_typeform/schemas/answers.json
+ api-method: https://developer.typeform.com/responses/reference/retrieve-responses
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - landing_id
+ - question_id
+- name: forms
+ description: 'The `{{ table.name }}` table contains info about the forms (public
+ and private) that are accesible by the user who authorized the integration in
+ Stitch.
+
+ '
+ links:
+ doc-link: https://developer.typeform.com/responses/
+ singer-schema: https://github.com/singer-io/tap-typeform/blob/master/tap_typeform/schemas/forms.json
+ api-method: https://developer.typeform.com/create/reference/retrieve-forms/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: last_updated_at
+- name: questions
+ description: 'The `{{ table.name }}` table contains a list of question titles and
+ IDs that can be used to link to [`answers`](#answers).
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-typeform/blob/master/tap_typeform/schemas/questions.json
+ api-method: https://developer.typeform.com/create/reference/retrieve-form/
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - form_id
+ - question_id
+- name: submitted_landings
+ description: 'The `{{ table.name }}` table contains info about submitted form landings.
+
+
+ **Note**: Data related to a form landing can be retrieved twice, once in `unsubmitted_landings`
+ when it is unsubmitted and once in `submitted_landings` when it is submitted.
+ In this case, they will have different bookmarks.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-typeform/blob/master/tap_typeform/schemas/submitted_landings.json
+ api-method: https://developer.typeform.com/responses/reference/retrieve-responses
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: landing_id
+ replication-key: submitted_at
+- name: unsubmitted_landings
+ description: 'The `{{ table.name }}` table contains info about unsubmitted form
+ landings.
+
+
+ **Note**: Data related to a form landing can be retrieved twice, once in `unsubmitted_landings`
+ when it is unsubmitted and once in `submitted_landings` when it is submitted.
+ In this case, they will have different bookmarks.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-typeform/blob/master/tap_typeform/schemas/unsubmitted_landings.json
+ api-method: https://developer.typeform.com/responses/reference/retrieve-responses
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: landing_id
+ replication-key: landed_at
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/ujet/v1/json/agent_activity_logs.json b/_data/taps/schemas/ujet/v1/json/agent_activity_logs.json
new file mode 100644
index 000000000..113a9a2a8
--- /dev/null
+++ b/_data/taps/schemas/ujet/v1/json/agent_activity_logs.json
@@ -0,0 +1,132 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "activity": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "agent_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "call_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "chat_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ended_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "started_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "wfm_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "whodunnit": {
+ "additionalProperties": false,
+ "properties": {
+ "agent_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ujet/v1/json/agents.json b/_data/taps/schemas/ujet/v1/json/agents.json
new file mode 100644
index 000000000..2cf4e1b97
--- /dev/null
+++ b/_data/taps/schemas/ujet/v1/json/agents.json
@@ -0,0 +1,287 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "agent_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "call_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "channels": {
+ "anyOf": [
+ {
+ "items": {
+ "properties": {
+ "channel_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "menu": {
+ "properties": {
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "menu_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "output_msg": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "chat_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "crm_authenticated": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_login_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "middle_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "online": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "roles": {
+ "anyOf": [
+ {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "status": {
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "wfm_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "status_updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "teams": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "agents_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "wrap_up": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ujet/v1/json/calls.json b/_data/taps/schemas/ujet/v1/json/calls.json
new file mode 100644
index 000000000..b9c67e560
--- /dev/null
+++ b/_data/taps/schemas/ujet/v1/json/calls.json
@@ -0,0 +1,818 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "agent_info": {
+ "additionalProperties": false,
+ "properties": {
+ "agent_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "answer_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "call_duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "call_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "connected_at": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deflection": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deflection_details": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "call_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "deflection": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "from_menu_path": {
+ "additionalProperties": false,
+ "properties": {
+ "items_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "materialized_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "transfer_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "disconnected_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end_user": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "identifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "out_contact_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "ends_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "fail_details": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "fail_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "has_feedback": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "hold_duration": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lang": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "menu_path": {
+ "additionalProperties": false,
+ "properties": {
+ "items_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "materialized_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "offer_events": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "casting_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "group": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "offer_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "out_ticket_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "out_ticket_url": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "outbound_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "participants": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "call_duration": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "call_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "connected_at": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "end_user_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "ended_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "fail_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "hold_duration": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "photos": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "photo_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "queued_at": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "rating": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recording_url": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "scheduled_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "selected_menu": {
+ "properties": {
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "menu_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "output_msg": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "support_number": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transfers": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "answer_type_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "call_duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "connected_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deflection": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fail_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "from_agent": {
+ "additionalProperties": false,
+ "properties": {
+ "agent_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "from_menu_path": {
+ "additionalProperties": false,
+ "properties": {
+ "items_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "materialized_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "from_queue_priority_level": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to_agent": {
+ "additionalProperties": false,
+ "properties": {
+ "agent_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "to_menu_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to_queue_priority_level": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "wait_duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "verified": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "videos": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "voicemail_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "voip_provider": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "wait_duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ujet/v1/json/chats.json b/_data/taps/schemas/ujet/v1/json/chats.json
new file mode 100644
index 000000000..2775befa7
--- /dev/null
+++ b/_data/taps/schemas/ujet/v1/json/chats.json
@@ -0,0 +1,642 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "agent_info": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "average_response_time": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "chat_duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "chat_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "end_user": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "identifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "out_contact_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ends_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "fail_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_msg_sent_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "has_feedback": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "lang": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_msg_sent_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "longest_response_time": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "menu_path": {
+ "additionalProperties": false,
+ "properties": {
+ "items_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "materialized_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "message_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "offer_events": {
+ "anyOf": [
+ {
+ "items": {},
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "offer_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "out_ticket_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "out_ticket_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "participants": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "chat_duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "chat_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "connected_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "end_user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "fail_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "finished_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "photos": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "photo_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "rating": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "selected_menu": {
+ "additionalProperties": false,
+ "properties": {
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "menu_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "output_msg": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transcript": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "transfers": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "answer_type_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assigned_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "call_duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "connected_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deflection": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fail_reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "from_agent": {
+ "additionalProperties": false,
+ "properties": {
+ "agent_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "from_menu_path": {
+ "additionalProperties": false,
+ "properties": {
+ "items_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "materialized_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "from_queue_priority_level": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to_agent": {
+ "additionalProperties": false,
+ "properties": {
+ "agent_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "to_menu_path": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to_queue_priority_level": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "wait_duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "verified": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "videos": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "wait_duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ujet/v1/json/menu_tree.json b/_data/taps/schemas/ujet/v1/json/menu_tree.json
new file mode 100644
index 000000000..277fb1881
--- /dev/null
+++ b/_data/taps/schemas/ujet/v1/json/menu_tree.json
@@ -0,0 +1,45 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "agents_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ujet/v1/json/menus.json b/_data/taps/schemas/ujet/v1/json/menus.json
new file mode 100644
index 000000000..95d281912
--- /dev/null
+++ b/_data/taps/schemas/ujet/v1/json/menus.json
@@ -0,0 +1,281 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "agent_assignments": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "assignee": {
+ "additionalProperties": false,
+ "properties": {
+ "agent_number": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "channel_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lang": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "queue_level": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "hidden": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "menu_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "output_msg": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "team_assignments": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "channel_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "lang": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "queue_level": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "team": {
+ "additionalProperties": false,
+ "properties": {
+ "agents_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "assignees": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "agent_number": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ujet/v1/json/team_tree.json b/_data/taps/schemas/ujet/v1/json/team_tree.json
new file mode 100644
index 000000000..277fb1881
--- /dev/null
+++ b/_data/taps/schemas/ujet/v1/json/team_tree.json
@@ -0,0 +1,45 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "agents_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ujet/v1/json/teams.json b/_data/taps/schemas/ujet/v1/json/teams.json
new file mode 100644
index 000000000..5b4747b90
--- /dev/null
+++ b/_data/taps/schemas/ujet/v1/json/teams.json
@@ -0,0 +1,100 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "agents_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "assignees": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "agent_number": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "avatar_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "parent_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ujet/v1/json/user_statuses.json b/_data/taps/schemas/ujet/v1/json/user_statuses.json
new file mode 100644
index 000000000..3fab46a3e
--- /dev/null
+++ b/_data/taps/schemas/ujet/v1/json/user_statuses.json
@@ -0,0 +1,33 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "wfm_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/ujet/v1/ujet-v1-foreign-keys.yml b/_data/taps/schemas/ujet/v1/ujet-v1-foreign-keys.yml
new file mode 100644
index 000000000..230960b2f
--- /dev/null
+++ b/_data/taps/schemas/ujet/v1/ujet-v1-foreign-keys.yml
@@ -0,0 +1,262 @@
+tap: ujet
+version: '1'
+keys:
+ agents_agent_id:
+ - table: agents
+ keys:
+ - id
+ - table: agent_activity_logs
+ keys:
+ - agent_id
+ - table: calls
+ keys:
+ - agent_info.id
+ - transfers.from_agent.id
+ - transfers.to_agent.id
+ - table: chats
+ keys:
+ - transfers.from_agent.id
+ - transfers.to_agent.id
+ - table: menus
+ keys:
+ - agent_assignments.assignee.id
+ - team_assignments.team.assignees.id
+ calls_call_id:
+ - table: agent_activity_logs
+ keys:
+ - call_id
+ - table: calls
+ keys:
+ - id
+ - participants.call_id
+ chats_chat_id:
+ - table: agent_activity_logs
+ keys:
+ - chat_id
+ - table: chats
+ keys:
+ - id
+ - participants.chat_id
+ teams_team_id:
+ - table: agents
+ keys:
+ - teams.id
+ - table: menus
+ keys:
+ - team_assignments.team.id
+ - table: teams
+ keys:
+ - id
+tables:
+- table-name: agents
+ join:
+ - table-name: agent_activity_logs
+ keys:
+ - key: id
+ foreign-key: agent_id
+ - table-name: calls
+ keys:
+ - key: id
+ foreign-key: agent_info.id
+ - key: id
+ foreign-key: transfers.from_agent.id
+ - key: id
+ foreign-key: transfers.to_agent.id
+ - table-name: chats
+ keys:
+ - key: id
+ foreign-key: transfers.from_agent.id
+ - key: id
+ foreign-key: transfers.to_agent.id
+ - table-name: menus
+ keys:
+ - key: id
+ foreign-key: agent_assignments.assignee.id
+ - key: id
+ foreign-key: team_assignments.team.assignees.id
+ - key: teams.id
+ foreign-key: team_assignments.team.id
+ - table-name: teams
+ keys:
+ - key: teams.id
+ foreign-key: id
+- table-name: agent_activity_logs
+ join:
+ - table-name: agents
+ keys:
+ - key: agent_id
+ foreign-key: id
+ - table-name: calls
+ keys:
+ - key: agent_id
+ foreign-key: agent_info.id
+ - key: agent_id
+ foreign-key: transfers.from_agent.id
+ - key: agent_id
+ foreign-key: transfers.to_agent.id
+ - key: call_id
+ foreign-key: id
+ - key: call_id
+ foreign-key: participants.call_id
+ - table-name: chats
+ keys:
+ - key: agent_id
+ foreign-key: transfers.from_agent.id
+ - key: agent_id
+ foreign-key: transfers.to_agent.id
+ - key: chat_id
+ foreign-key: id
+ - key: chat_id
+ foreign-key: participants.chat_id
+ - table-name: menus
+ keys:
+ - key: agent_id
+ foreign-key: agent_assignments.assignee.id
+ - key: agent_id
+ foreign-key: team_assignments.team.assignees.id
+- table-name: calls
+ join:
+ - table-name: agents
+ keys:
+ - key: agent_info.id
+ foreign-key: id
+ - key: transfers.from_agent.id
+ foreign-key: id
+ - key: transfers.to_agent.id
+ foreign-key: id
+ - table-name: agent_activity_logs
+ keys:
+ - key: agent_info.id
+ foreign-key: agent_id
+ - key: transfers.from_agent.id
+ foreign-key: agent_id
+ - key: transfers.to_agent.id
+ foreign-key: agent_id
+ - key: id
+ foreign-key: call_id
+ - key: participants.call_id
+ foreign-key: call_id
+ - table-name: chats
+ keys:
+ - key: agent_info.id
+ foreign-key: transfers.from_agent.id
+ - key: transfers.from_agent.id
+ foreign-key: transfers.from_agent.id
+ - key: transfers.to_agent.id
+ foreign-key: transfers.from_agent.id
+ - key: agent_info.id
+ foreign-key: transfers.to_agent.id
+ - key: transfers.from_agent.id
+ foreign-key: transfers.to_agent.id
+ - key: transfers.to_agent.id
+ foreign-key: transfers.to_agent.id
+ - table-name: menus
+ keys:
+ - key: agent_info.id
+ foreign-key: agent_assignments.assignee.id
+ - key: transfers.from_agent.id
+ foreign-key: agent_assignments.assignee.id
+ - key: transfers.to_agent.id
+ foreign-key: agent_assignments.assignee.id
+ - key: agent_info.id
+ foreign-key: team_assignments.team.assignees.id
+ - key: transfers.from_agent.id
+ foreign-key: team_assignments.team.assignees.id
+ - key: transfers.to_agent.id
+ foreign-key: team_assignments.team.assignees.id
+- table-name: chats
+ join:
+ - table-name: agents
+ keys:
+ - key: transfers.from_agent.id
+ foreign-key: id
+ - key: transfers.to_agent.id
+ foreign-key: id
+ - table-name: agent_activity_logs
+ keys:
+ - key: transfers.from_agent.id
+ foreign-key: agent_id
+ - key: transfers.to_agent.id
+ foreign-key: agent_id
+ - key: id
+ foreign-key: chat_id
+ - key: participants.chat_id
+ foreign-key: chat_id
+ - table-name: calls
+ keys:
+ - key: transfers.from_agent.id
+ foreign-key: agent_info.id
+ - key: transfers.to_agent.id
+ foreign-key: agent_info.id
+ - key: transfers.from_agent.id
+ foreign-key: transfers.from_agent.id
+ - key: transfers.to_agent.id
+ foreign-key: transfers.from_agent.id
+ - key: transfers.from_agent.id
+ foreign-key: transfers.to_agent.id
+ - key: transfers.to_agent.id
+ foreign-key: transfers.to_agent.id
+ - table-name: menus
+ keys:
+ - key: transfers.from_agent.id
+ foreign-key: agent_assignments.assignee.id
+ - key: transfers.to_agent.id
+ foreign-key: agent_assignments.assignee.id
+ - key: transfers.from_agent.id
+ foreign-key: team_assignments.team.assignees.id
+ - key: transfers.to_agent.id
+ foreign-key: team_assignments.team.assignees.id
+- table-name: menus
+ join:
+ - table-name: agents
+ keys:
+ - key: agent_assignments.assignee.id
+ foreign-key: id
+ - key: team_assignments.team.assignees.id
+ foreign-key: id
+ - key: team_assignments.team.id
+ foreign-key: teams.id
+ - table-name: agent_activity_logs
+ keys:
+ - key: agent_assignments.assignee.id
+ foreign-key: agent_id
+ - key: team_assignments.team.assignees.id
+ foreign-key: agent_id
+ - table-name: calls
+ keys:
+ - key: agent_assignments.assignee.id
+ foreign-key: agent_info.id
+ - key: team_assignments.team.assignees.id
+ foreign-key: agent_info.id
+ - key: agent_assignments.assignee.id
+ foreign-key: transfers.from_agent.id
+ - key: team_assignments.team.assignees.id
+ foreign-key: transfers.from_agent.id
+ - key: agent_assignments.assignee.id
+ foreign-key: transfers.to_agent.id
+ - key: team_assignments.team.assignees.id
+ foreign-key: transfers.to_agent.id
+ - table-name: chats
+ keys:
+ - key: agent_assignments.assignee.id
+ foreign-key: transfers.from_agent.id
+ - key: team_assignments.team.assignees.id
+ foreign-key: transfers.from_agent.id
+ - key: agent_assignments.assignee.id
+ foreign-key: transfers.to_agent.id
+ - key: team_assignments.team.assignees.id
+ foreign-key: transfers.to_agent.id
+ - table-name: teams
+ keys:
+ - key: team_assignments.team.id
+ foreign-key: id
+- table-name: teams
+ join:
+ - table-name: agents
+ keys:
+ - key: id
+ foreign-key: teams.id
+ - table-name: menus
+ keys:
+ - key: id
+ foreign-key: team_assignments.team.id
diff --git a/_data/taps/schemas/ujet/v1/ujet-v1-tables.yml b/_data/taps/schemas/ujet/v1/ujet-v1-tables.yml
new file mode 100644
index 000000000..fa4003655
--- /dev/null
+++ b/_data/taps/schemas/ujet/v1/ujet-v1-tables.yml
@@ -0,0 +1,89 @@
+tap: ujet
+version: '1'
+tables:
+- name: agents
+ description: 'The `{{ table.name }}` table contains info about agents.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ujet/blob/master/tap_ujet/schemas/agents.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: status_updated_at
+- name: agent_activity_logs
+ description: 'The `{{ table.name }}` table contains info about agent activity logs.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ujet/blob/master/tap_ujet/schemas/agent_activity_logs.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: started_at
+- name: calls
+ description: 'The `{{ table.name }}` table contains info about calls.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ujet/blob/master/tap_ujet/schemas/calls.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: menus
+ description: 'The `{{ table.name }}` table contains info about menus.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ujet/blob/master/tap_ujet/schemas/menus.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: menu_tree
+ description: 'The `{{ table.name }}` table contains info about menu trees.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ujet/blob/master/tap_ujet/schemas/menu_tree.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: teams
+ description: 'The `{{ table.name }}` table contains info about teams.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ujet/blob/master/tap_ujet/schemas/teams.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: team_tree
+ description: 'The `{{ table.name }}` table contains info about team trees.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ujet/blob/master/tap_ujet/schemas/team_tree.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: user_statuses
+ description: 'The `{{ table.name }}` table contains info about user statuses.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ujet/blob/master/tap_ujet/schemas/user_statuses.json
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: chats
+ description: 'The `{{ table.name }}` table contains info about chats.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-ujet/blob/master/tap_ujet/schemas/chats.json
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/urban-airship/v1/json/channels.json b/_data/taps/schemas/urban-airship/v1/json/channels.json
new file mode 100644
index 000000000..ffbbdd0a3
--- /dev/null
+++ b/_data/taps/schemas/urban-airship/v1/json/channels.json
@@ -0,0 +1,221 @@
+{
+ "properties": {
+ "alias": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "background": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "channel_id": {
+ "type": "string"
+ },
+ "created": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "device_type": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "installed": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "ios": {
+ "properties": {
+ "badge": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "quiettime": {
+ "properties": {
+ "end": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "start": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "tz": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "last_registration": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ }
+ ]
+ },
+ "named_user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "opt_in": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "push_address": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tag_groups": {
+ "properties": {
+ "timezone": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ "ua_android_app_version": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ "ua_android_sdk_version": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ "ua_android_version": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ "ua_background_enabled": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ "ua_ios_app_version": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ "ua_ios_model": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ "ua_ios_sdk_version": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ "ua_ios_version": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ "ua_locale_country": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ "ua_locale_language": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ "ua_location_enabled": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": "array"
+ },
+ "ua_opt_in": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/urban-airship/v1/json/lists.json b/_data/taps/schemas/urban-airship/v1/json/lists.json
new file mode 100644
index 000000000..0be85747d
--- /dev/null
+++ b/_data/taps/schemas/urban-airship/v1/json/lists.json
@@ -0,0 +1,62 @@
+{
+ "properties": {
+ "channel_count": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "created": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "description": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "extra": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "items": {
+ "properties": {
+ "key": {
+ "type": "string"
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ ]
+ },
+ "last_modified": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "name": {
+ "type": "string"
+ },
+ "status": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/urban-airship/v1/json/named_users.json b/_data/taps/schemas/urban-airship/v1/json/named_users.json
new file mode 100644
index 000000000..fd7119537
--- /dev/null
+++ b/_data/taps/schemas/urban-airship/v1/json/named_users.json
@@ -0,0 +1,26 @@
+{
+ "properties": {
+ "channels": {
+ "items": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": "array"
+ },
+ "named_user_id": {
+ "type": "string"
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/urban-airship/v1/json/segments.json b/_data/taps/schemas/urban-airship/v1/json/segments.json
new file mode 100644
index 000000000..e611a9d61
--- /dev/null
+++ b/_data/taps/schemas/urban-airship/v1/json/segments.json
@@ -0,0 +1,26 @@
+{
+ "properties": {
+ "creation_date": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "id": {
+ "type": "string"
+ },
+ "modification_date": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/urban-airship/v1/urban-airship-v1-foreign-keys.yml b/_data/taps/schemas/urban-airship/v1/urban-airship-v1-foreign-keys.yml
new file mode 100644
index 000000000..de8832f48
--- /dev/null
+++ b/_data/taps/schemas/urban-airship/v1/urban-airship-v1-foreign-keys.yml
@@ -0,0 +1,42 @@
+tap: urban-airship
+version: '1'
+keys:
+ channels_channel_id:
+ - table: channels
+ keys:
+ - channel_id
+ - table: named_users
+ keys:
+ - channels
+ lists_name:
+ - table: lists
+ keys:
+ - name
+ named_users_named_user_id:
+ - table: channels
+ keys:
+ - named_user_id
+ - table: named_users
+ keys:
+ - named_user_id
+ segments_segment_id:
+ - table: segments
+ keys:
+ - id
+tables:
+- table-name: channels
+ join:
+ - table-name: named_users
+ keys:
+ - key: channel_id
+ foreign-key: channels
+ - key: named_user_id
+ foreign-key: named_user_id
+- table-name: named_users
+ join:
+ - table-name: channels
+ keys:
+ - key: channels
+ foreign-key: channel_id
+ - key: named_user_id
+ foreign-key: named_user_id
diff --git a/_data/taps/schemas/urban-airship/v1/urban-airship-v1-tables.yml b/_data/taps/schemas/urban-airship/v1/urban-airship-v1-tables.yml
new file mode 100644
index 000000000..515c6f82a
--- /dev/null
+++ b/_data/taps/schemas/urban-airship/v1/urban-airship-v1-tables.yml
@@ -0,0 +1,61 @@
+tap: urban-airship
+version: '1'
+tables:
+- name: channels
+ description: 'The `{{ table.name }}` table contains info about the channels - or
+ unique identifiers - used to address applications on iOS, Android, and Amazon
+ devices.
+
+ '
+ links:
+ doc-link: http://docs.urbanairship.com/api/ua.html#channels
+ singer-schema: https://github.com/singer-io/tap-urban-airship/blob/master/tap_urban_airship/schemas/channels.json
+ api-method: https://docs.urbanairship.com/api/ua/#channel-list-api
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: channel_id
+ replication-keys:
+ - created
+ - last_registration
+- name: lists
+ description: 'The `{{ integration.display_name }}` table contains info about device
+ lists.
+
+ '
+ links:
+ doc-link: http://docs.urbanairship.com/api/ua.html#static-lists
+ singer-schema: https://github.com/singer-io/tap-urban-airship/blob/master/tap_urban_airship/schemas/lists.json
+ api-method: https://docs.urbanairship.com/api/ua/#all-lists
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: name
+ replication-keys:
+ - created
+ - last_modified
+- name: named_users
+ description: 'The `named_users` table contains info about named users, or individual
+ consumers. These identifiers can be used to map CRM data to channels.
+
+ '
+ links:
+ doc-link: http://docs.urbanairship.com/api/ua.html#named-users
+ singer-schema: https://github.com/singer-io/tap-urban-airship/blob/master/tap_urban_airship/schemas/named_users.json
+ api-method: https://docs.urbanairship.com/api/ua/#api-named-users-listing
+ table-details:
+ replication-method: Full Table
+ primary-key: named_user_id
+- name: segments
+ description: 'The `{{ table.name }}` table contains info about segments, or portions
+ of your audience that have arbitrary metadata attached.
+
+ '
+ links:
+ doc-link: http://docs.urbanairship.com/api/ua.html#segments
+ api-method: https://docs.urbanairship.com/api/ua/#segment-listing
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-keys:
+ - creation_date
+ - modification_date
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/uservoice/v1/json/categories.json b/_data/taps/schemas/uservoice/v1/json/categories.json
new file mode 100644
index 000000000..e57f385c5
--- /dev/null
+++ b/_data/taps/schemas/uservoice/v1/json/categories.json
@@ -0,0 +1,46 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "links": {
+ "properties": {
+ "forum": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "open_suggestions_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "suggestions_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/uservoice/v1/json/comments.json b/_data/taps/schemas/uservoice/v1/json/comments.json
new file mode 100644
index 000000000..da0828a26
--- /dev/null
+++ b/_data/taps/schemas/uservoice/v1/json/comments.json
@@ -0,0 +1,66 @@
+{
+ "properties": {
+ "body": {
+ "type": [
+ "string"
+ ]
+ },
+ "body_mime_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "channel": {
+ "type": [
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "inappropriate_flags_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_admin_comment": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "links": {
+ "properties": {
+ "created_by": {
+ "type": [
+ "integer"
+ ]
+ },
+ "suggestion": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/uservoice/v1/json/external_accounts.json b/_data/taps/schemas/uservoice/v1/json/external_accounts.json
new file mode 100644
index 000000000..770c17100
--- /dev/null
+++ b/_data/taps/schemas/uservoice/v1/json/external_accounts.json
@@ -0,0 +1,79 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_blocker": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "ltv": {
+ "type": [
+ "number"
+ ]
+ },
+ "ltv_cents": {
+ "type": [
+ "integer"
+ ]
+ },
+ "mrr": {
+ "type": [
+ "number"
+ ]
+ },
+ "mrr_cents": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "nps": {
+ "type": [
+ "number"
+ ]
+ },
+ "plan": {
+ "type": [
+ "string"
+ ]
+ },
+ "requests_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "supported_ideas_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "users_count": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/uservoice/v1/json/external_users.json b/_data/taps/schemas/uservoice/v1/json/external_users.json
new file mode 100644
index 000000000..fbac729db
--- /dev/null
+++ b/_data/taps/schemas/uservoice/v1/json/external_users.json
@@ -0,0 +1,66 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ip": {
+ "type": [
+ "string"
+ ]
+ },
+ "links": {
+ "properties": {
+ "external_account": {
+ "type": [
+ "integer"
+ ]
+ },
+ "external_user": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "seen_days": {
+ "type": [
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/uservoice/v1/json/feature_statuses.json b/_data/taps/schemas/uservoice/v1/json/feature_statuses.json
new file mode 100644
index 000000000..ccfac54df
--- /dev/null
+++ b/_data/taps/schemas/uservoice/v1/json/feature_statuses.json
@@ -0,0 +1,56 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "hex_color": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_default": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "links": {
+ "properties": {
+ "created_by": {
+ "type": [
+ "integer"
+ ]
+ },
+ "updated_by": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "position": {
+ "type": [
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/uservoice/v1/json/features.json b/_data/taps/schemas/uservoice/v1/json/features.json
new file mode 100644
index 000000000..e3a3c68cc
--- /dev/null
+++ b/_data/taps/schemas/uservoice/v1/json/features.json
@@ -0,0 +1,81 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_blocker": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "links": {
+ "properties": {
+ "created_by": {
+ "type": [
+ "integer"
+ ]
+ },
+ "feature_status": {
+ "type": [
+ "integer"
+ ]
+ },
+ "product_area": {
+ "type": [
+ "integer"
+ ]
+ },
+ "updated_by": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "suggestions_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "supporter_mrr_cents": {
+ "type": [
+ "integer"
+ ]
+ },
+ "supporting_accounts_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "supporting_users_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/uservoice/v1/json/forums.json b/_data/taps/schemas/uservoice/v1/json/forums.json
new file mode 100644
index 000000000..e2305f020
--- /dev/null
+++ b/_data/taps/schemas/uservoice/v1/json/forums.json
@@ -0,0 +1,91 @@
+{
+ "properties": {
+ "category_required": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "classic_voting": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "example": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_private": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "is_public": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "links": {
+ "properties": {
+ "updated_by": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "open_suggestions_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "portal_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "prompt": {
+ "type": [
+ "string"
+ ]
+ },
+ "suggestions_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "welcome_message": {
+ "type": [
+ "string"
+ ]
+ },
+ "welcome_message_mime_type": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/uservoice/v1/json/labels.json b/_data/taps/schemas/uservoice/v1/json/labels.json
new file mode 100644
index 000000000..d4f1bbcb5
--- /dev/null
+++ b/_data/taps/schemas/uservoice/v1/json/labels.json
@@ -0,0 +1,51 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "full_name": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "level": {
+ "type": [
+ "integer"
+ ]
+ },
+ "links": {
+ "properties": {
+ "parent": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "open_suggestions_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/uservoice/v1/json/nps_ratings.json b/_data/taps/schemas/uservoice/v1/json/nps_ratings.json
new file mode 100644
index 000000000..748243b8f
--- /dev/null
+++ b/_data/taps/schemas/uservoice/v1/json/nps_ratings.json
@@ -0,0 +1,66 @@
+{
+ "properties": {
+ "body": {
+ "type": [
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "group": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "links": {
+ "properties": {
+ "ticket": {
+ "type": [
+ "integer"
+ ]
+ },
+ "user": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "previous_rating": {
+ "type": [
+ "integer"
+ ]
+ },
+ "prompt": {
+ "type": [
+ "string"
+ ]
+ },
+ "rating": {
+ "type": [
+ "integer"
+ ]
+ },
+ "rating_delta": {
+ "type": [
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/uservoice/v1/json/product_areas.json b/_data/taps/schemas/uservoice/v1/json/product_areas.json
new file mode 100644
index 000000000..67bca434d
--- /dev/null
+++ b/_data/taps/schemas/uservoice/v1/json/product_areas.json
@@ -0,0 +1,41 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "links": {
+ "properties": {
+ "created_by": {
+ "type": [
+ "integer"
+ ]
+ },
+ "updated_by": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/uservoice/v1/json/requests.json b/_data/taps/schemas/uservoice/v1/json/requests.json
new file mode 100644
index 000000000..15f6a8cc2
--- /dev/null
+++ b/_data/taps/schemas/uservoice/v1/json/requests.json
@@ -0,0 +1,96 @@
+{
+ "properties": {
+ "body": {
+ "type": [
+ "string"
+ ]
+ },
+ "body_mime_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "channel": {
+ "type": [
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "links": {
+ "properties": {
+ "created_by": {
+ "type": [
+ "integer"
+ ]
+ },
+ "sfdc_opportunity": {
+ "type": [
+ "integer"
+ ]
+ },
+ "suggestion": {
+ "type": [
+ "integer"
+ ]
+ },
+ "supporter": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ticket": {
+ "type": [
+ "integer"
+ ]
+ },
+ "updated_by": {
+ "type": [
+ "integer"
+ ]
+ },
+ "user": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "severity": {
+ "type": [
+ "integer"
+ ]
+ },
+ "source_guid": {
+ "type": [
+ "string"
+ ]
+ },
+ "source_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "source_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/uservoice/v1/json/segmented_values.json b/_data/taps/schemas/uservoice/v1/json/segmented_values.json
new file mode 100644
index 000000000..95c8e1fda
--- /dev/null
+++ b/_data/taps/schemas/uservoice/v1/json/segmented_values.json
@@ -0,0 +1,61 @@
+{
+ "properties": {
+ "column_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "key": {
+ "type": [
+ "string"
+ ]
+ },
+ "links": {
+ "properties": {
+ "created_by": {
+ "type": [
+ "integer"
+ ]
+ },
+ "segment": {
+ "type": [
+ "integer"
+ ]
+ },
+ "updated_by": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "object_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/uservoice/v1/json/segments.json b/_data/taps/schemas/uservoice/v1/json/segments.json
new file mode 100644
index 000000000..e81cdc745
--- /dev/null
+++ b/_data/taps/schemas/uservoice/v1/json/segments.json
@@ -0,0 +1,83 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "filters": {
+ "properties": {
+ "column": {
+ "type": [
+ "string"
+ ]
+ },
+ "expressions": {
+ "properties": {
+ "column": {
+ "type": [
+ "string"
+ ]
+ },
+ "operand": {
+ "type": [
+ "string"
+ ]
+ },
+ "operator": {
+ "type": [
+ "string"
+ ]
+ },
+ "unit": {
+ "type": [
+ ""
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "operand": {
+ "type": [
+ "string"
+ ]
+ },
+ "operator": {
+ "type": [
+ "string"
+ ]
+ },
+ "unit": {
+ "type": [
+ ""
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "key": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/uservoice/v1/json/status_updates.json b/_data/taps/schemas/uservoice/v1/json/status_updates.json
new file mode 100644
index 000000000..53bccf9ff
--- /dev/null
+++ b/_data/taps/schemas/uservoice/v1/json/status_updates.json
@@ -0,0 +1,76 @@
+{
+ "properties": {
+ "body": {
+ "type": [
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "links": {
+ "properties": {
+ "new_status": {
+ "type": [
+ "integer"
+ ]
+ },
+ "old_status": {
+ "type": [
+ "integer"
+ ]
+ },
+ "suggestion": {
+ "type": [
+ "integer"
+ ]
+ },
+ "user": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "mail_clicked_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "mail_opened_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "mail_sent_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "notification_email_address": {
+ "type": [
+ "string"
+ ]
+ },
+ "supporters_notified": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/uservoice/v1/json/statuses.json b/_data/taps/schemas/uservoice/v1/json/statuses.json
new file mode 100644
index 000000000..21750dd93
--- /dev/null
+++ b/_data/taps/schemas/uservoice/v1/json/statuses.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "allow_comments": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "hex_color": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_open": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "position": {
+ "type": [
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/uservoice/v1/json/suggestions.json b/_data/taps/schemas/uservoice/v1/json/suggestions.json
new file mode 100644
index 000000000..d6fc748fd
--- /dev/null
+++ b/_data/taps/schemas/uservoice/v1/json/suggestions.json
@@ -0,0 +1,238 @@
+{
+ "properties": {
+ "admin_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "approved_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "average_engagement": {
+ "type": [
+ "number"
+ ]
+ },
+ "body": {
+ "type": [
+ "string"
+ ]
+ },
+ "body_mime_type": {
+ "type": [
+ "string"
+ ]
+ },
+ "channel": {
+ "type": [
+ "string"
+ ]
+ },
+ "closed_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "comments_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "creator_browser": {
+ "type": [
+ "string"
+ ]
+ },
+ "creator_browser_version": {
+ "type": [
+ "string"
+ ]
+ },
+ "creator_mobile": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "creator_os": {
+ "type": [
+ "string"
+ ]
+ },
+ "creator_referrer": {
+ "type": [
+ "string"
+ ]
+ },
+ "creator_user_agent": {
+ "type": [
+ "string"
+ ]
+ },
+ "engagement_trend": {
+ "type": [
+ "number"
+ ]
+ },
+ "first_support_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "inappropriate_flags_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_blocker": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "links": {
+ "properties": {
+ "category": {
+ "type": [
+ "integer"
+ ]
+ },
+ "created_by": {
+ "type": [
+ "integer"
+ ]
+ },
+ "forum": {
+ "type": [
+ "integer"
+ ]
+ },
+ "labels": {
+ "properties": {
+ "value": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "last_status_update": {
+ "type": [
+ "integer"
+ ]
+ },
+ "parent_suggestion": {
+ "type": [
+ "integer"
+ ]
+ },
+ "parent_suggestions": {
+ "type": [
+ "array"
+ ]
+ },
+ "status": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ticket": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "notes_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "portal_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "recent_engagement": {
+ "type": [
+ "integer"
+ ]
+ },
+ "requests_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "satisfaction_detractor_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "satisfaction_neutral_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "satisfaction_promoter_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "supporter_mrr": {
+ "type": [
+ "number"
+ ]
+ },
+ "supporter_satisfaction_score": {
+ "type": [
+ "number"
+ ]
+ },
+ "supporters_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "supporting_accounts_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "title": {
+ "type": [
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "votes_count": {
+ "type": [
+ "integer"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/uservoice/v1/json/supporters.json b/_data/taps/schemas/uservoice/v1/json/supporters.json
new file mode 100644
index 000000000..54bdf835a
--- /dev/null
+++ b/_data/taps/schemas/uservoice/v1/json/supporters.json
@@ -0,0 +1,71 @@
+{
+ "properties": {
+ "channel": {
+ "type": [
+ "string"
+ ]
+ },
+ "comments_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "how": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_subscribed": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "links": {
+ "properties": {
+ "created_by": {
+ "type": [
+ "integer"
+ ]
+ },
+ "suggestion": {
+ "type": [
+ "integer"
+ ]
+ },
+ "updated_by": {
+ "type": [
+ "integer"
+ ]
+ },
+ "user": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "requests_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/uservoice/v1/json/teams.json b/_data/taps/schemas/uservoice/v1/json/teams.json
new file mode 100644
index 000000000..a950731a0
--- /dev/null
+++ b/_data/taps/schemas/uservoice/v1/json/teams.json
@@ -0,0 +1,19 @@
+{
+ "properties": {
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "members_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/uservoice/v1/json/users.json b/_data/taps/schemas/uservoice/v1/json/users.json
new file mode 100644
index 000000000..0f9c46824
--- /dev/null
+++ b/_data/taps/schemas/uservoice/v1/json/users.json
@@ -0,0 +1,150 @@
+{
+ "properties": {
+ "allowed_state": {
+ "type": [
+ "string"
+ ]
+ },
+ "avatar_url": {
+ "type": [
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "comment_notifications": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "email_address": {
+ "type": [
+ "string"
+ ]
+ },
+ "email_confirmed": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "guid": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_admin": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "is_owner": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "job_title": {
+ "type": [
+ "string"
+ ]
+ },
+ "last_ip": {
+ "type": [
+ "string"
+ ]
+ },
+ "links": {
+ "properties": {
+ "current_nps_rating": {
+ "type": [
+ "integer"
+ ]
+ },
+ "external_users": {
+ "properties": {
+ "value": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ },
+ "previous_nps_rating": {
+ "type": [
+ "integer"
+ ]
+ },
+ "teams": {
+ "properties": {
+ "value": {
+ "type": [
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "region": {
+ "type": [
+ "string"
+ ]
+ },
+ "satisfaction_score": {
+ "type": [
+ "integer"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "status_notifications": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "supported_suggestions_count": {
+ "type": [
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/uservoice/v1/uservoice-v1-foreign-keys.yml b/_data/taps/schemas/uservoice/v1/uservoice-v1-foreign-keys.yml
new file mode 100644
index 000000000..db394bb08
--- /dev/null
+++ b/_data/taps/schemas/uservoice/v1/uservoice-v1-foreign-keys.yml
@@ -0,0 +1,1338 @@
+tap: uservoice
+version: '1'
+keys:
+ categories_category:
+ - table: categories
+ keys:
+ - id
+ - table: suggestions
+ keys:
+ - links.category
+ comments_comment:
+ - table: comments
+ keys:
+ - id
+ external_accounts_:
+ - table: external_accounts
+ keys:
+ - id
+ external_users_external_user:
+ - table: external_users
+ keys:
+ - id
+ - table: users
+ keys:
+ - links.external_users.value
+ feature_statuses_feature_status:
+ - table: features
+ keys:
+ - links.feature_status
+ - table: feature_statuses
+ keys:
+ - id
+ forums_forum:
+ - table: categories
+ keys:
+ - links.forum
+ - table: forums
+ keys:
+ - id
+ - table: suggestions
+ keys:
+ - links.forum
+ labels_:
+ - table: labels
+ keys:
+ - id
+ - links.parent
+ - table: suggestions
+ keys:
+ - links.labels.value
+ nps_ratings_:
+ - table: nps_ratings
+ keys:
+ - id
+ product_areas_product_area:
+ - table: features
+ keys:
+ - links.product_area
+ - table: product_areas
+ keys:
+ - id
+ requests_:
+ - table: requests
+ keys:
+ - id
+ segmented_values_:
+ - table: segmented_values
+ keys:
+ - id
+ segments_segment:
+ - table: segments
+ keys:
+ - id
+ statuses_:
+ - table: status_updates
+ keys:
+ - links.new_status
+ - links.old_status
+ - table: statuses
+ keys:
+ - id
+ - table: suggestions
+ keys:
+ - links.status
+ status_updates_:
+ - table: status_updates
+ keys:
+ - id
+ - table: suggestions
+ keys:
+ - links.last_status_update
+ suggestions_suggestion:
+ - table: comments
+ keys:
+ - links.suggestion
+ - table: requests
+ keys:
+ - links.suggestion
+ - table: status_updates
+ keys:
+ - links.suggestion
+ - table: suggestions
+ keys:
+ - id
+ - links.parent_suggestion
+ - table: supporters
+ keys:
+ - links.suggestion
+ supporters_supporter:
+ - table: requests
+ keys:
+ - links.supporter
+ - table: supporters
+ keys:
+ - id
+ teams_team:
+ - table: teams
+ keys:
+ - id
+ - table: users
+ keys:
+ - links.teams.value
+ users_user:
+ - table: comments
+ keys:
+ - links.created_by
+ - table: features
+ keys:
+ - links.updated_by
+ - links.created_by
+ - table: feature_statuses
+ keys:
+ - links.updated_by
+ - links.created_by
+ - table: forums
+ keys:
+ - links.updated_by
+ - table: nps_ratings
+ keys:
+ - links.user
+ - table: product_areas
+ keys:
+ - links.updated_by
+ - links.created_by
+ - table: requests
+ keys:
+ - links.user
+ - links.created_by
+ - links.updated_by
+ - table: segmented_values
+ keys:
+ - links.created_by
+ - links.updated_by
+ - table: status_updates
+ keys:
+ - links.user
+ - table: suggestions
+ keys:
+ - links.created_by
+ - table: supporters
+ keys:
+ - links.created_by
+ - links.updated_by
+ - links.user
+ - table: users
+ keys:
+ - id
+tables:
+- table-name: categories
+ join:
+ - table-name: suggestions
+ keys:
+ - key: id
+ foreign-key: links.category
+ - key: links.forum
+ foreign-key: links.forum
+ - table-name: forums
+ keys:
+ - key: links.forum
+ foreign-key: id
+- table-name: suggestions
+ join:
+ - table-name: categories
+ keys:
+ - key: links.category
+ foreign-key: id
+ - key: links.forum
+ foreign-key: links.forum
+ - table-name: forums
+ keys:
+ - key: links.forum
+ foreign-key: id
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - table-name: labels
+ keys:
+ - key: links.labels.value
+ foreign-key: id
+ - key: links.labels.value
+ foreign-key: links.parent
+ - table-name: status_updates
+ keys:
+ - key: links.status
+ foreign-key: links.new_status
+ - key: links.status
+ foreign-key: links.old_status
+ - key: links.last_status_update
+ foreign-key: id
+ - key: id
+ foreign-key: links.suggestion
+ - key: links.parent_suggestion
+ foreign-key: links.suggestion
+ - key: links.created_by
+ foreign-key: links.user
+ - table-name: statuses
+ keys:
+ - key: links.status
+ foreign-key: id
+ - table-name: comments
+ keys:
+ - key: id
+ foreign-key: links.suggestion
+ - key: links.parent_suggestion
+ foreign-key: links.suggestion
+ - key: links.created_by
+ foreign-key: links.created_by
+ - table-name: requests
+ keys:
+ - key: id
+ foreign-key: links.suggestion
+ - key: links.parent_suggestion
+ foreign-key: links.suggestion
+ - key: links.created_by
+ foreign-key: links.user
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - table-name: supporters
+ keys:
+ - key: id
+ foreign-key: links.suggestion
+ - key: links.parent_suggestion
+ foreign-key: links.suggestion
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.user
+ - table-name: features
+ keys:
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - table-name: feature_statuses
+ keys:
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - table-name: nps_ratings
+ keys:
+ - key: links.created_by
+ foreign-key: links.user
+ - table-name: product_areas
+ keys:
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - table-name: segmented_values
+ keys:
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - table-name: users
+ keys:
+ - key: links.created_by
+ foreign-key: id
+- table-name: comments
+ join:
+ - table-name: requests
+ keys:
+ - key: links.suggestion
+ foreign-key: links.suggestion
+ - key: links.created_by
+ foreign-key: links.user
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - table-name: status_updates
+ keys:
+ - key: links.suggestion
+ foreign-key: links.suggestion
+ - key: links.created_by
+ foreign-key: links.user
+ - table-name: suggestions
+ keys:
+ - key: links.suggestion
+ foreign-key: id
+ - key: links.suggestion
+ foreign-key: links.parent_suggestion
+ - key: links.created_by
+ foreign-key: links.created_by
+ - table-name: supporters
+ keys:
+ - key: links.suggestion
+ foreign-key: links.suggestion
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.user
+ - table-name: features
+ keys:
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - table-name: feature_statuses
+ keys:
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - table-name: forums
+ keys:
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - table-name: nps_ratings
+ keys:
+ - key: links.created_by
+ foreign-key: links.user
+ - table-name: product_areas
+ keys:
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - table-name: segmented_values
+ keys:
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - table-name: users
+ keys:
+ - key: links.created_by
+ foreign-key: id
+- table-name: external_users
+ join:
+ - table-name: users
+ keys:
+ - key: id
+ foreign-key: links.external_users.value
+- table-name: users
+ join:
+ - table-name: external_users
+ keys:
+ - key: links.external_users.value
+ foreign-key: id
+ - table-name: teams
+ keys:
+ - key: links.teams.value
+ foreign-key: id
+ - table-name: comments
+ keys:
+ - key: id
+ foreign-key: links.created_by
+ - table-name: features
+ keys:
+ - key: id
+ foreign-key: links.updated_by
+ - key: id
+ foreign-key: links.created_by
+ - table-name: feature_statuses
+ keys:
+ - key: id
+ foreign-key: links.updated_by
+ - key: id
+ foreign-key: links.created_by
+ - table-name: forums
+ keys:
+ - key: id
+ foreign-key: links.updated_by
+ - table-name: nps_ratings
+ keys:
+ - key: id
+ foreign-key: links.user
+ - table-name: product_areas
+ keys:
+ - key: id
+ foreign-key: links.updated_by
+ - key: id
+ foreign-key: links.created_by
+ - table-name: requests
+ keys:
+ - key: id
+ foreign-key: links.user
+ - key: id
+ foreign-key: links.created_by
+ - key: id
+ foreign-key: links.updated_by
+ - table-name: segmented_values
+ keys:
+ - key: id
+ foreign-key: links.created_by
+ - key: id
+ foreign-key: links.updated_by
+ - table-name: status_updates
+ keys:
+ - key: id
+ foreign-key: links.user
+ - table-name: suggestions
+ keys:
+ - key: id
+ foreign-key: links.created_by
+ - table-name: supporters
+ keys:
+ - key: id
+ foreign-key: links.created_by
+ - key: id
+ foreign-key: links.updated_by
+ - key: id
+ foreign-key: links.user
+- table-name: features
+ join:
+ - table-name: feature_statuses
+ keys:
+ - key: links.feature_status
+ foreign-key: id
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - table-name: product_areas
+ keys:
+ - key: links.product_area
+ foreign-key: id
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - table-name: comments
+ keys:
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - table-name: forums
+ keys:
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - table-name: nps_ratings
+ keys:
+ - key: links.updated_by
+ foreign-key: links.user
+ - key: links.created_by
+ foreign-key: links.user
+ - table-name: requests
+ keys:
+ - key: links.updated_by
+ foreign-key: links.user
+ - key: links.created_by
+ foreign-key: links.user
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - table-name: segmented_values
+ keys:
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - table-name: status_updates
+ keys:
+ - key: links.updated_by
+ foreign-key: links.user
+ - key: links.created_by
+ foreign-key: links.user
+ - table-name: suggestions
+ keys:
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - table-name: supporters
+ keys:
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.user
+ - key: links.created_by
+ foreign-key: links.user
+ - table-name: users
+ keys:
+ - key: links.updated_by
+ foreign-key: id
+ - key: links.created_by
+ foreign-key: id
+- table-name: feature_statuses
+ join:
+ - table-name: features
+ keys:
+ - key: id
+ foreign-key: links.feature_status
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - table-name: comments
+ keys:
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - table-name: forums
+ keys:
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - table-name: nps_ratings
+ keys:
+ - key: links.updated_by
+ foreign-key: links.user
+ - key: links.created_by
+ foreign-key: links.user
+ - table-name: product_areas
+ keys:
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - table-name: requests
+ keys:
+ - key: links.updated_by
+ foreign-key: links.user
+ - key: links.created_by
+ foreign-key: links.user
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - table-name: segmented_values
+ keys:
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - table-name: status_updates
+ keys:
+ - key: links.updated_by
+ foreign-key: links.user
+ - key: links.created_by
+ foreign-key: links.user
+ - table-name: suggestions
+ keys:
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - table-name: supporters
+ keys:
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.user
+ - key: links.created_by
+ foreign-key: links.user
+ - table-name: users
+ keys:
+ - key: links.updated_by
+ foreign-key: id
+ - key: links.created_by
+ foreign-key: id
+- table-name: forums
+ join:
+ - table-name: categories
+ keys:
+ - key: id
+ foreign-key: links.forum
+ - table-name: suggestions
+ keys:
+ - key: id
+ foreign-key: links.forum
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - table-name: comments
+ keys:
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - table-name: features
+ keys:
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - table-name: feature_statuses
+ keys:
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - table-name: nps_ratings
+ keys:
+ - key: links.updated_by
+ foreign-key: links.user
+ - table-name: product_areas
+ keys:
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - table-name: requests
+ keys:
+ - key: links.updated_by
+ foreign-key: links.user
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - table-name: segmented_values
+ keys:
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - table-name: status_updates
+ keys:
+ - key: links.updated_by
+ foreign-key: links.user
+ - table-name: supporters
+ keys:
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.user
+ - table-name: users
+ keys:
+ - key: links.updated_by
+ foreign-key: id
+- table-name: labels
+ join:
+ - table-name: suggestions
+ keys:
+ - key: id
+ foreign-key: links.labels.value
+ - key: links.parent
+ foreign-key: links.labels.value
+- table-name: nps_ratings
+ join:
+ - table-name: comments
+ keys:
+ - key: links.user
+ foreign-key: links.created_by
+ - table-name: features
+ keys:
+ - key: links.user
+ foreign-key: links.updated_by
+ - key: links.user
+ foreign-key: links.created_by
+ - table-name: feature_statuses
+ keys:
+ - key: links.user
+ foreign-key: links.updated_by
+ - key: links.user
+ foreign-key: links.created_by
+ - table-name: forums
+ keys:
+ - key: links.user
+ foreign-key: links.updated_by
+ - table-name: product_areas
+ keys:
+ - key: links.user
+ foreign-key: links.updated_by
+ - key: links.user
+ foreign-key: links.created_by
+ - table-name: requests
+ keys:
+ - key: links.user
+ foreign-key: links.user
+ - key: links.user
+ foreign-key: links.created_by
+ - key: links.user
+ foreign-key: links.updated_by
+ - table-name: segmented_values
+ keys:
+ - key: links.user
+ foreign-key: links.created_by
+ - key: links.user
+ foreign-key: links.updated_by
+ - table-name: status_updates
+ keys:
+ - key: links.user
+ foreign-key: links.user
+ - table-name: suggestions
+ keys:
+ - key: links.user
+ foreign-key: links.created_by
+ - table-name: supporters
+ keys:
+ - key: links.user
+ foreign-key: links.created_by
+ - key: links.user
+ foreign-key: links.updated_by
+ - key: links.user
+ foreign-key: links.user
+ - table-name: users
+ keys:
+ - key: links.user
+ foreign-key: id
+- table-name: product_areas
+ join:
+ - table-name: features
+ keys:
+ - key: id
+ foreign-key: links.product_area
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - table-name: comments
+ keys:
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - table-name: feature_statuses
+ keys:
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - table-name: forums
+ keys:
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - table-name: nps_ratings
+ keys:
+ - key: links.updated_by
+ foreign-key: links.user
+ - key: links.created_by
+ foreign-key: links.user
+ - table-name: requests
+ keys:
+ - key: links.updated_by
+ foreign-key: links.user
+ - key: links.created_by
+ foreign-key: links.user
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - table-name: segmented_values
+ keys:
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - table-name: status_updates
+ keys:
+ - key: links.updated_by
+ foreign-key: links.user
+ - key: links.created_by
+ foreign-key: links.user
+ - table-name: suggestions
+ keys:
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - table-name: supporters
+ keys:
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.user
+ - key: links.created_by
+ foreign-key: links.user
+ - table-name: users
+ keys:
+ - key: links.updated_by
+ foreign-key: id
+ - key: links.created_by
+ foreign-key: id
+- table-name: requests
+ join:
+ - table-name: comments
+ keys:
+ - key: links.suggestion
+ foreign-key: links.suggestion
+ - key: links.user
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - table-name: status_updates
+ keys:
+ - key: links.suggestion
+ foreign-key: links.suggestion
+ - key: links.user
+ foreign-key: links.user
+ - key: links.created_by
+ foreign-key: links.user
+ - key: links.updated_by
+ foreign-key: links.user
+ - table-name: suggestions
+ keys:
+ - key: links.suggestion
+ foreign-key: id
+ - key: links.suggestion
+ foreign-key: links.parent_suggestion
+ - key: links.user
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - table-name: supporters
+ keys:
+ - key: links.suggestion
+ foreign-key: links.suggestion
+ - key: links.supporter
+ foreign-key: id
+ - key: links.user
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.user
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.user
+ foreign-key: links.user
+ - key: links.created_by
+ foreign-key: links.user
+ - key: links.updated_by
+ foreign-key: links.user
+ - table-name: features
+ keys:
+ - key: links.user
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.user
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - table-name: feature_statuses
+ keys:
+ - key: links.user
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.user
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - table-name: forums
+ keys:
+ - key: links.user
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - table-name: nps_ratings
+ keys:
+ - key: links.user
+ foreign-key: links.user
+ - key: links.created_by
+ foreign-key: links.user
+ - key: links.updated_by
+ foreign-key: links.user
+ - table-name: product_areas
+ keys:
+ - key: links.user
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.user
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - table-name: segmented_values
+ keys:
+ - key: links.user
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.user
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - table-name: users
+ keys:
+ - key: links.user
+ foreign-key: id
+ - key: links.created_by
+ foreign-key: id
+ - key: links.updated_by
+ foreign-key: id
+- table-name: segmented_values
+ join:
+ - table-name: comments
+ keys:
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - table-name: features
+ keys:
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - table-name: feature_statuses
+ keys:
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - table-name: forums
+ keys:
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - table-name: nps_ratings
+ keys:
+ - key: links.created_by
+ foreign-key: links.user
+ - key: links.updated_by
+ foreign-key: links.user
+ - table-name: product_areas
+ keys:
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - table-name: requests
+ keys:
+ - key: links.created_by
+ foreign-key: links.user
+ - key: links.updated_by
+ foreign-key: links.user
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - table-name: status_updates
+ keys:
+ - key: links.created_by
+ foreign-key: links.user
+ - key: links.updated_by
+ foreign-key: links.user
+ - table-name: suggestions
+ keys:
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - table-name: supporters
+ keys:
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.user
+ - key: links.updated_by
+ foreign-key: links.user
+ - table-name: users
+ keys:
+ - key: links.created_by
+ foreign-key: id
+ - key: links.updated_by
+ foreign-key: id
+- table-name: status_updates
+ join:
+ - table-name: statuses
+ keys:
+ - key: links.new_status
+ foreign-key: id
+ - key: links.old_status
+ foreign-key: id
+ - table-name: suggestions
+ keys:
+ - key: links.new_status
+ foreign-key: links.status
+ - key: links.old_status
+ foreign-key: links.status
+ - key: id
+ foreign-key: links.last_status_update
+ - key: links.suggestion
+ foreign-key: id
+ - key: links.suggestion
+ foreign-key: links.parent_suggestion
+ - key: links.user
+ foreign-key: links.created_by
+ - table-name: comments
+ keys:
+ - key: links.suggestion
+ foreign-key: links.suggestion
+ - key: links.user
+ foreign-key: links.created_by
+ - table-name: requests
+ keys:
+ - key: links.suggestion
+ foreign-key: links.suggestion
+ - key: links.user
+ foreign-key: links.user
+ - key: links.user
+ foreign-key: links.created_by
+ - key: links.user
+ foreign-key: links.updated_by
+ - table-name: supporters
+ keys:
+ - key: links.suggestion
+ foreign-key: links.suggestion
+ - key: links.user
+ foreign-key: links.created_by
+ - key: links.user
+ foreign-key: links.updated_by
+ - key: links.user
+ foreign-key: links.user
+ - table-name: features
+ keys:
+ - key: links.user
+ foreign-key: links.updated_by
+ - key: links.user
+ foreign-key: links.created_by
+ - table-name: feature_statuses
+ keys:
+ - key: links.user
+ foreign-key: links.updated_by
+ - key: links.user
+ foreign-key: links.created_by
+ - table-name: forums
+ keys:
+ - key: links.user
+ foreign-key: links.updated_by
+ - table-name: nps_ratings
+ keys:
+ - key: links.user
+ foreign-key: links.user
+ - table-name: product_areas
+ keys:
+ - key: links.user
+ foreign-key: links.updated_by
+ - key: links.user
+ foreign-key: links.created_by
+ - table-name: segmented_values
+ keys:
+ - key: links.user
+ foreign-key: links.created_by
+ - key: links.user
+ foreign-key: links.updated_by
+ - table-name: users
+ keys:
+ - key: links.user
+ foreign-key: id
+- table-name: statuses
+ join:
+ - table-name: status_updates
+ keys:
+ - key: id
+ foreign-key: links.new_status
+ - key: id
+ foreign-key: links.old_status
+ - table-name: suggestions
+ keys:
+ - key: id
+ foreign-key: links.status
+- table-name: supporters
+ join:
+ - table-name: comments
+ keys:
+ - key: links.suggestion
+ foreign-key: links.suggestion
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.user
+ foreign-key: links.created_by
+ - table-name: requests
+ keys:
+ - key: links.suggestion
+ foreign-key: links.suggestion
+ - key: id
+ foreign-key: links.supporter
+ - key: links.created_by
+ foreign-key: links.user
+ - key: links.updated_by
+ foreign-key: links.user
+ - key: links.user
+ foreign-key: links.user
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.user
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.user
+ foreign-key: links.updated_by
+ - table-name: status_updates
+ keys:
+ - key: links.suggestion
+ foreign-key: links.suggestion
+ - key: links.created_by
+ foreign-key: links.user
+ - key: links.updated_by
+ foreign-key: links.user
+ - key: links.user
+ foreign-key: links.user
+ - table-name: suggestions
+ keys:
+ - key: links.suggestion
+ foreign-key: id
+ - key: links.suggestion
+ foreign-key: links.parent_suggestion
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.user
+ foreign-key: links.created_by
+ - table-name: features
+ keys:
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.user
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.user
+ foreign-key: links.created_by
+ - table-name: feature_statuses
+ keys:
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.user
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.user
+ foreign-key: links.created_by
+ - table-name: forums
+ keys:
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.user
+ foreign-key: links.updated_by
+ - table-name: nps_ratings
+ keys:
+ - key: links.created_by
+ foreign-key: links.user
+ - key: links.updated_by
+ foreign-key: links.user
+ - key: links.user
+ foreign-key: links.user
+ - table-name: product_areas
+ keys:
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.user
+ foreign-key: links.updated_by
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.user
+ foreign-key: links.created_by
+ - table-name: segmented_values
+ keys:
+ - key: links.created_by
+ foreign-key: links.created_by
+ - key: links.updated_by
+ foreign-key: links.created_by
+ - key: links.user
+ foreign-key: links.created_by
+ - key: links.created_by
+ foreign-key: links.updated_by
+ - key: links.updated_by
+ foreign-key: links.updated_by
+ - key: links.user
+ foreign-key: links.updated_by
+ - table-name: users
+ keys:
+ - key: links.created_by
+ foreign-key: id
+ - key: links.updated_by
+ foreign-key: id
+ - key: links.user
+ foreign-key: id
+- table-name: teams
+ join:
+ - table-name: users
+ keys:
+ - key: id
+ foreign-key: links.teams.value
diff --git a/_data/taps/schemas/uservoice/v1/uservoice-v1-tables.yml b/_data/taps/schemas/uservoice/v1/uservoice-v1-tables.yml
new file mode 100644
index 000000000..ad503353a
--- /dev/null
+++ b/_data/taps/schemas/uservoice/v1/uservoice-v1-tables.yml
@@ -0,0 +1,257 @@
+tap: uservoice
+version: '1'
+tap-repo-schemas: false
+tables:
+- name: categories
+ description: 'The `{{ table.name }}` contains info about the various categories
+ in your {{ integration.display_name }} account. Categories are used to organize
+ suggestions in a forum.
+
+ '
+ links:
+ doc-link: https://developer.uservoice.com/docs/api/v2/reference/#/categories
+ singer-schema: https://github.com/singer-io/tap-uservoice/blob/master/tap_uservoice/streams/categories.py
+ api-method: https://developer.uservoice.com/docs/api/v2/reference/#list-categories
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: comments
+ description: 'The `comments` table contains info about the comments forum users
+ have made.
+
+ '
+ links:
+ doc-link: https://developer.uservoice.com/docs/api/v2/reference/#/comments,comments_0?q=comments
+ singer-schema: https://github.com/singer-io/tap-uservoice/blob/master/tap_uservoice/streams/comments.py
+ api-method: https://developer.uservoice.com/docs/api/v2/reference/#list-comments
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: external_accounts
+ description: 'The `{{ table.name }}` table contains info about accounts from external
+ systems.
+
+ '
+ links:
+ doc-link: https://developer.uservoice.com/docs/api/v2/reference/#/ExternalAccount
+ singer-schema: https://github.com/singer-io/tap-uservoice/blob/master/tap_uservoice/streams/external_accounts.py
+ api-method: https://developer.uservoice.com/docs/api/v2/reference/#list-external-accounts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: external_users
+ description: 'The `{{ table.name }}` table contains info about users from external
+ systems.
+
+ '
+ links:
+ doc-link: https://developer.uservoice.com/docs/api/v2/reference/#/ExternalUser
+ singer-schema: https://github.com/singer-io/tap-uservoice/blob/master/tap_uservoice/streams/external_users.py
+ api-method: https://developer.uservoice.com/docs/api/v2/reference/#list-external-users
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: features
+ description: 'The `{{ table.name }}` table contains info about planned product features.
+
+ '
+ links:
+ doc-link: https://developer.uservoice.com/docs/api/v2/reference/#/Feature
+ singer-schema: https://github.com/singer-io/tap-uservoice/blob/master/tap_uservoice/streams/feature_statuses.py
+ api-method: https://developer.uservoice.com/docs/api/v2/reference/#list-features
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: feature_statuses
+ description: 'The `{{ table.name }}` table contains info about feature statuses,
+ which are used to indicate a feature''s current state.
+
+ '
+ links:
+ doc-link: https://developer.uservoice.com/docs/api/v2/reference/#/Feature
+ singer-schema: https://github.com/singer-io/tap-uservoice/blob/master/tap_uservoice/streams/feature_statuses.py
+ api-method: https://developer.uservoice.com/docs/api/v2/reference/#list-feature-statuses
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: forums
+ description: 'The `{{ table.name }}` table contains info about your discussion forums.
+
+ '
+ links:
+ doc-link: https://developer.uservoice.com/docs/api/v2/reference/#/Forum
+ singer-schema: https://github.com/singer-io/tap-uservoice/blob/master/tap_uservoice/streams/forums.py
+ api-method: https://developer.uservoice.com/docs/api/v2/reference/#
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: labels
+ description: 'The `{{ table.name }}` table contains info about labels in your {{
+ integration.display_name }} account, which admins use to internally organize suggestions.
+
+ '
+ links:
+ doc-link: https://developer.uservoice.com/docs/api/v2/reference/#/Forum
+ singer-schema: https://github.com/singer-io/tap-uservoice/blob/master/tap_uservoice/streams/forums.py
+ api-method: https://developer.uservoice.com/docs/api/v2/reference/#list-labels
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: nps_ratings
+ description: 'The `{{ table.name }}` table contains info about NPS, or Net Promoter
+ Scores. NPS is used to measure customer satisfaction on a scale from 0-10.
+
+ '
+ links:
+ doc-link: https://developer.uservoice.com/docs/api/v2/reference/#/
+ singer-schema: https://github.com/singer-io/tap-uservoice/blob/master/tap_uservoice/streams/nps_ratings.py
+ api-method: https://developer.uservoice.com/docs/api/v2/reference/#list-nps-ratings
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: product_areas
+ description: 'The `{{ table.name }}` table contains info about your product areas,
+ which can be assigned to features to organize them into groups.
+
+ '
+ links:
+ doc-link: https://developer.uservoice.com/docs/api/v2/reference/#/
+ singer-schema: https://github.com/singer-io/tap-uservoice/blob/master/tap_uservoice/streams/.py
+ api-method: https://developer.uservoice.com/docs/api/v2/reference/#list-product-areas
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: requests
+ description: 'The `{{ table.name }}` table contains info about requests, which are
+ specific pieces of feedback submitted by your end users. Requests are associated
+ with suggestions, and users are counted as supporters of the suggestion.
+
+
+ Unlike suggestions, requests are captured by your team on behalf of end users.
+
+ '
+ links:
+ doc-link: https://developer.uservoice.com/docs/api/v2/reference/#/
+ singer-schema: https://github.com/singer-io/tap-uservoice/blob/master/tap_uservoice/streams/requests.py
+ api-method: https://developer.uservoice.com/docs/api/v2/reference/#list-requests
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: segmented_values
+ description: 'The `{{ table.name }}` table contains info about segmented values,
+ which are calculated columns that aggregate supporter metrics for a segment.
+
+ '
+ links:
+ doc-link: https://developer.uservoice.com/docs/api/v2/reference/#/
+ singer-schema: https://github.com/singer-io/tap-uservoice/blob/master/tap_uservoice/streams/segmented_values.py
+ api-method: https://developer.uservoice.com/docs/api/v2/reference/#list-segmented-values
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: segments
+ description: 'The `{{ table.name }}` table contains info about segments, which are
+ subsets of your end users and accounts defined by a set of criteria.
+
+ '
+ links:
+ doc-link: https://developer.uservoice.com/docs/api/v2/reference/#/Segments
+ singer-schema: https://github.com/singer-io/tap-uservoice/blob/master/tap_uservoice/streams/segments.py
+ api-method: https://developer.uservoice.com/docs/api/v2/reference/#list-segments
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: statuses
+ description: "The `{{ table.name }}` table contains info about the various suggestion\
+ \ statuses in your {{ integration.display_name }} account. \n"
+ links:
+ doc-link: https://developer.uservoice.com/docs/api/v2/reference/#/Stauses
+ singer-schema: https://github.com/singer-io/tap-uservoice/blob/master/tap_uservoice/streams/.py
+ api-method: https://developer.uservoice.com/docs/api/v2/reference/#list-statuses
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: status_updates
+ description: 'The `{{ table.name }}` table contains info about admin changes to
+ the statuses of suggestions.
+
+ '
+ links:
+ doc-link: https://developer.uservoice.com/docs/api/v2/reference/#/status_updates
+ singer-schema: https://github.com/singer-io/tap-uservoice/blob/master/tap_uservoice/streams/status_updates.py
+ api-method: https://developer.uservoice.com/docs/api/v2/reference/#list-status-updates
+ table-details:
+ replication-method: Key-based Incremental
+ replication-key: updated_at
+- name: suggestions
+ description: 'The `{{ table.name }}` table contains info about suggestions, or requested
+ changes to your product. Suggestions can be created by your end users, your product
+ team, or other people from your company.
+
+
+ Each suggestion is linked to a forum, where it can be visible publicly or to authorized
+ users.
+
+ '
+ links:
+ doc-link: https://developer.uservoice.com/docs/api/v2/reference/#/Suggestions
+ singer-schema: https://github.com/singer-io/tap-uservoice/blob/master/tap_uservoice/streams/suggestions.py
+ api-method: https://developer.uservoice.com/docs/api/v2/reference/#list-suggestions
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: supporters
+ description: 'The `{{ table.name }}` table contains info about supporters, who are
+ end users that are supporters of a suggestion.
+
+ '
+ links:
+ doc-link: https://developer.uservoice.com/docs/api/v2/reference/#/Supporters
+ singer-schema: https://github.com/singer-io/tap-uservoice/blob/master/tap_uservoice/streams/supporters.py
+ api-method: https://developer.uservoice.com/docs/api/v2/reference/#list-supporters
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: teams
+ description: 'The `{{ table.name }}` table contains info about the teams in your
+ {{ integration.display_name }} account. {{ integration.display_name }} admins
+ and contributors can be assigned to teams to organize feedback the feedback they
+ capture by department, such as Sales, Support, or Product.
+
+ '
+ links:
+ doc-link: https://developer.uservoice.com/docs/api/v2/reference/#/Teams
+ singer-schema: https://github.com/singer-io/tap-uservoice/blob/master/tap_uservoice/streams/teams.py
+ api-method: https://developer.uservoice.com/docs/api/v2/reference/#list-
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+- name: users
+ description: "The `{{ table.name }}` table contains info about your users. This\
+ \ includes both {{ integration.display_name }} admins and end users. \n"
+ links:
+ doc-link: https://developer.uservoice.com/docs/api/v2/reference/#/Users
+ singer-schema: https://github.com/singer-io/tap-uservoice/blob/master/tap_uservoice/users.py
+ api-method: https://developer.uservoice.com/docs/api/v2/reference/#list-users
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-keys:
+ - updated_at
+ - created_at
diff --git a/_data/taps/schemas/wootric/v1/json/declines.json b/_data/taps/schemas/wootric/v1/json/declines.json
new file mode 100644
index 000000000..ee0a308ad
--- /dev/null
+++ b/_data/taps/schemas/wootric/v1/json/declines.json
@@ -0,0 +1,23 @@
+{
+ "properties": {
+ "created_at": {
+ "type": "date-time"
+ },
+ "end_user_id": {
+ "type": "integer"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "survey_id": {
+ "type": "integer"
+ },
+ "updated_at": {
+ "type": "date-time"
+ }
+ },
+ "required": [
+ "id"
+ ],
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/wootric/v1/json/end_users.json b/_data/taps/schemas/wootric/v1/json/end_users.json
new file mode 100644
index 000000000..884c66f90
--- /dev/null
+++ b/_data/taps/schemas/wootric/v1/json/end_users.json
@@ -0,0 +1,39 @@
+{
+ "properties": {
+ "created_at": {
+ "type": "date-time"
+ },
+ "email": {
+ "type": "string"
+ },
+ "external_created_at": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_surveyed": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "type": "date-time"
+ }
+ ]
+ },
+ "page_views_count": {
+ "type": "integer"
+ },
+ "updated_at": {
+ "type": "date-time"
+ }
+ },
+ "required": [
+ "id"
+ ],
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/wootric/v1/json/responses.json b/_data/taps/schemas/wootric/v1/json/responses.json
new file mode 100644
index 000000000..f57d78a91
--- /dev/null
+++ b/_data/taps/schemas/wootric/v1/json/responses.json
@@ -0,0 +1,50 @@
+{
+ "properties": {
+ "completed": {
+ "type": "boolean"
+ },
+ "created_at": {
+ "type": "date-time"
+ },
+ "end_user_id": {
+ "type": "integer"
+ },
+ "excluded_from_calculations": {
+ "type": "boolean"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "ip_address": {
+ "type": "string"
+ },
+ "origin_url": {
+ "type": "string"
+ },
+ "score": {
+ "type": "integer"
+ },
+ "survey_id": {
+ "type": "integer"
+ },
+ "tags": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "text": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "updated_at": {
+ "type": "date-time"
+ }
+ },
+ "required": [
+ "id"
+ ],
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/wootric/v1/wootric-v1-foreign-keys.yml b/_data/taps/schemas/wootric/v1/wootric-v1-foreign-keys.yml
new file mode 100644
index 000000000..333d299d1
--- /dev/null
+++ b/_data/taps/schemas/wootric/v1/wootric-v1-foreign-keys.yml
@@ -0,0 +1,59 @@
+tap: wootric
+version: '1'
+keys:
+ declines_:
+ - table: declines
+ keys:
+ - id
+ end_users_end_user_id:
+ - table: declines
+ keys:
+ - end_user_id
+ - table: end_users
+ keys:
+ - id
+ - table: responses
+ keys:
+ - end_user_id
+ responses_survey_id:
+ - table: declines
+ keys:
+ - survey_id
+ - table: responses
+ keys:
+ - survey_id
+tables:
+- table-name: declines
+ join:
+ - table-name: end_users
+ keys:
+ - key: end_user_id
+ foreign-key: id
+ - table-name: responses
+ keys:
+ - key: end_user_id
+ foreign-key: end_user_id
+ - key: survey_id
+ foreign-key: survey_id
+- table-name: end_users
+ join:
+ - table-name: declines
+ keys:
+ - key: id
+ foreign-key: end_user_id
+ - table-name: responses
+ keys:
+ - key: id
+ foreign-key: end_user_id
+- table-name: responses
+ join:
+ - table-name: declines
+ keys:
+ - key: end_user_id
+ foreign-key: end_user_id
+ - key: survey_id
+ foreign-key: survey_id
+ - table-name: end_users
+ keys:
+ - key: end_user_id
+ foreign-key: id
diff --git a/_data/taps/schemas/wootric/v1/wootric-v1-tables.yml b/_data/taps/schemas/wootric/v1/wootric-v1-tables.yml
new file mode 100644
index 000000000..de2e2acfe
--- /dev/null
+++ b/_data/taps/schemas/wootric/v1/wootric-v1-tables.yml
@@ -0,0 +1,39 @@
+tap: wootric
+version: '1'
+tables:
+- name: declines
+ description: 'The `{{ table.name }}` table contains info about declines, or the
+ instances where a user is presented with a survey opportunity and opts out.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-wootric/blob/master/tap_wootric/schemas/declines.json
+ api-method: http://docs.wootric.com/api/#get-all-declines
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: responses
+ description: 'The `{{ table.name }}` table contains info about end user responses
+ to surveys.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-wootric/blob/master/tap_wootric/schemas/responses.json
+ api-method: http://docs.wootric.com/api/#get-all-responses
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: end_users
+ description: 'The `{{ table.name }}` table contains info about end users.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-wootric/blob/master/tap_wootric/schemas/end_users.json
+ api-method: https://docs.wootric.com/api/#get-all-end-users
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/xero/v1/json/accounts.json b/_data/taps/schemas/xero/v1/json/accounts.json
new file mode 100644
index 000000000..14e54f8bf
--- /dev/null
+++ b/_data/taps/schemas/xero/v1/json/accounts.json
@@ -0,0 +1,116 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "AccountID": {
+ "type": [
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Class": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EnablePaymentsToAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCodeName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ShowInExpenseClaims": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SystemAccount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v1/json/attachments.json b/_data/taps/schemas/xero/v1/json/attachments.json
new file mode 100644
index 000000000..cce81aad2
--- /dev/null
+++ b/_data/taps/schemas/xero/v1/json/attachments.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "items": {
+ "type": [
+ "object"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v1/json/bank_transactions.json b/_data/taps/schemas/xero/v1/json/bank_transactions.json
new file mode 100644
index 000000000..269a43dff
--- /dev/null
+++ b/_data/taps/schemas/xero/v1/json/bank_transactions.json
@@ -0,0 +1,1242 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "BankAccount": {
+ "properties": {
+ "AccountID": {
+ "type": [
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Class": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EnablePaymentsToAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCodeName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ShowInExpenseClaims": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SystemAccount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "BankTransactionID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExternalLinkProviderName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsReconciled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "OverpaymentID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrepaymentID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "accounts",
+ "contacts",
+ "line_items"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v1/json/bank_transfers.json b/_data/taps/schemas/xero/v1/json/bank_transfers.json
new file mode 100644
index 000000000..7f899f07a
--- /dev/null
+++ b/_data/taps/schemas/xero/v1/json/bank_transfers.json
@@ -0,0 +1,309 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "Amount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BankTransferID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "CreatedDateUTCString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FromBankAccount": {
+ "properties": {
+ "AccountID": {
+ "type": [
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Class": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EnablePaymentsToAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCodeName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ShowInExpenseClaims": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SystemAccount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "FromBankTransactionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ToBankAccount": {
+ "properties": {
+ "AccountID": {
+ "type": [
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Class": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EnablePaymentsToAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCodeName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ShowInExpenseClaims": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SystemAccount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ToBankTransactionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "accounts"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v1/json/branding_themes.json b/_data/taps/schemas/xero/v1/json/branding_themes.json
new file mode 100644
index 000000000..f176a195e
--- /dev/null
+++ b/_data/taps/schemas/xero/v1/json/branding_themes.json
@@ -0,0 +1,32 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v1/json/contact_groups.json b/_data/taps/schemas/xero/v1/json/contact_groups.json
new file mode 100644
index 000000000..4c88d5e98
--- /dev/null
+++ b/_data/taps/schemas/xero/v1/json/contact_groups.json
@@ -0,0 +1,32 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v1/json/contacts.json b/_data/taps/schemas/xero/v1/json/contacts.json
new file mode 100644
index 000000000..26fa60b38
--- /dev/null
+++ b/_data/taps/schemas/xero/v1/json/contacts.json
@@ -0,0 +1,785 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "addresses",
+ "phones",
+ "contact_groups",
+ "branding_themes",
+ "tracking_categories",
+ "validation_errors",
+ "attachments",
+ "payment_terms"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v1/json/credit_notes.json b/_data/taps/schemas/xero/v1/json/credit_notes.json
new file mode 100644
index 000000000..bc0ba02af
--- /dev/null
+++ b/_data/taps/schemas/xero/v1/json/credit_notes.json
@@ -0,0 +1,2393 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "Allocations": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Invoice": {
+ "properties": {
+ "AmountCredited": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountDue": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountPaid": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "InvoiceID": {
+ "type": [
+ "string"
+ ]
+ },
+ "InvoiceNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsDiscounted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PlannedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "AppliedAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CreditNoteID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreditNoteNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RemainingCredit": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "contacts",
+ "line_items",
+ "allocations"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v1/json/currencies.json b/_data/taps/schemas/xero/v1/json/currencies.json
new file mode 100644
index 000000000..b49e2917b
--- /dev/null
+++ b/_data/taps/schemas/xero/v1/json/currencies.json
@@ -0,0 +1,20 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "Code": {
+ "type": [
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v1/json/employees.json b/_data/taps/schemas/xero/v1/json/employees.json
new file mode 100644
index 000000000..037abc013
--- /dev/null
+++ b/_data/taps/schemas/xero/v1/json/employees.json
@@ -0,0 +1,44 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "EmployeeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ExternalLink": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v1/json/expense_claims.json b/_data/taps/schemas/xero/v1/json/expense_claims.json
new file mode 100644
index 000000000..d051ff54c
--- /dev/null
+++ b/_data/taps/schemas/xero/v1/json/expense_claims.json
@@ -0,0 +1,2809 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "AmountDue": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountPaid": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ExpenseClaimID": {
+ "type": [
+ "string"
+ ]
+ },
+ "PaymentDueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Payments": {
+ "items": {
+ "properties": {
+ "Account": {
+ "properties": {
+ "AccountID": {
+ "type": [
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Class": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EnablePaymentsToAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCodeName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ShowInExpenseClaims": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SystemAccount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Amount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BankAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BatchPaymentID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CreditNote": {
+ "additionalProperties": false,
+ "properties": {
+ "CreditNoteNumber": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Invoice": {
+ "properties": {
+ "AmountCredited": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountDue": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountPaid": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "InvoiceID": {
+ "type": [
+ "string"
+ ]
+ },
+ "InvoiceNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsDiscounted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PlannedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "IsReconciled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Overpayment": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "OverpaymentID": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PaymentID": {
+ "type": [
+ "string"
+ ]
+ },
+ "PaymentType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Prepayments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "PrepaymentID": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Receipts": {
+ "items": {
+ "properties": {
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ReceiptID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ReceiptNumber": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "User": {
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsSubscriber": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "OrganisationRole": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "UserID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ReportingDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "User": {
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsSubscriber": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "OrganisationRole": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "UserID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "users",
+ "receipts",
+ "payments"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v1/json/invoices.json b/_data/taps/schemas/xero/v1/json/invoices.json
new file mode 100644
index 000000000..fc8b707a8
--- /dev/null
+++ b/_data/taps/schemas/xero/v1/json/invoices.json
@@ -0,0 +1,10393 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "AmountCredited": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountDue": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountPaid": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CreditNotes": {
+ "items": {
+ "properties": {
+ "Allocations": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Invoice": {
+ "properties": {
+ "AmountCredited": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountDue": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountPaid": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "InvoiceID": {
+ "type": [
+ "string"
+ ]
+ },
+ "InvoiceNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsDiscounted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PlannedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "AppliedAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CreditNoteID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreditNoteNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RemainingCredit": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedPaymentDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "InvoiceID": {
+ "type": [
+ "string"
+ ]
+ },
+ "InvoiceNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsDiscounted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Overpayments": {
+ "items": {
+ "properties": {
+ "Account": {
+ "properties": {
+ "AccountID": {
+ "type": [
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Class": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EnablePaymentsToAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCodeName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ShowInExpenseClaims": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SystemAccount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Amount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BankAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BatchPaymentID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CreditNote": {
+ "additionalProperties": false,
+ "properties": {
+ "CreditNoteNumber": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Invoice": {
+ "properties": {
+ "AmountCredited": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountDue": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountPaid": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "InvoiceID": {
+ "type": [
+ "string"
+ ]
+ },
+ "InvoiceNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsDiscounted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PlannedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "IsReconciled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Overpayment": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "OverpaymentID": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PaymentID": {
+ "type": [
+ "string"
+ ]
+ },
+ "PaymentType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Prepayments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "PrepaymentID": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Payments": {
+ "items": {
+ "properties": {
+ "Account": {
+ "properties": {
+ "AccountID": {
+ "type": [
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Class": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EnablePaymentsToAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCodeName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ShowInExpenseClaims": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SystemAccount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Amount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BankAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BatchPaymentID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CreditNote": {
+ "additionalProperties": false,
+ "properties": {
+ "CreditNoteNumber": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Invoice": {
+ "properties": {
+ "AmountCredited": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountDue": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountPaid": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "InvoiceID": {
+ "type": [
+ "string"
+ ]
+ },
+ "InvoiceNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsDiscounted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PlannedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "IsReconciled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Overpayment": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "OverpaymentID": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PaymentID": {
+ "type": [
+ "string"
+ ]
+ },
+ "PaymentType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Prepayments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "PrepaymentID": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PlannedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "PlannedPaymentDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Prepayments": {
+ "items": {
+ "properties": {
+ "Allocations": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Invoice": {
+ "properties": {
+ "AmountCredited": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountDue": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountPaid": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "InvoiceID": {
+ "type": [
+ "string"
+ ]
+ },
+ "InvoiceNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsDiscounted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PlannedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "AppliedAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Payments": {
+ "items": {
+ "properties": {
+ "Account": {
+ "properties": {
+ "AccountID": {
+ "type": [
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Class": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EnablePaymentsToAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCodeName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ShowInExpenseClaims": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SystemAccount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Amount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BankAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BatchPaymentID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CreditNote": {
+ "additionalProperties": false,
+ "properties": {
+ "CreditNoteNumber": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Invoice": {
+ "properties": {
+ "AmountCredited": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountDue": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountPaid": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "InvoiceID": {
+ "type": [
+ "string"
+ ]
+ },
+ "InvoiceNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsDiscounted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PlannedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "IsReconciled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Overpayment": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "OverpaymentID": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PaymentID": {
+ "type": [
+ "string"
+ ]
+ },
+ "PaymentType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Prepayments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "PrepaymentID": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PrepaymentID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RemainingCredit": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "contacts",
+ "payments",
+ "prepayments",
+ "overpayments",
+ "line_items",
+ "credit_notes"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v1/json/items.json b/_data/taps/schemas/xero/v1/json/items.json
new file mode 100644
index 000000000..c9170c2fc
--- /dev/null
+++ b/_data/taps/schemas/xero/v1/json/items.json
@@ -0,0 +1,150 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "InventoryAssetAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsPurchased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSold": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsTrackedAsInventory": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchaseDescription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchaseDetails": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "COGSAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UnitPrice": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "QuantityOnHand": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "SalesDetails": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UnitPrice": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "TotalCostPool": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v1/json/journals.json b/_data/taps/schemas/xero/v1/json/journals.json
new file mode 100644
index 000000000..fd7cba4ec
--- /dev/null
+++ b/_data/taps/schemas/xero/v1/json/journals.json
@@ -0,0 +1,245 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "JournalDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "JournalID": {
+ "type": [
+ "string"
+ ]
+ },
+ "JournalLines": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "GrossAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "JournalLineID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "NetAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "JournalNumber": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SourceID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SourceType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "tracking_categories"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v1/json/linked_transactions.json b/_data/taps/schemas/xero/v1/json/linked_transactions.json
new file mode 100644
index 000000000..f388773cf
--- /dev/null
+++ b/_data/taps/schemas/xero/v1/json/linked_transactions.json
@@ -0,0 +1,68 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "ContactID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LinkedTransactionID": {
+ "type": [
+ "string"
+ ]
+ },
+ "SourceLineItemID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SourceTransactionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SourceTransactionTypeCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TargetLineItemID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TargetTransactionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v1/json/manual_journals.json b/_data/taps/schemas/xero/v1/json/manual_journals.json
new file mode 100644
index 000000000..d1fa58d5c
--- /dev/null
+++ b/_data/taps/schemas/xero/v1/json/manual_journals.json
@@ -0,0 +1,243 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "JournalLines": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsBlank": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ManualJournalID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Narration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ShowOnCashBasisReports": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "tracking_categories"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v1/json/organisations.json b/_data/taps/schemas/xero/v1/json/organisations.json
new file mode 100644
index 000000000..46834db3f
--- /dev/null
+++ b/_data/taps/schemas/xero/v1/json/organisations.json
@@ -0,0 +1,355 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "APIKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "BaseCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DefaultPurchasesTax": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultSalesTax": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EndOfYearLockDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExternalLinks": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "LinkType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "FinancialYearEndDay": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "FinancialYearEndMonth": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "IsDemoCompany": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LegalName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineOfBusiness": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "OrganisationEntityType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "OrganisationID": {
+ "type": [
+ "string"
+ ]
+ },
+ "OrganisationStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "OrganisationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PaysTax": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "PeriodLockDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "RegistrationNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTaxBasis": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTaxPeriod": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ShortCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "addresses",
+ "phones",
+ "payment_terms"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v1/json/overpayments.json b/_data/taps/schemas/xero/v1/json/overpayments.json
new file mode 100644
index 000000000..1f3662ad0
--- /dev/null
+++ b/_data/taps/schemas/xero/v1/json/overpayments.json
@@ -0,0 +1,3832 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "Allocations": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Invoice": {
+ "properties": {
+ "AmountCredited": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountDue": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountPaid": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "InvoiceID": {
+ "type": [
+ "string"
+ ]
+ },
+ "InvoiceNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsDiscounted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PlannedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "AppliedAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "OverpaymentID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Payments": {
+ "items": {
+ "properties": {
+ "Account": {
+ "properties": {
+ "AccountID": {
+ "type": [
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Class": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EnablePaymentsToAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCodeName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ShowInExpenseClaims": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SystemAccount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Amount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BankAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BatchPaymentID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CreditNote": {
+ "additionalProperties": false,
+ "properties": {
+ "CreditNoteNumber": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Invoice": {
+ "properties": {
+ "AmountCredited": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountDue": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountPaid": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "InvoiceID": {
+ "type": [
+ "string"
+ ]
+ },
+ "InvoiceNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsDiscounted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PlannedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "IsReconciled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Overpayment": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "OverpaymentID": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PaymentID": {
+ "type": [
+ "string"
+ ]
+ },
+ "PaymentType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Prepayments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "PrepaymentID": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RemainingCredit": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "contacts",
+ "line_items",
+ "payments",
+ "allocations"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v1/json/payments.json b/_data/taps/schemas/xero/v1/json/payments.json
new file mode 100644
index 000000000..9947530e6
--- /dev/null
+++ b/_data/taps/schemas/xero/v1/json/payments.json
@@ -0,0 +1,1474 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "Account": {
+ "properties": {
+ "AccountID": {
+ "type": [
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Class": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EnablePaymentsToAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCodeName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ShowInExpenseClaims": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SystemAccount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Amount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BankAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BatchPaymentID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CreditNote": {
+ "additionalProperties": false,
+ "properties": {
+ "CreditNoteNumber": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Invoice": {
+ "properties": {
+ "AmountCredited": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountDue": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountPaid": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "InvoiceID": {
+ "type": [
+ "string"
+ ]
+ },
+ "InvoiceNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsDiscounted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PlannedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "IsReconciled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Overpayment": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "OverpaymentID": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PaymentID": {
+ "type": [
+ "string"
+ ]
+ },
+ "PaymentType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Prepayments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "PrepaymentID": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "accounts",
+ "nested_invoice"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v1/json/prepayments.json b/_data/taps/schemas/xero/v1/json/prepayments.json
new file mode 100644
index 000000000..4c0f9c8d8
--- /dev/null
+++ b/_data/taps/schemas/xero/v1/json/prepayments.json
@@ -0,0 +1,3832 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "Allocations": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Invoice": {
+ "properties": {
+ "AmountCredited": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountDue": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountPaid": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "InvoiceID": {
+ "type": [
+ "string"
+ ]
+ },
+ "InvoiceNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsDiscounted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PlannedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "AppliedAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Payments": {
+ "items": {
+ "properties": {
+ "Account": {
+ "properties": {
+ "AccountID": {
+ "type": [
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Class": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EnablePaymentsToAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCodeName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ShowInExpenseClaims": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SystemAccount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Amount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BankAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BatchPaymentID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CreditNote": {
+ "additionalProperties": false,
+ "properties": {
+ "CreditNoteNumber": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Invoice": {
+ "properties": {
+ "AmountCredited": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountDue": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountPaid": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "InvoiceID": {
+ "type": [
+ "string"
+ ]
+ },
+ "InvoiceNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsDiscounted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PlannedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "IsReconciled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Overpayment": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "OverpaymentID": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PaymentID": {
+ "type": [
+ "string"
+ ]
+ },
+ "PaymentType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Prepayments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "PrepaymentID": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PrepaymentID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RemainingCredit": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "allocations",
+ "contacts",
+ "line_items",
+ "payments"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v1/json/purchase_orders.json b/_data/taps/schemas/xero/v1/json/purchase_orders.json
new file mode 100644
index 000000000..3ee350742
--- /dev/null
+++ b/_data/taps/schemas/xero/v1/json/purchase_orders.json
@@ -0,0 +1,1186 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DeliveryAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DeliveryDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DeliveryDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DeliveryInstructions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ExpectedArrivalDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedArrivalDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDiscounted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchaseOrderID": {
+ "type": [
+ "string"
+ ]
+ },
+ "PurchaseOrderNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Telephone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "contacts",
+ "line_items"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v1/json/receipts.json b/_data/taps/schemas/xero/v1/json/receipts.json
new file mode 100644
index 000000000..80a48192b
--- /dev/null
+++ b/_data/taps/schemas/xero/v1/json/receipts.json
@@ -0,0 +1,1193 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ReceiptID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ReceiptNumber": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "User": {
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsSubscriber": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "OrganisationRole": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "UserID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "contacts",
+ "line_items",
+ "users",
+ "validation_errors",
+ "attachments"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v1/json/repeating_invoices.json b/_data/taps/schemas/xero/v1/json/repeating_invoices.json
new file mode 100644
index 000000000..8f1c515d3
--- /dev/null
+++ b/_data/taps/schemas/xero/v1/json/repeating_invoices.json
@@ -0,0 +1,1142 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RepeatingInvoiceID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Schedule": {
+ "additionalProperties": false,
+ "properties": {
+ "DueDate": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "DueDateType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EndDate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "NextScheduledDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "StartDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "contacts",
+ "line_items"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v1/json/tax_rates.json b/_data/taps/schemas/xero/v1/json/tax_rates.json
new file mode 100644
index 000000000..a75160338
--- /dev/null
+++ b/_data/taps/schemas/xero/v1/json/tax_rates.json
@@ -0,0 +1,128 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "CanApplyToAssets": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "CanApplyToEquity": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "CanApplyToExpenses": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "CanApplyToLiabilities": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "CanApplyToRevenue": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "DisplayTaxRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EffectiveRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxComponents": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "IsCompound": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsNonRecoverable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Rate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v1/json/tracking_categories.json b/_data/taps/schemas/xero/v1/json/tracking_categories.json
new file mode 100644
index 000000000..97d8ce5cc
--- /dev/null
+++ b/_data/taps/schemas/xero/v1/json/tracking_categories.json
@@ -0,0 +1,107 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v1/json/users.json b/_data/taps/schemas/xero/v1/json/users.json
new file mode 100644
index 000000000..42e56cdd0
--- /dev/null
+++ b/_data/taps/schemas/xero/v1/json/users.json
@@ -0,0 +1,74 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsSubscriber": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "OrganisationRole": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "UserID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "validation_errors"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v1/json/validation_errors.json b/_data/taps/schemas/xero/v1/json/validation_errors.json
new file mode 100644
index 000000000..1368c2b69
--- /dev/null
+++ b/_data/taps/schemas/xero/v1/json/validation_errors.json
@@ -0,0 +1,9 @@
+{
+ "properties": {
+ "Message": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v1/xero-v1-foreign-keys.yml b/_data/taps/schemas/xero/v1/xero-v1-foreign-keys.yml
new file mode 100644
index 000000000..94f3b46e1
--- /dev/null
+++ b/_data/taps/schemas/xero/v1/xero-v1-foreign-keys.yml
@@ -0,0 +1,1492 @@
+tap: xero
+version: '1'
+keys:
+ accounts_AccountID:
+ - table: accounts
+ keys:
+ - AccountID
+ - table: bank_transactions
+ keys:
+ - BankAccount.AccountID
+ - table: bank_transfers
+ keys:
+ - FromBankAccount.AccountID
+ - ToBankAccount.AccountID
+ - table: journals
+ keys:
+ - JournalLines.AccountID
+ - table: payments
+ keys:
+ - Account.AccountID
+ bank_transfers_BankTransferID:
+ - table: bank_transfers
+ keys:
+ - BankTransferID
+ bank_transactions_BankTransactionID:
+ - table: bank_transactions
+ keys:
+ - BankTransactionID
+ - table: linked_transactions
+ keys:
+ - SourceTransactionID
+ branding_themes_BrandingThemeID:
+ - table: branding_themes
+ keys:
+ - BrandingThemeID
+ - table: contacts
+ keys:
+ - BrandingTheme.BrandingThemeID
+ - table: credit_notes
+ keys:
+ - BrandingThemeID
+ - table: invoices
+ keys:
+ - BrandingThemeID
+ - table: purchase_orders
+ keys:
+ - BrandingThemeID
+ - table: repeating_invoices
+ keys:
+ - BrandingThemeID
+ contact_groups_ContactGroupID:
+ - table: contact_groups
+ keys:
+ - ContactGroupID
+ - table: contacts
+ keys:
+ - ContactGroups.ContactGroupID
+ contacts_ContactID:
+ - table: contacts
+ keys:
+ - ContactID
+ - table: credit_notes
+ keys:
+ - Contact.ContactID
+ - table: invoices
+ keys:
+ - Contact.ContactID
+ - table: linked_transactions
+ keys:
+ - ContactID
+ - table: overpayments
+ keys:
+ - Contact.ContactID
+ - table: prepayments
+ keys:
+ - Contact.ContactID
+ - table: receipts
+ keys:
+ - Contact.ContactID
+ - table: repeating_invoices
+ keys:
+ - Contact.ContactID
+ credit_notes_CreditNoteID:
+ - table: credit_notes
+ keys:
+ - CreditNoteID
+ - table: invoices
+ keys:
+ - CreditNotes.CreditNoteID
+ currencies_CurrencyCode:
+ - table: accounts
+ keys:
+ - CurrencyCode
+ - table: bank_transactions
+ keys:
+ - CurrencyCode
+ - table: credit_notes
+ keys:
+ - CurrencyCode
+ - table: currencies
+ keys:
+ - Code
+ - table: invoices
+ keys:
+ - CurrencyCode
+ - table: prepayments
+ keys:
+ - CurrencyCode
+ - table: purchase_orders
+ keys:
+ - CurrencyCode
+ - table: repeating_invoices
+ keys:
+ - CurrencyCode
+ employees_EmployeeID:
+ - table: employees
+ keys:
+ - EmployeeID
+ expense_claims_ExpenseClaimID:
+ - table: expense_claims
+ keys:
+ - ExpenseClaimID
+ invoices_InvoiceID:
+ - table: invoices
+ keys:
+ - InvoiceID
+ - table: linked_transactions
+ keys:
+ - SourceTransactionID
+ - TargetTransactionID
+ - table: overpayments
+ keys:
+ - Allocations.Invoice.InvoiceID
+ - table: payments
+ keys:
+ - Invoice.InvoiceID
+ - table: prepayments
+ keys:
+ - Allocations.Invoice.InvoiceID
+ items_ItemID:
+ - table: items
+ keys:
+ - ItemID
+ journals_JournalID:
+ - table: journals
+ keys:
+ - JournalID
+ linked_transactions_LinkedTransactionID:
+ - table: linked_transactions
+ keys:
+ - LinkedTransactionID
+ manual_journals_ManualJournalID:
+ - table: manial_journals
+ keys:
+ - ManualJournalID
+ organisations_OrganisationID:
+ - table: organisations
+ keys:
+ - OrganisationID
+ overpayments_OverpaymentID:
+ - table: bank_transactions
+ keys:
+ - OverpaymentID
+ - table: invoices
+ keys:
+ - Overpayments.Overpayment.OverpaymentID
+ - table: overpayments
+ keys:
+ - OverpaymentID
+ - table: payments
+ keys:
+ - Overpayment.OverpaymentID
+ payments_PaymentID:
+ - table: expense_claims
+ keys:
+ - Payments.PaymentID
+ - table: invoices
+ keys:
+ - Payments.PaymentID
+ - table: overpayments
+ keys:
+ - Payments.PaymentID
+ - table: payments
+ keys:
+ - PaymentID
+ prepayments_PrepaymentID:
+ - table: bank_transactions
+ keys:
+ - PrepaymentID
+ - table: invoices
+ keys:
+ - Prepayments.PrepaymentID
+ - table: payments
+ keys:
+ - Prepayments.PrepaymentID
+ - table: prepayments
+ keys:
+ - PrepaymentID
+ purchase_orders_PurchaseOrderID:
+ - table: purchase_orders
+ keys:
+ - PurchaseOrderID
+ receipts_ReceiptID:
+ - table: expense_claims
+ keys:
+ - Receipts.ReceiptID
+ - table: receipts
+ keys:
+ - ReceiptID
+ repeating_invoices_RepeatingInvoiceID:
+ - table: repeating_invoices
+ keys:
+ - RepeatingInvoiceID
+ linked_transactions_SourceTransactionID:
+ - table: bank_transactions
+ keys:
+ - BankTransactionID
+ - table: invoices
+ keys:
+ - InvoiceID
+ tax_rates_TaxName:
+ - table: tax_rates
+ keys:
+ - Name
+ - table: journals
+ keys:
+ - JournalLines.TaxName
+ tracking_categories_TrackingCategoryID:
+ - table: contacts
+ keys:
+ - SalesTrackingCategories.TrackingCategoryID
+ - PurchasesTrackingCategories.TrackingCategoryID
+ - table: credit_notes
+ keys:
+ - LineItems.Tracking.TrackingCategoryID
+ - table: invoices
+ keys:
+ - LineItems.Tracking.TrackingCategoryID
+ - table: journals
+ keys:
+ - JournalLines.TrackingCategories.TrackingCategoryID
+ - table: manual_journals
+ keys:
+ - JournalLines.Tracking.TrackingCategoryID
+ - table: overpayments
+ keys:
+ - LineItems.Tracking.TrackingCategoryID
+ - table: prepayments
+ keys:
+ - LineItems.Tracking.TrackingCategoryID
+ - table: purchase_orders
+ keys:
+ - LineItems.Tracking.TrackingCategoryID
+ - table: receipts
+ keys:
+ - LineItems.Tracking.TrackingCategoryID
+ - table: repeating_invoices
+ keys:
+ - LineItems.Tracking.TrackingCategoryID
+ - table: tracking_categories
+ keys:
+ - TrackingCategoryID
+ users_UserID:
+ - table: expense_claims
+ keys:
+ - User.UserID
+ - table: receipts
+ keys:
+ - User.UserID
+tables:
+- table-name: accounts
+ join:
+ - table-name: bank_transactions
+ keys:
+ - key: AccountID
+ foreign-key: BankAccount.AccountID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: bank_transfers
+ keys:
+ - key: AccountID
+ foreign-key: FromBankAccount.AccountID
+ - key: AccountID
+ foreign-key: ToBankAccount.AccountID
+ - table-name: journals
+ keys:
+ - key: AccountID
+ foreign-key: JournalLines.AccountID
+ - table-name: payments
+ keys:
+ - key: AccountID
+ foreign-key: Account.AccountID
+ - table-name: credit_notes
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: currencies
+ keys:
+ - key: CurrencyCode
+ foreign-key: Code
+ - table-name: invoices
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: prepayments
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: purchase_orders
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: repeating_invoices
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+- table-name: bank_transactions
+ join:
+ - table-name: accounts
+ keys:
+ - key: BankAccount.AccountID
+ foreign-key: AccountID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: bank_transfers
+ keys:
+ - key: BankAccount.AccountID
+ foreign-key: FromBankAccount.AccountID
+ - key: BankAccount.AccountID
+ foreign-key: ToBankAccount.AccountID
+ - table-name: journals
+ keys:
+ - key: BankAccount.AccountID
+ foreign-key: JournalLines.AccountID
+ - table-name: payments
+ keys:
+ - key: BankAccount.AccountID
+ foreign-key: Account.AccountID
+ - key: OverpaymentID
+ foreign-key: Overpayment.OverpaymentID
+ - key: PrepaymentID
+ foreign-key: Prepayments.PrepaymentID
+ - table-name: linked_transactions
+ keys:
+ - key: BankTransactionID
+ foreign-key: SourceTransactionID
+ - table-name: credit_notes
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: currencies
+ keys:
+ - key: CurrencyCode
+ foreign-key: Code
+ - table-name: invoices
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: OverpaymentID
+ foreign-key: Overpayments.Overpayment.OverpaymentID
+ - key: PrepaymentID
+ foreign-key: Prepayments.PrepaymentID
+ - key: BankTransactionID
+ foreign-key: InvoiceID
+ - table-name: prepayments
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: PrepaymentID
+ foreign-key: PrepaymentID
+ - table-name: purchase_orders
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: repeating_invoices
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: overpayments
+ keys:
+ - key: OverpaymentID
+ foreign-key: OverpaymentID
+- table-name: bank_transfers
+ join:
+ - table-name: accounts
+ keys:
+ - key: FromBankAccount.AccountID
+ foreign-key: AccountID
+ - key: ToBankAccount.AccountID
+ foreign-key: AccountID
+ - table-name: bank_transactions
+ keys:
+ - key: FromBankAccount.AccountID
+ foreign-key: BankAccount.AccountID
+ - key: ToBankAccount.AccountID
+ foreign-key: BankAccount.AccountID
+ - table-name: journals
+ keys:
+ - key: FromBankAccount.AccountID
+ foreign-key: JournalLines.AccountID
+ - key: ToBankAccount.AccountID
+ foreign-key: JournalLines.AccountID
+ - table-name: payments
+ keys:
+ - key: FromBankAccount.AccountID
+ foreign-key: Account.AccountID
+ - key: ToBankAccount.AccountID
+ foreign-key: Account.AccountID
+- table-name: journals
+ join:
+ - table-name: accounts
+ keys:
+ - key: JournalLines.AccountID
+ foreign-key: AccountID
+ - table-name: bank_transactions
+ keys:
+ - key: JournalLines.AccountID
+ foreign-key: BankAccount.AccountID
+ - table-name: bank_transfers
+ keys:
+ - key: JournalLines.AccountID
+ foreign-key: FromBankAccount.AccountID
+ - key: JournalLines.AccountID
+ foreign-key: ToBankAccount.AccountID
+ - table-name: payments
+ keys:
+ - key: JournalLines.AccountID
+ foreign-key: Account.AccountID
+ - table-name: tax_rates
+ keys:
+ - key: JournalLines.TaxName
+ foreign-key: Name
+ - table-name: contacts
+ keys:
+ - key: JournalLines.TrackingCategories.TrackingCategoryID
+ foreign-key: SalesTrackingCategories.TrackingCategoryID
+ - key: JournalLines.TrackingCategories.TrackingCategoryID
+ foreign-key: PurchasesTrackingCategories.TrackingCategoryID
+ - table-name: credit_notes
+ keys:
+ - key: JournalLines.TrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: invoices
+ keys:
+ - key: JournalLines.TrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: manual_journals
+ keys:
+ - key: JournalLines.TrackingCategories.TrackingCategoryID
+ foreign-key: JournalLines.Tracking.TrackingCategoryID
+ - table-name: overpayments
+ keys:
+ - key: JournalLines.TrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: prepayments
+ keys:
+ - key: JournalLines.TrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: purchase_orders
+ keys:
+ - key: JournalLines.TrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: receipts
+ keys:
+ - key: JournalLines.TrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: repeating_invoices
+ keys:
+ - key: JournalLines.TrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: tracking_categories
+ keys:
+ - key: JournalLines.TrackingCategories.TrackingCategoryID
+ foreign-key: TrackingCategoryID
+- table-name: payments
+ join:
+ - table-name: accounts
+ keys:
+ - key: Account.AccountID
+ foreign-key: AccountID
+ - table-name: bank_transactions
+ keys:
+ - key: Account.AccountID
+ foreign-key: BankAccount.AccountID
+ - key: Overpayment.OverpaymentID
+ foreign-key: OverpaymentID
+ - key: Prepayments.PrepaymentID
+ foreign-key: PrepaymentID
+ - table-name: bank_transfers
+ keys:
+ - key: Account.AccountID
+ foreign-key: FromBankAccount.AccountID
+ - key: Account.AccountID
+ foreign-key: ToBankAccount.AccountID
+ - table-name: journals
+ keys:
+ - key: Account.AccountID
+ foreign-key: JournalLines.AccountID
+ - table-name: invoices
+ keys:
+ - key: Invoice.InvoiceID
+ foreign-key: InvoiceID
+ - key: Overpayment.OverpaymentID
+ foreign-key: Overpayments.Overpayment.OverpaymentID
+ - key: PaymentID
+ foreign-key: Payments.PaymentID
+ - key: Prepayments.PrepaymentID
+ foreign-key: Prepayments.PrepaymentID
+ - table-name: linked_transactions
+ keys:
+ - key: Invoice.InvoiceID
+ foreign-key: SourceTransactionID
+ - key: Invoice.InvoiceID
+ foreign-key: TargetTransactionID
+ - table-name: overpayments
+ keys:
+ - key: Invoice.InvoiceID
+ foreign-key: Allocations.Invoice.InvoiceID
+ - key: Overpayment.OverpaymentID
+ foreign-key: OverpaymentID
+ - key: PaymentID
+ foreign-key: Payments.PaymentID
+ - table-name: prepayments
+ keys:
+ - key: Invoice.InvoiceID
+ foreign-key: Allocations.Invoice.InvoiceID
+ - key: Prepayments.PrepaymentID
+ foreign-key: PrepaymentID
+ - table-name: expense_claims
+ keys:
+ - key: PaymentID
+ foreign-key: Payments.PaymentID
+- table-name: linked_transactions
+ join:
+ - table-name: bank_transactions
+ keys:
+ - key: SourceTransactionID
+ foreign-key: BankTransactionID
+ - table-name: contacts
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - table-name: credit_notes
+ keys:
+ - key: ContactID
+ foreign-key: Contact.ContactID
+ - table-name: invoices
+ keys:
+ - key: ContactID
+ foreign-key: Contact.ContactID
+ - key: SourceTransactionID
+ foreign-key: InvoiceID
+ - key: TargetTransactionID
+ foreign-key: InvoiceID
+ - table-name: overpayments
+ keys:
+ - key: ContactID
+ foreign-key: Contact.ContactID
+ - key: SourceTransactionID
+ foreign-key: Allocations.Invoice.InvoiceID
+ - key: TargetTransactionID
+ foreign-key: Allocations.Invoice.InvoiceID
+ - table-name: prepayments
+ keys:
+ - key: ContactID
+ foreign-key: Contact.ContactID
+ - key: SourceTransactionID
+ foreign-key: Allocations.Invoice.InvoiceID
+ - key: TargetTransactionID
+ foreign-key: Allocations.Invoice.InvoiceID
+ - table-name: receipts
+ keys:
+ - key: ContactID
+ foreign-key: Contact.ContactID
+ - table-name: repeating_invoices
+ keys:
+ - key: ContactID
+ foreign-key: Contact.ContactID
+ - table-name: payments
+ keys:
+ - key: SourceTransactionID
+ foreign-key: Invoice.InvoiceID
+ - key: TargetTransactionID
+ foreign-key: Invoice.InvoiceID
+- table-name: branding_themes
+ join:
+ - table-name: contacts
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingTheme.BrandingThemeID
+ - table-name: credit_notes
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - table-name: invoices
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - table-name: purchase_orders
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - table-name: repeating_invoices
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+- table-name: contacts
+ join:
+ - table-name: branding_themes
+ keys:
+ - key: BrandingTheme.BrandingThemeID
+ foreign-key: BrandingThemeID
+ - table-name: credit_notes
+ keys:
+ - key: BrandingTheme.BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: ContactID
+ foreign-key: Contact.ContactID
+ - key: SalesTrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - key: PurchasesTrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: invoices
+ keys:
+ - key: BrandingTheme.BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: ContactID
+ foreign-key: Contact.ContactID
+ - key: SalesTrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - key: PurchasesTrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: purchase_orders
+ keys:
+ - key: BrandingTheme.BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: SalesTrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - key: PurchasesTrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: repeating_invoices
+ keys:
+ - key: BrandingTheme.BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: ContactID
+ foreign-key: Contact.ContactID
+ - key: SalesTrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - key: PurchasesTrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: contact_groups
+ keys:
+ - key: ContactGroups.ContactGroupID
+ foreign-key: ContactGroupID
+ - table-name: linked_transactions
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - table-name: overpayments
+ keys:
+ - key: ContactID
+ foreign-key: Contact.ContactID
+ - key: SalesTrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - key: PurchasesTrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: prepayments
+ keys:
+ - key: ContactID
+ foreign-key: Contact.ContactID
+ - key: SalesTrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - key: PurchasesTrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: receipts
+ keys:
+ - key: ContactID
+ foreign-key: Contact.ContactID
+ - key: SalesTrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - key: PurchasesTrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: journals
+ keys:
+ - key: SalesTrackingCategories.TrackingCategoryID
+ foreign-key: JournalLines.TrackingCategories.TrackingCategoryID
+ - key: PurchasesTrackingCategories.TrackingCategoryID
+ foreign-key: JournalLines.TrackingCategories.TrackingCategoryID
+ - table-name: manual_journals
+ keys:
+ - key: SalesTrackingCategories.TrackingCategoryID
+ foreign-key: JournalLines.Tracking.TrackingCategoryID
+ - key: PurchasesTrackingCategories.TrackingCategoryID
+ foreign-key: JournalLines.Tracking.TrackingCategoryID
+ - table-name: tracking_categories
+ keys:
+ - key: SalesTrackingCategories.TrackingCategoryID
+ foreign-key: TrackingCategoryID
+ - key: PurchasesTrackingCategories.TrackingCategoryID
+ foreign-key: TrackingCategoryID
+- table-name: credit_notes
+ join:
+ - table-name: branding_themes
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - table-name: contacts
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingTheme.BrandingThemeID
+ - key: Contact.ContactID
+ foreign-key: ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: SalesTrackingCategories.TrackingCategoryID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: PurchasesTrackingCategories.TrackingCategoryID
+ - table-name: invoices
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: CreditNoteID
+ foreign-key: CreditNotes.CreditNoteID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: purchase_orders
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: repeating_invoices
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: linked_transactions
+ keys:
+ - key: Contact.ContactID
+ foreign-key: ContactID
+ - table-name: overpayments
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: prepayments
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: receipts
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: accounts
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: bank_transactions
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: currencies
+ keys:
+ - key: CurrencyCode
+ foreign-key: Code
+ - table-name: journals
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.TrackingCategories.TrackingCategoryID
+ - table-name: manual_journals
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.Tracking.TrackingCategoryID
+ - table-name: tracking_categories
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: TrackingCategoryID
+- table-name: invoices
+ join:
+ - table-name: branding_themes
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - table-name: contacts
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingTheme.BrandingThemeID
+ - key: Contact.ContactID
+ foreign-key: ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: SalesTrackingCategories.TrackingCategoryID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: PurchasesTrackingCategories.TrackingCategoryID
+ - table-name: credit_notes
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: CreditNotes.CreditNoteID
+ foreign-key: CreditNoteID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: purchase_orders
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: repeating_invoices
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: linked_transactions
+ keys:
+ - key: Contact.ContactID
+ foreign-key: ContactID
+ - key: InvoiceID
+ foreign-key: SourceTransactionID
+ - key: InvoiceID
+ foreign-key: TargetTransactionID
+ - table-name: overpayments
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: InvoiceID
+ foreign-key: Allocations.Invoice.InvoiceID
+ - key: Overpayments.Overpayment.OverpaymentID
+ foreign-key: OverpaymentID
+ - key: Payments.PaymentID
+ foreign-key: Payments.PaymentID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: prepayments
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: InvoiceID
+ foreign-key: Allocations.Invoice.InvoiceID
+ - key: Prepayments.PrepaymentID
+ foreign-key: PrepaymentID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: receipts
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: accounts
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: bank_transactions
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: Overpayments.Overpayment.OverpaymentID
+ foreign-key: OverpaymentID
+ - key: Prepayments.PrepaymentID
+ foreign-key: PrepaymentID
+ - key: InvoiceID
+ foreign-key: BankTransactionID
+ - table-name: currencies
+ keys:
+ - key: CurrencyCode
+ foreign-key: Code
+ - table-name: payments
+ keys:
+ - key: InvoiceID
+ foreign-key: Invoice.InvoiceID
+ - key: Overpayments.Overpayment.OverpaymentID
+ foreign-key: Overpayment.OverpaymentID
+ - key: Payments.PaymentID
+ foreign-key: PaymentID
+ - key: Prepayments.PrepaymentID
+ foreign-key: Prepayments.PrepaymentID
+ - table-name: expense_claims
+ keys:
+ - key: Payments.PaymentID
+ foreign-key: Payments.PaymentID
+ - table-name: journals
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.TrackingCategories.TrackingCategoryID
+ - table-name: manual_journals
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.Tracking.TrackingCategoryID
+ - table-name: tracking_categories
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: TrackingCategoryID
+- table-name: purchase_orders
+ join:
+ - table-name: branding_themes
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - table-name: contacts
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingTheme.BrandingThemeID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: SalesTrackingCategories.TrackingCategoryID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: PurchasesTrackingCategories.TrackingCategoryID
+ - table-name: credit_notes
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: invoices
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: repeating_invoices
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: accounts
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: bank_transactions
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: currencies
+ keys:
+ - key: CurrencyCode
+ foreign-key: Code
+ - table-name: prepayments
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: journals
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.TrackingCategories.TrackingCategoryID
+ - table-name: manual_journals
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.Tracking.TrackingCategoryID
+ - table-name: overpayments
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: receipts
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: tracking_categories
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: TrackingCategoryID
+- table-name: repeating_invoices
+ join:
+ - table-name: branding_themes
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - table-name: contacts
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingTheme.BrandingThemeID
+ - key: Contact.ContactID
+ foreign-key: ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: SalesTrackingCategories.TrackingCategoryID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: PurchasesTrackingCategories.TrackingCategoryID
+ - table-name: credit_notes
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: invoices
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: purchase_orders
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: linked_transactions
+ keys:
+ - key: Contact.ContactID
+ foreign-key: ContactID
+ - table-name: overpayments
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: prepayments
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: receipts
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: accounts
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: bank_transactions
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: currencies
+ keys:
+ - key: CurrencyCode
+ foreign-key: Code
+ - table-name: journals
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.TrackingCategories.TrackingCategoryID
+ - table-name: manual_journals
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.Tracking.TrackingCategoryID
+ - table-name: tracking_categories
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: TrackingCategoryID
+- table-name: contact_groups
+ join:
+ - table-name: contacts
+ keys:
+ - key: ContactGroupID
+ foreign-key: ContactGroups.ContactGroupID
+- table-name: overpayments
+ join:
+ - table-name: contacts
+ keys:
+ - key: Contact.ContactID
+ foreign-key: ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: SalesTrackingCategories.TrackingCategoryID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: PurchasesTrackingCategories.TrackingCategoryID
+ - table-name: credit_notes
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: invoices
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: Allocations.Invoice.InvoiceID
+ foreign-key: InvoiceID
+ - key: OverpaymentID
+ foreign-key: Overpayments.Overpayment.OverpaymentID
+ - key: Payments.PaymentID
+ foreign-key: Payments.PaymentID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: linked_transactions
+ keys:
+ - key: Contact.ContactID
+ foreign-key: ContactID
+ - key: Allocations.Invoice.InvoiceID
+ foreign-key: SourceTransactionID
+ - key: Allocations.Invoice.InvoiceID
+ foreign-key: TargetTransactionID
+ - table-name: prepayments
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: Allocations.Invoice.InvoiceID
+ foreign-key: Allocations.Invoice.InvoiceID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: receipts
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: repeating_invoices
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: payments
+ keys:
+ - key: Allocations.Invoice.InvoiceID
+ foreign-key: Invoice.InvoiceID
+ - key: OverpaymentID
+ foreign-key: Overpayment.OverpaymentID
+ - key: Payments.PaymentID
+ foreign-key: PaymentID
+ - table-name: bank_transactions
+ keys:
+ - key: OverpaymentID
+ foreign-key: OverpaymentID
+ - table-name: expense_claims
+ keys:
+ - key: Payments.PaymentID
+ foreign-key: Payments.PaymentID
+ - table-name: journals
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.TrackingCategories.TrackingCategoryID
+ - table-name: manual_journals
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.Tracking.TrackingCategoryID
+ - table-name: purchase_orders
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: tracking_categories
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: TrackingCategoryID
+- table-name: prepayments
+ join:
+ - table-name: contacts
+ keys:
+ - key: Contact.ContactID
+ foreign-key: ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: SalesTrackingCategories.TrackingCategoryID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: PurchasesTrackingCategories.TrackingCategoryID
+ - table-name: credit_notes
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: invoices
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: Allocations.Invoice.InvoiceID
+ foreign-key: InvoiceID
+ - key: PrepaymentID
+ foreign-key: Prepayments.PrepaymentID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: linked_transactions
+ keys:
+ - key: Contact.ContactID
+ foreign-key: ContactID
+ - key: Allocations.Invoice.InvoiceID
+ foreign-key: SourceTransactionID
+ - key: Allocations.Invoice.InvoiceID
+ foreign-key: TargetTransactionID
+ - table-name: overpayments
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: Allocations.Invoice.InvoiceID
+ foreign-key: Allocations.Invoice.InvoiceID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: receipts
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: repeating_invoices
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: accounts
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: bank_transactions
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: PrepaymentID
+ foreign-key: PrepaymentID
+ - table-name: currencies
+ keys:
+ - key: CurrencyCode
+ foreign-key: Code
+ - table-name: purchase_orders
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: payments
+ keys:
+ - key: Allocations.Invoice.InvoiceID
+ foreign-key: Invoice.InvoiceID
+ - key: PrepaymentID
+ foreign-key: Prepayments.PrepaymentID
+ - table-name: journals
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.TrackingCategories.TrackingCategoryID
+ - table-name: manual_journals
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.Tracking.TrackingCategoryID
+ - table-name: tracking_categories
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: TrackingCategoryID
+- table-name: receipts
+ join:
+ - table-name: contacts
+ keys:
+ - key: Contact.ContactID
+ foreign-key: ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: SalesTrackingCategories.TrackingCategoryID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: PurchasesTrackingCategories.TrackingCategoryID
+ - table-name: credit_notes
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: invoices
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: linked_transactions
+ keys:
+ - key: Contact.ContactID
+ foreign-key: ContactID
+ - table-name: overpayments
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: prepayments
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: repeating_invoices
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: expense_claims
+ keys:
+ - key: ReceiptID
+ foreign-key: Receipts.ReceiptID
+ - key: User.UserID
+ foreign-key: User.UserID
+ - table-name: journals
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.TrackingCategories.TrackingCategoryID
+ - table-name: manual_journals
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.Tracking.TrackingCategoryID
+ - table-name: purchase_orders
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: tracking_categories
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: TrackingCategoryID
+- table-name: currencies
+ join:
+ - table-name: accounts
+ keys:
+ - key: Code
+ foreign-key: CurrencyCode
+ - table-name: bank_transactions
+ keys:
+ - key: Code
+ foreign-key: CurrencyCode
+ - table-name: credit_notes
+ keys:
+ - key: Code
+ foreign-key: CurrencyCode
+ - table-name: invoices
+ keys:
+ - key: Code
+ foreign-key: CurrencyCode
+ - table-name: prepayments
+ keys:
+ - key: Code
+ foreign-key: CurrencyCode
+ - table-name: purchase_orders
+ keys:
+ - key: Code
+ foreign-key: CurrencyCode
+ - table-name: repeating_invoices
+ keys:
+ - key: Code
+ foreign-key: CurrencyCode
+- table-name: expense_claims
+ join:
+ - table-name: invoices
+ keys:
+ - key: Payments.PaymentID
+ foreign-key: Payments.PaymentID
+ - table-name: overpayments
+ keys:
+ - key: Payments.PaymentID
+ foreign-key: Payments.PaymentID
+ - table-name: payments
+ keys:
+ - key: Payments.PaymentID
+ foreign-key: PaymentID
+ - table-name: receipts
+ keys:
+ - key: Receipts.ReceiptID
+ foreign-key: ReceiptID
+ - key: User.UserID
+ foreign-key: User.UserID
+- table-name: tax_rates
+ join:
+ - table-name: journals
+ keys:
+ - key: Name
+ foreign-key: JournalLines.TaxName
+- table-name: manual_journals
+ join:
+ - table-name: contacts
+ keys:
+ - key: JournalLines.Tracking.TrackingCategoryID
+ foreign-key: SalesTrackingCategories.TrackingCategoryID
+ - key: JournalLines.Tracking.TrackingCategoryID
+ foreign-key: PurchasesTrackingCategories.TrackingCategoryID
+ - table-name: credit_notes
+ keys:
+ - key: JournalLines.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: invoices
+ keys:
+ - key: JournalLines.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: journals
+ keys:
+ - key: JournalLines.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.TrackingCategories.TrackingCategoryID
+ - table-name: overpayments
+ keys:
+ - key: JournalLines.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: prepayments
+ keys:
+ - key: JournalLines.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: purchase_orders
+ keys:
+ - key: JournalLines.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: receipts
+ keys:
+ - key: JournalLines.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: repeating_invoices
+ keys:
+ - key: JournalLines.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: tracking_categories
+ keys:
+ - key: JournalLines.Tracking.TrackingCategoryID
+ foreign-key: TrackingCategoryID
+- table-name: tracking_categories
+ join:
+ - table-name: contacts
+ keys:
+ - key: TrackingCategoryID
+ foreign-key: SalesTrackingCategories.TrackingCategoryID
+ - key: TrackingCategoryID
+ foreign-key: PurchasesTrackingCategories.TrackingCategoryID
+ - table-name: credit_notes
+ keys:
+ - key: TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: invoices
+ keys:
+ - key: TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: journals
+ keys:
+ - key: TrackingCategoryID
+ foreign-key: JournalLines.TrackingCategories.TrackingCategoryID
+ - table-name: manual_journals
+ keys:
+ - key: TrackingCategoryID
+ foreign-key: JournalLines.Tracking.TrackingCategoryID
+ - table-name: overpayments
+ keys:
+ - key: TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: prepayments
+ keys:
+ - key: TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: purchase_orders
+ keys:
+ - key: TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: receipts
+ keys:
+ - key: TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: repeating_invoices
+ keys:
+ - key: TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
diff --git a/_data/taps/schemas/xero/v1/xero-v1-tables.yml b/_data/taps/schemas/xero/v1/xero-v1-tables.yml
new file mode 100644
index 000000000..ab5d8aa2c
--- /dev/null
+++ b/_data/taps/schemas/xero/v1/xero-v1-tables.yml
@@ -0,0 +1,312 @@
+tap: xero
+version: '1'
+tables:
+- name: accounts
+ description: 'The `{{ table.name }}` table contains info about the various accounts
+ (ex: banking) connected to your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/accounts.json
+ api-method: https://developer.xero.com/documentation/api/accounts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: AccountID
+ replication-key: UpdatedDateUTC
+- name: bank_transactions
+ description: 'The `{{ table.name }}` table contains info about the bank transactions
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/bank_transactions.json
+ api-method: https://developer.xero.com/documentation/api/banktransactions
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: BankTransactionID
+ replication-key: UpdatedDateUTC
+- name: bank_transfers
+ description: "The `{{ table.name }}` table contains info about bank transfers. \n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/bank_transfers.json
+ api-method: https://developer.xero.com/documentation/api/bank-transfers
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: BankTransferID
+ replication-key: CreatedDateUTC
+- name: branding_themes
+ description: 'The `{{ table.name }}` table contains info about your branding themes.
+ A branding theme is customization you can apply to customer-facing documents such
+ as invoices, statements, quotes, etc.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/branding_themes.json
+ api-method: https://developer.xero.com/documentation/api/branding-themes
+ table-details:
+ replication-method: Full Table
+ primary-key: BrandingThemeID
+- name: contacts
+ description: 'The `{{ table.name }}` table contains info about the customers and
+ suppliers you do business with.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/contacts.json
+ api-method: https://developer.xero.com/documentation/api/contacts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: ContactID
+ replication-key: UpdatedDateUTC
+- name: contact_groups
+ description: 'The `{{ table.name }}` table contains info about your contact groups.
+ A contact group is a group of contacts that have something in common.
+
+
+ **Note**: Due to the limits of {{ integration.display_name }}''s API, only active
+ contact groups (`Status: ACTIVE`) may be retrieved.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/contact_groups.json
+ api-method: https://developer.xero.com/documentation/api/contactgroups
+ table-details:
+ replication-method: Full Table
+ primary-key: ContactGroupID
+- name: credit_notes
+ description: 'The `{{ table.name }}` table contains info about credit notes. A credit
+ note is similar to an invoice, except it reduces the amount you owe a supplier
+ or the amount a customer owes you.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/credit_notes.json
+ api-method: https://developer.xero.com/documentation/api/credit-notes
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: CreditNoteID
+ replication-key: UpdatedDateUTC
+- name: currencies
+ description: 'The `{{ table.name }}` table contains info about the currencies available
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/currencies.json
+ api-method: https://developer.xero.com/documentation/api/currencies
+ table-details:
+ replication-method: Full Table
+ primary-key: Code
+- name: employees
+ description: 'The `{{ table.name }}` table contains info about employees.
+
+
+ **Note**: According to [{{ integration.display_name }}''s documentation](https://developer.xero.com/documentation/api/employees),
+ the endpoint that produces this table is:
+
+
+ > Used for an [employee type](https://help.xero.com/int/Contacts_EmployeeAdd)
+ used exclusively by the global Payrun functionality in {{ integration.display_name
+ }} core accounting.
+
+
+ As a result, this table may not contain all employee data. Refer to the `contacts`
+ table if you believe you are missing records.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/employees.json
+ api-method: https://developer.xero.com/documentation/api/employees
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: EmployeeID
+ replication-key: UpdatedDateUTC
+- name: expense_claims
+ description: 'The `{{ table.name }}` table contains info about expense claims.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/expense_claims.json
+ api-method: https://developer.xero.com/documentation/api/expense-claims
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: ExpenseClaimID
+ replication-key: UpdatedDateUTC
+- name: invoices
+ description: 'The `{{ table.name }}` table contains info about sales invoices, which
+ are requests for payment for goods and services.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/invoices.json
+ api-method: https://developer.xero.com/documentation/api/invoices
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: InvoiceID
+ replication-key: UpdatedDateUTC
+- name: items
+ description: 'The `{{ table.name }}` table contains info about the [products and
+ services you buy and sell](https://help.xero.com/us/Inventory).
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/items.json
+ api-method: https://developer.xero.com/documentation/api/items
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: ItemID
+ replication-key: UpdatedDateUTC
+- name: journals
+ description: 'The `{{ table.name }}` table contains info about journal entries.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/journals.json
+ api-method: https://developer.xero.com/documentation/api/journals
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: JournalID
+ replication-key: JournalNumber
+- name: linked_transactions
+ description: 'The `{{ table.name }}` table contains info about linked transactions.
+ Linked transactions are transactions where line items from a purchase transaction
+ to a customer are linked to a sales transaction.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/linked_transactions.json
+ api-method: https://developer.xero.com/documentation/api/linked-transactions
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: LinkedTransactionID
+ replication-key: UpdatedDateUTC
+- name: manual_journals
+ description: 'The `{{ table.name }}` table contains info about manual journals,
+ which are used by accountants or bookkeepers to work directly with a general ledger.
+ For example: To record accrued expenses or completed work that wasn''t invoiced.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/manual_journals.json
+ api-method: https://developer.xero.com/documentation/api/manual-journals
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: ManualJournalID
+ replication-key: UpdatedDateUTC
+- name: organisations
+ description: 'The `{{ table.name }}` table contains info about the organisations
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/organisations.json
+ api-method: https://developer.xero.com/documentation/api/organisation
+ table-details:
+ replication-method: Full Table
+ primary-key: OrganisationID
+- name: overpayments
+ description: 'The `{{ table.name }}` table contains info about overpayments, which
+ are transactions where a customer pays too much or you mistakenly overpay a supplier.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/overpayments.json
+ api-method: https://developer.xero.com/documentation/api/overpayments
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: OverpaymentID
+ replication-key: UpdatedDateUTC
+- name: payments
+ description: "The `{{ table.name }}` table contains info about the payments recorded\
+ \ in your {{ integration.display_name }} account. \n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/payments.json
+ api-method: https://developer.xero.com/documentation/api/payments
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: PaymentID
+ replication-key: UpdatedDateUTC
+- name: prepayments
+ description: 'The `{{ table.name }}` table contains info about prepayments, which
+ are payments made in advance of an invoice being raised for a customer or a bill
+ being received from a supplier.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/prepayments.json
+ api-method: https://developer.xero.com/documentation/api/prepayments
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: PrepaymentID
+ replication-key: UpdatedDateUTC
+- name: purchase_orders
+ description: 'The `{{ table.name }}` table contains info about your purchase orders.
+ Purchase orders are requests sent to suppliers for specific goods and services.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/purchase_orders.json
+ api-method: https://developer.xero.com/documentation/api/purchase-orders
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: PurchaseOrderID
+ replication-key: UpdatedDateUTC
+- name: receipts
+ description: 'The `{{ table.name }}` table contains info about invoice receipts,
+ which are receipts sent to customers after an invoice has been received.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/receipts.json
+ api-method: https://developer.xero.com/documentation/api/receipts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: ReceiptID
+ replication-key: UpdatedDateUTC
+- name: repeating_invoices
+ description: 'The `{{ table.name }}` table contains info about invoices set up to
+ repeat in your {{ integration.display_name }} account. A repeating invoice is
+ a recurring transaction, or a transaction that occurs on a regular basis.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/repeating_invoices.json
+ api-method: https://developer.xero.com/documentation/api/repeating-invoices
+ table-details:
+ replication-method: Full Table
+ primary-key: RepeatingInvoiceID
+- name: tax_rates
+ description: 'The `{{ table.name }}` table contains info about the tax rates set
+ up in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/tax_rates.json
+ api-method: https://developer.xero.com/documentation/api/tax-rates
+ table-details:
+ replication-method: Full Table
+ primary-key: Name
+- name: tracking_categories
+ description: 'The `{{ table.name }}` table contains info about the tracking categories
+ in your {{ integration.display_name }} account. Tracking categories are used to
+ track the performance of different areas of a business.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/tracking_categories.json
+ api-method: https://developer.xero.com/documentation/api/tracking-categories
+ table-details:
+ replication-method: Full Table
+ primary-key: TrackingCategoryID
+- name: users
+ description: 'The `{{ table.name }}` table contains info about the users in an organisation.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/users.json
+ api-method: https://developer.xero.com/documentation/api/users
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: UserID
+ replication-key: UpdatedDateUTC
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/xero/v2/json/accounts.json b/_data/taps/schemas/xero/v2/json/accounts.json
new file mode 100644
index 000000000..14e54f8bf
--- /dev/null
+++ b/_data/taps/schemas/xero/v2/json/accounts.json
@@ -0,0 +1,116 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "AccountID": {
+ "type": [
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Class": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EnablePaymentsToAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCodeName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ShowInExpenseClaims": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SystemAccount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v2/json/bank_transactions.json b/_data/taps/schemas/xero/v2/json/bank_transactions.json
new file mode 100644
index 000000000..906cbdd54
--- /dev/null
+++ b/_data/taps/schemas/xero/v2/json/bank_transactions.json
@@ -0,0 +1,1242 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "BankAccount": {
+ "properties": {
+ "AccountID": {
+ "type": [
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Class": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EnablePaymentsToAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCodeName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ShowInExpenseClaims": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SystemAccount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "BankTransactionID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExternalLinkProviderName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsReconciled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "OverpaymentID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PrepaymentID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "accounts",
+ "contacts",
+ "line_items"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v2/json/bank_transfers.json b/_data/taps/schemas/xero/v2/json/bank_transfers.json
new file mode 100644
index 000000000..37b937859
--- /dev/null
+++ b/_data/taps/schemas/xero/v2/json/bank_transfers.json
@@ -0,0 +1,309 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "Amount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BankTransferID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "CreatedDateUTCString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FromBankAccount": {
+ "properties": {
+ "AccountID": {
+ "type": [
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Class": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EnablePaymentsToAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCodeName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ShowInExpenseClaims": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SystemAccount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "FromBankTransactionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ToBankAccount": {
+ "properties": {
+ "AccountID": {
+ "type": [
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Class": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EnablePaymentsToAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCodeName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ShowInExpenseClaims": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SystemAccount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ToBankTransactionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "accounts"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v2/json/branding_themes.json b/_data/taps/schemas/xero/v2/json/branding_themes.json
new file mode 100644
index 000000000..f176a195e
--- /dev/null
+++ b/_data/taps/schemas/xero/v2/json/branding_themes.json
@@ -0,0 +1,32 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v2/json/contact_groups.json b/_data/taps/schemas/xero/v2/json/contact_groups.json
new file mode 100644
index 000000000..4c88d5e98
--- /dev/null
+++ b/_data/taps/schemas/xero/v2/json/contact_groups.json
@@ -0,0 +1,32 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v2/json/contacts.json b/_data/taps/schemas/xero/v2/json/contacts.json
new file mode 100644
index 000000000..26fa60b38
--- /dev/null
+++ b/_data/taps/schemas/xero/v2/json/contacts.json
@@ -0,0 +1,785 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "addresses",
+ "phones",
+ "contact_groups",
+ "branding_themes",
+ "tracking_categories",
+ "validation_errors",
+ "attachments",
+ "payment_terms"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v2/json/credit_notes.json b/_data/taps/schemas/xero/v2/json/credit_notes.json
new file mode 100644
index 000000000..47b0691e5
--- /dev/null
+++ b/_data/taps/schemas/xero/v2/json/credit_notes.json
@@ -0,0 +1,2393 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "Allocations": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Invoice": {
+ "properties": {
+ "AmountCredited": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountDue": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountPaid": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "InvoiceID": {
+ "type": [
+ "string"
+ ]
+ },
+ "InvoiceNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsDiscounted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PlannedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "AppliedAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CreditNoteID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreditNoteNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RemainingCredit": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "contacts",
+ "line_items",
+ "allocations"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v2/json/currencies.json b/_data/taps/schemas/xero/v2/json/currencies.json
new file mode 100644
index 000000000..b49e2917b
--- /dev/null
+++ b/_data/taps/schemas/xero/v2/json/currencies.json
@@ -0,0 +1,20 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "Code": {
+ "type": [
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v2/json/employees.json b/_data/taps/schemas/xero/v2/json/employees.json
new file mode 100644
index 000000000..037abc013
--- /dev/null
+++ b/_data/taps/schemas/xero/v2/json/employees.json
@@ -0,0 +1,44 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "EmployeeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ExternalLink": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v2/json/expense_claims.json b/_data/taps/schemas/xero/v2/json/expense_claims.json
new file mode 100644
index 000000000..c7d699d11
--- /dev/null
+++ b/_data/taps/schemas/xero/v2/json/expense_claims.json
@@ -0,0 +1,2809 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "AmountDue": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountPaid": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ExpenseClaimID": {
+ "type": [
+ "string"
+ ]
+ },
+ "PaymentDueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Payments": {
+ "items": {
+ "properties": {
+ "Account": {
+ "properties": {
+ "AccountID": {
+ "type": [
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Class": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EnablePaymentsToAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCodeName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ShowInExpenseClaims": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SystemAccount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Amount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BankAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BatchPaymentID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CreditNote": {
+ "additionalProperties": false,
+ "properties": {
+ "CreditNoteNumber": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Invoice": {
+ "properties": {
+ "AmountCredited": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountDue": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountPaid": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "InvoiceID": {
+ "type": [
+ "string"
+ ]
+ },
+ "InvoiceNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsDiscounted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PlannedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "IsReconciled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Overpayment": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "OverpaymentID": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PaymentID": {
+ "type": [
+ "string"
+ ]
+ },
+ "PaymentType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Prepayments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "PrepaymentID": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Receipts": {
+ "items": {
+ "properties": {
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ReceiptID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ReceiptNumber": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "User": {
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsSubscriber": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "OrganisationRole": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "UserID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ReportingDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "User": {
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsSubscriber": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "OrganisationRole": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "UserID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "users",
+ "receipts",
+ "payments"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v2/json/invoices.json b/_data/taps/schemas/xero/v2/json/invoices.json
new file mode 100644
index 000000000..898eb4a0e
--- /dev/null
+++ b/_data/taps/schemas/xero/v2/json/invoices.json
@@ -0,0 +1,10393 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "AmountCredited": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountDue": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountPaid": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CreditNotes": {
+ "items": {
+ "properties": {
+ "Allocations": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Invoice": {
+ "properties": {
+ "AmountCredited": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountDue": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountPaid": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "InvoiceID": {
+ "type": [
+ "string"
+ ]
+ },
+ "InvoiceNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsDiscounted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PlannedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "AppliedAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CreditNoteID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreditNoteNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RemainingCredit": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedPaymentDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "InvoiceID": {
+ "type": [
+ "string"
+ ]
+ },
+ "InvoiceNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsDiscounted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Overpayments": {
+ "items": {
+ "properties": {
+ "Account": {
+ "properties": {
+ "AccountID": {
+ "type": [
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Class": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EnablePaymentsToAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCodeName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ShowInExpenseClaims": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SystemAccount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Amount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BankAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BatchPaymentID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CreditNote": {
+ "additionalProperties": false,
+ "properties": {
+ "CreditNoteNumber": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Invoice": {
+ "properties": {
+ "AmountCredited": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountDue": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountPaid": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "InvoiceID": {
+ "type": [
+ "string"
+ ]
+ },
+ "InvoiceNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsDiscounted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PlannedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "IsReconciled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Overpayment": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "OverpaymentID": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PaymentID": {
+ "type": [
+ "string"
+ ]
+ },
+ "PaymentType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Prepayments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "PrepaymentID": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Payments": {
+ "items": {
+ "properties": {
+ "Account": {
+ "properties": {
+ "AccountID": {
+ "type": [
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Class": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EnablePaymentsToAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCodeName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ShowInExpenseClaims": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SystemAccount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Amount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BankAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BatchPaymentID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CreditNote": {
+ "additionalProperties": false,
+ "properties": {
+ "CreditNoteNumber": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Invoice": {
+ "properties": {
+ "AmountCredited": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountDue": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountPaid": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "InvoiceID": {
+ "type": [
+ "string"
+ ]
+ },
+ "InvoiceNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsDiscounted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PlannedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "IsReconciled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Overpayment": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "OverpaymentID": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PaymentID": {
+ "type": [
+ "string"
+ ]
+ },
+ "PaymentType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Prepayments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "PrepaymentID": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PlannedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "PlannedPaymentDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Prepayments": {
+ "items": {
+ "properties": {
+ "Allocations": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Invoice": {
+ "properties": {
+ "AmountCredited": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountDue": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountPaid": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "InvoiceID": {
+ "type": [
+ "string"
+ ]
+ },
+ "InvoiceNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsDiscounted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PlannedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "AppliedAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Payments": {
+ "items": {
+ "properties": {
+ "Account": {
+ "properties": {
+ "AccountID": {
+ "type": [
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Class": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EnablePaymentsToAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCodeName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ShowInExpenseClaims": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SystemAccount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Amount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BankAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BatchPaymentID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CreditNote": {
+ "additionalProperties": false,
+ "properties": {
+ "CreditNoteNumber": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Invoice": {
+ "properties": {
+ "AmountCredited": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountDue": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountPaid": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "InvoiceID": {
+ "type": [
+ "string"
+ ]
+ },
+ "InvoiceNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsDiscounted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PlannedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "IsReconciled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Overpayment": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "OverpaymentID": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PaymentID": {
+ "type": [
+ "string"
+ ]
+ },
+ "PaymentType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Prepayments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "PrepaymentID": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PrepaymentID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RemainingCredit": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "contacts",
+ "payments",
+ "prepayments",
+ "overpayments",
+ "line_items",
+ "credit_notes"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v2/json/items.json b/_data/taps/schemas/xero/v2/json/items.json
new file mode 100644
index 000000000..c9170c2fc
--- /dev/null
+++ b/_data/taps/schemas/xero/v2/json/items.json
@@ -0,0 +1,150 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "InventoryAssetAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsPurchased": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSold": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsTrackedAsInventory": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchaseDescription": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchaseDetails": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "COGSAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UnitPrice": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "QuantityOnHand": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "SalesDetails": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UnitPrice": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "TotalCostPool": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v2/json/journals.json b/_data/taps/schemas/xero/v2/json/journals.json
new file mode 100644
index 000000000..fd7cba4ec
--- /dev/null
+++ b/_data/taps/schemas/xero/v2/json/journals.json
@@ -0,0 +1,245 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "JournalDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "JournalID": {
+ "type": [
+ "string"
+ ]
+ },
+ "JournalLines": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "GrossAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "JournalLineID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "NetAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "JournalNumber": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SourceID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SourceType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "tracking_categories"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v2/json/linked_transactions.json b/_data/taps/schemas/xero/v2/json/linked_transactions.json
new file mode 100644
index 000000000..f388773cf
--- /dev/null
+++ b/_data/taps/schemas/xero/v2/json/linked_transactions.json
@@ -0,0 +1,68 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "ContactID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LinkedTransactionID": {
+ "type": [
+ "string"
+ ]
+ },
+ "SourceLineItemID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SourceTransactionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SourceTransactionTypeCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TargetLineItemID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TargetTransactionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v2/json/manual_journals.json b/_data/taps/schemas/xero/v2/json/manual_journals.json
new file mode 100644
index 000000000..d1fa58d5c
--- /dev/null
+++ b/_data/taps/schemas/xero/v2/json/manual_journals.json
@@ -0,0 +1,243 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "JournalLines": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsBlank": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ManualJournalID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Narration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ShowOnCashBasisReports": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "tracking_categories"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v2/json/organisations.json b/_data/taps/schemas/xero/v2/json/organisations.json
new file mode 100644
index 000000000..46834db3f
--- /dev/null
+++ b/_data/taps/schemas/xero/v2/json/organisations.json
@@ -0,0 +1,355 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "APIKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "BaseCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DefaultPurchasesTax": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultSalesTax": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EndOfYearLockDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExternalLinks": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "LinkType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "FinancialYearEndDay": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "FinancialYearEndMonth": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "IsDemoCompany": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LegalName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineOfBusiness": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "OrganisationEntityType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "OrganisationID": {
+ "type": [
+ "string"
+ ]
+ },
+ "OrganisationStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "OrganisationType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "PaysTax": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "PeriodLockDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "RegistrationNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTaxBasis": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTaxPeriod": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ShortCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "addresses",
+ "phones",
+ "payment_terms"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v2/json/overpayments.json b/_data/taps/schemas/xero/v2/json/overpayments.json
new file mode 100644
index 000000000..c42ca8d5b
--- /dev/null
+++ b/_data/taps/schemas/xero/v2/json/overpayments.json
@@ -0,0 +1,3832 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "Allocations": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Invoice": {
+ "properties": {
+ "AmountCredited": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountDue": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountPaid": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "InvoiceID": {
+ "type": [
+ "string"
+ ]
+ },
+ "InvoiceNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsDiscounted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PlannedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "AppliedAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "OverpaymentID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Payments": {
+ "items": {
+ "properties": {
+ "Account": {
+ "properties": {
+ "AccountID": {
+ "type": [
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Class": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EnablePaymentsToAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCodeName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ShowInExpenseClaims": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SystemAccount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Amount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BankAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BatchPaymentID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CreditNote": {
+ "additionalProperties": false,
+ "properties": {
+ "CreditNoteNumber": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Invoice": {
+ "properties": {
+ "AmountCredited": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountDue": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountPaid": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "InvoiceID": {
+ "type": [
+ "string"
+ ]
+ },
+ "InvoiceNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsDiscounted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PlannedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "IsReconciled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Overpayment": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "OverpaymentID": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PaymentID": {
+ "type": [
+ "string"
+ ]
+ },
+ "PaymentType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Prepayments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "PrepaymentID": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RemainingCredit": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "contacts",
+ "line_items",
+ "payments",
+ "allocations"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v2/json/payments.json b/_data/taps/schemas/xero/v2/json/payments.json
new file mode 100644
index 000000000..eb17d161f
--- /dev/null
+++ b/_data/taps/schemas/xero/v2/json/payments.json
@@ -0,0 +1,1474 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "Account": {
+ "properties": {
+ "AccountID": {
+ "type": [
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Class": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EnablePaymentsToAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCodeName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ShowInExpenseClaims": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SystemAccount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Amount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BankAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BatchPaymentID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CreditNote": {
+ "additionalProperties": false,
+ "properties": {
+ "CreditNoteNumber": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Invoice": {
+ "properties": {
+ "AmountCredited": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountDue": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountPaid": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "InvoiceID": {
+ "type": [
+ "string"
+ ]
+ },
+ "InvoiceNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsDiscounted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PlannedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "IsReconciled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Overpayment": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "OverpaymentID": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PaymentID": {
+ "type": [
+ "string"
+ ]
+ },
+ "PaymentType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Prepayments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "PrepaymentID": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "accounts",
+ "nested_invoice"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v2/json/prepayments.json b/_data/taps/schemas/xero/v2/json/prepayments.json
new file mode 100644
index 000000000..352447b08
--- /dev/null
+++ b/_data/taps/schemas/xero/v2/json/prepayments.json
@@ -0,0 +1,3832 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "Allocations": {
+ "items": {
+ "properties": {
+ "Amount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Invoice": {
+ "properties": {
+ "AmountCredited": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountDue": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountPaid": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "InvoiceID": {
+ "type": [
+ "string"
+ ]
+ },
+ "InvoiceNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsDiscounted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PlannedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "AppliedAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Payments": {
+ "items": {
+ "properties": {
+ "Account": {
+ "properties": {
+ "AccountID": {
+ "type": [
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Class": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EnablePaymentsToAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportingCodeName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ShowInExpenseClaims": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SystemAccount": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Amount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BankAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BatchPaymentID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CreditNote": {
+ "additionalProperties": false,
+ "properties": {
+ "CreditNoteNumber": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAccount": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Invoice": {
+ "properties": {
+ "AmountCredited": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountDue": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "AmountPaid": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DueDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "FullyPaidOnDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "InvoiceID": {
+ "type": [
+ "string"
+ ]
+ },
+ "InvoiceNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsDiscounted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PlannedPaymentDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "IsReconciled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Overpayment": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "OverpaymentID": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PaymentID": {
+ "type": [
+ "string"
+ ]
+ },
+ "PaymentType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Prepayments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "PrepaymentID": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PrepaymentID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RemainingCredit": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "allocations",
+ "contacts",
+ "line_items",
+ "payments"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v2/json/purchase_orders.json b/_data/taps/schemas/xero/v2/json/purchase_orders.json
new file mode 100644
index 000000000..e4e8a9105
--- /dev/null
+++ b/_data/taps/schemas/xero/v2/json/purchase_orders.json
@@ -0,0 +1,1186 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-10,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DeliveryAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DeliveryDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DeliveryDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "DeliveryInstructions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ExpectedArrivalDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpectedArrivalDateString": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDiscounted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchaseOrderID": {
+ "type": [
+ "string"
+ ]
+ },
+ "PurchaseOrderNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SentToContact": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Telephone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "contacts",
+ "line_items"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v2/json/quotes.json b/_data/taps/schemas/xero/v2/json/quotes.json
new file mode 100644
index 000000000..f87edb424
--- /dev/null
+++ b/_data/taps/schemas/xero/v2/json/quotes.json
@@ -0,0 +1,1239 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "CurrencyRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ExpiryDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "QuoteID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "QuoteNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Summary": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Terms": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-06,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TrackingCategory": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "contacts",
+ "line_items",
+ "tracking_categories"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v2/json/receipts.json b/_data/taps/schemas/xero/v2/json/receipts.json
new file mode 100644
index 000000000..80a48192b
--- /dev/null
+++ b/_data/taps/schemas/xero/v2/json/receipts.json
@@ -0,0 +1,1193 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ReceiptID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ReceiptNumber": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "User": {
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsSubscriber": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "OrganisationRole": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "UserID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "contacts",
+ "line_items",
+ "users",
+ "validation_errors",
+ "attachments"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v2/json/repeating_invoices.json b/_data/taps/schemas/xero/v2/json/repeating_invoices.json
new file mode 100644
index 000000000..8f1c515d3
--- /dev/null
+++ b/_data/taps/schemas/xero/v2/json/repeating_invoices.json
@@ -0,0 +1,1142 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Contact": {
+ "properties": {
+ "AccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsPayableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AccountsReceivableTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Addresses": {
+ "items": {
+ "properties": {
+ "AddressLine1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine3": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressLine4": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AddressType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "AttentionTo": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "City": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PostalCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Region": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Attachments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Balances": {
+ "additionalProperties": false,
+ "properties": {
+ "AccountsPayable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "AccountsReceivable": {
+ "additionalProperties": false,
+ "properties": {
+ "Outstanding": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Overdue": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BankAccountDetails": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BatchPayments": {
+ "additionalProperties": false,
+ "properties": {
+ "BankAccountName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "BankAccountNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "BrandingTheme": {
+ "properties": {
+ "BrandingThemeID": {
+ "type": [
+ "string"
+ ]
+ },
+ "CreatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SortOrder": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "ContactGroups": {
+ "items": {
+ "properties": {
+ "ContactGroupID": {
+ "type": [
+ "string"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ContactNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ContactPersons": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IncludeInEmails": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ContactStatus": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DefaultCurrency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Discount": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsCustomer": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsSupplier": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PaymentTerms": {
+ "properties": {
+ "Bills": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Sales": {
+ "additionalProperties": false,
+ "properties": {
+ "Day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "Phones": {
+ "items": {
+ "properties": {
+ "PhoneAreaCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneCountryCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PhoneType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "PurchasesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "PurchasesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SalesDefaultAccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SalesTrackingCategories": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "SkypeUserName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxNumber": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryOption": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Website": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "XeroNetworkKey": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "CurrencyCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "HasAttachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmountTypes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineItems": {
+ "items": {
+ "properties": {
+ "AccountCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "DiscountRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "ItemCode": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "LineAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "LineItemID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Quantity": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Tracking": {
+ "items": {
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "UnitAmount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "RepeatingInvoiceID": {
+ "type": [
+ "string"
+ ]
+ },
+ "Schedule": {
+ "additionalProperties": false,
+ "properties": {
+ "DueDate": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "DueDateType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "EndDate": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "NextScheduledDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "StartDate": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "Unit": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "SubTotal": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Total": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalDiscount": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "TotalTax": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "contacts",
+ "line_items"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v2/json/tax_rates.json b/_data/taps/schemas/xero/v2/json/tax_rates.json
new file mode 100644
index 000000000..a75160338
--- /dev/null
+++ b/_data/taps/schemas/xero/v2/json/tax_rates.json
@@ -0,0 +1,128 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "CanApplyToAssets": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "CanApplyToEquity": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "CanApplyToExpenses": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "CanApplyToLiabilities": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "CanApplyToRevenue": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "DisplayTaxRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "EffectiveRate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ReportTaxType": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TaxComponents": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "IsCompound": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsNonRecoverable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Rate": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "TaxType": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v2/json/tracking_categories.json b/_data/taps/schemas/xero/v2/json/tracking_categories.json
new file mode 100644
index 000000000..97d8ce5cc
--- /dev/null
+++ b/_data/taps/schemas/xero/v2/json/tracking_categories.json
@@ -0,0 +1,107 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "HasValidationErrors": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsActive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsArchived": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "IsDeleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "Name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "Status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingCategoryID": {
+ "type": [
+ "string"
+ ]
+ },
+ "TrackingCategoryName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionID": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "TrackingOptionName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v2/json/users.json b/_data/taps/schemas/xero/v2/json/users.json
new file mode 100644
index 000000000..42e56cdd0
--- /dev/null
+++ b/_data/taps/schemas/xero/v2/json/users.json
@@ -0,0 +1,74 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "EmailAddress": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "FirstName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "IsSubscriber": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "LastName": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "OrganisationRole": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "UpdatedDateUTC": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "UserID": {
+ "type": [
+ "string"
+ ]
+ },
+ "ValidationErrors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "Message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "validation_errors"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/xero/v2/xero-v2-foreign-keys.yml b/_data/taps/schemas/xero/v2/xero-v2-foreign-keys.yml
new file mode 100644
index 000000000..118c93229
--- /dev/null
+++ b/_data/taps/schemas/xero/v2/xero-v2-foreign-keys.yml
@@ -0,0 +1,1492 @@
+tap: xero
+version: '2'
+keys:
+ accounts_AccountID:
+ - table: accounts
+ keys:
+ - AccountID
+ - table: bank_transactions
+ keys:
+ - BankAccount.AccountID
+ - table: bank_transfers
+ keys:
+ - FromBankAccount.AccountID
+ - ToBankAccount.AccountID
+ - table: journals
+ keys:
+ - JournalLines.AccountID
+ - table: payments
+ keys:
+ - Account.AccountID
+ bank_transfers_BankTransferID:
+ - table: bank_transfers
+ keys:
+ - BankTransferID
+ bank_transactions_BankTransactionID:
+ - table: bank_transactions
+ keys:
+ - BankTransactionID
+ - table: linked_transactions
+ keys:
+ - SourceTransactionID
+ branding_themes_BrandingThemeID:
+ - table: branding_themes
+ keys:
+ - BrandingThemeID
+ - table: contacts
+ keys:
+ - BrandingTheme.BrandingThemeID
+ - table: credit_notes
+ keys:
+ - BrandingThemeID
+ - table: invoices
+ keys:
+ - BrandingThemeID
+ - table: purchase_orders
+ keys:
+ - BrandingThemeID
+ - table: repeating_invoices
+ keys:
+ - BrandingThemeID
+ contact_groups_ContactGroupID:
+ - table: contact_groups
+ keys:
+ - ContactGroupID
+ - table: contacts
+ keys:
+ - ContactGroups.ContactGroupID
+ contacts_ContactID:
+ - table: contacts
+ keys:
+ - ContactID
+ - table: credit_notes
+ keys:
+ - Contact.ContactID
+ - table: invoices
+ keys:
+ - Contact.ContactID
+ - table: linked_transactions
+ keys:
+ - ContactID
+ - table: overpayments
+ keys:
+ - Contact.ContactID
+ - table: prepayments
+ keys:
+ - Contact.ContactID
+ - table: receipts
+ keys:
+ - Contact.ContactID
+ - table: repeating_invoices
+ keys:
+ - Contact.ContactID
+ credit_notes_CreditNoteID:
+ - table: credit_notes
+ keys:
+ - CreditNoteID
+ - table: invoices
+ keys:
+ - CreditNotes.CreditNoteID
+ currencies_CurrencyCode:
+ - table: accounts
+ keys:
+ - CurrencyCode
+ - table: bank_transactions
+ keys:
+ - CurrencyCode
+ - table: credit_notes
+ keys:
+ - CurrencyCode
+ - table: currencies
+ keys:
+ - Code
+ - table: invoices
+ keys:
+ - CurrencyCode
+ - table: prepayments
+ keys:
+ - CurrencyCode
+ - table: purchase_orders
+ keys:
+ - CurrencyCode
+ - table: repeating_invoices
+ keys:
+ - CurrencyCode
+ employees_EmployeeID:
+ - table: employees
+ keys:
+ - EmployeeID
+ expense_claims_ExpenseClaimID:
+ - table: expense_claims
+ keys:
+ - ExpenseClaimID
+ invoices_InvoiceID:
+ - table: invoices
+ keys:
+ - InvoiceID
+ - table: linked_transactions
+ keys:
+ - SourceTransactionID
+ - TargetTransactionID
+ - table: overpayments
+ keys:
+ - Allocations.Invoice.InvoiceID
+ - table: payments
+ keys:
+ - Invoice.InvoiceID
+ - table: prepayments
+ keys:
+ - Allocations.Invoice.InvoiceID
+ items_ItemID:
+ - table: items
+ keys:
+ - ItemID
+ journals_JournalID:
+ - table: journals
+ keys:
+ - JournalID
+ linked_transactions_LinkedTransactionID:
+ - table: linked_transactions
+ keys:
+ - LinkedTransactionID
+ manual_journals_ManualJournalID:
+ - table: manial_journals
+ keys:
+ - ManualJournalID
+ organisations_OrganisationID:
+ - table: organisations
+ keys:
+ - OrganisationID
+ overpayments_OverpaymentID:
+ - table: bank_transactions
+ keys:
+ - OverpaymentID
+ - table: invoices
+ keys:
+ - Overpayments.Overpayment.OverpaymentID
+ - table: overpayments
+ keys:
+ - OverpaymentID
+ - table: payments
+ keys:
+ - Overpayment.OverpaymentID
+ payments_PaymentID:
+ - table: expense_claims
+ keys:
+ - Payments.PaymentID
+ - table: invoices
+ keys:
+ - Payments.PaymentID
+ - table: overpayments
+ keys:
+ - Payments.PaymentID
+ - table: payments
+ keys:
+ - PaymentID
+ prepayments_PrepaymentID:
+ - table: bank_transactions
+ keys:
+ - PrepaymentID
+ - table: invoices
+ keys:
+ - Prepayments.PrepaymentID
+ - table: payments
+ keys:
+ - Prepayments.PrepaymentID
+ - table: prepayments
+ keys:
+ - PrepaymentID
+ purchase_orders_PurchaseOrderID:
+ - table: purchase_orders
+ keys:
+ - PurchaseOrderID
+ receipts_ReceiptID:
+ - table: expense_claims
+ keys:
+ - Receipts.ReceiptID
+ - table: receipts
+ keys:
+ - ReceiptID
+ repeating_invoices_RepeatingInvoiceID:
+ - table: repeating_invoices
+ keys:
+ - RepeatingInvoiceID
+ linked_transactions_SourceTransactionID:
+ - table: bank_transactions
+ keys:
+ - BankTransactionID
+ - table: invoices
+ keys:
+ - InvoiceID
+ tax_rates_TaxName:
+ - table: tax_rates
+ keys:
+ - Name
+ - table: journals
+ keys:
+ - JournalLines.TaxName
+ tracking_categories_TrackingCategoryID:
+ - table: contacts
+ keys:
+ - SalesTrackingCategories.TrackingCategoryID
+ - PurchasesTrackingCategories.TrackingCategoryID
+ - table: credit_notes
+ keys:
+ - LineItems.Tracking.TrackingCategoryID
+ - table: invoices
+ keys:
+ - LineItems.Tracking.TrackingCategoryID
+ - table: journals
+ keys:
+ - JournalLines.TrackingCategories.TrackingCategoryID
+ - table: manual_journals
+ keys:
+ - JournalLines.Tracking.TrackingCategoryID
+ - table: overpayments
+ keys:
+ - LineItems.Tracking.TrackingCategoryID
+ - table: prepayments
+ keys:
+ - LineItems.Tracking.TrackingCategoryID
+ - table: purchase_orders
+ keys:
+ - LineItems.Tracking.TrackingCategoryID
+ - table: receipts
+ keys:
+ - LineItems.Tracking.TrackingCategoryID
+ - table: repeating_invoices
+ keys:
+ - LineItems.Tracking.TrackingCategoryID
+ - table: tracking_categories
+ keys:
+ - TrackingCategoryID
+ users_UserID:
+ - table: expense_claims
+ keys:
+ - User.UserID
+ - table: receipts
+ keys:
+ - User.UserID
+tables:
+- table-name: accounts
+ join:
+ - table-name: bank_transactions
+ keys:
+ - key: AccountID
+ foreign-key: BankAccount.AccountID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: bank_transfers
+ keys:
+ - key: AccountID
+ foreign-key: FromBankAccount.AccountID
+ - key: AccountID
+ foreign-key: ToBankAccount.AccountID
+ - table-name: journals
+ keys:
+ - key: AccountID
+ foreign-key: JournalLines.AccountID
+ - table-name: payments
+ keys:
+ - key: AccountID
+ foreign-key: Account.AccountID
+ - table-name: credit_notes
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: currencies
+ keys:
+ - key: CurrencyCode
+ foreign-key: Code
+ - table-name: invoices
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: prepayments
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: purchase_orders
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: repeating_invoices
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+- table-name: bank_transactions
+ join:
+ - table-name: accounts
+ keys:
+ - key: BankAccount.AccountID
+ foreign-key: AccountID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: bank_transfers
+ keys:
+ - key: BankAccount.AccountID
+ foreign-key: FromBankAccount.AccountID
+ - key: BankAccount.AccountID
+ foreign-key: ToBankAccount.AccountID
+ - table-name: journals
+ keys:
+ - key: BankAccount.AccountID
+ foreign-key: JournalLines.AccountID
+ - table-name: payments
+ keys:
+ - key: BankAccount.AccountID
+ foreign-key: Account.AccountID
+ - key: OverpaymentID
+ foreign-key: Overpayment.OverpaymentID
+ - key: PrepaymentID
+ foreign-key: Prepayments.PrepaymentID
+ - table-name: linked_transactions
+ keys:
+ - key: BankTransactionID
+ foreign-key: SourceTransactionID
+ - table-name: credit_notes
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: currencies
+ keys:
+ - key: CurrencyCode
+ foreign-key: Code
+ - table-name: invoices
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: OverpaymentID
+ foreign-key: Overpayments.Overpayment.OverpaymentID
+ - key: PrepaymentID
+ foreign-key: Prepayments.PrepaymentID
+ - key: BankTransactionID
+ foreign-key: InvoiceID
+ - table-name: prepayments
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: PrepaymentID
+ foreign-key: PrepaymentID
+ - table-name: purchase_orders
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: repeating_invoices
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: overpayments
+ keys:
+ - key: OverpaymentID
+ foreign-key: OverpaymentID
+- table-name: bank_transfers
+ join:
+ - table-name: accounts
+ keys:
+ - key: FromBankAccount.AccountID
+ foreign-key: AccountID
+ - key: ToBankAccount.AccountID
+ foreign-key: AccountID
+ - table-name: bank_transactions
+ keys:
+ - key: FromBankAccount.AccountID
+ foreign-key: BankAccount.AccountID
+ - key: ToBankAccount.AccountID
+ foreign-key: BankAccount.AccountID
+ - table-name: journals
+ keys:
+ - key: FromBankAccount.AccountID
+ foreign-key: JournalLines.AccountID
+ - key: ToBankAccount.AccountID
+ foreign-key: JournalLines.AccountID
+ - table-name: payments
+ keys:
+ - key: FromBankAccount.AccountID
+ foreign-key: Account.AccountID
+ - key: ToBankAccount.AccountID
+ foreign-key: Account.AccountID
+- table-name: journals
+ join:
+ - table-name: accounts
+ keys:
+ - key: JournalLines.AccountID
+ foreign-key: AccountID
+ - table-name: bank_transactions
+ keys:
+ - key: JournalLines.AccountID
+ foreign-key: BankAccount.AccountID
+ - table-name: bank_transfers
+ keys:
+ - key: JournalLines.AccountID
+ foreign-key: FromBankAccount.AccountID
+ - key: JournalLines.AccountID
+ foreign-key: ToBankAccount.AccountID
+ - table-name: payments
+ keys:
+ - key: JournalLines.AccountID
+ foreign-key: Account.AccountID
+ - table-name: tax_rates
+ keys:
+ - key: JournalLines.TaxName
+ foreign-key: Name
+ - table-name: contacts
+ keys:
+ - key: JournalLines.TrackingCategories.TrackingCategoryID
+ foreign-key: SalesTrackingCategories.TrackingCategoryID
+ - key: JournalLines.TrackingCategories.TrackingCategoryID
+ foreign-key: PurchasesTrackingCategories.TrackingCategoryID
+ - table-name: credit_notes
+ keys:
+ - key: JournalLines.TrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: invoices
+ keys:
+ - key: JournalLines.TrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: manual_journals
+ keys:
+ - key: JournalLines.TrackingCategories.TrackingCategoryID
+ foreign-key: JournalLines.Tracking.TrackingCategoryID
+ - table-name: overpayments
+ keys:
+ - key: JournalLines.TrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: prepayments
+ keys:
+ - key: JournalLines.TrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: purchase_orders
+ keys:
+ - key: JournalLines.TrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: receipts
+ keys:
+ - key: JournalLines.TrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: repeating_invoices
+ keys:
+ - key: JournalLines.TrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: tracking_categories
+ keys:
+ - key: JournalLines.TrackingCategories.TrackingCategoryID
+ foreign-key: TrackingCategoryID
+- table-name: payments
+ join:
+ - table-name: accounts
+ keys:
+ - key: Account.AccountID
+ foreign-key: AccountID
+ - table-name: bank_transactions
+ keys:
+ - key: Account.AccountID
+ foreign-key: BankAccount.AccountID
+ - key: Overpayment.OverpaymentID
+ foreign-key: OverpaymentID
+ - key: Prepayments.PrepaymentID
+ foreign-key: PrepaymentID
+ - table-name: bank_transfers
+ keys:
+ - key: Account.AccountID
+ foreign-key: FromBankAccount.AccountID
+ - key: Account.AccountID
+ foreign-key: ToBankAccount.AccountID
+ - table-name: journals
+ keys:
+ - key: Account.AccountID
+ foreign-key: JournalLines.AccountID
+ - table-name: invoices
+ keys:
+ - key: Invoice.InvoiceID
+ foreign-key: InvoiceID
+ - key: Overpayment.OverpaymentID
+ foreign-key: Overpayments.Overpayment.OverpaymentID
+ - key: PaymentID
+ foreign-key: Payments.PaymentID
+ - key: Prepayments.PrepaymentID
+ foreign-key: Prepayments.PrepaymentID
+ - table-name: linked_transactions
+ keys:
+ - key: Invoice.InvoiceID
+ foreign-key: SourceTransactionID
+ - key: Invoice.InvoiceID
+ foreign-key: TargetTransactionID
+ - table-name: overpayments
+ keys:
+ - key: Invoice.InvoiceID
+ foreign-key: Allocations.Invoice.InvoiceID
+ - key: Overpayment.OverpaymentID
+ foreign-key: OverpaymentID
+ - key: PaymentID
+ foreign-key: Payments.PaymentID
+ - table-name: prepayments
+ keys:
+ - key: Invoice.InvoiceID
+ foreign-key: Allocations.Invoice.InvoiceID
+ - key: Prepayments.PrepaymentID
+ foreign-key: PrepaymentID
+ - table-name: expense_claims
+ keys:
+ - key: PaymentID
+ foreign-key: Payments.PaymentID
+- table-name: linked_transactions
+ join:
+ - table-name: bank_transactions
+ keys:
+ - key: SourceTransactionID
+ foreign-key: BankTransactionID
+ - table-name: contacts
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - table-name: credit_notes
+ keys:
+ - key: ContactID
+ foreign-key: Contact.ContactID
+ - table-name: invoices
+ keys:
+ - key: ContactID
+ foreign-key: Contact.ContactID
+ - key: SourceTransactionID
+ foreign-key: InvoiceID
+ - key: TargetTransactionID
+ foreign-key: InvoiceID
+ - table-name: overpayments
+ keys:
+ - key: ContactID
+ foreign-key: Contact.ContactID
+ - key: SourceTransactionID
+ foreign-key: Allocations.Invoice.InvoiceID
+ - key: TargetTransactionID
+ foreign-key: Allocations.Invoice.InvoiceID
+ - table-name: prepayments
+ keys:
+ - key: ContactID
+ foreign-key: Contact.ContactID
+ - key: SourceTransactionID
+ foreign-key: Allocations.Invoice.InvoiceID
+ - key: TargetTransactionID
+ foreign-key: Allocations.Invoice.InvoiceID
+ - table-name: receipts
+ keys:
+ - key: ContactID
+ foreign-key: Contact.ContactID
+ - table-name: repeating_invoices
+ keys:
+ - key: ContactID
+ foreign-key: Contact.ContactID
+ - table-name: payments
+ keys:
+ - key: SourceTransactionID
+ foreign-key: Invoice.InvoiceID
+ - key: TargetTransactionID
+ foreign-key: Invoice.InvoiceID
+- table-name: branding_themes
+ join:
+ - table-name: contacts
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingTheme.BrandingThemeID
+ - table-name: credit_notes
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - table-name: invoices
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - table-name: purchase_orders
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - table-name: repeating_invoices
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+- table-name: contacts
+ join:
+ - table-name: branding_themes
+ keys:
+ - key: BrandingTheme.BrandingThemeID
+ foreign-key: BrandingThemeID
+ - table-name: credit_notes
+ keys:
+ - key: BrandingTheme.BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: ContactID
+ foreign-key: Contact.ContactID
+ - key: SalesTrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - key: PurchasesTrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: invoices
+ keys:
+ - key: BrandingTheme.BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: ContactID
+ foreign-key: Contact.ContactID
+ - key: SalesTrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - key: PurchasesTrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: purchase_orders
+ keys:
+ - key: BrandingTheme.BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: SalesTrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - key: PurchasesTrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: repeating_invoices
+ keys:
+ - key: BrandingTheme.BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: ContactID
+ foreign-key: Contact.ContactID
+ - key: SalesTrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - key: PurchasesTrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: contact_groups
+ keys:
+ - key: ContactGroups.ContactGroupID
+ foreign-key: ContactGroupID
+ - table-name: linked_transactions
+ keys:
+ - key: ContactID
+ foreign-key: ContactID
+ - table-name: overpayments
+ keys:
+ - key: ContactID
+ foreign-key: Contact.ContactID
+ - key: SalesTrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - key: PurchasesTrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: prepayments
+ keys:
+ - key: ContactID
+ foreign-key: Contact.ContactID
+ - key: SalesTrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - key: PurchasesTrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: receipts
+ keys:
+ - key: ContactID
+ foreign-key: Contact.ContactID
+ - key: SalesTrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - key: PurchasesTrackingCategories.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: journals
+ keys:
+ - key: SalesTrackingCategories.TrackingCategoryID
+ foreign-key: JournalLines.TrackingCategories.TrackingCategoryID
+ - key: PurchasesTrackingCategories.TrackingCategoryID
+ foreign-key: JournalLines.TrackingCategories.TrackingCategoryID
+ - table-name: manual_journals
+ keys:
+ - key: SalesTrackingCategories.TrackingCategoryID
+ foreign-key: JournalLines.Tracking.TrackingCategoryID
+ - key: PurchasesTrackingCategories.TrackingCategoryID
+ foreign-key: JournalLines.Tracking.TrackingCategoryID
+ - table-name: tracking_categories
+ keys:
+ - key: SalesTrackingCategories.TrackingCategoryID
+ foreign-key: TrackingCategoryID
+ - key: PurchasesTrackingCategories.TrackingCategoryID
+ foreign-key: TrackingCategoryID
+- table-name: credit_notes
+ join:
+ - table-name: branding_themes
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - table-name: contacts
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingTheme.BrandingThemeID
+ - key: Contact.ContactID
+ foreign-key: ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: SalesTrackingCategories.TrackingCategoryID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: PurchasesTrackingCategories.TrackingCategoryID
+ - table-name: invoices
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: CreditNoteID
+ foreign-key: CreditNotes.CreditNoteID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: purchase_orders
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: repeating_invoices
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: linked_transactions
+ keys:
+ - key: Contact.ContactID
+ foreign-key: ContactID
+ - table-name: overpayments
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: prepayments
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: receipts
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: accounts
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: bank_transactions
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: currencies
+ keys:
+ - key: CurrencyCode
+ foreign-key: Code
+ - table-name: journals
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.TrackingCategories.TrackingCategoryID
+ - table-name: manual_journals
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.Tracking.TrackingCategoryID
+ - table-name: tracking_categories
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: TrackingCategoryID
+- table-name: invoices
+ join:
+ - table-name: branding_themes
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - table-name: contacts
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingTheme.BrandingThemeID
+ - key: Contact.ContactID
+ foreign-key: ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: SalesTrackingCategories.TrackingCategoryID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: PurchasesTrackingCategories.TrackingCategoryID
+ - table-name: credit_notes
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: CreditNotes.CreditNoteID
+ foreign-key: CreditNoteID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: purchase_orders
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: repeating_invoices
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: linked_transactions
+ keys:
+ - key: Contact.ContactID
+ foreign-key: ContactID
+ - key: InvoiceID
+ foreign-key: SourceTransactionID
+ - key: InvoiceID
+ foreign-key: TargetTransactionID
+ - table-name: overpayments
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: InvoiceID
+ foreign-key: Allocations.Invoice.InvoiceID
+ - key: Overpayments.Overpayment.OverpaymentID
+ foreign-key: OverpaymentID
+ - key: Payments.PaymentID
+ foreign-key: Payments.PaymentID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: prepayments
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: InvoiceID
+ foreign-key: Allocations.Invoice.InvoiceID
+ - key: Prepayments.PrepaymentID
+ foreign-key: PrepaymentID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: receipts
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: accounts
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: bank_transactions
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: Overpayments.Overpayment.OverpaymentID
+ foreign-key: OverpaymentID
+ - key: Prepayments.PrepaymentID
+ foreign-key: PrepaymentID
+ - key: InvoiceID
+ foreign-key: BankTransactionID
+ - table-name: currencies
+ keys:
+ - key: CurrencyCode
+ foreign-key: Code
+ - table-name: payments
+ keys:
+ - key: InvoiceID
+ foreign-key: Invoice.InvoiceID
+ - key: Overpayments.Overpayment.OverpaymentID
+ foreign-key: Overpayment.OverpaymentID
+ - key: Payments.PaymentID
+ foreign-key: PaymentID
+ - key: Prepayments.PrepaymentID
+ foreign-key: Prepayments.PrepaymentID
+ - table-name: expense_claims
+ keys:
+ - key: Payments.PaymentID
+ foreign-key: Payments.PaymentID
+ - table-name: journals
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.TrackingCategories.TrackingCategoryID
+ - table-name: manual_journals
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.Tracking.TrackingCategoryID
+ - table-name: tracking_categories
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: TrackingCategoryID
+- table-name: purchase_orders
+ join:
+ - table-name: branding_themes
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - table-name: contacts
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingTheme.BrandingThemeID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: SalesTrackingCategories.TrackingCategoryID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: PurchasesTrackingCategories.TrackingCategoryID
+ - table-name: credit_notes
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: invoices
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: repeating_invoices
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: accounts
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: bank_transactions
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: currencies
+ keys:
+ - key: CurrencyCode
+ foreign-key: Code
+ - table-name: prepayments
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: journals
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.TrackingCategories.TrackingCategoryID
+ - table-name: manual_journals
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.Tracking.TrackingCategoryID
+ - table-name: overpayments
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: receipts
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: tracking_categories
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: TrackingCategoryID
+- table-name: repeating_invoices
+ join:
+ - table-name: branding_themes
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - table-name: contacts
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingTheme.BrandingThemeID
+ - key: Contact.ContactID
+ foreign-key: ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: SalesTrackingCategories.TrackingCategoryID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: PurchasesTrackingCategories.TrackingCategoryID
+ - table-name: credit_notes
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: invoices
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: purchase_orders
+ keys:
+ - key: BrandingThemeID
+ foreign-key: BrandingThemeID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: linked_transactions
+ keys:
+ - key: Contact.ContactID
+ foreign-key: ContactID
+ - table-name: overpayments
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: prepayments
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: receipts
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: accounts
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: bank_transactions
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: currencies
+ keys:
+ - key: CurrencyCode
+ foreign-key: Code
+ - table-name: journals
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.TrackingCategories.TrackingCategoryID
+ - table-name: manual_journals
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.Tracking.TrackingCategoryID
+ - table-name: tracking_categories
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: TrackingCategoryID
+- table-name: contact_groups
+ join:
+ - table-name: contacts
+ keys:
+ - key: ContactGroupID
+ foreign-key: ContactGroups.ContactGroupID
+- table-name: overpayments
+ join:
+ - table-name: contacts
+ keys:
+ - key: Contact.ContactID
+ foreign-key: ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: SalesTrackingCategories.TrackingCategoryID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: PurchasesTrackingCategories.TrackingCategoryID
+ - table-name: credit_notes
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: invoices
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: Allocations.Invoice.InvoiceID
+ foreign-key: InvoiceID
+ - key: OverpaymentID
+ foreign-key: Overpayments.Overpayment.OverpaymentID
+ - key: Payments.PaymentID
+ foreign-key: Payments.PaymentID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: linked_transactions
+ keys:
+ - key: Contact.ContactID
+ foreign-key: ContactID
+ - key: Allocations.Invoice.InvoiceID
+ foreign-key: SourceTransactionID
+ - key: Allocations.Invoice.InvoiceID
+ foreign-key: TargetTransactionID
+ - table-name: prepayments
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: Allocations.Invoice.InvoiceID
+ foreign-key: Allocations.Invoice.InvoiceID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: receipts
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: repeating_invoices
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: payments
+ keys:
+ - key: Allocations.Invoice.InvoiceID
+ foreign-key: Invoice.InvoiceID
+ - key: OverpaymentID
+ foreign-key: Overpayment.OverpaymentID
+ - key: Payments.PaymentID
+ foreign-key: PaymentID
+ - table-name: bank_transactions
+ keys:
+ - key: OverpaymentID
+ foreign-key: OverpaymentID
+ - table-name: expense_claims
+ keys:
+ - key: Payments.PaymentID
+ foreign-key: Payments.PaymentID
+ - table-name: journals
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.TrackingCategories.TrackingCategoryID
+ - table-name: manual_journals
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.Tracking.TrackingCategoryID
+ - table-name: purchase_orders
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: tracking_categories
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: TrackingCategoryID
+- table-name: prepayments
+ join:
+ - table-name: contacts
+ keys:
+ - key: Contact.ContactID
+ foreign-key: ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: SalesTrackingCategories.TrackingCategoryID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: PurchasesTrackingCategories.TrackingCategoryID
+ - table-name: credit_notes
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: invoices
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: Allocations.Invoice.InvoiceID
+ foreign-key: InvoiceID
+ - key: PrepaymentID
+ foreign-key: Prepayments.PrepaymentID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: linked_transactions
+ keys:
+ - key: Contact.ContactID
+ foreign-key: ContactID
+ - key: Allocations.Invoice.InvoiceID
+ foreign-key: SourceTransactionID
+ - key: Allocations.Invoice.InvoiceID
+ foreign-key: TargetTransactionID
+ - table-name: overpayments
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: Allocations.Invoice.InvoiceID
+ foreign-key: Allocations.Invoice.InvoiceID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: receipts
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: repeating_invoices
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: accounts
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - table-name: bank_transactions
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: PrepaymentID
+ foreign-key: PrepaymentID
+ - table-name: currencies
+ keys:
+ - key: CurrencyCode
+ foreign-key: Code
+ - table-name: purchase_orders
+ keys:
+ - key: CurrencyCode
+ foreign-key: CurrencyCode
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: payments
+ keys:
+ - key: Allocations.Invoice.InvoiceID
+ foreign-key: Invoice.InvoiceID
+ - key: PrepaymentID
+ foreign-key: Prepayments.PrepaymentID
+ - table-name: journals
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.TrackingCategories.TrackingCategoryID
+ - table-name: manual_journals
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.Tracking.TrackingCategoryID
+ - table-name: tracking_categories
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: TrackingCategoryID
+- table-name: receipts
+ join:
+ - table-name: contacts
+ keys:
+ - key: Contact.ContactID
+ foreign-key: ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: SalesTrackingCategories.TrackingCategoryID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: PurchasesTrackingCategories.TrackingCategoryID
+ - table-name: credit_notes
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: invoices
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: linked_transactions
+ keys:
+ - key: Contact.ContactID
+ foreign-key: ContactID
+ - table-name: overpayments
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: prepayments
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: repeating_invoices
+ keys:
+ - key: Contact.ContactID
+ foreign-key: Contact.ContactID
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: expense_claims
+ keys:
+ - key: ReceiptID
+ foreign-key: Receipts.ReceiptID
+ - key: User.UserID
+ foreign-key: User.UserID
+ - table-name: journals
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.TrackingCategories.TrackingCategoryID
+ - table-name: manual_journals
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.Tracking.TrackingCategoryID
+ - table-name: purchase_orders
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: tracking_categories
+ keys:
+ - key: LineItems.Tracking.TrackingCategoryID
+ foreign-key: TrackingCategoryID
+- table-name: currencies
+ join:
+ - table-name: accounts
+ keys:
+ - key: Code
+ foreign-key: CurrencyCode
+ - table-name: bank_transactions
+ keys:
+ - key: Code
+ foreign-key: CurrencyCode
+ - table-name: credit_notes
+ keys:
+ - key: Code
+ foreign-key: CurrencyCode
+ - table-name: invoices
+ keys:
+ - key: Code
+ foreign-key: CurrencyCode
+ - table-name: prepayments
+ keys:
+ - key: Code
+ foreign-key: CurrencyCode
+ - table-name: purchase_orders
+ keys:
+ - key: Code
+ foreign-key: CurrencyCode
+ - table-name: repeating_invoices
+ keys:
+ - key: Code
+ foreign-key: CurrencyCode
+- table-name: expense_claims
+ join:
+ - table-name: invoices
+ keys:
+ - key: Payments.PaymentID
+ foreign-key: Payments.PaymentID
+ - table-name: overpayments
+ keys:
+ - key: Payments.PaymentID
+ foreign-key: Payments.PaymentID
+ - table-name: payments
+ keys:
+ - key: Payments.PaymentID
+ foreign-key: PaymentID
+ - table-name: receipts
+ keys:
+ - key: Receipts.ReceiptID
+ foreign-key: ReceiptID
+ - key: User.UserID
+ foreign-key: User.UserID
+- table-name: tax_rates
+ join:
+ - table-name: journals
+ keys:
+ - key: Name
+ foreign-key: JournalLines.TaxName
+- table-name: manual_journals
+ join:
+ - table-name: contacts
+ keys:
+ - key: JournalLines.Tracking.TrackingCategoryID
+ foreign-key: SalesTrackingCategories.TrackingCategoryID
+ - key: JournalLines.Tracking.TrackingCategoryID
+ foreign-key: PurchasesTrackingCategories.TrackingCategoryID
+ - table-name: credit_notes
+ keys:
+ - key: JournalLines.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: invoices
+ keys:
+ - key: JournalLines.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: journals
+ keys:
+ - key: JournalLines.Tracking.TrackingCategoryID
+ foreign-key: JournalLines.TrackingCategories.TrackingCategoryID
+ - table-name: overpayments
+ keys:
+ - key: JournalLines.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: prepayments
+ keys:
+ - key: JournalLines.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: purchase_orders
+ keys:
+ - key: JournalLines.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: receipts
+ keys:
+ - key: JournalLines.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: repeating_invoices
+ keys:
+ - key: JournalLines.Tracking.TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: tracking_categories
+ keys:
+ - key: JournalLines.Tracking.TrackingCategoryID
+ foreign-key: TrackingCategoryID
+- table-name: tracking_categories
+ join:
+ - table-name: contacts
+ keys:
+ - key: TrackingCategoryID
+ foreign-key: SalesTrackingCategories.TrackingCategoryID
+ - key: TrackingCategoryID
+ foreign-key: PurchasesTrackingCategories.TrackingCategoryID
+ - table-name: credit_notes
+ keys:
+ - key: TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: invoices
+ keys:
+ - key: TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: journals
+ keys:
+ - key: TrackingCategoryID
+ foreign-key: JournalLines.TrackingCategories.TrackingCategoryID
+ - table-name: manual_journals
+ keys:
+ - key: TrackingCategoryID
+ foreign-key: JournalLines.Tracking.TrackingCategoryID
+ - table-name: overpayments
+ keys:
+ - key: TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: prepayments
+ keys:
+ - key: TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: purchase_orders
+ keys:
+ - key: TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: receipts
+ keys:
+ - key: TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
+ - table-name: repeating_invoices
+ keys:
+ - key: TrackingCategoryID
+ foreign-key: LineItems.Tracking.TrackingCategoryID
diff --git a/_data/taps/schemas/xero/v2/xero-v2-tables.yml b/_data/taps/schemas/xero/v2/xero-v2-tables.yml
new file mode 100644
index 000000000..13b71553c
--- /dev/null
+++ b/_data/taps/schemas/xero/v2/xero-v2-tables.yml
@@ -0,0 +1,324 @@
+tap: xero
+version: '2'
+tables:
+- name: accounts
+ description: 'The `{{ table.name }}` table contains info about the various accounts
+ (ex: banking) connected to your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/accounts.json
+ api-method: https://developer.xero.com/documentation/api/accounts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: AccountID
+ replication-key: UpdatedDateUTC
+- name: bank_transactions
+ description: 'The `{{ table.name }}` table contains info about the bank transactions
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/bank_transactions.json
+ api-method: https://developer.xero.com/documentation/api/banktransactions
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: BankTransactionID
+ replication-key: UpdatedDateUTC
+- name: bank_transfers
+ description: "The `{{ table.name }}` table contains info about bank transfers. \n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/bank_transfers.json
+ api-method: https://developer.xero.com/documentation/api/bank-transfers
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: BankTransferID
+ replication-key: CreatedDateUTC
+- name: branding_themes
+ description: 'The `{{ table.name }}` table contains info about your branding themes.
+ A branding theme is customization you can apply to customer-facing documents such
+ as invoices, statements, quotes, etc.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/branding_themes.json
+ api-method: https://developer.xero.com/documentation/api/branding-themes
+ table-details:
+ replication-method: Full Table
+ primary-key: BrandingThemeID
+- name: contacts
+ description: 'The `{{ table.name }}` table contains info about the customers and
+ suppliers you do business with.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/contacts.json
+ api-method: https://developer.xero.com/documentation/api/contacts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: ContactID
+ replication-key: UpdatedDateUTC
+- name: contact_groups
+ description: 'The `{{ table.name }}` table contains info about your contact groups.
+ A contact group is a group of contacts that have something in common.
+
+
+ **Note**: Due to the limits of {{ integration.display_name }}''s API, only active
+ contact groups (`Status: ACTIVE`) may be retrieved.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/contact_groups.json
+ api-method: https://developer.xero.com/documentation/api/contactgroups
+ table-details:
+ replication-method: Full Table
+ primary-key: ContactGroupID
+- name: credit_notes
+ description: 'The `{{ table.name }}` table contains info about credit notes. A credit
+ note is similar to an invoice, except it reduces the amount you owe a supplier
+ or the amount a customer owes you.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/credit_notes.json
+ api-method: https://developer.xero.com/documentation/api/credit-notes
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: CreditNoteID
+ replication-key: UpdatedDateUTC
+- name: currencies
+ description: 'The `{{ table.name }}` table contains info about the currencies available
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/currencies.json
+ api-method: https://developer.xero.com/documentation/api/currencies
+ table-details:
+ replication-method: Full Table
+ primary-key: Code
+- name: employees
+ description: 'The `{{ table.name }}` table contains info about employees.
+
+
+ **Note**: According to [{{ integration.display_name }}''s documentation](https://developer.xero.com/documentation/api/employees),
+ the endpoint that produces this table is:
+
+
+ > Used for an [employee type](https://help.xero.com/int/Contacts_EmployeeAdd)
+ used exclusively by the global Payrun functionality in {{ integration.display_name
+ }} core accounting.
+
+
+ As a result, this table may not contain all employee data. Refer to the `contacts`
+ table if you believe you are missing records.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/employees.json
+ api-method: https://developer.xero.com/documentation/api/employees
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: EmployeeID
+ replication-key: UpdatedDateUTC
+- name: expense_claims
+ description: 'The `{{ table.name }}` table contains info about expense claims.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/expense_claims.json
+ api-method: https://developer.xero.com/documentation/api/expense-claims
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: ExpenseClaimID
+ replication-key: UpdatedDateUTC
+- name: invoices
+ description: 'The `{{ table.name }}` table contains info about sales invoices, which
+ are requests for payment for goods and services.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/invoices.json
+ api-method: https://developer.xero.com/documentation/api/invoices
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: InvoiceID
+ replication-key: UpdatedDateUTC
+- name: items
+ description: 'The `{{ table.name }}` table contains info about the [products and
+ services you buy and sell](https://help.xero.com/us/Inventory).
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/items.json
+ api-method: https://developer.xero.com/documentation/api/items
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: ItemID
+ replication-key: UpdatedDateUTC
+- name: journals
+ description: 'The `{{ table.name }}` table contains info about journal entries.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/journals.json
+ api-method: https://developer.xero.com/documentation/api/journals
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: JournalID
+ replication-key: JournalNumber
+- name: linked_transactions
+ description: 'The `{{ table.name }}` table contains info about linked transactions.
+ Linked transactions are transactions where line items from a purchase transaction
+ to a customer are linked to a sales transaction.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/linked_transactions.json
+ api-method: https://developer.xero.com/documentation/api/linked-transactions
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: LinkedTransactionID
+ replication-key: UpdatedDateUTC
+- name: manual_journals
+ description: 'The `{{ table.name }}` table contains info about manual journals,
+ which are used by accountants or bookkeepers to work directly with a general ledger.
+ For example: To record accrued expenses or completed work that wasn''t invoiced.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/manual_journals.json
+ api-method: https://developer.xero.com/documentation/api/manual-journals
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: ManualJournalID
+ replication-key: UpdatedDateUTC
+- name: organisations
+ description: 'The `{{ table.name }}` table contains info about the organisations
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/organisations.json
+ api-method: https://developer.xero.com/documentation/api/organisation
+ table-details:
+ replication-method: Full Table
+ primary-key: OrganisationID
+- name: overpayments
+ description: 'The `{{ table.name }}` table contains info about overpayments, which
+ are transactions where a customer pays too much or you mistakenly overpay a supplier.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/overpayments.json
+ api-method: https://developer.xero.com/documentation/api/overpayments
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: OverpaymentID
+ replication-key: UpdatedDateUTC
+- name: payments
+ description: "The `{{ table.name }}` table contains info about the payments recorded\
+ \ in your {{ integration.display_name }} account. \n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/payments.json
+ api-method: https://developer.xero.com/documentation/api/payments
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: PaymentID
+ replication-key: UpdatedDateUTC
+- name: prepayments
+ description: 'The `{{ table.name }}` table contains info about prepayments, which
+ are payments made in advance of an invoice being raised for a customer or a bill
+ being received from a supplier.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/prepayments.json
+ api-method: https://developer.xero.com/documentation/api/prepayments
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: PrepaymentID
+ replication-key: UpdatedDateUTC
+- name: purchase_orders
+ description: 'The `{{ table.name }}` table contains info about your purchase orders.
+ Purchase orders are requests sent to suppliers for specific goods and services.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/purchase_orders.json
+ api-method: https://developer.xero.com/documentation/api/purchase-orders
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: PurchaseOrderID
+ replication-key: UpdatedDateUTC
+- name: quotes
+ description: 'The `{{ table.name }}` table contains info about the quotes in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/quotes.json
+ api-method: https://developer.xero.com/documentation/api/quotes
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: QuoteID
+ replication-key: UpdatedDateUTC
+- name: receipts
+ description: 'The `{{ table.name }}` table contains info about invoice receipts,
+ which are receipts sent to customers after an invoice has been received.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/receipts.json
+ api-method: https://developer.xero.com/documentation/api/receipts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: ReceiptID
+ replication-key: UpdatedDateUTC
+- name: repeating_invoices
+ description: 'The `{{ table.name }}` table contains info about invoices set up to
+ repeat in your {{ integration.display_name }} account. A repeating invoice is
+ a recurring transaction, or a transaction that occurs on a regular basis.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/repeating_invoices.json
+ api-method: https://developer.xero.com/documentation/api/repeating-invoices
+ table-details:
+ replication-method: Full Table
+ primary-key: RepeatingInvoiceID
+- name: tax_rates
+ description: 'The `{{ table.name }}` table contains info about the tax rates set
+ up in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/tax_rates.json
+ api-method: https://developer.xero.com/documentation/api/tax-rates
+ table-details:
+ replication-method: Full Table
+ primary-key: Name
+- name: tracking_categories
+ description: 'The `{{ table.name }}` table contains info about the tracking categories
+ in your {{ integration.display_name }} account. Tracking categories are used to
+ track the performance of different areas of a business.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/tracking_categories.json
+ api-method: https://developer.xero.com/documentation/api/tracking-categories
+ table-details:
+ replication-method: Full Table
+ primary-key: TrackingCategoryID
+- name: users
+ description: 'The `{{ table.name }}` table contains info about the users in an organisation.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/users.json
+ api-method: https://developer.xero.com/documentation/api/users
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: UserID
+ replication-key: UpdatedDateUTC
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/yotpo/v1/json/emails.json b/_data/taps/schemas/yotpo/v1/json/emails.json
new file mode 100644
index 000000000..af0a9f227
--- /dev/null
+++ b/_data/taps/schemas/yotpo/v1/json/emails.json
@@ -0,0 +1,136 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "arrived_early_timestamp": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "clicked_through_timestamp": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "content_creation_timestamp": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "coupon_code": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "email_address": {
+ "type": "string"
+ },
+ "email_sent_timestamp": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "email_type": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "failed_timestamp": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "invalid_address_timestamp": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "marked_spam_timestamp": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "opened_timestamp": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "order_timestamp": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ },
+ "platform": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "reminder_num": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "review_form": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "review_type": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "sku": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "trr_bundle_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "trr_bundle_subject": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "unsubscribed_timestamp": {
+ "type": [
+ "date-time",
+ "null"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/yotpo/v1/json/product_reviews.json b/_data/taps/schemas/yotpo/v1/json/product_reviews.json
new file mode 100644
index 000000000..a79ca5d6a
--- /dev/null
+++ b/_data/taps/schemas/yotpo/v1/json/product_reviews.json
@@ -0,0 +1,128 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "comment": {
+ "properties": {
+ "comments_avatar": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "content": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "date-time"
+ },
+ "display_name": {
+ "type": "string"
+ },
+ "id": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "content": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "date-time"
+ },
+ "domain_key": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "id": {
+ "type": "integer"
+ },
+ "images_data": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": "number"
+ },
+ "original_url": {
+ "type": "string"
+ },
+ "thumb_url": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "score": {
+ "type": "number"
+ },
+ "sentiment": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "source_review_id": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "title": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "user": {
+ "properties": {
+ "display_name": {
+ "type": "string"
+ },
+ "is_social_connected": {
+ "type": "number"
+ },
+ "social_image": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": "number"
+ },
+ "user_type": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "verified_buyer": {
+ "type": "boolean"
+ },
+ "votes_down": {
+ "type": "number"
+ },
+ "votes_up": {
+ "type": "number"
+ }
+ },
+ "type": [
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/yotpo/v1/json/products.json b/_data/taps/schemas/yotpo/v1/json/products.json
new file mode 100644
index 000000000..2c9244c0e
--- /dev/null
+++ b/_data/taps/schemas/yotpo/v1/json/products.json
@@ -0,0 +1,92 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "average_score": {
+ "type": "number"
+ },
+ "category": {
+ "properties": {
+ "id": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "created_at": {
+ "type": "date-time"
+ },
+ "description": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "external_product_id": {
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "images": {
+ "items": {
+ "properties": {
+ "facebook": {
+ "type": "string"
+ },
+ "facebook_square": {
+ "type": "string"
+ },
+ "kind": {
+ "type": "string"
+ },
+ "original": {
+ "type": "string"
+ },
+ "square": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "type": "string"
+ },
+ "product_specs": {
+ "items": {
+ "properties": {
+ "key": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "total_reviews": {
+ "type": "number"
+ },
+ "updated_at": {
+ "type": "date-time"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "type": [
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/yotpo/v1/json/reviews.json b/_data/taps/schemas/yotpo/v1/json/reviews.json
new file mode 100644
index 000000000..5491ecca3
--- /dev/null
+++ b/_data/taps/schemas/yotpo/v1/json/reviews.json
@@ -0,0 +1,68 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "content": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "date-time"
+ },
+ "deleted": {
+ "type": "boolean"
+ },
+ "email": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
+ },
+ "reviewer_type": {
+ "type": "string"
+ },
+ "score": {
+ "type": "number"
+ },
+ "sentiment": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "updated_at": {
+ "type": "date-time"
+ },
+ "user_reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "votes_down": {
+ "type": "number"
+ },
+ "votes_up": {
+ "type": "number"
+ }
+ },
+ "type": [
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/yotpo/v1/json/unsubscribers.json b/_data/taps/schemas/yotpo/v1/json/unsubscribers.json
new file mode 100644
index 000000000..8e5cd92d6
--- /dev/null
+++ b/_data/taps/schemas/yotpo/v1/json/unsubscribers.json
@@ -0,0 +1,21 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "email_type_id": {
+ "type": "number"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "unsubscirbed_by_name": {
+ "description": "This field is misspelled in the api response!",
+ "type": "string"
+ },
+ "user_email": {
+ "type": "string"
+ }
+ },
+ "type": [
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/yotpo/v1/yotpo-v1-foreign-keys.yml b/_data/taps/schemas/yotpo/v1/yotpo-v1-foreign-keys.yml
new file mode 100644
index 000000000..587796445
--- /dev/null
+++ b/_data/taps/schemas/yotpo/v1/yotpo-v1-foreign-keys.yml
@@ -0,0 +1,67 @@
+tap: yotpo
+version: '1'
+keys:
+ emails_email_address:
+ - table: emails
+ keys:
+ - email_address
+ - table: unsubscribers
+ keys:
+ - user_email
+ _order_id:
+ - table: emails
+ keys:
+ - order_id
+ products_product_id:
+ - table: products
+ keys:
+ - id
+ - table: product_reviews
+ keys:
+ - product_id
+ product_reviews_product_review_id:
+ - table: product_reviews
+ keys:
+ - id
+ reviews_source_review_id:
+ - table: product_reviews
+ keys:
+ - source_review_id
+ - table: reviews
+ keys:
+ - id
+tables:
+- table-name: emails
+ join:
+ - table-name: unsubscribers
+ keys:
+ - key: email_address
+ foreign-key: user_email
+- table-name: unsubscribers
+ join:
+ - table-name: emails
+ keys:
+ - key: user_email
+ foreign-key: email_address
+- table-name: products
+ join:
+ - table-name: product_reviews
+ keys:
+ - key: id
+ foreign-key: product_id
+- table-name: product_reviews
+ join:
+ - table-name: products
+ keys:
+ - key: product_id
+ foreign-key: id
+ - table-name: reviews
+ keys:
+ - key: source_review_id
+ foreign-key: id
+- table-name: reviews
+ join:
+ - table-name: product_reviews
+ keys:
+ - key: id
+ foreign-key: source_review_id
diff --git a/_data/taps/schemas/yotpo/v1/yotpo-v1-tables.yml b/_data/taps/schemas/yotpo/v1/yotpo-v1-tables.yml
new file mode 100644
index 000000000..647043628
--- /dev/null
+++ b/_data/taps/schemas/yotpo/v1/yotpo-v1-tables.yml
@@ -0,0 +1,104 @@
+tap: yotpo
+version: '1'
+tables:
+- name: emails
+ description: 'The `{{ table.name }}` table contains data about every email sent
+ from {{ integration.display_name }}.
+
+
+ #### Attribution window {#email-attribution-window}
+
+
+ When Stitch replicates data for this table, it will use an attribution window
+ of {{ integration.attribution-window }} to fetch updated email statistics such
+ as opens, clicks, etc. This means that every time a replication job runs, the
+ last 30 days'' worth of data will be replicated for this table.
+
+
+ Refer to the [Replication](#replication) section for more info and examples of
+ how the attribution window is used to query for data.
+
+ '
+ links:
+ doc-link: https://apidocs.yotpo.com/v1.0/reference#email-analytics-intro
+ singer-schema: https://github.com/singer-io/tap-yotpo/blob/master/tap_yotpo/schemas/emails.json
+ api-method: https://apidocs.yotpo.com/v1.0/reference#raw-data
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - email_address
+ - email_sent_timestamp
+ replication-key: email_sent_timestamp
+- name: products
+ description: 'The `{{ table.name }}` table contains data about products in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://apidocs.yotpo.com/reference#introduction-to-products
+ singer-schema: https://github.com/singer-io/tap-yotpo/blob/master/tap_yotpo/schemas/products.json
+ api-method: https://apidocs.yotpo.com/reference#retrieve-all-products
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: product_reviews
+ description: 'The `{{ table.name }}` table contains data about reviews for a certain
+ product.
+
+
+ **Note**: This table is similar to the `reviews` table, but also contains custom
+ fields. If you don''t have or need custom product fields, you may only want to
+ replicate the `reviews` table to prevent redundant data.
+
+ '
+ links:
+ doc-link: https://apidocs.yotpo.com/reference#section-what-are-reviews
+ singer-schema: https://github.com/singer-io/tap-yotpo/blob/master/tap_yotpo/schemas/product_reviews.json
+ api-method: https://apidocs.yotpo.com/v1.0/reference#retrieve-reviews-for-a-specific-product
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created_at
+- name: reviews
+ description: 'The `{{ table.name }}` table contains data about reviews.
+
+
+ **Note**: This table is similar to the `product_reviews` table, but doesn''t contain
+ custom fields. If you have or need custom fields, you may want to only replicate
+ the `product_reviews` table to prevent redundant data.
+
+
+ #### Attribution window {#review-attribution-window}
+
+
+ When Stitch replicates data for this table, it will use an attribution window
+ of {{ integration.attribution-window }} to fetch updated (or deleted) reviews.
+ This means that every time a replication job runs, the last 30 days'' worth of
+ data will be replicated for this table.
+
+
+ Refer to the [Replication](#replication) section for more info and examples of
+ how the attribution window is used to query for data.
+
+ '
+ links:
+ doc-link: https://apidocs.yotpo.com/reference#section-what-are-reviews
+ singer-schema: https://github.com/singer-io/tap-yotpo/blob/master/tap_yotpo/schemas/reviews.json
+ api-method: https://apidocs.yotpo.com/reference#retrieve-all-reviews
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created_at
+- name: unsubscribers
+ description: 'The `{{ table.name }}` table contains data about customers who unsubscribed
+ from one of Yotpo''s emails.
+
+ '
+ links:
+ doc-link: https://apidocs.yotpo.com/reference#introduction-to-unsubscribers
+ singer-schema: https://github.com/singer-io/tap-yotpo/blob/master/tap_yotpo/schemas/unsubscribers.json
+ api-method: https://apidocs.yotpo.com/reference#retrieve-a-list-of-unsubscribers
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/yotpo/v2/json/collections.json b/_data/taps/schemas/yotpo/v2/json/collections.json
new file mode 100644
index 000000000..6056dd2a5
--- /dev/null
+++ b/_data/taps/schemas/yotpo/v2/json/collections.json
@@ -0,0 +1,38 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "yotpo_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/yotpo/v2/json/emails.json b/_data/taps/schemas/yotpo/v2/json/emails.json
new file mode 100644
index 000000000..eeace361c
--- /dev/null
+++ b/_data/taps/schemas/yotpo/v2/json/emails.json
@@ -0,0 +1,137 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "arrived_early_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "clicked_through_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "content_creation_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "coupon_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_address": {
+ "type": "string"
+ },
+ "email_sent_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "failed_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "invalid_address_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "marked_spam_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "opened_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "order_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "order_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "platform": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reminder_num": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "review_form": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "review_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trr_bundle_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "trr_bundle_subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unsubscribed_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/yotpo/v2/json/order_fulfillments.json b/_data/taps/schemas/yotpo/v2/json/order_fulfillments.json
new file mode 100644
index 000000000..cf0047442
--- /dev/null
+++ b/_data/taps/schemas/yotpo/v2/json/order_fulfillments.json
@@ -0,0 +1,116 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fulfilled_items": {
+ "items": {
+ "properties": {
+ "external_product_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "yotpo_product_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "fulfillment_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "description": "Actual response displays `id` whereas documentation mention `yotpo_id`",
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "order_id": {
+ "description": "Actual response shows `order_id` whereas documentation mention `yotpo_order_id`",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipment_info": {
+ "properties": {
+ "shipment_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/yotpo/v2/json/orders.json b/_data/taps/schemas/yotpo/v2/json/orders.json
new file mode 100644
index 000000000..18f21665c
--- /dev/null
+++ b/_data/taps/schemas/yotpo/v2/json/orders.json
@@ -0,0 +1,446 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "billing_address": {
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "cancellation": {
+ "properties": {
+ "cancellation_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "checkout_token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_properties": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "customer": {
+ "properties": {
+ "accepts_email_marketing": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "accepts_sms_marketing": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_properties": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fulfillments": {
+ "items": {
+ "properties": {
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "fulfilled_items": {
+ "items": {
+ "properties": {
+ "external_product_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "fulfillment_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "shipment_info": {
+ "properties": {
+ "shipment_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "landing_site_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "line_items": {
+ "items": {
+ "properties": {
+ "coupon_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_properties": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "external_product_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_id": {
+ "description": "Actual response contains `product_id` whereas documentation does not mention it.",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subtotal_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "yotpo_id": {
+ "description": "Actual response displays `yotpo_id` whereas documentation mention `yotpo_product_id`",
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "order_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "order_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "payment_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "shipping_address": {
+ "properties": {
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "province_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "source": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subtotal_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "total_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "yotpo_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/yotpo/v2/json/product_reviews.json b/_data/taps/schemas/yotpo/v2/json/product_reviews.json
new file mode 100644
index 000000000..b018cba94
--- /dev/null
+++ b/_data/taps/schemas/yotpo/v2/json/product_reviews.json
@@ -0,0 +1,192 @@
+{
+ "additionalProperties": true,
+ "properties": {
+ "comment": {
+ "properties": {
+ "comments_avatar": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "content": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": "integer"
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "content": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "deleted": {
+ "description": "Available in APi Response Object",
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "domain_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": "integer"
+ },
+ "images_data": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "original_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "thumb_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "product_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "product_yotpo_id": {
+ "type": "string"
+ },
+ "score": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "sentiment": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "source_review_id": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user": {
+ "properties": {
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "is_social_connected": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "social_image": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": "integer"
+ },
+ "user_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "verified_buyer": {
+ "type": "boolean"
+ },
+ "votes_down": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "votes_up": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/yotpo/v2/json/product_variants.json b/_data/taps/schemas/yotpo/v2/json/product_variants.json
new file mode 100644
index 000000000..79960f712
--- /dev/null
+++ b/_data/taps/schemas/yotpo/v2/json/product_variants.json
@@ -0,0 +1,152 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "compare_at_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gtins": {
+ "items": {
+ "properties": {
+ "declared_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inventory_quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_discontinued": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_valid_url_format": {
+ "description": "Actual response shows `is_valid_url_format` whereas documentation mention `is_valid_url`",
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "options": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "yotpo_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "yotpo_product_id": {
+ "description": "Actual response shows `yotpo_product_id` whereas documentation does not mention it",
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/yotpo/v2/json/products.json b/_data/taps/schemas/yotpo/v2/json/products.json
new file mode 100644
index 000000000..22e398535
--- /dev/null
+++ b/_data/taps/schemas/yotpo/v2/json/products.json
@@ -0,0 +1,166 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "brand": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "compare_at_price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_properties": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "external_id": {
+ "type": "string"
+ },
+ "external_updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "group_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "gtins": {
+ "items": {
+ "properties": {
+ "declared_type": {
+ "type": "string"
+ },
+ "detected_type": {
+ "description": "Actual response shows `detected_type` whereas documentation does not mention it",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "value": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "handle": {
+ "description": "Actual response shows `handle` whereas documentation does not mention it",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "image_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "inventory_quantity": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_discontinued": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "is_valid_url_format": {
+ "description": "Actual response displays `is_valid_url_format` whereas documentation mention `is_valid_url`",
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mpn": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "yotpo_id": {
+ "type": "integer"
+ }
+ },
+ "type": [
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/yotpo/v2/json/reviews.json b/_data/taps/schemas/yotpo/v2/json/reviews.json
new file mode 100644
index 000000000..0ffa5c260
--- /dev/null
+++ b/_data/taps/schemas/yotpo/v2/json/reviews.json
@@ -0,0 +1,110 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "archived": {
+ "description": "Available in APi Response Object",
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "content": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "description": "Available in APi Response Object",
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "escalated": {
+ "description": "Available in APi Response Object",
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reviewer_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "score": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "sentiment": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "sku": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "user_reference": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "votes_down": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "votes_up": {
+ "type": [
+ "null",
+ "number"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/yotpo/v2/json/unsubscribers.json b/_data/taps/schemas/yotpo/v2/json/unsubscribers.json
new file mode 100644
index 000000000..f0ff7e7fa
--- /dev/null
+++ b/_data/taps/schemas/yotpo/v2/json/unsubscribers.json
@@ -0,0 +1,30 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "email_type_id": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "id": {
+ "type": "integer"
+ },
+ "unsubscirbed_by_name": {
+ "description": "This field is misspelled in the api response!",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/yotpo/v2/yotpo-v2-foreign-keys.yml b/_data/taps/schemas/yotpo/v2/yotpo-v2-foreign-keys.yml
new file mode 100644
index 000000000..0817d069a
--- /dev/null
+++ b/_data/taps/schemas/yotpo/v2/yotpo-v2-foreign-keys.yml
@@ -0,0 +1,67 @@
+tap: yotpo
+version: '2'
+keys:
+ emails_email_address:
+ - table: emails
+ keys:
+ - email_address
+ - table: unsubscribers
+ keys:
+ - user_email
+ orders_order_id:
+ - table: emails
+ keys:
+ - order_id
+ products_product_id:
+ - table: products
+ keys:
+ - yotpo_id
+ - table: product_reviews
+ keys:
+ - product_id
+ product_reviews_product_review_id:
+ - table: product_reviews
+ keys:
+ - id
+ reviews_source_review_id:
+ - table: product_reviews
+ keys:
+ - source_review_id
+ - table: reviews
+ keys:
+ - id
+tables:
+- table-name: emails
+ join:
+ - table-name: unsubscribers
+ keys:
+ - key: email_address
+ foreign-key: user_email
+- table-name: unsubscribers
+ join:
+ - table-name: emails
+ keys:
+ - key: user_email
+ foreign-key: email_address
+- table-name: products
+ join:
+ - table-name: product_reviews
+ keys:
+ - key: yotpo_id
+ foreign-key: product_id
+- table-name: product_reviews
+ join:
+ - table-name: products
+ keys:
+ - key: product_id
+ foreign-key: yotpo_id
+ - table-name: reviews
+ keys:
+ - key: source_review_id
+ foreign-key: id
+- table-name: reviews
+ join:
+ - table-name: product_reviews
+ keys:
+ - key: id
+ foreign-key: source_review_id
diff --git a/_data/taps/schemas/yotpo/v2/yotpo-v2-tables.yml b/_data/taps/schemas/yotpo/v2/yotpo-v2-tables.yml
new file mode 100644
index 000000000..b43c8888e
--- /dev/null
+++ b/_data/taps/schemas/yotpo/v2/yotpo-v2-tables.yml
@@ -0,0 +1,156 @@
+tap: yotpo
+version: '2'
+tables:
+- name: collections
+ description: 'The `{{ table.name }}` table contains data about your store''s product
+ groupings - collections - in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://core-api.yotpo.com/reference/collections
+ singer-schema: https://github.com/singer-io/tap-yotpo/tree/master/tap_yotpo/schemas/collections.json
+ api-method: https://core-api.yotpo.com/reference/retrieve-collections
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: yotpo_id
+ replication-key: updated_at
+- name: emails
+ description: 'The `{{ table.name }}` table contains data about every email sent
+ from {{ integration.display_name }}.
+
+
+ #### Attribution window {#email-attribution-window}
+
+
+ When Stitch replicates data for this table, it will use an attribution window
+ of {{ integration.attribution-window }} to fetch updated email statistics such
+ as opens, clicks, etc. This means that every time a replication job runs, the
+ last 30 days'' worth of data will be replicated for this table.
+
+
+ Refer to the [Replication](#replication) section for more info and examples of
+ how the attribution window is used to query for data.
+
+ '
+ links:
+ doc-link: https://apidocs.yotpo.com/v1.0/reference#email-analytics-intro
+ singer-schema: https://github.com/singer-io/tap-yotpo/tree/master/tap_yotpo/schemas/emails.json
+ api-method: https://apidocs.yotpo.com/v1.0/reference#raw-data
+ table-details:
+ replication-method: Key-based Incremental
+ primary-keys:
+ - email_address
+ - email_sent_timestamp
+ replication-key: email_sent_timestamp
+- name: orders
+ description: 'The `{{ table.name }}` table contains data about orders in your {{
+ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://core-api.yotpo.com/reference/orders
+ singer-schema: https://github.com/singer-io/tap-yotpo/tree/master/tap_yotpo/schemas/orders.json
+ api-method: https://core-api.yotpo.com/reference/retrieve-orders
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: yotpo_id
+ replication-key: order_date
+- name: order_fulfillments
+ description: 'The `{{ table.name }}` table contains data about fulfilled store orders
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://core-api.yotpo.com/reference/order-fulfillments
+ singer-schema: https://github.com/singer-io/tap-yotpo/tree/master/tap_yotpo/schemas/order_fulfillments.json
+ api-method: https://core-api.yotpo.com/reference/retrieve-order-fulfillments
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: products
+ description: 'The `{{ table.name }}` table contains data about products in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://apidocs.yotpo.com/reference#introduction-to-products
+ singer-schema: https://github.com/singer-io/tap-yotpo/tree/master/tap_yotpo/schemas/products.json
+ api-method: https://apidocs.yotpo.com/reference#retrieve-all-products
+ table-details:
+ replication-method: Full Table
+ primary-key: yotpo_id
+- name: product_reviews
+ description: 'The `{{ table.name }}` table contains data about reviews for a certain
+ product.
+
+
+ **Note**: This table is similar to the `reviews` table, but also contains custom
+ fields. If you don''t have or need custom product fields, you may only want to
+ replicate the `reviews` table to prevent redundant data.
+
+ '
+ links:
+ doc-link: https://apidocs.yotpo.com/reference/about-storefront-reviews
+ singer-schema: https://github.com/singer-io/tap-yotpo/tree/master/tap_yotpo/schemas/product_reviews.json
+ api-method: https://apidocs.yotpo.com/reference/retrieve-reviews-for-a-product
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created_at
+- name: product_variants
+ description: 'The `{{ table.name }}` table contains data about product variations
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ doc-link: https://core-api.yotpo.com/reference/product-variants
+ singer-schema: https://github.com/singer-io/tap-yotpo/tree/master/tap_yotpo/schemas/product_variants.json
+ api-method: https://core-api.yotpo.com/reference/retrieve-product-variants
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: yotpo_id
+ replication-key: updated_at
+- name: reviews
+ description: 'The `{{ table.name }}` table contains data about reviews.
+
+
+ **Note**: This table is similar to the `product_reviews` table, but doesn''t contain
+ custom fields. If you have or need custom fields, you may want to only replicate
+ the `product_reviews` table to prevent redundant data.
+
+
+ #### Attribution window {#review-attribution-window}
+
+
+ When Stitch replicates data for this table, it will use an attribution window
+ of {{ integration.attribution-window }} to fetch updated (or deleted) reviews.
+ This means that every time a replication job runs, the last 30 days'' worth of
+ data will be replicated for this table.
+
+
+ Refer to the [Replication](#replication) section for more info and examples of
+ how the attribution window is used to query for data.
+
+ '
+ links:
+ doc-link: https://apidocs.yotpo.com/reference#section-what-are-reviews
+ singer-schema: https://github.com/singer-io/tap-yotpo/tree/master/tap_yotpo/schemas/reviews.json
+ api-method: https://apidocs.yotpo.com/reference#retrieve-all-reviews
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: unsubscribers
+ description: 'The `{{ table.name }}` table contains data about customers who unsubscribed
+ from one of Yotpo''s emails.
+
+ '
+ links:
+ doc-link: https://apidocs.yotpo.com/reference#introduction-to-unsubscribers
+ singer-schema: https://github.com/singer-io/tap-yotpo/tree/master/tap_yotpo/schemas/unsubscribers.json
+ api-method: https://apidocs.yotpo.com/reference#retrieve-a-list-of-unsubscribers
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/zendesk-chat/v1/json/account.json b/_data/taps/schemas/zendesk-chat/v1/json/account.json
new file mode 100644
index 000000000..e455d1913
--- /dev/null
+++ b/_data/taps/schemas/zendesk-chat/v1/json/account.json
@@ -0,0 +1,280 @@
+{
+ "properties": {
+ "account_key": {
+ "type": [
+ "string"
+ ]
+ },
+ "billing": {
+ "properties": {
+ "additional_info": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address1": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "company": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "postal_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "create_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "plan": {
+ "properties": {
+ "agent_leaderboard": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "agent_reports": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "analytics": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "chat_reports": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "daily_reports": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "email_reports": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "file_upload": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "goals": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "high_load": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "integrations": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ip_restriction": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "long_desc": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_advanced_triggers": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_agents": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "max_basic_triggers": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_concurrent_chats": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_departments": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "max_history_search_days": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "monitoring": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operating_hours": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "price": {
+ "exclusiveMaximum": true,
+ "exclusiveMinimum": true,
+ "maximum": 1e+33,
+ "minimum": -1e+33,
+ "multipleOf": 1e-05,
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "rest_api": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "short_desc": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sla": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "support": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "unbranding": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "widget_customization": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk-chat/v1/json/agents.json b/_data/taps/schemas/zendesk-chat/v1/json/agents.json
new file mode 100644
index 000000000..8be46d297
--- /dev/null
+++ b/_data/taps/schemas/zendesk-chat/v1/json/agents.json
@@ -0,0 +1,122 @@
+{
+ "properties": {
+ "create_date": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "departments": {
+ "items": {
+ "type": [
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enabled_departments": {
+ "items": {
+ "type": [
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "last_login": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "login_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "role_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "roles": {
+ "properties": {
+ "administrator": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "owner": {
+ "type": [
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "skills": {
+ "items": {
+ "type": "integer"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk-chat/v1/json/bans.json b/_data/taps/schemas/zendesk-chat/v1/json/bans.json
new file mode 100644
index 000000000..942efcc7d
--- /dev/null
+++ b/_data/taps/schemas/zendesk-chat/v1/json/bans.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ip_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visitor_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visitor_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk-chat/v1/json/chats.json b/_data/taps/schemas/zendesk-chat/v1/json/chats.json
new file mode 100644
index 000000000..a56fe9b45
--- /dev/null
+++ b/_data/taps/schemas/zendesk-chat/v1/json/chats.json
@@ -0,0 +1,575 @@
+{
+ "properties": {
+ "agent_ids": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "agent_names": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "comment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversions": {
+ "items": {
+ "properties": {
+ "attribution": {
+ "properties": {
+ "agent_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "agent_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "chat_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "department_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "department_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "goal_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "goal_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "count": {
+ "properties": {
+ "agent": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "total": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "visitor": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "department_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "department_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "end_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "history": {
+ "items": {
+ "properties": {
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "conversion": {
+ "properties": {
+ "attribution": {
+ "properties": {
+ "agent_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "agent_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "chat_timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "department_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "department_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "goal_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "goal_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "department_id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "department_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "msg": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "msg_id": {
+ "type": [
+ "null",
+ "string",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "new_rating": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "new_tags": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "nick": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "options": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prev_department_id": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "rating": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "skills_name": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "missed": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "rating": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referrer_search_engine": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "referrer_search_terms": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "response_time": {
+ "properties": {
+ "avg": {
+ "type": [
+ "null",
+ "number",
+ "integer"
+ ]
+ },
+ "first": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "max": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "session": {
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "started_by": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "triggered": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "triggered_response": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "unread": {
+ "type": [
+ "null",
+ "boolean",
+ "integer"
+ ]
+ },
+ "visitor": {
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "webpath": {
+ "items": {
+ "anyOf": [
+ {
+ "properties": {
+ "from": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timestamp": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ {
+ "items": {
+ "type": [
+ "null",
+ "integer",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "zendesk_ticket_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "tap_schema_dependencies": [
+ "chat_conversion",
+ "chat_count",
+ "chat_history",
+ "chat_response_time",
+ "chat_visitor",
+ "chat_webpath"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk-chat/v1/json/departments.json b/_data/taps/schemas/zendesk-chat/v1/json/departments.json
new file mode 100644
index 000000000..e15d0f679
--- /dev/null
+++ b/_data/taps/schemas/zendesk-chat/v1/json/departments.json
@@ -0,0 +1,49 @@
+{
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "members": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "settings": {
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk-chat/v1/json/goals.json b/_data/taps/schemas/zendesk-chat/v1/json/goals.json
new file mode 100644
index 000000000..0259eb876
--- /dev/null
+++ b/_data/taps/schemas/zendesk-chat/v1/json/goals.json
@@ -0,0 +1,83 @@
+{
+ "properties": {
+ "attribution_model": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "attribution_period": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "settings": {
+ "properties": {
+ "conditions": {
+ "items": {
+ "properties": {
+ "operator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk-chat/v1/json/shortcuts.json b/_data/taps/schemas/zendesk-chat/v1/json/shortcuts.json
new file mode 100644
index 000000000..65c4af5b8
--- /dev/null
+++ b/_data/taps/schemas/zendesk-chat/v1/json/shortcuts.json
@@ -0,0 +1,66 @@
+{
+ "properties": {
+ "agents": {
+ "items": {
+ "type": "integer"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "departments": {
+ "items": {
+ "type": "integer"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "message": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "options": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "scope": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk-chat/v1/json/triggers.json b/_data/taps/schemas/zendesk-chat/v1/json/triggers.json
new file mode 100644
index 000000000..8b509a509
--- /dev/null
+++ b/_data/taps/schemas/zendesk-chat/v1/json/triggers.json
@@ -0,0 +1,63 @@
+{
+ "properties": {
+ "definition": {
+ "properties": {
+ "actions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "condition": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "event": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "version": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk-chat/v1/zendesk-chat-v1-foreign-keys.yml b/_data/taps/schemas/zendesk-chat/v1/zendesk-chat-v1-foreign-keys.yml
new file mode 100644
index 000000000..49baf23a0
--- /dev/null
+++ b/_data/taps/schemas/zendesk-chat/v1/zendesk-chat-v1-foreign-keys.yml
@@ -0,0 +1,164 @@
+tap: zendesk-chat
+version: '1'
+keys:
+ account_account-key:
+ - table: account
+ keys:
+ - id
+ agents_id:
+ - table: agents
+ keys:
+ - id
+ - table: chats
+ keys:
+ - agent_ids
+ bans_id:
+ - table: bans
+ keys:
+ - id
+ chats_id:
+ - table: chats
+ keys:
+ - id
+ departments_id:
+ - table: departments
+ keys:
+ - id
+ - table: shortcuts
+ keys:
+ - departments
+ - table: chats
+ keys:
+ - department_id
+ - history.prev_department_id
+ - table: agents
+ keys:
+ - departments
+ goals_id:
+ - table: goals
+ keys:
+ - id
+ - table: chats
+ keys:
+ - conversions.goal_id
+ - history.conversion.goal_id
+ - table: account
+ keys:
+ - plan.goals
+ shortcuts_name:
+ - table: shortcuts
+ keys:
+ - id
+ triggers_id:
+ - table: triggers
+ keys:
+ - id
+tables:
+- table-name: account
+ join:
+ - table-name: goals
+ keys:
+ - key: plan.goals
+ foreign-key: id
+ - table-name: chats
+ keys:
+ - key: plan.goals
+ foreign-key: conversions.goal_id
+ - key: plan.goals
+ foreign-key: history.conversion.goal_id
+- table-name: agents
+ join:
+ - table-name: chats
+ keys:
+ - key: id
+ foreign-key: agent_ids
+ - key: departments
+ foreign-key: department_id
+ - key: departments
+ foreign-key: history.prev_department_id
+ - table-name: departments
+ keys:
+ - key: departments
+ foreign-key: id
+ - table-name: shortcuts
+ keys:
+ - key: departments
+ foreign-key: departments
+- table-name: chats
+ join:
+ - table-name: agents
+ keys:
+ - key: agent_ids
+ foreign-key: id
+ - key: department_id
+ foreign-key: departments
+ - key: history.prev_department_id
+ foreign-key: departments
+ - table-name: departments
+ keys:
+ - key: department_id
+ foreign-key: id
+ - key: history.prev_department_id
+ foreign-key: id
+ - table-name: shortcuts
+ keys:
+ - key: department_id
+ foreign-key: departments
+ - key: history.prev_department_id
+ foreign-key: departments
+ - table-name: goals
+ keys:
+ - key: conversions.goal_id
+ foreign-key: id
+ - key: history.conversion.goal_id
+ foreign-key: id
+ - table-name: account
+ keys:
+ - key: conversions.goal_id
+ foreign-key: plan.goals
+ - key: history.conversion.goal_id
+ foreign-key: plan.goals
+- table-name: departments
+ join:
+ - table-name: shortcuts
+ keys:
+ - key: id
+ foreign-key: departments
+ - table-name: chats
+ keys:
+ - key: id
+ foreign-key: department_id
+ - key: id
+ foreign-key: history.prev_department_id
+ - table-name: agents
+ keys:
+ - key: id
+ foreign-key: departments
+- table-name: shortcuts
+ join:
+ - table-name: departments
+ keys:
+ - key: departments
+ foreign-key: id
+ - table-name: chats
+ keys:
+ - key: departments
+ foreign-key: department_id
+ - key: departments
+ foreign-key: history.prev_department_id
+ - table-name: agents
+ keys:
+ - key: departments
+ foreign-key: departments
+- table-name: goals
+ join:
+ - table-name: chats
+ keys:
+ - key: id
+ foreign-key: conversions.goal_id
+ - key: id
+ foreign-key: history.conversion.goal_id
+ - table-name: account
+ keys:
+ - key: id
+ foreign-key: plan.goals
diff --git a/_data/taps/schemas/zendesk-chat/v1/zendesk-chat-v1-tables.yml b/_data/taps/schemas/zendesk-chat/v1/zendesk-chat-v1-tables.yml
new file mode 100644
index 000000000..4feba3645
--- /dev/null
+++ b/_data/taps/schemas/zendesk-chat/v1/zendesk-chat-v1-tables.yml
@@ -0,0 +1,92 @@
+tap: zendesk-chat
+version: '1'
+tables:
+- name: account
+ description: 'The `{{ table.name }}` table contains info about accounts within your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zendesk-chat/blob/master/tap_zendesk_chat/schemas/account.json
+ api-method: https://developer.zendesk.com/api-reference/live-chat/chat-api/accounts/
+ table-details:
+ replication-method: Full Table
+ primary-key: account_key
+- name: agents
+ description: 'The `{{ table.name }}` table contains info about agents within your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zendesk-chat/blob/master/tap_zendesk_chat/schemas/agents.json
+ api-method: https://developer.zendesk.com/api-reference/live-chat/chat-api/agents/
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: bans
+ description: 'The `{{ table.name }}` table contains info about bans created in your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zendesk-chat/blob/master/tap_zendesk_chat/schemas/bans.json
+ api-method: https://developer.zendesk.com/api-reference/live-chat/chat-api/bans/
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: chats
+ description: 'The `{{ table.name }}` table contains info about the chats within
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zendesk-chat/blob/master/tap_zendesk_chat/schemas/chats.json
+ api-method: https://developer.zendesk.com/api-reference/live-chat/chat-api/chats/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: timestamp
+- name: departments
+ description: 'The `{{ table.name }}` table contains info about departments within
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zendesk-chat/blob/master/tap_zendesk_chat/schemas/departments.json
+ api-method: https://developer.zendesk.com/api-reference/live-chat/chat-api/departments/
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: goals
+ description: 'The `{{ table.name }}` table contains info about URL-based goals set
+ within your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zendesk-chat/blob/master/tap_zendesk_chat/schemas/goals.json
+ api-method: https://developer.zendesk.com/api-reference/live-chat/chat-api/goals/
+ table-details:
+ replication-method: Full Table
+- name: shortcuts
+ description: 'The `{{ table.name }}` table contains info about shortcuts within
+ your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zendesk-chat/blob/master/tap_zendesk_chat/schemas/shortcuts.json
+ api-method: https://developer.zendesk.com/api-reference/live-chat/chat-api/shortcuts/
+ table-details:
+ replication-method: Full Table
+ primary-key: name
+- name: triggers
+ description: 'The `{{ table.name }}` table contains info about triggers within your
+ {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zendesk-chat/blob/master/tap_zendesk_chat/schemas/shortcuts.json
+ api-method: https://developer.zendesk.com/api-reference/live-chat/chat-api/triggers/#list-triggers
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/zendesk/v1/json/group_memberships.json b/_data/taps/schemas/zendesk/v1/json/group_memberships.json
new file mode 100644
index 000000000..9e9f236d3
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v1/json/group_memberships.json
@@ -0,0 +1,50 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v1/json/groups.json b/_data/taps/schemas/zendesk/v1/json/groups.json
new file mode 100644
index 000000000..9ceb92dec
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v1/json/groups.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v1/json/macros.json b/_data/taps/schemas/zendesk/v1/json/macros.json
new file mode 100644
index 000000000..e2766cdb1
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v1/json/macros.json
@@ -0,0 +1,114 @@
+{
+ "properties": {
+ "actions": {
+ "items": {
+ "properties": {
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "restriction": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v1/json/organizations.json b/_data/taps/schemas/zendesk/v1/json/organizations.json
new file mode 100644
index 000000000..66ccc409f
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v1/json/organizations.json
@@ -0,0 +1,111 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "domain_names": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organization_fields": {
+ "additionalProperties": true,
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shared_comments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "shared_tickets": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v1/json/satisfaction_ratings.json b/_data/taps/schemas/zendesk/v1/json/satisfaction_ratings.json
new file mode 100644
index 000000000..2b0b72d38
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v1/json/satisfaction_ratings.json
@@ -0,0 +1,81 @@
+{
+ "properties": {
+ "assignee_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "comment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reason_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "requester_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "score": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ticket_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object",
+ "string"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v1/json/sla_policies.json b/_data/taps/schemas/zendesk/v1/json/sla_policies.json
new file mode 100644
index 000000000..633789f9b
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v1/json/sla_policies.json
@@ -0,0 +1,151 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "filter": {
+ "properties": {
+ "all": {
+ "items": {
+ "properties": {
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "any": {
+ "items": {
+ "properties": {
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "policy_metrics": {
+ "items": {
+ "properties": {
+ "business_hours": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metric": {},
+ "priority": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "target": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v1/json/tags.json b/_data/taps/schemas/zendesk/v1/json/tags.json
new file mode 100644
index 000000000..279164101
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v1/json/tags.json
@@ -0,0 +1,20 @@
+{
+ "properties": {
+ "count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v1/json/ticket_audits.json b/_data/taps/schemas/zendesk/v1/json/ticket_audits.json
new file mode 100644
index 000000000..2d8b975f4
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v1/json/ticket_audits.json
@@ -0,0 +1,786 @@
+{
+ "properties": {
+ "author_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "events": {
+ "items": {
+ "properties": {
+ "attachments": {
+ "items": {
+ "properties": {
+ "content_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inline": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mapped_content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumbnails": {
+ "items": {
+ "properties": {
+ "content_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inline": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mapped_content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "audit_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "author_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "data": {
+ "properties": {
+ "answered_by_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "answered_by_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "call_duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "from": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recording_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "started_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transcription_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transcription_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "field_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "formatted_from": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "formatted_to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "macro_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "macro_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "macro_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plain_body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "previous_value": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array",
+ "string"
+ ]
+ },
+ "public": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "recipients": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "resource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transcription_visible": {},
+ "trusted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array",
+ "string"
+ ]
+ },
+ "via": {
+ "properties": {
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "properties": {
+ "from": {
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_recipients": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "revision_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ticket_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "rel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to": {
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "metadata": {
+ "properties": {
+ "custom": {},
+ "flags": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "flags_options": {
+ "properties": {
+ "11": {
+ "properties": {
+ "message": {
+ "properties": {
+ "user": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trusted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "2": {
+ "properties": {
+ "trusted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "notifications_suppressed_for": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "system": {
+ "properties": {
+ "client": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ip_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "json_email_identifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "location": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "message_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "raw_email_identifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trusted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ticket_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "via": {
+ "properties": {
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "properties": {
+ "from": {
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_recipients": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ticket_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ticket_ids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "rel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to": {
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v1/json/ticket_comments.json b/_data/taps/schemas/zendesk/v1/json/ticket_comments.json
new file mode 100644
index 000000000..6aa3ca01e
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v1/json/ticket_comments.json
@@ -0,0 +1,481 @@
+{
+ "properties": {
+ "attachments": {
+ "items": {
+ "properties": {
+ "content_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inline": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mapped_content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumbnails": {
+ "items": {
+ "properties": {
+ "content_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inline": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mapped_content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "audit_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "author_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "html_body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "metadata": {
+ "properties": {
+ "custom": {},
+ "flags": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "flags_options": {
+ "properties": {
+ "11": {
+ "properties": {
+ "message": {
+ "properties": {
+ "user": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trusted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "2": {
+ "properties": {
+ "trusted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "notifications_suppressed_for": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "system": {
+ "properties": {
+ "client": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ip_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "json_email_identifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "location": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "message_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "raw_email_identifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trusted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "plain_body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "public": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ticket_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "via": {
+ "properties": {
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "properties": {
+ "from": {
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_recipients": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ticket_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ticket_ids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "rel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to": {
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v1/json/ticket_fields.json b/_data/taps/schemas/zendesk/v1/json/ticket_fields.json
new file mode 100644
index 000000000..e56703f46
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v1/json/ticket_fields.json
@@ -0,0 +1,197 @@
+{
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "agent_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "collapsed_for_agents": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_field_options": {
+ "items": {
+ "properties": {
+ "default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "raw_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "editable_in_portal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "raw_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "raw_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "raw_title_in_portal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "regexp_for_validation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "removable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "required_in_portal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "sub_type_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "system_field_options": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title_in_portal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visible_in_portal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v1/json/ticket_forms.json b/_data/taps/schemas/zendesk/v1/json/ticket_forms.json
new file mode 100644
index 000000000..6dedf11cc
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v1/json/ticket_forms.json
@@ -0,0 +1,110 @@
+{
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end_user_visible": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "in_all_brands": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "raw_display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "raw_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "restricted_brand_ids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ticket_field_ids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v1/json/ticket_metrics.json b/_data/taps/schemas/zendesk/v1/json/ticket_metrics.json
new file mode 100644
index 000000000..b33d4b713
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v1/json/ticket_metrics.json
@@ -0,0 +1,268 @@
+{
+ "properties": {
+ "agent_wait_time_in_minutes": {
+ "properties": {
+ "business": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "calendar": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "assigned_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "assignee_stations": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "assignee_updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "first_resolution_time_in_minutes": {
+ "properties": {
+ "business": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "calendar": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "full_resolution_time_in_minutes": {
+ "properties": {
+ "business": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "calendar": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "group_stations": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "initially_assigned_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "instance_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "latest_comment_added_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "metric": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "on_hold_time_in_minutes": {
+ "properties": {
+ "business": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "calendar": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "reopens": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "replies": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reply_time_in_minutes": {
+ "properties": {
+ "business": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "calendar": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "requester_updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "requester_wait_time_in_minutes": {
+ "properties": {
+ "business": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "calendar": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "solved_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "properties": {
+ "business": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "calendar": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "status_updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ticket_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v1/json/tickets.json b/_data/taps/schemas/zendesk/v1/json/tickets.json
new file mode 100644
index 000000000..674b633e9
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v1/json/tickets.json
@@ -0,0 +1,424 @@
+{
+ "properties": {
+ "allow_attachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_channelback": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "assignee_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "brand_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "collaborator_ids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "value": {}
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "due_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email_cc_ids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "follower_ids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "followup_ids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "forum_topic_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "generated_timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "has_incidents": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_public": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "organization_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "priority": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "problem_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "raw_subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recipient": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "requester_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "satisfaction_rating": {
+ "properties": {
+ "assignee_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "comment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reason_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "requester_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "score": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ticket_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object",
+ "string"
+ ]
+ },
+ "sharing_agreement_ids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "submitter_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ticket_form_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "via": {
+ "properties": {
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "properties": {
+ "from": {
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ticket_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "rel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to": {
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v1/json/users.json b/_data/taps/schemas/zendesk/v1/json/users.json
new file mode 100644
index 000000000..79600d937
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v1/json/users.json
@@ -0,0 +1,379 @@
+{
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "alias": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "chat_only": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_role_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "default_group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_login_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locale_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "moderator": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "only_private_comments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "organization_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "permanently_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "photo": {
+ "properties": {
+ "content_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inline": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mapped_content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumbnails": {
+ "items": {
+ "properties": {
+ "content_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inline": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mapped_content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "report_csv": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "restricted_agent": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "role": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shared": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "shared_agent": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "shared_phone_number": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "signature": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suspended": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ticket_restriction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "time_zone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "two_factor_auth_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_fields": {
+ "additionalProperties": true,
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "verified": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v1/zendesk-v1-foreign-keys.yml b/_data/taps/schemas/zendesk/v1/zendesk-v1-foreign-keys.yml
new file mode 100644
index 000000000..5f54630aa
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v1/zendesk-v1-foreign-keys.yml
@@ -0,0 +1,615 @@
+tap: zendesk
+version: '1'
+keys:
+ groups_group_id:
+ - table: groups
+ keys:
+ - id
+ - table: group_memberships
+ keys:
+ - group_id
+ - table: organizations
+ keys:
+ - group_id
+ - table: satisfaction_ratings
+ keys:
+ - group_id
+ - table: tickets
+ keys:
+ - group_id
+ - table: users
+ keys:
+ - default_group_id
+ groups_group_membership_id:
+ - table: group_memberships
+ keys:
+ - id
+ macros_macro_id:
+ - table: macros
+ keys:
+ - id
+ - table: ticket_audits
+ keys:
+ - events.macro_id
+ organizations_organization_id:
+ - table: organizations
+ keys:
+ - id
+ - table: tickets
+ keys:
+ - organization_id
+ - table: users
+ keys:
+ - organization_id
+ _restriction_id:
+ - table: macros
+ keys:
+ - restriction.id
+ - table: groups
+ keys:
+ - id
+ - table: users
+ keys:
+ - id
+ _sla_policy_id:
+ - table: sla_policies
+ keys:
+ - id
+ tags_name:
+ - table: tags
+ keys:
+ - name
+ - table: organizations
+ keys:
+ - tags
+ - table: tickets
+ keys:
+ - tags
+ - table: users
+ keys:
+ - tags
+ ticket_audits_audit_id:
+ - table: ticket_audits
+ keys:
+ - id
+ - events.audit_id
+ - table: ticket_comments
+ keys:
+ - audit_id
+ ticket_fields_ticket_field_id:
+ - table: ticket_fields
+ keys:
+ - id
+ - table: ticket_forms
+ keys:
+ - ticket_field_ids
+ - table: tickets
+ keys:
+ - custom_fields.id
+ ticket_forms_ticket_form_id:
+ - table: ticket_forms
+ keys:
+ - id
+ - table: tickets
+ keys:
+ - ticket_form_id
+ tickets_ticket_id:
+ - table: satisfaction_ratings
+ keys:
+ - ticket_id
+ - table: tickets
+ keys:
+ - id
+ - table: ticket_audits
+ keys:
+ - ticket_id
+ - table: ticket_comments
+ keys:
+ - ticket_id
+ - table: ticket_metrics
+ keys:
+ - ticket_id
+ ticket_metrics_ticket_metric_id:
+ - table: ticket_metrics
+ keys:
+ - id
+ users_user_id:
+ - table: satisfaction_ratings
+ keys:
+ - assignee_id
+ - requester_id
+ - table: ticket_audits
+ keys:
+ - author_id
+ - table: ticket_comments
+ keys:
+ - author_id
+ - table: tickets
+ keys:
+ - requester_id
+ - follower_ids
+ - submitter_id
+ - collaborator_ids
+ - assignee_id
+ - table: users
+ keys:
+ - id
+tables:
+- table-name: groups
+ join:
+ - table-name: group_memberships
+ keys:
+ - key: id
+ foreign-key: group_id
+ - table-name: organizations
+ keys:
+ - key: id
+ foreign-key: group_id
+ - table-name: satisfaction_ratings
+ keys:
+ - key: id
+ foreign-key: group_id
+ - table-name: tickets
+ keys:
+ - key: id
+ foreign-key: group_id
+ - table-name: users
+ keys:
+ - key: id
+ foreign-key: default_group_id
+ - key: id
+ foreign-key: id
+ - table-name: macros
+ keys:
+ - key: id
+ foreign-key: restriction.id
+- table-name: group_memberships
+ join:
+ - table-name: groups
+ keys:
+ - key: group_id
+ foreign-key: id
+ - table-name: organizations
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: satisfaction_ratings
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: tickets
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: users
+ keys:
+ - key: group_id
+ foreign-key: default_group_id
+- table-name: organizations
+ join:
+ - table-name: groups
+ keys:
+ - key: group_id
+ foreign-key: id
+ - table-name: group_memberships
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: satisfaction_ratings
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: tickets
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - key: id
+ foreign-key: organization_id
+ - key: tags
+ foreign-key: tags
+ - table-name: users
+ keys:
+ - key: group_id
+ foreign-key: default_group_id
+ - key: id
+ foreign-key: organization_id
+ - key: tags
+ foreign-key: tags
+ - table-name: tags
+ keys:
+ - key: tags
+ foreign-key: name
+- table-name: satisfaction_ratings
+ join:
+ - table-name: groups
+ keys:
+ - key: group_id
+ foreign-key: id
+ - table-name: group_memberships
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: organizations
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: tickets
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - key: ticket_id
+ foreign-key: id
+ - key: assignee_id
+ foreign-key: requester_id
+ - key: requester_id
+ foreign-key: requester_id
+ - key: assignee_id
+ foreign-key: follower_ids
+ - key: requester_id
+ foreign-key: follower_ids
+ - key: assignee_id
+ foreign-key: submitter_id
+ - key: requester_id
+ foreign-key: submitter_id
+ - key: assignee_id
+ foreign-key: collaborator_ids
+ - key: requester_id
+ foreign-key: collaborator_ids
+ - key: assignee_id
+ foreign-key: assignee_id
+ - key: requester_id
+ foreign-key: assignee_id
+ - table-name: users
+ keys:
+ - key: group_id
+ foreign-key: default_group_id
+ - key: assignee_id
+ foreign-key: id
+ - key: requester_id
+ foreign-key: id
+ - table-name: ticket_audits
+ keys:
+ - key: ticket_id
+ foreign-key: ticket_id
+ - key: assignee_id
+ foreign-key: author_id
+ - key: requester_id
+ foreign-key: author_id
+ - table-name: ticket_comments
+ keys:
+ - key: ticket_id
+ foreign-key: ticket_id
+ - key: assignee_id
+ foreign-key: author_id
+ - key: requester_id
+ foreign-key: author_id
+ - table-name: ticket_metrics
+ keys:
+ - key: ticket_id
+ foreign-key: ticket_id
+- table-name: tickets
+ join:
+ - table-name: groups
+ keys:
+ - key: group_id
+ foreign-key: id
+ - table-name: group_memberships
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: organizations
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - key: organization_id
+ foreign-key: id
+ - key: tags
+ foreign-key: tags
+ - table-name: satisfaction_ratings
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - key: id
+ foreign-key: ticket_id
+ - key: requester_id
+ foreign-key: assignee_id
+ - key: follower_ids
+ foreign-key: assignee_id
+ - key: submitter_id
+ foreign-key: assignee_id
+ - key: collaborator_ids
+ foreign-key: assignee_id
+ - key: assignee_id
+ foreign-key: assignee_id
+ - key: requester_id
+ foreign-key: requester_id
+ - key: follower_ids
+ foreign-key: requester_id
+ - key: submitter_id
+ foreign-key: requester_id
+ - key: collaborator_ids
+ foreign-key: requester_id
+ - key: assignee_id
+ foreign-key: requester_id
+ - table-name: users
+ keys:
+ - key: group_id
+ foreign-key: default_group_id
+ - key: organization_id
+ foreign-key: organization_id
+ - key: tags
+ foreign-key: tags
+ - key: requester_id
+ foreign-key: id
+ - key: follower_ids
+ foreign-key: id
+ - key: submitter_id
+ foreign-key: id
+ - key: collaborator_ids
+ foreign-key: id
+ - key: assignee_id
+ foreign-key: id
+ - table-name: tags
+ keys:
+ - key: tags
+ foreign-key: name
+ - table-name: ticket_fields
+ keys:
+ - key: custom_fields.id
+ foreign-key: id
+ - table-name: ticket_forms
+ keys:
+ - key: custom_fields.id
+ foreign-key: ticket_field_ids
+ - key: ticket_form_id
+ foreign-key: id
+ - table-name: ticket_audits
+ keys:
+ - key: id
+ foreign-key: ticket_id
+ - key: requester_id
+ foreign-key: author_id
+ - key: follower_ids
+ foreign-key: author_id
+ - key: submitter_id
+ foreign-key: author_id
+ - key: collaborator_ids
+ foreign-key: author_id
+ - key: assignee_id
+ foreign-key: author_id
+ - table-name: ticket_comments
+ keys:
+ - key: id
+ foreign-key: ticket_id
+ - key: requester_id
+ foreign-key: author_id
+ - key: follower_ids
+ foreign-key: author_id
+ - key: submitter_id
+ foreign-key: author_id
+ - key: collaborator_ids
+ foreign-key: author_id
+ - key: assignee_id
+ foreign-key: author_id
+ - table-name: ticket_metrics
+ keys:
+ - key: id
+ foreign-key: ticket_id
+- table-name: users
+ join:
+ - table-name: groups
+ keys:
+ - key: default_group_id
+ foreign-key: id
+ - key: id
+ foreign-key: id
+ - table-name: group_memberships
+ keys:
+ - key: default_group_id
+ foreign-key: group_id
+ - table-name: organizations
+ keys:
+ - key: default_group_id
+ foreign-key: group_id
+ - key: organization_id
+ foreign-key: id
+ - key: tags
+ foreign-key: tags
+ - table-name: satisfaction_ratings
+ keys:
+ - key: default_group_id
+ foreign-key: group_id
+ - key: id
+ foreign-key: assignee_id
+ - key: id
+ foreign-key: requester_id
+ - table-name: tickets
+ keys:
+ - key: default_group_id
+ foreign-key: group_id
+ - key: organization_id
+ foreign-key: organization_id
+ - key: tags
+ foreign-key: tags
+ - key: id
+ foreign-key: requester_id
+ - key: id
+ foreign-key: follower_ids
+ - key: id
+ foreign-key: submitter_id
+ - key: id
+ foreign-key: collaborator_ids
+ - key: id
+ foreign-key: assignee_id
+ - table-name: macros
+ keys:
+ - key: id
+ foreign-key: restriction.id
+ - table-name: tags
+ keys:
+ - key: tags
+ foreign-key: name
+ - table-name: ticket_audits
+ keys:
+ - key: id
+ foreign-key: author_id
+ - table-name: ticket_comments
+ keys:
+ - key: id
+ foreign-key: author_id
+- table-name: macros
+ join:
+ - table-name: ticket_audits
+ keys:
+ - key: id
+ foreign-key: events.macro_id
+ - table-name: groups
+ keys:
+ - key: restriction.id
+ foreign-key: id
+ - table-name: users
+ keys:
+ - key: restriction.id
+ foreign-key: id
+- table-name: ticket_audits
+ join:
+ - table-name: macros
+ keys:
+ - key: events.macro_id
+ foreign-key: id
+ - table-name: ticket_comments
+ keys:
+ - key: id
+ foreign-key: audit_id
+ - key: events.audit_id
+ foreign-key: audit_id
+ - key: ticket_id
+ foreign-key: ticket_id
+ - key: author_id
+ foreign-key: author_id
+ - table-name: satisfaction_ratings
+ keys:
+ - key: ticket_id
+ foreign-key: ticket_id
+ - key: author_id
+ foreign-key: assignee_id
+ - key: author_id
+ foreign-key: requester_id
+ - table-name: tickets
+ keys:
+ - key: ticket_id
+ foreign-key: id
+ - key: author_id
+ foreign-key: requester_id
+ - key: author_id
+ foreign-key: follower_ids
+ - key: author_id
+ foreign-key: submitter_id
+ - key: author_id
+ foreign-key: collaborator_ids
+ - key: author_id
+ foreign-key: assignee_id
+ - table-name: ticket_metrics
+ keys:
+ - key: ticket_id
+ foreign-key: ticket_id
+ - table-name: users
+ keys:
+ - key: author_id
+ foreign-key: id
+- table-name: tags
+ join:
+ - table-name: organizations
+ keys:
+ - key: name
+ foreign-key: tags
+ - table-name: tickets
+ keys:
+ - key: name
+ foreign-key: tags
+ - table-name: users
+ keys:
+ - key: name
+ foreign-key: tags
+- table-name: ticket_comments
+ join:
+ - table-name: ticket_audits
+ keys:
+ - key: audit_id
+ foreign-key: id
+ - key: audit_id
+ foreign-key: events.audit_id
+ - key: ticket_id
+ foreign-key: ticket_id
+ - key: author_id
+ foreign-key: author_id
+ - table-name: satisfaction_ratings
+ keys:
+ - key: ticket_id
+ foreign-key: ticket_id
+ - key: author_id
+ foreign-key: assignee_id
+ - key: author_id
+ foreign-key: requester_id
+ - table-name: tickets
+ keys:
+ - key: ticket_id
+ foreign-key: id
+ - key: author_id
+ foreign-key: requester_id
+ - key: author_id
+ foreign-key: follower_ids
+ - key: author_id
+ foreign-key: submitter_id
+ - key: author_id
+ foreign-key: collaborator_ids
+ - key: author_id
+ foreign-key: assignee_id
+ - table-name: ticket_metrics
+ keys:
+ - key: ticket_id
+ foreign-key: ticket_id
+ - table-name: users
+ keys:
+ - key: author_id
+ foreign-key: id
+- table-name: ticket_fields
+ join:
+ - table-name: ticket_forms
+ keys:
+ - key: id
+ foreign-key: ticket_field_ids
+ - table-name: tickets
+ keys:
+ - key: id
+ foreign-key: custom_fields.id
+- table-name: ticket_forms
+ join:
+ - table-name: ticket_fields
+ keys:
+ - key: ticket_field_ids
+ foreign-key: id
+ - table-name: tickets
+ keys:
+ - key: ticket_field_ids
+ foreign-key: custom_fields.id
+ - key: id
+ foreign-key: ticket_form_id
+- table-name: ticket_metrics
+ join:
+ - table-name: satisfaction_ratings
+ keys:
+ - key: ticket_id
+ foreign-key: ticket_id
+ - table-name: tickets
+ keys:
+ - key: ticket_id
+ foreign-key: id
+ - table-name: ticket_audits
+ keys:
+ - key: ticket_id
+ foreign-key: ticket_id
+ - table-name: ticket_comments
+ keys:
+ - key: ticket_id
+ foreign-key: ticket_id
diff --git a/_data/taps/schemas/zendesk/v1/zendesk-v1-tables.yml b/_data/taps/schemas/zendesk/v1/zendesk-v1-tables.yml
new file mode 100644
index 000000000..ec2b342cc
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v1/zendesk-v1-tables.yml
@@ -0,0 +1,290 @@
+tap: zendesk
+version: '1'
+tables:
+- name: groups
+ description: "The `{{ table.name }}` table contains info about the groups in your\
+ \ {{ integration.display_name }} account. \n\n**Note**: Retrieving group data\
+ \ requires {{ integration.display_name }} Admin or Agent permissions.\n"
+ links:
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/groups
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/groups.json
+ api-method: https://developer.zendesk.com/rest_api/docs/support/groups#list-groups
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: group_memberships
+ description: 'The `{{ table.name }}` table contains info about the groups your {{
+ integration.display_name }} agents are members of.
+
+
+ **Note**: Retrieving group membership data requires {{ integration.display_name
+ }} Agent or Admin permissions.
+
+
+ #### Deleted group memberships
+
+
+ As {{ integration.display_name }}''s API doesn''t currently provide a method for
+ identifying deleted group memberships, we recommend periodically dropping this
+ table and allowing Stitch to re-create it. Currently, dropping and re-populating
+ the table is the only way to detect deletions.
+
+ '
+ links:
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/group_memberships
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/group_memberships.json
+ api-method: https://developer.zendesk.com/rest_api/docs/support/group_memberships#list-memberships
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: macros
+ description: "The `{{ table.name }}` table contains info about the macros in your\
+ \ {{ integration.display_name }} account. Macros are actions defined by you that\
+ \ modify the values of a ticket\u2019s fields.\n\n**Note**: Retrieving macro data\
+ \ requires {{ integration.display_name }} Agent or Admin permissions.\n"
+ links:
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/macros
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/macros.json
+ api-method: https://developer.zendesk.com/rest_api/docs/support/macros#list-macros
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: organizations
+ description: 'The `{{ table.name }}` table contains information about the organizations
+ your end-users belong to.
+
+
+ #### Custom organization fields
+
+
+ Stitch''s {{ integration.display_name }} integration will replicate any custom
+ fields associated with organization records.
+
+
+ **Note**: Replicating organization custom fields requires that you be on a Team,
+ Professional, or Enterprise {{ integration.display_name }} plan and have Admin
+ permissions in {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/organizations
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/organizations.json
+ api-method: https://developer.zendesk.com/rest_api/docs/support/incremental_export#incremental-organization-export
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: satisfaction_ratings
+ description: "The `{{ table.name }}` table contains info about ratings users have\
+ \ offered on support tickets. \n\n**Note**: This table is only available if satisfaction\
+ \ ratings are enabled in your {{ integration.display_name }} account.\n"
+ links:
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/satisfaction_ratings
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/satisfaction_ratings.json
+ api-method: https://developer.zendesk.com/rest_api/docs/support/satisfaction_ratings#list-satisfaction-ratings
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: sla_policies
+ description: 'The `{{ table.name }}` table contains info about the Service Level
+ Agreements (SLAs) in your {{ integration.display_name }} account. An SLA is a
+ documented agreement between a support provider and their customers that defines
+ performance measures for support.
+
+
+ **Note**: Replicating SLA policies requires that you be on an Enterprise or Professional
+ {{ integration.display_name }} plan, and have Admin permissions in {{ integration.display_name
+ }}.
+
+ '
+ links:
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/sla_policies
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/sla_policies.json
+ api-method: https://developer.zendesk.com/rest_api/docs/support/sla_policies#list-sla-policies
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: tags
+ description: 'The `{{ table.name }}` table the names and total number of applications
+ of the tags in your {{ integration.display_name }} account.
+
+
+ **Note**: Retrieving tag data requires {{ integration.display_name }} Admin permissions.
+
+ '
+ links:
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/tags
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/tags.json
+ api-method: https://developer.zendesk.com/rest_api/docs/support/tags#list-tags
+ table-details:
+ replication-method: Full Table
+ primary-key: name
+- name: tickets
+ description: 'The `{{ table.name }}` table contains info about the tickets in your
+ {{ integration.display_name }} account. Tickets are the means through which your
+ end users (customers) communicate with your {{ integration.display_name }} agents.
+
+
+ **Note**: Retrieving ticket data requires {{ integration.display_name }} Admin
+ permissions.
+
+
+ #### Custom ticket fields {#custom-ticket-fields}
+
+
+ Stitch''s {{ integration.display_name }} integration will replicate all custom
+ ticket fields.
+
+ '
+ links:
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/tickets
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/tickets.json
+ api-method: https://developer.zendesk.com/rest_api/docs/support/incremental_export#incremental-ticket-export
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: generated_timestamp
+- name: ticket_audits
+ description: 'The `{{ table.name }}` table contains info about the activity associated
+ with a ticket. An audit is a history of all updates to a given ticket. When a
+ ticket is updated in {{ integration.display_name }}, an audit record is created.
+ Each audit represents a single update to a ticket.
+
+
+ A single audit record may include multiple event types. For example: A ticket
+ comment, satisfaction rating, and a change event. For a full list of {{ integration.display_name
+ }} audit event types, [refer to {{ integration.display_name }}''s documentation](https://developer.zendesk.com/rest_api/docs/support/ticket_audits#audit-events){:target="new"}.
+
+
+ #### Replication {#ticket-audit-replication}
+
+
+ This table uses Append-Only Incremental Replication. This means that new audit
+ records, or updates made to existing audits, are appended as new rows to the end
+ of the table.
+
+ '
+ links:
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/ticket_audits
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/ticket_audits.json
+ api-method: https://developer.zendesk.com/rest_api/support/core/ticket_audits#list-all-ticket-audits
+ table-details:
+ replication-method: Append-Only Incremental
+ primary-key: id
+ replication-key: created_at
+- name: ticket_comments
+ description: 'The `{{ table.name }}` table contains info about the comments on tickets,
+ which is the conversation between requesters, collaborators, and agents. Comments
+ can be public or private.
+
+ '
+ links:
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/ticket_comments
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/ticket_comments.json
+ api-method: https://developer.zendesk.com/rest_api/docs/support/ticket_comments#list-comments
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created_at
+- name: ticket_fields
+ description: 'The `{{ table.name }}` table contains info about the basic text and
+ custom ticket fields in your {{ integration.display_name }} account.
+
+
+ **Note**: Retrieving ticket metric data requires {{ integration.display_name }}
+ Agent or Admin permissions.
+
+ '
+ links:
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/ticket_fields
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/ticket_fields.json
+ api-method: https://developer.zendesk.com/rest_api/docs/support/ticket_fields#list-ticket-fields
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: ticket_forms
+ description: 'The `{{ table.name }}` table contains info about the ticket forms
+ in your {{ integration.display_name }} account.
+
+
+ **Note**: Replicating ticket forms requires that you be on an Enterprise {{ integration.display_name
+ }} plan or a Professional plan with the corresponding add-on, and have Admin permissions
+ in {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/ticket_forms
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/ticket_forms.json
+ api-method: https://developer.zendesk.com/rest_api/docs/support/ticket_forms#list-ticket-forms
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: ticket_metrics
+ description: 'The `{{ table.name }}` table contains info about the metrics associated
+ with {{ integration.display_name }} tickets. **This table will not include records
+ for deleted tickets.**
+
+
+ **Note**: Retrieving ticket metric data requires {{ integration.display_name }}
+ Admin permissions.
+
+
+ #### Deleted ticket metrics
+
+
+ As {{ integration.display_name }}''s API doesn''t currently support returning
+ metrics for deleted tickets, this table will not contain any metrics for deleted
+ tickets.
+
+
+ If you believe you''re missing records, check in your {{ integration.display_name
+ }} account to see if the missing records are for deleted tickets.
+
+
+ For more info on how {{ integration.display_name }} handles deleting tickets,
+ [refer to their documentation](https://support.zendesk.com/hc/en-us/articles/203690936){:target="new"}.
+
+ '
+ links:
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/ticket_metrics
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/ticket_metrics.json
+ api-method: https://developer.zendesk.com/rest_api/docs/support/ticket_metrics#list-ticket-metrics
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: users
+ description: 'The `{{ table.name }}` table contains info about the users associated
+ with your {{ integration.display_name }} account. This includes agents, admins,
+ and end-users (customers).
+
+
+ **Note**: Retrieving user data requires {{ integration.display_name }} Admin permissions.
+
+
+ #### Custom user fields {#customer-user-fields}
+
+
+ Stitch''s {{ integration.display_name }} integration will replicate any custom
+ fields associated with user records.
+
+
+ **Note**: Replicating user custom fields requires that you be on a Team, Professional,
+ or Enterprise {{ integration.display_name }} plan.
+
+ '
+ links:
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/users
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/users.json
+ api-method: https://developer.zendesk.com/rest_api/docs/support/incremental_export#incremental-user-export
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/zendesk/v2/json/group_memberships.json b/_data/taps/schemas/zendesk/v2/json/group_memberships.json
new file mode 100644
index 000000000..9e9f236d3
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v2/json/group_memberships.json
@@ -0,0 +1,50 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v2/json/groups.json b/_data/taps/schemas/zendesk/v2/json/groups.json
new file mode 100644
index 000000000..9ceb92dec
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v2/json/groups.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v2/json/macros.json b/_data/taps/schemas/zendesk/v2/json/macros.json
new file mode 100644
index 000000000..e2766cdb1
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v2/json/macros.json
@@ -0,0 +1,114 @@
+{
+ "properties": {
+ "actions": {
+ "items": {
+ "properties": {
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "restriction": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v2/json/organizations.json b/_data/taps/schemas/zendesk/v2/json/organizations.json
new file mode 100644
index 000000000..66ccc409f
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v2/json/organizations.json
@@ -0,0 +1,111 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "deleted_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "domain_names": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "organization_fields": {
+ "additionalProperties": true,
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "shared_comments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "shared_tickets": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v2/json/satisfaction_ratings.json b/_data/taps/schemas/zendesk/v2/json/satisfaction_ratings.json
new file mode 100644
index 000000000..2b0b72d38
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v2/json/satisfaction_ratings.json
@@ -0,0 +1,81 @@
+{
+ "properties": {
+ "assignee_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "comment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reason_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "requester_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "score": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ticket_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object",
+ "string"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v2/json/sla_policies.json b/_data/taps/schemas/zendesk/v2/json/sla_policies.json
new file mode 100644
index 000000000..633789f9b
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v2/json/sla_policies.json
@@ -0,0 +1,151 @@
+{
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "filter": {
+ "properties": {
+ "all": {
+ "items": {
+ "properties": {
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "any": {
+ "items": {
+ "properties": {
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "operator": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "policy_metrics": {
+ "items": {
+ "properties": {
+ "business_hours": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "metric": {},
+ "priority": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "target": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v2/json/tags.json b/_data/taps/schemas/zendesk/v2/json/tags.json
new file mode 100644
index 000000000..279164101
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v2/json/tags.json
@@ -0,0 +1,20 @@
+{
+ "properties": {
+ "count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v2/json/talk_phone_numbers.json b/_data/taps/schemas/zendesk/v2/json/talk_phone_numbers.json
new file mode 100644
index 000000000..d3c92a181
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v2/json/talk_phone_numbers.json
@@ -0,0 +1,215 @@
+{
+ "properties": {
+ "capabilities": {
+ "properties": {
+ "mms": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "sms": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "voice": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "categorised_greetings": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "categorised_greetings_with_sub_settings": {
+ "properties": {},
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "country_code": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "default_greeting_ids": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "default_group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "display_number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "greeting_ids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "group_ids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "ivr_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "line_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "location": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "nickname": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "outbound_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "priority": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "recorded": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "schedule_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "sms_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "sms_group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "token": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "toll_free": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "transcription": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "voice_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v2/json/ticket_audits.json b/_data/taps/schemas/zendesk/v2/json/ticket_audits.json
new file mode 100644
index 000000000..2d8b975f4
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v2/json/ticket_audits.json
@@ -0,0 +1,786 @@
+{
+ "properties": {
+ "author_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "events": {
+ "items": {
+ "properties": {
+ "attachments": {
+ "items": {
+ "properties": {
+ "content_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inline": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mapped_content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumbnails": {
+ "items": {
+ "properties": {
+ "content_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inline": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mapped_content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "audit_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "author_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "data": {
+ "properties": {
+ "answered_by_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "answered_by_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "call_duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "from": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recording_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "started_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transcription_status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transcription_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "field_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "formatted_from": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "formatted_to": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "html_body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "macro_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "macro_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "macro_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plain_body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "previous_value": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array",
+ "string"
+ ]
+ },
+ "public": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "recipients": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "resource": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "transcription_visible": {},
+ "trusted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array",
+ "string"
+ ]
+ },
+ "via": {
+ "properties": {
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "properties": {
+ "from": {
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_recipients": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "revision_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ticket_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "rel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to": {
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "metadata": {
+ "properties": {
+ "custom": {},
+ "flags": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "flags_options": {
+ "properties": {
+ "11": {
+ "properties": {
+ "message": {
+ "properties": {
+ "user": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trusted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "2": {
+ "properties": {
+ "trusted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "notifications_suppressed_for": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "system": {
+ "properties": {
+ "client": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ip_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "json_email_identifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "location": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "message_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "raw_email_identifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trusted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ticket_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "via": {
+ "properties": {
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "properties": {
+ "from": {
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_recipients": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ticket_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ticket_ids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "rel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to": {
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v2/json/ticket_comments.json b/_data/taps/schemas/zendesk/v2/json/ticket_comments.json
new file mode 100644
index 000000000..6aa3ca01e
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v2/json/ticket_comments.json
@@ -0,0 +1,481 @@
+{
+ "properties": {
+ "attachments": {
+ "items": {
+ "properties": {
+ "content_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inline": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mapped_content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumbnails": {
+ "items": {
+ "properties": {
+ "content_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inline": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mapped_content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "audit_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "author_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "html_body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "metadata": {
+ "properties": {
+ "custom": {},
+ "flags": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "flags_options": {
+ "properties": {
+ "11": {
+ "properties": {
+ "message": {
+ "properties": {
+ "user": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trusted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "2": {
+ "properties": {
+ "trusted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "notifications_suppressed_for": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "system": {
+ "properties": {
+ "client": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ip_address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "json_email_identifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "latitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "location": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "longitude": {
+ "type": [
+ "null",
+ "number"
+ ]
+ },
+ "message_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "raw_email_identifier": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "trusted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "plain_body": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "public": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "ticket_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "via": {
+ "properties": {
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "properties": {
+ "from": {
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "original_recipients": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ticket_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "ticket_ids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "rel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to": {
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v2/json/ticket_fields.json b/_data/taps/schemas/zendesk/v2/json/ticket_fields.json
new file mode 100644
index 000000000..e56703f46
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v2/json/ticket_fields.json
@@ -0,0 +1,197 @@
+{
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "agent_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "collapsed_for_agents": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_field_options": {
+ "items": {
+ "properties": {
+ "default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "raw_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "editable_in_portal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "raw_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "raw_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "raw_title_in_portal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "regexp_for_validation": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "removable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "required_in_portal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "sub_type_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "system_field_options": {
+ "items": {},
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "tag": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title_in_portal": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visible_in_portal": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v2/json/ticket_forms.json b/_data/taps/schemas/zendesk/v2/json/ticket_forms.json
new file mode 100644
index 000000000..6dedf11cc
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v2/json/ticket_forms.json
@@ -0,0 +1,110 @@
+{
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "default": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "end_user_visible": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "in_all_brands": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "position": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "raw_display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "raw_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "restricted_brand_ids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ticket_field_ids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v2/json/ticket_metric_events.json b/_data/taps/schemas/zendesk/v2/json/ticket_metric_events.json
new file mode 100644
index 000000000..8aa2de0ad
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v2/json/ticket_metric_events.json
@@ -0,0 +1,115 @@
+{
+ "properties": {
+ "deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "instance_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "metric": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "sla": {
+ "properties": {
+ "business_hours": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "policy": {
+ "properties": {
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "target": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "status": {
+ "properties": {
+ "business": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "calendar": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "ticket_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v2/json/ticket_metrics.json b/_data/taps/schemas/zendesk/v2/json/ticket_metrics.json
new file mode 100644
index 000000000..b33d4b713
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v2/json/ticket_metrics.json
@@ -0,0 +1,268 @@
+{
+ "properties": {
+ "agent_wait_time_in_minutes": {
+ "properties": {
+ "business": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "calendar": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "assigned_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "assignee_stations": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "assignee_updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "first_resolution_time_in_minutes": {
+ "properties": {
+ "business": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "calendar": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "full_resolution_time_in_minutes": {
+ "properties": {
+ "business": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "calendar": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "group_stations": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "initially_assigned_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "instance_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "latest_comment_added_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "metric": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "on_hold_time_in_minutes": {
+ "properties": {
+ "business": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "calendar": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "reopens": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "replies": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reply_time_in_minutes": {
+ "properties": {
+ "business": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "calendar": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "requester_updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "requester_wait_time_in_minutes": {
+ "properties": {
+ "business": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "calendar": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "solved_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "properties": {
+ "business": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "calendar": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "status_updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "ticket_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "time": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v2/json/tickets.json b/_data/taps/schemas/zendesk/v2/json/tickets.json
new file mode 100644
index 000000000..674b633e9
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v2/json/tickets.json
@@ -0,0 +1,424 @@
+{
+ "properties": {
+ "allow_attachments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_channelback": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "assignee_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "brand_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "collaborator_ids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_fields": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "value": {}
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "due_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "email_cc_ids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "follower_ids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "followup_ids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "forum_topic_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "generated_timestamp": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "has_incidents": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "is_public": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "organization_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "priority": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "problem_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "raw_subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recipient": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "requester_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "satisfaction_rating": {
+ "properties": {
+ "assignee_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "comment": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "reason": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "reason_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "requester_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "score": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ticket_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object",
+ "string"
+ ]
+ },
+ "sharing_agreement_ids": {
+ "items": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "submitter_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ticket_form_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "via": {
+ "properties": {
+ "channel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "source": {
+ "properties": {
+ "from": {
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "subject": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "ticket_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "rel": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "to": {
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v2/json/users.json b/_data/taps/schemas/zendesk/v2/json/users.json
new file mode 100644
index 000000000..79600d937
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v2/json/users.json
@@ -0,0 +1,379 @@
+{
+ "properties": {
+ "active": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "alias": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "chat_only": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_role_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "default_group_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "details": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "external_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "last_login_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "locale": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "locale_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "moderator": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "only_private_comments": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "organization_id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "permanently_deleted": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "photo": {
+ "properties": {
+ "content_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inline": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mapped_content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "thumbnails": {
+ "items": {
+ "properties": {
+ "content_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "height": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "id": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "inline": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mapped_content_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "width": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "report_csv": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "restricted_agent": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "role": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "shared": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "shared_agent": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "shared_phone_number": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "signature": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "suspended": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "tags": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "ticket_restriction": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "time_zone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "two_factor_auth_enabled": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "updated_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_fields": {
+ "additionalProperties": true,
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "verified": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zendesk/v2/zendesk-v2-foreign-keys.yml b/_data/taps/schemas/zendesk/v2/zendesk-v2-foreign-keys.yml
new file mode 100644
index 000000000..2ed0b5683
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v2/zendesk-v2-foreign-keys.yml
@@ -0,0 +1,615 @@
+tap: zendesk
+version: '2'
+keys:
+ groups_group_id:
+ - table: groups
+ keys:
+ - id
+ - table: group_memberships
+ keys:
+ - group_id
+ - table: organizations
+ keys:
+ - group_id
+ - table: satisfaction_ratings
+ keys:
+ - group_id
+ - table: tickets
+ keys:
+ - group_id
+ - table: users
+ keys:
+ - default_group_id
+ groups_group_membership_id:
+ - table: group_memberships
+ keys:
+ - id
+ macros_macro_id:
+ - table: macros
+ keys:
+ - id
+ - table: ticket_audits
+ keys:
+ - events.macro_id
+ organizations_organization_id:
+ - table: organizations
+ keys:
+ - id
+ - table: tickets
+ keys:
+ - organization_id
+ - table: users
+ keys:
+ - organization_id
+ _restriction_id:
+ - table: macros
+ keys:
+ - restriction.id
+ - table: groups
+ keys:
+ - id
+ - table: users
+ keys:
+ - id
+ _sla_policy_id:
+ - table: sla_policies
+ keys:
+ - id
+ tags_name:
+ - table: tags
+ keys:
+ - name
+ - table: organizations
+ keys:
+ - tags
+ - table: tickets
+ keys:
+ - tags
+ - table: users
+ keys:
+ - tags
+ ticket_audits_audit_id:
+ - table: ticket_audits
+ keys:
+ - id
+ - events.audit_id
+ - table: ticket_comments
+ keys:
+ - audit_id
+ ticket_fields_ticket_field_id:
+ - table: ticket_fields
+ keys:
+ - id
+ - table: ticket_forms
+ keys:
+ - ticket_field_ids
+ - table: tickets
+ keys:
+ - custom_fields.id
+ ticket_forms_ticket_form_id:
+ - table: ticket_forms
+ keys:
+ - id
+ - table: tickets
+ keys:
+ - ticket_form_id
+ tickets_ticket_id:
+ - table: satisfaction_ratings
+ keys:
+ - ticket_id
+ - table: tickets
+ keys:
+ - id
+ - table: ticket_audits
+ keys:
+ - ticket_id
+ - table: ticket_comments
+ keys:
+ - ticket_id
+ - table: ticket_metrics
+ keys:
+ - ticket_id
+ ticket_metrics_ticket_metric_id:
+ - table: ticket_metrics
+ keys:
+ - id
+ users_user_id:
+ - table: satisfaction_ratings
+ keys:
+ - assignee_id
+ - requester_id
+ - table: ticket_audits
+ keys:
+ - author_id
+ - table: ticket_comments
+ keys:
+ - author_id
+ - table: tickets
+ keys:
+ - requester_id
+ - follower_ids
+ - submitter_id
+ - collaborator_ids
+ - assignee_id
+ - table: users
+ keys:
+ - id
+tables:
+- table-name: groups
+ join:
+ - table-name: group_memberships
+ keys:
+ - key: id
+ foreign-key: group_id
+ - table-name: organizations
+ keys:
+ - key: id
+ foreign-key: group_id
+ - table-name: satisfaction_ratings
+ keys:
+ - key: id
+ foreign-key: group_id
+ - table-name: tickets
+ keys:
+ - key: id
+ foreign-key: group_id
+ - table-name: users
+ keys:
+ - key: id
+ foreign-key: default_group_id
+ - key: id
+ foreign-key: id
+ - table-name: macros
+ keys:
+ - key: id
+ foreign-key: restriction.id
+- table-name: group_memberships
+ join:
+ - table-name: groups
+ keys:
+ - key: group_id
+ foreign-key: id
+ - table-name: organizations
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: satisfaction_ratings
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: tickets
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: users
+ keys:
+ - key: group_id
+ foreign-key: default_group_id
+- table-name: organizations
+ join:
+ - table-name: groups
+ keys:
+ - key: group_id
+ foreign-key: id
+ - table-name: group_memberships
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: satisfaction_ratings
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: tickets
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - key: id
+ foreign-key: organization_id
+ - key: tags
+ foreign-key: tags
+ - table-name: users
+ keys:
+ - key: group_id
+ foreign-key: default_group_id
+ - key: id
+ foreign-key: organization_id
+ - key: tags
+ foreign-key: tags
+ - table-name: tags
+ keys:
+ - key: tags
+ foreign-key: name
+- table-name: satisfaction_ratings
+ join:
+ - table-name: groups
+ keys:
+ - key: group_id
+ foreign-key: id
+ - table-name: group_memberships
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: organizations
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: tickets
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - key: ticket_id
+ foreign-key: id
+ - key: assignee_id
+ foreign-key: requester_id
+ - key: requester_id
+ foreign-key: requester_id
+ - key: assignee_id
+ foreign-key: follower_ids
+ - key: requester_id
+ foreign-key: follower_ids
+ - key: assignee_id
+ foreign-key: submitter_id
+ - key: requester_id
+ foreign-key: submitter_id
+ - key: assignee_id
+ foreign-key: collaborator_ids
+ - key: requester_id
+ foreign-key: collaborator_ids
+ - key: assignee_id
+ foreign-key: assignee_id
+ - key: requester_id
+ foreign-key: assignee_id
+ - table-name: users
+ keys:
+ - key: group_id
+ foreign-key: default_group_id
+ - key: assignee_id
+ foreign-key: id
+ - key: requester_id
+ foreign-key: id
+ - table-name: ticket_audits
+ keys:
+ - key: ticket_id
+ foreign-key: ticket_id
+ - key: assignee_id
+ foreign-key: author_id
+ - key: requester_id
+ foreign-key: author_id
+ - table-name: ticket_comments
+ keys:
+ - key: ticket_id
+ foreign-key: ticket_id
+ - key: assignee_id
+ foreign-key: author_id
+ - key: requester_id
+ foreign-key: author_id
+ - table-name: ticket_metrics
+ keys:
+ - key: ticket_id
+ foreign-key: ticket_id
+- table-name: tickets
+ join:
+ - table-name: groups
+ keys:
+ - key: group_id
+ foreign-key: id
+ - table-name: group_memberships
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - table-name: organizations
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - key: organization_id
+ foreign-key: id
+ - key: tags
+ foreign-key: tags
+ - table-name: satisfaction_ratings
+ keys:
+ - key: group_id
+ foreign-key: group_id
+ - key: id
+ foreign-key: ticket_id
+ - key: requester_id
+ foreign-key: assignee_id
+ - key: follower_ids
+ foreign-key: assignee_id
+ - key: submitter_id
+ foreign-key: assignee_id
+ - key: collaborator_ids
+ foreign-key: assignee_id
+ - key: assignee_id
+ foreign-key: assignee_id
+ - key: requester_id
+ foreign-key: requester_id
+ - key: follower_ids
+ foreign-key: requester_id
+ - key: submitter_id
+ foreign-key: requester_id
+ - key: collaborator_ids
+ foreign-key: requester_id
+ - key: assignee_id
+ foreign-key: requester_id
+ - table-name: users
+ keys:
+ - key: group_id
+ foreign-key: default_group_id
+ - key: organization_id
+ foreign-key: organization_id
+ - key: tags
+ foreign-key: tags
+ - key: requester_id
+ foreign-key: id
+ - key: follower_ids
+ foreign-key: id
+ - key: submitter_id
+ foreign-key: id
+ - key: collaborator_ids
+ foreign-key: id
+ - key: assignee_id
+ foreign-key: id
+ - table-name: tags
+ keys:
+ - key: tags
+ foreign-key: name
+ - table-name: ticket_fields
+ keys:
+ - key: custom_fields.id
+ foreign-key: id
+ - table-name: ticket_forms
+ keys:
+ - key: custom_fields.id
+ foreign-key: ticket_field_ids
+ - key: ticket_form_id
+ foreign-key: id
+ - table-name: ticket_audits
+ keys:
+ - key: id
+ foreign-key: ticket_id
+ - key: requester_id
+ foreign-key: author_id
+ - key: follower_ids
+ foreign-key: author_id
+ - key: submitter_id
+ foreign-key: author_id
+ - key: collaborator_ids
+ foreign-key: author_id
+ - key: assignee_id
+ foreign-key: author_id
+ - table-name: ticket_comments
+ keys:
+ - key: id
+ foreign-key: ticket_id
+ - key: requester_id
+ foreign-key: author_id
+ - key: follower_ids
+ foreign-key: author_id
+ - key: submitter_id
+ foreign-key: author_id
+ - key: collaborator_ids
+ foreign-key: author_id
+ - key: assignee_id
+ foreign-key: author_id
+ - table-name: ticket_metrics
+ keys:
+ - key: id
+ foreign-key: ticket_id
+- table-name: users
+ join:
+ - table-name: groups
+ keys:
+ - key: default_group_id
+ foreign-key: id
+ - key: id
+ foreign-key: id
+ - table-name: group_memberships
+ keys:
+ - key: default_group_id
+ foreign-key: group_id
+ - table-name: organizations
+ keys:
+ - key: default_group_id
+ foreign-key: group_id
+ - key: organization_id
+ foreign-key: id
+ - key: tags
+ foreign-key: tags
+ - table-name: satisfaction_ratings
+ keys:
+ - key: default_group_id
+ foreign-key: group_id
+ - key: id
+ foreign-key: assignee_id
+ - key: id
+ foreign-key: requester_id
+ - table-name: tickets
+ keys:
+ - key: default_group_id
+ foreign-key: group_id
+ - key: organization_id
+ foreign-key: organization_id
+ - key: tags
+ foreign-key: tags
+ - key: id
+ foreign-key: requester_id
+ - key: id
+ foreign-key: follower_ids
+ - key: id
+ foreign-key: submitter_id
+ - key: id
+ foreign-key: collaborator_ids
+ - key: id
+ foreign-key: assignee_id
+ - table-name: macros
+ keys:
+ - key: id
+ foreign-key: restriction.id
+ - table-name: tags
+ keys:
+ - key: tags
+ foreign-key: name
+ - table-name: ticket_audits
+ keys:
+ - key: id
+ foreign-key: author_id
+ - table-name: ticket_comments
+ keys:
+ - key: id
+ foreign-key: author_id
+- table-name: macros
+ join:
+ - table-name: ticket_audits
+ keys:
+ - key: id
+ foreign-key: events.macro_id
+ - table-name: groups
+ keys:
+ - key: restriction.id
+ foreign-key: id
+ - table-name: users
+ keys:
+ - key: restriction.id
+ foreign-key: id
+- table-name: ticket_audits
+ join:
+ - table-name: macros
+ keys:
+ - key: events.macro_id
+ foreign-key: id
+ - table-name: ticket_comments
+ keys:
+ - key: id
+ foreign-key: audit_id
+ - key: events.audit_id
+ foreign-key: audit_id
+ - key: ticket_id
+ foreign-key: ticket_id
+ - key: author_id
+ foreign-key: author_id
+ - table-name: satisfaction_ratings
+ keys:
+ - key: ticket_id
+ foreign-key: ticket_id
+ - key: author_id
+ foreign-key: assignee_id
+ - key: author_id
+ foreign-key: requester_id
+ - table-name: tickets
+ keys:
+ - key: ticket_id
+ foreign-key: id
+ - key: author_id
+ foreign-key: requester_id
+ - key: author_id
+ foreign-key: follower_ids
+ - key: author_id
+ foreign-key: submitter_id
+ - key: author_id
+ foreign-key: collaborator_ids
+ - key: author_id
+ foreign-key: assignee_id
+ - table-name: ticket_metrics
+ keys:
+ - key: ticket_id
+ foreign-key: ticket_id
+ - table-name: users
+ keys:
+ - key: author_id
+ foreign-key: id
+- table-name: tags
+ join:
+ - table-name: organizations
+ keys:
+ - key: name
+ foreign-key: tags
+ - table-name: tickets
+ keys:
+ - key: name
+ foreign-key: tags
+ - table-name: users
+ keys:
+ - key: name
+ foreign-key: tags
+- table-name: ticket_comments
+ join:
+ - table-name: ticket_audits
+ keys:
+ - key: audit_id
+ foreign-key: id
+ - key: audit_id
+ foreign-key: events.audit_id
+ - key: ticket_id
+ foreign-key: ticket_id
+ - key: author_id
+ foreign-key: author_id
+ - table-name: satisfaction_ratings
+ keys:
+ - key: ticket_id
+ foreign-key: ticket_id
+ - key: author_id
+ foreign-key: assignee_id
+ - key: author_id
+ foreign-key: requester_id
+ - table-name: tickets
+ keys:
+ - key: ticket_id
+ foreign-key: id
+ - key: author_id
+ foreign-key: requester_id
+ - key: author_id
+ foreign-key: follower_ids
+ - key: author_id
+ foreign-key: submitter_id
+ - key: author_id
+ foreign-key: collaborator_ids
+ - key: author_id
+ foreign-key: assignee_id
+ - table-name: ticket_metrics
+ keys:
+ - key: ticket_id
+ foreign-key: ticket_id
+ - table-name: users
+ keys:
+ - key: author_id
+ foreign-key: id
+- table-name: ticket_fields
+ join:
+ - table-name: ticket_forms
+ keys:
+ - key: id
+ foreign-key: ticket_field_ids
+ - table-name: tickets
+ keys:
+ - key: id
+ foreign-key: custom_fields.id
+- table-name: ticket_forms
+ join:
+ - table-name: ticket_fields
+ keys:
+ - key: ticket_field_ids
+ foreign-key: id
+ - table-name: tickets
+ keys:
+ - key: ticket_field_ids
+ foreign-key: custom_fields.id
+ - key: id
+ foreign-key: ticket_form_id
+- table-name: ticket_metrics
+ join:
+ - table-name: satisfaction_ratings
+ keys:
+ - key: ticket_id
+ foreign-key: ticket_id
+ - table-name: tickets
+ keys:
+ - key: ticket_id
+ foreign-key: id
+ - table-name: ticket_audits
+ keys:
+ - key: ticket_id
+ foreign-key: ticket_id
+ - table-name: ticket_comments
+ keys:
+ - key: ticket_id
+ foreign-key: ticket_id
diff --git a/_data/taps/schemas/zendesk/v2/zendesk-v2-tables.yml b/_data/taps/schemas/zendesk/v2/zendesk-v2-tables.yml
new file mode 100644
index 000000000..b0c3a79f7
--- /dev/null
+++ b/_data/taps/schemas/zendesk/v2/zendesk-v2-tables.yml
@@ -0,0 +1,308 @@
+tap: zendesk
+version: '2'
+tables:
+- name: groups
+ description: "The `{{ table.name }}` table contains info about the groups in your\
+ \ {{ integration.display_name }} account. \n\n**Note**: Retrieving group data\
+ \ requires {{ integration.display_name }} Admin or Agent permissions.\n"
+ links:
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/groups
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/groups.json
+ api-method: https://developer.zendesk.com/rest_api/docs/support/groups#list-groups
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: group_memberships
+ description: 'The `{{ table.name }}` table contains info about the groups your {{
+ integration.display_name }} agents are members of.
+
+
+ **Note**: Retrieving group membership data requires {{ integration.display_name
+ }} Agent or Admin permissions.
+
+
+ #### Deleted group memberships
+
+
+ As {{ integration.display_name }}''s API doesn''t currently provide a method for
+ identifying deleted group memberships, we recommend periodically dropping this
+ table and allowing Stitch to re-create it. Currently, dropping and re-populating
+ the table is the only way to detect deletions.
+
+ '
+ links:
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/group_memberships
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/group_memberships.json
+ api-method: https://developer.zendesk.com/rest_api/docs/support/group_memberships#list-memberships
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: macros
+ description: "The `{{ table.name }}` table contains info about the macros in your\
+ \ {{ integration.display_name }} account. Macros are actions defined by you that\
+ \ modify the values of a ticket\u2019s fields.\n\n**Note**: Retrieving macro data\
+ \ requires {{ integration.display_name }} Agent or Admin permissions.\n"
+ links:
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/macros
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/macros.json
+ api-method: https://developer.zendesk.com/rest_api/docs/support/macros#list-macros
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: organizations
+ description: 'The `{{ table.name }}` table contains information about the organizations
+ your end-users belong to.
+
+
+ #### Custom organization fields
+
+
+ Stitch''s {{ integration.display_name }} integration will replicate any custom
+ fields associated with organization records.
+
+
+ **Note**: Replicating organization custom fields requires that you be on a Team,
+ Professional, or Enterprise {{ integration.display_name }} plan and have Admin
+ permissions in {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/organizations
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/organizations.json
+ api-method: https://developer.zendesk.com/rest_api/docs/support/incremental_export#incremental-organization-export
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: satisfaction_ratings
+ description: "The `{{ table.name }}` table contains info about ratings users have\
+ \ offered on support tickets. \n\n**Note**: This table is only available if satisfaction\
+ \ ratings are enabled in your {{ integration.display_name }} account.\n"
+ links:
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/satisfaction_ratings
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/satisfaction_ratings.json
+ api-method: https://developer.zendesk.com/rest_api/docs/support/satisfaction_ratings#list-satisfaction-ratings
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: sla_policies
+ description: 'The `{{ table.name }}` table contains info about the Service Level
+ Agreements (SLAs) in your {{ integration.display_name }} account. An SLA is a
+ documented agreement between a support provider and their customers that defines
+ performance measures for support.
+
+
+ **Note**: Replicating SLA policies requires that you be on an Enterprise or Professional
+ {{ integration.display_name }} plan, and have Admin permissions in {{ integration.display_name
+ }}.
+
+ '
+ links:
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/sla_policies
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/sla_policies.json
+ api-method: https://developer.zendesk.com/rest_api/docs/support/sla_policies#list-sla-policies
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: tags
+ description: 'The `{{ table.name }}` table the names and total number of applications
+ of the tags in your {{ integration.display_name }} account.
+
+
+ **Note**: Retrieving tag data requires {{ integration.display_name }} Admin permissions.
+
+ '
+ links:
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/tags
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/tags.json
+ api-method: https://developer.zendesk.com/rest_api/docs/support/tags#list-tags
+ table-details:
+ replication-method: Full Table
+ primary-key: name
+- name: talk_phone_numbers
+ description: This table contains data about phone numbers in Zendesk Talk.
+ links:
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/talk_phone_numbers.json
+ api-method: https://developer.zendesk.com/api-reference/voice/talk-api/phone_numbers/
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: tickets
+ description: 'The `{{ table.name }}` table contains info about the tickets in your
+ {{ integration.display_name }} account. Tickets are the means through which your
+ end users (customers) communicate with your {{ integration.display_name }} agents.
+
+
+ **Note**: Retrieving ticket data requires {{ integration.display_name }} Admin
+ permissions.
+
+
+ #### Custom ticket fields {#custom-ticket-fields}
+
+
+ Stitch''s {{ integration.display_name }} integration will replicate all custom
+ ticket fields.
+
+ '
+ links:
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/tickets
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/tickets.json
+ api-method: https://developer.zendesk.com/rest_api/docs/support/incremental_export#incremental-ticket-export
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: generated_timestamp
+- name: ticket_audits
+ description: 'The `{{ table.name }}` table contains info about the activity associated
+ with a ticket. An audit is a history of all updates to a given ticket. When a
+ ticket is updated in {{ integration.display_name }}, an audit record is created.
+ Each audit represents a single update to a ticket.
+
+
+ A single audit record may include multiple event types. For example: A ticket
+ comment, satisfaction rating, and a change event. For a full list of {{ integration.display_name
+ }} audit event types, [refer to {{ integration.display_name }}''s documentation](https://developer.zendesk.com/rest_api/docs/support/ticket_audits#audit-events){:target="new"}.
+
+
+ #### Replication {#ticket-audit-replication}
+
+
+ This table uses Append-Only Incremental Replication. This means that new audit
+ records, or updates made to existing audits, are appended as new rows to the end
+ of the table.
+
+ '
+ links:
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/ticket_audits
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/ticket_audits.json
+ api-method: https://developer.zendesk.com/rest_api/support/core/ticket_audits#list-all-ticket-audits
+ table-details:
+ replication-method: Append-Only Incremental
+ primary-key: id
+ replication-key: created_at
+- name: ticket_comments
+ description: 'The `{{ table.name }}` table contains info about the comments on tickets,
+ which is the conversation between requesters, collaborators, and agents. Comments
+ can be public or private.
+
+ '
+ links:
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/ticket_comments
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/ticket_comments.json
+ api-method: https://developer.zendesk.com/rest_api/docs/support/ticket_comments#list-comments
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: created_at
+- name: ticket_fields
+ description: 'The `{{ table.name }}` table contains info about the basic text and
+ custom ticket fields in your {{ integration.display_name }} account.
+
+
+ **Note**: Retrieving ticket metric data requires {{ integration.display_name }}
+ Agent or Admin permissions.
+
+ '
+ links:
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/ticket_fields
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/ticket_fields.json
+ api-method: https://developer.zendesk.com/rest_api/docs/support/ticket_fields#list-ticket-fields
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: ticket_forms
+ description: 'The `{{ table.name }}` table contains info about the ticket forms
+ in your {{ integration.display_name }} account.
+
+
+ **Note**: Replicating ticket forms requires that you be on an Enterprise {{ integration.display_name
+ }} plan or a Professional plan with the corresponding add-on, and have Admin permissions
+ in {{ integration.display_name }}.
+
+ '
+ links:
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/ticket_forms
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/ticket_forms.json
+ api-method: https://developer.zendesk.com/rest_api/docs/support/ticket_forms#list-ticket-forms
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: ticket_metrics
+ description: 'The `{{ table.name }}` table contains info about the metrics associated
+ with {{ integration.display_name }} tickets. **This table will not include records
+ for deleted tickets.**
+
+
+ **Note**: Retrieving ticket metric data requires {{ integration.display_name }}
+ Admin permissions.
+
+
+ #### Deleted ticket metrics
+
+
+ As {{ integration.display_name }}''s API doesn''t currently support returning
+ metrics for deleted tickets, this table will not contain any metrics for deleted
+ tickets.
+
+
+ If you believe you''re missing records, check in your {{ integration.display_name
+ }} account to see if the missing records are for deleted tickets.
+
+
+ For more info on how {{ integration.display_name }} handles deleting tickets,
+ [refer to their documentation](https://support.zendesk.com/hc/en-us/articles/203690936){:target="new"}.
+
+ '
+ links:
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/ticket_metrics
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/ticket_metrics.json
+ api-method: https://developer.zendesk.com/rest_api/docs/support/ticket_metrics#list-ticket-metrics
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+- name: ticket_metric_events
+ description: This table contains data about reply times, agent work times, and requester
+ wait times.
+ links:
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/ticket_metric_events.json
+ api-method: https://developer.zendesk.com/api-reference/ticketing/tickets/ticket_metric_events/
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: time
+- name: users
+ description: 'The `{{ table.name }}` table contains info about the users associated
+ with your {{ integration.display_name }} account. This includes agents, admins,
+ and end-users (customers).
+
+
+ **Note**: Retrieving user data requires {{ integration.display_name }} Admin permissions.
+
+
+ #### Custom user fields {#customer-user-fields}
+
+
+ Stitch''s {{ integration.display_name }} integration will replicate any custom
+ fields associated with user records.
+
+
+ **Note**: Replicating user custom fields requires that you be on a Team, Professional,
+ or Enterprise {{ integration.display_name }} plan.
+
+ '
+ links:
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/users
+ singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/users.json
+ api-method: https://developer.zendesk.com/rest_api/docs/support/incremental_export#incremental-user-export
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updated_at
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/zoom/v1/json/meeting_files.json b/_data/taps/schemas/zoom/v1/json/meeting_files.json
new file mode 100644
index 000000000..bce174aa1
--- /dev/null
+++ b/_data/taps/schemas/zoom/v1/json/meeting_files.json
@@ -0,0 +1,29 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "download_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "file_size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "meeting_uuid": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v1/json/meeting_poll_results.json b/_data/taps/schemas/zoom/v1/json/meeting_poll_results.json
new file mode 100644
index 000000000..879e78549
--- /dev/null
+++ b/_data/taps/schemas/zoom/v1/json/meeting_poll_results.json
@@ -0,0 +1,48 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "meeting_uuid": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "question_details": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "answer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "question": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v1/json/meeting_polls.json b/_data/taps/schemas/zoom/v1/json/meeting_polls.json
new file mode 100644
index 000000000..639ef456c
--- /dev/null
+++ b/_data/taps/schemas/zoom/v1/json/meeting_polls.json
@@ -0,0 +1,65 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "meeting_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "questions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "answers": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v1/json/meeting_questions.json b/_data/taps/schemas/zoom/v1/json/meeting_questions.json
new file mode 100644
index 000000000..75e42e3fd
--- /dev/null
+++ b/_data/taps/schemas/zoom/v1/json/meeting_questions.json
@@ -0,0 +1,80 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "custom_questions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "answers": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "meeting_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "questions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v1/json/meeting_registrants.json b/_data/taps/schemas/zoom/v1/json/meeting_registrants.json
new file mode 100644
index 000000000..7fa8f172c
--- /dev/null
+++ b/_data/taps/schemas/zoom/v1/json/meeting_registrants.json
@@ -0,0 +1,156 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "comments": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "county": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "create_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_questions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "industry": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "job_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "join_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "meeting_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "no_of_employees": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "org": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "purchasing_time_frame": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role_in_purchase_process": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v1/json/meetings.json b/_data/taps/schemas/zoom/v1/json/meetings.json
new file mode 100644
index 000000000..be19a5c7b
--- /dev/null
+++ b/_data/taps/schemas/zoom/v1/json/meetings.json
@@ -0,0 +1,440 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "agenda": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "encrypted_Password": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "h323_password": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "host_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "join_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "meeting_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "occurences": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "occurence_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "password": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pmi": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "recurrence": {
+ "additionalProperties": false,
+ "properties": {
+ "end_date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "end_times": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "monthly_day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "monthly_week": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "monthly_week_day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "repeat_interval": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "weekly_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "settings": {
+ "additionalProperties": false,
+ "properties": {
+ "alternative_hosts": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "approval_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "audio": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authentication_domains": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authentication_option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "auto_recording": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "close_registration": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "cn_meeting": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "contact_email": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "contact_name": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enforce_login": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enforce_login_domains": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "global_dial_in_countries": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "global_dial_in_numbers": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "host_video": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "in_meeting": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "join_before_host": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "meeting_authentication": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mute_upon_entry": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "participant_video": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "registrants_confirmation_email": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "registrants_email_notification": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "registration_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "use_pmi": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "waiting_room": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "watermark": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "start_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_fields": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v1/json/report_meeting_participants.json b/_data/taps/schemas/zoom/v1/json/report_meeting_participants.json
new file mode 100644
index 000000000..9823af669
--- /dev/null
+++ b/_data/taps/schemas/zoom/v1/json/report_meeting_participants.json
@@ -0,0 +1,51 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "join_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "leave_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "meeting_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v1/json/report_meetings.json b/_data/taps/schemas/zoom/v1/json/report_meetings.json
new file mode 100644
index 000000000..942a8bbf1
--- /dev/null
+++ b/_data/taps/schemas/zoom/v1/json/report_meetings.json
@@ -0,0 +1,107 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "dept": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "end_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "meeting_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "participants_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_minutes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tracking_fields": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "user_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v1/json/report_webinar_participants.json b/_data/taps/schemas/zoom/v1/json/report_webinar_participants.json
new file mode 100644
index 000000000..37c0a20ea
--- /dev/null
+++ b/_data/taps/schemas/zoom/v1/json/report_webinar_participants.json
@@ -0,0 +1,57 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "attentiveness_score": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "join_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "leave_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "webinar_id": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v1/json/report_webinars.json b/_data/taps/schemas/zoom/v1/json/report_webinars.json
new file mode 100644
index 000000000..7355fecea
--- /dev/null
+++ b/_data/taps/schemas/zoom/v1/json/report_webinars.json
@@ -0,0 +1,119 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "dept": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "end_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "host_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "participants_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_minutes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tracking_fields": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "user_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "string"
+ ]
+ },
+ "webinar_id": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v1/json/users.json b/_data/taps/schemas/zoom/v1/json/users.json
new file mode 100644
index 000000000..811c40177
--- /dev/null
+++ b/_data/taps/schemas/zoom/v1/json/users.json
@@ -0,0 +1,105 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "dept": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_ids": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "im_group_ids": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "last_client_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_login_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pmi": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "verified": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v1/json/webinar_absentees.json b/_data/taps/schemas/zoom/v1/json/webinar_absentees.json
new file mode 100644
index 000000000..313c41eab
--- /dev/null
+++ b/_data/taps/schemas/zoom/v1/json/webinar_absentees.json
@@ -0,0 +1,156 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "comments": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "county": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "create_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_questions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "industry": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "job_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "join_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "no_of_employees": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "org": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "purchasing_time_frame": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role_in_purchase_process": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "webinar_uuid": {
+ "type": [
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v1/json/webinar_files.json b/_data/taps/schemas/zoom/v1/json/webinar_files.json
new file mode 100644
index 000000000..9d13b0b00
--- /dev/null
+++ b/_data/taps/schemas/zoom/v1/json/webinar_files.json
@@ -0,0 +1,29 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "download_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "file_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "file_size": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "webinar_uuid": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v1/json/webinar_panelists.json b/_data/taps/schemas/zoom/v1/json/webinar_panelists.json
new file mode 100644
index 000000000..ac881bb2f
--- /dev/null
+++ b/_data/taps/schemas/zoom/v1/json/webinar_panelists.json
@@ -0,0 +1,34 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "join_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "webinar_id": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v1/json/webinar_poll_results.json b/_data/taps/schemas/zoom/v1/json/webinar_poll_results.json
new file mode 100644
index 000000000..5e2aec85b
--- /dev/null
+++ b/_data/taps/schemas/zoom/v1/json/webinar_poll_results.json
@@ -0,0 +1,48 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "question_details": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "answer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "question": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "webinar_uuid": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v1/json/webinar_polls.json b/_data/taps/schemas/zoom/v1/json/webinar_polls.json
new file mode 100644
index 000000000..d66a5f8d3
--- /dev/null
+++ b/_data/taps/schemas/zoom/v1/json/webinar_polls.json
@@ -0,0 +1,65 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "questions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "answers": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "webinar_id": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v1/json/webinar_qna_results.json b/_data/taps/schemas/zoom/v1/json/webinar_qna_results.json
new file mode 100644
index 000000000..5e2aec85b
--- /dev/null
+++ b/_data/taps/schemas/zoom/v1/json/webinar_qna_results.json
@@ -0,0 +1,48 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "question_details": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "answer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "question": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "webinar_uuid": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v1/json/webinar_questions.json b/_data/taps/schemas/zoom/v1/json/webinar_questions.json
new file mode 100644
index 000000000..4c44ea688
--- /dev/null
+++ b/_data/taps/schemas/zoom/v1/json/webinar_questions.json
@@ -0,0 +1,80 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "custom_questions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "answers": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "questions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "webinar_id": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v1/json/webinar_registrants.json b/_data/taps/schemas/zoom/v1/json/webinar_registrants.json
new file mode 100644
index 000000000..7a935a042
--- /dev/null
+++ b/_data/taps/schemas/zoom/v1/json/webinar_registrants.json
@@ -0,0 +1,156 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "comments": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "county": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "create_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_questions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "industry": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "job_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "join_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "no_of_employees": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "org": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "purchasing_time_frame": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role_in_purchase_process": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "webinar_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v1/json/webinar_tracking_sources.json b/_data/taps/schemas/zoom/v1/json/webinar_tracking_sources.json
new file mode 100644
index 000000000..d846f4a91
--- /dev/null
+++ b/_data/taps/schemas/zoom/v1/json/webinar_tracking_sources.json
@@ -0,0 +1,40 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "registration_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "source_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visitor_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "webinar_id": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v1/json/webinars.json b/_data/taps/schemas/zoom/v1/json/webinars.json
new file mode 100644
index 000000000..cb9954da3
--- /dev/null
+++ b/_data/taps/schemas/zoom/v1/json/webinars.json
@@ -0,0 +1,373 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "agenda": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "host_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "join_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "occurences": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "occurence_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "recurrence": {
+ "additionalProperties": false,
+ "properties": {
+ "end_date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "end_times": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "monthly_day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "monthly_week": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "monthly_week_day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "repeat_interval": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "weekly_days": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "settings": {
+ "additionalProperties": false,
+ "properties": {
+ "allow_multiple_devices": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "alternative_hosts": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "approval_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "audio": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authentication_domains": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authentication_option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "auto_recording": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "close_registration": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "contact_email": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "contact_name": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enforce_login": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "enforce_login_domains": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "global_dial_in_countries": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "hd_video": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "host_video": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "meeting_authentication": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "notify_registrants": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "on_demand": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "panelists_video": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "post_webinar_survey": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "practice_session": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "registrants_confirmation_email": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "registrants_email_notification": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "registrants_restrict_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "registration_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "show_share_button": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "survey_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "start_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_fields": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v1/zoom-v1-foreign-keys.yml b/_data/taps/schemas/zoom/v1/zoom-v1-foreign-keys.yml
new file mode 100644
index 000000000..85a5a3f81
--- /dev/null
+++ b/_data/taps/schemas/zoom/v1/zoom-v1-foreign-keys.yml
@@ -0,0 +1,583 @@
+tap: zoom
+version: '1'
+keys:
+ meetings_uuid:
+ - table: meeting_poll_results
+ keys:
+ - meeting_uuid
+ - table: meeting_files
+ keys:
+ - meeting_uuid
+ - table: meetings
+ keys:
+ - uuid
+ meeting_registrants_meeting_id:
+ - table: meeting_polls
+ keys:
+ - meeting_id
+ - table: meeting_questions
+ keys:
+ - meeting_id
+ - table: meeting_registrants
+ keys:
+ - meeting_id
+ - table: meetings
+ keys:
+ - meeting_id
+ - table: report_meeting_participants
+ keys:
+ - meeting_id
+ - table: report_meetings
+ keys:
+ - meeting_id
+ users_user_id:
+ - table: users
+ keys:
+ - id
+ - table: report_meeting_participants
+ keys:
+ - user_id
+ - table: report_webinar_participants
+ keys:
+ - user_id
+ webinar_panelists_webinar_id:
+ - table: report_webinar_participants
+ keys:
+ - webinar_id
+ - table: report_webinars
+ keys:
+ - webinar_id
+ - table: webinar_panelists
+ keys:
+ - webinar_id
+ - table: webinar_registrants
+ keys:
+ - webinar_id
+ - webinar_id
+ - table: webinar_polls
+ keys:
+ - webinar_id
+ - table: webinar_questions
+ keys:
+ - webinar_id
+ - table: webinar_tracking_sources
+ keys:
+ - webinar_id
+ webinars_webinar_uuid:
+ - table: report_webinars
+ keys:
+ - uuid
+ - table: webinar_absentees
+ keys:
+ - webinar_uuid
+ - table: webinar_files
+ keys:
+ - webinar_uuid
+ - table: webinar_poll_results
+ keys:
+ - webinar_uuid
+ - table: webinar_qna_results
+ keys:
+ - webinar_uuid
+ - table: webinars
+ keys:
+ - uuid
+tables:
+- table-name: meeting_poll_results
+ join:
+ - table-name: meeting_files
+ keys:
+ - key: meeting_uuid
+ foreign-key: meeting_uuid
+ - table-name: meetings
+ keys:
+ - key: meeting_uuid
+ foreign-key: uuid
+- table-name: meeting_files
+ join:
+ - table-name: meeting_poll_results
+ keys:
+ - key: meeting_uuid
+ foreign-key: meeting_uuid
+ - table-name: meetings
+ keys:
+ - key: meeting_uuid
+ foreign-key: uuid
+- table-name: meetings
+ join:
+ - table-name: meeting_poll_results
+ keys:
+ - key: uuid
+ foreign-key: meeting_uuid
+ - table-name: meeting_files
+ keys:
+ - key: uuid
+ foreign-key: meeting_uuid
+ - table-name: meeting_polls
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: meeting_questions
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: meeting_registrants
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: report_meeting_participants
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: report_meetings
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+- table-name: meeting_polls
+ join:
+ - table-name: meeting_questions
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: meeting_registrants
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: meetings
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: report_meeting_participants
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: report_meetings
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+- table-name: meeting_questions
+ join:
+ - table-name: meeting_polls
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: meeting_registrants
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: meetings
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: report_meeting_participants
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: report_meetings
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+- table-name: meeting_registrants
+ join:
+ - table-name: meeting_polls
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: meeting_questions
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: meetings
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: report_meeting_participants
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: report_meetings
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+- table-name: report_meeting_participants
+ join:
+ - table-name: meeting_polls
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: meeting_questions
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: meeting_registrants
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: meetings
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: report_meetings
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: users
+ keys:
+ - key: user_id
+ foreign-key: id
+ - table-name: report_webinar_participants
+ keys:
+ - key: user_id
+ foreign-key: user_id
+- table-name: report_meetings
+ join:
+ - table-name: meeting_polls
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: meeting_questions
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: meeting_registrants
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: meetings
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: report_meeting_participants
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+- table-name: users
+ join:
+ - table-name: report_meeting_participants
+ keys:
+ - key: id
+ foreign-key: user_id
+ - table-name: report_webinar_participants
+ keys:
+ - key: id
+ foreign-key: user_id
+- table-name: report_webinar_participants
+ join:
+ - table-name: users
+ keys:
+ - key: user_id
+ foreign-key: id
+ - table-name: report_meeting_participants
+ keys:
+ - key: user_id
+ foreign-key: user_id
+ - table-name: report_webinars
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_panelists
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_registrants
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_polls
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_questions
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_tracking_sources
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+- table-name: report_webinars
+ join:
+ - table-name: report_webinar_participants
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_panelists
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_registrants
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_polls
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_questions
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_tracking_sources
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_absentees
+ keys:
+ - key: uuid
+ foreign-key: webinar_uuid
+ - table-name: webinar_files
+ keys:
+ - key: uuid
+ foreign-key: webinar_uuid
+ - table-name: webinar_poll_results
+ keys:
+ - key: uuid
+ foreign-key: webinar_uuid
+ - table-name: webinar_qna_results
+ keys:
+ - key: uuid
+ foreign-key: webinar_uuid
+ - table-name: webinars
+ keys:
+ - key: uuid
+ foreign-key: uuid
+- table-name: webinar_panelists
+ join:
+ - table-name: report_webinar_participants
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: report_webinars
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_registrants
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_polls
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_questions
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_tracking_sources
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+- table-name: webinar_registrants
+ join:
+ - table-name: report_webinar_participants
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: report_webinars
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_panelists
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_polls
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_questions
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_tracking_sources
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+- table-name: webinar_polls
+ join:
+ - table-name: report_webinar_participants
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: report_webinars
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_panelists
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_registrants
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_questions
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_tracking_sources
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+- table-name: webinar_questions
+ join:
+ - table-name: report_webinar_participants
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: report_webinars
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_panelists
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_registrants
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_polls
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_tracking_sources
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+- table-name: webinar_tracking_sources
+ join:
+ - table-name: report_webinar_participants
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: report_webinars
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_panelists
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_registrants
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_polls
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_questions
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+- table-name: webinar_absentees
+ join:
+ - table-name: report_webinars
+ keys:
+ - key: webinar_uuid
+ foreign-key: uuid
+ - table-name: webinar_files
+ keys:
+ - key: webinar_uuid
+ foreign-key: webinar_uuid
+ - table-name: webinar_poll_results
+ keys:
+ - key: webinar_uuid
+ foreign-key: webinar_uuid
+ - table-name: webinar_qna_results
+ keys:
+ - key: webinar_uuid
+ foreign-key: webinar_uuid
+ - table-name: webinars
+ keys:
+ - key: webinar_uuid
+ foreign-key: uuid
+- table-name: webinar_files
+ join:
+ - table-name: report_webinars
+ keys:
+ - key: webinar_uuid
+ foreign-key: uuid
+ - table-name: webinar_absentees
+ keys:
+ - key: webinar_uuid
+ foreign-key: webinar_uuid
+ - table-name: webinar_poll_results
+ keys:
+ - key: webinar_uuid
+ foreign-key: webinar_uuid
+ - table-name: webinar_qna_results
+ keys:
+ - key: webinar_uuid
+ foreign-key: webinar_uuid
+ - table-name: webinars
+ keys:
+ - key: webinar_uuid
+ foreign-key: uuid
+- table-name: webinar_poll_results
+ join:
+ - table-name: report_webinars
+ keys:
+ - key: webinar_uuid
+ foreign-key: uuid
+ - table-name: webinar_absentees
+ keys:
+ - key: webinar_uuid
+ foreign-key: webinar_uuid
+ - table-name: webinar_files
+ keys:
+ - key: webinar_uuid
+ foreign-key: webinar_uuid
+ - table-name: webinar_qna_results
+ keys:
+ - key: webinar_uuid
+ foreign-key: webinar_uuid
+ - table-name: webinars
+ keys:
+ - key: webinar_uuid
+ foreign-key: uuid
+- table-name: webinar_qna_results
+ join:
+ - table-name: report_webinars
+ keys:
+ - key: webinar_uuid
+ foreign-key: uuid
+ - table-name: webinar_absentees
+ keys:
+ - key: webinar_uuid
+ foreign-key: webinar_uuid
+ - table-name: webinar_files
+ keys:
+ - key: webinar_uuid
+ foreign-key: webinar_uuid
+ - table-name: webinar_poll_results
+ keys:
+ - key: webinar_uuid
+ foreign-key: webinar_uuid
+ - table-name: webinars
+ keys:
+ - key: webinar_uuid
+ foreign-key: uuid
+- table-name: webinars
+ join:
+ - table-name: report_webinars
+ keys:
+ - key: uuid
+ foreign-key: uuid
+ - table-name: webinar_absentees
+ keys:
+ - key: uuid
+ foreign-key: webinar_uuid
+ - table-name: webinar_files
+ keys:
+ - key: uuid
+ foreign-key: webinar_uuid
+ - table-name: webinar_poll_results
+ keys:
+ - key: uuid
+ foreign-key: webinar_uuid
+ - table-name: webinar_qna_results
+ keys:
+ - key: uuid
+ foreign-key: webinar_uuid
diff --git a/_data/taps/schemas/zoom/v1/zoom-v1-tables.yml b/_data/taps/schemas/zoom/v1/zoom-v1-tables.yml
new file mode 100644
index 000000000..fe3478609
--- /dev/null
+++ b/_data/taps/schemas/zoom/v1/zoom-v1-tables.yml
@@ -0,0 +1,303 @@
+tap: zoom
+version: '1'
+tables:
+- name: meetings
+ description: 'The `{{ table.name }}` table contains information about instant, scheduled,
+ and recurring meetings in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/meetings.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetings
+ table-details:
+ replication-method: Full Table
+ primary-key: uuid
+- name: meeting_files
+ description: 'The `{{ table.name }}` table contains information about files shared
+ during meetings in your {{ integration.display_name }} account. **Note**:{{ integration.display_name
+ }} deletes these files 24 hours after completion of the meeting.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/meeting_files.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/listpastmeetingfiles
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - meeting_uuid
+ - file_name
+- name: meeting_polls
+ description: 'The `{{table.name}}` table contains information about the polls from
+ your {{ integration.display_name }} meetings.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/meeting_polls.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingpolls
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - id
+ - meeting_id
+- name: meeting_poll_results
+ description: "The `{{ table.name }}` table contains information about the results\
+ \ of polls from your {{ integration.display_name }} meetings. \n\n**Note**: This\
+ \ data is available only if the host user's role is **Pro** and the meeting was\
+ \ scheduled.\n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/meeting_poll_results.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/listpastmeetingpolls
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - email
+ - meeting_uuid
+- name: meeting_questions
+ description: 'The `{{ table.name }}` table contains questions that users will see
+ when registering for your {{ integration.display_name }} meetings.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/meeting_questions.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingregistrantsquestionsget
+ table-details:
+ replication-method: Full Table
+ primary-key: meeting_id
+- name: meeting_registrants
+ description: 'The `{{ table.name }}` table contains the list of users who have registered
+ for your {{ integration.display_name }} meetings.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/meeting_registrants.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingregistrants
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - id
+ - meeting_id
+- name: report_meetings
+ description: 'The `{{ table.name }}` table contains detailed reports about past
+ {{ integration.display_name }} meetings.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/report_meetings.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/reports/reportmeetingdetails
+ table-details:
+ replication-method: Full Table
+ primary-key: uuid
+- name: report_meeting_participants
+ description: "The `{{ table.name }}` table contains information about your {{ integration.display_name}}'s\
+ \ meeting participants. \n\n**Note**: [As per {{ integration.display_name }}'s\
+ \ docs]({{ table.api-method.doc-link }}){:target=\"new\"}, a {{ integration.display_name\
+ \ }} Pro plan or higher is required to retrieve this data.\n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/report_meeting_participants.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/reports/reportmeetingparticipants
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - id
+ - meeting_id
+- name: report_webinars
+ description: 'The `{{ table.name }}` table contains information about past webinars
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/report_webinars.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/reports/reportwebinardetails
+ table-details:
+ replication-method: Full Table
+ primary-key: uuid
+- name: report_webinar_participants
+ description: "The `{{ table.name }}` table contains information about your {{ integration.display_name}}'s\
+ \ webinar participants. \n\n**Note**: [As per {{ integration.display_name }}'s\
+ \ docs]({{ table.api-method.doc-link }}){:target=\"new\"}, a Pro plan or higher\
+ \ with with the webinar add-on enabled is required to retrieve this data.\n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/report_webinar_participants.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/reports/reportwebinarparticipants
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - id
+ - webinar_id
+- name: users
+ description: 'The `{{ table.name }}` table contains user data from your {{ integration.display_name
+ }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/users.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/users/users
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: webinars
+ description: 'The `{{ table.name }}` table contains information bout webinars scheduled
+ from your {{ integration.display_name }} account.
+
+
+ **Note**: [As per {{ integration.display_name }}''s docs]({{ table.api-method.doc-link
+ }}){:target="new"}, the following requirements must be met to retrieve this data:
+
+
+ - A Pro plan or higher with a webinar add-on
+
+ - An authentication app with the `webinar:read:admin` and `webinar:read` scopes
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/webinars.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinars
+ table-details:
+ replication-method: Full Table
+ primary-key: uuid
+- name: webinar_absentees
+ description: 'The `{{ table.name }}` table contains information about webinar absentees
+ from your {{ integration.display_name }} webinars.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/webinar_absentees.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinarabsentees
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - id
+ - webinar_uuid
+- name: webinar_files
+ description: "The `{{ table.name }}` table contains information about files shared\
+ \ in-meeting in your {{ integration.display_name }} account. \n\n**Note**: {{\
+ \ integration.display_name }} deletes these files 24 hours after completion of\
+ \ the webinar.\n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/webinar_files.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/listpastwebinarfiles
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - webinar_uuid
+ - file_name
+- name: webinar_panelists
+ description: "The `{{ table.name }}` table contains information about your {{ integration.display_name}}\
+ \ webinar panelists. \n\n**Note**: [As per {{ integration.display_name }}'s docs]({{\
+ \ table.api-method.doc-link }}){:target=\"new\"}, a Pro plan or higher with with\
+ \ the webinar add-on enabled is required to retrieve this data.\n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/webinar_panelists.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinarpanelists
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - id
+ - webinar_id
+- name: webinar_polls
+ description: 'The `{{ table.name }}` table contains information about polls in your
+ {{ integration.display_name }} webinars.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/webinar_polls.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinarpolls
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - id
+ - webinar_id
+- name: webinar_poll_results
+ description: "The `{{ table.name }}` data contains information about poll results\
+ \ from specific {{ integration.display_name }} webinars. \n\n**Note**: [As per\
+ \ {{ integration.display_name }}'s docs]({{ table.api-method.doc-link }}){:target=\"\
+ new\"}, the following requirements must be met to retrieve this data:\n\n- A {{\
+ \ integration.display_name }} webinar license\n- A Pro plan or higher\n- An authentication\
+ \ app with the `webinar:read:admin` and `webinar:read` scopes\n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/webinar_poll_results.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/listpastwebinarpollresults
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - webinar_uuid
+ - email
+- name: webinar_qna_results
+ description: 'The `{{ table.name }}` table contains information about about the
+ questions and answers from specific {{ integration.display_name }} webinars.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/webinar_qna_results.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/listpastwebinarqa
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - webinar_uuid
+ - email
+- name: webinar_questions
+ description: 'The `{{ table.name }}` table contains information about your questions
+ to be answered when registering for a {{ integration.display_name }} webinar.
+
+
+ **Note**: [As per {{ integration.display_name }}''s docs]({{ table.api-method.doc-link
+ }}){:target="new"}, the following requirements must be met to retrieve this data:
+
+
+ - A Pro plan or higher with a webinar add-on
+
+ - An authentication app with the `webinar:read:admin` and `webinar:read` scopes
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/webinar_questions.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinarregistrantsquestionsget
+ table-details:
+ replication-method: Full Table
+ primary-key: webinar_id
+- name: webinar_registrants
+ description: 'The `{{ table.name }}` table contains information about the users
+ registered for a webinar in your {{ integration.display_name }} account. Only
+ webinars where registration is required are included in this table.
+
+
+ **Note**: [As per {{ integration.display_name }}''s docs]({{ table.api-method.doc-link
+ }}){:target="new"}, the following requirements must be met to retrieve this data:
+
+
+ - A Pro plan or higher with a webinar add-on
+
+ - An authentication app with the `webinar:read:admin` and `webinar:read` scopes
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/webinar_registrants.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinarregistrants
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - webinar_id
+ - id
+- name: webinar_tracking_sources
+ description: 'The `{{ table.name }}` lists all information about tracking sources
+ in your {{ integration.display_name }} account. Only webinars where registration
+ is required will be included in this table.
+
+
+ **Note**: [As per {{ integration.display_name }}''s docs]({{ table.api-method.doc-link
+ }}){:target="new"}, the following requirements must be met to retrieve this data:
+
+
+ - A {{ integration.display_name }} [webinar license](https://zoom.us/webinar){:target="new"}
+
+ - An authentication app with the `webinar:read:admin` and `webinar:read` scopes
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/webinar_tracking_sources.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/gettrackingsources
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - id
+ - webinar_id
diff --git a/_data/taps/schemas/zoom/v2/json/meeting_poll_results.json b/_data/taps/schemas/zoom/v2/json/meeting_poll_results.json
new file mode 100644
index 000000000..6a89aa504
--- /dev/null
+++ b/_data/taps/schemas/zoom/v2/json/meeting_poll_results.json
@@ -0,0 +1,61 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "meeting_uuid": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "question_details": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "answer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "polling_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "question": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v2/json/meeting_polls.json b/_data/taps/schemas/zoom/v2/json/meeting_polls.json
new file mode 100644
index 000000000..afabf4faf
--- /dev/null
+++ b/_data/taps/schemas/zoom/v2/json/meeting_polls.json
@@ -0,0 +1,175 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "anonymous": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "meeting_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "poll_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "questions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "answer_max_character": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "answer_min_character": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "answer_required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "answers": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "case_sensitive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prompts": {
+ "items": {
+ "properties": {
+ "prompt_question": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prompt_right_answers": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "rating_max_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rating_max_value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "rating_min_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rating_min_value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "right_answers": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "show_as_dropdown": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v2/json/meeting_questions.json b/_data/taps/schemas/zoom/v2/json/meeting_questions.json
new file mode 100644
index 000000000..b4877fbcd
--- /dev/null
+++ b/_data/taps/schemas/zoom/v2/json/meeting_questions.json
@@ -0,0 +1,82 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "custom_questions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "answers": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "meeting_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "questions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v2/json/meeting_registrants.json b/_data/taps/schemas/zoom/v2/json/meeting_registrants.json
new file mode 100644
index 000000000..1709f82ec
--- /dev/null
+++ b/_data/taps/schemas/zoom/v2/json/meeting_registrants.json
@@ -0,0 +1,163 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "comments": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "create_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_questions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "industry": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "job_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "join_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "meeting_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "no_of_employees": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "org": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "participant_pin_code": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "purchasing_time_frame": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role_in_purchase_process": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v2/json/meetings.json b/_data/taps/schemas/zoom/v2/json/meetings.json
new file mode 100644
index 000000000..7d31fae41
--- /dev/null
+++ b/_data/taps/schemas/zoom/v2/json/meetings.json
@@ -0,0 +1,713 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "agenda": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "assistant_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "encrypted_password": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "h323_password": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "host_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "host_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "join_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "meeting_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "occurrences": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "occurrence_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "password": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pmi": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pre_schedule": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "recurrence": {
+ "additionalProperties": false,
+ "properties": {
+ "end_date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "end_times": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "monthly_day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "monthly_week": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "monthly_week_day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "repeat_interval": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "weekly_days": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "settings": {
+ "additionalProperties": false,
+ "properties": {
+ "allow_multiple_devices": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "alternative_host_update_polls": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "alternative_hosts": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "alternative_hosts_email_notification": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "approval_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "approved_or_denied_countries_or_regions": {
+ "additionalProperties": false,
+ "properties": {
+ "approved_list": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "denied_list": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "enable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "method": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "audio": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "audio_conference_info": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authentication_domains": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authentication_exception": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "join_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "authentication_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authentication_option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "auto_recording": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "breakout_room": {
+ "additionalProperties": false,
+ "properties": {
+ "enable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "rooms": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "participants": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "calendar_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "close_registration": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "contact_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contact_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "custom_keys": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "email_notification": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "encryption_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "focus_mode": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "global_dial_in_countries": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "global_dial_in_numbers": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "host_save_video_order": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "host_video": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "jbh_time": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "join_before_host": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "language_interpretation": {
+ "additionalProperties": false,
+ "properties": {
+ "enable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "interpreters": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "languages": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "meeting_authentication": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "mute_upon_entry": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "participant_video": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "private_meeting": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "registrants_confirmation_email": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "registrants_email_notification": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "registration_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "show_share_button": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "use_pmi": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "waiting_room": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "watermark": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "start_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_fields": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visible": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v2/json/report_meeting_participants.json b/_data/taps/schemas/zoom/v2/json/report_meeting_participants.json
new file mode 100644
index 000000000..065493c95
--- /dev/null
+++ b/_data/taps/schemas/zoom/v2/json/report_meeting_participants.json
@@ -0,0 +1,81 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "bo_mtg_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "customer_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "failover": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "join_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "leave_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "meeting_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "registrant_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v2/json/report_meetings.json b/_data/taps/schemas/zoom/v2/json/report_meetings.json
new file mode 100644
index 000000000..3d89f8abd
--- /dev/null
+++ b/_data/taps/schemas/zoom/v2/json/report_meetings.json
@@ -0,0 +1,135 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "custom_keys": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "dept": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "end_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "meeting_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "participants_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_minutes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tracking_fields": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "user_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v2/json/report_webinar_participants.json b/_data/taps/schemas/zoom/v2/json/report_webinar_participants.json
new file mode 100644
index 000000000..6363f2c54
--- /dev/null
+++ b/_data/taps/schemas/zoom/v2/json/report_webinar_participants.json
@@ -0,0 +1,75 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "customer_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "failover": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "join_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "leave_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "registrant_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "webinar_id": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v2/json/report_webinars.json b/_data/taps/schemas/zoom/v2/json/report_webinars.json
new file mode 100644
index 000000000..dcc430a63
--- /dev/null
+++ b/_data/taps/schemas/zoom/v2/json/report_webinars.json
@@ -0,0 +1,147 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "custom_keys": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "dept": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "end_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "host_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "participants_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "total_minutes": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "tracking_fields": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "user_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "user_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "string"
+ ]
+ },
+ "webinar_id": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v2/json/users.json b/_data/taps/schemas/zoom/v2/json/users.json
new file mode 100644
index 000000000..2cdde686e
--- /dev/null
+++ b/_data/taps/schemas/zoom/v2/json/users.json
@@ -0,0 +1,161 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "custom_attributes": {
+ "items": {
+ "properties": {
+ "key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "dept": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "display_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "employee_unique_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "group_ids": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "im_group_ids": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "last_client_version": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_login_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "plan_united_type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "pmi": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "role_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "user_created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "verified": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v2/json/webinar_absentees.json b/_data/taps/schemas/zoom/v2/json/webinar_absentees.json
new file mode 100644
index 000000000..d063c94be
--- /dev/null
+++ b/_data/taps/schemas/zoom/v2/json/webinar_absentees.json
@@ -0,0 +1,157 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "comments": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "create_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_questions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "industry": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "job_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "join_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "no_of_employees": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "org": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "purchasing_time_frame": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role_in_purchase_process": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "webinar_uuid": {
+ "type": [
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v2/json/webinar_panelists.json b/_data/taps/schemas/zoom/v2/json/webinar_panelists.json
new file mode 100644
index 000000000..910843b69
--- /dev/null
+++ b/_data/taps/schemas/zoom/v2/json/webinar_panelists.json
@@ -0,0 +1,64 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "join_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name_tag_description": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name_tag_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name_tag_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "name_tag_pronouns": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "virtual_background_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "webinar_id": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v2/json/webinar_poll_results.json b/_data/taps/schemas/zoom/v2/json/webinar_poll_results.json
new file mode 100644
index 000000000..59867e153
--- /dev/null
+++ b/_data/taps/schemas/zoom/v2/json/webinar_poll_results.json
@@ -0,0 +1,61 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "question_details": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "answer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "polling_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "question": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "webinar_uuid": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v2/json/webinar_polls.json b/_data/taps/schemas/zoom/v2/json/webinar_polls.json
new file mode 100644
index 000000000..15ec4f896
--- /dev/null
+++ b/_data/taps/schemas/zoom/v2/json/webinar_polls.json
@@ -0,0 +1,175 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "anonymous": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "poll_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "questions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "answer_max_character": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "answer_min_character": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "answer_required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "answers": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "case_sensitive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prompts": {
+ "items": {
+ "properties": {
+ "prompt_question": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "prompt_right_answers": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "rating_max_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rating_max_value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "rating_min_label": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "rating_min_value": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "right_answers": {
+ "items": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "show_as_dropdown": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "webinar_id": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v2/json/webinar_qna_results.json b/_data/taps/schemas/zoom/v2/json/webinar_qna_results.json
new file mode 100644
index 000000000..5ac82e335
--- /dev/null
+++ b/_data/taps/schemas/zoom/v2/json/webinar_qna_results.json
@@ -0,0 +1,49 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "question_details": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "answer": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "question": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "webinar_uuid": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v2/json/webinar_questions.json b/_data/taps/schemas/zoom/v2/json/webinar_questions.json
new file mode 100644
index 000000000..6db90b5ff
--- /dev/null
+++ b/_data/taps/schemas/zoom/v2/json/webinar_questions.json
@@ -0,0 +1,82 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "custom_questions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "answers": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "questions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "required": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "webinar_id": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v2/json/webinar_registrants.json b/_data/taps/schemas/zoom/v2/json/webinar_registrants.json
new file mode 100644
index 000000000..5ffa098a5
--- /dev/null
+++ b/_data/taps/schemas/zoom/v2/json/webinar_registrants.json
@@ -0,0 +1,157 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "address": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "comments": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "create_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "custom_questions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "first_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "industry": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "job_title": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "join_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "last_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "no_of_employees": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "org": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "phone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "purchasing_time_frame": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "role_in_purchase_process": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "webinar_id": {
+ "type": [
+ "string"
+ ]
+ },
+ "zip": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v2/json/webinar_tracking_sources.json b/_data/taps/schemas/zoom/v2/json/webinar_tracking_sources.json
new file mode 100644
index 000000000..d846f4a91
--- /dev/null
+++ b/_data/taps/schemas/zoom/v2/json/webinar_tracking_sources.json
@@ -0,0 +1,40 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "registration_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "source_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "visitor_count": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "webinar_id": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v2/json/webinars.json b/_data/taps/schemas/zoom/v2/json/webinars.json
new file mode 100644
index 000000000..a5b0a6068
--- /dev/null
+++ b/_data/taps/schemas/zoom/v2/json/webinars.json
@@ -0,0 +1,603 @@
+{
+ "additionalProperties": false,
+ "properties": {
+ "agenda": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "host_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "host_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "integer"
+ ]
+ },
+ "is_simulive": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "join_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "occurrences": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "duration": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "occurrence_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "password": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "record_file_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "recurrence": {
+ "additionalProperties": false,
+ "properties": {
+ "end_date_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "end_times": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "monthly_day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "monthly_week": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "monthly_week_day": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "repeat_interval": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "weekly_days": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "settings": {
+ "additionalProperties": false,
+ "properties": {
+ "add_audio_watermark": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "add_watermark": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_multiple_devices": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "alternative_host_update_polls": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "alternative_hosts": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "approval_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "attendees_and_panelists_reminder_email_notification": {
+ "additionalProperties": false,
+ "properties": {
+ "enable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "audio": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "audio_conference_info": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authentication_domains": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authentication_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "authentication_option": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "auto_recording": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contact_email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "contact_name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "email_language": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enable_session_branding": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "follow_up_absentees_email_notification": {
+ "additionalProperties": false,
+ "properties": {
+ "enable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "follow_up_attendees_email_notification": {
+ "additionalProperties": false,
+ "properties": {
+ "enable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "global_dial_in_countries": {
+ "items": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "hd_video": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "hd_video_for_attendees": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "host_video": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "language_interpretation": {
+ "additionalProperties": false,
+ "properties": {
+ "enable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "interpreters": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "languages": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "meeting_authentication": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "notify_registrants": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "on_demand": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "panelist_authentication": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "panelists_invitation_email_notification": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "panelists_video": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "post_webinar_survey": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "practice_session": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "question_and_answer": {
+ "additionalProperties": false,
+ "properties": {
+ "allow_anonymous_questions": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "allow_auto_reply": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "answer_questions": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "attendees_can_comment": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "attendees_can_upvote": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "auto_reply_text": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "enable": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "registrants_confirmation_email": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "registrants_email_notification": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "registrants_restrict_number": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "registration_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "send_1080p_video_to_attendees": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "show_share_button": {
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "survey_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "start_time": {
+ "type": [
+ "null",
+ "date-time"
+ ]
+ },
+ "start_url": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "timezone": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "topic": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "tracking_fields": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "value": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "type": [
+ "null",
+ "object"
+ ]
+ },
+ "type": [
+ "null",
+ "array"
+ ]
+ },
+ "type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ },
+ "uuid": {
+ "type": [
+ "string"
+ ]
+ }
+ },
+ "type": "object"
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zoom/v2/zoom-v2-foreign-keys.yml b/_data/taps/schemas/zoom/v2/zoom-v2-foreign-keys.yml
new file mode 100644
index 000000000..1364ad549
--- /dev/null
+++ b/_data/taps/schemas/zoom/v2/zoom-v2-foreign-keys.yml
@@ -0,0 +1,517 @@
+tap: zoom
+version: '2'
+keys:
+ meetings_uuid:
+ - table: meeting_poll_results
+ keys:
+ - meeting_uuid
+ - table: meetings
+ keys:
+ - uuid
+ meeting_registrants_meeting_id:
+ - table: meeting_polls
+ keys:
+ - meeting_id
+ - table: meeting_questions
+ keys:
+ - meeting_id
+ - table: meeting_registrants
+ keys:
+ - meeting_id
+ - table: meetings
+ keys:
+ - meeting_id
+ - table: report_meeting_participants
+ keys:
+ - meeting_id
+ - table: report_meetings
+ keys:
+ - meeting_id
+ users_user_id:
+ - table: users
+ keys:
+ - id
+ - table: report_meeting_participants
+ keys:
+ - user_id
+ - table: report_webinar_participants
+ keys:
+ - user_id
+ webinar_panelists_webinar_id:
+ - table: report_webinar_participants
+ keys:
+ - webinar_id
+ - table: report_webinars
+ keys:
+ - webinar_id
+ - table: webinar_panelists
+ keys:
+ - webinar_id
+ - table: webinar_registrants
+ keys:
+ - webinar_id
+ - webinar_id
+ - table: webinar_polls
+ keys:
+ - webinar_id
+ - table: webinar_questions
+ keys:
+ - webinar_id
+ - table: webinar_tracking_sources
+ keys:
+ - webinar_id
+ webinars_webinar_uuid:
+ - table: report_webinars
+ keys:
+ - uuid
+ - table: webinar_absentees
+ keys:
+ - webinar_uuid
+ - table: webinar_poll_results
+ keys:
+ - webinar_uuid
+ - table: webinar_qna_results
+ keys:
+ - webinar_uuid
+ - table: webinars
+ keys:
+ - uuid
+tables:
+- table-name: meeting_poll_results
+ join:
+ - table-name: meetings
+ keys:
+ - key: meeting_uuid
+ foreign-key: uuid
+- table-name: meetings
+ join:
+ - table-name: meeting_poll_results
+ keys:
+ - key: uuid
+ foreign-key: meeting_uuid
+ - table-name: meeting_polls
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: meeting_questions
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: meeting_registrants
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: report_meeting_participants
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: report_meetings
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+- table-name: meeting_polls
+ join:
+ - table-name: meeting_questions
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: meeting_registrants
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: meetings
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: report_meeting_participants
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: report_meetings
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+- table-name: meeting_questions
+ join:
+ - table-name: meeting_polls
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: meeting_registrants
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: meetings
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: report_meeting_participants
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: report_meetings
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+- table-name: meeting_registrants
+ join:
+ - table-name: meeting_polls
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: meeting_questions
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: meetings
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: report_meeting_participants
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: report_meetings
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+- table-name: report_meeting_participants
+ join:
+ - table-name: meeting_polls
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: meeting_questions
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: meeting_registrants
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: meetings
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: report_meetings
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: users
+ keys:
+ - key: user_id
+ foreign-key: id
+ - table-name: report_webinar_participants
+ keys:
+ - key: user_id
+ foreign-key: user_id
+- table-name: report_meetings
+ join:
+ - table-name: meeting_polls
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: meeting_questions
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: meeting_registrants
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: meetings
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+ - table-name: report_meeting_participants
+ keys:
+ - key: meeting_id
+ foreign-key: meeting_id
+- table-name: users
+ join:
+ - table-name: report_meeting_participants
+ keys:
+ - key: id
+ foreign-key: user_id
+ - table-name: report_webinar_participants
+ keys:
+ - key: id
+ foreign-key: user_id
+- table-name: report_webinar_participants
+ join:
+ - table-name: users
+ keys:
+ - key: user_id
+ foreign-key: id
+ - table-name: report_meeting_participants
+ keys:
+ - key: user_id
+ foreign-key: user_id
+ - table-name: report_webinars
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_panelists
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_registrants
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_polls
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_questions
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_tracking_sources
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+- table-name: report_webinars
+ join:
+ - table-name: report_webinar_participants
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_panelists
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_registrants
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_polls
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_questions
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_tracking_sources
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_absentees
+ keys:
+ - key: uuid
+ foreign-key: webinar_uuid
+ - table-name: webinar_poll_results
+ keys:
+ - key: uuid
+ foreign-key: webinar_uuid
+ - table-name: webinar_qna_results
+ keys:
+ - key: uuid
+ foreign-key: webinar_uuid
+ - table-name: webinars
+ keys:
+ - key: uuid
+ foreign-key: uuid
+- table-name: webinar_panelists
+ join:
+ - table-name: report_webinar_participants
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: report_webinars
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_registrants
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_polls
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_questions
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_tracking_sources
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+- table-name: webinar_registrants
+ join:
+ - table-name: report_webinar_participants
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: report_webinars
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_panelists
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_polls
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_questions
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_tracking_sources
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+- table-name: webinar_polls
+ join:
+ - table-name: report_webinar_participants
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: report_webinars
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_panelists
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_registrants
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_questions
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_tracking_sources
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+- table-name: webinar_questions
+ join:
+ - table-name: report_webinar_participants
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: report_webinars
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_panelists
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_registrants
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_polls
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_tracking_sources
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+- table-name: webinar_tracking_sources
+ join:
+ - table-name: report_webinar_participants
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: report_webinars
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_panelists
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_registrants
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_polls
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+ - table-name: webinar_questions
+ keys:
+ - key: webinar_id
+ foreign-key: webinar_id
+- table-name: webinar_absentees
+ join:
+ - table-name: report_webinars
+ keys:
+ - key: webinar_uuid
+ foreign-key: uuid
+ - table-name: webinar_poll_results
+ keys:
+ - key: webinar_uuid
+ foreign-key: webinar_uuid
+ - table-name: webinar_qna_results
+ keys:
+ - key: webinar_uuid
+ foreign-key: webinar_uuid
+ - table-name: webinars
+ keys:
+ - key: webinar_uuid
+ foreign-key: uuid
+- table-name: webinar_poll_results
+ join:
+ - table-name: report_webinars
+ keys:
+ - key: webinar_uuid
+ foreign-key: uuid
+ - table-name: webinar_absentees
+ keys:
+ - key: webinar_uuid
+ foreign-key: webinar_uuid
+ - table-name: webinar_qna_results
+ keys:
+ - key: webinar_uuid
+ foreign-key: webinar_uuid
+ - table-name: webinars
+ keys:
+ - key: webinar_uuid
+ foreign-key: uuid
+- table-name: webinar_qna_results
+ join:
+ - table-name: report_webinars
+ keys:
+ - key: webinar_uuid
+ foreign-key: uuid
+ - table-name: webinar_absentees
+ keys:
+ - key: webinar_uuid
+ foreign-key: webinar_uuid
+ - table-name: webinar_poll_results
+ keys:
+ - key: webinar_uuid
+ foreign-key: webinar_uuid
+ - table-name: webinars
+ keys:
+ - key: webinar_uuid
+ foreign-key: uuid
+- table-name: webinars
+ join:
+ - table-name: report_webinars
+ keys:
+ - key: uuid
+ foreign-key: uuid
+ - table-name: webinar_absentees
+ keys:
+ - key: uuid
+ foreign-key: webinar_uuid
+ - table-name: webinar_poll_results
+ keys:
+ - key: uuid
+ foreign-key: webinar_uuid
+ - table-name: webinar_qna_results
+ keys:
+ - key: uuid
+ foreign-key: webinar_uuid
diff --git a/_data/taps/schemas/zoom/v2/zoom-v2-tables.yml b/_data/taps/schemas/zoom/v2/zoom-v2-tables.yml
new file mode 100644
index 000000000..1d25032b5
--- /dev/null
+++ b/_data/taps/schemas/zoom/v2/zoom-v2-tables.yml
@@ -0,0 +1,277 @@
+tap: zoom
+version: '2'
+tables:
+- name: meetings
+ description: 'The `{{ table.name }}` table contains information about instant, scheduled,
+ and recurring meetings in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/meetings.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetings
+ table-details:
+ replication-method: Full Table
+ primary-key: uuid
+- name: meeting_polls
+ description: 'The `{{table.name}}` table contains information about the polls from
+ your {{ integration.display_name }} meetings.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/meeting_polls.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingpolls
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - id
+ - meeting_id
+- name: meeting_poll_results
+ description: "The `{{ table.name }}` table contains information about the results\
+ \ of polls from your {{ integration.display_name }} meetings. \n\n**Note**: This\
+ \ data is available only if the host user's role is **Pro** and the meeting was\
+ \ scheduled.\n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/meeting_poll_results.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/listpastmeetingpolls
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - email
+ - meeting_uuid
+- name: meeting_questions
+ description: 'The `{{ table.name }}` table contains questions that users will see
+ when registering for your {{ integration.display_name }} meetings.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/meeting_questions.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingregistrantsquestionsget
+ table-details:
+ replication-method: Full Table
+ primary-key: meeting_id
+- name: meeting_registrants
+ description: 'The `{{ table.name }}` table contains the list of users who have registered
+ for your {{ integration.display_name }} meetings.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/meeting_registrants.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingregistrants
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - id
+ - meeting_id
+- name: report_meetings
+ description: 'The `{{ table.name }}` table contains detailed reports about past
+ {{ integration.display_name }} meetings.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/report_meetings.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/reports/reportmeetingdetails
+ table-details:
+ replication-method: Full Table
+ primary-key: uuid
+- name: report_meeting_participants
+ description: "The `{{ table.name }}` table contains information about your {{ integration.display_name}}'s\
+ \ meeting participants. \n\n**Note**: [As per {{ integration.display_name }}'s\
+ \ docs]({{ table.api-method.doc-link }}){:target=\"new\"}, a {{ integration.display_name\
+ \ }} Pro plan or higher is required to retrieve this data.\n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/report_meeting_participants.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/reports/reportmeetingparticipants
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - id
+ - meeting_id
+- name: report_webinars
+ description: 'The `{{ table.name }}` table contains information about past webinars
+ in your {{ integration.display_name }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/report_webinars.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/reports/reportwebinardetails
+ table-details:
+ replication-method: Full Table
+ primary-key: uuid
+- name: report_webinar_participants
+ description: "The `{{ table.name }}` table contains information about your {{ integration.display_name}}'s\
+ \ webinar participants. \n\n**Note**: [As per {{ integration.display_name }}'s\
+ \ docs]({{ table.api-method.doc-link }}){:target=\"new\"}, a Pro plan or higher\
+ \ with with the webinar add-on enabled is required to retrieve this data.\n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/report_webinar_participants.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/reports/reportwebinarparticipants
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - id
+ - webinar_id
+- name: users
+ description: 'The `{{ table.name }}` table contains user data from your {{ integration.display_name
+ }} account.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/users.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/users/users
+ table-details:
+ replication-method: Full Table
+ primary-key: id
+- name: webinars
+ description: 'The `{{ table.name }}` table contains information bout webinars scheduled
+ from your {{ integration.display_name }} account.
+
+
+ **Note**: [As per {{ integration.display_name }}''s docs]({{ table.api-method.doc-link
+ }}){:target="new"}, the following requirements must be met to retrieve this data:
+
+
+ - A Pro plan or higher with a webinar add-on
+
+ - An authentication app with the `webinar:read:admin` and `webinar:read` scopes
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/webinars.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinars
+ table-details:
+ replication-method: Full Table
+ primary-key: uuid
+- name: webinar_absentees
+ description: 'The `{{ table.name }}` table contains information about webinar absentees
+ from your {{ integration.display_name }} webinars.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/webinar_absentees.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinarabsentees
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - id
+ - webinar_uuid
+- name: webinar_panelists
+ description: "The `{{ table.name }}` table contains information about your {{ integration.display_name}}\
+ \ webinar panelists. \n\n**Note**: [As per {{ integration.display_name }}'s docs]({{\
+ \ table.api-method.doc-link }}){:target=\"new\"}, a Pro plan or higher with with\
+ \ the webinar add-on enabled is required to retrieve this data.\n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/webinar_panelists.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinarpanelists
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - id
+ - webinar_id
+- name: webinar_polls
+ description: 'The `{{ table.name }}` table contains information about polls in your
+ {{ integration.display_name }} webinars.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/webinar_polls.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinarpolls
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - id
+ - webinar_id
+- name: webinar_poll_results
+ description: "The `{{ table.name }}` data contains information about poll results\
+ \ from specific {{ integration.display_name }} webinars. \n\n**Note**: [As per\
+ \ {{ integration.display_name }}'s docs]({{ table.api-method.doc-link }}){:target=\"\
+ new\"}, the following requirements must be met to retrieve this data:\n\n- A {{\
+ \ integration.display_name }} webinar license\n- A Pro plan or higher\n- An authentication\
+ \ app with the `webinar:read:admin` and `webinar:read` scopes\n"
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/webinar_poll_results.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/listpastwebinarpollresults
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - webinar_uuid
+ - email
+- name: webinar_qna_results
+ description: 'The `{{ table.name }}` table contains information about about the
+ questions and answers from specific {{ integration.display_name }} webinars.
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/webinar_qna_results.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/listpastwebinarqa
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - webinar_uuid
+ - email
+- name: webinar_questions
+ description: 'The `{{ table.name }}` table contains information about your questions
+ to be answered when registering for a {{ integration.display_name }} webinar.
+
+
+ **Note**: [As per {{ integration.display_name }}''s docs]({{ table.api-method.doc-link
+ }}){:target="new"}, the following requirements must be met to retrieve this data:
+
+
+ - A Pro plan or higher with a webinar add-on
+
+ - An authentication app with the `webinar:read:admin` and `webinar:read` scopes
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/webinar_questions.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinarregistrantsquestionsget
+ table-details:
+ replication-method: Full Table
+ primary-key: webinar_id
+- name: webinar_registrants
+ description: 'The `{{ table.name }}` table contains information about the users
+ registered for a webinar in your {{ integration.display_name }} account. Only
+ webinars where registration is required are included in this table.
+
+
+ **Note**: [As per {{ integration.display_name }}''s docs]({{ table.api-method.doc-link
+ }}){:target="new"}, the following requirements must be met to retrieve this data:
+
+
+ - A Pro plan or higher with a webinar add-on
+
+ - An authentication app with the `webinar:read:admin` and `webinar:read` scopes
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/webinar_registrants.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinarregistrants
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - webinar_id
+ - id
+- name: webinar_tracking_sources
+ description: 'The `{{ table.name }}` lists all information about tracking sources
+ in your {{ integration.display_name }} account. Only webinars where registration
+ is required will be included in this table.
+
+
+ **Note**: [As per {{ integration.display_name }}''s docs]({{ table.api-method.doc-link
+ }}){:target="new"}, the following requirements must be met to retrieve this data:
+
+
+ - A {{ integration.display_name }} [webinar license](https://zoom.us/webinar){:target="new"}
+
+ - An authentication app with the `webinar:read:admin` and `webinar:read` scopes
+
+ '
+ links:
+ singer-schema: https://github.com/singer-io/tap-zoom/blob/master/tap_zoom/schemas/webinar_tracking_sources.json
+ api-method: https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/gettrackingsources
+ table-details:
+ replication-method: Full Table
+ primary-keys:
+ - id
+ - webinar_id
+tap-repo-schemas: true
diff --git a/_data/taps/schemas/zuora/v1/json/Account.json b/_data/taps/schemas/zuora/v1/json/Account.json
new file mode 100644
index 000000000..0d26bb61d
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/Account.json
@@ -0,0 +1,214 @@
+{
+ "properties": {
+ "accountNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "additionalEmailAddresses": {
+ "type": [
+ "string"
+ ]
+ },
+ "allowInvoiceEdit": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "autoPay": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "balance": {
+ "type": [
+ "decimal"
+ ]
+ },
+ "batch": {
+ "type": [
+ "string"
+ ]
+ },
+ "bcdSettingOption": {
+ "type": [
+ "string"
+ ]
+ },
+ "billCycleDay": {
+ "type": [
+ "integer"
+ ]
+ },
+ "billToContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "communicationProfileId": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "creditBalance": {
+ "type": [
+ "decimal"
+ ]
+ },
+ "crmId": {
+ "type": [
+ "string"
+ ]
+ },
+ "currency": {
+ "type": [
+ "string"
+ ]
+ },
+ "customerServiceRepName": {
+ "type": [
+ "string"
+ ]
+ },
+ "defaultPaymentMethodId": {
+ "type": [
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoiceDeliveryPrefsEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "invoiceDeliveryPrefsPrint": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "invoiceTemplateId": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastInvoiceDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "string"
+ ]
+ },
+ "parentAccountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "paymentGateway": {
+ "type": [
+ "string"
+ ]
+ },
+ "paymentTerm": {
+ "type": [
+ "string"
+ ]
+ },
+ "purchaseOrderNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "salesRepName": {
+ "type": [
+ "string"
+ ]
+ },
+ "soldToContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "taxExemptCertificateId": {
+ "type": [
+ "string"
+ ]
+ },
+ "taxExemptCertificateType": {
+ "type": [
+ "string"
+ ]
+ },
+ "taxExemptDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "taxExemptEffectiveDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "taxExemptExpirationDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "taxExemptIssuingJurisdiction": {
+ "type": [
+ "string"
+ ]
+ },
+ "taxExemptStatus": {
+ "type": [
+ "string"
+ ]
+ },
+ "totalInvoiceBalance": {
+ "type": [
+ "decimal"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/AccountingCode.json b/_data/taps/schemas/zuora/v1/json/AccountingCode.json
new file mode 100644
index 000000000..50b0968f3
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/AccountingCode.json
@@ -0,0 +1,69 @@
+{
+ "properties": {
+ "category": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "glAccountName": {
+ "type": [
+ "string"
+ ]
+ },
+ "glAccountNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/AccountingPeriod.json b/_data/taps/schemas/zuora/v1/json/AccountingPeriod.json
new file mode 100644
index 000000000..1eb081ce1
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/AccountingPeriod.json
@@ -0,0 +1,84 @@
+{
+ "properties": {
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "endDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "fiscalQuarter": {
+ "type": [
+ "string"
+ ]
+ },
+ "fiscalYear": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "string"
+ ]
+ },
+ "runTrialBalanceEnd": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "runTrialBalanceErrorMessage": {
+ "type": [
+ "string"
+ ]
+ },
+ "runTrialBalanceStart": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "runTrialBalanceStatus": {
+ "type": [
+ "string"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/Amendment.json b/_data/taps/schemas/zuora/v1/json/Amendment.json
new file mode 100644
index 000000000..cc18be69e
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/Amendment.json
@@ -0,0 +1,124 @@
+{
+ "properties": {
+ "autoRenew": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "code": {
+ "type": [
+ "string"
+ ]
+ },
+ "contractEffectiveDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "currentTerm": {
+ "type": [
+ "integer"
+ ]
+ },
+ "currentTermPeriodType": {
+ "type": [
+ "string"
+ ]
+ },
+ "customerAcceptanceDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "effectiveDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "renewalSetting": {
+ "type": [
+ "string"
+ ]
+ },
+ "renewalTerm": {
+ "type": [
+ "string"
+ ]
+ },
+ "renewalTermPeriodType": {
+ "type": [
+ "string"
+ ]
+ },
+ "serviceActivationDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "specificUpdateDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "subscriptionId": {
+ "type": [
+ "string"
+ ]
+ },
+ "termStartDate": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/BillingRun.json b/_data/taps/schemas/zuora/v1/json/BillingRun.json
new file mode 100644
index 000000000..d5f797acd
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/BillingRun.json
@@ -0,0 +1,119 @@
+{
+ "properties": {
+ "autoEmail": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "autoPost": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "autoRenewal": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "batch": {
+ "type": [
+ "string"
+ ]
+ },
+ "billCycleDay": {
+ "type": [
+ "string"
+ ]
+ },
+ "billRunNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "chargeTypeToExclude": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "errorMessage": {
+ "type": [
+ "string"
+ ]
+ },
+ "executedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoiceDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "invoicesEmailed": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "lastEmailSentTime": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "noEmailForZeroAmountInvoice": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "numberOfAccounts": {
+ "type": [
+ "integer"
+ ]
+ },
+ "numberOfInvoices": {
+ "type": [
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "targetDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/CommunicationProfile.json b/_data/taps/schemas/zuora/v1/json/CommunicationProfile.json
new file mode 100644
index 000000000..edc9c8e61
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/CommunicationProfile.json
@@ -0,0 +1,44 @@
+{
+ "properties": {
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "profileName": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/Contact.json b/_data/taps/schemas/zuora/v1/json/Contact.json
new file mode 100644
index 000000000..348511a13
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/Contact.json
@@ -0,0 +1,134 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "address1": {
+ "type": [
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "firstName": {
+ "type": [
+ "string"
+ ]
+ },
+ "homePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastName": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobilePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "nickName": {
+ "type": [
+ "string"
+ ]
+ },
+ "otherPhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "otherPhoneType": {
+ "type": [
+ "string"
+ ]
+ },
+ "personalEmail": {
+ "type": [
+ "string"
+ ]
+ },
+ "postalCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "taxRegion": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "workEmail": {
+ "type": [
+ "string"
+ ]
+ },
+ "workPhone": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/ContactSnapshot.json b/_data/taps/schemas/zuora/v1/json/ContactSnapshot.json
new file mode 100644
index 000000000..b8a87d2ce
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/ContactSnapshot.json
@@ -0,0 +1,134 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "address1": {
+ "type": [
+ "string"
+ ]
+ },
+ "address2": {
+ "type": [
+ "string"
+ ]
+ },
+ "city": {
+ "type": [
+ "string"
+ ]
+ },
+ "contactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "country": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "fax": {
+ "type": [
+ "string"
+ ]
+ },
+ "firstName": {
+ "type": [
+ "string"
+ ]
+ },
+ "homePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastName": {
+ "type": [
+ "string"
+ ]
+ },
+ "mobilePhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "nickName": {
+ "type": [
+ "string"
+ ]
+ },
+ "otherPhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "otherPhoneType": {
+ "type": [
+ "string"
+ ]
+ },
+ "personalEmail": {
+ "type": [
+ "string"
+ ]
+ },
+ "postalCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "state": {
+ "type": [
+ "string"
+ ]
+ },
+ "taxRegion": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "workEmail": {
+ "type": [
+ "string"
+ ]
+ },
+ "workPhone": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/CreditBalanceAdjustment.json b/_data/taps/schemas/zuora/v1/json/CreditBalanceAdjustment.json
new file mode 100644
index 000000000..beee3bf6c
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/CreditBalanceAdjustment.json
@@ -0,0 +1,174 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "accountReceivableAccountingCodeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "accountingCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "accountingPeriodId": {
+ "type": [
+ "string"
+ ]
+ },
+ "adjustmentDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "amount": {
+ "type": [
+ "double"
+ ]
+ },
+ "billToContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "cancelledOn": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "cashOnAccountAccountingCodeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "comment": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "defaultPaymentMethodId": {
+ "type": [
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoiceId": {
+ "type": [
+ "string"
+ ]
+ },
+ "journalEntryId": {
+ "type": [
+ "string"
+ ]
+ },
+ "journalRunId": {
+ "type": [
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "string"
+ ]
+ },
+ "parentAccountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "paymentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "paymentMethodId": {
+ "type": [
+ "string"
+ ]
+ },
+ "paymentMethodSnapshotId": {
+ "type": [
+ "string"
+ ]
+ },
+ "reasonCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "referenceId": {
+ "type": [
+ "string"
+ ]
+ },
+ "refundId": {
+ "type": [
+ "string"
+ ]
+ },
+ "soldToContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "sourceTransactionId": {
+ "type": [
+ "string"
+ ]
+ },
+ "sourceTransactionNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "sourceTransactionType": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "transferredToAccounting": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/DiscountAppliedMetrics.json b/_data/taps/schemas/zuora/v1/json/DiscountAppliedMetrics.json
new file mode 100644
index 000000000..039da5ad9
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/DiscountAppliedMetrics.json
@@ -0,0 +1,109 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "amendmentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "billToContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "defaultPaymentMethodId": {
+ "type": [
+ "string"
+ ]
+ },
+ "discountRatePlanChargeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "mrr": {
+ "type": [
+ "string"
+ ]
+ },
+ "parentAccountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productRatePlanChargeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productRatePlanId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ratePlanChargeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ratePlanId": {
+ "type": [
+ "string"
+ ]
+ },
+ "soldToContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "startDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "subscriptionId": {
+ "type": [
+ "string"
+ ]
+ },
+ "tcv": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/Export.json b/_data/taps/schemas/zuora/v1/json/Export.json
new file mode 100644
index 000000000..d0c80b102
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/Export.json
@@ -0,0 +1,84 @@
+{
+ "properties": {
+ "convertToCurrencies": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "encrypted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "fileId": {
+ "type": [
+ "string"
+ ]
+ },
+ "format": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "query": {
+ "type": [
+ "string"
+ ]
+ },
+ "size": {
+ "type": [
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "statusReason": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "zip": {
+ "type": [
+ "boolean"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/Import.json b/_data/taps/schemas/zuora/v1/json/Import.json
new file mode 100644
index 000000000..feaafb6ea
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/Import.json
@@ -0,0 +1,79 @@
+{
+ "properties": {
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "importType": {
+ "type": [
+ "string"
+ ]
+ },
+ "importedCount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "md5": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "originalResourceUrl": {
+ "type": [
+ "string"
+ ]
+ },
+ "resultResourceUrl": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "statusReason": {
+ "type": [
+ "string"
+ ]
+ },
+ "totalCount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/Invoice.json b/_data/taps/schemas/zuora/v1/json/Invoice.json
new file mode 100644
index 000000000..6453d3aed
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/Invoice.json
@@ -0,0 +1,199 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "adjustmentAccount": {
+ "type": [
+ "double"
+ ]
+ },
+ "amount": {
+ "type": [
+ "double"
+ ]
+ },
+ "amountWithoutTax": {
+ "type": [
+ "double"
+ ]
+ },
+ "autoPay": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "balance": {
+ "type": [
+ "double"
+ ]
+ },
+ "billRunId": {
+ "type": [
+ "string"
+ ]
+ },
+ "billToContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "billToContactSnapshotId": {
+ "type": [
+ "string"
+ ]
+ },
+ "comments": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "creditBalanceAdjustmentAmount": {
+ "type": [
+ "double"
+ ]
+ },
+ "defaultPaymentMethodId": {
+ "type": [
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "dueDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "includesOneTime": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "includesRecurring": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "includesUsage": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "invoiceDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "invoiceNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "lastEmailSentDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "parentAccountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "paymentAmount": {
+ "type": [
+ "double"
+ ]
+ },
+ "postedBy": {
+ "type": [
+ "string"
+ ]
+ },
+ "postedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "refundAmount": {
+ "type": [
+ "double"
+ ]
+ },
+ "soldToContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "soldToContactSnapshotId": {
+ "type": [
+ "string"
+ ]
+ },
+ "source": {
+ "type": [
+ "string"
+ ]
+ },
+ "sourceId": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "targetDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "taxAmount": {
+ "type": [
+ "double"
+ ]
+ },
+ "taxExemptAmount": {
+ "type": [
+ "double"
+ ]
+ },
+ "transferredToAccounting": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/InvoiceItem.json b/_data/taps/schemas/zuora/v1/json/InvoiceItem.json
new file mode 100644
index 000000000..7051e3886
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/InvoiceItem.json
@@ -0,0 +1,164 @@
+{
+ "properties": {
+ "accountingCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "appliedToChargeNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "appliedToInvoiceItemId": {
+ "type": [
+ "string"
+ ]
+ },
+ "chargeAmount": {
+ "type": [
+ "decimal"
+ ]
+ },
+ "chargeDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "chargeName": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoiceId": {
+ "type": [
+ "string"
+ ]
+ },
+ "processingType": {
+ "type": [
+ "decimal"
+ ]
+ },
+ "productDescription": {
+ "type": [
+ "string"
+ ]
+ },
+ "productId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productRatePlanChargeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "decimal"
+ ]
+ },
+ "ratePlanChargeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "revRecCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "revRecStartDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "revRecTriggerCondition": {
+ "type": [
+ "string"
+ ]
+ },
+ "serviceEndDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "serviceStartDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "sku": {
+ "type": [
+ "string"
+ ]
+ },
+ "subscriptionId": {
+ "type": [
+ "string"
+ ]
+ },
+ "taxAmaount": {
+ "type": [
+ "double"
+ ]
+ },
+ "taxCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "taxExemptAmount": {
+ "type": [
+ "double"
+ ]
+ },
+ "taxMode": {
+ "type": [
+ "string"
+ ]
+ },
+ "unitPrice": {
+ "type": [
+ "double"
+ ]
+ },
+ "uom": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/InvoiceItemAdjustment.json b/_data/taps/schemas/zuora/v1/json/InvoiceItemAdjustment.json
new file mode 100644
index 000000000..e1c163a09
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/InvoiceItemAdjustment.json
@@ -0,0 +1,219 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "accountReceivableAccountingCodeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "accountingCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "accountingPeriodId": {
+ "type": [
+ "string"
+ ]
+ },
+ "adjustmentDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "adjustmentNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "amendmentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "double"
+ ]
+ },
+ "billToContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "cancelledById": {
+ "type": [
+ "string"
+ ]
+ },
+ "cancelledDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "comment": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "customerName": {
+ "type": [
+ "string"
+ ]
+ },
+ "customerNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoiceId": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoiceItemName": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoiceNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "journalEntryId": {
+ "type": [
+ "string"
+ ]
+ },
+ "journalRunId": {
+ "type": [
+ "string"
+ ]
+ },
+ "parentAccountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productRatePlanChargeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ratePlanChargeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ratePlanId": {
+ "type": [
+ "string"
+ ]
+ },
+ "reasonCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "recognizedRevenueAccountingCodeId": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "referenceId": {
+ "type": [
+ "string"
+ ]
+ },
+ "salesTaxPayableAccountingCodeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "serviceEndDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "serviceStartDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "soldToContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "sourceId": {
+ "type": [
+ "string"
+ ]
+ },
+ "sourceType": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "subscriptionId": {
+ "type": [
+ "string"
+ ]
+ },
+ "taxationItemId": {
+ "type": [
+ "string"
+ ]
+ },
+ "transferredToAccounting": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/JournalEntry.json b/_data/taps/schemas/zuora/v1/json/JournalEntry.json
new file mode 100644
index 000000000..3fcbea434
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/JournalEntry.json
@@ -0,0 +1,74 @@
+{
+ "properties": {
+ "accountingPeriodId": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "journalEntryDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "journalRunId": {
+ "type": [
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "transferDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "transferredBy": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/JournalEntryItem.json b/_data/taps/schemas/zuora/v1/json/JournalEntryItem.json
new file mode 100644
index 000000000..573abe4d0
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/JournalEntryItem.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "accountingCodeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "accountingCodeType": {
+ "type": [
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "double"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "journalEntryId": {
+ "type": [
+ "string"
+ ]
+ },
+ "journalRunId": {
+ "type": [
+ "string"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/JournalRun.json b/_data/taps/schemas/zuora/v1/json/JournalRun.json
new file mode 100644
index 000000000..a6999cf18
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/JournalRun.json
@@ -0,0 +1,69 @@
+{
+ "properties": {
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "executedOn": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "string"
+ ]
+ },
+ "segmentationRuleName": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "targetEndDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "targetStartDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "totalJournalEntryCount": {
+ "type": [
+ "integer"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/Payment.json b/_data/taps/schemas/zuora/v1/json/Payment.json
new file mode 100644
index 000000000..c808e0fd0
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/Payment.json
@@ -0,0 +1,194 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "appliedAmount": {
+ "type": [
+ "string"
+ ]
+ },
+ "authTransactionId": {
+ "type": [
+ "string"
+ ]
+ },
+ "bankIdentificationNumber": {
+ "type": [
+ "string"
+ ]
+ },
+ "cancelledOn": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "comment": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "creditBalanceAmount": {
+ "type": [
+ "number"
+ ]
+ },
+ "currency": {
+ "type": [
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "effectiveDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "gatewayId": {
+ "type": [
+ "string"
+ ]
+ },
+ "gatewayResponse": {
+ "type": [
+ "string"
+ ]
+ },
+ "gatewayResponseCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "gatewayState": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "markedForSubmissionOn": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "number": {
+ "type": [
+ "string"
+ ]
+ },
+ "paymentDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "paymentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "paymentMethodId": {
+ "type": [
+ "string"
+ ]
+ },
+ "paymentMethodSnapshotId": {
+ "type": [
+ "string"
+ ]
+ },
+ "paymentTransactionTime": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "referenceId": {
+ "type": [
+ "string"
+ ]
+ },
+ "refundAmount": {
+ "type": [
+ "number"
+ ]
+ },
+ "secondPaymentReferenceId": {
+ "type": [
+ "string"
+ ]
+ },
+ "settledOn": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "softDescriptor": {
+ "type": [
+ "string"
+ ]
+ },
+ "softDescriptorPhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "submittedOn": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "success": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "unappliedAmount": {
+ "type": [
+ "number"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/PaymentRun.json b/_data/taps/schemas/zuora/v1/json/PaymentRun.json
new file mode 100644
index 000000000..33a8dd2e5
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/PaymentRun.json
@@ -0,0 +1,99 @@
+{
+ "properties": {
+ "batch": {
+ "type": [
+ "string"
+ ]
+ },
+ "billCycleDay": {
+ "type": [
+ "string"
+ ]
+ },
+ "billingRunId": {
+ "type": [
+ "string"
+ ]
+ },
+ "completedOn": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "consolidatedPayment": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "executedOn": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "string"
+ ]
+ },
+ "numberOfErrors": {
+ "type": [
+ "integer"
+ ]
+ },
+ "numberOfInvoices": {
+ "type": [
+ "integer"
+ ]
+ },
+ "numberOfPayments": {
+ "type": [
+ "integer"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "targetDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/ProcessedUsage.json b/_data/taps/schemas/zuora/v1/json/ProcessedUsage.json
new file mode 100644
index 000000000..d7ad6432a
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/ProcessedUsage.json
@@ -0,0 +1,114 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "amendmentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "double"
+ ]
+ },
+ "billToContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "billingPeriodEndDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "billingPeriodStartDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "defaultPaymentMethodId": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoiceId": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoiceItemId": {
+ "type": [
+ "string"
+ ]
+ },
+ "parentAccountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productRatePlanChargeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productRatePlanId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ratePlanChargeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ratePlanId": {
+ "type": [
+ "string"
+ ]
+ },
+ "soldToContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "usageId": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/Product.json b/_data/taps/schemas/zuora/v1/json/Product.json
new file mode 100644
index 000000000..791bdba55
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/Product.json
@@ -0,0 +1,69 @@
+{
+ "properties": {
+ "allowFeatureChanges": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "category": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "effectiveEndDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "effectiveStartDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "sku": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/ProductRatePlan.json b/_data/taps/schemas/zuora/v1/json/ProductRatePlan.json
new file mode 100644
index 000000000..10d000bae
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/ProductRatePlan.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "defaultPaymentMethodId": {
+ "type": [
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "effectiveEndDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "effectiveStartDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "productId": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/ProductRatePlanCharge.json b/_data/taps/schemas/zuora/v1/json/ProductRatePlanCharge.json
new file mode 100644
index 000000000..e9cc7347c
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/ProductRatePlanCharge.json
@@ -0,0 +1,244 @@
+{
+ "properties": {
+ "accountingCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "applyDiscountTo": {
+ "type": [
+ "string"
+ ]
+ },
+ "billCycleDay": {
+ "type": [
+ "integer"
+ ]
+ },
+ "billCycleType": {
+ "type": [
+ "string"
+ ]
+ },
+ "billingPeriod": {
+ "type": [
+ "string"
+ ]
+ },
+ "billingPeriodAlignment": {
+ "type": [
+ "string"
+ ]
+ },
+ "billingTiming": {
+ "type": [
+ "string"
+ ]
+ },
+ "chargeModel": {
+ "type": [
+ "string"
+ ]
+ },
+ "chargeType": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "defaultQuantity": {
+ "type": [
+ "decimal"
+ ]
+ },
+ "deferredRevenueAccount": {
+ "type": [
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "description": {
+ "type": [
+ "string"
+ ]
+ },
+ "discountClass": {
+ "type": [
+ "string"
+ ]
+ },
+ "discountLevel": {
+ "type": [
+ "string"
+ ]
+ },
+ "endDateCondition": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "includedUnits": {
+ "type": [
+ "decimal"
+ ]
+ },
+ "listPriceBase": {
+ "type": [
+ "string"
+ ]
+ },
+ "maxQuantity": {
+ "type": [
+ "decimal"
+ ]
+ },
+ "minQuantity": {
+ "type": [
+ "decimal"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "numberOfPeriod": {
+ "type": [
+ "integer"
+ ]
+ },
+ "overCalculationOption": {
+ "type": [
+ "string"
+ ]
+ },
+ "overageUnusedUnitsCreditOption": {
+ "type": [
+ "string"
+ ]
+ },
+ "priceChangeOption": {
+ "type": [
+ "string"
+ ]
+ },
+ "priceIncreaseOption": {
+ "type": [
+ "string"
+ ]
+ },
+ "productRatePlanId": {
+ "type": [
+ "string"
+ ]
+ },
+ "recognizedRevenueAccount": {
+ "type": [
+ "string"
+ ]
+ },
+ "revRecCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "revRecTriggerCondition": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenueRecognitionRuleName": {
+ "type": [
+ "string"
+ ]
+ },
+ "smoothingModel": {
+ "type": [
+ "string"
+ ]
+ },
+ "specificBillingPeriod": {
+ "type": [
+ "integer"
+ ]
+ },
+ "taxCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "taxMode": {
+ "type": [
+ "string"
+ ]
+ },
+ "taxable": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "triggerEvent": {
+ "type": [
+ "string"
+ ]
+ },
+ "uom": {
+ "type": [
+ "string"
+ ]
+ },
+ "upToPeriods": {
+ "type": [
+ "integer"
+ ]
+ },
+ "upToPeriodsType": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "useDiscountSpecificAccountingCode": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "useTenantDefaultForPriceChange": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "weeklyBillCycleDay": {
+ "type": [
+ "string"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/ProductRatePlanChargeTier.json b/_data/taps/schemas/zuora/v1/json/ProductRatePlanChargeTier.json
new file mode 100644
index 000000000..3ba37de62
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/ProductRatePlanChargeTier.json
@@ -0,0 +1,84 @@
+{
+ "properties": {
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "endingUnit": {
+ "type": [
+ "number"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "number"
+ ]
+ },
+ "priceFormat": {
+ "type": [
+ "string"
+ ]
+ },
+ "productRatePlanChargeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productRatePlanId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ratePlanChargeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ratePlanId": {
+ "type": [
+ "string"
+ ]
+ },
+ "startingUnit": {
+ "type": [
+ "number"
+ ]
+ },
+ "tier": {
+ "type": [
+ "integer"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/RatePlan.json b/_data/taps/schemas/zuora/v1/json/RatePlan.json
new file mode 100644
index 000000000..bbac449c9
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/RatePlan.json
@@ -0,0 +1,64 @@
+{
+ "properties": {
+ "amendmentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "amendmentType": {
+ "type": [
+ "string"
+ ]
+ },
+ "billToContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "productRatePlanId": {
+ "type": [
+ "string"
+ ]
+ },
+ "subscriptionId": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/RatePlanChargeTier.json b/_data/taps/schemas/zuora/v1/json/RatePlanChargeTier.json
new file mode 100644
index 000000000..f4dfa2b71
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/RatePlanChargeTier.json
@@ -0,0 +1,84 @@
+{
+ "properties": {
+ "amendmentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "price": {
+ "type": [
+ "number"
+ ]
+ },
+ "priceFormat": {
+ "type": [
+ "string"
+ ]
+ },
+ "productRatePlanChargeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productRatePlanId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ratePlanChargeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ratePlanId": {
+ "type": [
+ "string"
+ ]
+ },
+ "startingUnit": {
+ "type": [
+ "number"
+ ]
+ },
+ "subscriptionId": {
+ "type": [
+ "string"
+ ]
+ },
+ "tier": {
+ "type": [
+ "integer"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/Refund.json b/_data/taps/schemas/zuora/v1/json/Refund.json
new file mode 100644
index 000000000..dcecaeee8
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/Refund.json
@@ -0,0 +1,189 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "number"
+ ]
+ },
+ "billToContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "cancelledOn": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "comment": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "creditMemoId": {
+ "type": [
+ "string"
+ ]
+ },
+ "defaultPaymentMethodId": {
+ "type": [
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "gatewayId": {
+ "type": [
+ "string"
+ ]
+ },
+ "gatewayResponse": {
+ "type": [
+ "string"
+ ]
+ },
+ "gatewayResponseCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "gatewayState": {
+ "type": [
+ "string"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "markedForSubmissionOn": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "methodType": {
+ "type": [
+ "string"
+ ]
+ },
+ "number": {
+ "type": [
+ "string"
+ ]
+ },
+ "parentAccountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "paymentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "paymentMethodId": {
+ "type": [
+ "string"
+ ]
+ },
+ "paymentMethodSnapshotId": {
+ "type": [
+ "string"
+ ]
+ },
+ "reasonCode": {
+ "type": [
+ "string"
+ ]
+ },
+ "referenceId": {
+ "type": [
+ "string"
+ ]
+ },
+ "refundDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "refundTransactionTime": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "secondRefundReferenceId": {
+ "type": [
+ "string"
+ ]
+ },
+ "settledOn": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "softDescriptor": {
+ "type": [
+ "string"
+ ]
+ },
+ "softDescriptorPhone": {
+ "type": [
+ "string"
+ ]
+ },
+ "soldToContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "submittedOn": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "success": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "type": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/RevenueChargeSummaryItem.json b/_data/taps/schemas/zuora/v1/json/RevenueChargeSummaryItem.json
new file mode 100644
index 000000000..34e6f50c8
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/RevenueChargeSummaryItem.json
@@ -0,0 +1,114 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "accountingPeriodId": {
+ "type": [
+ "string"
+ ]
+ },
+ "amendmentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "double"
+ ]
+ },
+ "billToContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "string"
+ ]
+ },
+ "defaultPaymentMethodId": {
+ "type": [
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "parentAccountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productRatePlanChargeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productRatePlanId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ratePlanChargeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ratePlanId": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenueChargeSummaryId": {
+ "type": [
+ "string"
+ ]
+ },
+ "soldToContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "subscriptionId": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/RevenueEventItem.json b/_data/taps/schemas/zuora/v1/json/RevenueEventItem.json
new file mode 100644
index 000000000..920d0ab62
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/RevenueEventItem.json
@@ -0,0 +1,139 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "amendmentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "double"
+ ]
+ },
+ "billToContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "defaultPaymentMethodId": {
+ "type": [
+ "string"
+ ]
+ },
+ "deferredRevenueAccountingCodeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "journalEntryId": {
+ "type": [
+ "string"
+ ]
+ },
+ "journalRunId": {
+ "type": [
+ "string"
+ ]
+ },
+ "parentAccountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productRatePlanChargeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productRatePlanId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ratePlanChargeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ratePlanId": {
+ "type": [
+ "string"
+ ]
+ },
+ "recognizedRevenueAccountingCodeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenueChargeSummaryId": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenueEventId": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenueEventTypeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenueScheduleId": {
+ "type": [
+ "string"
+ ]
+ },
+ "soldToContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "subscriptionId": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/RevenueEventItemInvoiceItem.json b/_data/taps/schemas/zuora/v1/json/RevenueEventItemInvoiceItem.json
new file mode 100644
index 000000000..c629187ef
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/RevenueEventItemInvoiceItem.json
@@ -0,0 +1,164 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "accountingPeriodId": {
+ "type": [
+ "string"
+ ]
+ },
+ "amendmentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "double"
+ ]
+ },
+ "billToContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "string"
+ ]
+ },
+ "defaultPaymentMethodId": {
+ "type": [
+ "string"
+ ]
+ },
+ "deferredRevenueAccountingCodeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoiceId": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoiceItemId": {
+ "type": [
+ "string"
+ ]
+ },
+ "journalEntryId": {
+ "type": [
+ "string"
+ ]
+ },
+ "journalRunId": {
+ "type": [
+ "string"
+ ]
+ },
+ "parentAccountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productRatePlanChargeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productRatePlanId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ratePlanChargeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ratePlanId": {
+ "type": [
+ "string"
+ ]
+ },
+ "recognizedRevenueAccountingCodeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenueChargeSummaryId": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenueEventId": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenueEventInvoiceId": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenueEventTypeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenueScheduleId": {
+ "type": [
+ "string"
+ ]
+ },
+ "soldToContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "subscriptionId": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/RevenueEventItemInvoiceItemAdjustment.json b/_data/taps/schemas/zuora/v1/json/RevenueEventItemInvoiceItemAdjustment.json
new file mode 100644
index 000000000..0531ef617
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/RevenueEventItemInvoiceItemAdjustment.json
@@ -0,0 +1,169 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "accountingPeriodId": {
+ "type": [
+ "string"
+ ]
+ },
+ "amendmentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "double"
+ ]
+ },
+ "billToContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "string"
+ ]
+ },
+ "defaultPaymentMethodId": {
+ "type": [
+ "string"
+ ]
+ },
+ "deferredRevenueAccountingCodeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoiceId": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoiceItemAdjustmentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoiceItemId": {
+ "type": [
+ "string"
+ ]
+ },
+ "journalEntryId": {
+ "type": [
+ "string"
+ ]
+ },
+ "journalRunId": {
+ "type": [
+ "string"
+ ]
+ },
+ "parentAccountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productRatePlanChargeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productRatePlanId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ratePlanChargeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ratePlanId": {
+ "type": [
+ "string"
+ ]
+ },
+ "recognizedRevenueAccountingCodeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenueChargeSummaryId": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenueEventInvoiceId": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenueEventInvoiceItemAdjustmentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenueEventTypeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenueScheduleInvoiceItemAdjustmentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "soldToContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "subscriptionId": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/RevenueScheduleItem.json b/_data/taps/schemas/zuora/v1/json/RevenueScheduleItem.json
new file mode 100644
index 000000000..5bdad2ac0
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/RevenueScheduleItem.json
@@ -0,0 +1,139 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "accountingPeriodId": {
+ "type": [
+ "string"
+ ]
+ },
+ "amendmentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "double"
+ ]
+ },
+ "billToContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "string"
+ ]
+ },
+ "defaultPaymentMethodId": {
+ "type": [
+ "string"
+ ]
+ },
+ "deferredRevenueAccountingCodeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "parentAccountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productRatePlanChargeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productRatePlanId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ratePlanChargeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ratePlanId": {
+ "type": [
+ "string"
+ ]
+ },
+ "recognizedRevenueAccountingCodeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenueChargeSummaryId": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenueEventId": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenueEventTypeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenueScheduleId": {
+ "type": [
+ "string"
+ ]
+ },
+ "soldToContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "subscription": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/RevenueScheduleItemInvoiceItem.json b/_data/taps/schemas/zuora/v1/json/RevenueScheduleItemInvoiceItem.json
new file mode 100644
index 000000000..68367295d
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/RevenueScheduleItemInvoiceItem.json
@@ -0,0 +1,139 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "accountingPeriodId": {
+ "type": [
+ "string"
+ ]
+ },
+ "amendmentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "double"
+ ]
+ },
+ "billToContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "string"
+ ]
+ },
+ "defaultPaymentMethodId": {
+ "type": [
+ "string"
+ ]
+ },
+ "deferredRevenueAccountingCodeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoiceId": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoiceItemId": {
+ "type": [
+ "string"
+ ]
+ },
+ "parentAccountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productRatePlanChargeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productRatePlanId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ratePlanChargeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ratePlanId": {
+ "type": [
+ "string"
+ ]
+ },
+ "recognizedRevenueAccountingCodeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenueChargeSummaryId": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenueScheduleInvoiceItemId": {
+ "type": [
+ "string"
+ ]
+ },
+ "soldToContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "subscription": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/RevenueScheduleItemInvoiceItemAdjustment.json b/_data/taps/schemas/zuora/v1/json/RevenueScheduleItemInvoiceItemAdjustment.json
new file mode 100644
index 000000000..ecd8d26b4
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/RevenueScheduleItemInvoiceItemAdjustment.json
@@ -0,0 +1,144 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "accountingPeriodId": {
+ "type": [
+ "string"
+ ]
+ },
+ "amendmentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "amount": {
+ "type": [
+ "double"
+ ]
+ },
+ "billToContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "currency": {
+ "type": [
+ "string"
+ ]
+ },
+ "defaultPaymentMethodId": {
+ "type": [
+ "string"
+ ]
+ },
+ "deferredRevenueAccountingCodeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoiceId": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoiceItemAdjustmentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoiceItemId": {
+ "type": [
+ "string"
+ ]
+ },
+ "parentAccountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productRatePlanChargeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "productRatePlanId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ratePlanChargeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "ratePlanId": {
+ "type": [
+ "string"
+ ]
+ },
+ "recognizedRevenueAccountingCodeId": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenueChargeSummaryId": {
+ "type": [
+ "string"
+ ]
+ },
+ "revenueScheduleInvoiceItemAdjustmentId": {
+ "type": [
+ "string"
+ ]
+ },
+ "soldToContactId": {
+ "type": [
+ "string"
+ ]
+ },
+ "subscriptionId": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/json/Subscription.json b/_data/taps/schemas/zuora/v1/json/Subscription.json
new file mode 100644
index 000000000..03b9ca125
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/json/Subscription.json
@@ -0,0 +1,204 @@
+{
+ "properties": {
+ "accountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "autoRenew": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "cancelledDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "contractAcceptanceDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "contractEffectiveDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "cpqBundleJsonId__qt": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdById": {
+ "type": [
+ "string"
+ ]
+ },
+ "createdDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "creatorAccountId": {
+ "type": [
+ "string"
+ ]
+ },
+ "creatorInvoiceOwnerId": {
+ "type": [
+ "string"
+ ]
+ },
+ "currentTerm": {
+ "type": [
+ "integer"
+ ]
+ },
+ "currentTermPeriodType": {
+ "type": [
+ "string"
+ ]
+ },
+ "deleted": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "id": {
+ "type": [
+ "string"
+ ]
+ },
+ "initialTerm": {
+ "type": [
+ "integer"
+ ]
+ },
+ "initialTermPeriodType": {
+ "type": [
+ "string"
+ ]
+ },
+ "invoiceOwnerId": {
+ "type": [
+ "string"
+ ]
+ },
+ "isInvoiceSeparate": {
+ "type": [
+ "boolean"
+ ]
+ },
+ "name": {
+ "type": [
+ "string"
+ ]
+ },
+ "notes": {
+ "type": [
+ "string"
+ ]
+ },
+ "opportunityCloseDate__qt": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "opportunityName_qt": {
+ "type": [
+ "string"
+ ]
+ },
+ "originalCreatedDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "originalId": {
+ "type": [
+ "string"
+ ]
+ },
+ "previousSubscriptionId": {
+ "type": [
+ "string"
+ ]
+ },
+ "quoteBusinessType__qt": {
+ "type": [
+ "string"
+ ]
+ },
+ "quoteNumber__qt": {
+ "type": [
+ "string"
+ ]
+ },
+ "quoteType__at": {
+ "type": [
+ "string"
+ ]
+ },
+ "renewalSetting": {
+ "type": [
+ "string"
+ ]
+ },
+ "renewalTerm": {
+ "type": [
+ "integer"
+ ]
+ },
+ "renewalTermPeriodType": {
+ "type": [
+ "string"
+ ]
+ },
+ "serviceActivationDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "status": {
+ "type": [
+ "string"
+ ]
+ },
+ "subscriptionEndDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "subscriptionStartDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "termEndDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "termStartDate": {
+ "type": [
+ "date-time"
+ ]
+ },
+ "termType": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedById": {
+ "type": [
+ "string"
+ ]
+ },
+ "updatedDate": {
+ "type": [
+ "date-time"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/taps/schemas/zuora/v1/zuora-v1-foreign-keys.yml b/_data/taps/schemas/zuora/v1/zuora-v1-foreign-keys.yml
new file mode 100644
index 000000000..77a613c6f
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/zuora-v1-foreign-keys.yml
@@ -0,0 +1,7561 @@
+tap: zuora
+version: '1'
+keys:
+ account_accountId:
+ - table: Account
+ keys:
+ - id
+ - table: ContactSnapshot
+ keys:
+ - accountId
+ - table: Invoice
+ keys:
+ - accountId
+ - table: Payment
+ keys:
+ - accountId
+ - table: Refund
+ keys:
+ - accountId
+ - table: Subscription
+ keys:
+ - accountId
+ accountingCode_accountingCode:
+ - table: AccountingCode
+ keys:
+ - id
+ - table: CreditBalanceAdjustment
+ keys:
+ - accountingCode
+ - table: InvoiceItem
+ keys:
+ - accountingCode
+ - table: InvoiceItemAdjustment
+ keys:
+ - accountingCode
+ - table: ProductRatePlanCharge
+ keys:
+ - accountingCode
+ accountingPeriod_accountingPeriodId:
+ - table: AccountingPeriod
+ keys:
+ - id
+ - table: CreditBalanceAdjustment
+ keys:
+ - accountingPeriodId
+ - table: InvoiceItemAdjustment
+ keys:
+ - accountingPeriodId
+ - table: JournalEntry
+ keys:
+ - accountingPeriodId
+ - table: RevenueChargeSummaryItem
+ keys:
+ - accountingPeriodId
+ - table: RevenueEventItemInvoiceItem
+ keys:
+ - accountingPeriodId
+ - table: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - accountingPeriodId
+ - table: RevenueScheduleItem
+ keys:
+ - accountingPeriodId
+ - table: RevenueScheduleItemInvoiceItem
+ keys:
+ - accountingPeriodId
+ - table: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - accountingPeriodId
+ accountingCode_accountReceivableAccountingCodeId:
+ - table: AccountingCode
+ keys:
+ - id
+ - table: CreditBalanceAdjustment
+ keys:
+ - accountReceivableAccountingCodeId
+ - table: InvoiceItemAdjustment
+ keys:
+ - accountReceivableAccountingCodeId
+ amendment_amendmentId:
+ - table: Amendment
+ keys:
+ - id
+ - table: DiscountAppliedMetrics
+ keys:
+ - amendmentId
+ - table: InvoiceItemAdjustment
+ keys:
+ - amendmentId
+ - table: ProcessedUsage
+ keys:
+ - amendmentId
+ - table: RatePlan
+ keys:
+ - amendmentId
+ - table: RatePlanChargeTier
+ keys:
+ - amendmentId
+ - table: RevenueChargeSummaryItem
+ keys:
+ - amendmentId
+ - table: RevenueEventItem
+ keys:
+ - amendmentId
+ - table: RevenueEventItemInvoiceItem
+ keys:
+ - amendmentId
+ - table: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - amendmentId
+ - table: RevenueScheduleItem
+ keys:
+ - amendmentId
+ - table: RevenueScheduleItemInvoiceItem
+ keys:
+ - amendmentId
+ - table: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - amendmentId
+ billingRun_billingRunId:
+ - table: BillingRun
+ keys:
+ - id
+ - table: PaymentRun
+ keys:
+ - billingRunId
+ contact_billToContactId:
+ - table: Account
+ keys:
+ - billToContactId
+ - table: Contact
+ keys:
+ - id
+ - table: ContactSnapshot
+ keys:
+ - contactId
+ - table: CreditBalanceAdjustment
+ keys:
+ - billToContactId
+ - table: DiscountAppliedMetrics
+ keys:
+ - billToContactId
+ - table: Invoice
+ keys:
+ - billToContactId
+ - table: InvoiceItemAdjustment
+ keys:
+ - billToContactId
+ - table: ProcessedUsage
+ keys:
+ - billToContactId
+ - table: RatePlan
+ keys:
+ - billToContactId
+ - table: Refund
+ keys:
+ - billToContactId
+ - table: RevenueChargeSummaryItem
+ keys:
+ - billToContactId
+ - table: RevenueEventItem
+ keys:
+ - billToContactId
+ - table: RevenueEventItemInvoiceItem
+ keys:
+ - billToContactId
+ - table: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - billToContactId
+ - table: RevenueScheduleItem
+ keys:
+ - billToContactId
+ - table: RevenueScheduleItemInvoiceItem
+ keys:
+ - billToContactId
+ - table: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - billToContactId
+ contactSnapshot_billToContactSnapshotId:
+ - table: ContactSnapshot
+ keys:
+ - contactId
+ - table: Invoice
+ keys:
+ - billToContactSnapshotId
+ accountingCode_cashOnAccountAccountingCodeId:
+ - table: AccountingCode
+ keys:
+ - id
+ - table: CreditBalanceAdjustment
+ keys:
+ - cashOnAccountAccountingCodeId
+ contact_contactId:
+ - table: Account
+ keys:
+ - billToContactId
+ - soldToContactId
+ - table: Contact
+ keys:
+ - id
+ - table: ContactSnapshot
+ keys:
+ - contactId
+ - table: CreditBalanceAdjustment
+ keys:
+ - billToContactId
+ - soldToContactId
+ - table: DiscountAppliedMetrics
+ keys:
+ - billToContactId
+ - soldToContactId
+ - table: Invoice
+ keys:
+ - billToContactId
+ - soldToContactId
+ - table: InvoiceItemAdjustment
+ keys:
+ - billToContactId
+ - soldToContactId
+ - table: ProcessedUsage
+ keys:
+ - billToContactId
+ - soldToContactId
+ - table: RatePlan
+ keys:
+ - billToContactId
+ - table: Refund
+ keys:
+ - billToContactId
+ - soldToContactId
+ - table: RevenueChargeSummaryItem
+ keys:
+ - billToContactId
+ - soldToContactId
+ - table: RevenueEventItem
+ keys:
+ - billToContactId
+ - soldToContactId
+ - table: RevenueEventItemInvoiceItem
+ keys:
+ - billToContactId
+ - soldToContactId
+ - table: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - billToContactId
+ - soldToContactId
+ - table: RevenueScheduleItem
+ keys:
+ - billToContactId
+ - soldToContactId
+ - table: RevenueScheduleItemInvoiceItem
+ keys:
+ - billToContactId
+ - soldToContactId
+ - table: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - billToContactId
+ - soldToContactId
+ contactSnapshot_contactSnapshotId:
+ - table: ContactSnapshot
+ keys:
+ - contactId
+ - table: Invoice
+ keys:
+ - billToContactSnapshotId
+ - soldToContactSnapshotId
+ communicationProfile_communicationProfileId:
+ - table: CommunicationProfile
+ keys:
+ - id
+ - table: Account
+ keys:
+ - communicationProfileId
+ account_creatorInvoiceOwnerId:
+ - table: Account
+ keys:
+ - creatorInvoiceOwnerId
+ paymentMethod_defaultPaymentMethodId:
+ - table: PaymentMethod
+ keys:
+ - id
+ - table: Account
+ keys:
+ - defaultPaymentMethodId
+ - table: Invoice
+ keys:
+ - defaultPaymentMethodId
+ accountingCode_deferredRevenueAccountingCodeId:
+ - table: Account
+ keys:
+ - id
+ - table: RevenueEventItem
+ keys:
+ - deferredRevenueAccountingCodeId
+ - table: RevenueEventItemInvoiceItem
+ keys:
+ - deferredRevenueAccountingCodeId
+ - table: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - deferredRevenueAccountingCodeId
+ - table: RevenueScheduleItem
+ keys:
+ - deferredRevenueAccountingCodeId
+ - table: RevenueScheduleItemInvoiceItem
+ keys:
+ - deferredRevenueAccountingCodeId
+ - table: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - deferredRevenueAccountingCodeId
+ ratePlanCharge_discountRatePlanChargeId:
+ - table: RatePlanCharge
+ keys:
+ - id
+ - table: DiscountAppliedMetrics
+ keys:
+ - discountRatePlanChargeId
+ invoice_invoiceId:
+ - table: Invoice
+ keys:
+ - id
+ - table: CreditBalanceAdjustment
+ keys:
+ - invoiceId
+ - sourceTransactionId
+ invoiceItemAdjustment_invoiceItemAdjustmentId:
+ - table: InvoiceItemAdjustment
+ keys:
+ - id
+ - table: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - invoiceItemAdjustmentId
+ - table: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - invoiceItemAdjustmentId
+ invoice_invoiceNumber:
+ - table: Invoice
+ keys:
+ - invoiceNumber
+ - table: CreditBalanceAdjustment
+ keys:
+ - sourceTransactionNumber
+ account_invoiceOwnerId:
+ - table: Account
+ keys:
+ - invoiceOwnerId
+ invoiceItem_invoiceItemId:
+ - table: InvoiceItem
+ keys:
+ - id
+ - table: ProcessedUsage
+ keys:
+ - invoiceItemId
+ - table: RevenueEventItemInvoiceItem
+ keys:
+ - invoiceItemId
+ - table: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - invoiceItemId
+ - table: RevenueScheduleItemInvoiceItem
+ keys:
+ - invoiceItemId
+ - table: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - invoiceItemId
+ journalEntry_journalEntryId:
+ - table: JournalEntry
+ keys:
+ - id
+ - table: CreditBalanceAdjustment
+ keys:
+ - journalEntryId
+ - table: InvoiceItemAdjustment
+ keys:
+ - journalEntryId
+ - table: JournalEntryItem
+ keys:
+ - journalEntryId
+ - table: RevenueEventItem
+ keys:
+ - journalEntryId
+ - table: RevenueEventItemInvoiceItem
+ keys:
+ - journalEntryId
+ - table: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - journalEntryId
+ journalRun_journalRunId:
+ - table: JournalRun
+ keys:
+ - id
+ - table: CreditBalanceAdjustment
+ keys:
+ - journalRunId
+ - table: InvoiceItemAdjustment
+ keys:
+ - journalRunId
+ - table: JournalEntryItem
+ keys:
+ - journalRunId
+ - table: RevenueEventItem
+ keys:
+ - journalRunId
+ - table: RevenueEventItemInvoiceItem
+ keys:
+ - journalRunId
+ - table: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - journalRunId
+ account_parentAccountId:
+ - table: Account
+ keys:
+ - parentAccountId
+ - table: CreditBalanceAdjustment
+ keys:
+ - parentAccountId
+ - table: DiscountAppliedMetrics
+ keys:
+ - parentAccountId
+ - table: Invoice
+ keys:
+ - parentAccountId
+ - table: InvoiceItemAdjustment
+ keys:
+ - parentAccountId
+ - table: ProcessedUsage
+ keys:
+ - parentAccountId
+ - table: Refund
+ keys:
+ - parentAccountId
+ - table: RevenueChargeSummaryItem
+ keys:
+ - parentAccountId
+ - table: RevenueEventItem
+ keys:
+ - parentAccountId
+ - table: RevenueEventItemInvoiceItem
+ keys:
+ - parentAccountId
+ - table: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - parentAccountId
+ - table: RevenueScheduleItem
+ keys:
+ - parentAccountId
+ - table: RevenueScheduleItemInvoiceItem
+ keys:
+ - parentAccountId
+ - table: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - parentAccountId
+ payment_paymentId:
+ - table: Payment
+ keys:
+ - id
+ - table: CreditBalanceAdjustment
+ keys:
+ - paymentId
+ - sourceTransactionId
+ paymentMethod_paymentMethodId:
+ - table: PaymentMethod
+ keys:
+ - id
+ - table: CreditBalanceAdjustment
+ keys:
+ - paymentMethodId
+ - table: Payment
+ keys:
+ - paymentMethodId
+ - table: Refund
+ keys:
+ - paymentMethodId
+ paymentRun_paymentRunId:
+ - table: PaymentRun
+ keys:
+ - paymentRunId
+ paymentMethodSnapshot_paymentMethodSnapshotId:
+ - table: PaymentMethodSnapshot
+ keys:
+ - id
+ - table: CreditBalanceAdjustment
+ keys:
+ - paymentMethodSnapshotId
+ - table: Payment
+ keys:
+ - paymentMethodSnapshotId
+ - table: Refund
+ keys:
+ - paymentMethodSnapshotId
+ product_productId:
+ - table: Product
+ keys:
+ - id
+ - table: DiscountAppliedMetrics
+ keys:
+ - productId
+ - table: InvoiceItem
+ keys:
+ - productId
+ - table: InvoiceItemAdjustment
+ keys:
+ - productId
+ - table: ProcessedUsage
+ keys:
+ - productId
+ - table: ProductRatePlan
+ keys:
+ - productId
+ - table: RevenueChargeSummaryItem
+ keys:
+ - productId
+ - table: RevenueEventItem
+ keys:
+ - productId
+ - table: RevenueEventItemInvoiceItem
+ keys:
+ - productId
+ - table: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - productId
+ - table: RevenueScheduleItem
+ keys:
+ - productId
+ - table: RevenueScheduleItemInvoiceItem
+ keys:
+ - productId
+ - table: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - productId
+ productRatePlanCharge_productRatePlanChargeId:
+ - table: ProductRatePlanCharge
+ keys:
+ - id
+ - table: DiscountAppliedMetrics
+ keys:
+ - productRatePlanChargeId
+ - table: InvoiceItem
+ keys:
+ - productRatePlanChargeId
+ - table: InvoiceItemAdjustment
+ keys:
+ - productRatePlanChargeId
+ - table: ProcessedUsage
+ keys:
+ - productRatePlanChargeId
+ - table: ProductRatePlanChargeTier
+ keys:
+ - productRatePlanChargeId
+ - table: RevenueChargeSummaryItem
+ keys:
+ - productRatePlanChargeId
+ - table: RevenueEventItem
+ keys:
+ - productRatePlanChargeId
+ - table: RevenueEventItemInvoiceItem
+ keys:
+ - productRatePlanChargeId
+ - table: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - productRatePlanChargeId
+ - table: RevenueScheduleItem
+ keys:
+ - productRatePlanChargeId
+ - table: RevenueScheduleItemInvoiceItem
+ keys:
+ - productRatePlanChargeId
+ - table: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - productRatePlanChargeId
+ productRatePlan_productRatePlanId:
+ - table: ProductRatePlan
+ keys:
+ - id
+ - table: DiscountAppliedMetrics
+ keys:
+ - productRatePlanId
+ - table: ProcessedUsage
+ keys:
+ - productRatePlanId
+ - table: ProductRatePlanCharge
+ keys:
+ - productRatePlanId
+ - table: ProductRatePlanChargeTier
+ keys:
+ - productRatePlanId
+ - table: RatePlan
+ keys:
+ - productRatePlanId
+ - table: RatePlanChargeTier
+ keys:
+ - productRatePlanId
+ - table: RevenueChargeSummaryItem
+ keys:
+ - productRatePlanId
+ - table: RevenueEventItem
+ keys:
+ - productRatePlanId
+ - table: RevenueEventItemInvoiceItem
+ keys:
+ - productRatePlanId
+ - table: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - productRatePlanId
+ - table: RevenueScheduleItem
+ keys:
+ - productRatePlanId
+ - table: RevenueScheduleItemInvoiceItem
+ keys:
+ - productRatePlanId
+ - table: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - productRatePlanId
+ ratePlanCharge_ratePlanChargeId:
+ - table: RatePlanCharge
+ keys:
+ - id
+ - table: DiscountAppliedMetrics
+ keys:
+ - ratePlanChargeId
+ - table: InvoiceItem
+ keys:
+ - ratePlanChargeId
+ - table: InvoiceItemAdjustment
+ keys:
+ - ratePlanChargeId
+ - table: ProcessedUsage
+ keys:
+ - ratePlanChargeId
+ - table: ProductRatePlanChargeTier
+ keys:
+ - ratePlanChargeId
+ - table: RatePlanChargeTier
+ keys:
+ - ratePlanChargeId
+ - table: RevenueChargeSummaryItem
+ keys:
+ - ratePlanChargeId
+ - table: RevenueEventItem
+ keys:
+ - ratePlanChargeId
+ - table: RevenueEventItemInvoiceItem
+ keys:
+ - ratePlanChargeId
+ - table: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - ratePlanChargeId
+ - table: RevenueScheduleItem
+ keys:
+ - ratePlanChargeId
+ - table: RevenueScheduleItemInvoiceItem
+ keys:
+ - ratePlanChargeId
+ - table: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - ratePlanChargeId
+ ratePlan_ratePlanId:
+ - table: RatePlan
+ keys:
+ - id
+ - table: DiscountAppliedMetrics
+ keys:
+ - ratePlanId
+ - table: InvoiceItemAdjustment
+ keys:
+ - ratePlanId
+ - table: ProcessedUsage
+ keys:
+ - ratePlanId
+ - table: ProductRatePlanChargeTier
+ keys:
+ - ratePlanId
+ - table: RatePlanChargeTier
+ keys:
+ - ratePlanId
+ - table: RevenueChargeSummaryItem
+ keys:
+ - ratePlanId
+ - table: RevenueEventItem
+ keys:
+ - ratePlanId
+ - table: RevenueEventItemInvoiceItem
+ keys:
+ - ratePlanId
+ - table: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - ratePlanId
+ - table: RevenueScheduleItem
+ keys:
+ - ratePlanId
+ - table: RevenueScheduleItemInvoiceItem
+ keys:
+ - ratePlanId
+ - table: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - ratePlanId
+ accountingCode_recognizedRevenueAccountingCodeId:
+ - table: AccountingCode
+ keys:
+ - id
+ - table: InvoiceItemAdjustment
+ keys:
+ - recognizedRevenueAccountingCodeId
+ - table: RevenueEventItem
+ keys:
+ - recognizedRevenueAccountingCodeId
+ - table: RevenueEventItemInvoiceItem
+ keys:
+ - recognizedRevenueAccountingCodeId
+ - table: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - recognizedRevenueAccountingCodeId
+ - table: RevenueScheduleItem
+ keys:
+ - recognizedRevenueAccountingCodeId
+ - table: RevenueScheduleItemInvoiceItem
+ keys:
+ - recognizedRevenueAccountingCodeId
+ - table: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - recognizedRevenueAccountingCodeId
+ refund_refundId:
+ - table: Refund
+ keys:
+ - id
+ - table: CreditBalanceAdjustment
+ keys:
+ - refundId
+ - sourceTransactionId
+ revenueChargeSummary_revenueChargeSummaryId:
+ - table: RevenueChargeSummaryItem
+ keys:
+ - revenueChargeSummaryId
+ - table: RevenueEventItem
+ keys:
+ - revenueChargeSummaryId
+ - table: RevenueEventItemInvoiceItem
+ keys:
+ - revenueChargeSummaryId
+ - table: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - revenueChargeSummaryId
+ - table: RevenueScheduleItem
+ keys:
+ - revenueChargeSummaryId
+ - table: RevenueScheduleItemInvoiceItem
+ keys:
+ - revenueChargeSummaryId
+ - table: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - revenueChargeSummaryId
+ revenueEventType_revenueEventTypeId:
+ - table: RevenueEventType
+ keys:
+ - id
+ revenueScheduleInvoiceItem_revenueScheduleInvoiceItemId:
+ - table: RevenueScheduleInvoiceItem
+ keys:
+ - id
+ accountingCode_salesTaxPayableAccountingCodeId:
+ - table: AccountingCode
+ keys:
+ - id
+ - table: InvoiceItemAdjustment
+ keys:
+ - salesTaxPayableAccountingCodeId
+ contact_soldToContactId:
+ - table: Account
+ keys:
+ - soldToContactId
+ - table: Contact
+ keys:
+ - id
+ - table: ContactSnapshot
+ keys:
+ - contactId
+ - table: CreditBalanceAdjustment
+ keys:
+ - soldToContactId
+ - table: DiscountAppliedMetrics
+ keys:
+ - soldToContactId
+ - table: Invoice
+ keys:
+ - soldToContactId
+ - table: InvoiceItemAdjustment
+ keys:
+ - soldToContactId
+ - table: ProcessedUsage
+ keys:
+ - soldToContactId
+ - table: Refund
+ keys:
+ - soldToContactId
+ - table: RevenueChargeSummaryItem
+ keys:
+ - soldToContactId
+ - table: RevenueEventItem
+ keys:
+ - soldToContactId
+ - table: RevenueEventItemInvoiceItem
+ keys:
+ - soldToContactId
+ - table: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - soldToContactId
+ - table: RevenueScheduleItem
+ keys:
+ - soldToContactId
+ - table: RevenueScheduleItemInvoiceItem
+ keys:
+ - soldToContactId
+ - table: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - soldToContactId
+ contactSnapshot_soldToContactSnapshotId:
+ - table: ContactSnapshot
+ keys:
+ - contactId
+ - table: Invoice
+ keys:
+ - soldToContactSnapshotId
+ creditBalanceAdjustment_sourceTransactionId:
+ - table: Invoice
+ keys:
+ - id
+ - table: Payment
+ keys:
+ - id
+ - table: Refund
+ keys:
+ - id
+ creditBalanceAdjustment_sourceTransactionNumber:
+ - table: Invoice
+ keys:
+ - invoiceNumber
+ - table: Payment
+ keys:
+ - number
+ - table: Refund
+ keys:
+ - number
+ subscription_subscriptionId:
+ - table: Subscription
+ keys:
+ - id
+ - table: Amendment
+ keys:
+ - subscriptionId
+ - table: DiscountAppliedMetrics
+ keys:
+ - subscriptionId
+ - table: InvoiceItem
+ keys:
+ - subscriptionId
+ - table: InvoiceItemAdjustment
+ keys:
+ - subscriptionId
+ - table: RatePlan
+ keys:
+ - subscriptionId
+ - table: RatePlanChargeTier
+ keys:
+ - subscriptionId
+ - table: RevenueChargeSummaryItem
+ keys:
+ - subscriptionId
+ - table: RevenueEventItem
+ keys:
+ - subscriptionId
+ - table: RevenueEventItemInvoiceItem
+ keys:
+ - subscriptionId
+ - table: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - subscriptionId
+ - table: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - subscriptionId
+tables:
+- table-name: Account
+ join:
+ - table-name: ContactSnapshot
+ keys:
+ - key: id
+ foreign-key: accountId
+ - key: billToContactId
+ foreign-key: contactId
+ - key: soldToContactId
+ foreign-key: contactId
+ - table-name: Invoice
+ keys:
+ - key: id
+ foreign-key: accountId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: defaultPaymentMethodId
+ foreign-key: defaultPaymentMethodId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Payment
+ keys:
+ - key: id
+ foreign-key: accountId
+ - table-name: Refund
+ keys:
+ - key: id
+ foreign-key: accountId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Subscription
+ keys:
+ - key: id
+ foreign-key: accountId
+ - table-name: Contact
+ keys:
+ - key: billToContactId
+ foreign-key: id
+ - key: soldToContactId
+ foreign-key: id
+ - table-name: CreditBalanceAdjustment
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: DiscountAppliedMetrics
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: ProcessedUsage
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: RatePlan
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - table-name: RevenueChargeSummaryItem
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: RevenueEventItem
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: id
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: id
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: id
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: RevenueScheduleItem
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: id
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: RevenueScheduleItemInvoiceItem
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: id
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: id
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: CommunicationProfile
+ keys:
+ - key: communicationProfileId
+ foreign-key: id
+ - table-name: PaymentMethod
+ keys:
+ - key: defaultPaymentMethodId
+ foreign-key: id
+- table-name: ContactSnapshot
+ join:
+ - table-name: Account
+ keys:
+ - key: accountId
+ foreign-key: id
+ - key: contactId
+ foreign-key: billToContactId
+ - key: contactId
+ foreign-key: soldToContactId
+ - table-name: Invoice
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: contactId
+ foreign-key: billToContactId
+ - key: contactId
+ foreign-key: billToContactSnapshotId
+ - key: contactId
+ foreign-key: soldToContactId
+ - key: contactId
+ foreign-key: soldToContactSnapshotId
+ - table-name: Payment
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - table-name: Refund
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: contactId
+ foreign-key: billToContactId
+ - key: contactId
+ foreign-key: soldToContactId
+ - table-name: Subscription
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - table-name: Contact
+ keys:
+ - key: contactId
+ foreign-key: id
+ - table-name: CreditBalanceAdjustment
+ keys:
+ - key: contactId
+ foreign-key: billToContactId
+ - key: contactId
+ foreign-key: soldToContactId
+ - table-name: DiscountAppliedMetrics
+ keys:
+ - key: contactId
+ foreign-key: billToContactId
+ - key: contactId
+ foreign-key: soldToContactId
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: contactId
+ foreign-key: billToContactId
+ - key: contactId
+ foreign-key: soldToContactId
+ - table-name: ProcessedUsage
+ keys:
+ - key: contactId
+ foreign-key: billToContactId
+ - key: contactId
+ foreign-key: soldToContactId
+ - table-name: RatePlan
+ keys:
+ - key: contactId
+ foreign-key: billToContactId
+ - table-name: RevenueChargeSummaryItem
+ keys:
+ - key: contactId
+ foreign-key: billToContactId
+ - key: contactId
+ foreign-key: soldToContactId
+ - table-name: RevenueEventItem
+ keys:
+ - key: contactId
+ foreign-key: billToContactId
+ - key: contactId
+ foreign-key: soldToContactId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: contactId
+ foreign-key: billToContactId
+ - key: contactId
+ foreign-key: soldToContactId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: contactId
+ foreign-key: billToContactId
+ - key: contactId
+ foreign-key: soldToContactId
+ - table-name: RevenueScheduleItem
+ keys:
+ - key: contactId
+ foreign-key: billToContactId
+ - key: contactId
+ foreign-key: soldToContactId
+ - table-name: RevenueScheduleItemInvoiceItem
+ keys:
+ - key: contactId
+ foreign-key: billToContactId
+ - key: contactId
+ foreign-key: soldToContactId
+ - table-name: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - key: contactId
+ foreign-key: billToContactId
+ - key: contactId
+ foreign-key: soldToContactId
+- table-name: Invoice
+ join:
+ - table-name: Account
+ keys:
+ - key: accountId
+ foreign-key: id
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: defaultPaymentMethodId
+ foreign-key: defaultPaymentMethodId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: ContactSnapshot
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: billToContactId
+ foreign-key: contactId
+ - key: billToContactSnapshotId
+ foreign-key: contactId
+ - key: soldToContactId
+ foreign-key: contactId
+ - key: soldToContactSnapshotId
+ foreign-key: contactId
+ - table-name: Payment
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: id
+ foreign-key: id
+ - key: invoiceNumber
+ foreign-key: number
+ - table-name: Refund
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: id
+ foreign-key: id
+ - key: invoiceNumber
+ foreign-key: number
+ - table-name: Subscription
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - table-name: Contact
+ keys:
+ - key: billToContactId
+ foreign-key: id
+ - key: soldToContactId
+ foreign-key: id
+ - table-name: CreditBalanceAdjustment
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: id
+ foreign-key: invoiceId
+ - key: id
+ foreign-key: sourceTransactionId
+ - key: invoiceNumber
+ foreign-key: sourceTransactionNumber
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: DiscountAppliedMetrics
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: ProcessedUsage
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: RatePlan
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - table-name: RevenueChargeSummaryItem
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: RevenueEventItem
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: RevenueScheduleItem
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: RevenueScheduleItemInvoiceItem
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: PaymentMethod
+ keys:
+ - key: defaultPaymentMethodId
+ foreign-key: id
+- table-name: Payment
+ join:
+ - table-name: Account
+ keys:
+ - key: accountId
+ foreign-key: id
+ - table-name: ContactSnapshot
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - table-name: Invoice
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: id
+ foreign-key: id
+ - key: number
+ foreign-key: invoiceNumber
+ - table-name: Refund
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: paymentMethodId
+ foreign-key: paymentMethodId
+ - key: paymentMethodSnapshotId
+ foreign-key: paymentMethodSnapshotId
+ - key: id
+ foreign-key: id
+ - key: number
+ foreign-key: number
+ - table-name: Subscription
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - table-name: CreditBalanceAdjustment
+ keys:
+ - key: id
+ foreign-key: paymentId
+ - key: id
+ foreign-key: sourceTransactionId
+ - key: paymentMethodId
+ foreign-key: paymentMethodId
+ - key: paymentMethodSnapshotId
+ foreign-key: paymentMethodSnapshotId
+ - table-name: PaymentMethod
+ keys:
+ - key: paymentMethodId
+ foreign-key: id
+ - table-name: PaymentMethodSnapshot
+ keys:
+ - key: paymentMethodSnapshotId
+ foreign-key: id
+- table-name: Refund
+ join:
+ - table-name: Account
+ keys:
+ - key: accountId
+ foreign-key: id
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: ContactSnapshot
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: billToContactId
+ foreign-key: contactId
+ - key: soldToContactId
+ foreign-key: contactId
+ - table-name: Invoice
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: id
+ foreign-key: id
+ - key: number
+ foreign-key: invoiceNumber
+ - table-name: Payment
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - key: paymentMethodId
+ foreign-key: paymentMethodId
+ - key: paymentMethodSnapshotId
+ foreign-key: paymentMethodSnapshotId
+ - key: id
+ foreign-key: id
+ - key: number
+ foreign-key: number
+ - table-name: Subscription
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - table-name: Contact
+ keys:
+ - key: billToContactId
+ foreign-key: id
+ - key: soldToContactId
+ foreign-key: id
+ - table-name: CreditBalanceAdjustment
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: paymentMethodId
+ foreign-key: paymentMethodId
+ - key: paymentMethodSnapshotId
+ foreign-key: paymentMethodSnapshotId
+ - key: id
+ foreign-key: refundId
+ - key: id
+ foreign-key: sourceTransactionId
+ - table-name: DiscountAppliedMetrics
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: ProcessedUsage
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: RatePlan
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - table-name: RevenueChargeSummaryItem
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: RevenueEventItem
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: RevenueScheduleItem
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: RevenueScheduleItemInvoiceItem
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: PaymentMethod
+ keys:
+ - key: paymentMethodId
+ foreign-key: id
+ - table-name: PaymentMethodSnapshot
+ keys:
+ - key: paymentMethodSnapshotId
+ foreign-key: id
+- table-name: Subscription
+ join:
+ - table-name: Account
+ keys:
+ - key: accountId
+ foreign-key: id
+ - table-name: ContactSnapshot
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - table-name: Invoice
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - table-name: Payment
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - table-name: Refund
+ keys:
+ - key: accountId
+ foreign-key: accountId
+ - table-name: Amendment
+ keys:
+ - key: id
+ foreign-key: subscriptionId
+ - table-name: DiscountAppliedMetrics
+ keys:
+ - key: id
+ foreign-key: subscriptionId
+ - table-name: InvoiceItem
+ keys:
+ - key: id
+ foreign-key: subscriptionId
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: id
+ foreign-key: subscriptionId
+ - table-name: RatePlan
+ keys:
+ - key: id
+ foreign-key: subscriptionId
+ - table-name: RatePlanChargeTier
+ keys:
+ - key: id
+ foreign-key: subscriptionId
+ - table-name: RevenueChargeSummaryItem
+ keys:
+ - key: id
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItem
+ keys:
+ - key: id
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: id
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: id
+ foreign-key: subscriptionId
+ - table-name: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - key: id
+ foreign-key: subscriptionId
+- table-name: AccountingCode
+ join:
+ - table-name: CreditBalanceAdjustment
+ keys:
+ - key: id
+ foreign-key: accountingCode
+ - key: id
+ foreign-key: accountReceivableAccountingCodeId
+ - key: id
+ foreign-key: cashOnAccountAccountingCodeId
+ - table-name: InvoiceItem
+ keys:
+ - key: id
+ foreign-key: accountingCode
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: id
+ foreign-key: accountingCode
+ - key: id
+ foreign-key: accountReceivableAccountingCodeId
+ - key: id
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: id
+ foreign-key: salesTaxPayableAccountingCodeId
+ - table-name: ProductRatePlanCharge
+ keys:
+ - key: id
+ foreign-key: accountingCode
+ - table-name: RevenueEventItem
+ keys:
+ - key: id
+ foreign-key: recognizedRevenueAccountingCodeId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: id
+ foreign-key: recognizedRevenueAccountingCodeId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: id
+ foreign-key: recognizedRevenueAccountingCodeId
+ - table-name: RevenueScheduleItem
+ keys:
+ - key: id
+ foreign-key: recognizedRevenueAccountingCodeId
+ - table-name: RevenueScheduleItemInvoiceItem
+ keys:
+ - key: id
+ foreign-key: recognizedRevenueAccountingCodeId
+ - table-name: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - key: id
+ foreign-key: recognizedRevenueAccountingCodeId
+- table-name: CreditBalanceAdjustment
+ join:
+ - table-name: AccountingCode
+ keys:
+ - key: accountingCode
+ foreign-key: id
+ - key: accountReceivableAccountingCodeId
+ foreign-key: id
+ - key: cashOnAccountAccountingCodeId
+ foreign-key: id
+ - table-name: InvoiceItem
+ keys:
+ - key: accountingCode
+ foreign-key: accountingCode
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: accountingCode
+ foreign-key: accountingCode
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: accountReceivableAccountingCodeId
+ foreign-key: accountReceivableAccountingCodeId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: ProductRatePlanCharge
+ keys:
+ - key: accountingCode
+ foreign-key: accountingCode
+ - table-name: AccountingPeriod
+ keys:
+ - key: accountingPeriodId
+ foreign-key: id
+ - table-name: JournalEntry
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: journalEntryId
+ foreign-key: id
+ - table-name: RevenueChargeSummaryItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: RevenueScheduleItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: RevenueScheduleItemInvoiceItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Account
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Contact
+ keys:
+ - key: billToContactId
+ foreign-key: id
+ - key: soldToContactId
+ foreign-key: id
+ - table-name: ContactSnapshot
+ keys:
+ - key: billToContactId
+ foreign-key: contactId
+ - key: soldToContactId
+ foreign-key: contactId
+ - table-name: DiscountAppliedMetrics
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Invoice
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: invoiceId
+ foreign-key: id
+ - key: sourceTransactionId
+ foreign-key: id
+ - key: sourceTransactionNumber
+ foreign-key: invoiceNumber
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: ProcessedUsage
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: RatePlan
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - table-name: Refund
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: paymentMethodId
+ foreign-key: paymentMethodId
+ - key: paymentMethodSnapshotId
+ foreign-key: paymentMethodSnapshotId
+ - key: refundId
+ foreign-key: id
+ - key: sourceTransactionId
+ foreign-key: id
+ - table-name: RevenueEventItem
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: JournalEntryItem
+ keys:
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - table-name: JournalRun
+ keys:
+ - key: journalRunId
+ foreign-key: id
+ - table-name: Payment
+ keys:
+ - key: paymentId
+ foreign-key: id
+ - key: sourceTransactionId
+ foreign-key: id
+ - key: paymentMethodId
+ foreign-key: paymentMethodId
+ - key: paymentMethodSnapshotId
+ foreign-key: paymentMethodSnapshotId
+ - table-name: PaymentMethod
+ keys:
+ - key: paymentMethodId
+ foreign-key: id
+ - table-name: PaymentMethodSnapshot
+ keys:
+ - key: paymentMethodSnapshotId
+ foreign-key: id
+- table-name: InvoiceItem
+ join:
+ - table-name: AccountingCode
+ keys:
+ - key: accountingCode
+ foreign-key: id
+ - table-name: CreditBalanceAdjustment
+ keys:
+ - key: accountingCode
+ foreign-key: accountingCode
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: accountingCode
+ foreign-key: accountingCode
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: ProductRatePlanCharge
+ keys:
+ - key: accountingCode
+ foreign-key: accountingCode
+ - key: productRatePlanChargeId
+ foreign-key: id
+ - table-name: ProcessedUsage
+ keys:
+ - key: id
+ foreign-key: invoiceItemId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: id
+ foreign-key: invoiceItemId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: id
+ foreign-key: invoiceItemId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueScheduleItemInvoiceItem
+ keys:
+ - key: id
+ foreign-key: invoiceItemId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - table-name: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - key: id
+ foreign-key: invoiceItemId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: Product
+ keys:
+ - key: productId
+ foreign-key: id
+ - table-name: DiscountAppliedMetrics
+ keys:
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: ProductRatePlan
+ keys:
+ - key: productId
+ foreign-key: productId
+ - table-name: RevenueChargeSummaryItem
+ keys:
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItem
+ keys:
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueScheduleItem
+ keys:
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - table-name: ProductRatePlanChargeTier
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - table-name: RatePlanCharge
+ keys:
+ - key: ratePlanChargeId
+ foreign-key: id
+ - table-name: RatePlanChargeTier
+ keys:
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: Subscription
+ keys:
+ - key: subscriptionId
+ foreign-key: id
+ - table-name: Amendment
+ keys:
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RatePlan
+ keys:
+ - key: subscriptionId
+ foreign-key: subscriptionId
+- table-name: InvoiceItemAdjustment
+ join:
+ - table-name: AccountingCode
+ keys:
+ - key: accountingCode
+ foreign-key: id
+ - key: accountReceivableAccountingCodeId
+ foreign-key: id
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: id
+ - key: salesTaxPayableAccountingCodeId
+ foreign-key: id
+ - table-name: CreditBalanceAdjustment
+ keys:
+ - key: accountingCode
+ foreign-key: accountingCode
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: accountReceivableAccountingCodeId
+ foreign-key: accountReceivableAccountingCodeId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: InvoiceItem
+ keys:
+ - key: accountingCode
+ foreign-key: accountingCode
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: ProductRatePlanCharge
+ keys:
+ - key: accountingCode
+ foreign-key: accountingCode
+ - key: productRatePlanChargeId
+ foreign-key: id
+ - table-name: AccountingPeriod
+ keys:
+ - key: accountingPeriodId
+ foreign-key: id
+ - table-name: JournalEntry
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: journalEntryId
+ foreign-key: id
+ - table-name: RevenueChargeSummaryItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: id
+ foreign-key: invoiceItemAdjustmentId
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueScheduleItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - table-name: RevenueScheduleItemInvoiceItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - table-name: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: id
+ foreign-key: invoiceItemAdjustmentId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: Amendment
+ keys:
+ - key: amendmentId
+ foreign-key: id
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: DiscountAppliedMetrics
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: ProcessedUsage
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RatePlan
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: ratePlanId
+ foreign-key: id
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RatePlanChargeTier
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: Account
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Contact
+ keys:
+ - key: billToContactId
+ foreign-key: id
+ - key: soldToContactId
+ foreign-key: id
+ - table-name: ContactSnapshot
+ keys:
+ - key: billToContactId
+ foreign-key: contactId
+ - key: soldToContactId
+ foreign-key: contactId
+ - table-name: Invoice
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Refund
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: JournalEntryItem
+ keys:
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - table-name: JournalRun
+ keys:
+ - key: journalRunId
+ foreign-key: id
+ - table-name: Product
+ keys:
+ - key: productId
+ foreign-key: id
+ - table-name: ProductRatePlan
+ keys:
+ - key: productId
+ foreign-key: productId
+ - table-name: ProductRatePlanChargeTier
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RatePlanCharge
+ keys:
+ - key: ratePlanChargeId
+ foreign-key: id
+ - table-name: Subscription
+ keys:
+ - key: subscriptionId
+ foreign-key: id
+- table-name: ProductRatePlanCharge
+ join:
+ - table-name: AccountingCode
+ keys:
+ - key: accountingCode
+ foreign-key: id
+ - table-name: CreditBalanceAdjustment
+ keys:
+ - key: accountingCode
+ foreign-key: accountingCode
+ - table-name: InvoiceItem
+ keys:
+ - key: accountingCode
+ foreign-key: accountingCode
+ - key: id
+ foreign-key: productRatePlanChargeId
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: accountingCode
+ foreign-key: accountingCode
+ - key: id
+ foreign-key: productRatePlanChargeId
+ - table-name: DiscountAppliedMetrics
+ keys:
+ - key: id
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - table-name: ProcessedUsage
+ keys:
+ - key: id
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - table-name: ProductRatePlanChargeTier
+ keys:
+ - key: id
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - table-name: RevenueChargeSummaryItem
+ keys:
+ - key: id
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - table-name: RevenueEventItem
+ keys:
+ - key: id
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: id
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: id
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - table-name: RevenueScheduleItem
+ keys:
+ - key: id
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - table-name: RevenueScheduleItemInvoiceItem
+ keys:
+ - key: id
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - table-name: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - key: id
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - table-name: ProductRatePlan
+ keys:
+ - key: productRatePlanId
+ foreign-key: id
+ - table-name: RatePlan
+ keys:
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - table-name: RatePlanChargeTier
+ keys:
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+- table-name: AccountingPeriod
+ join:
+ - table-name: CreditBalanceAdjustment
+ keys:
+ - key: id
+ foreign-key: accountingPeriodId
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: id
+ foreign-key: accountingPeriodId
+ - table-name: JournalEntry
+ keys:
+ - key: id
+ foreign-key: accountingPeriodId
+ - table-name: RevenueChargeSummaryItem
+ keys:
+ - key: id
+ foreign-key: accountingPeriodId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: id
+ foreign-key: accountingPeriodId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: id
+ foreign-key: accountingPeriodId
+ - table-name: RevenueScheduleItem
+ keys:
+ - key: id
+ foreign-key: accountingPeriodId
+ - table-name: RevenueScheduleItemInvoiceItem
+ keys:
+ - key: id
+ foreign-key: accountingPeriodId
+ - table-name: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - key: id
+ foreign-key: accountingPeriodId
+- table-name: JournalEntry
+ join:
+ - table-name: AccountingPeriod
+ keys:
+ - key: accountingPeriodId
+ foreign-key: id
+ - table-name: CreditBalanceAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: id
+ foreign-key: journalEntryId
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: id
+ foreign-key: journalEntryId
+ - table-name: RevenueChargeSummaryItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: id
+ foreign-key: journalEntryId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: id
+ foreign-key: journalEntryId
+ - table-name: RevenueScheduleItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - table-name: RevenueScheduleItemInvoiceItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - table-name: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - table-name: JournalEntryItem
+ keys:
+ - key: id
+ foreign-key: journalEntryId
+ - table-name: RevenueEventItem
+ keys:
+ - key: id
+ foreign-key: journalEntryId
+- table-name: RevenueChargeSummaryItem
+ join:
+ - table-name: AccountingPeriod
+ keys:
+ - key: accountingPeriodId
+ foreign-key: id
+ - table-name: CreditBalanceAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: JournalEntry
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueScheduleItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - table-name: RevenueScheduleItemInvoiceItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - table-name: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: Amendment
+ keys:
+ - key: amendmentId
+ foreign-key: id
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: DiscountAppliedMetrics
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: ProcessedUsage
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RatePlan
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanId
+ foreign-key: id
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RatePlanChargeTier
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: Account
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Contact
+ keys:
+ - key: billToContactId
+ foreign-key: id
+ - key: soldToContactId
+ foreign-key: id
+ - table-name: ContactSnapshot
+ keys:
+ - key: billToContactId
+ foreign-key: contactId
+ - key: soldToContactId
+ foreign-key: contactId
+ - table-name: Invoice
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Refund
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Product
+ keys:
+ - key: productId
+ foreign-key: id
+ - table-name: InvoiceItem
+ keys:
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: ProductRatePlan
+ keys:
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanId
+ foreign-key: id
+ - table-name: ProductRatePlanCharge
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: id
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - table-name: ProductRatePlanChargeTier
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RatePlanCharge
+ keys:
+ - key: ratePlanChargeId
+ foreign-key: id
+ - table-name: Subscription
+ keys:
+ - key: subscriptionId
+ foreign-key: id
+- table-name: RevenueEventItemInvoiceItem
+ join:
+ - table-name: AccountingPeriod
+ keys:
+ - key: accountingPeriodId
+ foreign-key: id
+ - table-name: CreditBalanceAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: JournalEntry
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: journalEntryId
+ foreign-key: id
+ - table-name: RevenueChargeSummaryItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: invoiceItemId
+ foreign-key: invoiceItemId
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueScheduleItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - table-name: RevenueScheduleItemInvoiceItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: invoiceItemId
+ foreign-key: invoiceItemId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - table-name: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: invoiceItemId
+ foreign-key: invoiceItemId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: Amendment
+ keys:
+ - key: amendmentId
+ foreign-key: id
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: DiscountAppliedMetrics
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: ProcessedUsage
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: invoiceItemId
+ foreign-key: invoiceItemId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RatePlan
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanId
+ foreign-key: id
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RatePlanChargeTier
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: Account
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: id
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Contact
+ keys:
+ - key: billToContactId
+ foreign-key: id
+ - key: soldToContactId
+ foreign-key: id
+ - table-name: ContactSnapshot
+ keys:
+ - key: billToContactId
+ foreign-key: contactId
+ - key: soldToContactId
+ foreign-key: contactId
+ - table-name: Invoice
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Refund
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: InvoiceItem
+ keys:
+ - key: invoiceItemId
+ foreign-key: id
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: JournalEntryItem
+ keys:
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - table-name: JournalRun
+ keys:
+ - key: journalRunId
+ foreign-key: id
+ - table-name: Product
+ keys:
+ - key: productId
+ foreign-key: id
+ - table-name: ProductRatePlan
+ keys:
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanId
+ foreign-key: id
+ - table-name: ProductRatePlanCharge
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: id
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - table-name: ProductRatePlanChargeTier
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RatePlanCharge
+ keys:
+ - key: ratePlanChargeId
+ foreign-key: id
+ - table-name: AccountingCode
+ keys:
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: id
+ - table-name: Subscription
+ keys:
+ - key: subscriptionId
+ foreign-key: id
+- table-name: RevenueEventItemInvoiceItemAdjustment
+ join:
+ - table-name: AccountingPeriod
+ keys:
+ - key: accountingPeriodId
+ foreign-key: id
+ - table-name: CreditBalanceAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: invoiceItemAdjustmentId
+ foreign-key: id
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: JournalEntry
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: journalEntryId
+ foreign-key: id
+ - table-name: RevenueChargeSummaryItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: invoiceItemId
+ foreign-key: invoiceItemId
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueScheduleItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - table-name: RevenueScheduleItemInvoiceItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: invoiceItemId
+ foreign-key: invoiceItemId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - table-name: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: invoiceItemAdjustmentId
+ foreign-key: invoiceItemAdjustmentId
+ - key: invoiceItemId
+ foreign-key: invoiceItemId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: Amendment
+ keys:
+ - key: amendmentId
+ foreign-key: id
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: DiscountAppliedMetrics
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: ProcessedUsage
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: invoiceItemId
+ foreign-key: invoiceItemId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RatePlan
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanId
+ foreign-key: id
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RatePlanChargeTier
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: Account
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: id
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Contact
+ keys:
+ - key: billToContactId
+ foreign-key: id
+ - key: soldToContactId
+ foreign-key: id
+ - table-name: ContactSnapshot
+ keys:
+ - key: billToContactId
+ foreign-key: contactId
+ - key: soldToContactId
+ foreign-key: contactId
+ - table-name: Invoice
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Refund
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: InvoiceItem
+ keys:
+ - key: invoiceItemId
+ foreign-key: id
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: JournalEntryItem
+ keys:
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - table-name: JournalRun
+ keys:
+ - key: journalRunId
+ foreign-key: id
+ - table-name: Product
+ keys:
+ - key: productId
+ foreign-key: id
+ - table-name: ProductRatePlan
+ keys:
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanId
+ foreign-key: id
+ - table-name: ProductRatePlanCharge
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: id
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - table-name: ProductRatePlanChargeTier
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RatePlanCharge
+ keys:
+ - key: ratePlanChargeId
+ foreign-key: id
+ - table-name: AccountingCode
+ keys:
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: id
+ - table-name: Subscription
+ keys:
+ - key: subscriptionId
+ foreign-key: id
+- table-name: RevenueScheduleItem
+ join:
+ - table-name: AccountingPeriod
+ keys:
+ - key: accountingPeriodId
+ foreign-key: id
+ - table-name: CreditBalanceAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - table-name: JournalEntry
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - table-name: RevenueChargeSummaryItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - table-name: RevenueScheduleItemInvoiceItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - table-name: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - table-name: Amendment
+ keys:
+ - key: amendmentId
+ foreign-key: id
+ - table-name: DiscountAppliedMetrics
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: ProcessedUsage
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RatePlan
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanId
+ foreign-key: id
+ - table-name: RatePlanChargeTier
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RevenueEventItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - table-name: Account
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: id
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Contact
+ keys:
+ - key: billToContactId
+ foreign-key: id
+ - key: soldToContactId
+ foreign-key: id
+ - table-name: ContactSnapshot
+ keys:
+ - key: billToContactId
+ foreign-key: contactId
+ - key: soldToContactId
+ foreign-key: contactId
+ - table-name: Invoice
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Refund
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Product
+ keys:
+ - key: productId
+ foreign-key: id
+ - table-name: InvoiceItem
+ keys:
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - table-name: ProductRatePlan
+ keys:
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanId
+ foreign-key: id
+ - table-name: ProductRatePlanCharge
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: id
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - table-name: ProductRatePlanChargeTier
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RatePlanCharge
+ keys:
+ - key: ratePlanChargeId
+ foreign-key: id
+ - table-name: AccountingCode
+ keys:
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: id
+- table-name: RevenueScheduleItemInvoiceItem
+ join:
+ - table-name: AccountingPeriod
+ keys:
+ - key: accountingPeriodId
+ foreign-key: id
+ - table-name: CreditBalanceAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - table-name: JournalEntry
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - table-name: RevenueChargeSummaryItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: invoiceItemId
+ foreign-key: invoiceItemId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: invoiceItemId
+ foreign-key: invoiceItemId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - table-name: RevenueScheduleItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - table-name: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: invoiceItemId
+ foreign-key: invoiceItemId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - table-name: Amendment
+ keys:
+ - key: amendmentId
+ foreign-key: id
+ - table-name: DiscountAppliedMetrics
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: ProcessedUsage
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: invoiceItemId
+ foreign-key: invoiceItemId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RatePlan
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanId
+ foreign-key: id
+ - table-name: RatePlanChargeTier
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RevenueEventItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - table-name: Account
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: id
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Contact
+ keys:
+ - key: billToContactId
+ foreign-key: id
+ - key: soldToContactId
+ foreign-key: id
+ - table-name: ContactSnapshot
+ keys:
+ - key: billToContactId
+ foreign-key: contactId
+ - key: soldToContactId
+ foreign-key: contactId
+ - table-name: Invoice
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Refund
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: InvoiceItem
+ keys:
+ - key: invoiceItemId
+ foreign-key: id
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - table-name: Product
+ keys:
+ - key: productId
+ foreign-key: id
+ - table-name: ProductRatePlan
+ keys:
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanId
+ foreign-key: id
+ - table-name: ProductRatePlanCharge
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: id
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - table-name: ProductRatePlanChargeTier
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RatePlanCharge
+ keys:
+ - key: ratePlanChargeId
+ foreign-key: id
+ - table-name: AccountingCode
+ keys:
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: id
+- table-name: RevenueScheduleItemInvoiceItemAdjustment
+ join:
+ - table-name: AccountingPeriod
+ keys:
+ - key: accountingPeriodId
+ foreign-key: id
+ - table-name: CreditBalanceAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: invoiceItemAdjustmentId
+ foreign-key: id
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: JournalEntry
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - table-name: RevenueChargeSummaryItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: invoiceItemId
+ foreign-key: invoiceItemId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: invoiceItemAdjustmentId
+ foreign-key: invoiceItemAdjustmentId
+ - key: invoiceItemId
+ foreign-key: invoiceItemId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueScheduleItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - table-name: RevenueScheduleItemInvoiceItem
+ keys:
+ - key: accountingPeriodId
+ foreign-key: accountingPeriodId
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: invoiceItemId
+ foreign-key: invoiceItemId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - table-name: Amendment
+ keys:
+ - key: amendmentId
+ foreign-key: id
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: DiscountAppliedMetrics
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: ProcessedUsage
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: invoiceItemId
+ foreign-key: invoiceItemId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RatePlan
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanId
+ foreign-key: id
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RatePlanChargeTier
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: Account
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: id
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Contact
+ keys:
+ - key: billToContactId
+ foreign-key: id
+ - key: soldToContactId
+ foreign-key: id
+ - table-name: ContactSnapshot
+ keys:
+ - key: billToContactId
+ foreign-key: contactId
+ - key: soldToContactId
+ foreign-key: contactId
+ - table-name: Invoice
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Refund
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: InvoiceItem
+ keys:
+ - key: invoiceItemId
+ foreign-key: id
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: Product
+ keys:
+ - key: productId
+ foreign-key: id
+ - table-name: ProductRatePlan
+ keys:
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanId
+ foreign-key: id
+ - table-name: ProductRatePlanCharge
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: id
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - table-name: ProductRatePlanChargeTier
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RatePlanCharge
+ keys:
+ - key: ratePlanChargeId
+ foreign-key: id
+ - table-name: AccountingCode
+ keys:
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: id
+ - table-name: Subscription
+ keys:
+ - key: subscriptionId
+ foreign-key: id
+- table-name: Amendment
+ join:
+ - table-name: DiscountAppliedMetrics
+ keys:
+ - key: id
+ foreign-key: amendmentId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: id
+ foreign-key: amendmentId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: ProcessedUsage
+ keys:
+ - key: id
+ foreign-key: amendmentId
+ - table-name: RatePlan
+ keys:
+ - key: id
+ foreign-key: amendmentId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RatePlanChargeTier
+ keys:
+ - key: id
+ foreign-key: amendmentId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueChargeSummaryItem
+ keys:
+ - key: id
+ foreign-key: amendmentId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItem
+ keys:
+ - key: id
+ foreign-key: amendmentId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: id
+ foreign-key: amendmentId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: id
+ foreign-key: amendmentId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueScheduleItem
+ keys:
+ - key: id
+ foreign-key: amendmentId
+ - table-name: RevenueScheduleItemInvoiceItem
+ keys:
+ - key: id
+ foreign-key: amendmentId
+ - table-name: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - key: id
+ foreign-key: amendmentId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: Subscription
+ keys:
+ - key: subscriptionId
+ foreign-key: id
+ - table-name: InvoiceItem
+ keys:
+ - key: subscriptionId
+ foreign-key: subscriptionId
+- table-name: DiscountAppliedMetrics
+ join:
+ - table-name: Amendment
+ keys:
+ - key: amendmentId
+ foreign-key: id
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: ProcessedUsage
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RatePlan
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanId
+ foreign-key: id
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RatePlanChargeTier
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueChargeSummaryItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueScheduleItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RevenueScheduleItemInvoiceItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: Account
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Contact
+ keys:
+ - key: billToContactId
+ foreign-key: id
+ - key: soldToContactId
+ foreign-key: id
+ - table-name: ContactSnapshot
+ keys:
+ - key: billToContactId
+ foreign-key: contactId
+ - key: soldToContactId
+ foreign-key: contactId
+ - table-name: CreditBalanceAdjustment
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Invoice
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Refund
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: RatePlanCharge
+ keys:
+ - key: discountRatePlanChargeId
+ foreign-key: id
+ - key: ratePlanChargeId
+ foreign-key: id
+ - table-name: Product
+ keys:
+ - key: productId
+ foreign-key: id
+ - table-name: InvoiceItem
+ keys:
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: ProductRatePlan
+ keys:
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanId
+ foreign-key: id
+ - table-name: ProductRatePlanCharge
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: id
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - table-name: ProductRatePlanChargeTier
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: Subscription
+ keys:
+ - key: subscriptionId
+ foreign-key: id
+- table-name: ProcessedUsage
+ join:
+ - table-name: Amendment
+ keys:
+ - key: amendmentId
+ foreign-key: id
+ - table-name: DiscountAppliedMetrics
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RatePlan
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanId
+ foreign-key: id
+ - table-name: RatePlanChargeTier
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RevenueChargeSummaryItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RevenueEventItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: invoiceItemId
+ foreign-key: invoiceItemId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: invoiceItemId
+ foreign-key: invoiceItemId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RevenueScheduleItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RevenueScheduleItemInvoiceItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: invoiceItemId
+ foreign-key: invoiceItemId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: invoiceItemId
+ foreign-key: invoiceItemId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: Account
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Contact
+ keys:
+ - key: billToContactId
+ foreign-key: id
+ - key: soldToContactId
+ foreign-key: id
+ - table-name: ContactSnapshot
+ keys:
+ - key: billToContactId
+ foreign-key: contactId
+ - key: soldToContactId
+ foreign-key: contactId
+ - table-name: CreditBalanceAdjustment
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Invoice
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Refund
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: InvoiceItem
+ keys:
+ - key: invoiceItemId
+ foreign-key: id
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - table-name: Product
+ keys:
+ - key: productId
+ foreign-key: id
+ - table-name: ProductRatePlan
+ keys:
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanId
+ foreign-key: id
+ - table-name: ProductRatePlanCharge
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: id
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - table-name: ProductRatePlanChargeTier
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RatePlanCharge
+ keys:
+ - key: ratePlanChargeId
+ foreign-key: id
+- table-name: RatePlan
+ join:
+ - table-name: Amendment
+ keys:
+ - key: amendmentId
+ foreign-key: id
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: DiscountAppliedMetrics
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: id
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: id
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: ProcessedUsage
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: id
+ foreign-key: ratePlanId
+ - table-name: RatePlanChargeTier
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: id
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueChargeSummaryItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: id
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: id
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: id
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: id
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueScheduleItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: id
+ foreign-key: ratePlanId
+ - table-name: RevenueScheduleItemInvoiceItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: id
+ foreign-key: ratePlanId
+ - table-name: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: id
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: Account
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - table-name: Contact
+ keys:
+ - key: billToContactId
+ foreign-key: id
+ - table-name: ContactSnapshot
+ keys:
+ - key: billToContactId
+ foreign-key: contactId
+ - table-name: CreditBalanceAdjustment
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - table-name: Invoice
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - table-name: Refund
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - table-name: ProductRatePlan
+ keys:
+ - key: productRatePlanId
+ foreign-key: id
+ - table-name: ProductRatePlanCharge
+ keys:
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - table-name: ProductRatePlanChargeTier
+ keys:
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: id
+ foreign-key: ratePlanId
+ - table-name: Subscription
+ keys:
+ - key: subscriptionId
+ foreign-key: id
+ - table-name: InvoiceItem
+ keys:
+ - key: subscriptionId
+ foreign-key: subscriptionId
+- table-name: RatePlanChargeTier
+ join:
+ - table-name: Amendment
+ keys:
+ - key: amendmentId
+ foreign-key: id
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: DiscountAppliedMetrics
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: ProcessedUsage
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RatePlan
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanId
+ foreign-key: id
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueChargeSummaryItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueScheduleItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RevenueScheduleItemInvoiceItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: ProductRatePlan
+ keys:
+ - key: productRatePlanId
+ foreign-key: id
+ - table-name: ProductRatePlanCharge
+ keys:
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - table-name: ProductRatePlanChargeTier
+ keys:
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RatePlanCharge
+ keys:
+ - key: ratePlanChargeId
+ foreign-key: id
+ - table-name: InvoiceItem
+ keys:
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: Subscription
+ keys:
+ - key: subscriptionId
+ foreign-key: id
+- table-name: RevenueEventItem
+ join:
+ - table-name: Amendment
+ keys:
+ - key: amendmentId
+ foreign-key: id
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: DiscountAppliedMetrics
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: ProcessedUsage
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RatePlan
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanId
+ foreign-key: id
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RatePlanChargeTier
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueChargeSummaryItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: RevenueScheduleItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - table-name: RevenueScheduleItemInvoiceItem
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - table-name: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - key: amendmentId
+ foreign-key: amendmentId
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: deferredRevenueAccountingCodeId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: recognizedRevenueAccountingCodeId
+ - key: revenueChargeSummaryId
+ foreign-key: revenueChargeSummaryId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: Account
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: deferredRevenueAccountingCodeId
+ foreign-key: id
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Contact
+ keys:
+ - key: billToContactId
+ foreign-key: id
+ - key: soldToContactId
+ foreign-key: id
+ - table-name: ContactSnapshot
+ keys:
+ - key: billToContactId
+ foreign-key: contactId
+ - key: soldToContactId
+ foreign-key: contactId
+ - table-name: CreditBalanceAdjustment
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Invoice
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: Refund
+ keys:
+ - key: billToContactId
+ foreign-key: billToContactId
+ - key: soldToContactId
+ foreign-key: billToContactId
+ - key: billToContactId
+ foreign-key: soldToContactId
+ - key: soldToContactId
+ foreign-key: soldToContactId
+ - key: parentAccountId
+ foreign-key: parentAccountId
+ - table-name: JournalEntry
+ keys:
+ - key: journalEntryId
+ foreign-key: id
+ - table-name: JournalEntryItem
+ keys:
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - table-name: JournalRun
+ keys:
+ - key: journalRunId
+ foreign-key: id
+ - table-name: Product
+ keys:
+ - key: productId
+ foreign-key: id
+ - table-name: InvoiceItem
+ keys:
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: subscriptionId
+ foreign-key: subscriptionId
+ - table-name: ProductRatePlan
+ keys:
+ - key: productId
+ foreign-key: productId
+ - key: productRatePlanId
+ foreign-key: id
+ - table-name: ProductRatePlanCharge
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: id
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - table-name: ProductRatePlanChargeTier
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RatePlanCharge
+ keys:
+ - key: ratePlanChargeId
+ foreign-key: id
+ - table-name: AccountingCode
+ keys:
+ - key: recognizedRevenueAccountingCodeId
+ foreign-key: id
+ - table-name: Subscription
+ keys:
+ - key: subscriptionId
+ foreign-key: id
+- table-name: BillingRun
+ join:
+ - table-name: PaymentRun
+ keys:
+ - key: id
+ foreign-key: billingRunId
+- table-name: PaymentRun
+ join:
+ - table-name: BillingRun
+ keys:
+ - key: billingRunId
+ foreign-key: id
+- table-name: Contact
+ join:
+ - table-name: Account
+ keys:
+ - key: id
+ foreign-key: billToContactId
+ - key: id
+ foreign-key: soldToContactId
+ - table-name: ContactSnapshot
+ keys:
+ - key: id
+ foreign-key: contactId
+ - table-name: CreditBalanceAdjustment
+ keys:
+ - key: id
+ foreign-key: billToContactId
+ - key: id
+ foreign-key: soldToContactId
+ - table-name: DiscountAppliedMetrics
+ keys:
+ - key: id
+ foreign-key: billToContactId
+ - key: id
+ foreign-key: soldToContactId
+ - table-name: Invoice
+ keys:
+ - key: id
+ foreign-key: billToContactId
+ - key: id
+ foreign-key: soldToContactId
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: id
+ foreign-key: billToContactId
+ - key: id
+ foreign-key: soldToContactId
+ - table-name: ProcessedUsage
+ keys:
+ - key: id
+ foreign-key: billToContactId
+ - key: id
+ foreign-key: soldToContactId
+ - table-name: RatePlan
+ keys:
+ - key: id
+ foreign-key: billToContactId
+ - table-name: Refund
+ keys:
+ - key: id
+ foreign-key: billToContactId
+ - key: id
+ foreign-key: soldToContactId
+ - table-name: RevenueChargeSummaryItem
+ keys:
+ - key: id
+ foreign-key: billToContactId
+ - key: id
+ foreign-key: soldToContactId
+ - table-name: RevenueEventItem
+ keys:
+ - key: id
+ foreign-key: billToContactId
+ - key: id
+ foreign-key: soldToContactId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: id
+ foreign-key: billToContactId
+ - key: id
+ foreign-key: soldToContactId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: id
+ foreign-key: billToContactId
+ - key: id
+ foreign-key: soldToContactId
+ - table-name: RevenueScheduleItem
+ keys:
+ - key: id
+ foreign-key: billToContactId
+ - key: id
+ foreign-key: soldToContactId
+ - table-name: RevenueScheduleItemInvoiceItem
+ keys:
+ - key: id
+ foreign-key: billToContactId
+ - key: id
+ foreign-key: soldToContactId
+ - table-name: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - key: id
+ foreign-key: billToContactId
+ - key: id
+ foreign-key: soldToContactId
+- table-name: CommunicationProfile
+ join:
+ - table-name: Account
+ keys:
+ - key: id
+ foreign-key: communicationProfileId
+- table-name: PaymentMethod
+ join:
+ - table-name: Account
+ keys:
+ - key: id
+ foreign-key: defaultPaymentMethodId
+ - table-name: Invoice
+ keys:
+ - key: id
+ foreign-key: defaultPaymentMethodId
+ - table-name: CreditBalanceAdjustment
+ keys:
+ - key: id
+ foreign-key: paymentMethodId
+ - table-name: Payment
+ keys:
+ - key: id
+ foreign-key: paymentMethodId
+ - table-name: Refund
+ keys:
+ - key: id
+ foreign-key: paymentMethodId
+- table-name: RatePlanCharge
+ join:
+ - table-name: DiscountAppliedMetrics
+ keys:
+ - key: id
+ foreign-key: discountRatePlanChargeId
+ - key: id
+ foreign-key: ratePlanChargeId
+ - table-name: InvoiceItem
+ keys:
+ - key: id
+ foreign-key: ratePlanChargeId
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: id
+ foreign-key: ratePlanChargeId
+ - table-name: ProcessedUsage
+ keys:
+ - key: id
+ foreign-key: ratePlanChargeId
+ - table-name: ProductRatePlanChargeTier
+ keys:
+ - key: id
+ foreign-key: ratePlanChargeId
+ - table-name: RatePlanChargeTier
+ keys:
+ - key: id
+ foreign-key: ratePlanChargeId
+ - table-name: RevenueChargeSummaryItem
+ keys:
+ - key: id
+ foreign-key: ratePlanChargeId
+ - table-name: RevenueEventItem
+ keys:
+ - key: id
+ foreign-key: ratePlanChargeId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: id
+ foreign-key: ratePlanChargeId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: id
+ foreign-key: ratePlanChargeId
+ - table-name: RevenueScheduleItem
+ keys:
+ - key: id
+ foreign-key: ratePlanChargeId
+ - table-name: RevenueScheduleItemInvoiceItem
+ keys:
+ - key: id
+ foreign-key: ratePlanChargeId
+ - table-name: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - key: id
+ foreign-key: ratePlanChargeId
+- table-name: JournalEntryItem
+ join:
+ - table-name: JournalEntry
+ keys:
+ - key: journalEntryId
+ foreign-key: id
+ - table-name: CreditBalanceAdjustment
+ keys:
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - table-name: RevenueEventItem
+ keys:
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: journalEntryId
+ foreign-key: journalEntryId
+ - key: journalRunId
+ foreign-key: journalRunId
+ - table-name: JournalRun
+ keys:
+ - key: journalRunId
+ foreign-key: id
+- table-name: JournalRun
+ join:
+ - table-name: CreditBalanceAdjustment
+ keys:
+ - key: id
+ foreign-key: journalRunId
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: id
+ foreign-key: journalRunId
+ - table-name: JournalEntryItem
+ keys:
+ - key: id
+ foreign-key: journalRunId
+ - table-name: RevenueEventItem
+ keys:
+ - key: id
+ foreign-key: journalRunId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: id
+ foreign-key: journalRunId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: id
+ foreign-key: journalRunId
+- table-name: PaymentMethodSnapshot
+ join:
+ - table-name: CreditBalanceAdjustment
+ keys:
+ - key: id
+ foreign-key: paymentMethodSnapshotId
+ - table-name: Payment
+ keys:
+ - key: id
+ foreign-key: paymentMethodSnapshotId
+ - table-name: Refund
+ keys:
+ - key: id
+ foreign-key: paymentMethodSnapshotId
+- table-name: Product
+ join:
+ - table-name: DiscountAppliedMetrics
+ keys:
+ - key: id
+ foreign-key: productId
+ - table-name: InvoiceItem
+ keys:
+ - key: id
+ foreign-key: productId
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: id
+ foreign-key: productId
+ - table-name: ProcessedUsage
+ keys:
+ - key: id
+ foreign-key: productId
+ - table-name: ProductRatePlan
+ keys:
+ - key: id
+ foreign-key: productId
+ - table-name: RevenueChargeSummaryItem
+ keys:
+ - key: id
+ foreign-key: productId
+ - table-name: RevenueEventItem
+ keys:
+ - key: id
+ foreign-key: productId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: id
+ foreign-key: productId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: id
+ foreign-key: productId
+ - table-name: RevenueScheduleItem
+ keys:
+ - key: id
+ foreign-key: productId
+ - table-name: RevenueScheduleItemInvoiceItem
+ keys:
+ - key: id
+ foreign-key: productId
+ - table-name: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - key: id
+ foreign-key: productId
+- table-name: ProductRatePlan
+ join:
+ - table-name: Product
+ keys:
+ - key: productId
+ foreign-key: id
+ - table-name: DiscountAppliedMetrics
+ keys:
+ - key: productId
+ foreign-key: productId
+ - key: id
+ foreign-key: productRatePlanId
+ - table-name: InvoiceItem
+ keys:
+ - key: productId
+ foreign-key: productId
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: productId
+ foreign-key: productId
+ - table-name: ProcessedUsage
+ keys:
+ - key: productId
+ foreign-key: productId
+ - key: id
+ foreign-key: productRatePlanId
+ - table-name: RevenueChargeSummaryItem
+ keys:
+ - key: productId
+ foreign-key: productId
+ - key: id
+ foreign-key: productRatePlanId
+ - table-name: RevenueEventItem
+ keys:
+ - key: productId
+ foreign-key: productId
+ - key: id
+ foreign-key: productRatePlanId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: productId
+ foreign-key: productId
+ - key: id
+ foreign-key: productRatePlanId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: productId
+ foreign-key: productId
+ - key: id
+ foreign-key: productRatePlanId
+ - table-name: RevenueScheduleItem
+ keys:
+ - key: productId
+ foreign-key: productId
+ - key: id
+ foreign-key: productRatePlanId
+ - table-name: RevenueScheduleItemInvoiceItem
+ keys:
+ - key: productId
+ foreign-key: productId
+ - key: id
+ foreign-key: productRatePlanId
+ - table-name: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - key: productId
+ foreign-key: productId
+ - key: id
+ foreign-key: productRatePlanId
+ - table-name: ProductRatePlanCharge
+ keys:
+ - key: id
+ foreign-key: productRatePlanId
+ - table-name: ProductRatePlanChargeTier
+ keys:
+ - key: id
+ foreign-key: productRatePlanId
+ - table-name: RatePlan
+ keys:
+ - key: id
+ foreign-key: productRatePlanId
+ - table-name: RatePlanChargeTier
+ keys:
+ - key: id
+ foreign-key: productRatePlanId
+- table-name: ProductRatePlanChargeTier
+ join:
+ - table-name: ProductRatePlanCharge
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: id
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - table-name: DiscountAppliedMetrics
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: InvoiceItem
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - table-name: InvoiceItemAdjustment
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: ProcessedUsage
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RevenueChargeSummaryItem
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RevenueEventItem
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RevenueEventItemInvoiceItem
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RevenueEventItemInvoiceItemAdjustment
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RevenueScheduleItem
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RevenueScheduleItemInvoiceItem
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RevenueScheduleItemInvoiceItemAdjustment
+ keys:
+ - key: productRatePlanChargeId
+ foreign-key: productRatePlanChargeId
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: ProductRatePlan
+ keys:
+ - key: productRatePlanId
+ foreign-key: id
+ - table-name: RatePlan
+ keys:
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanId
+ foreign-key: id
+ - table-name: RatePlanChargeTier
+ keys:
+ - key: productRatePlanId
+ foreign-key: productRatePlanId
+ - key: ratePlanChargeId
+ foreign-key: ratePlanChargeId
+ - key: ratePlanId
+ foreign-key: ratePlanId
+ - table-name: RatePlanCharge
+ keys:
+ - key: ratePlanChargeId
+ foreign-key: id
diff --git a/_data/taps/schemas/zuora/v1/zuora-v1-issues.txt b/_data/taps/schemas/zuora/v1/zuora-v1-issues.txt
new file mode 100644
index 000000000..9db46e17c
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/zuora-v1-issues.txt
@@ -0,0 +1,3 @@
+JSON file _data/taps/schemas/zuora/v1/json/PaymentMethod.json not found
+JSON file _data/taps/schemas/zuora/v1/json/RatePlanCharge.json not found
+JSON file _data/taps/schemas/zuora/v1/json/PaymentMethodSnapshot.json not found
diff --git a/_data/taps/schemas/zuora/v1/zuora-v1-tables.yml b/_data/taps/schemas/zuora/v1/zuora-v1-tables.yml
new file mode 100644
index 000000000..40521dc18
--- /dev/null
+++ b/_data/taps/schemas/zuora/v1/zuora-v1-tables.yml
@@ -0,0 +1,428 @@
+tap: zuora
+version: '1'
+tap-repo-schemas: false
+tables:
+- name: Account
+ description: 'The `{{ table.name }}` table contains information about the customer
+ accounts in your {{ integration.display_name }} instance.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Accounts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: AccountingCode
+ description: 'The `{{ table.name }}` table contains information about the accounting
+ codes in your {{ integration.display_name }} instance. Accounting codes are used
+ to categorize transactions for accounting purposes.
+
+
+ **Note**: To replicate this table, you must have {{ integration.display_name }}
+ Finance enabled.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#operation/GET_AllAccountingCodes
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: AccountingPeriod
+ description: 'The `{{ table.name }}` table contains information about the [accounting
+ periods](https://knowledgecenter.zuora.com/CC_Finance/E_Accounting_Periods){:target="new"}
+ in your {{ integration.display_name }} account.
+
+
+ **Note**: To replicate this table, you must have {{ integration.display_name }}
+ Finance enabled.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Accounting-Periods
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: Amendment
+ description: 'The `{{ table.name }}` table contains information about subscription
+ amendments, which are changes to customer subscriptions. For example: Changing
+ the terms of a contract, adding/removing a product, canceling a subscription,
+ etc.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#operation/Object_GETAmendment
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: BillingRun
+ description: 'The `{{ table.name }}` table contains information about billing runs.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/billing-Run
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: CommunicationProfile
+ description: 'The `{{ table.name }}` table contains information about communication
+ profiles, which are sets of policies that determine how to communicate with the
+ contacts associated with a specific customer account.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#operation/Object_GETCommunicationProfile
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: Contact
+ description: 'The `{{ table.name }}` table contains info about an account''s point-of-contact.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Contacts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: ContactSnapshot
+ description: 'The `{{ table.name }}` table contains ''snapshot'' records of Bill-To
+ or Sold-To contacts on customer accounts. Snapshots are record preservations at
+ specific points in time. When invoices are posted, {{ integration.display_name
+ }} will preserve the data for the Bill-To and Sold-To contacts at that point in
+ time.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Contacts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: CreditBalanceAdjustment
+ description: 'The `{{ table.name }}` table contains information about [credit balance
+ adjustments](https://knowledgecenter.zuora.com/CB_Billing/G_Credit_Balances){:target="new"},
+ or the application of credit balances to invoices, payments, and refunds.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/credit balance
+ adjustments
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: DiscountAppliedMetrics
+ description: 'The `{{ table.name }}` table contains information about rate plan
+ charges that use either a discount-fixed amount or discount-percentage charge
+ model.
+
+ '
+ links:
+ doc-link: https://knowledgecenter.zuora.com/CD_Reporting/D_Data_Sources_and_Exports/C_Data_Source_Reference/Discount_Applied_Metrics_Data_Sourceadjustments
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: Export
+ description: 'The `{{ table.name }}` table contains information about export jobs
+ and files.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Exports
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: Import
+ description: 'The `{{ table.name }}` table contains information about content uploads.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/imports
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: Invoice
+ description: 'The `{{ table.name }}` table contains info about invoices, which are
+ bills to customers.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Invoices
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: InvoiceItem
+ description: 'The `{{ table.name }}` table contains info about the line items in
+ invoices.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Invoice-Items
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: InvoiceItemAdjustment
+ description: 'The `{{ table.name }}` table contains info about adjustments applied
+ to invoice line items.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Invoice-Items
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: JournalEntry
+ description: "The `{{ table.name }}` table contains information about \n"
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Accounts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: JournalEntryItem
+ description: 'The `{{ table.name }}` table contains information about journal entry
+ items.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Summary-Journal-Entries
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: JournalRun
+ description: 'The `{{ table.name }}` table contains information about journal runs.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Journal-Runs
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: Payment
+ description: 'The `payment` table contains info about customer payments.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Payments
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: PaymentRun
+ description: 'The `{{ table.name }}` table contains information about payment runs.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Payment-Runs
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: ProcessedUsage
+ description: 'The `{{ table.name }}` table contains information about usage.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Accounts
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: Product
+ description: 'The `{{ table.name }}` table contains info about your company''s product
+ offerings.
+
+ '
+ links:
+ doc-link: http://knowledgecenter.zuora.com/DC_Developers/SOAP_API/E1_SOAP_API_Object_Reference/Product#Field_Descriptions
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: ProductRatePlan
+ description: 'The `{{ table.name }}` table contains info about product rate plans,
+ or the part of a product that customers can subscribe to.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Product-Rate-Plans
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: ProductRatePlanCharge
+ description: 'The `{{ table.name }}` table contains info about product rate plan
+ charges, which are a charge model or set of fees associated with a product rate
+ plan.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Product-Rate-Plan-Charges
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: ProductRatePlanChargeTier
+ description: 'The `{{ table.name }}` table contains pricing info for product rate
+ plan charges.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Product-Rate-Plan-Charge-Tiers
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: RatePlan
+ description: 'The `{{ table.name }}` table contains info about rate plans, which
+ is a price or collection of prices for services.
+
+
+ #### Custom fields {#rate-plan-custom-fields}
+
+
+ In addition to the attributes listed below, our {{ integration.display_name }}
+ integration will also replicate any custom fields.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Rate-Plans
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: RatePlanChargeTier
+ description: 'The `{{ table.name }}` table contains pricing info for rate plan charges.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Rate-Plan-Charge-Tiers
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: Refund
+ description: 'The `{{ table.name }}` table contains info about refunds, or transactions
+ where money is returned to a customer.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Refunds
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: RevenueChargeSummaryItem
+ description: 'The `{{ table.name }}` table contains information about [charge revenue
+ summaries](https://knowledgecenter.zuora.com/CC_Finance/Revenue_Recognition/G_Revenue_Schedules/M_Charge_Revenue_Summary){:target="new"},
+ which are summaries of all revenue distributions associated with a subscription
+ charge.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#operation/GET_CRSByCRSNumber
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: RevenueEventItem
+ description: 'The `{{ table.name }}` table contains information about revenue events.
+ A revenue event is a change to a revenue schedule, such as creating the initial
+ schedule, canceling an invoice, or recognizing an undistributed amount.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Revenue-Events
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: RevenueEventItemInvoiceItem
+ description: 'The `{{ table.name }}` table contains information about revenue event
+ items that are associated with invoice items.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Revenue-Events
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: RevenueEventItemInvoiceItemAdjustment
+ description: 'The `{{ table.name }}` table contains information about revenue event
+ items that are associated with invoice item adjustments.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Revenue-Events
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: RevenueScheduleItem
+ description: 'The `{{ table.name }}` table contains information about revenue schedules.
+ A [revenue schedule](https://knowledgecenter.zuora.com/CC_Finance/Revenue_Recognition/G_Revenue_Schedules){:target="new"}
+ represents how revenue amounts from single charges are distributed over time and
+ recognized in accounting periods.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Revenue-Items
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: RevenueScheduleItemInvoiceItem
+ description: 'The `{{ table.name }}` table contains information about revenue schedule
+ item - invoice items.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Revenue-Items
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: RevenueScheduleItemInvoiceItemAdjustment
+ description: 'The `{{ table.name }}` table contains information about revenue schedule
+ item - invoice items.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Revenue-Items
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
+- name: Subscription
+ description: 'The `{{ table.name }}` table contains info about your products and/or
+ services with recurring charges.
+
+
+ ### Custom Attributes {#custom-subscription-fields}
+
+
+ If your {{ integration.display_name }} subscription records contain custom attributes,
+ Stitch will replicate them.
+
+ '
+ links:
+ doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Subscriptions
+ table-details:
+ replication-method: Key-based Incremental
+ primary-key: id
+ replication-key: updatedDate
diff --git a/_data/taps/snapshot-attributes.yml b/_data/taps/snapshot-attributes.yml
index 6aec77ae7..db3c03e4b 100644
--- a/_data/taps/snapshot-attributes.yml
+++ b/_data/taps/snapshot-attributes.yml
@@ -32,15 +32,18 @@
## Used in: _includes/integrations/templates/schemas/table-snapshot.html
field-names:
- replication-method: |
- Replication Method {{ info-icon | flatify }}
+ replication-method: |
+ Replication Method {{ info-icon | replace:"TOOLTIP","Defines how Stitch extracts data from a source. Click here for more details." }}
primary-key: "Primary Key {{ ui-icon.primary-key | flatify }}"
+ primary-keys: "Primary Keys {{ ui-icon.primary-key | flatify }}"
replication-key: "Replication Key {{ ui-icon.replication-key | flatify }}"
- loading-behavior: "Loading Behavior"
- api-endpoint: "API endpoint {{ info-icon | flatify }}"
- parent-table: "Parent table {{ info-icon | flatify }}"
- doc-link: "Official docs {{ info-icon | flatify }}"
-
+ replication-keys: "Replication Keys {{ ui-icon.replication-key | flatify }}"
+ loading-behavior: |
+ Loading Behavior {{ info-icon | replace:"TOOLTIP","Defines how Stitch loads data into a destination. Click here for more details." }}
+ api-endpoint: "API endpoint"
+ api-method: "{{ integration.display_name }} API method"
+ doc-link: "{{ integration.display_name }} documentation"
+ singer-schema: "{{ table.name }} schema on GitHub"
field-values:
replication-method: "{{ table.replication-method | flatify }}"
@@ -59,15 +62,9 @@ field-values:
api-endpoint: |
{{ table.api-method.name }}
- parent-table: |
- {% assign parent-table = schema | find:"key",table.dependent-table-key %}
-
- {{ parent-table.name }}
-
doc-link: |
Official Docs
-
full-table:
- name: "replication-method"
- name: "primary-key"
@@ -88,8 +85,5 @@ loading-field:
api-field:
- name: "api-endpoint"
-parent-table:
- - name: "parent-table"
-
doc-link-field:
- name: "doc-link"
\ No newline at end of file
diff --git a/_includes/integrations/templates/schemas/foreign-keys.html b/_includes/integrations/templates/schemas/foreign-keys.html
index 6e279c6c5..7bba68831 100644
--- a/_includes/integrations/templates/schemas/foreign-keys.html
+++ b/_includes/integrations/templates/schemas/foreign-keys.html
@@ -1,80 +1,37 @@
-
-
-
-
- {% assign integration-references = site.integration-schemas | where:"tap-reference",integration.name %}
-
-
- {% assign references = integration-references | where:"version",integration.this-version %}
-
-
-
-{% assign foreign-key-id = attribute.foreign-key-id %}
-{% assign attribute-table = attribute.table %}
-
-{% assign attribute-key = attribute %}
-
-{% for reference in references %}
- {% for key in reference.foreign-keys %}
- {% if key.id == attribute-key.foreign-key-id %}
- {% if key.all-foreign-keys %}
-
-
- Reference:
-
-
- {% for foreign-key in key.all-foreign-keys %}
- -
-
- {% if foreign-key.subattribute %}
- {%- capture full-table-name -%}
- {{ foreign-key.subattribute | prepend: "." | prepend: foreign-key.table }}
- {%- endcapture -%}
-
- {% elsif foreign-key.subtable %}
- {%- capture full-table-name -%}
- {{ foreign-key.table | append: "." | append: foreign-key.subtable }}
- {%- endcapture -%}
-
- {% else %}
- {%- capture full-table-name -%}
- {{ foreign-key.table }}
- {%- endcapture -%}
- {% endif %}
-
- {{ full-table-name | append: "." }}
-
- {%- if foreign-key.join-on -%}
- {{ foreign-key.join-on | strip }}
- {%- else -%}
- {{ key.attribute | strip }}
- {%- endif -%}
-
-
+{% assign join = fk-table.join %}
+
+
+
+
+
+
+
+
+
+
+ Join {{ table.name }} with |
+ on |
+
+ {% for t in join %}
+
+
+ {{t.table-name}}
+ |
+
+ {% for key in t.keys %}
+ {{ table.name }}.{{key.key}} = {{t.table-name}}.{{key.foreign-key}}
{% endfor %}
-
+ |
+
- {% else %}
+ {% endfor %}
-
- Reference:
-
- {{ key.table }}.{{ key.join-on }}
-
- {% endif %}
- {% endif %}
- {% endfor %}
-{% endfor %}
\ No newline at end of file
+
+
+
+
+
\ No newline at end of file
diff --git a/_includes/integrations/templates/schemas/saas-table-sections.html b/_includes/integrations/templates/schemas/saas-table-sections.html
index 99419e884..aa914c100 100644
--- a/_includes/integrations/templates/schemas/saas-table-sections.html
+++ b/_includes/integrations/templates/schemas/saas-table-sections.html
@@ -57,7 +57,7 @@ {{ subsection.title | flatify }}
{% endif %}
{% else %}
{% unless integration.exclude-table-schemas == true %}
- {% include integrations/templates/schemas/table-schemas.html %}
+ {% include integrations/templates/schemas/schemas.html %}
{% endunless %}
{% endif %}
diff --git a/_includes/integrations/templates/schemas/schemas-table.html b/_includes/integrations/templates/schemas/schemas-table.html
new file mode 100644
index 000000000..8f23c06d3
--- /dev/null
+++ b/_includes/integrations/templates/schemas/schemas-table.html
@@ -0,0 +1,134 @@
+{% assign integration = page %}
+
+{% capture array-note %}attributes will be denested into a subtable.{% endcapture %}
+
+{% capture object-note %}attributes in this object will be flattened into the table.{% endcapture %}
+
+{% capture nested-data-tooltip-content %}This is a nested data structure. If your destination doesn't natively support nested data, TYPE NOTE Learn more.{% endcapture %}
+
+
+
+
+ {% for property in include.jsondata %}
+ {% assign name = property | first %}
+ {% assign data = property | last %}
+ {% if data.type or data.anyOf %}
+
+
+
+
+ {{ name }}
+
+ {% if include.level == "main" %}
+ {% if name == table.table-details.primary-key or table.table-details.primary-keys contains name %}
+ {{ ui-icon.primary-key | flatify }}
+ {% endif %}
+ {% if name == table.table-details.replication-key or table.table-details.replication-keys contains name %}
+ {{ ui-icon.replication-key | flatify }}
+ {% endif %}
+ {% endif %}
+
+
+ {% assign types = data.type %}
+ {% assign types_string = types | join: " " %}
+ {% assign new_types = types_string | remove: "null" | strip | replace: " ", " " | split: " " | join: ", " %}
+
+
+ {{ new_types | upcase }}
+
+ {% if new_types contains 'object' or new_types contains 'array' %}
+ {% if new_types contains 'object' %}
+ {% capture nested-data-tooltip %}{{ nested-data-tooltip-content | replace:"TYPE NOTE", object-note }}{% endcapture %}
+ {% elsif new_types contains 'array' %}
+ {% capture nested-data-tooltip %}{{ nested-data-tooltip-content | replace:"TYPE NOTE", array-note }}{% endcapture %}
+ {% endif %}
+ {{ plus-icon | replace:"TOOLTIP",nested-data-tooltip }}
+ {% endif %}
+
+
+ {% if data.anyOf %}
+ {% for item in data.anyOf %}
+
+ {% assign anyof_types = item.type %}
+ {% assign anyof_types_string = item.type | join: " " %}
+
+ {% for anyof_type in anyof_types %}
+ {% if anyof_type != "null" %}
+
+ {{ anyof_type | upcase }}
+
+ {% if anyof_type contains 'object' or anyof_type contains 'array' %}
+ {% if anyof_type contains 'object' %}
+ {% capture nested-data-tooltip %}{{ nested-data-tooltip-content | replace:"TYPE NOTE", object-note }}{% endcapture %}
+ {% elsif anyof_type contains 'array' %}
+ {% capture nested-data-tooltip %}{{ nested-data-tooltip-content | replace:"TYPE NOTE", array-note }}{% endcapture %}
+ {% endif %}
+ {{ plus-icon | replace:"TOOLTIP",nested-data-tooltip }}
+ {% endif %}
+
+
+
+ {% if item.properties or item.items.properties %}
+ {% if item.properties.size > 0 or item.items.properties.size > 0 %}
+ {% capture attribute-id %}{% increment counter %}{% endcapture %}
+
+ {% assign full-id = name | append: "--" | append: attribute-id %}
+
+
+
+
+
+
+ {% if data.properties %}
+ {% include integrations/templates/schemas/schemas-table.html jsondata=item.properties level="nested" %}
+ {% else %}
+ {% if item.items.properties %}
+ {% include integrations/templates/schemas/schemas-table.html jsondata=item.items.properties level="nested"%}
+ {% else %}
+ {% include integrations/templates/schemas/schemas-table.html jsondata=item level="nested"%}
+ {% endif %}
+ {% endif %}
+
+
+
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% endfor %}
+ {% endif %}
+
+ {% if data.properties or data.items.properties %}
+ {% if data.properties.size > 0 or data.items.properties.size > 0 %}
+ {% capture attribute-id %}{% increment counter %}{% endcapture %}
+ {% assign full-id = name | append: "--" | append: attribute-id %}
+
+
+
+
+
+
+ {% if data.properties %}
+ {% include integrations/templates/schemas/schemas-table.html jsondata=data.properties level="nested" %}
+ {% else %}
+ {% if data.items.properties %}
+ {% include integrations/templates/schemas/schemas-table.html jsondata=data.items.properties level="nested"%}
+ {% else %}
+ {% include integrations/templates/schemas/schemas-table.html jsondata=data level="nested"%}
+ {% endif %}
+ {% endif %}
+
+
+
+ {% endif %}
+ {% endif %}
+ |
+
+ {% endif %}
+ {% endfor %}
+
+
\ No newline at end of file
diff --git a/_includes/integrations/templates/schemas/schemas.html b/_includes/integrations/templates/schemas/schemas.html
new file mode 100644
index 000000000..b3749205e
--- /dev/null
+++ b/_includes/integrations/templates/schemas/schemas.html
@@ -0,0 +1,133 @@
+{% include misc/icons.html %}
+{% include misc/data-files.html %}
+
+{% assign integration = page %}
+{% assign version = integration.this-version | prepend: "v" %}
+
+{% assign filename = integration.name | append: "-" | append: version | append: "-tables" %}
+{% assign tables = site.data.taps.schemas.[integration.name].[version].[filename].tables %}
+
+{% assign fk-filename = integration.name | append: "-" | append: version | append: "-foreign-keys" %}
+{% assign fk-tables = site.data.taps.schemas.[integration.name].[version].[fk-filename].tables %}
+
+{% if integration.permalink contains "saas" %}
+{% capture schemas-and-destination-loading %}
+Depending on your destination, table and column names may not appear as they are outlined below.
+
+For example: Object names are lowercased in Redshift (`CusTomERs` > `customers`), while case is maintained in PostgreSQL destinations (`CusTomERs` > `CusTomERs`). Refer to the [Loading Guide]({{ link.destinations.loading.overview | prepend: site.baseurl }}) for your destination for more info.
+{% endcapture %}
+
+{% include note.html first-line="**Table and column names in your destination**" content=schemas-and-destination-loading %}
+{% endif %}
+
+
+{% for table in tables %}
+
+ {% if table.status != "not found" %}
+
+ {% if site.data.taps.schemas.[integration.name].[version].json.[table.name].properties %}
+
+ {% assign data = site.data.taps.schemas.[integration.name].[version].json.[table.name].properties %}
+
+
+
+
+
{{ table.name }}
+
{{ table.description | flatify | markdownify }}
+
+
+ {% if table.table-details.parent-table or table.table-details.parent-tables %}
+
+ {% if table.table-details.parent-table %}
+
+ Note: In order to replicate this table, you must also set the {{ table.table-details.parent-table }} table to replicate.
+
+ {% elsif table.table-details.parent-tables %}
+
+ Note: In order to replicate this table, you must also set the following tables to replicate:
+
+ {% for parent-table in table.table-details.parent-tables%}
+ - {{ parent-table }}
+ {% endfor %}
+
+
+ {% endif %}
+ {% endif %}
+
+
+
+ {% for field in table.table-details %}
+ {% assign field-key = field[0] %}
+ {% assign field-value = field[1] %}
+ {% assign value-count = field-value | size %}
+ {% assign field-name = site.data.taps.snapshot-attributes.field-names.[field-key] | flatify | markdownify | strip %}
+
+
+ {{ field-name }}
+ |
+
+ {% if value-count > 1 %}
+ {% for value in field-value %}
+ {{ value | flatify | markdownify }}
+ {% endfor %}
+ {% else %}
+ {{ field-value }}
+ {% endif %}
+ |
+
+ {% endfor %}
+
+
+ {% if table.links %}
+
+ Useful links
+ |
+
+ {% for link in table.links %}
+ {% assign key = link[0] %}
+ {% assign url = link[1] %}
+ {% assign text = site.data.taps.snapshot-attributes.field-names.[key] | flatify | strip %}
+
+
+ {{ text }}
+
+
+ {% endfor %}
+ |
+ {% endif %}
+
+
+
+ {% for fk-table in fk-tables %}
+ {% if fk-table.table-name == table.name %}
+ {% include integrations/templates/schemas/foreign-keys.html %}
+ {% endif %}
+ {% endfor %}
+
+
+
+ {% if table.notes %}
+ {{ table.notes | flatify | markdownify }}
+ {% endif %}
+
+
+
+
+
+
+
+ {% include integrations/templates/schemas/schemas-table.html jsondata=data table-data=table level="main" %}
+
+
+
+ {% endif %}
+
+ {% endif %}
+
+{% endfor %}
+
+
\ No newline at end of file
diff --git a/_includes/integrations/templates/schemas/table-attributes.html b/_includes/integrations/templates/schemas/table-attributes.html
deleted file mode 100644
index cb331dd07..000000000
--- a/_includes/integrations/templates/schemas/table-attributes.html
+++ /dev/null
@@ -1,112 +0,0 @@
-
-
-
-
-
-
- {% for attribute in include.table %}
-
-
- {% if attribute.name %}
-
-
- {% if attribute.doc-link %}
- {{ attribute.name | flatify }}
- {% else %}
- {{ attribute.name | flatify }}
- {% endif %}
-
-
- {% if attribute.primary-key == true %}
- {{ ui-icon.primary-key | flatify }}
- {% endif %}
-
-
- {% if attribute.replication-key == true %}
- {{ ui-icon.replication-key | flatify }}
- {% endif %}
-
- {% if attribute.subattributes %}
- {% if attribute.type %}
- {% if attribute.type == 'object' %}
- {% capture nested-data-note %}
- attributes in this object will be flattened into the table.
- {% endcapture %}
-
- {% elsif attribute.type == 'array' %}
- {% capture nested-data-note %}
- attributes will be denested into a subtable.
- {% endcapture %}
- {% endif %}
-
-
- {% capture nested-data-tooltip %}This is a nested data structure. If your destination doesn't natively support nested data, {{ nested-data-note | strip }} Learn more.{% endcapture %}
-
- {{ plus-icon | replace:"TOOLTIP",nested-data-tooltip }}
-
- {% endif %}
- {% endif %}
-
- {{ attribute.type | upcase }}
- {% endif %}
-
-
- {{ attribute.description | flatify | markdownify }}
-
-
- {% if attribute.foreign-key-id %}
- {% include integrations/templates/schemas/foreign-keys.html %}
- {% endif %}
-
-
-
-
- {% if attribute.subattributes %}
- {% capture attribute-id %}{% increment counter %}{% endcapture %}
-
- {% assign full-id = table.name | append: "--" | append: attribute.name | append: "--" | append: attribute-id %}
-
-
-
-
-
-
- {% include integrations/templates/schemas/table-attributes.html table=attribute.subattributes %}
-
-
- {{ table.name }} (table), {{ attribute.name }} (attribute)
-
-
- {% endif %}
- |
-
- {% endfor %}
-
-
\ No newline at end of file
diff --git a/_includes/integrations/templates/schemas/table-schemas.html b/_includes/integrations/templates/schemas/table-schemas.html
deleted file mode 100755
index 11beb6628..000000000
--- a/_includes/integrations/templates/schemas/table-schemas.html
+++ /dev/null
@@ -1,94 +0,0 @@
-{% assign integration = page %}
-{% include misc/data-files.html %}
-
-{% if integration.this-version %}
-
- {% assign integration-tables = site.integration-schemas | where:"tap",integration.name %}
-
-
- {% assign schema = integration-tables | where:"version",integration.this-version | sort_natural:"name" %}
-
-{% else %}
- {% assign schema = site.integration-schemas | where:"tap",integration.name | sort_natural:"name" %}
-{% endif %}
-
-
-{% if integration.permalink contains "saas" %}
-{% capture schemas-and-destination-loading %}
-Depending on your destination, table and column names may not appear as they are outlined below.
-
-For example: Object names are lowercased in Redshift (`CusTomERs` > `customers`), while case is maintained in PostgreSQL destinations (`CusTomERs` > `CusTomERs`). Refer to the [Loading Guide]({{ link.destinations.loading.overview | prepend: site.baseurl }}) for your destination for more info.
-{% endcapture %}
-
-{% include note.html first-line="**Table and column names in your destination**" content=schemas-and-destination-loading %}
-{% endif %}
-
-
-{% for table in schema %}
-
-
-
-
{{ table.name }}
-
-
-
-
-
-
-
- {% include integrations/templates/schemas/table-snapshot.html %}
-
-
- {{ table.description | flatify | markdownify }}
-
-
- {% if table.dependent-table-key or table.is-parent-table %}
-
- {% if table.dependent-table-key %}
-
- Note: In order to replicate this table, you must also set the {{ parent-table.name }} table to replicate.
-
- {% endif %}
-
-
- {% if table.is-parent-table %}
- {% assign child-tables = schema | where:"dependent-table-key",table.key | sort_natural:"name" %}
-
-
- Note: This table must be selected to replicate the following tables:
-
-
-
- {% endif %}
- {% endif %}
-
- {% if table.notes %}
- {{ table.notes | flatify | markdownify }}
- {% endif %}
-
-
-
-
-
-
- {% include integrations/templates/schemas/table-attributes.html table=table.attributes %}
-
-
-
-
-
-{% endfor %}
\ No newline at end of file
diff --git a/_includes/integrations/templates/schemas/table-snapshot.html b/_includes/integrations/templates/schemas/table-snapshot.html
deleted file mode 100644
index 22284037c..000000000
--- a/_includes/integrations/templates/schemas/table-snapshot.html
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
- {% assign rep-method-key = table.replication-method | slugify %}
-
-
- {% assign rep-method-fields = site.data.taps.snapshot-attributes[rep-method-key] %}
-
-
- {% if table.api-method.name %}
- {% assign api-field = site.data.taps.snapshot-attributes.api-field %}
- {% else %}
- {% assign api-field = site.data.taps.snapshot-attributes.doc-link-field %}
- {% endif %}
-
-
- {% if table.loading-behavior %}
- {% assign loading-field = site.data.taps.snapshot-attributes.loading-field %}
- {% else %}
- {% assign loading-field = null | compact %}
- {% endif %}
-
- {% if table.dependent-table-key %}
- {% assign parent-table-field = site.data.taps.snapshot-attributes.parent-table %}
- {% else %}
- {% assign parent-table-field = null | compact %}
- {% endif %}
-
-
- {% assign snapshot-fields = rep-method-fields | concat: api-field | concat: parent-table-field | concat: loading-field %}
-
-
- {% include integrations/templates/schemas/table-keys.html key="primary-key" %}
-
-
- {% if rep-method-key != 'full-table' %}
- {% include integrations/templates/schemas/table-keys.html key="replication-key" %}
- {% endif %}
-
-
-
-
- {% for field in snapshot-fields %}
- {% assign field-index = forloop.index | modulo:2 %}
-
- {% if field-index == 1 %}
-
- {% endif %}
-
- {{ site.data.taps.snapshot-attributes.field-names[field.name] | flatify | strip }}:
- |
- {% if field-index == 1 and forloop.last == true %}
-
- {% else %}
- |
- {% endif %}
- {{ site.data.taps.snapshot-attributes.field-values[field.name] | flatify | markdownify | strip }}
- |
- {% if field-index == 0 %}
-
- {% endif %}
- {% endfor %}
-
\ No newline at end of file
diff --git a/_integration-schemas/activecampaign/v1/foreign-keys.md b/_integration-schemas/activecampaign/v1/foreign-keys.md
deleted file mode 100644
index 87f0310eb..000000000
--- a/_integration-schemas/activecampaign/v1/foreign-keys.md
+++ /dev/null
@@ -1,346 +0,0 @@
----
-# -------------------------- #
-# USING THIS TEMPLATE #
-# -------------------------- #
-
-## NEED HELP USING THIS TEMPLATE? SEE:
-## https://docs-about-stitch-docs.netlify.com/reference/integration-templates/saas-foreign-keys/
-## FOR INSTRUCTIONS & REFERENCE INFO
-
-tap-reference: "activecampaign"
-
-version: "1"
-
-foreign-keys:
- - id: "custom-field-id"
- table: "account_custom_fields"
- attribute: "id"
- all-foreign-keys:
- - table: "account_custom_fields"
- join-on: "id"
- - table: "account_custom_field_values"
- join-on: "custom_field_id"
-
- - id: "address-id"
- table: "addresses"
- attribute: "id"
- all-foreign-keys:
- - table: "addresses"
- join-on: "id"
- - table: "campaigns"
- join-on: "addressid"
- - table: "forms"
- join-on: "addressid"
-
- - id: "campaign-id"
- table: "campaigns"
- attribute: "id"
- all-foreign-keys:
- - table: "campaigns"
- join-on: "id"
- - table: "campaign_links"
- join-on: "campaignid"
- - table: "bounce_logs"
- join-on: "campaignid"
- - table: "campaign_lists"
- join-on: "campaignid"
- - table: "campaign_messages"
- join-on: "campaignid"
- - table: "contact_lists"
- join-on: "campaign"
-
- - id: "deal-custom-field-id"
- table: "deal_custom_fields"
- attribute: "id"
- all-foreign-keys:
- - table: "deal_custom_fields"
- join-on: "id"
- - table: "deal_custom_field_values"
- join-on: "custom_field_id"
-
- - id: "deal-id"
- table: "deals"
- attribute: "id"
- all-foreign-keys:
- - table: "deals"
- join-on: "id"
- - table: "deal_custom_field_values"
- join-on: "deal_id"
- - table: "contact_deals"
- join-on: "deal"
- - table: "forms"
- join-on: "deals"
- - table: "deal_activities"
- join-on: "deal"
- - table: "email_activities"
- join-on: "deal"
- - table: "contact_emails"
- join-on: "deal"
-
- - id: "stage-id"
- table: "deal_stages"
- attribute: "id"
- all-foreign-keys:
- - table: "deal_stages"
- join-on: "id"
- - table: "deals"
- join-on: "stage"
- - table: "deal_groups"
- join-on: "stages"
- - table: "deal_activities"
- join-on: "stage"
-
- - id: "pipeline-id"
- table: "deal_groups"
- attribute: "id"
- all-foreign-keys:
- - table: "deal_groups"
- join-on: "id"
- - table: "deals"
- join-on: "group"
- - table: "deal_stages"
- join-on: "group"
- - table: "deal_group_users"
- join-on: "deal_group"
-
- - id: "account-id"
- table: "accounts"
- attribute: "id"
- all-foreign-keys:
- - table: "accounts"
- join-on: "id"
- - table: "deals"
- join-on: "account"
- - table: "contact_emails"
- join-on: "account"
- - table: "email_activities"
- join-on: "account"
- - table: "account_contacts"
- join-on: "account"
- - table: "account_custom_field_values"
- join-on: "account_id"
-
- - id: "contact-id"
- table: "contacts"
- attribute: "id"
- all-foreign-keys:
- - table: "contacts"
- join-on: "id"
- - table: "deals"
- join-on: "contact"
- - table: "forms"
- join-on: "contacts"
- - table: "bounce_logs"
- join-on: "contact"
- - table: "contact_data"
- join-on: "contact"
- - table: "contact_emails"
- join-on: "contact"
- - table: "contact_lists"
- join-on: "contact"
- - table: "contact_tags"
- join-on: "contact"
- - table: "contact_conversions"
- join-on: "contact"
- - table: "email_activities"
- join-on: "contact"
- - table: "account_contacts"
- join-on: "contact"
- - table: "contact_automations"
- join-on: "contact"
- - table: "contact_custom_field_values"
- join-on: "contact"
- - table: "contact_deals"
- join-on: "contact"
-
- - id: "connection-id"
- table: "ecommerce_connections"
- attribute: "id"
- all-foreign-keys:
- - table: "ecommerce_connections"
- join-on: "id"
- - table: "ecommerce_customers"
- join-on: "connectionid"
- - table: "ecommerce_orders"
- join-on: "connectionid"
- - table: "ecommerce_orders"
- join-on: "connectionid"
- - table: "ecommerce_order_products"
- join-on: "connectionid"
- - table: "ecommerce_order_activities"
- join-on: "connectionid"
-
- - id: "customer-id"
- table: "ecommerce_customers"
- attribute: "id"
- all-foreign-keys:
- - table: "ecommerce_customers"
- join-on: "id"
- - table: "ecommerce_orders"
- join-on: "customer"
- - table: "ecommerce_order_activities"
- join-on: "customerid"
-
- - id: "order-id"
- table: "ecommerce_orders"
- attribute: "id"
- all-foreign-keys:
- - table: "ecommerce_orders"
- join-on: "id"
- - table: "ecommerce_order_products"
- join-on: "orderid"
- - table: "ecommerce_order_activities"
- join-on: "orderid"
- - table: "contact_custom_field_options"
- join-on: "orderid"
- - table: "deal_stages"
- join-on: "order"
-
- - id: "user-id"
- table: "users"
- attribute: "id"
- all-foreign-keys:
- - table: "users"
- join-on: "id"
- - table: "forms"
- join-on: "userid"
- - table: "lists"
- join-on: "userid"
- - table: "messages"
- join-on: "userid"
- - table: "saved_responses"
- join-on: "last_sent_user_id"
- - table: "tasks"
- join-on: "user"
- - table: "templates"
- join-on: "userid"
- - table: "activities"
- join-on: "userid"
- - table: "campaign_lists"
- join: "userid"
- - table: "configs"
- join-on: "userid"
- - table: "contact_emails"
- join-on: "userid"
- - table: "deal_activities"
- join-on: "userid"
- - table: "deal_group_users"
- join-on: "user"
- - table: "email_activities"
- join-on: "userid"
- - table: "sms"
- join-on: "userid"
- - table: "automations"
- join-on: "userid"
- - table: "calendars"
- join-on: "userid"
- - table: "campaigns"
- join-on: "userid"
-
- - id: "task-type-id"
- table: "task_types"
- attribute: "id"
- all-foreign-keys:
- - table: "task_types"
- join-on: "id"
- - table: "tasks"
- join-on: "deal_task_type"
-
- - id: "list-id"
- table: "lists"
- attribute: "id"
- all-foreign-keys:
- - table: "lists"
- join-on: "id"
- - table: "webhooks"
- join-on: "listid"
- - table: "campaign_lists"
- join-on: "listid"
- - table: "contact_lists"
- join-on: "list"
-
- - id: "message-id"
- table: "messages"
- attribute: "id"
- all-foreign-keys:
- - table: "messages"
- join-on: "id"
- - table: "bounce_logs"
- join-on: "messageid"
- - table: "campaign_messages"
- join-on: "messageid"
- - table: "contact_emails"
- join-on: "messageid"
- - table: "contact_lists"
- join-on: "message"
- - table: "campaign_links"
- join-on: "messageid"
-
- - id: "tag-id"
- table: "tags"
- attribute: "id"
- all-foreign-keys:
- - table: "tags"
- join-on: "id"
- - table: "contact_tags"
- join-on: "tag"
-
- - id: "conversion-id"
- table: "conversions"
- attribute: "id"
- all-foreign-keys:
- - table: "conversions"
- join-on: "id"
- - table: "contact_conversions"
- join-on: "conversion"
- - table: "conversion_triggers"
- join-on: "conversion"
-
- - id: "conversion-trigger-id"
- table: "conversion_triggers"
- attribute: "id"
- all-foreign-keys:
- - table: "conversion_triggers"
- join-on: "id"
- - table: "contact_conversions"
- join-on: "conversiontrigger"
-
- - id: "automation-id"
- table: "automations"
- attribute: "id"
- all-foreign-keys:
- - table: "automations"
- join-on: "id"
- - table: "deal_activities"
- join-on: "automation"
- - table: "goals"
- join-on: "automation"
- - table: "site_messages"
- join-on: "automation"
- - table: "sms"
- join-on: "automation"
- - table: "automation_blocks"
- join-on: "automation"
- - table: "campaigns"
- join-on: "automation"
- - table: "contact_automations"
- join-on: "automation"
-
- - id: "segment-id"
- table: "segments"
- attribute: "id"
- all-foreign-keys:
- - table: "segments"
- join-on: "id"
- - table: "campaigns"
- join-on: "segmentid"
-
- - id: "form-id"
- table: "forms"
- attribute: "id"
- all-foreign-keys:
- - table: "form"
- join-on: "id"
- - table: "contact_lists"
- join-on: "form"
----
\ No newline at end of file
diff --git a/_integration-schemas/bing-ads/v1/accounts.md b/_integration-schemas/bing-ads/v1/accounts.md
deleted file mode 100644
index af4b2ca72..000000000
--- a/_integration-schemas/bing-ads/v1/accounts.md
+++ /dev/null
@@ -1,126 +0,0 @@
----
-tap: "bing-ads"
-version: "1"
-
-name: "accounts"
-doc-link: https://docs.microsoft.com/en-us/bingads/customer-management-service/account
-singer-schema:
-description: |
- The `accounts` table contains high-level information about each of the ad accounts you selected during setup. Each row in this table corresponds to a single account.
-
- [This is a **Core Object** table](#replication).
-
-replication-method: "Key-based Incremental"
-api-method:
- name:
- doc-link: https://docs.microsoft.com/en-us/bingads/customer-management-service/account
-
-attributes:
- - name: "id"
- type: "integer"
- primary-key: true
- description: "The account ID."
- foreign-key-id: "account-id"
-
- - name: "lastModifiedTime"
- type: "date-time"
- primary-key: true
- replication-key: true
- description: |
- The time (in UTC) the account was last updated.
-
- **Note**: The date and time value reflects the date and time at the Bing server, not the client.
-
- - name: "accountFinancialStatus"
- type: "string"
- description: "The financial status of the account."
-
- - name: "accountLifeCycleStatus"
- type: "string"
- description: "The status of the account."
-
- - name: "accountType"
- type: "string"
- description: "The type of the account."
-
- - name: "billToCustomerId"
- type: "integer"
- description: "The ID of the customer that is billed for the charges that the account generates. This is either the reseller that manages the account on behalf of the owner or the ID of the customer that owns the account."
-
- - name: "countryCode"
- type: "string"
- description: "The code of the country/region in which the account operates. See [Microsoft's documentation](https://docs.microsoft.com/en-us/bingads/guides/ad-languages) for a list of country code values."
-
- - name: "currencyType"
- type: "string"
- description: "The type of currency used to settle the account."
-
- - name: "forwardCompatibilityMap"
- type: "array"
- description: "Details about the forward compatibility settings for the account."
- doc-link: https://docs.microsoft.com/en-us/bingads/customer-management-service/keyvaluepairofstringstring
- subattributes:
- - name: "keyValuePairOfStringString"
- type: "array"
- description: "Key and value pairs for the account's forward compatibility settings."
- subattributes:
- - name: "key"
- type: "string"
- description: "The name of the setting."
-
- - name: "value"
- type: "string"
- description: "The value of the setting."
-
- - name: "language"
- type: "string"
- description: "The language used to render the invoice for the account, if invoice is used as the payment method."
-
- - name: "lastModifiedByUserId"
- type: "integer"
- description: "The ID of the user who last updated the account's information."
-
- - name: "name"
- type: "string"
- description: "The name of the account."
-
- - name: "number"
- type: "string"
- description: "The account number generated by Bing Ads used to identify the account in the Bing Ads web app. This value is alphanumeric."
-
- - name: "parentCustomerId"
- type: "integer"
- description: "The ID of the customer that owns the account."
-
- - name: "pauseReason"
- type: "integer"
- description: |
- Indicates the reason the account is paused. Possible values include:
-
- - `1` - A user paused the account
- - `2` - The billing service paused the account
- - `4` - The user and billing service paused the account
-
- - name: "paymentMethodId"
- type: "integer"
- description: "The ID of the payment instrument used to settle the account."
-
- - name: "paymentMethodtype"
- type: "string"
- description: "The type of payment instrument used to settle the account."
-
- - name: "primaryUserId"
- type: "integer"
- description: "The ID of the account manager who is primarily responsible for managing the account. By default, this value is set to the reseller's user ID."
-
- - name: "timestamp"
- type: "timestamp"
- description: "The timestamp value used internally by Bing Ads to reconcile updates between account update and delete operations."
-
- - name: "timezone"
- type: "string"
- description: |
- The default timezone value to use for campaigns in this account.
-
- If left unspecified when the account is created, this value will default to `PacificTimeUSCanadaTijuana`.
----
\ No newline at end of file
diff --git a/_integration-schemas/bing-ads/v1/ad_groups.md b/_integration-schemas/bing-ads/v1/ad_groups.md
deleted file mode 100644
index c9b020253..000000000
--- a/_integration-schemas/bing-ads/v1/ad_groups.md
+++ /dev/null
@@ -1,140 +0,0 @@
----
-tap: "bing-ads"
-version: "1"
-
-name: "ad_groups"
-doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/adgroup
-singer-schema:
-description: |
- The `ad_groups` table contains info about the ad groups associated with the campaigns in your Bing Ads account.
-
- [This is a **Core Object** table](#replication).
-
-replication-method: "Full Table"
-
-api-method:
- name: getAdGroupsbyCampaignId
- doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/getadgroupsbycampaignid
-
-attributes:
- - name: "id"
- type: "integer"
- primary-key: true
- description: "The ad group ID."
- foreign-key-id: "ad-group-id"
-
- - name: "adDistribution"
- type: "string"
- description: "Determines whether the ads within the ad group will be displayed on the content distribution channel, search distribution channel, or both."
-
- - name: "adRotation"
- type: "string"
- description: |
- Determines how often ads in the ad group show in relation to each other. If there are multiple ads within an ad group, the ads will rotate because only one ad from your account can show at a time.
-
- Possible values are:
-
- - `OptimizeForClicks` - In this rotation, Bing Ads will predominantly show ads that have the highest click-through rate, or CTR.
- - `RotateAdsEvenly` - In this rotation, Bing ads will rotate between ads on an equal basis.
-
- - name: "biddingScheme"
- type: "string"
- description: "The bid strategy type for how bids are managed."
-
- - name: "contentMatchBid"
- type: "number"
- description: "The bid to use when the keywords that the service extracts from the content page and the ad group's keywords match by using an exact match comparison."
-
- - name: "endDate"
- type: "date-time"
- description: "The date that the ads in the ad group will expire."
-
- - name: "forwardCompatibilityMap"
- type: "array"
- description: "Details about the forward compatibility settings for the ad group."
- doc-link: https://docs.microsoft.com/en-us/bingads/customer-management-service/keyvaluepairofstringstring
- subattributes:
- - name: "keyValuePairOfStringString"
- type: "array"
- description: "Key and value pairs for the ad group's forward compatibility settings."
- subattributes:
- - name: "key"
- type: "string"
- description: "The name of the setting."
-
- - name: "value"
- type: "string"
- description: "The value of the setting."
-
- - name: "language"
- type: "string"
- description: "The language of the ads and keywords in the ad group."
-
- - name: "name"
- type: "string"
- description: "The name of the ad group."
-
- - name: "nativeBidAdjustment"
- type: "integer"
- description: "The percent amount by which to adjust the bid for intent ads above or below the base ad group or keyword bid."
-
- - name: "network"
- type: "string"
- description: |
- The search networks where the ads will display. Possible values are:
-
- - `OwnedAndOperatedAndSyndicatedSearch`
- - `OwnedAndOperatedOnly`
- - `SyndicatedSearchOnly`
-
- - name: "pricingModel"
- type: "string"
- description: |
- The pricing model for the ad group. The only supported pricing model in Bing Ads is based on cost per click, or CPC.
-
- **This field has been deprecated by Bing Ads.**
-
- - name: "remarketingTargetingSetting"
- type: "string"
- description: |
- The targeting setting that is applicable for all audiences, or custom audiences and remarketing lists associated with the ad group.
-
- Possible values are:
-
- - `TargetAndBid`- Ads are shown only to people included in the audience
- - `BidOnly` - Ads can be shown to everyone, but the bid adjustment will apply to people included in the audience
-
- - name: "searchBid"
- type: "number"
- description: "The default bid to use when the user's query and the ad group's keywords match by using either a broad, exact or phrase match comparison."
-
- - name: "settings"
- type: "array"
- description: "Details about the settings applied to the ad group."
- subattributes:
- - name: "type"
- type: "string"
- description: "The type of setting. For example: `ShoppingSetting`"
- doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/setting
-
- - name: "startDate"
- type: "date-time"
- description: "The date that the ads in the ad group can begin serving."
-
- - name: "status"
- type: "string"
- description: |
- The status of the ad group. Possible values are:
-
- - `Active`
- - `Expired`
- - `Paused`
-
- - name: "trackingUrlTemplate"
- type: "string"
- description: "The tracking template to use as a default for all URLs in your ad group."
-
- - name: "urlCustomParameters"
- type: "array"
- description: "The custom collection of key and value parameters for URL tracking."
----
\ No newline at end of file
diff --git a/_integration-schemas/bing-ads/v1/ad_performance_report.md b/_integration-schemas/bing-ads/v1/ad_performance_report.md
deleted file mode 100644
index ece311302..000000000
--- a/_integration-schemas/bing-ads/v1/ad_performance_report.md
+++ /dev/null
@@ -1,54 +0,0 @@
----
-tap: "bing-ads"
-version: "1"
-
-name: "ad_performance_report"
-doc-link: https://docs.microsoft.com/en-us/bingads/reporting-service/adperformancereportcolumn#values
-singer-schema:
-description: |
- The `ad_performance_report` table contains performance info about ads, including clicks and conversions. This data can be used to identify and improve under-performing ads.
-
- [This is a **Report** table](#replication). See the **Replication** section for information on how data is replicated and loaded for this table.
-
-replication-method: "Append-Only (Incremental)"
-api-method:
- name:
- doc-link:
-
-attributes:
- - name: "accountId"
- type: "integer"
- primary-key: true
- description: "The Bing Ads-assigned ID of the account."
- foreign-key-id: "accounts-id"
-
- - name: "{{ system-column.report-date-time }}"
- type: "date-time"
- primary-key: true
- description: "The start time of the Stitch replication job that replicated this record."
-
- - name: "gregorianDate"
- type: "date"
- primary-key: true
- replication-key: true
- description: "The day the record pertains to."
-
- - name: "adGroupId"
- type: "integer"
- description: "The ID of the ad group the ad is a part of."
- foreign-key-id: "ad-group-id"
-
- - name: "adId"
- type: "integer"
- description: "The ad ID."
- foreign-key-id: "ad-id"
-
- - name: "campaignId"
- type: "integer"
- description: "The ID of the campaign the ad is a part of."
- foreign-key-id: "campaign-id"
-
- - name: "Custom Fields"
- description: |
- Columns selected by you. For descriptions of available columns, refer to [Microsoft's documentation]({{ table.doc-link }}).
----
\ No newline at end of file
diff --git a/_integration-schemas/bing-ads/v1/ads.md b/_integration-schemas/bing-ads/v1/ads.md
deleted file mode 100644
index 9b9e2257a..000000000
--- a/_integration-schemas/bing-ads/v1/ads.md
+++ /dev/null
@@ -1,118 +0,0 @@
----
-tap: "bing-ads"
-version: "1"
-
-name: "ads"
-doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/ad
-singer-schema:
-description: |
- The `ads` table contains info about the following ad types:
-
- - `AppInstall`
- - `DynamicSearch`
- - `ExpandedText`
- - `Product`
- - `Text`
- - `Image`
-
- [This is a **Core Object** table](#replication).
-
-replication-method: "Full Table"
-api-method:
- name: "getAdsByAdGroupId"
- doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/getadsbyadgroupid
-
-attributes:
- - name: "id"
- type: "integer"
- primary-key: true
- description: "The ad ID."
- foreign-key-id: "ad-id"
-
- - name: "adFormatPreference"
- type: "string"
- description: |
- Indicates whether or not the ad copy is shown to users as a search or native ad. Search ads tend to be written as a call to action, whereas intent ads are written in a more informational style.
-
- Possible values are:
-
- - `Native` - Ad will be eligible only for the native ad format
- - `All` - Ad will be eligible for both search and native ad formats
-
- - name: "devicePreference"
- type: "integer"
- description: "Determines the device preference for showing the ad."
-
- - name: "editorialStatus"
- type: "string"
- description: "The editorial review status of the ad, which indicates whether the ad is pending review, approved, or disapproved."
-
- - name: "finalAppUrls"
- type: "string"
- description: "The last or final URL where a user who clicks on an in-app ad is taken."
- subattributes:
- - name: "string"
- type: "array"
- description: "The app landing page URL."
- subattributes:
- - name: "value"
- type: "string"
- description: "The app landing page URL."
-
- - name: "finalMobileUrls"
- type: "array"
- description: "The last or final URL where a user who clicks on a mobile ad is taken."
- subattributes:
- - name: "string"
- type: "array"
- description: "The mobile landing page URL. This is only supported for text ads."
- subattributes:
- - name: "value"
- type: "string"
- description: "The mobile landing page URL. This is only supported for text ads."
-
- - name: "finalUrls"
- type: "string"
- description: "The last or final URL where a user is taken, whether or not the click to final URL path included any redirects."
- subattributes:
- - name: "string"
- type: "array"
- description: "The last or final URL where a user is taken, whether or not the click to final URL path included any redirects."
- subattributes:
- - name: "value"
- type: "string"
- description: "The last or final URL where a user is taken, whether or not the click to final URL path included any redirects."
-
- - name: "forwardCompatibilityMap"
- type: "array"
- description: "Details about the forward compatibility settings for the ad."
- doc-link: https://docs.microsoft.com/en-us/bingads/customer-management-service/keyvaluepairofstringstring
- subattributes:
- - name: "keyValuePairOfStringString"
- type: "array"
- description: "Key and value pairs for the ad's forward compatibility settings."
- subattributes:
- - name: "key"
- type: "string"
- description: "The name of the setting."
-
- - name: "value"
- type: "string"
- description: "The value of the setting."
-
- - name: "status"
- type: "string"
- description: "The status of the ad. Possible values are `Active` and `Paused`."
-
- - name: "trackingUrlTemplate"
- type: "string"
- description: "The tracking template to use as a default for all landing page URLs."
-
- - name: "type"
- type: "string"
- description: "The type of the ad."
-
- - name: "urlCustomParameters"
- type: "string"
- description: "The custom collection of key and value parameters for URL tracking."
----
\ No newline at end of file
diff --git a/_integration-schemas/bing-ads/v1/campaign_performance_report.md b/_integration-schemas/bing-ads/v1/campaign_performance_report.md
deleted file mode 100644
index 5c4893a2d..000000000
--- a/_integration-schemas/bing-ads/v1/campaign_performance_report.md
+++ /dev/null
@@ -1,45 +0,0 @@
----
-tap: "bing-ads"
-version: "1"
-
-name: "campaign_performance_report"
-doc-link: https://docs.microsoft.com/en-us/bingads/reporting-service/campaignperformancereportcolumn#values
-singer-schema:
-description: |
- The `campaign_performance_report` table contains performance data for campaigns, aggregated by day..
-
- [This is a **Report** table](#replication). See the **Replication** section for information on how data is replicated and loaded for this table.
-
-replication-method: "Append-Only (Incremental)"
-attribution-window: true
-api-method:
- name:
- doc-link:
-
-attributes:
- - name: "accountId"
- type: "integer"
- primary-key: true
- description: "The Bing Ads-assigned ID of the account."
- foreign-key: true
-
- - name: "{{ system-column.report-date-time }}"
- type: "date-time"
- primary-key: true
- description: "The start time of the Stitch replication job that replicated this record."
-
- - name: "gregorianDate"
- type: "date"
- primary-key: true
- replication-key: true
- description: "The day the record pertains to."
-
- - name: "campaignId"
- type: "integer"
- description: "The ID of the campaign."
- foreign-key: true
-
- - name: "Custom Fields"
- description: |
- Columns selected by you. For descriptions of available columns, refer to [Microsoft's documentation]({{ table.doc-link }}).
----
\ No newline at end of file
diff --git a/_integration-schemas/bing-ads/v1/campaigns.md b/_integration-schemas/bing-ads/v1/campaigns.md
deleted file mode 100644
index 54f88ede3..000000000
--- a/_integration-schemas/bing-ads/v1/campaigns.md
+++ /dev/null
@@ -1,109 +0,0 @@
----
-tap: "bing-ads"
-version: "1"
-
-name: "campaigns"
-doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/campaign
-singer-schema:
-description: |
- The `campaigns` table contains info about the campaigns in your Bing Ads account.
-
- [This is a **Core Object** table](#replication).
-
-replication-method: "Full Table"
-
-api-method:
- name: getCampaignsByAccountId
- doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/getcampaignsbyaccountid
-
-attributes:
- - name: "id"
- type: "integer"
- primary-key: true
- description: "The campaign ID."
- foreign-key-id: "campaign-id"
-
- - name: "biddingScheme"
- type: "object"
- doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/biddingscheme
- description: "Details about the bid strategy type used to manage the campaign."
- subattributes:
- - name: "type"
- type: "string"
- description: "The type of bidding scheme set for the campaign."
- doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/biddingscheme
-
- - name: "budgetId"
- type: "integer"
- description: "The ID of the budget that the campaign shares with other campaigns in the account. Refer to [Microsoft's documentation](https://docs.microsoft.com/en-us/bingads/campaign-management-service/budget) for more info on budgets."
-
- - name: "budgetType"
- type: "string"
- description: "The budget type that determines how the budget is spent."
-
- - name: "campaignType"
- type: "string"
- description: "The type of campaign."
-
- - name: "dailyBudget"
- type: "number"
- description: "The amount to spend daily on the campaign."
-
- - name: "description"
- type: "string"
- description: "The description of the campaign."
-
- - name: "forwardCompatibilityMap"
- type: "array"
- description: "Details about the forward compatibility settings for the campaign."
- doc-link: https://docs.microsoft.com/en-us/bingads/customer-management-service/keyvaluepairofstringstring
- subattributes:
- - name: "keyValuePairOfStringString"
- type: "array"
- description: "Key and value pairs for the campaign's forward compatibility settings."
- subattributes:
- - name: "key"
- type: "string"
- description: "The name of the setting."
-
- - name: "value"
- type: "string"
- description: "The value of the setting."
-
- - name: "languages"
- type: "string"
- description: "The languages of the ads and keywords in the campaign."
-
- - name: "name"
- type: "string"
- description: "The name of the campaign."
-
- - name: "nativeBidAdjustment"
- type: "integer"
- description: "The percent amount by which to adjust the bid for intent ads above or below the base ad group or keyword bid."
-
- - name: "settings"
- type: "array"
- description: "The settings for the campaign."
- subattributes:
- - name: "type"
- type: "string"
- description: "The type of setting. For example: `ShoppingSetting`"
- doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/setting
-
- - name: "status"
- type: "string"
- description: "The status of the campaign. Possible values are `Active` and `Paused`."
-
- - name: "timeZone"
- type: "string"
- description: "The timezone where the campaign operates."
-
- - name: "trackingUrlTemplate"
- type: "string"
- description: "The tracking template to use as a default for all URLs in the campaign."
-
- - name: "urlCustomParameters"
- type: "string"
- description: "The custom collection of key and value parameters for URL tracking."
----
\ No newline at end of file
diff --git a/_integration-schemas/bing-ads/v1/foreign-keys.md b/_integration-schemas/bing-ads/v1/foreign-keys.md
deleted file mode 100644
index 6b00e580c..000000000
--- a/_integration-schemas/bing-ads/v1/foreign-keys.md
+++ /dev/null
@@ -1,49 +0,0 @@
----
-tap-reference: "bing-ads"
-version: "1"
-
-foreign-keys:
- - id: "account-id"
- attribute: "accountId"
- table: "accounts"
- all-foreign-keys:
- - table: "accounts"
- join-on: "id"
- - table: "ad_performance_report"
- - table: "adgroup_performance_report"
- - table: "age_gender_performance_report"
- - table: "campaign_performance_report"
- - table: "geographic_performance_report"
- - table: "goals_and_funnels_report"
- - table: "keyword_performanc_report"
- - table: "search_query_performance_report"
-
- - id: "ad-id"
- attribute: "adId"
- table: "ads"
- all-foreign-keys:
- - table: "ads"
- join-on: "id"
-
- - id: "ad-group-id"
- attribute: "adGroupId"
- table: "ad_groups"
- all-foreign-keys:
- - table: "ad_groups"
- join-on: "id"
- - table: "ad_performance_report"
- - table: "adgroup_performance_report"
- - table: "age_gender_performance_report"
- - table: "campaign_performance_report"
- - table: "geographic_performance_report"
- - table: "goals_and_funnels_report"
- - table: "keyword_performanc_report"
- - table: "search_query_performance_report"
-
- - id: "campaign-id"
- attribute: "campaignId"
- table: "campaigns"
- all-foreign-keys:
- - table: "campaigns"
- join-on: "id"
----
\ No newline at end of file
diff --git a/_integration-schemas/bing-ads/v1/geographic_performance_report.md b/_integration-schemas/bing-ads/v1/geographic_performance_report.md
deleted file mode 100644
index 2764c768d..000000000
--- a/_integration-schemas/bing-ads/v1/geographic_performance_report.md
+++ /dev/null
@@ -1,49 +0,0 @@
----
-tap: "bing-ads"
-version: "1"
-
-name: "geographic_performance_report"
-doc-link: https://docs.microsoft.com/en-us/bingads/reporting-service/geographicperformancereportcolumn#values
-singer-schema: ## link to the JSON schema file in the integration's Singer repo
-description: |
- The `geographic_performance_report` table contains info about the physical locations of people searching for an ad or the locations people are searching for. This data can be used to validate or improve location targeting strategies.
-
- [This is a **Report** table](#replication). See the **Replication** section for information on how data is replicated and loaded for this table.
-
-replication-method: "Append-Only (Incremental)"
-api-method:
- name:
- doc-link:
-
-attributes:
- - name: "accountId"
- type: "integer"
- primary-key: true
- description: "The Bing Ads-assigned ID of the account."
- foreign-key-id: "account-id"
-
- - name: "{{ system-column.report-date-time }}"
- type: "date-time"
- primary-key: true
- description: "The start time of the Stitch replication job that replicated this record."
-
- - name: "gregorianDate"
- type: "date"
- primary-key: true
- replication-key: true
- description: "The day the record pertains to."
-
- - name: "adGroupId"
- type: "integer"
- description: "The ID of the ad group."
- foreign-key-id: "ad-group-id"
-
- - name: "campaignId"
- type: "integer"
- description: "The ID of the campaign."
- foreign-key-id: "campaign-id"
-
- - name: "Custom Fields"
- description: |
- Columns selected by you. For descriptions of available columns, refer to [Microsoft's documentation]({{ table.doc-link }}).
----
\ No newline at end of file
diff --git a/_integration-schemas/bing-ads/v1/goals_and_funnels_report.md b/_integration-schemas/bing-ads/v1/goals_and_funnels_report.md
deleted file mode 100644
index 2960afd13..000000000
--- a/_integration-schemas/bing-ads/v1/goals_and_funnels_report.md
+++ /dev/null
@@ -1,49 +0,0 @@
----
-tap: "bing-ads"
-version: "1"
-
-name: "goals_and_funnels_report"
-doc-link: https://docs.microsoft.com/en-us/bingads/reporting-service/goalsandfunnelsreportcolumn
-singer-schema:
-description: |
- The `goals_and_funnels_report` table contains information about your audience's progression through your conversion funnel. Use this report to determine the point at which users leave the funnel, thereby allowing you to improve and increase conversion.
-
- [This is a **Report** table](#replication). See the **Replication** section for information on how data is replicated and loaded for this table.
-
-replication-method: "Append-Only (Incremental)"
-api-method:
- name:
- doc-link:
-
-attributes:
- - name: "accountId"
- type: "integer"
- primary-key: true
- description: "The Bing Ads-assigned ID of the account."
- foreign-key-id: "account-id"
-
- - name: "{{ system-column.report-date-time }}"
- type: "date-time"
- primary-key: true
- description: "The start time of the Stitch replication job that replicated this record."
-
- - name: "gregorianDate"
- type: "date"
- primary-key: true
- replication-key: true
- description: "The day the record pertains to."
-
- - name: "adGroupId"
- type: "integer"
- description: "The ID of the ad group."
- foreign-key-id: "ad-group-id"
-
- - name: "campaignId"
- type: "integer"
- description: "The ID of the campaign."
- foreign-key-id: "campaign-id"
-
- - name: "Custom Fields"
- description: |
- Columns selected by you. For descriptions of available columns, refer to [Microsoft's documentation]({{ table.doc-link }}).
----
\ No newline at end of file
diff --git a/_integration-schemas/bing-ads/v1/keyword_performance_report.md b/_integration-schemas/bing-ads/v1/keyword_performance_report.md
deleted file mode 100644
index 928a4959b..000000000
--- a/_integration-schemas/bing-ads/v1/keyword_performance_report.md
+++ /dev/null
@@ -1,49 +0,0 @@
----
-tap: "bing-ads"
-version: "1"
-
-name: "keyword_performance_report"
-doc-link: https://docs.microsoft.com/en-us/bingads/reporting-service/keywordperformancereportcolumn#values
-singer-schema:
-description: |
- The `keyword_performance_report` table contains performance data about keywords.
-
- [This is a **Report** table](#replication). See the **Replication** section for information on how data is replicated and loaded for this table.
-
-replication-method: "Append-Only (Incremental)"
-api-method:
- name:
- doc-link:
-
-attributes:
- - name: "accountId"
- type: "integer"
- primary-key: true
- description: "The Bing Ads-assigned ID of the account."
- foreign-key-id: "account-id"
-
- - name: "{{ system-column.report-date-time }}"
- type: "date-time"
- primary-key: true
- description: "The start time of the Stitch replication job that replicated this record."
-
- - name: "gregorianDate"
- type: "date"
- primary-key: true
- replication-key: true
- description: "The day the record pertains to."
-
- - name: "adGroupId"
- type: "integer"
- description: "The ID of the ad group."
- foreign-key-id: "ad-group-id"
-
- - name: "campaignId"
- type: "integer"
- description: "The ID of the campaign."
- foreign-key-id: "campaign-id"
-
- - name: "Custom Fields"
- description: |
- Columns selected by you. For descriptions of available columns, refer to [Microsoft's documentation]({{ table.doc-link }}).
----
\ No newline at end of file
diff --git a/_integration-schemas/bing-ads/v1/search_query_performance_report.md b/_integration-schemas/bing-ads/v1/search_query_performance_report.md
deleted file mode 100644
index 4227f2c94..000000000
--- a/_integration-schemas/bing-ads/v1/search_query_performance_report.md
+++ /dev/null
@@ -1,51 +0,0 @@
----
-tap: "bing-ads"
-version: "1"
-
-name: "search_query_performance_report"
-doc-link: https://docs.microsoft.com/en-us/bingads/reporting-service/searchqueryperformancereportcolumn#values
-singer-schema:
-description: |
- The `search_query_performance_report` table contains performance data for search terms that resulted in a significant number of clicks in the last 30 days. As this data may change over time, use the `keyword_performance_report` table to analyze the overall performance of keywords.
-
- **Note**: This data in this table is not applicable to Bing Shopping campaigns.
-
- [This is a **Report** table](#replication). See the **Replication** section for information on how data is replicated and loaded for this table.
-
-replication-method: "Append-Only (Incremental)"
-api-method:
- name:
- doc-link:
-
-attributes:
- - name: "accountId"
- type: "integer"
- primary-key: true
- description: "The Bing Ads-assigned ID of the account."
- foreign-key-id: "account-id"
-
- - name: "{{ system-column.report-date-time }}"
- type: "date-time"
- primary-key: true
- description: "The start time of the Stitch replication job that replicated this record."
-
- - name: "gregorianDate"
- type: "date"
- primary-key: true
- replication-key: true
- description: "The day the record pertains to."
-
- - name: "adGroupId"
- type: "integer"
- description: "The ID of the ad group."
- foreign-key-id: "ad-group-id"
-
- - name: "campaignId"
- type: "integer"
- description: "The ID of the campaign."
- foreign-key-id: "campaign-id"
-
- - name: "Custom Fields"
- description: |
- Columns selected by you. For descriptions of available columns, refer to [Microsoft's documentation]({{ table.doc-link }}).
----
\ No newline at end of file
diff --git a/_integration-schemas/bing-ads/v2/accounts.md b/_integration-schemas/bing-ads/v2/accounts.md
deleted file mode 100644
index 36da94d55..000000000
--- a/_integration-schemas/bing-ads/v2/accounts.md
+++ /dev/null
@@ -1,187 +0,0 @@
----
-tap: "bing-ads"
-version: "2"
-
-name: "accounts"
-doc-link: https://docs.microsoft.com/en-us/advertising/customer-management-service/getaccount?view=bingads-13
-singer-schema:
-description: |
- The `{{ table.name }}` table contains high-level information about each of the ad accounts you selected during setup. Each row in this table corresponds to a single account.
-
- [This is a **Core Object** table](#replication).
-
- #### Schema changes from Bing Ads v1 {#renamed-v1-columns}
-
- In this version of Stitch's {{ integration.display_name }} integration, the schema of this table has changed. This was done to ensure consistency between the fields in our integration and [the changes made by Microsoft to the Bing Ads API](https://docs.microsoft.com/en-us/bingads/guides/migration-guide?view=bingads-12#reporting-downloadedcolumns){:target="new}.
-
- - `CurrencyType` is now `CurrencyCode`
- - `AccountType` has been removed
- - `CountryCode` has been removed
- - `AutoTagType` has been added
- - `BusinessAddress` has been added
- - `SoldToPaymentInstrumentId` has been added
-
-replication-method: "Key-based Incremental"
-
-attributes:
- - name: "Id"
- type: "integer"
- primary-key: true
- description: "The account ID."
- foreign-key-id: "account-id"
-
- - name: "LastModifiedTime"
- type: "date-time"
- primary-key: true
- replication-key: true
- description: |
- The time (in UTC) the account was last updated.
-
- **Note**: The date and time value reflects the date and time at the Bing server, not the client.
-
- - name: "AccountFinancialStatus"
- type: "string"
- description: "The financial status of the account."
-
- - name: "AccountLifeCycleStatus"
- type: "string"
- description: "The status of the account."
-
- - name: "AutoTagType"
- type: "string"
- description: "Indicates whether supported UTM tracking codes are appended or replaced."
-
- - name: "BillToCustomerId"
- type: "integer"
- description: "The ID of the customer that is billed for the charges that the account generates. This is either the reseller that manages the account on behalf of the owner or the ID of the customer that owns the account."
-
- - name: "BusinessAddress"
- type: "array"
- description: |
- The location where your business is legally registered. If you're an agency working as an agent for your customer, this is the location where your client is legally registered.
- subattributes:
- - name: "Id"
- type: "string"
- primary-key: true
- description: "The ID of the address object."
-
- - name: "BusinessName"
- type: "string"
- description: "The legal business name."
-
- - name: "City"
- type: "string"
- description: "The city."
-
- - name: "CountryCode"
- type: "string"
- description: |
- The country/region code. For a list of possible values, refer to [Microsoft's documentation](https://docs.microsoft.com/en-us/bingads/guides/geographical-location-codes?view=bingads-12){:target="new"}.
-
- - name: "Line1"
- type: "string"
- description: "The first line of the address."
-
- - name: "Line2"
- type: "string"
- description: "The second line of the address."
-
- - name: "Line3"
- type: "string"
- description: "The third line of the address."
-
- - name: "Line4"
- type: "string"
- description: "The fourth line of the address."
-
- - name: "PostalCode"
- type: "string"
- description: "The postal or zip code."
-
- - name: "StateOrProvince"
- type: "string"
- description: |
- The state or province. For a list of possible values, refer to [Microsoft's documentation](https://docs.microsoft.com/en-us/bingads/guides/geographical-location-codes?view=bingads-12){:target="new"}.
-
- - name: "TimeStamp"
- type: "date-time"
- description: "The date and time that the address was last updated."
-
- - name: "CurrencyCode"
- type: "string"
- description: |
- The type of currency used to settle the account. Refer to [Microsoft's documentation](https://docs.microsoft.com/en-us/bingads/customer-management-service/currencycode?view=bingads-12){:target="new"} for a list of possible values.
-
- - name: "ForwardCompatibilityMap"
- type: "array"
- description: "Details about the forward compatibility settings for the account."
- doc-link: https://docs.microsoft.com/en-us/bingads/customer-management-service/keyvaluepairofstringstring
- subattributes:
- - name: "KeyValuePairOfStringString"
- type: "array"
- description: "Key and value pairs for the account's forward compatibility settings."
- subattributes:
- - name: "key"
- type: "string"
- description: "The name of the setting."
-
- - name: "value"
- type: "string"
- description: "The value of the setting."
-
- - name: "Language"
- type: "string"
- description: "The language used to render the invoice for the account, if invoice is used as the payment method."
-
- - name: "LastModifiedByUserId"
- type: "integer"
- description: "The ID of the user who last updated the account's information."
-
- - name: "Name"
- type: "string"
- description: "The name of the account."
-
- - name: "Number"
- type: "string"
- description: "The account number generated by Bing Ads used to identify the account in the Bing Ads web app. This value is alphanumeric."
-
- - name: "ParentCustomerId"
- type: "integer"
- description: "The ID of the customer that owns the account."
-
- - name: "PauseReason"
- type: "integer"
- description: |
- Indicates the reason the account is paused. Possible values include:
-
- - `1` - A user paused the account
- - `2` - The billing service paused the account
- - `4` - The user and billing service paused the account
-
- - name: "PaymentMethodId"
- type: "integer"
- description: "The ID of the payment instrument used to settle the account."
-
- - name: "PaymentMethodType"
- type: "string"
- description: "The type of payment instrument used to settle the account."
-
- - name: "PrimaryUserId"
- type: "integer"
- description: "The ID of the account manager who is primarily responsible for managing the account. By default, this value is set to the reseller's user ID."
-
- - name: "SoldToPaymentInstrumentId"
- type: "string"
- description: "The ID of the payment instrument of your client (the sold-to customer) used to settle the account."
-
- - name: "Timestamp"
- type: "timestamp"
- description: "The timestamp value used internally by Bing Ads to reconcile updates between account update and delete operations."
-
- - name: "Timezone"
- type: "string"
- description: |
- The default timezone value to use for campaigns in this account.
-
- If left unspecified when the account is created, this value will default to `PacificTimeUSCanadaTijuana`.
----
\ No newline at end of file
diff --git a/_integration-schemas/bing-ads/v2/ad_groups.md b/_integration-schemas/bing-ads/v2/ad_groups.md
deleted file mode 100644
index dba833d8f..000000000
--- a/_integration-schemas/bing-ads/v2/ad_groups.md
+++ /dev/null
@@ -1,220 +0,0 @@
----
-tap: "bing-ads"
-version: "2"
-
-name: "ad_groups"
-doc-link: https://docs.microsoft.com/en-us/advertising/campaign-management-service/getadgroupsbyids?view=bingads-13
-singer-schema:
-description: |
- The `{{ table.name }}` table contains info about the ad groups associated with the campaigns in your Bing Ads account.
-
- [This is a **Core Object** table](#replication).
-
- #### Schema changes from Bing Ads v1 {#renamed-v1-columns}
-
- In this version of Stitch's {{ integration.display_name }} integration, the schema of this table has changed. This was done to ensure consistency between the fields in our integration and [the changes made by Microsoft to the Bing Ads API](https://docs.microsoft.com/en-us/bingads/guides/migration-guide?view=bingads-12#reporting-downloadedcolumns){:target="new}.
-
- - `AdDistribution` has been removed
- - `ContentMatchBid` has been removed
- - `NativeBidAdjustment` has been removed
- - `PricingModel` has been removed
- - `RemarketingTargetingSetting` has been removed
- - `SearchBid` has been removed
- - `AudienceAdsBidAdjustment` has been added
- - `CpcBid` has been added
- - Additional fields have been added to `BiddingScheme` and `Settings`
-
-replication-method: "Full Table"
-
-api-method:
- name: getAdGroupsbyCampaignId
- doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/getadgroupsbycampaignid
-
-attributes:
- - name: "id"
- type: "integer"
- primary-key: true
- description: "The ad group ID."
- foreign-key-id: "ad-group-id"
-
- - name: "AdRotation"
- type: "string"
- description: |
- Determines how often ads in the ad group show in relation to each other. If there are multiple ads within an ad group, the ads will rotate because only one ad from your account can show at a time.
-
- Possible values are:
-
- - `OptimizeForClicks` - In this rotation, Bing Ads will predominantly show ads that have the highest click-through rate, or CTR.
- - `RotateAdsEvenly` - In this rotation, Bing ads will rotate between ads on an equal basis.
-
- - name: "AudienceAdsBidAdjustment"
- type: "integer"
- description: |
- The percent amount by which to adjust your bid for intent ads above or below the base ad group or keyword bid.
-
- Possible values are negative one hundred `(-100)` through positive nine hundred `(900)`.
-
- - name: "BiddingScheme"
- type: "object"
- description: "The bid strategy type for how bids are managed."
- subattributes:
- - name: "Type"
- type: "string"
- description: |
- The type of bidding scheme set for the campaign, ad group, or keyword. Refer to [Microsoft's documentation](https://docs.microsoft.com/en-us/bingads/campaign-management-service/biddingscheme?view=bingads-12#remarks){:target="new"} for info about bidding scheme types.
-
- - name: "InheritedBidStrategyType"
- type: "string"
- description: |
- The type of bidding scheme that is inherited from the parent campaign or ad group. Possible values are:
-
- - `EnhancedCpc`
- - `ManualCpc`
- - `MaxClicks`
- - `MaxConversions`
- - `TargetCpa`
-
- - name: "CpcBid"
- type: "string"
- description: |
- The default bid to use when the user's query and the ad group's keywords match by either using a broad, exact, or phrase match comparison.
-
- - name: "EndDate"
- type: "date-time"
- description: "The date that the ads in the ad group will expire."
-
- - name: "ForwardCompatibilityMap"
- type: "array"
- description: "Details about the forward compatibility settings for the ad group."
- doc-link: https://docs.microsoft.com/en-us/bingads/customer-management-service/keyvaluepairofstringstring
- subattributes:
- - name: "KeyValuePairOfStringString"
- type: "array"
- description: "Key and value pairs for the ad group's forward compatibility settings."
- subattributes:
- - name: "key"
- type: "string"
- description: "The name of the setting."
-
- - name: "value"
- type: "string"
- description: "The value of the setting."
-
- - name: "Language"
- type: "string"
- description: "The language of the ads and keywords in the ad group."
-
- - name: "Name"
- type: "string"
- description: "The name of the ad group."
-
- - name: "Network"
- type: "string"
- description: |
- The search networks where the ads will display. Possible values are:
-
- - `OwnedAndOperatedAndSyndicatedSearch`
- - `OwnedAndOperatedOnly`
- - `SyndicatedSearchOnly`
-
- - name: "Settings"
- type: "array"
- description: |
- Details about the settings applied to the ad group.
-
- Only certain attributes are applicable to different ad group settings. This means that only certain columns will contain values based on the `Type` field.
- subattributes:
- - name: "Type"
- type: "string"
- description: |
- The type of setting. Possible values are:
-
- - `CoOpSetting`
- - `DynamicSearchAdsSetting`
- - `ShoppingSetting`
-
- doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/setting
-
- - name: "BidBoostValue"
- type: "number"
- description: |
- **Applicable to Cooperative Bidding campaigns,** or `Type: CoOpSetting`. The percentage that allows your cooperative bid to flex.
-
- - name: "BidMaxValue"
- type: "number"
- description: |
- **Applicable to Cooperative Bidding campaigns,** or `Type: CoOpSetting`. The flat amount of your cooperative bid.
-
- - name: "BidOption"
- type: "string"
- description: |
- **Applicable to Cooperative Bidding campaigns,** or `Type: CoOpSetting`. Determines whether or not to amplify your partner's bid.
-
- - name: "DomainName"
- type: "string"
- description: |
- **Applicable to Dynamic Search Ads campaigns,** or `Type: DynamicSearchAdsSetting`. The domain name of the website that you want to target for dynamic search ads.
-
- - name: "Language"
- type: "string"
- description: |
- **Applicable to Dynamic Search Ads campaigns,** or `Type: DynamicSearchAdsSetting`. The language of the website pages that you want to target for dynamic search ads.
-
- - name: "PageFeedIds"
- type: "array"
- description: |
- **Applicable to Dynamic Search Ads campaigns,** or `Type: DynamicSearchAdsSetting`. Reserved by Microsoft.
- subattributes:
- - name: "value"
- type: "integer"
- description: |
- **Applicable to Dynamic Search Ads campaigns,** or `Type: DynamicSearchAdsSetting`. Reserved by Microsoft.
-
- - name: "Source"
- type: "string"
- description: |
- **Applicable to Dynamic Search Ads campaigns,** or `Type: DynamicSearchAdsSetting`. Reserved by Microsoft.
-
- - name: "LocalInventoryAdsEnabled"
- type: "boolean"
- description: |
- **Applicable to feed-based audience or shopping campaigns,** or `Type: ShoppingSetting`. Determines whether local inventory ads are enabled for the Bing Merchant Center store.
-
- - name: "Priority"
- type: "integer"
- description: |
- **Applicable to feed-based audience or shopping campaigns,** or `Type: ShoppingSetting`. Determines which Bing Shopping campaign serves ads, in the event that two or more campaigns use the product catalog feed from the same Bing Merchant Center store.
-
- Possible value are `0`, `1`, or `2`. The higher numbers are given priority.
-
- - name: "SalesCountryCode"
- type: "string"
- description: |
- **Applicable to feed-based audience or shopping campaigns,** or `Type: ShoppingSetting`. The country code for the Bing Merchant Center store. Refer to [Microsoft's documentation](https://docs.microsoft.com/en-us/bingads/campaign-management-service/getbsccountries?view=bingads-12){:target="new"} for a list of possible values.
-
- - name: "StoreId"
- type: "integer"
- description: |
- **Applicable to feed-based audience or shopping campaigns,** or `Type: ShoppingSetting`. The ID for the Bing Merchant Center store that contains a product catalog feed that you want to use for the campaign.
-
- - name: "StartDate"
- type: "date-time"
- description: "The date that the ads in the ad group can begin serving."
-
- - name: "Status"
- type: "string"
- description: |
- The status of the ad group. Possible values are:
-
- - `Active`
- - `Expired`
- - `Paused`
-
- - name: "TrackingUrlTemplate"
- type: "string"
- description: "The tracking template to use as a default for all URLs in your ad group."
-
- - name: "UrlCustomParameters"
- type: "array"
- description: "The custom collection of key and value parameters for URL tracking."
----
\ No newline at end of file
diff --git a/_integration-schemas/bing-ads/v2/ad_performance_report.md b/_integration-schemas/bing-ads/v2/ad_performance_report.md
deleted file mode 100644
index ccc92e96e..000000000
--- a/_integration-schemas/bing-ads/v2/ad_performance_report.md
+++ /dev/null
@@ -1,62 +0,0 @@
----
-tap: "bing-ads"
-version: "2"
-
-name: "ad_performance_report"
-doc-link: https://docs.microsoft.com/en-us/advertising/reporting-service/adperformancereportfilter?view=bingads-13
-singer-schema:
-description: |
- The `{{ table.name }}` table contains performance info about ads, including clicks and conversions. This data can be used to identify and improve under-performing ads.
-
- [This is a **Report** table](#replication). See the **Replication** section for information on how data is replicated and loaded for this table.
-
- #### Columns renamed from Bing Ads v1 {#renamed-v1-columns}
-
- In this version of Stitch's {{ integration.display_name }} integration, some columns have been re-named. This was done to ensure consistency between the fields in our integration and [the changes made by Microsoft to the Bing Ads API](https://docs.microsoft.com/en-us/bingads/guides/migration-guide?view=bingads-12#reporting-downloadedcolumns){:target="new}.
-
- - `FinalAppURL` is now `FinalAppUrl`
- - `FinalURL` is now `FinalUrl`
- - `FinalMobileURL` is now `FinalMobileUrl`
-
-replication-method: "Key-based Incremental"
-loading-behavior: "Append-Only"
-
-attribution-window: true
-
-attributes:
- - name: "AccountId"
- type: "integer"
- primary-key: true
- description: "The Bing Ads-assigned ID of the account."
- foreign-key-id: "accounts-id"
-
- - name: "{{ system-column.report-date-time }}"
- type: "date-time"
- primary-key: true
- description: "The start time of the Stitch replication job that replicated this record."
-
- - name: "TimePeriod"
- type: "date"
- primary-key: true
- replication-key: true
- description: "The day the record pertains to."
-
- - name: "AdGroupId"
- type: "integer"
- description: "The ID of the ad group the ad is a part of."
- foreign-key-id: "ad-group-id"
-
- - name: "AdId"
- type: "integer"
- description: "The ad ID."
- foreign-key-id: "ad-id"
-
- - name: "CampaignId"
- type: "integer"
- description: "The ID of the campaign the ad is a part of."
- foreign-key-id: "campaign-id"
-
- - name: "Custom Fields"
- description: |
- Columns selected by you. For descriptions of available columns, refer to [Microsoft's documentation]({{ table.doc-link }}).
----
\ No newline at end of file
diff --git a/_integration-schemas/bing-ads/v2/ads.md b/_integration-schemas/bing-ads/v2/ads.md
deleted file mode 100644
index d953732bc..000000000
--- a/_integration-schemas/bing-ads/v2/ads.md
+++ /dev/null
@@ -1,151 +0,0 @@
----
-tap: "bing-ads"
-version: "2"
-
-name: "ads"
-doc-link: https://docs.microsoft.com/en-us/advertising/campaign-management-service/getadsbyids?view=bingads-13
-singer-schema:
-description: |
- The `{{ table.name }}` table contains info about the following ad types:
-
- - `AppInstall`
- - `DynamicSearch`
- - `ExpandedText`
- - `Product`
- - `Text`
- - `Image`
-
- [This is a **Core Object** table](#replication).
-
- #### Schema changes from Bing Ads v1 {#renamed-v1-columns}
-
- In this version of Stitch's {{ integration.display_name }} integration, the schema of this table has changed. This was done to ensure consistency between the fields in our integration and [the changes made by Microsoft to the Bing Ads API](https://docs.microsoft.com/en-us/bingads/guides/migration-guide?view=bingads-12#reporting-downloadedcolumns){:target="new}.
-
- - `Domain` has been added
- - `TextPart2` has been added
- - `TitlePart3` has been added
-
-replication-method: "Full Table"
-api-method:
- name: "getAdsByAdGroupId"
- doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/getadsbyadgroupid
-
-attributes:
- - name: "Id"
- type: "integer"
- primary-key: true
- description: "The ad ID."
- foreign-key-id: "ad-id"
-
- - name: "AdFormatPreference"
- type: "string"
- description: |
- Indicates whether or not the ad copy is shown to users as a search or native ad. Search ads tend to be written as a call to action, whereas intent ads are written in a more informational style.
-
- Possible values are:
-
- - `Native` - Ad will be eligible only for the native ad format
- - `All` - Ad will be eligible for both search and native ad formats
-
- - name: "DevicePreference"
- type: "integer"
- description: "Determines the device preference for showing the ad."
-
- - name: "Domain"
- type: "string"
- description: |
- **Applicable to `Type: ExpandedText` ads.** The URL that will be displayed instead of the final URL. The final URL will still be used for the landing page URL.
-
- - name: "EditorialStatus"
- type: "string"
- description: "The editorial review status of the ad, which indicates whether the ad is pending review, approved, or disapproved."
-
- - name: "FinalAppUrls"
- type: "string"
- description: "The last or final URL where a user who clicks on an in-app ad is taken."
- subattributes:
- - name: "string"
- type: "array"
- description: "The app landing page URL."
- subattributes:
- - name: "value"
- type: "string"
- description: "The app landing page URL."
-
- - name: "FinalMobileUrls"
- type: "array"
- description: "The last or final URL where a user who clicks on a mobile ad is taken."
- subattributes:
- - name: "string"
- type: "array"
- description: "The mobile landing page URL. This is only supported for text ads."
- subattributes:
- - name: "value"
- type: "string"
- description: "The mobile landing page URL. This is only supported for text ads."
-
- - name: "FinalUrls"
- type: "string"
- description: "The last or final URL where a user is taken, whether or not the click to final URL path included any redirects."
- subattributes:
- - name: "string"
- type: "array"
- description: "The last or final URL where a user is taken, whether or not the click to final URL path included any redirects."
- subattributes:
- - name: "value"
- type: "string"
- description: "The last or final URL where a user is taken, whether or not the click to final URL path included any redirects."
-
- - name: "ForwardCompatibilityMap"
- type: "array"
- description: "Details about the forward compatibility settings for the ad."
- doc-link: https://docs.microsoft.com/en-us/bingads/customer-management-service/keyvaluepairofstringstring
- subattributes:
- - name: "KeyValuePairOfStringString"
- type: "array"
- description: "Key and value pairs for the ad's forward compatibility settings."
- subattributes:
- - name: "key"
- type: "string"
- description: "The name of the setting."
-
- - name: "value"
- type: "string"
- description: "The value of the setting."
-
- - name: "Status"
- type: "string"
- description: "The status of the ad. Possible values are `Active` and `Paused`."
-
- - name: "TextPart2"
- type: "string"
- description: |
- **Applicable to `Type: ExpandedText` ads.** As per Microsoft, this field is reserved for future use.
-
- - name: "TitlePart1"
- type: "string"
- description: |
- **Applicable to `Type: ExpandedText` ads.** The first part of the ad title.
-
- - name: "TitlePart2"
- type: "string"
- description: |
- **Applicable to `Type: ExpandedText` ads.** The second part of the ad title.
-
- - name: "TitlePart3"
- type: "string"
- description: |
- **Applicable to `Type: ExpandedText` ads.** As per Microsoft, this field is reserved for future use.
-
- - name: "TrackingUrlTemplate"
- type: "string"
- description: "The tracking template to use as a default for all landing page URLs."
-
- - name: "Type"
- type: "string"
- description: "The type of the ad."
-
- - name: "UrlCustomParameters"
- type: "string"
- description: "The custom collection of key and value parameters for URL tracking."
----
\ No newline at end of file
diff --git a/_integration-schemas/bing-ads/v2/campaign_performance_report.md b/_integration-schemas/bing-ads/v2/campaign_performance_report.md
deleted file mode 100644
index 2b273d3a0..000000000
--- a/_integration-schemas/bing-ads/v2/campaign_performance_report.md
+++ /dev/null
@@ -1,58 +0,0 @@
----
-tap: "bing-ads"
-version: "2"
-
-name: "campaign_performance_report"
-doc-link: https://docs.microsoft.com/en-us/advertising/reporting-service/dsacategoryperformancereportfilter?view=bingads-13
-singer-schema:
-description: |
- The `{{ table.name }}` table contains performance data for campaigns, aggregated by day..
-
- [This is a **Report** table](#replication). See the **Replication** section for information on how data is replicated and loaded for this table.
-
- #### Column compatibility
-
- As per Microsoft's attribute selection rules, some columns may be incompatible. This means that you won't be able to select certain combinations of columns in Stitch. Refer to [Microsoft's documentation](https://docs.microsoft.com/en-us/bingads/guides/reports?view=bingads-12#columnrestrictions){:target="new"} for more info, and the specific column combinations for this table.
-
- #### Columns renamed from Bing Ads v1 {#renamed-v1-columns}
-
- In this version of Stitch's {{ integration.display_name }} integration, some columns have been re-named. This was done to ensure consistency between the fields in our integration and [the changes made by Microsoft to the Bing Ads API](https://docs.microsoft.com/en-us/bingads/guides/migration-guide?view=bingads-12#reporting-downloadedcolumns){:target="new}.
-
- - `HistoricQualityScore` is now `HistoricalQualityScore`
- - `HistoricExpectedCtr` is now `HistoricalExpectedCtr`
- - `HistoricAdRelevance` is now `HistoricalAdRelevance`
- - `HistoricLandingPageExperience` is now `HistoricalLandingPageExperience`
- - `Status` is now `CampaignStatus`
-
-replication-method: "Key-based Incremental"
-loading-behavior: "Append-Only"
-
-attribution-window: true
-
-attributes:
- - name: "AccountId"
- type: "integer"
- primary-key: true
- description: "The Bing Ads-assigned ID of the account."
- foreign-key: true
-
- - name: "{{ system-column.report-date-time }}"
- type: "date-time"
- primary-key: true
- description: "The start time of the Stitch replication job that replicated this record."
-
- - name: "TimePeriod"
- type: "date"
- primary-key: true
- replication-key: true
- description: "The day the record pertains to."
-
- - name: "CampaignId"
- type: "integer"
- description: "The ID of the campaign."
- foreign-key-id: "campaign-id"
-
- - name: "Custom Fields"
- description: |
- Columns selected by you. For descriptions of available columns, refer to [Microsoft's documentation]({{ table.doc-link }}).
----
\ No newline at end of file
diff --git a/_integration-schemas/bing-ads/v2/campaigns.md b/_integration-schemas/bing-ads/v2/campaigns.md
deleted file mode 100644
index d2a5bed0f..000000000
--- a/_integration-schemas/bing-ads/v2/campaigns.md
+++ /dev/null
@@ -1,201 +0,0 @@
----
-tap: "bing-ads"
-version: "2"
-
-name: "campaigns"
-doc-link: https://docs.microsoft.com/en-us/advertising/campaign-management-service/getcampaignsbyids?view=bingads-13
-singer-schema:
-description: |
- The `{{ table.name }}` table contains info about the campaigns in your Bing Ads account.
-
- [This is a **Core Object** table](#replication).
-
- #### Schema changes from Bing Ads v1 {#renamed-v1-columns}
-
- In this version of Stitch's {{ integration.display_name }} integration, the schema of this table has changed. This was done to ensure consistency between the fields in our integration and [the changes made by Microsoft to the Bing Ads API](https://docs.microsoft.com/en-us/bingads/guides/migration-guide?view=bingads-12#reporting-downloadedcolumns){:target="new}.
-
- - `NativeBidAdjustment` has been removed
- - `AudienceAdsBidAdjustment` has been added
- - Additional fields have been added to `BiddingScheme` and `Settings`
-
-replication-method: "Full Table"
-
-api-method:
- name: getCampaignsByAccountId
- doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/getcampaignsbyaccountid
-
-attributes:
- - name: "Id"
- type: "integer"
- primary-key: true
- description: "The campaign ID."
- foreign-key-id: "campaign-id"
-
- - name: "AudienceAdsBidAdjustment"
- type: "integer"
- description: |
- The percent amount by which to adjust your bid for intent ads above or below the base ad group or keyword bid.
-
- Possible values are negative one hundred `(-100)` through positive nine hundred `(900)`.
-
- - name: "BiddingScheme"
- type: "object"
- description: "The bid strategy type for how bids are managed."
- subattributes:
- - name: "Type"
- type: "string"
- description: |
- The type of bidding scheme set for the campaign, ad group, or keyword. Refer to [Microsoft's documentation](https://docs.microsoft.com/en-us/bingads/campaign-management-service/biddingscheme?view=bingads-12#remarks){:target="new"} for info about bidding scheme types.
-
- - name: "InheritedBidStrategyType"
- type: "string"
- description: |
- The type of bidding scheme that is inherited from the parent campaign or ad group. Possible values are:
-
- - `EnhancedCpc`
- - `ManualCpc`
- - `MaxClicks`
- - `MaxConversions`
- - `TargetCpa`
-
- - name: "BudgetId"
- type: "integer"
- description: "The ID of the budget that the campaign shares with other campaigns in the account. Refer to [Microsoft's documentation](https://docs.microsoft.com/en-us/bingads/campaign-management-service/budget) for more info on budgets."
-
- - name: "BudgetType"
- type: "string"
- description: "The budget type that determines how the budget is spent."
-
- - name: "CampaignType"
- type: "string"
- description: "The type of campaign."
-
- - name: "DailyBudget"
- type: "number"
- description: "The amount to spend daily on the campaign."
-
- - name: "Description"
- type: "string"
- description: "The description of the campaign."
-
- - name: "ForwardCompatibilityMap"
- type: "array"
- description: "Details about the forward compatibility settings for the campaign."
- doc-link: https://docs.microsoft.com/en-us/bingads/customer-management-service/keyvaluepairofstringstring
- subattributes:
- - name: "keyValuePairOfStringString"
- type: "array"
- description: "Key and value pairs for the campaign's forward compatibility settings."
- subattributes:
- - name: "key"
- type: "string"
- description: "The name of the setting."
-
- - name: "value"
- type: "string"
- description: "The value of the setting."
-
- - name: "Languages"
- type: "string"
- description: "The languages of the ads and keywords in the campaign."
-
- - name: "Name"
- type: "string"
- description: "The name of the campaign."
-
- - name: "Settings"
- type: "array"
- description: |
- Details about the settings applied to the campaign.
-
- Only certain attributes are applicable to different campaign settings. This means that only certain columns will contain values based on the `Type` field.
- subattributes:
- - name: "Type"
- type: "string"
- description: |
- The type of setting. Possible values are:
-
- - `CoOpSetting`
- - `DynamicSearchAdsSetting`
- - `ShoppingSetting`
-
- doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/setting
-
- - name: "BidBoostValue"
- type: "number"
- description: |
- **Applicable to Cooperative Bidding campaigns,** or `Type: CoOpSetting`. The percentage that allows your cooperative bid to flex.
-
- - name: "BidMaxValue"
- type: "number"
- description: |
- **Applicable to Cooperative Bidding campaigns,** or `Type: CoOpSetting`. The flat amount of your cooperative bid.
-
- - name: "BidOption"
- type: "string"
- description: |
- **Applicable to Cooperative Bidding campaigns,** or `Type: CoOpSetting`. Determines whether or not to amplify your partner's bid.
-
- - name: "DomainName"
- type: "string"
- description: |
- **Applicable to Dynamic Search Ads campaigns,** or `Type: DynamicSearchAdsSetting`. The domain name of the website that you want to target for dynamic search ads.
-
- - name: "Language"
- type: "string"
- description: |
- **Applicable to Dynamic Search Ads campaigns,** or `Type: DynamicSearchAdsSetting`. The language of the website pages that you want to target for dynamic search ads.
-
- - name: "PageFeedIds"
- type: "array"
- description: |
- **Applicable to Dynamic Search Ads campaigns,** or `Type: DynamicSearchAdsSetting`. Reserved by Microsoft.
- subattributes:
- - name: "value"
- type: "integer"
- description: |
- **Applicable to Dynamic Search Ads campaigns,** or `Type: DynamicSearchAdsSetting`. Reserved by Microsoft.
-
- - name: "Source"
- type: "string"
- description: |
- **Applicable to Dynamic Search Ads campaigns,** or `Type: DynamicSearchAdsSetting`. Reserved by Microsoft.
-
- - name: "LocalInventoryAdsEnabled"
- type: "boolean"
- description: |
- **Applicable to feed-based audience or shopping campaigns,** or `Type: ShoppingSetting`. Determines whether local inventory ads are enabled for the Bing Merchant Center store.
-
- - name: "Priority"
- type: "integer"
- description: |
- **Applicable to feed-based audience or shopping campaigns,** or `Type: ShoppingSetting`. Determines which Bing Shopping campaign serves ads, in the event that two or more campaigns use the product catalog feed from the same Bing Merchant Center store.
-
- Possible value are `0`, `1`, or `2`. The higher numbers are given priority.
-
- - name: "SalesCountryCode"
- type: "string"
- description: |
- **Applicable to feed-based audience or shopping campaigns,** or `Type: ShoppingSetting`. The country code for the Bing Merchant Center store. Refer to [Microsoft's documentation](https://docs.microsoft.com/en-us/bingads/campaign-management-service/getbsccountries?view=bingads-12){:target="new"} for a list of possible values.
-
- - name: "StoreId"
- type: "integer"
- description: |
- **Applicable to feed-based audience or shopping campaigns,** or `Type: ShoppingSetting`. The ID for the Bing Merchant Center store that contains a product catalog feed that you want to use for the campaign.
-
- - name: "Status"
- type: "string"
- description: "The status of the campaign. Possible values are `Active` and `Paused`."
-
- - name: "TimeZone"
- type: "string"
- description: "The timezone where the campaign operates."
-
- - name: "TrackingUrlTemplate"
- type: "string"
- description: "The tracking template to use as a default for all URLs in the campaign."
-
- - name: "UrlCustomParameters"
- type: "string"
- description: "The custom collection of key and value parameters for URL tracking."
----
\ No newline at end of file
diff --git a/_integration-schemas/bing-ads/v2/geographic_performance_report.md b/_integration-schemas/bing-ads/v2/geographic_performance_report.md
deleted file mode 100644
index 706f1400b..000000000
--- a/_integration-schemas/bing-ads/v2/geographic_performance_report.md
+++ /dev/null
@@ -1,49 +0,0 @@
----
-tap: "bing-ads"
-version: "2"
-
-name: "geographic_performance_report"
-doc-link: https://docs.microsoft.com/en-us/advertising/reporting-service/geographicperformancereportfilter?view=bingads-13
-singer-schema:
-description: |
- The `{{ table.name }}` table contains info about the physical locations of people searching for an ad or the locations people are searching for. This data can be used to validate or improve location targeting strategies.
-
- [This is a **Report** table](#replication). See the **Replication** section for information on how data is replicated and loaded for this table.
-
-replication-method: "Key-based Incremental"
-loading-behavior: "Append-Only"
-
-attribution-window: true
-
-attributes:
- - name: "AccountId"
- type: "integer"
- primary-key: true
- description: "The Bing Ads-assigned ID of the account."
- foreign-key-id: "account-id"
-
- - name: "{{ system-column.report-date-time }}"
- type: "date-time"
- primary-key: true
- description: "The start time of the Stitch replication job that replicated this record."
-
- - name: "TimePeriod"
- type: "date"
- primary-key: true
- replication-key: true
- description: "The day the record pertains to."
-
- - name: "AdGroupId"
- type: "integer"
- description: "The ID of the ad group."
- foreign-key-id: "ad-group-id"
-
- - name: "CampaignId"
- type: "integer"
- description: "The ID of the campaign."
- foreign-key-id: "campaign-id"
-
- - name: "Custom Fields"
- description: |
- Columns selected by you. For descriptions of available columns, refer to [Microsoft's documentation]({{ table.doc-link }}).
----
\ No newline at end of file
diff --git a/_integration-schemas/bing-ads/v2/goals_and_funnels_report.md b/_integration-schemas/bing-ads/v2/goals_and_funnels_report.md
deleted file mode 100644
index 7335f57c3..000000000
--- a/_integration-schemas/bing-ads/v2/goals_and_funnels_report.md
+++ /dev/null
@@ -1,53 +0,0 @@
----
-tap: "bing-ads"
-version: "2"
-
-name: "goals_and_funnels_report"
-doc-link: https://docs.microsoft.com/en-us/advertising/reporting-service/goalsandfunnelsreportfilter?view=bingads-13
-singer-schema:
-description: |
- The `{{ table.name }}` table contains information about your audience's progression through your conversion funnel. Use this report to determine the point at which users leave the funnel, thereby allowing you to improve and increase conversion.
-
- [This is a **Report** table](#replication). See the **Replication** section for information on how data is replicated and loaded for this table.
-
-replication-method: "Key-based Incremental"
-loading-behavior: "Append-Only"
-
-attribution-window: true
-
-attributes:
- - name: "AccountId"
- type: "integer"
- primary-key: true
- description: "The Bing Ads-assigned ID of the account."
- foreign-key-id: "account-id"
-
- - name: "{{ system-column.report-date-time }}"
- type: "date-time"
- primary-key: true
- description: "The start time of the Stitch replication job that replicated this record."
-
- - name: "TimePeriod"
- type: "date"
- primary-key: true
- replication-key: true
- description: "The day the record pertains to."
-
- - name: "AdGroupId"
- type: "integer"
- description: "The ID of the ad group."
- foreign-key-id: "ad-group-id"
-
- - name: "CampaignId"
- type: "integer"
- description: "The ID of the campaign."
- foreign-key-id: "campaign-id"
-
- - name: "Goal"
- type: "string"
- description: "The name of the goal you set for the conversions you want."
-
- - name: "Custom Fields"
- description: |
- Columns selected by you. For descriptions of available columns, refer to [Microsoft's documentation]({{ table.doc-link }}).
----
\ No newline at end of file
diff --git a/_integration-schemas/bing-ads/v2/keyword_performance_report.md b/_integration-schemas/bing-ads/v2/keyword_performance_report.md
deleted file mode 100644
index 4622b5d54..000000000
--- a/_integration-schemas/bing-ads/v2/keyword_performance_report.md
+++ /dev/null
@@ -1,63 +0,0 @@
----
-tap: "bing-ads"
-version: "2"
-
-name: "keyword_performance_report"
-doc-link: https://docs.microsoft.com/en-us/advertising/reporting-service/keywordperformancereportfilter?view=bingads-13
-singer-schema:
-description: |
- The `{{ table.name }}` table contains performance data about keywords.
-
- [This is a **Report** table](#replication). See the **Replication** section for information on how data is replicated and loaded for this table.
-
- #### Columns renamed from Bing Ads v1 {#renamed-v1-columns}
-
- In this version of Stitch's {{ integration.display_name }} integration, some columns have been re-named. This was done to ensure consistency between the fields in our integration and [the changes made by Microsoft to the Bing Ads API](https://docs.microsoft.com/en-us/bingads/guides/migration-guide?view=bingads-12#reporting-downloadedcolumns){:target="new}.
-
- - `FinalAppURL` is now `FinalAppUrl`
- - `FinalURL` is now `FinalUrl`
- - `FinalMobileURL` is now `FinalMobileUrl`
- - `HistoricQualityScore` is now `HistoricalQualityScore`
- - `HistoricExpectedCtr` is now `HistoricalExpectedCtr`
- - `HistoricAdRelevance` is now `HistoricalAdRelevance`
- - `HistoricLandingPageExperience` is now `HistoricalLandingPageExperience`
- - `Status` is now `CampaignStatus`
- - `SidebarBid` is now `FirstPageBid`
-
-replication-method: "Key-based Incremental"
-loading-behavior: "Append-Only"
-
-attribution-window: true
-
-attributes:
- - name: "AccountId"
- type: "integer"
- primary-key: true
- description: "The Bing Ads-assigned ID of the account."
- foreign-key-id: "account-id"
-
- - name: "{{ system-column.report-date-time }}"
- type: "date-time"
- primary-key: true
- description: "The start time of the Stitch replication job that replicated this record."
-
- - name: "TimePeriod"
- type: "date"
- primary-key: true
- replication-key: true
- description: "The day the record pertains to."
-
- - name: "AdGroupId"
- type: "integer"
- description: "The ID of the ad group."
- foreign-key-id: "ad-group-id"
-
- - name: "CampaignId"
- type: "integer"
- description: "The ID of the campaign."
- foreign-key-id: "campaign-id"
-
- - name: "Custom Fields"
- description: |
- Columns selected by you. For descriptions of available columns, refer to [Microsoft's documentation]({{ table.doc-link }}).
----
\ No newline at end of file
diff --git a/_integration-schemas/bing-ads/v2/search_query_performance_report.md b/_integration-schemas/bing-ads/v2/search_query_performance_report.md
deleted file mode 100644
index 310cf43af..000000000
--- a/_integration-schemas/bing-ads/v2/search_query_performance_report.md
+++ /dev/null
@@ -1,51 +0,0 @@
----
-tap: "bing-ads"
-version: "2"
-
-name: "search_query_performance_report"
-doc-link: https://docs.microsoft.com/en-us/advertising/reporting-service/searchqueryperformancereportfilter?view=bingads-13
-singer-schema:
-description: |
- The `{{ table.name }} ` table contains performance data for search terms that resulted in a significant number of clicks in the last 30 days. As this data may change over time, use the `keyword_performance_report` table to analyze the overall performance of keywords.
-
- **Note**: This data in this table is not applicable to Bing Shopping campaigns.
-
- [This is a **Report** table](#replication). See the **Replication** section for information on how data is replicated and loaded for this table.
-
-replication-method: "Key-based Incremental"
-loading-behavior: "Append-Only"
-
-attribution-window: true
-
-attributes:
- - name: "AccountId"
- type: "integer"
- primary-key: true
- description: "The Bing Ads-assigned ID of the account."
- foreign-key-id: "account-id"
-
- - name: "{{ system-column.report-date-time }}"
- type: "date-time"
- primary-key: true
- description: "The start time of the Stitch replication job that replicated this record."
-
- - name: "TimePeriod"
- type: "date"
- primary-key: true
- replication-key: true
- description: "The day the record pertains to."
-
- - name: "AdGroupId"
- type: "integer"
- description: "The ID of the ad group."
- foreign-key-id: "ad-group-id"
-
- - name: "CampaignId"
- type: "integer"
- description: "The ID of the campaign."
- foreign-key-id: "campaign-id"
-
- - name: "Custom Fields"
- description: |
- Columns selected by you. For descriptions of available columns, refer to [Microsoft's documentation]({{ table.doc-link }}).
----
\ No newline at end of file
diff --git a/_integration-schemas/deputy/v1/companies.md b/_integration-schemas/deputy/v1/companies.md
deleted file mode 100644
index ba623c3de..000000000
--- a/_integration-schemas/deputy/v1/companies.md
+++ /dev/null
@@ -1,89 +0,0 @@
----
-tap: "deputy"
-version: "1"
-key: "company"
-
-name: "companies"
-doc-link: "https://www.deputy.com/api-doc/Resources/Company"
-
-description: |
- The `{{ table.name }}` table contains info about companies.
-
-replication-method: "Key-based Incremental"
-
-attributes:
- - name: "Modified"
- type: "integer"
- primary-key: true
- description: "The company ID."
- foreign-key-id: "company-id"
-
- - name: "Modified"
- type: "date-time"
- replication-key: true
- description: "The time the company was last modified."
-
- - name: "Portfolio"
- type: "integer"
- description: ""
-
- - name: "Code"
- type: "string"
- description: ""
-
- - name: "Active"
- type: "boolean"
- description: ""
-
- - name: "ParentCompany"
- type: "integer"
- description: ""
- foreign-key-id: "company-id"
-
- - name: "CompanyName"
- type: "string"
- description: ""
-
- - name: "TradingName"
- type: "string"
- description: ""
-
- - name: "BusinessNumber"
- type: "string"
- description: ""
-
- - name: "CompanyNumber"
- type: "string"
- description: ""
-
- - name: "IsWorkplace"
- type: "boolean"
- description: ""
-
- - name: "IsPayrollEntity"
- type: "boolean"
- description: ""
-
- - name: "PayrollExportCode"
- type: "integer"
- description: ""
-
- - name: "Address"
- type: "integer"
- description: ""
- foreign-key-id: "address-id"
-
- - name: "Contact"
- type: "integer"
- description: ""
- foreign-key-id: "contact-id"
-
- - name: "Creator"
- type: "integer"
- description: ""
- foreign-key-id: "employee-id"
-
- - name: "Created"
- type: "date-time"
- description: ""
----
\ No newline at end of file
diff --git a/_integration-schemas/deputy/v1/contacts.md b/_integration-schemas/deputy/v1/contacts.md
deleted file mode 100644
index 979db20bd..000000000
--- a/_integration-schemas/deputy/v1/contacts.md
+++ /dev/null
@@ -1,114 +0,0 @@
----
-tap: "deputy"
-version: "1"
-key: "contact"
-
-name: "contacts"
-doc-link: "https://www.deputy.com/api-doc/Resources/Contact"
-
-description: |
- The `{{ table.name }}` table contains info about contacts.
-
-replication-method: "Key-based Incremental"
-
-attributes:
- - name: "Modified"
- type: "integer"
- primary-key: true
- description: "The contact ID."
- foreign-key-id: "contact-id"
-
- - name: "Modified"
- type: "date-time"
- replication-key: true
- description: "The time the contact was last modified."
-
- - name: "Phone1"
- type: "string"
- description: ""
-
- - name: "Phone2"
- type: "string"
- description: ""
-
- - name: "Phone3"
- type: "string"
- description: ""
-
- - name: "Fax"
- type: "string"
- description: ""
-
- - name: "Phone1Type"
- type: "string"
- description: ""
-
- - name: "Phone2Type"
- type: "string"
- description: ""
-
- - name: "Phone3Type"
- type: "string"
- description: ""
-
- - name: "PrimaryPhone"
- type: "integer"
- description: ""
-
- - name: "Email1"
- type: "string"
- description: ""
-
- - name: "Email2"
- type: "string"
- description: ""
-
- - name: "Email1Type"
- type: "string"
- description: ""
-
- - name: "Email2Type"
- type: "string"
- description: ""
-
- - name: "PrimaryEmail"
- type: "integer"
- description: ""
-
- - name: "Im1"
- type: "string"
- description: ""
-
- - name: "Im2"
- type: "string"
- description: ""
-
- - name: "Im1Type"
- type: "string"
- description: ""
-
- - name: "Im2Type"
- type: "string"
- description: ""
-
- - name: "Web"
- type: "string"
- description: ""
-
- - name: "Notes"
- type: "string"
- description: ""
-
- - name: "Saved"
- type: "boolean"
- description: ""
-
- - name: "Creator"
- type: "integer"
- description: ""
- foreign-key-id: "employee-id"
-
- - name: "Created"
- type: "date-time"
- description: ""
----
\ No newline at end of file
diff --git a/_integration-schemas/deputy/v1/events.md b/_integration-schemas/deputy/v1/events.md
deleted file mode 100644
index b768ada11..000000000
--- a/_integration-schemas/deputy/v1/events.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-tap: "deputy"
-version: "1"
-key: "event"
-
-name: "events"
-doc-link: "https://www.deputy.com/api-doc/Resources/Event"
-
-description: |
- The `{{ table.name }}` table contains info about events.
-
-replication-method: "Key-based Incremental"
-
-attributes:
- - name: "Modified"
- type: "integer"
- primary-key: true
- description: "The event ID."
- #foreign-key-id: "event-id"
-
- - name: "Modified"
- type: "date-time"
- replication-key: true
- description: "The time the event was last modified."
-
- - name: "Title"
- type: "string"
- description: ""
-
- - name: "Schedule"
- type: "integer"
- description: ""
- foreign-key-id: "schedule-id"
-
- - name: "Colour"
- type: "string"
- description: ""
-
- - name: "ShowOnRoster"
- type: "boolean"
- description: ""
-
- - name: "BlockTimeOff"
- type: "boolean"
- description: ""
-
- - name: "AddToBudget"
- type: "number"
- description: ""
-
- - name: "Creator"
- type: "integer"
- description: ""
- foreign-key-id: "employee-id"
-
- - name: "Created"
- type: "date-time"
- description: ""
----
\ No newline at end of file
diff --git a/_integration-schemas/freshdesk/companies.md b/_integration-schemas/freshdesk/companies.md
deleted file mode 100755
index 3a048725e..000000000
--- a/_integration-schemas/freshdesk/companies.md
+++ /dev/null
@@ -1,55 +0,0 @@
----
-tap: "freshdesk"
-version: "1"
-
-name: "companies"
-doc-link: https://developers.freshdesk.com/api/#companies
-singer-schema:
-description: |
- The `{{ table.name }}` table contains info about the companies your various customers and contacts belong to.
-
- #### Custom Fields
-
- If applicable, Stitch will replicate custom fields related to `{{ table.name }}` in {{ integration.display_name }}.
-
-replication-method: "Key-based Incremental"
-api-method:
- name: "listAllCompanies"
- doc-link: https://developers.freshdesk.com/api/#list_all_companies
-
-attributes:
- - name: "id"
- type: "integer"
- primary-key: true
- description: "The company ID."
- foreign-key-id: "company-id"
-
- - name: "updated_at"
- type: "date-time"
- replication-key: true
- description: "The last time the company was updated."
-
- - name: "description"
- type: "string"
- description: "The description of the company."
-
- - name: "domains"
- type: "array"
- description: "The domains (ex: `stitchdata.com`) associated with the company."
- subattributes:
- - name: "value"
- type: "string"
- description: "The domain (ex: `stitchdata.com`) associated with the company."
-
- - name: "name"
- type: "string"
- description: "The name of the company."
-
- - name: "note"
- type: "string"
- description: "Any notes about the company."
-
- - name: "created_at"
- type: "date-time"
- description: "The timestamp when the company was first created."
----
\ No newline at end of file
diff --git a/_integration-schemas/github/v1/reviews.md b/_integration-schemas/github/v1/reviews.md
deleted file mode 100644
index c056c8783..000000000
--- a/_integration-schemas/github/v1/reviews.md
+++ /dev/null
@@ -1,87 +0,0 @@
----
-# -------------------------- #
-# Table Details #
-# -------------------------- #
-
-tap: "github"
-version: "1"
-key: "review"
-
-name: "reviews"
-doc-link: https://developer.github.com/v3/pulls/reviews/
-singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/reviews.json
-description: |
- The `{{ table.name }}` table contains info about pull request reviews in the repositories specified for the integration. A pull request review is a group of comments on a pull request.
-
-
-# -------------------------- #
-# Replication Details #
-# -------------------------- #
-
-api-method:
- name: "List reviews for a pull request"
- doc-link: "https://docs.github.com/en/rest/reference/pulls#list-reviews-for-a-pull-request"
-
-replication-method: "Key-based Incremental"
-replication-key:
- name: "since"
- based-on: "updated_at"
- tooltip: "This is a query parameter used to extract new/updated data from GitHub. It will not be included in the table's fields."
-
-dependent-table-key: "pull-request"
-
-
-# -------------------------- #
-# Table Attributes #
-# -------------------------- #
-
-attributes:
- - name: "id"
- type: "integer"
- primary-key: true
- description: "The review ID."
- # foreign-key-id: "review-id"
-
- - name: "body"
- type: "string"
- description: "The description of the review."
-
- - name: "commit_id"
- type: "string"
- description: "The ID of the commit the review was performed on."
- foreign-key-id: "commit-id"
-
- - name: "html_url"
- type: "string"
- description: "The HTML URL to the review."
-
- - name: "pull_request_url"
- type: "string"
- description: "The URL to the pull request being reviewed."
-
- - name: "state"
- type: "string"
- description: |
- The state of the review. Possible values are:
-
- - `APPROVED`
- - `PENDING`
- - `CHANGES_REQUESTED`
-
- - name: "submitted_at"
- type: "date-time"
- description: ""
-
- - name: "user"
- type: "object"
- description: "Details about the user who submitted the review."
- subattributes:
- - name: "id"
- type: "integer"
- description: "The user ID."
- foreign-key-id: "collaborator-id"
-
- - name: "login"
- type: "string"
- description: "The user's GitHub username."
----
\ No newline at end of file
diff --git a/_integration-schemas/google-adwords/foreign-keys.md b/_integration-schemas/google-adwords/foreign-keys.md
deleted file mode 100644
index 960d869eb..000000000
--- a/_integration-schemas/google-adwords/foreign-keys.md
+++ /dev/null
@@ -1,71 +0,0 @@
----
-tap-reference: "google-adwords"
-
-version: "1"
-
-foreign-keys:
- - id: "customer-id"
- attribute: "customerId"
- table: "accounts"
- all-foreign-keys:
- - table: "account_performance_report"
- - table: "accounts"
- - table: "ad_groups"
- - table: "ad_performance_report"
- - table: "adgroup_performance_report"
- - table: "age_range_performance_report"
- - table: "audience_performance_report"
- - table: "call_metrics_call_details_performance_report"
- - table: "campaign_performance_report"
- - table: "campaigns"
- - table: "click_performance_report"
- - table: "criteria_performance_report"
- - table: "display_keyword_performance_report"
- - table: "display_topics_performance_report"
- - table: "final_url_report"
- - table: "gender_performance_report"
- - table: "geo_performance_report"
- - table: "keywordless_query_report"
- - table: "keywords_performance_report"
- - table: "search_query_performance_report"
- - table: "video_performance_report"
-
- - id: "adgroup-id"
- attribute: "adGroupId"
- table: "ad_groups"
- all-foreign-keys:
- - table: "ad_groups"
- join-on: "id"
- - table: "ads"
-
- - id: "base-adgroup-id"
- attribute: "baseAdGroupId"
- table: "ad_groups"
- all-foreign-keys:
- - table: "ads"
- - table: "ad_groups"
-
- - id: "base-campaign-id"
- attribute: "baseCampaignId"
- table: "campaigns"
- all-foreign-keys:
- - table: "ads"
- - table: "ad_groups"
- - table: "campaigns"
-
- - id: "campaign-id"
- attribute: "campaignId"
- table: "campaigns"
- all-foreign-keys:
- - table: "ad_groups"
- - table: "campaigns"
-
- - id: "label-id"
- attribute: "id"
- table: ""
- all-foreign-keys:
- - table: "ad_groups"
- subtable: "labels"
- - table: "campaigns"
- subtable: "labels"
----
\ No newline at end of file
diff --git a/_integration-schemas/harvest/v1/invoices.md b/_integration-schemas/harvest/v1/invoices.md
deleted file mode 100644
index 8c8e915b1..000000000
--- a/_integration-schemas/harvest/v1/invoices.md
+++ /dev/null
@@ -1,154 +0,0 @@
----
-tap: "harvest"
-version: "1"
-
-name: "invoices"
-doc-link: http://help.getharvest.com/api-v1/invoices-api/invoices/show-invoices#show-a-single-invoice
-singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/invoices.json
-description: |
- The `invoices` table contains info about the invoices in your Harvest account.
-
-replication-method: "Key-based Incremental"
-api-method:
- name:
- doc-link:
-
-attributes:
- - name: "id"
- type: "integer"
- primary-key: true
- description: "The invoice ID."
- # foreign-keys:
- # - table: "invoice_messages"
- # attribute: "invoice_id"
- # - table: "invoice_payments"
- # attribute: "invoice_id"
-
- - name: "updated_at"
- type: "date-time"
- replication-key: true
- description: "The last time the invoice was updated."
-
- - name: "client_id"
- type: "integer"
- description: "The ID of the client associated with the invoice."
- # foreign-keys:
- # - table: "clients"
- # attribute: "id"
- # - table: "contacts"
- # attribute: "client_id"
-
- - name: "client_name"
- type: "string"
- description: "The name of the client associated with the invoice."
-
- - name: "period_start"
- type: "string"
- description: "The start date of the period associated with the invoice."
-
- - name: "period_end"
- type: "string"
- description: "The end date of the period associated with the invoice."
-
- - name: "number"
- type: "string"
- description: "The invoice number. If no value is set, Harvest will automatically generate a value."
-
- - name: "issued_at"
- type: "string"
- description: "The date the invoice was issued."
-
- - name: "due_at"
- type: "string"
- description: "The date that payment of the invoice is due by."
-
- - name: "amount"
- type: "number"
- description: "The total amount of the invoice."
-
- - name: "currency"
- type: "string"
- description: "The currency denomination of the invoice."
-
- - name: "state"
- type: "string"
- description: |
- The state of the invoice. Possible values:
-
- - `open` - May apply for unpaid, sent invoices (either current or past due)
- - `partial` - Applicable to invoices with partial payments
- - `draft`
- - `paid` - Applicable to invoices paid in full
- - `unpaid`
- - `pastdue`
- - `closed` - Applicable to written off invoices
- doc-link: http://help.getharvest.com/api-v1/invoices-api/invoices/show-invoices/#show-recently-created-invoices
-
- - name: "notes"
- type: "string"
- description: "Any notes entered about the invoice."
-
- - name: "purchase_order"
- type: "string"
- description: "If applicable, the purchase order associated with the invoice."
-
- - name: "due_amount"
- type: "number"
- description: "The due amount of the invoice."
-
- - name: "due_at_human_format"
- type: "string"
- description: "The human-readable format of the invoice due date."
-
- - name: "created_at"
- type: "date-time"
- description: "The time the invoice was created."
-
- - name: "tax"
- type: "string, number"
- description: "The tax percentage applied to the subtotal, including line items and discounts."
-
- - name: "tax_amount"
- type: "number"
- description: "The first amount of tax included, calculated from `tax`. If `tax` is undefined, this value will be `null`."
-
- - name: "subject"
- type: "string"
- description: "The subject of the invoice."
-
- - name: "recurring_invoice_id"
- type: "integer"
- description: "If a recurring invoice, this field will contain the ID of the recurring invoice."
-
- - name: "tax2"
- type: "string, number"
- description: "The tax percentage applied to the subtotal, including line items and discounts."
-
- - name: "tax2_amount"
- type: "number"
- description: "The amount calculated from `tax2`."
-
- - name: "client_key"
- type: "string"
- description: "A string used to build a URL to the public web invoice for the associated client."
-
- - name: "estimate_id"
- type: "integer"
- description: "If applicable, the ID of the estimate associated with the invoice."
-
- - name: "discount"
- type: "string, number"
- description: "If applicable, the percentage to be subtracted from the subtotal."
-
- - name: "discount_amount"
- type: "number"
- description: "If applicable, the amount calculated from `discount`."
-
- - name: "retainer_id"
- type: "integer"
- description: "If applicable, the ID of the retainer associated with the invoice."
-
- - name: "created_by_id"
- type: "integer"
- description: "The ID of the user who created the invoice."
----
\ No newline at end of file
diff --git a/_integration-schemas/invoiced/customers.md b/_integration-schemas/invoiced/customers.md
deleted file mode 100644
index 3a9d8cc20..000000000
--- a/_integration-schemas/invoiced/customers.md
+++ /dev/null
@@ -1,224 +0,0 @@
----
-tap: "invoiced"
-version: "1"
-
-name: "customers"
-doc-link: ""
-singer-schema: "https://github.com/singer-io/tap-invoiced/blob/master/tap_invoiced/schemas/customers.json"
-description: |
- The `{{ table.name }}` table contains info about the customers in your {{ integration.display_name }} account.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all customers"
- doc-link: "https://invoiced.com/docs/api/#list-all-customers"
-
-attributes:
- - name: "id"
- type: "integer"
- primary-key: true
- description: "The customer ID."
- foreign-key-id: "customer-id"
-
- - name: "updated_at"
- type: "date-time"
- replication-key: true
- description: "The time the customer was last updated."
-
- - name: "address1"
- type: "string"
- description: "The first line of the customer's address."
-
- - name: "address2"
- type: "string"
- description: "The second line of the customer's address."
-
- - name: "attention_to"
- type: "string"
- description: "Used for `ATTN: address` line if `type: company`."
-
- - name: "autopay"
- type: "boolean"
- description: "If `true`, AutoPay is enabled for the customer."
-
- - name: "chase"
- type: "boolean"
- description: ""
-
- - name: "chasing_cadence"
- type: "integer"
- description: ""
-
- - name: "city"
- type: "string"
- description: "The city of the customer's address."
-
- - name: "country"
- type: "string"
- description: |
- The two-letter [ISO code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2){:target="new"} of the customer's country.
-
- - name: "created_at"
- type: "date-time"
- description: "The time the customer was created."
-
- - name: "credit_hold"
- type: "boolean"
- description: ""
-
- - name: "credit_limit"
- type: "number"
- description: "The credit limit for the customer."
-
- - name: "email"
- type: "string"
- description: "The customer's email address."
-
- - name: "language"
- type: "string"
- description: |
- The two-letter [ISO code](https://en.wikipedia.org/wiki/ISO_639-1){:target="new"} of the customer's language.
-
- - name: "metadata"
- type: "object"
- description: "Additional information about the customer."
- subattributes:
-
- - name: "name"
- type: "string"
- description: "The name of the customer."
-
- - name: "next_chase_step"
- type: "integer"
- description: ""
-
- - name: "notes"
- type: "string"
- description: "Additional notes about the customer."
-
- - name: "number"
- type: "string"
- description: "A unique ID used to tie the customer to external systems."
-
- - name: "parent_customer"
- type: "integer"
- description: ""
-
- - name: "payment_source"
- type: "object"
- description: "The customer's payment source, if attached."
- subattributes:
- - name: "id"
- type: "integer"
- description: "The payment source's ID."
-
- - name: "object"
- type: "string"
- description: |
- The object type of the payment source. Possible values are:
-
- - `card`
- - `bank_account`
-
- - name: "brand"
- type: "string"
- description: "**Applicable to `object: card` only.** The card brand."
-
- - name: "last4"
- type: "string"
- description: "The last four digits of the card or bank account."
-
- - name: "exp_month"
- type: "integer"
- description: "**Applicable to `object: card` only.** The expiry month."
-
- - name: "exp_year"
- type: "integer"
- description: "**Applicable to `object: card` only.** The expiry year."
-
- - name: "funding"
- type: "string"
- description: |
- **Applicable to `object: card` only.** The funding instrument of the card. Possible values are:
-
- - `credit`
- - `debit`
- - `prepaid`
- - `unknown`
-
- - name: "bank_name"
- type: "string"
- description: "**Applicable to `object: bank_account` only.** The name of the bank."
-
- - name: "routing_number"
- type: "string"
- description: "**Applicable to `object: bank_account` only.** The routing number."
-
- - name: "verified"
- type: "boolean"
- description: "**Applicable to `object: bank_account` only.** Indicates whether the bank account has been verified with instant verification or microdeposits."
-
- - name: "currency"
- type: "string"
- description: |
- **Applicable to `object: bank_account` only.** The [three letter ISO code](https://en.wikipedia.org/wiki/ISO_4217){:target="new"} used by the bank account.
-
- - name: "payment_terms"
- type: "string"
- description: "The payment terms for the customer when AutoPay is not enabled."
-
- - name: "phone"
- type: "string"
- description: "The customer's phone number."
-
- - name: "postal_code"
- type: "string"
- description: "The customer's postal code."
-
- - name: "sign_up_page"
- type: "integer"
- description: "The ID of the sign up page used by the customer."
-
- - name: "state"
- type: "string"
- description: "The customer's state."
-
- - name: "tax_id"
- type: "string"
- description: "The customer's tax ID."
-
- - name: "taxable"
- type: "boolean"
- description: "If `true`, the customer is not tax exempt."
-
- - name: "taxes"
- type: "array"
- description: "The taxes applicable to the customer."
- subattributes: &taxes
- - name: "id"
- type: "integer"
- primary-key: true
- description: "The tax ID."
- foreign-key-id: "tax-id"
-
- - name: "object"
- type: "string"
- description: "This will be `tax`."
-
- - name: "amount"
- type: "number"
- description: "The amount of tax."
-
- - name: "tax_rate"
- type: "number"
- description: "The tax rate the tax was calculated from."
-
- - name: "type"
- type: "string"
- description: |
- The customer's type. Possible values are:
-
- - `company`
- - `person`
----
\ No newline at end of file
diff --git a/_integration-schemas/invoiced/invoices.md b/_integration-schemas/invoiced/invoices.md
deleted file mode 100644
index fadc2306a..000000000
--- a/_integration-schemas/invoiced/invoices.md
+++ /dev/null
@@ -1,245 +0,0 @@
----
-tap: "invoiced"
-version: "1"
-
-name: "invoices"
-doc-link: ""
-singer-schema: "https://github.com/singer-io/tap-invoiced/blob/master/tap_invoiced/schemas/invoices.json"
-description: |
- The `{{ table.name }}` table contains info about the invoices in your {{ integration.display_name }} account. An invoice represents a balance owed to you by a customer.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all invoices"
- doc-link: "https://invoiced.com/docs/api/#list-all-invoices"
-
-attributes:
- - name: "id"
- type: "integer"
- primary-key: true
- description: "The invoice ID."
- foreign-key-id: "invoice-id"
-
- - name: "updated_at"
- type: "date-time"
- replication-key: true
- description: "The time the invoice was last updated."
-
- - name: "attempt_count"
- type: "integer"
- description: "The number of payment attempts for the invoice."
-
- - name: "autopay"
- type: "boolean"
- description: "If `true`, AutoPay is enabled for the invoice."
-
- - name: "balance"
- type: "number"
- description: "The balance of the invoice."
-
- - name: "closed"
- type: "boolean"
- description: "If `true`, an invoice is closed and considered bad debt. No further payments are allowed."
-
- - name: "created_at"
- type: "date-time"
- description: "The time the invoice was created."
-
- - name: "currency"
- type: "string"
- description: |
- The [three letter ISO code](https://en.wikipedia.org/wiki/ISO_4217){:target="new"} used by the invoice.
-
- - name: "customer"
- type: "integer"
- description: "The ID of the customer associated with the invoice."
- foreign-key-id: "customer-id"
-
- - name: "date"
- type: "date-time"
- description: "The date of the invoice."
-
- - name: "discounts"
- type: "array"
- description: "The discounts applicable to the estimate."
- subattributes: &discounts
- - name: "id"
- type: "integer"
- primary-key: true
- description: "The discount ID."
- foreign-key-id: "discount-id"
-
- - name: "object"
- type: "string"
- description: "This will be `discount`."
-
- - name: "amount"
- type: "integer"
- description: "The amount of the discount."
-
- - name: "coupon"
- type: "object"
- description: "The coupon the discount was calculated from, if applicable."
-
- - name: "expires"
- type: "date-time"
- description: "The time until the discount expires."
-
- - name: "draft"
- type: "boolean"
- description: "If `true`, the invoice is a draft. If `false`, the invoice is considered outstanding."
-
- - name: "due_date"
- type: "date-time"
- description: "The due date of the invoice."
-
- - name: "items"
- type: "array"
- description: "The line items associated with the invoice."
- subattributes:
- - name: "id"
- type: "integer"
- primary-key: true
- description: "The line item ID."
- foreign-key-id: "line-item-id"
-
- - name: "object"
- type: "string"
- description: "This will be `line_item`."
-
- - name: "catalog_item"
- type: "string"
- description: "The catalog item ID."
-
- - name: "type"
- type: "string"
- description: "The line item type."
-
- - name: "name"
- type: "string"
- description: "The name of the line item."
-
- - name: "description"
- type: "string"
- description: "The description of the line item."
-
- - name: "quantity"
- type: "integer"
- description: "The quantity of the line item."
-
- - name: "unit_cost"
- type: "integer"
- description: "The unit cost or rate of the line item."
-
- - name: "amount"
- type: "integer"
- description: "The total amount of the line item, calculated as `quantity x unit_cost`."
-
- - name: "discountable"
- type: "boolean"
- description: "If `true`, the line item is discountable and included in the credit note's total discounts."
-
- - name: "discounts"
- type: "array"
- description: "The discounts applicable to the line item."
- subattributes: *discounts
-
- - name: "taxable"
- type: "boolean"
- description: "If `true`, the line item is taxable and included in the credit note's total taxes."
-
- - name: "taxes"
- type: "array"
- description: "The taxes applicable to the line item."
- subattributes: &taxes
- - name: "id"
- type: "integer"
- primary-key: true
- description: "The tax ID."
- foreign-key-id: "tax-id"
-
- - name: "object"
- type: "string"
- description: "This will be `tax`."
-
- - name: "amount"
- type: "number"
- description: "The amount of tax."
-
- - name: "tax_rate"
- type: "number"
- description: "The tax rate the tax was calculated from."
-
- - name: "metadata"
- type: "object"
- description: "Additional information about the line item."
- subattributes: &metadata
- - name: ""
- type:
- description: ""
-
- - name: "metadata"
- type: "object"
- description: "Additional information about the invoice."
- subattributes:
-
- - name: "name"
- type: "string"
- description: "The name of the invoice."
-
- - name: "needs_attention"
- type: "boolean"
- description: ""
-
- - name: "next_payment_attempt"
- type: "date-time"
- description: "The time of the next scheduled payment attempt, when in automatic collection."
-
- - name: "notes"
- type: "string"
- description: "Additional notes about the invoice."
-
- - name: "number"
- type: "string"
- description: "The reference number assigned to the invoice."
-
- - name: "paid"
- type: "boolean"
- description: "Indicates whether an invoice has been paid in full."
-
- - name: "payment_terms"
- type: "string"
- description: "The payment terms for the invoice. "
-
- - name: "status"
- type: "string"
- description: |
- The status of the invoice. Possible values are:
-
- - `draft`
- - `not_sent`
- - `sent`
- - `viewed`
- - `past_due`
- - `pending`
- - `paid`
-
- - name: "subscription"
- type: "integer"
- description: "The subscription ID, if the invoice came from a subscription."
- foreign-key-id: "subscription-id"
-
- - name: "subtotal"
- type: "number"
- description: "The subtotal of the invoice."
-
- - name: "taxes"
- type: "array"
- description: "The taxes applicable to the invoice."
- subattributes: *taxes
-
- - name: "total"
- type: "number"
- description: "The total of the invoice."
----
\ No newline at end of file
diff --git a/_integration-schemas/invoiced/subscriptions.md b/_integration-schemas/invoiced/subscriptions.md
deleted file mode 100644
index ab4de80a0..000000000
--- a/_integration-schemas/invoiced/subscriptions.md
+++ /dev/null
@@ -1,199 +0,0 @@
----
-tap: "invoiced"
-version: "1"
-
-name: "subscriptions"
-doc-link: ""
-singer-schema: "https://github.com/singer-io/tap-invoiced/blob/master/tap_invoiced/schemas/subscriptions.json"
-description: |
- The `{{ table.name }}` table contains info about the subscriptions in your {{ integration.display_name }} account.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all subscriptions"
- doc-link: "https://invoiced.com/docs/api/#list-all-subscriptions"
-
-attributes:
- - name: "id"
- type: "integer"
- primary-key: true
- description: "The subscription ID."
- foreign-key-id: "subscription-id"
-
- - name: "updated_at"
- type: "date-time"
- replication-key: true
- description: "The time the subscription was last updated."
-
- - name: "addons"
- type: "array"
- description: "Details about subscription's add ons."
- subattributes:
- - name: "id"
- type: "integer"
- description: "The subscription ID."
-
- - name: "object"
- type: "string"
- description: "This will be `subscription_addon`."
-
- - name: "plan"
- type: "integer"
- description: "The ID of the plan associated with the subscription."
- foreign-key-id: "plan-id"
-
- - name: "quantity"
- type: "integer"
- description: "The quantity of the subscription add on."
-
- - name: "description"
- type: "string"
- description: "The description of the add on."
-
- - name: "created_at"
- type: "date-time"
- description: "The time when the add on was created."
-
- # - name: "approval"
- # type: "object"
- # description: ""
-
- - name: "cancel_at_period_end"
- type: "boolean"
- description: "If `true`, the subscription will be canceled at the end of the current billing period."
-
- - name: "canceled_at"
- type: "date-time"
- description: "The time when the subscription was canceled."
-
- - name: "contract_period_end"
- type: "date-time"
- description: ""
-
- - name: "contract_period_start"
- type: "date-time"
- description: ""
-
- - name: "contract_renewal_cycles"
- type: "integer"
- description: ""
-
- - name: "contract_renewal_mode"
- type: "string"
- description: ""
-
- - name: "created_at"
- type: "date-time"
- description: "The time when the subscription was created."
-
- - name: "customer"
- type: "integer"
- description: "The ID of the customer associated with the subscription."
- foreign-key-id: "customer-id"
-
- - name: "cycles"
- type: "integer"
- description: "The number of billing cycles the subscription runs for. When `null`, the subscription will run until canceled."
-
- - name: "discounts"
- type: "array"
- description: "The discounts applicable to the subscription."
- subattributes:
- - name: "id"
- type: "integer"
- primary-key: true
- description: "The discount ID."
- foreign-key-id: "discount-id"
-
- - name: "object"
- type: "string"
- description: "This will be `discount`."
-
- - name: "amount"
- type: "integer"
- description: "The amount of the discount."
-
- - name: "coupon"
- type: "object"
- description: "The coupon the discount was calculated from, if applicable."
-
- - name: "expires"
- type: "date-time"
- description: "The time until the discount expires."
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "mrr"
- type: "number"
- description: "The amount the subscription contributes to monthly recurring revenue."
-
- - name: "period_end"
- type: "date-time"
- description: "The start of the current billing period."
-
- - name: "period_start"
- type: "date-time"
- description: "The end of the current billing period."
-
- - name: "plan"
- type: "string"
- description: "The ID of the plan associated with the subscription."
- foreign-key-id: "plan-id"
-
- - name: "quantity"
- type: "number"
- description: "The plan quantity."
-
- - name: "recurring_total"
- type: "number"
- description: "The total recurring amount, including taxes."
-
- - name: "renewed_last"
- type: "date-time"
- description: "The date the subscription was last renewed."
-
- - name: "renews_next"
- type: "date-time"
- description: "The date the subscription renews next."
-
- - name: "start_date"
- type: "date-time"
- description: "The time the subscription starts, or started."
-
- - name: "status"
- type: "string"
- description: |
- The status of the subscription. Possible values are:
-
- - `not_started`
- - `active`
- - `past_due`
- - `finished`
- - `canceled`
-
- - name: "taxes"
- type: "array"
- description: "The taxes applicable to the subscription."
- subattributes:
- - name: "id"
- type: "integer"
- primary-key: true
- description: "The tax ID."
- foreign-key-id: "tax-id"
-
- - name: "object"
- type: "string"
- description: "This will be `tax`."
-
- - name: "amount"
- type: "number"
- description: "The amount of tax."
-
- - name: "tax_rate"
- type: "number"
- description: "The tax rate the tax was calculated from."
----
\ No newline at end of file
diff --git a/_integration-schemas/jira/v1/foreign-keys.md b/_integration-schemas/jira/v1/foreign-keys.md
deleted file mode 100644
index c4f3fe391..000000000
--- a/_integration-schemas/jira/v1/foreign-keys.md
+++ /dev/null
@@ -1,120 +0,0 @@
----
-tap-reference: "jira"
-
-version: "1"
-
-foreign-keys:
- - id: "changelog-id"
- attribute: ""
- table: "changelogs"
- all-foreign-keys:
- - table: "changelogs"
- join-on: "id"
-
- - id: "issue-comment-id"
- attribute: "issueCommentId"
- table: "issue_comments"
- all-foreign-keys:
- - table: "issue_comments"
- join-on: "id"
-
- - id: "issue-id"
- attribute: "issueId"
- table: "issues"
- all-foreign-keys:
- - table: "changelogs"
- - table: "issue_comments"
- - table: "issue_transitions"
- - table: "issues"
- join-on: "id"
- - table: "worklogs"
-
- - id: "issue-transition-id"
- attribute: "issueTransitionId"
- table: "issue_transitions"
- all-foreign-keys:
- - table: "issue_transitions"
- join-on: "id"
-
- - id: "project-type-key"
- attribute: "projectTypeKey"
- table: "project_types"
- all-foreign-keys:
- - table: "project_types"
- join-on: "key"
-
- - id: "project-category-id"
- attribute: "projectCategoryId"
- table: "project_categories"
- all-foreign-keys:
- - table: "project_categories"
- join-on: "id"
- - table: "projects"
- subattribute: "projectCategory"
- join-on: "id"
-
- - id: "project-id"
- attribute: "projectId"
- table: "projects"
- all-foreign-keys:
- - table: "projects"
- join-on: "id"
- - table: "versions"
-
- - id: "resolution-id"
- attribute: "resolutionId"
- table: "resolutions"
- all-foreign-keys:
- - table: "resolutions"
- join-on: "id"
-
- - id: "role-id"
- attribute: "roleId"
- table: "roles"
- all-foreign-keys:
- - table: "roles"
- join-on: "id"
-
- - id: "user-key"
- attribute: "key"
- table: "users"
- all-foreign-keys:
- - table: "changelogs"
- subattribute: "author"
- - table: "issue_comments"
- subattribute: "author"
- - table: "issue_comments"
- subattribute: "updateAuthor"
- - table: "issues"
- subtattribute: "fields"
- subtable: "attachment"
- subsubattribute: "author"
- - table: "projects"
- subattribute: "components__assignee"
- - table: "projects"
- subattribute: "components__lead"
- - table: "projects"
- subattribute: "components__realAssignee"
- - table: "projects"
- subattribute: "lead"
- - table: "users"
- join-on: "key"
- - table: "worklogs"
- subattribute: "author"
- - table: "worklogs"
- subattribute: "updateAuthor"
-
- - id: "version-id"
- attribute: "versionId"
- table: "versions"
- all-foreign-keys:
- - tables: "versions"
- join-on: "id"
-
- - id: "worklog-id"
- attribute: "worklogId"
- table: "worklogs"
- all-foreign-keys:
- - table: "worklogs"
- join-on: "id"
----
\ No newline at end of file
diff --git a/_integration-schemas/jira/v1/projects.md b/_integration-schemas/jira/v1/projects.md
deleted file mode 100644
index d2a7d6137..000000000
--- a/_integration-schemas/jira/v1/projects.md
+++ /dev/null
@@ -1,472 +0,0 @@
----
-tap: "jira"
-version: "1"
-key: "project"
-
-name: "projects"
-doc-link: "https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-project-get"
-singer-schema: "https://github.com/singer-io/tap-jira/tree/77206190933146b7cf51f14bfc7aaf670539ca5f/tap_jira/schemas/projects.json"
-description: |
- The `{{ table.name }}` table contains info about the projects in your {{ integration.display_name }} account.
-
- **Note**: Stitch will only replicate data from the projects that the user whose credentials are [authenticating the integration](#add-stitch-data-source) can access. If there are missing projects, verify that the authenticating user (found in the integration's {{ app.page-names.int-settings }} page) has access to the missing projects.
-
-replication-method: "Full Table"
-
-api-method:
- name: "Get all projects"
- doc-link: "https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-project-get"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The project ID."
- foreign-key-id: "project-id"
-
- - name: "assigneeType"
- type: "string"
- description: |
- The default assignee when creating issues for the project. Possible values are:
-
- - `PROJECT_LEAD`
- - `UNASSIGNED`
-
- - name: "avatarUrls"
- type: "object"
- description: "The URLs associated with the avatars used by the project."
- subattributes:
- - name: "16x16"
- type: "string"
- description: "The URL of the project's 16x16 avatar."
-
- - name: "24x24"
- type: "string"
- description: "The URL of the project's 24x24 avatar."
-
- - name: "32x32"
- type: "string"
- description: "The URL of the project's 32x32 avatar."
-
- - name: "48x48"
- type: "string"
- description: "The URL of the project's 48x48 avatar."
-
- - name: "components"
- type: "array"
- description: "A list of the components contained in the project."
- subattributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: |
- The component ID.
-
- {% assign description-type = "assignee" %}
-
- - name: "assignee"
- type: "object"
- description: ""
- subattributes:
- - name: "accountId"
- type: "string"
- description: "The {{ description-type }}'s account ID."
-
- - name: "active"
- type: "boolean"
- description: "Indicates if the {{ description-type }} is active."
-
- - name: "applicationRoles"
- type: "object"
- description: "Application roles associated with the {{ description-type }}."
- subattributes:
- - name: "items"
- type: "array"
- description: "A list of application roles associated with the {{ description-type }}."
- subattributes:
- - name: "name"
- type: "string"
- description: "The name of the application role."
-
- - name: "self"
- type: "string"
- description: "The URL of the application role."
-
- - name: "max-results"
- type: "integer"
- description: ""
-
- - name: "size"
- type: "integer"
- description: ""
-
- - name: "avatarUrls"
- type: "object"
- description: "The URLs associated with the avatars used by the {{ description-type }}."
- subattributes:
- - name: "16x16"
- type: "string"
- description: "The URL of the {{ description-type }}'s 16x16 avatar."
-
- - name: "24x24"
- type: "string"
- description: "The URL of the {{ description-type }}'s 24x24 avatar."
-
- - name: "32x32"
- type: "string"
- description: "The URL of the {{ description-type }}'s 32x32 avatar."
-
- - name: "48x48"
- type: "string"
- description: "The URL of the {{ description-type }}'s 48x48 avatar."
-
- - name: "displayName"
- type: "string"
- description: "The {{ description-type }}'s display name. Depending on the user's privacy setting, this may be returned as null."
-
- - name: "emailAddress"
- type: "string"
- description: "The {{ description-type }}'s email address. Depending on the user's privacy setting, this may be returned as null."
-
- - name: "expand"
- type: "string"
- description: "Details of expands available for the {{ description-type }} details."
-
- - name: "groups"
- type: "object"
- description: "Details about the groups the {{ description-type }} is associated with."
- subattributes:
- - name: "items"
- type: "array"
- description: "The groups the {{ description-type }} is associated with."
- subattributes:
- - name: "name"
- type: "string"
- description: "The name of the group."
-
- - name: "self"
- type: "string"
- description: "The URL for the group."
-
- - name: "max-results"
- type: "integer"
- description: ""
-
- - name: "size"
- type: "integer"
- description: ""
-
- - name: "key"
- type: "string"
- description: "The key of the {{ description-type }}."
- foreign-key-id: "user-key"
-
- - name: "locale"
- type: "string"
- description: "The locale of the {{ description-type }}. Depending on the user's privacy setting, this may be returned as null."
-
- - name: "name"
- type: "string"
- description: "The name of the {{ description-type }}."
-
- - name: "self"
- type: "string"
- description: "The URL for the {{ description-type }}."
-
- - name: "timeZone"
- type: "string"
- description: "The time zone specified in the {{ description-type }}'s profile. Depending on the user's privacy setting, this may be returned as null."
-
- - name: "assigneeType"
- type: "string"
- description: |
- The user type used to determine the assignee for issues created with this component. Possible values are:
-
- - `COMPONENT_LEAD` - The assignee to any issues created with this component is nominally the lead for the component.
- - `PROJECT_DEFAULT` - The assignee to any issues created with this component is nominally the default assignee for the project the component is in.
- - `PROJECT_LEAD` - The assignee to any issues created with this component is nominally the lead for the project the component is in.
- - `UNASSIGNED` - An assignee is not set for issues created with this component.
-
- - name: "description"
- type: "string"
- description: "A description of the component."
-
- - name: "isAssigneeTypeValid"
- type: "boolean"
- description: |
- Indicates if the `assigneeType` is valid.
-
- {% assign description-type = "lead user" %}
-
- - name: "lead"
- type: "object"
- description: |
- Details about the lead user associated with the project.
- subattributes:
- - name: "accountId"
- type: "string"
- description: "The {{ description-type }}'s account ID."
-
- - name: "active"
- type: "boolean"
- description: "Indicates if the {{ description-type }} is active."
-
- - name: "applicationRoles"
- type: "object"
- description: "Application roles associated with the {{ description-type }}."
- subattributes:
- - name: "items"
- type: "array"
- description: "A list of application roles associated with the {{ description-type }}."
- subattributes:
- - name: "name"
- type: "string"
- description: "The name of the application role."
-
- - name: "self"
- type: "string"
- description: "The URL of the application role."
-
- - name: "max-results"
- type: "integer"
- description: ""
-
- - name: "size"
- type: "integer"
- description: ""
-
- - name: "avatarUrls"
- type: "object"
- description: "The URLs associated with the avatars used by the {{ description-type }}."
- subattributes:
- - name: "16x16"
- type: "string"
- description: "The URL of the {{ description-type }}'s 16x16 avatar."
-
- - name: "24x24"
- type: "string"
- description: "The URL of the {{ description-type }}'s 24x24 avatar."
-
- - name: "32x32"
- type: "string"
- description: "The URL of the {{ description-type }}'s 32x32 avatar."
-
- - name: "48x48"
- type: "string"
- description: "The URL of the {{ description-type }}'s 48x48 avatar."
-
- - name: "displayName"
- type: "string"
- description: "The {{ description-type }}'s display name. Depending on the user's privacy setting, this may be returned as null."
-
- - name: "emailAddress"
- type: "string"
- description: "The {{ description-type }}'s email address. Depending on the user's privacy setting, this may be returned as null."
-
- - name: "expand"
- type: "string"
- description: "Details of expands available for the {{ description-type }} details."
-
- - name: "groups"
- type: "object"
- description: "Details about the groups the {{ description-type }} is associated with."
- subattributes:
- - name: "items"
- type: "array"
- description: "The groups the {{ description-type }} is associated with."
- subattributes:
- - name: "name"
- type: "string"
- description: "The name of the group."
-
- - name: "self"
- type: "string"
- description: "The URL for the group."
-
- - name: "max-results"
- type: "integer"
- description: ""
-
- - name: "size"
- type: "integer"
- description: ""
-
- - name: "key"
- type: "string"
- description: "The key of the {{ description-type }}."
- foreign-key-id: "user-key"
-
- - name: "locale"
- type: "string"
- description: "The locale of the {{ description-type }}. Depending on the user's privacy setting, this may be returned as null."
-
- - name: "name"
- type: "string"
- description: "The name of the {{ description-type }}."
-
- - name: "self"
- type: "string"
- description: "The URL for the {{ description-type }}."
-
- - name: "timeZone"
- type: "string"
- description: "The time zone specified in the {{ description-type }}'s profile. Depending on the user's privacy setting, this may be returned as null."
-
- - name: "leadUserName"
- type: "string"
- description: "The username of the component's lead user."
-
- - name: "name"
- type: "string"
- description: "The name of the component."
-
- - name: "project"
- type: "string"
- description: "The key of the project to which the component is assignee."
-
- - name: "projectId"
- type: "integer"
- description: |
- **Not used.**
-
- {% assign description-type = "assignee" %}
-
- - name: "realAssignee"
- type: "object"
- description: |
- Details about the real assignee associated with the component.
- subattributes: *userDetails
-
- - name: "realAssigneeType"
- type: "string"
- description: |
- The actual type of the assignee to issues created with this component, when an assignee cannot be set from the `assigneeType`. Possible values are:
-
- - `COMPONENT_LEAD` - When `assigneeType` is `COMPONENT_LEAD` and the component lead has permission to be assigned issues in the project that the component is in.
- - `PROJECT_LEAD` - When `assigneeType` is `PROJECT_LEAD` and the project lead has permission to be assigneed issues in the project that the component is in.
- - `UNASSIGNED` - When `assigneeType` is `UNASSIGNED` and {{ integration.display_name }} is configured to allow unassigned issues.
- - `PROJECT_DEFAULT` - When none of the preceeding cases are true.
-
- - name: "self"
- type: "string"
- description: "The URL of the component."
-
- - name: "description"
- type: "string"
- description: "A description of the project."
-
- - name: "email"
- type: "string"
- description: "The email address associated with the project."
-
- - name: "expand"
- type: "string"
- description: "Details of expands available for project details."
-
- - name: "issueTypes"
- type: "array"
- description: "A list of the issue types available in the project."
- subattributes:
- - name: "avatarId"
- type: "integer"
- description: "The ID of the issue type's avatar."
-
- - name: "description"
- type: "string"
- description: "The description of the issue type."
-
- - name: "iconUrl"
- type: "string"
- description: "The URL of the issue type's avatar."
-
- - name: "id"
- type: "string"
- description: "The ID of the issue type."
-
- - name: "name"
- type: "string"
- description: "The name of the issue type."
-
- - name: "self"
- type: "string"
- description: "The URL of the issue type."
-
- - name: "subtask"
- type: "boolean"
- description: "Indicates whether the issue type can be used to create subtasks."
-
- - name: "key"
- type: "string"
- description: |
- The project key.
-
- {% assign description-type = "lead user" %}
-
- - name: "lead"
- type: "object"
- description: "Details about the lead user associated with the project."
- subattributes: *userDetails
-
- - name: "name"
- type: "string"
- description: "The name of the project."
-
- - name: "projectCategory"
- type: "object"
- description: "The category associated with the project."
- subattributes:
- - name: "description"
- type: "string"
- description: "The description of the project category."
-
- - name: "id"
- type: "string"
- description: "The ID of the project category."
- foreign-key-id: "project-category-id"
-
- - name: "name"
- type: "string"
- description: "The name of the project category."
-
- - name: "self"
- type: "string"
- description: "The URL of the project category."
-
- - name: "projectKeys"
- type: "array"
- description: ""
- subattributes:
- - name: "value"
- type: "string"
- description: ""
-
- - name: "projectTypeKey"
- type: "string"
- description: |
- The project type of the project. Possible values are:
-
- - `ops`
- - `software`
- - `service_desk`
- - `business`
-
- - name: "roles"
- type: "object"
- description: "The roles defined in the project."
- subattributes:
- - name: "varies"
- type: "string"
- description: "The role defined in the project."
-
- - name: "self"
- type: "string"
- description: "The URL of the project."
-
- - name: "simplified"
- type: "boolean"
- description: "Indicates whether the project is simplified."
-
- - name: "url"
- type: "string"
- description: "The URL of the project."
----
\ No newline at end of file
diff --git a/_integration-schemas/jira/v2/foreign-keys.md b/_integration-schemas/jira/v2/foreign-keys.md
deleted file mode 100644
index 529bda8ad..000000000
--- a/_integration-schemas/jira/v2/foreign-keys.md
+++ /dev/null
@@ -1,139 +0,0 @@
----
-tap-reference: "jira"
-
-version: "2"
-
-foreign-keys:
- - id: "changelog-id"
- attribute: ""
- table: "changelogs"
- all-foreign-keys:
- - table: "changelogs"
- join-on: "id"
-
- - id: "component-id"
- attribute: ""
- table: "components"
- all-foreign-keys:
- - table: "component"
- join-on: "id"
-
- - id: "issue-comment-id"
- attribute: "issueCommentId"
- table: "issue_comments"
- all-foreign-keys:
- - table: "issue_comments"
- join-on: "id"
-
- - id: "issue-id"
- attribute: "issueId"
- table: "issues"
- all-foreign-keys:
- - table: "changelogs"
- - table: "issue_comments"
- - table: "issue_transitions"
- - table: "issues"
- join-on: "id"
- - table: "worklogs"
-
- - id: "issue-transition-id"
- attribute: "issueTransitionId"
- table: "issue_transitions"
- all-foreign-keys:
- - table: "issue_transitions"
- join-on: "id"
-
- - id: "project-type-key"
- attribute: "projectTypeKey"
- table: "project_types"
- all-foreign-keys:
- - table: "project_types"
- join-on: "key"
-
- - id: "project-category-id"
- attribute: "projectCategoryId"
- table: "project_categories"
- all-foreign-keys:
- - table: "project_categories"
- join-on: "id"
- - table: "projects"
- subattribute: "projectCategory"
- join-on: "id"
-
- - id: "project-id"
- attribute: "projectId"
- table: "projects"
- all-foreign-keys:
- - table: "components"
- subattribute: "componentBean"
- - table: "components"
- - table: "projects"
- join-on: "id"
- - table: "versions"
-
- - id: "resolution-id"
- attribute: "resolutionId"
- table: "resolutions"
- all-foreign-keys:
- - table: "resolutions"
- join-on: "id"
-
- - id: "role-id"
- attribute: "roleId"
- table: "roles"
- all-foreign-keys:
- - table: "roles"
- join-on: "id"
-
- - id: "user-id"
- attribute: "accountId"
- table: "users"
- all-foreign-keys:
- - table: "changelogs"
- subattribute: "author"
- - table: "components"
- subattribute: "assignee"
- - table: "components"
- subattribute: "componentBean.assignee"
- - table: "components"
- subattribute: "componentBean.lead"
- - table: "components"
- subattribute: "componentBean.realAssignee"
- - table: "components"
- subattribute: "lead"
- - table: "components"
- subattribute: "realAssignee"
- - table: "issue_comments"
- subattribute: "author"
- - table: "issue_comments"
- subattribute: "updateAuthor"
- - table: "issues"
- subtattribute: "fields.attachment.author"
- - table: "projects"
- subattribute: "components.assignee"
- - table: "projects"
- subattribute: "components.lead"
- - table: "projects"
- subattribute: "components.realAssignee"
- - table: "projects"
- subattribute: "lead"
- - table: "users"
- - table: "worklogs"
- subattribute: "author"
- - table: "worklogs"
- subattribute: "updateAuthor"
-
- - id: "version-id"
- attribute: "versionId"
- table: "versions"
- all-foreign-keys:
- - tables: "versions"
- join-on: "id"
-
- - id: "worklog-id"
- attribute: "worklogId"
- table: "worklogs"
- all-foreign-keys:
- - table: "worklogs"
- join-on: "id"
----
\ No newline at end of file
diff --git a/_integration-schemas/jira/v2/projects.md b/_integration-schemas/jira/v2/projects.md
deleted file mode 100644
index 8a4b61506..000000000
--- a/_integration-schemas/jira/v2/projects.md
+++ /dev/null
@@ -1,474 +0,0 @@
----
-tap: "jira"
-version: "2"
-key: "project"
-
-name: "projects"
-doc-link: "https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-project-get"
-singer-schema: "https://github.com/singer-io/tap-jira/blob/master/tap_jira/schemas/projects.json"
-description: |
- The `{{ table.name }}` table contains info about the projects in your {{ integration.display_name }} account.
-
- **Note**: Stitch will only replicate data from the projects that the user whose credentials are [authenticating the integration](#add-stitch-data-source) can access. If there are missing projects, verify that the authenticating user (found in the integration's {{ app.page-names.int-settings }} page) has access to the missing projects.
-
-replication-method: "Full Table"
-
-api-method:
- name: "Get all projects"
- doc-link: "https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-project-get"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The project ID."
- foreign-key-id: "project-id"
-
- - name: "assigneeType"
- type: "string"
- description: |
- The default assignee when creating issues for the project. Possible values are:
-
- - `PROJECT_LEAD`
- - `UNASSIGNED`
-
- - name: "avatarUrls"
- type: "object"
- description: "The URLs associated with the avatars used by the project."
- subattributes:
- - name: "16x16"
- type: "string"
- description: "The URL of the project's 16x16 avatar."
-
- - name: "24x24"
- type: "string"
- description: "The URL of the project's 24x24 avatar."
-
- - name: "32x32"
- type: "string"
- description: "The URL of the project's 32x32 avatar."
-
- - name: "48x48"
- type: "string"
- description: "The URL of the project's 48x48 avatar."
-
- - name: "components"
- type: "array"
- description: "A list of the components contained in the project."
- subattributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: |
- The component ID.
-
- {% assign description-type = "assignee" %}
-
- - name: "assignee"
- type: "object"
- description: ""
- subattributes:
- - name: "accountId"
- type: "string"
- description: "The {{ description-type }}'s account ID."
- foreign-key-id: "user-id"
-
- - name: "active"
- type: "boolean"
- description: "Indicates if the {{ description-type }} is active."
-
- - name: "applicationRoles"
- type: "object"
- description: "Application roles associated with the {{ description-type }}."
- subattributes:
- - name: "items"
- type: "array"
- description: "A list of application roles associated with the {{ description-type }}."
- subattributes:
- - name: "name"
- type: "string"
- description: "The name of the application role."
-
- - name: "self"
- type: "string"
- description: "The URL of the application role."
-
- - name: "max-results"
- type: "integer"
- description: ""
-
- - name: "size"
- type: "integer"
- description: ""
-
- - name: "avatarUrls"
- type: "object"
- description: "The URLs associated with the avatars used by the {{ description-type }}."
- subattributes:
- - name: "16x16"
- type: "string"
- description: "The URL of the {{ description-type }}'s 16x16 avatar."
-
- - name: "24x24"
- type: "string"
- description: "The URL of the {{ description-type }}'s 24x24 avatar."
-
- - name: "32x32"
- type: "string"
- description: "The URL of the {{ description-type }}'s 32x32 avatar."
-
- - name: "48x48"
- type: "string"
- description: "The URL of the {{ description-type }}'s 48x48 avatar."
-
- - name: "displayName"
- type: "string"
- description: "The {{ description-type }}'s display name. Depending on the user's privacy setting, this may be returned as null."
-
- - name: "emailAddress"
- type: "string"
- description: "The {{ description-type }}'s email address. Depending on the user's privacy setting, this may be returned as null."
-
- - name: "expand"
- type: "string"
- description: "Details of expands available for the {{ description-type }} details."
-
- - name: "groups"
- type: "object"
- description: "Details about the groups the {{ description-type }} is associated with."
- subattributes:
- - name: "items"
- type: "array"
- description: "The groups the {{ description-type }} is associated with."
- subattributes:
- - name: "name"
- type: "string"
- description: "The name of the group."
-
- - name: "self"
- type: "string"
- description: "The URL for the group."
-
- - name: "max-results"
- type: "integer"
- description: ""
-
- - name: "size"
- type: "integer"
- description: ""
-
- - name: "key"
- type: "string"
- description: "The key of the {{ description-type }}."
- foreign-key-id: "user-key"
-
- - name: "locale"
- type: "string"
- description: "The locale of the {{ description-type }}. Depending on the user's privacy setting, this may be returned as null."
-
- - name: "name"
- type: "string"
- description: "The name of the {{ description-type }}."
-
- - name: "self"
- type: "string"
- description: "The URL for the {{ description-type }}."
-
- - name: "timeZone"
- type: "string"
- description: "The time zone specified in the {{ description-type }}'s profile. Depending on the user's privacy setting, this may be returned as null."
-
- - name: "assigneeType"
- type: "string"
- description: |
- The user type used to determine the assignee for issues created with this component. Possible values are:
-
- - `COMPONENT_LEAD` - The assignee to any issues created with this component is nominally the lead for the component.
- - `PROJECT_DEFAULT` - The assignee to any issues created with this component is nominally the default assignee for the project the component is in.
- - `PROJECT_LEAD` - The assignee to any issues created with this component is nominally the lead for the project the component is in.
- - `UNASSIGNED` - An assignee is not set for issues created with this component.
-
- - name: "description"
- type: "string"
- description: "A description of the component."
-
- - name: "isAssigneeTypeValid"
- type: "boolean"
- description: |
- Indicates if the `assigneeType` is valid.
-
- {% assign description-type = "lead user" %}
-
- - name: "lead"
- type: "object"
- description: |
- Details about the lead user associated with the project.
- subattributes:
- - name: "accountId"
- type: "string"
- description: "The {{ description-type }}'s account ID."
- foreign-key-id: "user-id"
-
- - name: "active"
- type: "boolean"
- description: "Indicates if the {{ description-type }} is active."
-
- - name: "applicationRoles"
- type: "object"
- description: "Application roles associated with the {{ description-type }}."
- subattributes:
- - name: "items"
- type: "array"
- description: "A list of application roles associated with the {{ description-type }}."
- subattributes:
- - name: "name"
- type: "string"
- description: "The name of the application role."
-
- - name: "self"
- type: "string"
- description: "The URL of the application role."
-
- - name: "max-results"
- type: "integer"
- description: ""
-
- - name: "size"
- type: "integer"
- description: ""
-
- - name: "avatarUrls"
- type: "object"
- description: "The URLs associated with the avatars used by the {{ description-type }}."
- subattributes:
- - name: "16x16"
- type: "string"
- description: "The URL of the {{ description-type }}'s 16x16 avatar."
-
- - name: "24x24"
- type: "string"
- description: "The URL of the {{ description-type }}'s 24x24 avatar."
-
- - name: "32x32"
- type: "string"
- description: "The URL of the {{ description-type }}'s 32x32 avatar."
-
- - name: "48x48"
- type: "string"
- description: "The URL of the {{ description-type }}'s 48x48 avatar."
-
- - name: "displayName"
- type: "string"
- description: "The {{ description-type }}'s display name. Depending on the user's privacy setting, this may be returned as null."
-
- - name: "emailAddress"
- type: "string"
- description: "The {{ description-type }}'s email address. Depending on the user's privacy setting, this may be returned as null."
-
- - name: "expand"
- type: "string"
- description: "Details of expands available for the {{ description-type }} details."
-
- - name: "groups"
- type: "object"
- description: "Details about the groups the {{ description-type }} is associated with."
- subattributes:
- - name: "items"
- type: "array"
- description: "The groups the {{ description-type }} is associated with."
- subattributes:
- - name: "name"
- type: "string"
- description: "The name of the group."
-
- - name: "self"
- type: "string"
- description: "The URL for the group."
-
- - name: "max-results"
- type: "integer"
- description: ""
-
- - name: "size"
- type: "integer"
- description: ""
-
- - name: "key"
- type: "string"
- description: "The key of the {{ description-type }}."
- foreign-key-id: "user-key"
-
- - name: "locale"
- type: "string"
- description: "The locale of the {{ description-type }}. Depending on the user's privacy setting, this may be returned as null."
-
- - name: "name"
- type: "string"
- description: "The name of the {{ description-type }}."
-
- - name: "self"
- type: "string"
- description: "The URL for the {{ description-type }}."
-
- - name: "timeZone"
- type: "string"
- description: "The time zone specified in the {{ description-type }}'s profile. Depending on the user's privacy setting, this may be returned as null."
-
- - name: "leadUserName"
- type: "string"
- description: "The username of the component's lead user."
-
- - name: "name"
- type: "string"
- description: "The name of the component."
-
- - name: "project"
- type: "string"
- description: "The key of the project to which the component is assignee."
-
- - name: "projectId"
- type: "integer"
- description: |
- **Not used.**
-
- {% assign description-type = "assignee" %}
-
- - name: "realAssignee"
- type: "object"
- description: |
- Details about the real assignee associated with the component.
- subattributes: *userDetails
-
- - name: "realAssigneeType"
- type: "string"
- description: |
- The actual type of the assignee to issues created with this component, when an assignee cannot be set from the `assigneeType`. Possible values are:
-
- - `COMPONENT_LEAD` - When `assigneeType` is `COMPONENT_LEAD` and the component lead has permission to be assigned issues in the project that the component is in.
- - `PROJECT_LEAD` - When `assigneeType` is `PROJECT_LEAD` and the project lead has permission to be assigneed issues in the project that the component is in.
- - `UNASSIGNED` - When `assigneeType` is `UNASSIGNED` and {{ integration.display_name }} is configured to allow unassigned issues.
- - `PROJECT_DEFAULT` - When none of the preceeding cases are true.
-
- - name: "self"
- type: "string"
- description: "The URL of the component."
-
- - name: "description"
- type: "string"
- description: "A description of the project."
-
- - name: "email"
- type: "string"
- description: "The email address associated with the project."
-
- - name: "expand"
- type: "string"
- description: "Details of expands available for project details."
-
- - name: "issueTypes"
- type: "array"
- description: "A list of the issue types available in the project."
- subattributes:
- - name: "avatarId"
- type: "integer"
- description: "The ID of the issue type's avatar."
-
- - name: "description"
- type: "string"
- description: "The description of the issue type."
-
- - name: "iconUrl"
- type: "string"
- description: "The URL of the issue type's avatar."
-
- - name: "id"
- type: "string"
- description: "The ID of the issue type."
-
- - name: "name"
- type: "string"
- description: "The name of the issue type."
-
- - name: "self"
- type: "string"
- description: "The URL of the issue type."
-
- - name: "subtask"
- type: "boolean"
- description: "Indicates whether the issue type can be used to create subtasks."
-
- - name: "key"
- type: "string"
- description: |
- The project key.
-
- {% assign description-type = "lead user" %}
-
- - name: "lead"
- type: "object"
- description: "Details about the lead user associated with the project."
- subattributes: *userDetails
-
- - name: "name"
- type: "string"
- description: "The name of the project."
-
- - name: "projectCategory"
- type: "object"
- description: "The category associated with the project."
- subattributes:
- - name: "description"
- type: "string"
- description: "The description of the project category."
-
- - name: "id"
- type: "string"
- description: "The ID of the project category."
- foreign-key-id: "project-category-id"
-
- - name: "name"
- type: "string"
- description: "The name of the project category."
-
- - name: "self"
- type: "string"
- description: "The URL of the project category."
-
- - name: "projectKeys"
- type: "array"
- description: ""
- subattributes:
- - name: "value"
- type: "string"
- description: ""
-
- - name: "projectTypeKey"
- type: "string"
- description: |
- The project type of the project. Possible values are:
-
- - `ops`
- - `software`
- - `service_desk`
- - `business`
-
- - name: "roles"
- type: "object"
- description: "The roles defined in the project."
- subattributes:
- - name: "varies"
- type: "string"
- description: "The role defined in the project."
-
- - name: "self"
- type: "string"
- description: "The URL of the project."
-
- - name: "simplified"
- type: "boolean"
- description: "Indicates whether the project is simplified."
-
- - name: "url"
- type: "string"
- description: "The URL of the project."
----
\ No newline at end of file
diff --git a/_integration-schemas/mailshake/v1/leads.md b/_integration-schemas/mailshake/v1/leads.md
deleted file mode 100644
index 04ebcd843..000000000
--- a/_integration-schemas/mailshake/v1/leads.md
+++ /dev/null
@@ -1,133 +0,0 @@
----
-tap: "mailshake"
-version: "1"
-key: "lead"
-
-name: "leads"
-doc-link: ""
-singer-schema: "https://github.com/singer-io/tap-mailshake/blob/master/tap_mailshake/schemas/leads.json"
-description: |
- The `{{ table.name }}` table contains info about the leads in your {{ integration.display_name }} account.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List leads"
- doc-link: "https://api-docs.mailshake.com/?shell#List59"
-
-attributes:
- - name: "id"
- type: "integer"
- primary-key: true
- description: ""
- # foreign-key-id: "lead-id"
-
- - name: "created"
- type: "date-time"
- replication-key: true
- description: ""
-
- - name: "assignedTo"
- type: "object"
- description: ""
- subattributes:
- - name: "emailAddress"
- type: "string"
- description: ""
-
- - name: "first"
- type: "string"
- description: ""
-
- - name: "fullName"
- type: "string"
- description: ""
-
- - name: "id"
- type: "integer"
- description: ""
- foreign-key-id: "team-member-id"
-
- - name: "last"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "campaign"
- type: "object"
- description: ""
- subattributes:
- - name: "created"
- type: "date-time"
- description: ""
-
- - name: "id"
- type: "integer"
- description: ""
- foreign-key-id: "campaign-id"
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "title"
- type: "string"
- description: ""
-
- - name: "lastStatusChangeDate"
- type: "date-time"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "openedDate"
- type: "date-time"
- description: ""
-
- - name: "recipient"
- type: "object"
- description: ""
- subattributes:
- - name: "created"
- type: "date-time"
- description: ""
-
- - name: "emailAddress"
- type: "string"
- description: ""
-
- - name: "fields"
- type: "object"
- description: ""
- subattributes:
-
- - name: "first"
- type: "string"
- description: ""
-
- - name: "fullName"
- type: "string"
- description: ""
-
- - name: "id"
- type: "integer"
- description: ""
- foreign-key-id: "recipient-id"
-
- - name: "last"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "status"
- type: "string"
- description: ""
----
\ No newline at end of file
diff --git a/_integration-schemas/mambu/v1/cards.md b/_integration-schemas/mambu/v1/cards.md
deleted file mode 100644
index 08c0cada2..000000000
--- a/_integration-schemas/mambu/v1/cards.md
+++ /dev/null
@@ -1,46 +0,0 @@
----
-# -------------------------- #
-# Table Details #
-# -------------------------- #
-
-tap: "mambu"
-version: "1"
-key: "card"
-
-name: "cards"
-doc-link: "https://api.mambu.com/?shell#welcome"
-singer-schema: "https://github.com/singer-io/tap-mambu/tree/v1.3.3/tap_mambu/schemas/cards.json"
-description: |
- This table contains information about cards.
-
-
-# -------------------------- #
-# Replication Details #
-# -------------------------- #
-
-replication-method: "Full Table"
-
-api-method:
- name: "Get all cards (v2.0)"
- doc-link: "https://api.mambu.com/?http#depositaccounts-getallcards"
-
-dependent-table-key: "deposit-account"
-
-
-# -------------------------- #
-# Table Attributes #
-# -------------------------- #
-
-attributes:
- - name: "deposit_id"
- type: "string"
- primary-key: true
- description: "The deposit ID."
- foreign-key-id: "deposit-id"
-
- - name: "reference_token"
- type: "string"
- primary-key: true
- description: "The token used to externally identify the card."
-# foreign-key-id: "reference-token"
----
diff --git a/_integration-schemas/mambu/v1/loan_repayments.md b/_integration-schemas/mambu/v1/loan_repayments.md
deleted file mode 100644
index d7c37eaf2..000000000
--- a/_integration-schemas/mambu/v1/loan_repayments.md
+++ /dev/null
@@ -1,92 +0,0 @@
----
-# -------------------------- #
-# Table Details #
-# -------------------------- #
-
-tap: "mambu"
-version: "1"
-key: "loan-repayment"
-
-name: "loan_repayments"
-doc-link: ""
-singer-schema: "https://github.com/singer-io/tap-mambu/tree/v1.3.3/tap_mambu/schemas/loan_repayments.json"
-description: |
- This is a child table of `loan_accounts`, containing information exclusively about loan repayments.
-
-
-# -------------------------- #
-# Replication Details #
-# -------------------------- #
-
-api-method:
- name: "Get repayments for a loan account (v1.0)"
- doc-link: "https://api.mambu.com/v1/#loan-accounts-get-repayments-for-a-loan-account"
-
-replication-method: "Full Table"
-
-dependent-table-key: "loan-account"
-
-
-# -------------------------- #
-# Table Attributes #
-# -------------------------- #
-
-attributes:
- - name: "encoded_key"
- type: "string"
- primary-key: true
- description: "The unique loan repayment encoded key."
-
- - name: "due_date"
- type: "date-time"
- description: ""
-
- - name: "fees_due"
- type: "string"
- description: ""
- - name: "fees_paid"
- type: "string"
- description: ""
- - name: "interest_due"
- type: "string"
- description: ""
- - name: "interest_paid"
- type: "string"
- description: ""
- - name: "parent_account_key"
- type: "string"
- description: ""
- - name: "penalty_due"
- type: "string"
- description: ""
- - name: "penalty_paid"
- type: "string"
- description: ""
- - name: "principal_due"
- type: "string"
- description: ""
- - name: "principal_paid"
- type: "string"
- description: ""
- - name: "state"
- type: "string"
- description: ""
- - name: "tax_fees_due"
- type: "string"
- description: ""
- - name: "tax_fees_paid"
- type: "string"
- description: ""
- - name: "tax_interest_due"
- type: "string"
- description: ""
- - name: "tax_interest_paid"
- type: "string"
- description: ""
- - name: "tax_penalty_due"
- type: "string"
- description: ""
- - name: "tax_penalty_paid"
- type: "string"
- description: ""
----
diff --git a/_integration-schemas/mambu/v2/cards.md b/_integration-schemas/mambu/v2/cards.md
deleted file mode 100644
index 302b4555e..000000000
--- a/_integration-schemas/mambu/v2/cards.md
+++ /dev/null
@@ -1,46 +0,0 @@
----
-# -------------------------- #
-# Table Details #
-# -------------------------- #
-
-tap: "mambu"
-version: "2"
-key: "card"
-
-name: "cards"
-doc-link: "https://api.mambu.com/?shell#welcome"
-singer-schema: "https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/cards.json"
-description: |
- This table contains information about cards.
-
-
-# -------------------------- #
-# Replication Details #
-# -------------------------- #
-
-replication-method: "Full Table"
-
-api-method:
- name: "Get all cards (v2.0)"
- doc-link: "https://api.mambu.com/?http#depositaccounts-getallcards"
-
-dependent-table-key: "deposit-account"
-
-
-# -------------------------- #
-# Table Attributes #
-# -------------------------- #
-
-attributes:
- - name: "deposit_id"
- type: "string"
- primary-key: true
- description: "The deposit ID."
- # foreign-key-id: "deposit-id"
-
- - name: "reference_token"
- type: "string"
- primary-key: true
- description: "The token used to externally identify the card."
-# foreign-key-id: "reference-token"
----
\ No newline at end of file
diff --git a/_integration-schemas/mambu/v2/loan_repayments.md b/_integration-schemas/mambu/v2/loan_repayments.md
deleted file mode 100644
index 38fbc5e68..000000000
--- a/_integration-schemas/mambu/v2/loan_repayments.md
+++ /dev/null
@@ -1,108 +0,0 @@
----
-# -------------------------- #
-# Table Details #
-# -------------------------- #
-
-tap: "mambu"
-version: "2"
-key: "loan-repayment"
-
-name: "loan_repayments"
-doc-link: ""
-singer-schema: "https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/loan_repayments.json"
-description: |
- This is a child table of `loan_accounts`, containing information exclusively about loan repayments.
-
-
-# -------------------------- #
-# Replication Details #
-# -------------------------- #
-
-api-method:
- name: "Get repayments for a loan account (v1.0)"
- doc-link: "https://api.mambu.com/v1/#loan-accounts-get-repayments-for-a-loan-account"
-
-replication-method: "Full Table"
-
-dependent-table-key: "loan-account"
-
-
-# -------------------------- #
-# Table Attributes #
-# -------------------------- #
-
-attributes:
- - name: "encoded_key"
- type: "string"
- primary-key: true
- description: "The unique loan repayment encoded key."
- # foreign-key-id: "loan-repayment-key"
-
- - name: "due_date"
- type: "date-time"
- description: ""
-
- - name: "fees_due"
- type: "string"
- description: ""
-
- - name: "fees_paid"
- type: "string"
- description: ""
-
- - name: "interest_due"
- type: "string"
- description: ""
-
- - name: "interest_paid"
- type: "string"
- description: ""
-
- - name: "parent_account_key"
- type: "string"
- description: ""
-
- - name: "penalty_due"
- type: "string"
- description: ""
-
- - name: "penalty_paid"
- type: "string"
- description: ""
-
- - name: "principal_due"
- type: "string"
- description: ""
-
- - name: "principal_paid"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
- - name: "tax_fees_due"
- type: "string"
- description: ""
-
- - name: "tax_fees_paid"
- type: "string"
- description: ""
-
- - name: "tax_interest_due"
- type: "string"
- description: ""
-
- - name: "tax_interest_paid"
- type: "string"
- description: ""
-
- - name: "tax_penalty_due"
- type: "string"
- description: ""
-
- - name: "tax_penalty_paid"
- type: "string"
- description: ""
----
\ No newline at end of file
diff --git a/_integration-schemas/marketo/campaigns.md b/_integration-schemas/marketo/campaigns.md
deleted file mode 100644
index 2231556a4..000000000
--- a/_integration-schemas/marketo/campaigns.md
+++ /dev/null
@@ -1,60 +0,0 @@
----
-tap: "marketo"
-version: "2"
-
-name: "campaigns"
-doc-link:
-singer-schema: https://github.com/singer-io/tap-marketo/blob/master/tap_marketo/schemas/campaigns.json
-description: |
- The `{{ table.name }}` table contains info about the campaigns in your {{ integration.display_name }} account.
-
-replication-method: "Key-based Incremental"
-api-method:
- name: "Get campaigns"
- doc-link: http://developers.marketo.com/rest-api/endpoint-reference/lead-database-endpoint-reference/#!/Campaigns/getCampaignsUsingGET
-
-attributes:
- - name: "id"
- type: "integer"
- primary-key: true
- description: "The ID of the campaign."
- # foreign-key-id: "campaign-id"
-
- - name: "updatedAt"
- type: "date-time"
- replication-key: true
- description: "The time the campaign was most recently updated."
-
- - name: "createdAt"
- type: "date-time"
- description: "The time the campaign was created."
-
- - name: "active"
- type: "boolean"
- description: "Indicates if the campaign is active. Applicable only to trigger campaigns."
-
- - name: "description"
- type: "string"
- description: "The description of the Smart campaign."
-
- - name: "name"
- type: "string"
- description: "The name of the Smart campaign."
-
- - name: "programId"
- type: "integer"
- description: "The ID of the parent program, if applicable."
- foreign-key-id: "program-id"
-
- - name: "programName"
- type: "string"
- description: "The name of the parent program, if applicable."
-
- - name: "type"
- type: "string"
- description: "The type of Smart campaign. Possible values are `batch` or `trigger`."
-
- - name: "workspaceName"
- type: "string"
- description: "The name of the parent workspace, if applicable."
----
\ No newline at end of file
diff --git a/_integration-schemas/marketo/leads.md b/_integration-schemas/marketo/leads.md
deleted file mode 100644
index 9a520e59c..000000000
--- a/_integration-schemas/marketo/leads.md
+++ /dev/null
@@ -1,64 +0,0 @@
----
-tap: "marketo"
-version: "2"
-
-name: "leads"
-doc-link: http://developers.marketo.com/rest-api/endpoint-reference/lead-database-endpoint-reference/#!/Leads/getLeadsByFilterUsingGET
-singer-schema:
-description: |
- The `{{ table.name }}` table contains info about your {{ integration.display_name }} leads.
-
- Stitch replicates leads from {{ integration.display_name }} using the Bulk API. The Replication Key for this table varies depending on your {{ integration.display_name }} account setup:
-
- - **If updatedAt filtering is enabled**, this table will use `updatedAt` as the Replication Key
- - **If updatedAt filtering isn't enabled,** this table will use `createdAt` as the Replication Key. Additionally, data will be loaded using [Append-Only loading]({{ link.destinations.storage.loading-behavior | prepend: site.baseurl }}).
-
- [Read more about replicating this table](#leads-replication).
-
-replication-method: "Key-based Incremental"
-replication-key:
- name: "updatedAt or createdAt"
-
-api-method:
- name: "Get leads"
- doc-link: "http://developers.marketo.com/rest-api/endpoint-reference/lead-database-endpoint-reference/#!/Leads/getLeadsByFilterUsingGET"
-
-attributes:
- - name: "id"
- type: "integer"
- primary-key: true
- description: "The ID of the lead."
- foreign-key-id: "lead-id"
-
- - name: "acquiredBy"
- type: "boolean"
- description: "Indicates if the lead was acquired by the parent program."
-
- - name: "isExhausted"
- type: "boolean"
- description: "Indicates if the lead is currently exhausted in the stream, if applicable."
-
- - name: "membershipDate"
- type: "date"
- description: "The date the lead first became a member of the program."
-
- - name: "nurtureCadence"
- type: "string"
- description: "Cadence of the parent stream, if applicable."
-
- - name: "progressionStatus"
- type: "string"
- description: "The program status of the lead in the parent program."
-
- - name: "reachedSuccess"
- type: "boolean"
- description: "Indicates if the the lead is in a success-status in the parent program."
-
- - name: "reachedSuccessDate"
- type: "string"
- description: "The date the lead reached success in the parent program."
-
- - name: "stream"
- type: "string"
- description: "The stream that the lead is a member of, if the parent program is an engagement program."
----
\ No newline at end of file
diff --git a/_integration-schemas/marketo/v1/leads.md b/_integration-schemas/marketo/v1/leads.md
deleted file mode 100644
index 121047b4a..000000000
--- a/_integration-schemas/marketo/v1/leads.md
+++ /dev/null
@@ -1,53 +0,0 @@
----
-tap: "marketo"
-version: "1"
-
-name: "leads"
-doc-link: http://developers.marketo.com/rest-api/endpoint-reference/lead-database-endpoint-reference/#!/Leads/getLeadsByFilterUsingGET
-singer-schema:
-description: |
- The `leads` table contains info about your {{ integration.display_name }} leads.
-
-replication-method: "Incremental"
-api-method:
- name: "getLeads"
- doc-link: "http://developers.marketo.com/rest-api/endpoint-reference/lead-database-endpoint-reference/#!/Leads/getLeadsByFilterUsingGET"
-
-attributes:
- - name: "id"
- type: "integer"
- primary-key: true
- description: "The ID of the lead."
-
- - name: "acquiredBy"
- type: "boolean"
- description: "Indicates if the lead was acquired by the parent program."
-
- - name: "isExhausted"
- type: "boolean"
- description: "Indicates if the lead is currently exhausted in the stream, if applicable."
-
- - name: "membershipDate"
- type: "date"
- description: "The date the lead first became a member of the program."
-
- - name: "nurtureCadence"
- type: "string"
- description: "Cadence of the parent stream, if applicable."
-
- - name: "progressionStatus"
- type: "string"
- description: "The program status of the lead in the parent program."
-
- - name: "reachedSuccess"
- type: "boolean"
- description: "Indicates if the the lead is in a success-status in the parent program."
-
- - name: "reachedSuccessDate"
- type: "string"
- description: "The date the lead reached success in the parent program."
-
- - name: "stream"
- type: "string"
- description: "The stream that the lead is a member of, if the parent program is an engagement program."
----
\ No newline at end of file
diff --git a/_integration-schemas/mixpanel/v1/export.md b/_integration-schemas/mixpanel/v1/export.md
deleted file mode 100644
index b14460e25..000000000
--- a/_integration-schemas/mixpanel/v1/export.md
+++ /dev/null
@@ -1,91 +0,0 @@
----
-tap: "mixpanel"
-version: "1"
-key: "export"
-
-name: "export"
-doc-link: "https://developer.mixpanel.com/docs/exporting-raw-data#section-export-api-reference"
-singer-schema: "https://github.com/singer-io/tap-mixpanel/blob/master/tap_mixpanel/schemas/export.json"
-description: |
- The `{{ table.name }}` table contains "raw data dumps" of tracked events. The API endpoint for EU region servers will return a `200 terminated early` error code.
-
- #### Table schema {#export-events-table-schema}
-
- The schema for this table is dynamic, meaning that the columns Stitch detects are dependent upon the properties provided upon upload in {{ integration.display_name }}. For every property available in {{ integration.display_name }} for `{{ table.name }}` records, Stitch will display a column in the integration's **Tables to Replicate** tab.
-
- #### Replication with attribution window {#export-events-attribution-window}
-
- This table is replicated using the **Attribution Window** value defined in the integration's settings page. Refer to the [Replication section](#attribution-windows-extraction) for more info.
-
- #### Distinct events and loading behavior {#export-events-loading-behavior}
-
- As Stitch doesn't use a Primary Key for this table, data will be loaded using [Append-Only loading]({{ link.destinations.storage.loading-behavior | prepend: site.baseurl }}). This means you may see duplicate records in your destination, which requires a querying strategy that selects the latest version of each record.
-
- Stitch takes this approach because it's possible to track events without a `distinct_id`. In {{ integration.display_name }}, `distinct_id` [is used to identify a unique user](https://help.mixpanel.com/hc/en-us/articles/115004509406-Distinct-IDs-){:target="new"}:
-
- > Mixpanel’s client-side tracking libraries automatically assign a distinct_id to a user when they first visit a website or an application that has Mixpanel installed. Distinct_id should not contain any special characters such as forward slashes, as it will break the URL.
- > Distinct_ids can and often should be sent in server-side implementations as well.
-
- In order for Stitch to replicate records' `distinct_id` attributes, your server-side {{ integration.display_name }} implementation must send them with tracked events. If the server-side implementation doesn't do this, this attribute will be `null`.
-
- Previous versions of Stitch's {{ integration.display_name }} integration used `distinct_id` as part of a composite Primary Key for this table. However, due to the possibility of this attribute being `null`, Stitch no longer uses a Primary Key for this table, as `null` values in Primary Key columns will prevent successful Extraction.
-
- When working with `exports` data in your destination, you'll need to use a querying strategy that accounts for the Append-Only loading used by this table. We recommend using the following columns to de-duplicate records, along with the approach outlined in the [Querying Append-Only tables guide]({{ link.replication.append-only-querying | prepend: site.baseurl }}):
-
- - `distinct_id`
- - `event`
- - `time`
-
-replication-method: "Key-based Incremental"
-attribution-window: true
-
-loading-behavior: "Append-Only"
-
-api-method:
- name: "Export raw data"
- doc-link: "https://developer.mixpanel.com/docs/exporting-raw-data#section-export-api-reference"
-
-attributes:
- - name: "time"
- type: "date-time"
- replication-key: true
- description: |
- The time the event occurred.
-
- When analzying this table's data, we recommend using this column, `distinct_id`, and `event`, along with a [querying strategy for Append-Only tables]({{ link.replication.append-only-querying | prepend: site.baseurl }}) to de-duplicate records. Refer to the [table description](#export-events-loading-behavior) for more info.
-
- - name: "distinct_id"
- type: "string"
- description: |
- The user associated with the event.
-
- When analzying this table's data, we recommend using this column, `event`, and `time`, along with a [querying strategy for Append-Only tables]({{ link.replication.append-only-querying | prepend: site.baseurl }}) to de-duplicate records. Refer to the [table description](#export-events-loading-behavior) for more info.
-
- - name: "dataset"
- type: "string"
- description: ""
-
- - name: "event"
- type: "string"
- description: |
- The event. For example: `Viewed report`
-
- When analzying this table's data, we recommend using this column, `distinct_id`, and `time`, along with a [querying strategy for Append-Only tables]({{ link.replication.append-only-querying | prepend: site.baseurl }}) to de-duplicate records. Refer to the [table description](#export-events-loading-behavior) for more info.
-
- - name: "labels"
- type: "array"
- description: ""
- subattributes:
- - title: "value"
- type: "string"
- description: ""
-
- - name: "sampling_factor"
- type: "integer"
- description: ""
-
- - name: "OTHER_ATTRIBUTES"
- type: "varies"
- description: |
- For every property available in {{ integration.display_name }} for `{{ table.name }}` records, Stitch will display a column in the integration's **Tables to Replicate** tab.
----
\ No newline at end of file
diff --git a/_integration-schemas/netsuite/v1/campaign.md b/_integration-schemas/netsuite/v1/campaign.md
deleted file mode 100644
index c1bd548f5..000000000
--- a/_integration-schemas/netsuite/v1/campaign.md
+++ /dev/null
@@ -1,172 +0,0 @@
----
-tap: "netsuite"
-version: "1"
-
-name: "Campaign"
-doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/campaign.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Campaign.json"
-description: |
- The `{{ table.name }}` table contains info about the campaigns in your {{ integration.display_name }} account. Campaigns are used to manage marketing initiatives.
-
- {{ integration.permission-for-table | flatify }}
-
-## Refer to _data/extraction/netsuite/netsuite-permissions.yml for permissions for this table/object.
-key: "campaign"
-
-replication-method: "Full Table"
-
-attributes:
- - name: "internalId"
- type: "string"
- primary-key: true
- description: ""
- # foreign-key-id: "campaign-id"
-
- - name: "audience"
- type: "varies"
- description: ""
-
- - name: "baseCost"
- type: "number, string"
- description: ""
-
- - name: "campaignDirectMailList"
- type: "varies"
- description: ""
-
- - name: "campaignEmailList"
- type: "varies"
- description: ""
-
- - name: "campaignEventList"
- type: "varies"
- description: ""
-
- - name: "campaignId"
- type: "string"
- description: ""
-
- - name: "category"
- type: "varies"
- description: ""
-
- - name: "convCostPerCustomer"
- type: "number, string"
- description: ""
-
- - name: "conversions"
- type: "integer, string"
- description: ""
-
- - name: "cost"
- type: "number, string"
- description: ""
-
- - name: "costPerCustomer"
- type: "number, string"
- description: ""
-
- - name: "customFieldList"
- type: "varies"
- description: ""
-
- - name: "customForm"
- type: "varies"
- description: ""
-
- - name: "endDate"
- type: "date-time"
- description: ""
-
- - name: "eventResponseList"
- type: "varies"
- description: ""
-
- - name: "expectedRevenue"
- type: "number, string"
- description: ""
-
- - name: "externalId"
- type: "string"
- description: ""
-
- - name: "family"
- type: "varies"
- description: ""
-
- - name: "isInactive"
- type: "boolean, string"
- description: ""
-
- - name: "itemList"
- type: "varies"
- description: ""
-
- - name: "keyword"
- type: "string"
- description: ""
-
- - name: "leadsGenerated"
- type: "integer, string"
- description: ""
-
- - name: "local"
- type: "boolean, string"
- description: ""
-
- - name: "message"
- type: "string"
- description: ""
-
- - name: "nullFieldList"
- type: "varies"
- description: ""
-
- - name: "offer"
- type: "varies"
- description: ""
-
- - name: "owner"
- type: "varies"
- description: ""
-
- - name: "profit"
- type: "number, string"
- description: ""
-
- - name: "promotionCode"
- type: "varies"
- description: ""
-
- - name: "roi"
- type: "number, string"
- description: ""
-
- - name: "searchEngine"
- type: "varies"
- description: ""
-
- - name: "startDate"
- type: "date-time"
- description: ""
-
- - name: "title"
- type: "string"
- description: ""
-
- - name: "totalRevenue"
- type: "number, string"
- description: ""
-
- - name: "uniqueVisitors"
- type: "integer, string"
- description: ""
-
- - name: "url"
- type: "string"
- description: ""
-
- - name: "vertical"
- type: "varies"
- description: ""
----
\ No newline at end of file
diff --git a/_integration-schemas/netsuite/v1/contact.md b/_integration-schemas/netsuite/v1/contact.md
deleted file mode 100644
index 433f71f5f..000000000
--- a/_integration-schemas/netsuite/v1/contact.md
+++ /dev/null
@@ -1,179 +0,0 @@
----
-tap: "netsuite"
-version: "1"
-
-name: "Contact"
-doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/contact.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Contact.json"
-description: |
- The `{{ table.name }}` table contains info about contacts.
-
- {{ integration.permission-for-table | flatify }}
-
-## Refer to _data/extraction/netsuite/netsuite-permissions.yml for permissions for this table/object.
-key: "contact"
-
-replication-method: "Key-based Incremental"
-
-attributes:
- - name: "internalId"
- type: "string"
- primary-key: true
- description: "The contact ID."
- # foreign-key-id: "contact-id"
-
- - name: "lastModifiedDate"
- type: "date-time"
- replication-key: true
- description: "The time the contact was last modified."
-
- - name: "addressbookList"
- type: "varies"
- description: ""
-
- - name: "altEmail"
- type: "string"
- description: "The alternate email address for the contact."
-
- - name: "assistant"
- type: "varies"
- description: "A reference to an existing contact."
-
- - name: "assistantPhone"
- type: "string"
- description: ""
-
- - name: "billPay"
- type: "boolean, string"
- description: "Indicates whether payments can be sent online to the contact."
-
- - name: "categoryList"
- type: "varies"
- description: ""
-
- - name: "comments"
- type: "string"
- description: "Additional comments about the contact."
-
- - name: "company"
- type: "varies"
- description: "The company the contact works for."
-
- - name: "contactSource"
- type: "varies"
- description: "Indicates how the contact came to do business with your company."
-
- - name: "customFieldList"
- type: "varies"
- description: "The custom fields associated with the contact."
-
- - name: "customForm"
- type: "varies"
- description: ""
-
- - name: "dateCreated"
- type: "date-time"
- description: "The date the contact was created."
-
- - name: "defaultAddress"
- type: "string"
- description: "The default billing address for the contact."
-
- - name: "email"
- type: "string"
- description: "The contact's email address."
-
- - name: "entityId"
- type: "string"
- description: "The name for the contact in lists."
-
- - name: "externalId"
- type: "string"
- description: ""
-
- - name: "fax"
- type: "string"
- description: "The contact's fax number."
-
- - name: "firstName"
- type: "string"
- description: "The contact's first name."
-
- - name: "globalSubscriptionStatus"
- type: "varies"
- description: |
- The contact's subscription status. Possible values are:
-
- - Confirmed Opt-In
- - Soft Opt-In
- - Soft Opt-Out
- - Confirmed Opt-Out
-
- - name: "homePhone"
- type: "string"
- description: "The customer's home phone number."
-
- - name: "image"
- type: "varies"
- description: "A reference to a file in the file cabinet for the contact."
-
- - name: "isInactive"
- type: "boolean, string"
- description: "Indicates if the contact is inactive."
-
- - name: "isPrivate"
- type: "boolean, string"
- description: "Indicates if the contact is private. When a contact is private, it can only be viewed by th e user that entered the contact record."
-
- - name: "lastName"
- type: "string"
- description: "The contact's last name."
-
- - name: "middleName"
- type: "string"
- description: "The contact's middle name."
-
- - name: "mobilePhone"
- type: "string"
- description: "The contact's mobile phone number."
-
- - name: "nullFieldList"
- type: "varies"
- description: ""
-
- - name: "officePhone"
- type: "string"
- description: "The contact's office phone number."
-
- - name: "phone"
- type: "string"
- description: "The contact's phone number."
-
- - name: "phoneticName"
- type: "string"
- description: "The furigana character used to sort the contact record in {{ integration.display_name }}."
-
- - name: "salutation"
- type: "string"
- description: "The contact's salutation."
-
- - name: "subscriptionsList"
- type: "varies"
- description: ""
-
- - name: "subsidiary"
- type: "varies"
- description: ""
-
- - name: "supervisor"
- type: "varies"
- description: "The contact's supervisor."
-
- - name: "supervisorPhone"
- type: "string"
- description: "The contact supervisor's phone number."
-
- - name: "title"
- type: "string"
- description: "The contact's title at their `company`."
----
\ No newline at end of file
diff --git a/_integration-schemas/recurly/v1/foreign-keys.md b/_integration-schemas/recurly/v1/foreign-keys.md
deleted file mode 100644
index 5a8a4c513..000000000
--- a/_integration-schemas/recurly/v1/foreign-keys.md
+++ /dev/null
@@ -1,170 +0,0 @@
----
-tap-reference: "recurly"
-
-version: "1"
-
-foreign-keys:
- - id: "account-id"
- attribute: "account_id"
- table: "accounts"
- all-foreign-keys:
- - table: "accounts"
- join-on: "id"
- - table: "accounts"
- join-on: "parent_account_id"
- - table: "accounts"
- subtable: "shipping_addresses"
- - table: "adjustments"
- subattribute: "account"
- join-on: "id"
- - table: "adjustments"
- subattribute: "account"
- join-on: "parent_account_id"
- - table: "billing_info"
- - table: "coupon_redemptions"
- - table: "invoices"
- subattribute: "account"
- join-on: "id"
- - table: "invoices"
- subattribute: "account"
- join-on: "parent_account_id"
- - table: "invoices"
- subtable: "credit_payments.refund_transaction.account"
- join-on: "id"
- - table: "invoices"
- subtable: "line_items.shipping_addresses"
- - table: "subscriptions"
- subtable: "shipping_addresses"
- - table: "transactions"
- subtable: "account"
- join-on: "id"
- - table: "transactions"
- subtable: "account"
- join-on: "parent_account_id"
-
- - id: "adjustment-id"
- attribute: "adjustment_id"
- table: "adjustments"
- all-foreign-keys:
- - table: "adjustments"
- join-on: "id"
-
- - id: "coupon-id"
- attribute: "coupon_id"
- table: "coupons"
- all-foreign-keys:
- - table: "coupon_redemptions"
- subattribute: "coupon"
- join-on: "id"
- - table: "coupons"
- join-on: "id"
- - table: "subscriptions"
- subtable: "coupon_redemptions__coupon"
- join-id: "id"
-
- - id: "coupon-redemption-id"
- attribute: ""
- table: "coupon_redemptions"
- all-foreign-keys:
- - table: "coupon_redemptions"
- join-on: "id"
- - table: "subscriptions"
- subtable: "coupon_redemptions"
- join-id: "id"
-
- - id: "invoice-id"
- attribute: "invoice_id"
- table: "invoices"
- all-foreign-keys:
- - table: "adjustments"
- - table: "invoices"
- join-on: "id"
- - table: "invoices"
- subtable: "credit_payments.applied_to_invoice"
- join-on: "id"
- - table: "invoices"
- subtable: "credit_payments.original_invoice"
- join-on: "id"
- - table: "invoices"
- subtable: "credit_payments.refund_transaction.invoice"
- join-on: "id"
- - table: "invoices"
- subtable: "credit_payments.refund_transaction.voided_by_invoice"
- join-on: "id"
- - table: "invoices"
- subtable: "line_items"
- - table: "invoices"
- subtable: "subscription_ids"
- join-on: "value"
- - table: "transactions"
- subattribute: "invoice"
- join-on: "id"
- - table: "transactions"
- subattribute: "voided_by_invoice"
- join-on: "id"
-
- - id: "plan-id"
- attribute: "plan_id"
- table: "plans"
- all-foreign-keys:
- - table: "adjustments"
- - table: "invoices"
- subtable: "line_items"
- - table: "plans"
- join-on: "id"
- - table: "plan_add_ons"
- - table: "subscriptions"
- subtable: "pending_change__plan"
- join-on: "id"
-
- - id: "plan-add-on-id"
- attribute: "add_on_id"
- table: "plan_add_ons"
- all-foreign-keys:
- - table: "adjustments"
- - table: "invoices"
- subtable: "line_items"
- - table: "plan_add_ons"
- join-on: "id"
- - table: "subscriptions"
- subtable: "add_ons__ad_on"
- join-on: "id"
-
- - id: "subscription-id"
- attribute: "subscription_id"
- table: "subscriptions"
- all-foreign-keys:
- - table: "invoices"
- subtable: "credit_payments.refund_transaction.subscription_ids"
- - table: "invoices"
- subtable: "line_items"
- - table: "subscriptions"
- join-on: "id"
- - table: "subscriptions"
- subtable: "add_ons"
- - table: "subscriptions"
- subtable: "pending_change__add_ons"
- - table: "subscriptions"
- subtable: "pending_change"
- - table: "transactions"
- subtable: "subscription_ids"
- join-on: "value"
-
- - id: "transaction-id"
- attribute: ""
- table: "transactions"
- all-foreign-keys:
- - table: "invoices"
- subtable: "credit_payments.refund_transaction"
- join-on: "id"
- - table: "invoices"
- subtable: "credit_payments.refund_transaction"
- join-on: "original_transaction_id"
- - table: "invoices"
- subtable: "transactions"
- join-on: "id"
- - table: "transactions"
- join-on: "id"
- - table: "transactions"
- join-on: "original_transaction_id"
----
\ No newline at end of file
diff --git a/_integration-schemas/recurly/v1/invoices.md b/_integration-schemas/recurly/v1/invoices.md
deleted file mode 100644
index 593daed17..000000000
--- a/_integration-schemas/recurly/v1/invoices.md
+++ /dev/null
@@ -1,1130 +0,0 @@
----
-tap: "recurly"
-version: "1"
-
-name: "invoices"
-key: "invoice"
-
-doc-link: ""
-singer-schema: "https://github.com/singer-io/tap-recurly/blob/master/tap_recurly/schemas/invoices.json"
-description: |
- The `{{ table.name }}` table contains info about the invoices for a {{ integration.display_name }} site. An invoice relates charges, credits, and payments together. When a subscription is created or renewed or a charge is created on the account, {{ integration.display_name }} will sum the charges, discount or tax as appropriate, and send the invoice out for collection.
-
-replication-method: "Key-based Incremental"
-api-method:
- name: "List a site's invoices"
- doc-link: "https://partner-docs.recurly.com/v2018-08-09#operation/list_invoices"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: &id "The invoice ID."
- foreign-key-id: "invoice-id"
-
- - name: "updated_at"
- type: "date-time"
- replication-key: true
- description: "The date and time the invoice was last updated."
-
- - name: "account"
- type: "object"
- description: "Details about the account associated with the invoice."
- subattributes: &account
- - name: "bill_to"
- type: "string"
- description: |
- Indicates whether charges on the account are billed using the parent's billing info or the account itself. Possible values are:
-
- - `self` - The account itself.
- - `parent` - All invoices resulting in charges and credits originating from a child will be created on the parent account.
-
- - name: "code"
- type: "string"
- description: "The unique identifier for the account."
-
- - name: "company"
- type: "string"
- description: "The company."
-
- - name: "email"
- type: "string"
- description: "The email."
-
- - name: "first_name"
- type: "string"
- description: "The first name of the account."
-
- - name: "id"
- type: "string"
- description: "The account ID."
- foreign-key-id: "account-id"
-
- - name: "last_name"
- type: "string"
- description: "The last name of the account."
-
- - name: "object"
- type: "string"
- description: "This will be `account`."
-
- - name: "parent_account_id"
- type: "string"
- description: "If this is a child account, this field will contain the ID of the parent account."
- foreign-key-id: "account-id"
-
- - name: "address"
- type: "object"
- description: "Details about the address associated with the invoice."
- subattributes:
- - name: "city"
- type: "string"
- description: "The city."
-
- - name: "country"
- type: "string"
- description: "The country."
-
- - name: "first_name"
- type: "string"
- description: "The first name on the address."
-
- - name: "last_name"
- type: "string"
- description: "The last name on the address."
-
- - name: "name_on_account"
- type: "string"
- description: "The name on the account."
-
- - name: "phone"
- type: "string"
- description: "The phone number."
-
- - name: "postal_code"
- type: "string"
- description: "The postal code."
-
- - name: "region"
- type: "string"
- description: "The region."
-
- - name: "street1"
- type: "string"
- description: "The first street line."
-
- - name: "street2"
- type: "string"
- description: "The second street line."
-
- - name: "balance"
- type: "number"
- description: "The outstanding balance remaining on this invoice."
-
- - name: "closed_at"
- type: "date-time"
- description: "The date the invoice was marked paid or failed."
-
- - name: "collection_method"
- type: "string"
- description: |
- The collection method for the invoice. Possible values are:
-
- - `automatic` - A corresponding transaction is run using the account's billing info at the same time the invoice is created.
- - `manual` - A corresponding transaction is not created, and the merchant must enter a manual payment transaction or have the customer pay with an automatic method.
-
- - name: "created_at"
- type: "date-time"
- description: "The date and time the invoice was created."
-
- - name: "credit_payments"
- type: "array"
- description: "Details about the credit payments associated with the invoice."
- subattributes:
- - name: "account"
- type: "object"
- description: "Details about the account associated with the credit payment."
- subattributes: &mini-account
- - name: "code"
- type: "string"
- description: "The unique identifier for the account."
-
- - name: "company"
- type: "string"
- description: "The company."
-
- - name: "email"
- type: "string"
- description: "The email."
-
- - name: "first_name"
- type: "string"
- description: "The first name of the account."
-
- - name: "id"
- type: "string"
- description: "The account ID."
- foreign-key-id: "account-id"
-
- - name: "last_name"
- type: "string"
- description: "The last name of the account."
-
- - name: "object"
- type: "string"
- description: "This will be `account`."
-
- - name: "action"
- type: "string"
- description: |
- The action for which the credit was created. Possible values are:
-
- - `payment`
- - `refund`
- - `reduction`
- - `write_off`
-
- - name: "amount"
- type: "number"
- description: "The total credit payment applied to the charge invoice."
-
- - name: "applied_to_invoice"
- type: "object"
- description: "Details about the invoice the credit payment was applied to."
- subattributes: &mini-invoice
- - name: "id"
- type: "string"
- description: *id
- foreign-key-id: "invoice-id"
-
- - name: "number"
- type: "string"
- description: &number "The invoice number."
-
- - name: "object"
- type: "string"
- description: &object "This will be `invoice`."
-
- - name: "state"
- type: "string"
- description: &state |
- The state of the invoice. Possible values are:
-
- - `pending`
- - `processing`
- - `past_due`
- - `paid`
- - `failed`
-
- - name: "type"
- type: "string"
- description: &type |
- The type of the invoice. Possible values are:
-
- - `charge`
- - `credit`
- - `legacy`
-
- - name: "created_at"
- type: "date-time"
- description: "The date and time the credit payment was created."
-
- - name: "currency"
- type: "string"
- description: ¤cy "The three-letter ISO 4217 currency code."
-
- - name: "id"
- type: "string"
- description: "The credit payment ID."
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "original_credit_payment_id"
- type: "string"
- description: "For credit payments with `action: refund`, this is the credit payment that was refunded."
-
- - name: "original_invoice"
- type: "object"
- description: "Details about the original invoice associated with the credit payment."
- subattributes: *mini-invoice
-
- - name: "refund_transaction"
- type: "object"
- description: "Details about the refund transaction the credit payment is associated with."
- subattributes:
- - name: "amount"
- type: "number"
- description: &amount "The amount of the transaction."
-
- - name: "account"
- type: "object"
- description: "Details about the account associated with the refund transaction."
- subattributes: *mini-account
-
- - name: "avs_check"
- type: "string"
- description: &avs-check "The result from checking the overall AVS on the processed transaction."
-
- - name: "billing_address"
- type: "object"
- description: "The billing address detail for the account."
- subattributes: &billing-address
- - name: "city"
- type: "string"
- description: "The city."
-
- - name: "country"
- type: "string"
- description: "The country."
-
- - name: "first_name"
- type: "string"
- description: "The first name on the address."
-
- - name: "last_name"
- type: "string"
- description: "The last name on the address."
-
- - name: "name_on_account"
- type: "string"
- description: "The name on the account."
-
- - name: "phone"
- type: "string"
- description: "The phone number."
-
- - name: "postal_code"
- type: "string"
- description: "The postal code."
-
- - name: "region"
- type: "string"
- description: "The region."
-
- - name: "street1"
- type: "string"
- description: "The first street line."
-
- - name: "street2"
- type: "string"
- description: "The second street line."
-
- - name: "collected_at"
- type: "date-time"
- description: &collected-at "If collected, the date and time the transaction was collected. Otherwise, the time the transaction was created."
-
- - name: "collection_method"
- type: "string"
- description: &collection-method |
- The method by which payment for the transaction was collected. Possible values are:
-
- - `automatic`
- - `manual`
-
- - name: "created_at"
- type: "date-time"
- description: &created-at "The date and time the transaction was created."
-
- - name: "currency"
- type: "string"
- description: *currency
-
- - name: "customer_message"
- type: "string"
- description: &customer_message "For declined transactions, the message displayed to the customer."
-
- - name: "customer_message_locale"
- type: "string"
- description: &customer_message_locale "The language code used to display the `customer_message`."
-
- - name: "cvv_check"
- type: "string"
- description: &cvv_check "When processed, the result from checking the CVV/CVC value on the transaction."
-
- - name: "gateway_approval_code"
- type: "string"
- description: &gateway_approval_code "The transaction approval code from the payment gateway."
-
- - name: "gateway_message"
- type: "string"
- description: &gateway_message "The transaction message from the payment gateway."
-
- - name: "gateway_reference"
- type: "string"
- description: &gateway_reference "The transaction reference number from the payment gateway."
-
- - name: "gateway_response_code"
- type: "string"
- description: &gateway_response_code "The gateway error code for declined transactions (`success: false`)."
-
- - name: "gateway_response_time"
- type: "number"
- description: &gateway_response_time "The time, in seconds, for the gateway to process the transaction."
-
- - name: "gateway_response_values"
- type: "object"
- description: &gateway_response_values "The response values from the payment gateway."
-
- - name: "id"
- type: "string"
- description: &transaction-id "The transaction ID."
- foreign-key-id: "transaction-id"
-
- - name: "invoice"
- type: "object"
- description: &invoice-details "Details about the invoice associated with the transaction."
- subattributes: *mini-invoice
-
- - name: "ip_address_country"
- type: "string"
- description: &ip_address_country "The country, based on `ip_address_v4`."
-
- - name: "ip_address_v4"
- type: "string"
- description: &ip_address_v4 |
- The IP address provided when the billing information was collected:
-
- - When a customer entered billing info into Recurly.JS or a hosted payment page.
- - When the merchant enters billing info using the API.
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "origin"
- type: "string"
- description: &origin |
- The origin of the transaction. Possible values are:
-
- - `api`
- - `hpp`
- - `merchant`
- - `recurly_admin`
- - `recurlyjs`
- - `recurring`
- - `transparent`
- - `force_collect`
- - `refunded_externally`
- - `chargeback`
-
- - name: "original_transaction_id"
- type: "string"
- description: &original_transaction_id "If the transaction is a refund, this will be the ID of the original transaction."
- foreign-key-id: "transaction-id"
-
- - name: "payment_gateway"
- type: "object"
- description: &payment_gateway_desc "Details about the payment gateway used to process the transaction."
- subattributes: &payment_gateway
- - name: "id"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "type"
- type: "string"
- description: ""
-
- - name: "payment_method"
- type: "object"
- description: &payment_method_desc "The payment method used in the transaction."
- subattributes: &payment_method
- - name: "card_type"
- type: "string"
- description: |
- If the payment method is a credit card, this field will contain the type of the credit card. Possible values include:
-
- - `American Express`
- - `Dankort`
- - `Diners Club`
- - `Discover`
- - `Forbrugsforeningen`
- - `JCB`
- - `Laser`
- - `Maestro`
- - `MasterCard`
- - `Test Card`
- - `Unknown`
- - `Visa`
-
- - name: "exp_month"
- type: "integer"
- description: "If the payment method is a credit card, this field will contain the expiration month for the credit card."
-
- - name: "exp_year"
- type: "integer"
- description: "If the payment method is a credit card, this field will contain the expiration year for the credit card."
-
- - name: "first_six"
- type: "string"
- description: "If the payment method is a credit card, this field will contain the first six digits of the credit card number."
-
- - name: "last_four"
- type: "string"
- description: "If the payment method is a credit card, this field will contain the last four digits of the credit card number."
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "refunded"
- type: "boolean"
- description: &refunded "Indicates if part or all of the transaction was refunded."
-
- - name: "status"
- type: "string"
- description: &status |
- The current transaction status. Possible values are:
-
- - `pending`
- - `scheduled`
- - `processing`
- - `success`
- - `void`
- - `declined`
- - `error`
- - `chargeback`
-
- - name: "status_code"
- type: "string"
- description: ""
-
- - name: "status_message"
- type: "string"
- description: &status_message "For declined transactions (`success: false`), the message displayed to the merchant."
-
- - name: "subscription_ids"
- type: "array"
- description: &subscription_ids_desc "If the transaction refunds one or more subscriptions, this will be a list of the subscription IDs that were refunded."
- subattributes: &subscription_ids
- - name: "value"
- type: "string"
- description: "The subscription ID."
- foreign-key-id: "subscription-id"
-
- - name: "success"
- type: "boolean"
- description: &success "Indicates if the transaction completed successfully."
-
- - name: "type"
- type: "string"
- description: &type |
- The type of the transaction. Possible values include:
-
- - `authorization` – Verifies billing information and places a hold on money in the customer's account.
- - `capture` – Captures funds held by an authorization and completes a purchase.
- - `purchase` – Combines the authorization and capture in one transaction.
- - `refund` – Returns all or a portion of the money collected in a previous transaction to the customer.
- - `verify` – A $0 or $1 transaction used to verify billing information which is immediately voided.
-
- - name: "uuid"
- type: "string"
- description: &uuid "The UUID is useful for matching data with the CSV exports and building URLs into {{ integration.display_name }}'s UI."
-
- - name: "voided_at"
- type: "date-time"
- description: &voided_at "The date and time the transaction was voided."
-
- - name: "voided_by_invoice"
- type: "object"
- description: &voided_by_invoice "Details about the invoice that voided the transaction."
- subattributes: *mini-invoice
-
- - name: "updated_at"
- type: "date-time"
- description: "The date and time the credit payment was last updated."
-
- - name: "uuid"
- type: "string"
- description: *uuid
-
- - name: "voided_at"
- type: "date-time"
- description: "The date and time the credit payment was voided."
-
- - name: "currency"
- type: "string"
- description: *currency
-
- - name: "customer_notes"
- type: "string"
- description: "The customer notes text specified in Invoice Settings."
-
- - name: "discount"
- type: "number"
- description: "The total amount of discounts applied on the invoice."
-
- - name: "due_at"
- type: "date-time"
- description: "The date and time the invoice is due."
-
- - name: "line_items"
- type: "object"
- description: &line-items "Details about the line items in the invoice."
- subattributes:
- - name: "data"
- type: "array"
- description: *line-items
- subattributes:
- - name: "accounting_code"
- type: "string"
- description: "The internal accounting code for the line item."
-
- - name: "account"
- type: "object"
- description: "Details about the account associated with the line item."
- subattributes: *account
-
- - name: "add_on_code"
- type: "string"
- description: "If the line item is a charge or credit for an add-on, this is its code."
-
- - name: "add_on_id"
- type: "string"
- description: "If the line item is a charge or credit for an add-on this is its ID."
- foreign-key-id: "plan-add-on-id"
-
- - name: "amount"
- type: "number"
- description: "The total amount of the line item, calculated as `(quantity * unit_amount) - (discount + tax)`."
-
- - name: "created_at"
- type: "date-time"
- description: "The date and time the line item was created."
-
- - name: "credit_applied"
- type: "number"
- description: "The amount of credit from this line item that was applied to the invoice."
-
- - name: "credit_reason_code"
- type: "string"
- description: |
- When `type: credit`, this will be the reason the credit was given. Possible values include:
-
- - `general`
- - `service`
- - `promotional`
- - `refund`
- - `gift_card`
- - `write_off`
-
- - name: "currency"
- type: "string"
- description: *currency
-
- - name: "description"
- type: "string"
- description: "The description of the line item."
-
- - name: "discount"
- type: "number"
- description: "The discount applied to the line item."
-
- - name: "end_date"
- type: "date-time"
- description: "If this date is provided, it indicates the end of a time range."
-
- - name: "id"
- type: "string"
- description: "The line item ID."
-
- - name: "invoice_id"
- type: "string"
- description: "Once the line item has been invoiced this will be the invoice's ID."
- foreign-key-id: "invoice-id"
-
- - name: "invoice_number"
- type: "string"
- description: "Once the line item has been invoiced this will be the invoice's number. If VAT taxation and the Country Invoice Sequencing feature are enabled, invoices will have country-specific invoice numbers for invoices billed to EU countries (ex: FR1001). Non-EU invoices will continue to use the site-level invoice number sequence."
-
- - name: "legacy_category"
- type: "string"
- description: |
- The category to describe the role of a line item on a legacy invoice. Possible values include:
-
- - `charges` - Refers to charges being billed for on this invoice.
- - `credits` - Refers to refund or proration credits. This portion of the invoice can be considered a credit memo.
- - `applied_credits` - Refers to previous credits applied to this invoice. See their original_line_item_id to determine where the credit first originated.
- - `carryforwards` - Can be ignored. They exist to consume any remaining credit balance. A new credit with the same amount will be created and placed back on the account.
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "origin"
- type: "string"
- description: |
- The origin of the invoice to return. Possible values are:
-
- - `plan`
- - `plan_trial`
- - `setup_fee`
- - `add_on`
- - `add_on_trial`
- - `one_time`
- - `debit`
- - `credit`
- - `coupon`
- - `carryforward`
-
- - name: "original_line_item_invoice_id"
- type: "string"
- description: "The invoice where the credit originated. This field will only have a value if the line item is a credit created from a previous credit, or if the credit was created from a charge refund."
-
- - name: "plan_code"
- type: "string"
- description: "If the line item is a charge or credit for a plan or add-on, this is the plan's code."
-
- - name: "plan_id"
- type: "string"
- description: "If the line item is a charge or credit for a plan or add-on, this is the plan's ID."
- foreign-key-id: "plan-id"
-
- - name: "previous_line_item_id"
- type: "string"
- description: "This field will only have a value if the line item is a credit created from a previous credit, or if the credit was created from a charge refund."
-
- - name: "product_code"
- type: "string"
- description: "For plan related line items this will be the plan's code, for add-on related line items it will be the add-on's code."
-
- - name: "proration_rate"
- type: "number"
- description: |
- When a line item has been prorated, this is the rate of the proration. Proration rates were made available for line items created after March 30, 2017. For line items created prior to that date, the proration rate will be `null`, even if the line item was prorated.
-
- - name: "quantity"
- type: "integer"
- description: "This number will be multiplied by the unit amount to compute the subtotal before any discounts or taxes."
-
- - name: "refund"
- type: "boolean"
- description: "Indicates if the line item has been refunded."
-
- - name: "refunded_quantity"
- type: "integer"
- description: "For refund charges, the quantity being refunded. For non-refund charges, the total quantity refunded (possibly over multiple refunds)."
-
- - name: "shipping_addresses"
- type: "array"
- description: "The shipping address info for the line item."
- subattributes: &shipping-addresses
- - name: "account_id"
- type: "string"
- description: "The ID of the account associated with the shipping address info."
- foreign-key-id: "account-id"
-
- - name: "city"
- type: "string"
- description: "The shipping city."
-
- - name: "company"
- type: "string"
- description: "The shipping company."
-
- - name: "country"
- type: "string"
- description: "The two-letter ISO country code."
-
- - name: "created_at"
- type: "date-time"
- description: "The timestamp when the shipping address was created."
-
- - name: "email"
- type: "string"
- description: "The email associated with the shipping address."
-
- - name: "first_name"
- type: "string"
- description: "The first name."
-
- - name: "id"
- type: "string"
- description: "The shipping address ID."
-
- - name: "last_name"
- type: "string"
- description: "The last name."
-
- - name: "nickname"
- type: "string"
- description: "The nickname."
-
- - name: "phone"
- type: "string"
- description: "The phone number."
-
- - name: "postal_code"
- type: "string"
- description: "The postal code."
-
- - name: "region"
- type: "string"
- description: "The state or province."
-
- - name: "street1"
- type: "string"
- description: "The first street line of the address."
-
- - name: "street2"
- type: "string"
- description: "The second street line of the address."
-
- - name: "updated_at"
- type: "date-time"
- description: "The timestamp when the shipping address was last updated."
-
- - name: "vat_number"
- type: "string"
- description: "The VAT number associated with the shipping address."
-
- - name: "start_date"
- type: "date-time"
- description: "If an end date is present, this is value indicates the beginning of a billing time range. If no end date is present it indicates billing for a specific date."
-
- - name: "state"
- type: "string"
- description: |
- The state of the line item. Possible values are:
-
- - `pending` - Pending line items are charges or credits on an account that have not been applied to an invoice yet.
- - `invoiced` - Invoiced line items will always have an `invoice_id` value.
-
- - name: "subscription_id"
- type: "string"
- description: "The subscription ID associated with the line item."
- foreign-key-id: "subscription-id"
-
- - name: "subtotal"
- type: "number"
- description: "The subtotal for the line item, calculated as `quantity * unit_amount`."
-
- - name: "tax"
- type: "number"
- description: "The tax amount for the line item."
-
- - name: "tax_code"
- type: "string"
- description: |
- Used by Avalara, Vertex, and Recurly’s EU VAT tax feature. The tax code values are specific to each tax system. If you are using Recurly’s EU VAT feature:
-
- - `P0000000` - Indicates physical
- - `D0000000` - Indicates digital
- - Empty string - Indicates unknown
-
- - name: "tax_exempt"
- type: "boolean"
- description: "Indicates if the line item is tax exempt."
-
- - name: "tax_info"
- type: "object"
- description: "Details about the tax applied to the line item."
- subattributes: &tax-info
- - name: "rate"
- type: "number"
- description: "The tax rate."
-
- - name: "region"
- type: "string"
- description: "Provides the tax region applied on an invoice. For U.S. Sales Tax, this will be the two-letter state code. For EU VAT this will be the two-letter country code. For all country level tax types, this will display the regional tax, like VAT, GST, or PST."
-
- - name: "type"
- type: "string"
- description: "Provides the tax type as `vat` for EU VAT, `usst` for U.S. Sales Tax, or the two-letter country code for country level tax types like Canada, Australia, New Zealand, Israel, and all non-EU European countries."
-
- - name: "taxable"
- type: "boolean"
- description: "Indicates if the line item is taxable."
-
- - name: "type"
- type: "string"
- description: |
- The type of the line item. Possible values include:
-
- - `charge` - A positive line item that debits the account.
- - `credit` - A negative line item that credits the account.
-
- - name: "unit_amount"
- type: "number"
- description: "The unit amount. This value will be positive for a charge and negative for a credit."
-
- - name: "updated_at"
- type: "date-time"
- description: "The date and time the line item was last updated."
-
- - name: "uuid"
- type: "string"
- description: *uuid
-
- - name: "has_more"
- type: "boolean"
- description: ""
-
- - name: "next"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "net_terms"
- type: "number"
- description: |
- An integer representing the number of days after an invoice's creation that the invoice will become past due. If set to `0`, the invoice is due on receipt and will become due 24 hours after its creation. If set to `30`, it will become past due at exactly 31 days.
-
- - name: "number"
- type: "string"
- description: "If VAT taxation and the Country Invoice Sequencing feature are enabled, invoices will have country-specific invoice numbers for invoices billed to EU countries (ex: FR1001). Non-EU invoices will continue to use the site-level invoice number sequence."
-
- - name: "object"
- type: "string"
- description: "This will be `invoice`."
-
- - name: "origin"
- type: "string"
- description: |
- The event that created the invoice. Possible values are:
-
- - `purchase`
- - `line_item_refund`
- - `open_amount_refund`
- - `renewal`
- - `immediate_change`
- - `termination`
- - `credit`
- - `gift_card`
- - `write_off`
-
- - name: "paid"
- type: "number"
- description: ""
-
- - name: "po_number"
- type: "string"
- description: "For manual invoicing, the PO number associated with the subscription."
-
- - name: "previous_invoice_id"
- type: "string"
- description: ""
-
- - name: "refundable_amount"
- type: "number"
- description: ""
-
- - name: "state"
- type: "string"
- description: *state
-
- - name: "subscription_ids"
- type: "array"
- description: "If the invoice is charging or refunding one or more subscriptions, this will be a list of the associated subscription IDs."
- subattributes:
- - name: "value"
- type: "string"
- description: "The subscription ID."
- foreign-key-id: "subscription-id"
-
- - name: "subtotal"
- type: "number"
- description: "The summation of charges, discounts, and credits, before tax."
-
- - name: "tax"
- type: "number"
- description: "The total tax on the invoice."
-
- - name: "tax_info"
- type: "object"
- description: "Details about the tax applied to the invoice."
- subattributes: *tax-info
-
- - name: "terms_and_conditions"
- type: "string"
- description: "This will default to the Terms and Conditions text specified on the Invoice Settings page in your {{ integration.display_name }} admin. This specifies custom notes to add or override Terms and Conditions."
-
- - name: "total"
- type: "number"
- description: "The final total on this invoice. The summation of invoice charges, discounts, credits, and tax."
-
- - name: "transactions"
- type: "array"
- description: "Details about the transactions associated with the invoice."
- subattributes:
- - name: "amount"
- type: "number"
- description: *transaction-amt
-
- - name: "avs_check"
- type: "string"
- description: *avs_check
-
- - name: "account"
- type: "object"
- description: "Details about the account associated with the transaction."
- subattributes: *account
-
- - name: "billing_address"
- type: "object"
- description: "The billing address associated with the transaction."
- subattributes: *billing-address
-
- - name: "collected_at"
- type: "date-time"
- description: *collected_at
-
- - name: "collection_method"
- type: "string"
- description: *collection_method
-
- - name: "created_at"
- type: "date-time"
- description: *created_at
-
- - name: "currency"
- type: "string"
- description: *currency
-
- - name: "customer_message"
- type: "string"
- description: *customer_message
-
- - name: "customer_message_locale"
- type: "string"
- description: *customer_message_locale
-
- - name: "cvv_check"
- type: "string"
- description: *cvv_check
-
- - name: "gateway_approval_code"
- type: "string"
- description: *gateway_approval_code
-
- - name: "gateway_message"
- type: "string"
- description: *gateway_message
-
- - name: "gateway_reference"
- type: "string"
- description: *gateway_reference
-
- - name: "gateway_response_code"
- type: "string"
- description: *gateway_response_code
-
- - name: "gateway_response_time"
- type: "number"
- description: *gateway_response_time
-
- - name: "gateway_response_values"
- type: "object"
- description: *gateway_response_values
-
- - name: "id"
- type: "string"
- description: "The transaction ID."
- foreign-key-id: "transaction-id"
-
- - name: "invoice"
- type: "object"
- description: "Details about the invoice associated with the transaction."
- subattributes: *mini-invoice
-
- - name: "ip_address_country"
- type: "string"
- description: *ip_address_country
-
- - name: "ip_address_v4"
- type: "string"
- description: *ip_address_v4
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "origin"
- type: "string"
- description: *origin
-
- - name: "original_transaction_id"
- type: "string"
- description: *original_transaction_id
-
- - name: "payment_gateway"
- type: "object"
- description: *payment_gateway_desc
- subattributes: *payment_gateway
-
- - name: "payment_method"
- type: "object"
- description: *payment_method_desc
- subattributes: *payment_method
-
- - name: "refunded"
- type: "boolean"
- description: *refunded
-
- - name: "status"
- type: "string"
- description: *status
-
- - name: "status_code"
- type: "string"
- description: ""
-
- - name: "status_message"
- type: "string"
- description: ""
-
- - name: "subscription_ids"
- type: "array"
- description: *subscription_ids_desc
- subattributes: *subscription_ids
-
- - name: "success"
- type: "boolean"
- description: *success
-
- - name: "type"
- type: "string"
- description: *type
-
- - name: "uuid"
- type: "string"
- description: *uuid
-
- - name: "voided_at"
- type: "date-time"
- description: *voided_at
-
- - name: "voided_by_invoice"
- type: "object"
- description: *voided_by_invoice
- subattributes: *mini-invoice
-
- - name: "type"
- type: "string"
- description: |
- The type of the invoice. Possible values are:
-
- - `charge`
- - `credit`
- - `legacy`
-
- - name: "vat_number"
- type: "string"
- description: "The VAT registration number for the customer on this invoice. This will come from the VAT Number field in the Billing Info or the Account Info depending on your tax settings and the invoice collection method."
-
- - name: "vat_reverse_charge_notes"
- type: "string"
- description: "VAT Reverse Charge Notes only appear if you have EU VAT enabled or are using your own Avalara AvaTax account and the customer is in the EU, has a VAT number, and is in a different country than your own. This will default to the VAT Reverse Charge Notes text specified on the Tax Settings page in your Recurly admin, unless custom notes were created with the original subscription."
----
\ No newline at end of file
diff --git a/_integration-schemas/revinate/v1/reviews.md b/_integration-schemas/revinate/v1/reviews.md
deleted file mode 100644
index 63d5d7039..000000000
--- a/_integration-schemas/revinate/v1/reviews.md
+++ /dev/null
@@ -1,172 +0,0 @@
----
-tap: "revinate"
-version: "1"
-
-name: "reviews"
-doc-link: https://porter.revinate.com/documentation#reviews
-singer-schema: ## link to the JSON schema file in the integration's Singer repo
-description: |
- The `table_name` table contains a subset of the latest reviews for the hotels in your {{ integration.display_name }} account.
-
- **Note**: Stitch will only replicate review data for the hotels that the user whose API key is used to [authenticate the integration](#add-stitch-data-source) has access to. If you're missing records, verify that the authenticating user has access to those hotels in {{ integration.display_name }}.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: Get reviews
- doc-link: https://porter.revinate.com/documentation#reviews
-
-attributes:
- - name: "review_id"
- type: "integer"
- primary-key: true
- description: "The review ID."
- # foreign-key-id: "review-id"
-
- - name: "updated_at"
- type: "integer"
- replication-key: true
- description: "The time the review was last updated."
-
- - name: "author"
- type: "string"
- description: "The review author."
-
- - name: "author_location"
- type: "string"
- description: "The review author's location."
-
- - name: "body"
- type: "string"
- description: "The body of the review."
-
- - name: "crawled_url"
- type: "string"
- description: ""
-
- - name: "date_collected"
- type: "integer"
- description: "The date the review was collected."
-
- - name: "date_review"
- type: "integer"
- description: "The date of the review."
-
- - name: "guest_stay_json"
- type: "string"
- description: ""
-
- - name: "hotel_id"
- type: "integer"
- description: "The hotel ID."
- foreign-key-id: "hotel-id"
-
- - name: "hotel_url"
- type: "string"
- description: ""
-
- - name: "language_english_name"
- type: "string"
- description: ""
-
- - name: "language_id"
- type: "integer"
- description: ""
-
- - name: "language_json"
- type: "string"
- description: ""
-
- - name: "language_name"
- type: "string"
- description: ""
-
- - name: "language_slug"
- type: "string"
- description: ""
-
- - name: "language_url"
- type: "string"
- description: ""
-
- - name: "links_json"
- type: "string"
- description: ""
-
- - name: "nps"
- type: "integer"
- description: ""
-
- - name: "rating"
- type: "number"
- description: "The rating."
-
- - name: "response_json"
- type: "string"
- description: ""
-
- - name: "review_json"
- type: "string"
- description: ""
-
- - name: "review_site_id"
- type: "integer"
- description: ""
- foreign-key-id: "review-site-id"
-
- - name: "review_site_json"
- type: "string"
- description: ""
-
- - name: "review_site_main_url"
- type: "string"
- description: ""
-
- - name: "review_site_name"
- type: "string"
- description: "The name of the review site the review is on."
-
- - name: "review_site_url"
- type: "string"
- description: ""
-
- - name: "review_site_slug"
- type: "string"
- description: ""
-
- - name: "review_url"
- type: "string"
- description: ""
-
- - name: "subratings_json"
- type: "string"
- description: ""
-
- - name: "subratings_cleanliness"
- type: "number"
- description: "The cleanliness subrating associated with the review."
-
- - name: "subratings_hotel_condition"
- type: "number"
- description: "The hotel condition subrating associated with the review."
-
- - name: "subratings_rooms"
- type: "number"
- description: "The room subrating associated with the review."
-
- - name: "subratings_service"
- type: "number"
- description: "The service subrating associated with the review."
-
- - name: "survey_topics_json"
- type: "string"
- description: ""
-
- - name: "title"
- type: "string"
- description: "The title of the review."
-
- - name: "trip_type"
- type: "string"
- description: "The trip type included in the review."
----
\ No newline at end of file
diff --git a/_integration-schemas/sailthru/v1/foreign-keys.md b/_integration-schemas/sailthru/v1/foreign-keys.md
deleted file mode 100644
index 65da4a49e..000000000
--- a/_integration-schemas/sailthru/v1/foreign-keys.md
+++ /dev/null
@@ -1,68 +0,0 @@
----
-# -------------------------- #
-# USING THIS TEMPLATE #
-# -------------------------- #
-
-## NEED HELP USING THIS TEMPLATE? SEE:
-## https://docs-about-stitch-docs.netlify.com/reference/integration-templates/saas-foreign-keys/
-## FOR INSTRUCTIONS & REFERENCE INFO
-
-tap-reference: "integration"
-
-version: "1"
-
-foreign-keys:
- - id: "list-id"
- table: "lists"
- attribute: "list_id"
- all-foreign-keys:
- - table: "lists"
- join-on: "list_id"
- - table: "ad_targeter_plans"
- join-on: "list"
- - table: "blast_save_list"
- join-on: "lists"
- - table: "users"
- subattribute: "users.lists"
- join-on: "value"
- - table: "blasts"
- join-on: "list"
- - table: "blast_repeats"
-
- - id: "blast-id"
- table: "blasts"
- attribute: "blast_id"
- all-foreign-keys:
- - table: "blasts"
- join-on: "blast_id"
- - table: "blast_query"
- join-on: "blast_id"
-
- - id: ""
- table: ""
- attribute: ""
- all-foreign-keys:
- - table: ""
- join-on: ""
-
- - id: ""
- table: ""
- attribute: ""
- all-foreign-keys:
- - table: ""
- join-on: ""
-
- - id: ""
- table: ""
- attribute: ""
- all-foreign-keys:
- - table: ""
- join-on: ""
-
- - id: ""
- table: ""
- attribute: ""
- all-foreign-keys:
- - table: ""
- join-on: ""
----
\ No newline at end of file
diff --git a/_integration-schemas/salesforce/v1/account.md b/_integration-schemas/salesforce/v1/account.md
deleted file mode 100644
index 22fe6f65b..000000000
--- a/_integration-schemas/salesforce/v1/account.md
+++ /dev/null
@@ -1,320 +0,0 @@
----
-tap: "salesforce"
-version: "1"
-
-name: "account"
-doc-link: https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_account.htm#!
-singer-schema:
-description: |
- The `{{ table.name }}` table contains info about the individual accounts (organizations and persons) involved with your business. This could be a customer, a competitor, a partner, and so on.
-
-replication-method: "Key-based Incremental"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The account ID."
- foreign-key-id: "account-id"
-
- - name: "systemModStamp"
- type: "date-time"
- replication-key: true
- description: "The time when a user or automated process (ex: a trigger) last modified the account."
-
- - name: "accountNumber"
- type: "string"
- description: "The account number assigned to this account."
-
- - name: "accountSource"
- type: "string"
- description: "The source of the account record. For example: `Trade Show`"
-
- - name: "annualRevenue"
- type: "number"
- description: "The estimated annual revenue of the account."
-
- - name: "billingAddress"
- type: "string"
- doc-link: https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/compound_fields_address.htm
- description: |
- The compound form of the account's billing address. **Only available if using the REST API.**
-
- **If using the Bulk API**, track the following fields to replicate the same data:
-
- - `billingStreet`
- - `billingCity`
- - `billingState`
- - `billingStateCode`
- - `billingCountry`
- - `billingCountryCode`
- - `billingPostalCode`
- - `billingLatitude`
- - `billingLongitude`
- - `billingGeocodeAccuracy`
-
- - name: "billingCity"
- type: "string"
- description: "The account's billing city."
-
- - name: "billingCountry"
- type: "string"
- description: "The account's billing country."
-
- - name: "billingCountryCode"
- type: "string"
- description: "The ISO country code for the account's billing address."
-
- - name: "billingGeocodeAccuracy"
- type: "string"
- description: |
- The compound form of the accuracy level of the geocode for the account's billing address.
-
- - name: "billingLatitude"
- type: "integer"
- description: "Used with `billingLongitude` to specify the precise geolocation of a billing address."
-
- - name: "billingLongitude"
- type: "integer"
- description: "Used with `billingLatitude` to specify the precise geolocation of a billing address."
-
- - name: "billingPostalCode"
- type: "string"
- description: "The postal code for the account's billing address."
-
- - name: "billingState"
- type: "string"
- description: "The state for the account's billing address."
-
- - name: "billingStateCode"
- type: "string"
- description: "The ISO state code for the account's billing address."
-
- - name: "billingStreet"
- type: "string"
- description: "The street address for the account's billing address."
-
- - name: "cleanStatus"
- type: "string"
- description: |
- The account's clean status as compared with Data.com. Possible values are:
-
- - `Matched`
- - `Different`
- - `Acknowledged`
- - `NotFound`
- - `Inactive`
- - `Pending`
- - `SelectMatch`
- - `Skipped`
-
- - name: "connectionReceivedId"
- type: "string"
- description: "The ID of the `PartnerNetworkConnection` that shared the account record with your organization. **Only available if Salesforce to Salesforce is enabled.**"
-
- - name: "description"
- type: "string"
- description: "The description of the account."
-
- - name: "dunsNumber"
- type: "string"
- description: "The Data Universal Numbering System (DUNS) number associated with the account. **Only available if using Data.com Prospector or Data.com Clean.**"
-
- - name: "fax"
- type: "string"
- description: "The fax number associated with the account."
-
- - name: "industry"
- type: "string"
- description: "The industry associated with the account."
-
- - name: "isCustomerPortal"
- type: "boolean"
- description: "Indicates whether the account has at least one contact enabled to use the organization's Customer Portal. This field will be `true` if at least one contact is enabled to use the portal. **Only available if Customer Portal or Communities is enabled and there are Customer Portal licenses.**"
-
- - name: "isDeleted"
- type: "boolean"
- description: "Indicates if the account has been moved to the Recycle Bin (`true`) or not (`false`)."
-
- - name: "isPartner"
- type: "boolean"
- description: "Indicates whether the account has at least one contact enabled to use the organization's partner portal (`true`) or not (`false`). **Only available if Partner Portal or Communities is enabled and there are partner portal licenses.**"
-
- - name: "isPersonAccount"
- type: "boolean"
- description: "Indicates if the account has a record type of Person Account (`true`) or not (`false`). Refer to [Salesforce's documentation](https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_account.htm#i1438505) for info on the additional fields associated with this record type."
-
- - name: "jigsaw"
- type: "string"
- description: "The account's ID from Data.com. If an account has a value in this field, it means that the account was imported from Data.com."
-
- - name: "lastActivityDate"
- type: "date-time"
- description: "The due date of the most recently logged event OR the most recently closed task associated with the account, whichever is more recent."
-
- - name: "lastReferenceDate"
- type: "date-time"
- description: "The date a record associated with the account was last viewed."
-
- - name: "lastViewedDate"
- type: "date-time"
- description: "The date the account was last viewed."
-
- - name: "masterRecordId"
- type: "string"
- description: |
- If the account was deleted as the result of a merge, this field will contain the ID of the record that was kept.
-
- If this account was deleted for any other reason (or hasn't been deleted), the value will be `NULL`.
-
- - name: "naicsCode"
- type: "string"
- description: "The North American Industry Classification System (NAICS) code associated with the account. **Only available if using Data.com Prospector or Data.com Clean.**"
-
- - name: "naicsDescription"
- type: "string"
- description: "The description associated with the account's NAICS code. **Only available if using Data.com Prospector or Data.com Clean.**"
-
- - name: "name"
- type: "string"
- description: |
- The name of the account.
-
- If the account's record type is `PersonAccount`, the value of this field will be a concatenation of the `firstName`, `middleName`, `lastName`, and `suffix` fields of the associated person contact. **Only available if using the REST API.**
-
- - name: "numberOfEmployees"
- type: "number"
- description: "The number of employees working at the company represented by the account."
-
- - name: "operatingHoursId"
- type: "string"
- description: "The operating hours associated with the account. **Only available if Field Service Lightning is enabled.**"
-
- - name: "ownerId"
- type: "string"
- description: "The ID of the user who currently owns the account."
- foreign-key-id: "user-id"
-
- - name: "ownership"
- type: "string"
- description: "The ownership type for the account. For example: `Private`"
-
- - name: "parentId"
- type: "string"
- description: "The ID of the account's parent object, if applicable."
-
- - name: "phone"
- type: "string"
- description: "The phone number associated with the account."
-
- - name: "photoUrl"
- type: "string"
- description: |
- The path to be combined with the URL of a Salesforce instance to generate a URL to request the social network profile image associated with the account.
-
- This field will be blank if Social Accounts and Contacts aren't enabled for the organization or requesting user.
-
- - name: "rating"
- type: "string"
- description: "The account's prospect rating. For example: `Cold`"
-
- - name: "recordTypeId"
- type: "string"
- description: "The ID of the record type assigned to the account."
-
- - name: "salutation"
- type: "string"
- description: "The honorific added to the name for use in letters, etc."
-
- - name: "shippingAddress"
- type: "string"
- doc-link: https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/compound_fields_address.htm
- description: |
- The compound form of the account's shipping address. **Only available if using the REST API.**
-
- **If using the Bulk API**, track the following fields to replicate the same data:
-
- - `shippingStreet`
- - `shippingCity`
- - `shippingState`
- - `shippingStateCode`
- - `shippingCountry`
- - `shippingCountryCode`
- - `shippingPostalCode`
- - `shippingLatitude`
- - `shippingLongitude`
- - `shippingGeocodeAccuracy`
-
- - name: "shippingCity"
- type: "string"
- description: "The account's shipping city."
-
- - name: "shippingCountry"
- type: "string"
- description: "The account's shipping country."
-
- - name: "shippingCountryCode"
- type: "string"
- description: "The ISO country code for the account's shipping address."
-
- - name: "shippingGeocodeAccuracy"
- type: "string"
- description: |
- The compound form of the accuracy level of the geocode for the account's shipping address.
-
- - name: "shippingLatitude"
- type: "integer"
- description: "Used with `shippingLongitude` to specify the precise geolocation of a shipping address."
-
- - name: "shippingLongitude"
- type: "integer"
- description: "Used with `shippingLatitude` to specify the precise geolocation of a shipping address."
-
- - name: "shippingPostalCode"
- type: "string"
- description: "The postal code for the account's shipping address."
-
- - name: "shippingState"
- type: "string"
- description: "The state for the account's shipping address."
-
- - name: "shippingStateCode"
- type: "string"
- description: "The ISO state code for the account's shipping address."
-
- - name: "shippingStreet"
- type: "string"
- description: "The street address for the account's shipping address."
-
- - name: "sic"
- type: "string"
- description: "The Standard Industrial Classification code of the company's main business organization."
-
- - name: "sicDesc"
- type: "string"
- description: "The description associated with the account's SIC code."
-
- - name: "site"
- type: "string"
- description: "The name of the account's location. For example: `Philadelphia` or `Main Office`"
-
- - name: "tickerSymbol"
- type: "string"
- description: "The stock market symbol associated with the account."
-
- - name: "tradeStyle"
- type: "string"
- description: "Similar to `doing business as`, this is the name (different from its legal name), that the organization may use for conducting business. **Only available if using Data.com Prospector or Data.com Clean.**"
-
- - name: "type"
- type: "string"
- description: "The type of the account. For example: `Customer`"
-
- - name: "website"
- type: "string"
- description: "The website associated with the account."
-
- - name: "yearStarted"
- type: "string"
- description: "The date when the account (organization) was legally established. **Only available if using Data.com Prospector or Data.com Clean.**"
----
\ No newline at end of file
diff --git a/_integration-schemas/salesforce/v1/contact.md b/_integration-schemas/salesforce/v1/contact.md
deleted file mode 100644
index 796bc9445..000000000
--- a/_integration-schemas/salesforce/v1/contact.md
+++ /dev/null
@@ -1,334 +0,0 @@
----
-tap: "salesforce"
-version: "1"
-
-name: "contact"
-doc-link: https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_contact.htm
-singer-schema:
-description: |
- The `{{ table.name }}` table contains info about your contacts, who are individuals associated with accounts in your {{ integration.display_name }} instance.
-
-replication-method: "Key-based Incremental"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The contact ID."
- foreign-key-id: "contact-id"
-
- - name: "systemModStamp"
- type: "date-time"
- replication-key: true
- description: "The time when a user or automated process (ex: a trigger) last modified the contact."
-
- - name: "accountId"
- type: "string"
- description: "The ID of the account that is the parent of the contact."
- foreign-key-id: "account-id"
-
- - name: "assistantName"
- type: "string"
- description: "The name of the assistant."
-
- - name: "assistantPhone"
- type: "string"
- description: "The phone number associated with the contact."
-
- - name: "birthdate"
- type: "date"
- description: "The birthdate of the contact."
-
- - name: "canAllowPortalSelfReg"
- type: "boolean"
- description: "Indicates if the contact can self-register for your organization's Customer Portal (`true`) or not (`false`)."
-
- - name: "cleanStatus"
- type: "string"
- description: |
- The contact's clean status as compared with Data.com. Possible values are:
-
- - `Matched`
- - `Different`
- - `Acknowledged`
- - `NotFound`
- - `Inactive`
- - `Pending`
- - `SelectMatch`
- - `Skipped`
-
- - name: "connectionReceivedId"
- type: "string"
- description: "The ID of the `PartnerNetworkConnection` that shared the contact record with your organization. **Only available if Salesforce to Salesforce is enabled.**"
-
- - name: "connectionSentId"
- type: "string"
- description: "The ID of the `PartnerNetworkConnection` that you shared the contact record with. **Deprecated by Salesforce.**"
-
- - name: "department"
- type: "string"
- description: "The department of the contact."
-
- - name: "description"
- type: "string"
- description: "The description of the contact."
-
- - name: "doNotCall"
- type: "boolean"
- description: "Indicates if the contact does not want to be called (`true`)."
-
- - name: "email"
- type: "string"
- description: "The email address associated with the contact."
-
- - name: "emailBouncedDate"
- type: "date-time"
- description: "If bounce management is activated and an email sent to the contact bounces, the date and time the bounce occurred."
-
- - name: "emailBouncedReason"
- type: "string"
- description: "If bounce management is activated and an email sent to the contact bounces, the reason the bounce occurred."
-
- - name: "fax"
- type: "string"
- description: "The fax number associated with the contact."
-
- - name: "firstName"
- type: "string"
- description: "The first name of the contact."
-
- - name: "hasOptedOutOfEmail"
- type: "boolean"
- description: "Indicates if the contact would prefer not to receive email from Salesforce (`true`) or not (`false`)."
-
- - name: "hasOptedOutOfFax"
- type: "boolean"
- description: "Indicates if the contact would prefer not to receive faxes (`true`) or not (`false`)."
-
- - name: "homePhone"
- type: "string"
- description: "The home phone number associated with the contact."
-
- - name: "isDeleted"
- type: "boolean"
- description: "Indicates if the contact has been moved to the Recycle Bin (`true`) or not (`false`)."
-
- - name: "isEmailBounced"
- type: "boolean"
- description: "If bounce management is activated and an email is sent to a contact, indicates if the email bounced (`true`) or not (`false`)."
-
- - name: "isPersonAccount"
- type: "boolean"
- description: "Indicates if the contact has a record type of Person Account (`true`) or not (`false`). Refer to [Salesforce's documentation](https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_account.htm#i1438505) for info on the additional fields associated with this record type."
-
- - name: "jigsaw"
- type: "string"
- description: "The contact's ID from Data.com. If a contact has a value in this field, it means that the contact was imported from Data.com."
-
- - name: "lastActivityDate"
- type: "date-time"
- description: "The due date of the most recently logged event OR the most recently closed task associated with the contact, whichever is more recent."
-
- - name: "lastName"
- type: "string"
- description: "The last name of the contact."
-
- - name: "lastReferenceDate"
- type: "date-time"
- description: "The date a record associated with the contact was last viewed."
-
- - name: "lastViewedDate"
- type: "date-time"
- description: "The date the contact was last viewed."
-
- - name: "leadSource"
- type: "string"
- description: "The source of the lead."
-
- - name: "mailingAddress"
- type: "string"
- doc-link: https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/compound_fields_address.htm
- description: |
- The compound form of the contact's mailing address. **Only available if using the REST API.**
-
- **If using the Bulk API**, track the following fields to replicate the same data:
-
- - `mailingStreet`
- - `mailingCity`
- - `mailingState`
- - `mailingStateCode`
- - `mailingCountry`
- - `mailingCountryCode`
- - `mailingPostalCode`
- - `mailingLatitude`
- - `mailingLongitude`
- - `mailingGeocodeAccuracy`
-
- - name: "mailingCity"
- type: "string"
- description: "The contact's mailing city."
-
- - name: "mailingCountry"
- type: "string"
- description: "The contact's mailing country."
-
- - name: "mailingCountryCode"
- type: "string"
- description: "The ISO country code for the contact's mailing address."
-
- - name: "mailingGeocodeAccuracy"
- type: "string"
- description: |
- The compound form of the accuracy level of the geocode for the contact's mailing address.
-
- - name: "mailingLatitude"
- type: "integer"
- description: "Used with `mailingLongitude` to specify the precise geolocation of a mailing address."
-
- - name: "mailingLongitude"
- type: "integer"
- description: "Used with `mailingLatitude` to specify the precise geolocation of a mailing address."
-
- - name: "mailingPostalCode"
- type: "string"
- description: "The postal code for the contact's mailing address."
-
- - name: "mailingState"
- type: "string"
- description: "The state for the contact's mailing address."
-
- - name: "mailingStateCode"
- type: "string"
- description: "The ISO state code for the contact's mailing address."
-
- - name: "mailingStreet"
- type: "string"
- description: "The street address for the contact's mailing address."
-
- - name: "masterRecordId"
- type: "string"
- description: |
- If the contact was deleted as the result of a merge, this field will contain the ID of the record that was kept.
-
- If this contact was deleted for any other reason (or hasn't been deleted), the value will be `NULL`.
-
- - name: "middleName"
- type: "string"
- description: "The middle name of the contact."
-
- - name: "mobilePhone"
- type: "string"
- description: "The mobile phone number associated with the contact."
-
- - name: "name"
- type: "string"
- description: |
- The concatenation of `firstName`, `middleName`, `lastName`, and `suffix`. **Only available if using the REST API.**
-
- **If using the Bulk API**, track the following fields to replicate the same data:
-
- - `firstName`
- - `middleName`
- - `lastName`
- - `suffix`
-
- - name: "otherAddress"
- type: "string"
- doc-link: https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/compound_fields_address.htm
- description: |
- The compound form of the contact's alternate address. **Only available if using the REST API.**
-
- **If using the Bulk API**, track the following fields to replicate the same data:
-
- - `otherStreet`
- - `otherCity`
- - `otherState`
- - `otherStateCode`
- - `otherCountry`
- - `otherCountryCode`
- - `otherPostalCode`
- - `otherLatitude`
- - `otherLongitude`
- - `otherGeocodeAccuracy`
-
- - name: "otherCity"
- type: "string"
- description: "The contact's alternate city."
-
- - name: "otherCountry"
- type: "string"
- description: "The contact's alternate country."
-
- - name: "otherCountryCode"
- type: "string"
- description: "The ISO country code for the contact's alternate address."
-
- - name: "otherGeocodeAccuracy"
- type: "string"
- description: |
- The compound form of the accuracy level of the geocode for the contact's alternate address.
-
- - name: "otherLatitude"
- type: "integer"
- description: "Used with `otherLongitude` to specify the precise geolocation of the contact's alternate address."
-
- - name: "otherLongitude"
- type: "integer"
- description: "Used with `otherLatitude` to specify the precise geolocation of the contact's alternate address."
-
- - name: "otherPostalCode"
- type: "string"
- description: "The postal code for the contact's alternate address."
-
- - name: "otherState"
- type: "string"
- description: "The state for the contact's alternate address."
-
- - name: "otherStateCode"
- type: "string"
- description: "The ISO state code for the contact's alternate address."
-
- - name: "otherStreet"
- type: "string"
- description: "The street address for the contact's alternate address."
-
- - name: "otherPhone"
- type: "string"
- description: "The phone number associated with the contact's alternate address."
-
- - name: "ownerId"
- type: "string"
- description: "The ID of the owner of the account associated with the contact."
- foreign-key-id: "user-id"
-
- - name: "phone"
- type: "string"
- description: "The phone number associated with the contact."
-
- - name: "photoUrl"
- type: "string"
- description: |
- The path to be combined with the URL of a Salesforce instance to generate a URL to request the social network profile image associated with the contact.
-
- This field will be blank if Social Accounts and Contacts aren't enabled for the organization or requesting user.
-
- - name: "recordTypeId"
- type: "string"
- description: "The ID of the record type assigned to the contact."
-
- - name: "reportsToId"
- type: "string"
- description: "If `isPersonAccount` is `true`, this field will be `NULL`."
-
- - name: "salutation"
- type: "string"
- description: "The honorific added to the contact's name for use in letters, etc."
-
- - name: "suffix"
- type: "string"
- description: "The name suffix of the contact."
-
- - name: "title"
- type: "string"
- description: "The title of the contact. For example: `CEO`, `Director of Product`, etc."
----
\ No newline at end of file
diff --git a/_integration-schemas/selligent/campaign.md b/_integration-schemas/selligent/campaign.md
deleted file mode 100644
index ee2d8b336..000000000
--- a/_integration-schemas/selligent/campaign.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-tap: "selligent"
-version: "1"
-key: ""
-
-name: "campaign"
-doc-link:
-singer-schema: https://github.com/singer-io/tap-selligent/blob/master/tap_selligent/schemas.py
-description: "This table contains campaign data."
-
-replication-method: "Full Table"
-
-attributes:
- - name: "asset_id"
- type: "integer"
- primary-key: true
- description: ""
-# foreign-key-id: "campaign-id"
-
- - name: "modified_time"
- type: "string"
- description: ""
-
- - name: "asset_name"
- type: "string"
- description: ""
-
- - name: "version_number"
- type: "string"
- description: ""
----
\ No newline at end of file
diff --git a/_integration-schemas/sendgrid-core/campaigns.md b/_integration-schemas/sendgrid-core/campaigns.md
deleted file mode 100644
index 0106c35e5..000000000
--- a/_integration-schemas/sendgrid-core/campaigns.md
+++ /dev/null
@@ -1,90 +0,0 @@
----
-tap: "sendgrid-core"
-version: "1"
-
-name: "campaigns"
-doc-link:
-singer-schema: https://github.com/singer-io/tap-sendgrid/blob/master/tap_sendgrid/schemas/campaigns.json
-description: |
- The `{{ table.name }}` table contains info about all your campaigns.
-
-replication-method: "Key-based Incremental"
-
-replication-key:
- name: "timestamp"
-
-api-method:
- name: "List all campaigns"
- doc-link: "https://sendgrid.com/docs/API_Reference/Web_API_v3/Marketing_Campaigns/campaigns.html#Get-all-Campaigns-GET"
-
-attributes:
- - name: "id"
- type: "integer"
- primary-key: true
- description: "The campaign ID."
- # foreign-key-id: "campaign-id"
-
- - name: "title"
- type: "string"
- description: "The display title of the campaign in the SendGrid Marketing Campaigns UI."
-
- - name: "subject"
- type: "string"
- description: "The subject of the campaign that recipients will see."
-
- - name: "sender_id"
- type: "integer"
- description: |
- The ID of the 'sender' identity. Recipients will see this as the "From" on your marketing emails.
-
- - name: "list_ids"
- type: "array"
- description: "The IDs of the lists the campaign is being sent to."
- subattributes:
- - name: "value"
- type: "integer"
- description: "The list ID."
- foreign-key-id: "list-id"
-
- - name: "segment_ids"
- type: "array"
- description: "The segment IDs the campaign is being sent to."
- subattributes:
- - name: "value"
- type: "integer"
- description: "The segment ID."
- foreign-key-id: "segment-id"
-
- - name: "categories"
- type: "array"
- description: "The categories associated with the campaigns."
- subattributes:
- - name: "value"
- type: "string"
- description: "The name of the category."
-
- - name: "suppression_group_id"
- type: "integer"
- description: "The ID of the suppression group that the marketing email belongs to, allowing recipients to opt-out of emails of this type."
- foreign-key-id: "suppression-group-id"
-
- - name: "custom_unsubscribe_url"
- type: "string"
- description: "The URL of the custom unsubscribe page provided for customers to unsubscribe from suppression groups."
-
- - name: "ip_pool"
- type: "string"
- description: "The pool of IPs that the email should be sent from."
-
- - name: "html_content"
- type: "string"
- description: "The HTML content of the marketing email."
-
- - name: "plain_content"
- type: "string"
- description: "The plain text content of the marketing email."
-
- - name: "status"
- type: "string"
- description: "The status of the campaign. For example: `Draft`"
----
\ No newline at end of file
diff --git a/_integration-schemas/snapchat-ads/v1/ads.md b/_integration-schemas/snapchat-ads/v1/ads.md
deleted file mode 100644
index e387cd5d4..000000000
--- a/_integration-schemas/snapchat-ads/v1/ads.md
+++ /dev/null
@@ -1,111 +0,0 @@
----
-tap: "snapchat-ads"
-version: "1"
-key: ""
-
-name: "ads"
-doc-link: https://developers.snapchat.com/api/docs/#get-all-ads-under-an-ad-account
-singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/ads.json
-description: "This stream retrieves all Ads under a specified Ad account"
-
-replication-method: "Key-based Incremental"
-
-table-key-properties: "id"
-valid-replication-keys: "updated_at"
-
-attributes:
- - name: "ad_account_id"
- type: "string"
- description: "AD Account ID"
-
- - name: "ad_squad_id"
- type: "string"
- description: "AD Squad ID"
-
- - name: "created_at"
- type: "date-time"
- description: "Date of creation for AD"
-
- - name: "creative_id"
- type: "string"
- description: "Creative ID"
-
- - name: "id"
- primary-key: true
- type: "string"
- description: "AD ID"
-
- - name: "name"
- type: "string"
- description: "AD name"
-
- - name: "paying_advertiser_name"
- type: "string"
- description: "Name of the paying advertiser/political entity"
-
- - name: "render_type"
- type: "string"
- description: ""
-
- - name: "review_status"
- type: "string"
- description: "Ad Review Status. Example: PENDING, APPROVED, REJECTED"
-
- - name: "review_status_reasons"
- type: "array"
- description: "List of Ad Review Rejection Reasons"
- subattributes:
- - name: "items"
- type: "string"
- description: ""
-
-
- - name: "status"
- type: "string"
- description: "Ad status. Example: ACTIVE, PAUSED"
-
- - name: "third_party_paid_impression_tracking_urls"
- type: "array"
- description: "Third-party impression tags, executed on ad impression"
- subattributes:
- - name: "tracking_url_metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "expanded_tracking_url"
- type: "string"
- description: ""
-
- - name: "tracking_url"
- type: "string"
- description: ""
-
-
- - name: "third_party_swipe_tracking_urls"
- type: "array"
- description: "Third-party swipe tags, executed on swipe of attachment"
- subattributes:
- - name: "tracking_url_metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "expanded_tracking_url"
- type: "string"
- description: ""
-
- - name: "tracking_url"
- type: "string"
- description: ""
-
-
- - name: "type"
- type: "string"
- description: "Ad type. Example: SNAP_AD, LONGFORM_VIDEO, APP_INSTALL"
-
- - name: "updated_at"
- type: "date-time"
- description: "Date of last update"
- replication-key: true
----
\ No newline at end of file
diff --git a/_integration-schemas/snapchat-ads/v1/campaigns.md b/_integration-schemas/snapchat-ads/v1/campaigns.md
deleted file mode 100644
index 0a052a9ae..000000000
--- a/_integration-schemas/snapchat-ads/v1/campaigns.md
+++ /dev/null
@@ -1,76 +0,0 @@
----
-tap: "snapchat-ads"
-version: "1"
-key: ""
-
-name: "campaigns"
-doc-link: https://developers.snapchat.com/api/docs/#get-all-campaigns
-singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/campaigns.json
-description: "This stream retrieves all campaigns within a specified ad account"
-
-replication-method: "Key-based Incremental"
-
-table-key-properties: "id"
-valid-replication-keys: "updated_at"
-
-attributes:
- - name: "ad_account_id"
- type: "string"
- description: "Ad Account ID"
-
- - name: "buy_model"
- type: "string"
- description: "Buy Model. Example: AUCTION(default), RESERVED"
-
- - name: "created_at"
- type: "date-time"
- description: "Date of creation"
-
- - name: "daily_budget_micro"
- type: "integer"
- description: "Daily Spend Cap (micro-currency)"
-
- - name: "end_time"
- type: "date-time"
- description: "End time of the Campaign"
-
- - name: "id"
- primary-key: true
- type: "string"
- description: "Campaign ID"
-
- - name: "lifetime_spend_cap_micro"
- type: "integer"
- description: "Lifetime spend cap for the campaign (microcurrency)"
-
- - name: "measurement_spec"
- type: "object"
- description: "The apps to be tracked for this campaign"
- subattributes:
-
- - name: "name"
- type: "string"
- description: "Campaign name"
-
- - name: "objective"
- type: "string"
- description: "Objective of the Campaign. Default: BRAND_AWARENESS"
-
- - name: "regulations"
- type: "object"
- description: "Required for Campaigns that run Ads for Credit, Housing, Employment (CHE)"
- subattributes:
-
- - name: "start_time"
- type: "date-time"
- description: "Start Time of Campaign"
-
- - name: "status"
- type: "string"
- description: "Campaign status"
-
- - name: "updated_at"
- type: "date-time"
- description: "Date of last updated"
- replication-key: true
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v1/charges.md b/_integration-schemas/stripe/v1/charges.md
deleted file mode 100644
index e5e39fb41..000000000
--- a/_integration-schemas/stripe/v1/charges.md
+++ /dev/null
@@ -1,1158 +0,0 @@
----
-tap: "stripe"
-version: "1"
-
-name: "charges"
-doc-link: "https://stripe.com/docs/api/charges/object"
-singer-schema: "https://github.com/singer-io/tap-stripe/blob/master/tap_stripe/schemas/charges.json"
-description: |
- The `{{ table.name }}` table contains info about charges to credit and debit cards.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all charges"
- doc-link: "https://stripe.com/docs/api/charges/list"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The charge ID."
- foreign-key-id: "charge-id"
-
- - name: "created"
- type: "date-time"
- replication-key: true
- description: "Time at which the object was created. Measured in seconds since the Unix epoch."
-
- - name: "amount"
- type: "integer"
- description: |
- A positive integer in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal){:target="new"} (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency) representing how much to charge. The minimum amount is $0.50 USD or [equivalent in charge currency](https://support.stripe.com/questions/what-is-the-minimum-amount-i-can-charge-with-stripe){:target="new"}.
-
- - name: "amount_captured"
- type: "integer"
- description: ""
-
- - name: "amount_refunded"
- type: "integer"
- description: "Amount in cents refunded (can be less than `amount` if a partial refund was issued)."
-
- - name: "application"
- type: "string"
- description: "The ID of the Connect application that created the charge."
-
- - name: "application_fee"
- type: "string"
- description: "The application fee (if any) for the charge."
-
- - name: "application_fee_amount"
- type: "integer"
- description: ""
-
- - name: "balance_transaction"
- type: "string"
- description: "The ID of the balance transaction that describes the impact of this charge on the {{ integration.display_name }} account."
- foreign-key-id: "balance-transaction-id"
-
- - name: "billing_details"
- type: "object"
- description: ""
- subattributes:
- - name: "address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "line1"
- type: "string"
- description: ""
- - name: "line2"
- type: "string"
- description: ""
- - name: "postal_code"
- type: "string"
- description: ""
- - name: "state"
- type: "string"
- description: ""
- - name: "email"
- type: "string"
- description: ""
- - name: "name"
- type: "string"
- description: ""
- - name: "phone"
- type: "string"
- description: ""
-
- - name: "calculated_statement_descriptor"
- type: "string"
- description: ""
-
- - name: "captured"
- type: "boolean"
- description: "If the charge was created without capturing, this attribute will indicate whether it's still uncaptured or has since been captured."
-
- - name: "card"
- type: "object"
- description: &source-description "Details about the credit or debit card that is the source of the charge."
- subattributes:
- - name: "id"
- type: "string"
- description: "The card ID."
- foreign-key-id: "card-id"
-
- - name: "address_city"
- type: "string"
- description: "The city associated with the card's billing address."
-
- - name: "address_country"
- type: "string"
- description: "The billing address country."
-
- - name: "address_line1"
- type: "string"
- description: "The first line of the billing address."
-
- - name: "address_line1_check"
- type: "string"
- description: |
- If `address_line1` was provided, the results of the check. Possible values are:
-
- - `pass`
- - `fail`
- - `unavailable`
- - `unchecked`
-
- - name: "address_line2"
- type: "string"
- description: "The second line of the billing address."
-
- - name: "address_state"
- type: "string"
- description: "The state/county/province/region of the billing address."
-
- - name: "address_zip"
- type: "string"
- description: "The zip or postal code of the billing address."
-
- - name: "address_zip_check"
- type: "string"
- description: |
- If `address_zip` was provided, the results of the check. Possible values are:
-
- - `pass`
- - `fail`
- - `unavailable`
- - `unchecked`
-
- - name: "brand"
- type: "string"
- description: |
- The brand of the card. Possible values are:
-
- - `American Express`
- - `Diners Club`
- - `Discover`
- - `JCB`
- - `MasterCard`
- - `UnionPay`
- - `Visa`
- - `Unknown`
-
- - name: "country"
- type: "string"
- description: "The two-letter ISO code representing the country of the card."
-
- - name: "customer"
- type: "string"
- description: "The ID of the customer that the card belongs to."
- foreign-key-id: "customer-id"
-
- - name: "cvc_check"
- type: "string"
- description: |
- If a CVC was provided, this will be the result of the check. Possible values are:
-
- - `pass`
- - `fail`
- - `unavailable`
- - `unchecked`
-
- - name: "dynamic_last4"
- type: "string"
- description: "**For tokenized numbers only.** The last four digits of the device account number."
-
- - name: "exp_month"
- type: "integer"
- description: "The two-digit number representing the card's expiration month."
-
- - name: "exp_year"
- type: "integer"
- description: "The four-digit number representing the card's expiration year."
-
- - name: "fingerprint"
- type: "string"
- description: "A unique ID for the card number."
-
- - name: "funding"
- type: "string"
- description: |
- The card's funding type. Possible values are:
-
- - `credit`
- - `debit`
- - `prepaid`
- - `unknown`
-
- - name: "last4"
- type: "string"
- description: "The last four digits of the card."
-
- - name: "metadata"
- type: "object"
- description: "Additional information attached to the card."
- subattributes:
- - name: "ANYTHING"
- type: "ANYTHING"
- description: "This info will vary."
-
- - name: "name"
- type: "string"
- description: "The name of the cardholder."
-
- - name: "object"
- type: "string"
- description: "The type of {{ integration.display_name }} object. This will be `card`."
-
- - name: "tokenization_method"
- type: "string"
- description: |
- If the card number is tokenized, this is the method that was used. Possible values are:
-
- - `apple_pay`
- - `android_pay`
-
- - name: "currency"
- type: "string"
- description: |
- The three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html){:target="new"}.
-
- - name: "customer"
- type: "string"
- description: "The ID of the customer associated with the charge."
- foreign-key-id: "customer-id"
-
- - name: "description"
- type: "string"
- description: "An arbitrary string attached to the object. Often useful for displaying to users."
-
- - name: "destination"
- type: "string"
- description: "The account (if any) the charge was made on behalf of, with an automatic transfer."
-
- - name: "dispute"
- type: "string"
- description: "Details about the dispute, if the charge has been disputed."
-
- - name: "disputed"
- type: "boolean"
- description: ""
-
- - name: "failure_code"
- type: "string"
- description: |
- The error code explaining the reason for a charge failure, if available. Refer to [{{ integration.display_name }}'s documentation](https://stripe.com/docs/api#errors){:target="new"} for a list of possible error codes.
-
- - name: "failure_message"
- type: "string"
- description: "The message that displays to the user that further explains the reason for the charge failure."
-
- - name: "fraud_details"
- type: "object"
- description: |
- Details about fraud assessments for the charge.
- subattributes:
- - name: "stripe_report"
- type: "string"
- description: |
- If not `null`, this indicates that a {{ integration.display_name }} fraud assessment exists for the charge. This field may have a value of `fraudulent`.
-
- - name: "user_report"
- type: "string"
- description: |
- If not `null`, this indicates that a fraud assessment reported by you exists for the charge. Possible values are:
-
- - `safe`
- - `fraudulent`
-
- - name: "invoice"
- type: "string"
- description: "The ID of the invoice the charge is for."
- foreign-key-id: "invoice-id"
-
- - name: "livemode"
- type: "boolean"
- description: "Indicates if the object exists in live mode (`true`) or in test mode (`false`)."
-
- - name: "metadata"
- type: "object"
- description: "Additional information attached to the charge."
- subattributes:
- - name: ""
- type:
- description: ""
-
- - name: "object"
- type: "string"
- description: "The type of {{ integration.display_name }} object. This will be `charge`."
-
- - name: "on_behalf_of"
- type: "string"
- description: "The account the charge was made on behalf of without triggering an automatic transfer."
-
- - name: "order"
- type: "string"
- description: "The ID of the order this charge is for."
-
- - name: "outcome"
- type: "object"
- description: "Details about whether the payment was accepted and why."
- subattributes:
- - name: "network_status"
- type: "string"
- description: |
- The network status of the outcome. Possible values are:
-
- - `approved_by_network`
- - `declined_by_network`
- - `not_sent_to_network`
- - `reversed_after_approval` - This value indicates that [{{ integration.display_name }} blocked the payment](https://stripe.com/docs/declines#blocked-payments){:target="new"} after bank authorization, and may temporarily appear as "pending" on a cardholder's statement.
-
- - name: "reason"
- type: "string"
- description: |
- A detailed explanation of the outcome's `type`. Possible values are:
-
- - `highest_risk_level` - Indicates the charge was blocked by Radar's default block rule.
- - `elevated_risk_level` - Indicates the charge was placed in review by Radar's default review rule.
- - `rule` - Indicates the charge was authorized, blocked, or placed in review by a custom rule.
-
- Refer to [{{ integration.display_name }}'s documentation](https://stripe.com/docs/declines){:target="new"} for more info about this attribute.
-
- - name: "risk_level"
- type: "string"
- description: |
- Indicates {{ integration.display_name }}'s evaluation of the riskiness of the payment. Possible values are:
-
- - `normal`, `elevated`, `highest` - Evaluated payments
- - `not_assessed` - Non-card payments, and card-based payments predating the public assignment of risk levels
- - `unknown` - Indicates an error in the risk evaluation
-
- - name: "risk_score"
- type: "integer"
- description: |
- Indicates {{ integration.display_name }}'s evaluation of the riskiness of the payment.
-
- - For evaluated payments, this attribute will contain a value between `0` and `100`.
-
- - For non-card payments, and card-based payments predating the public assignment of risk levels, this field will be `null`.
-
- - name: "seller_message"
- type: "string"
- description: "A description of the outcome type and reason designed for you, the recipient of the payment."
-
- - name: "type"
- type: "string"
- description: |
- The type of the outcome. Possible values are:
-
- - `authorized`
- - `manual_review`
- - `issuer_declined`
- - `blocked`
- - `invalid`
-
- - name: "paid"
- type: "boolean"
- description: "Indicates if the charge succeeded (`true`) or was successfully authorzed for later capture (`false`)."
-
- - name: "payment_intent"
- type: "string"
- description: "The ID of the payment intent associated with the charge."
- # foreign-key-id: "payment-intent-id"
-
- - name: "payment_method"
- type: "string"
- description: ""
-
- - name: "payment_method_details"
- type: "object"
- description: ""
- subattributes:
- - name: "ach_credit_transfer"
- type: "object"
- description: ""
- subattributes:
- - name: "account_number"
- type: "string"
- description: ""
- - name: "bank_name"
- type: "string"
- description: ""
- - name: "routing_number"
- type: "string"
- description: ""
- - name: "swift_code"
- type: "string"
- description: ""
- - name: "ach_debit"
- type: "object"
- description: ""
- subattributes:
- - name: "account_holder_type"
- type: "string"
- description: ""
- - name: "bank_name"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "fingerprint"
- type: "string"
- description: ""
- - name: "last4"
- type: "string"
- description: ""
- - name: "routing_number"
- type: "string"
- description: ""
- - name: "alipay"
- type: "object"
- description: ""
- - name: "bancontact"
- type: "object"
- description: ""
- subattributes:
- - name: "bank_code"
- type: "string"
- description: ""
- - name: "bank_name"
- type: "string"
- description: ""
- - name: "bic"
- type: "string"
- description: ""
- - name: "iban_last4"
- type: "string"
- description: ""
- - name: "preferred_language"
- type: "string"
- description: ""
- - name: "verified_name"
- type: "string"
- description: ""
- - name: "card"
- type: "object"
- description: ""
- subattributes:
- - name: "address_city"
- type: "string"
- description: ""
- - name: "address_country"
- type: "string"
- description: ""
- - name: "address_line1"
- type: "string"
- description: ""
- - name: "address_line1_check"
- type: "string"
- description: ""
- - name: "address_line2"
- type: "string"
- description: ""
- - name: "address_state"
- type: "string"
- description: ""
- - name: "address_zip"
- type: "string"
- description: ""
- - name: "address_zip_check"
- type: "string"
- description: ""
- - name: "brand"
- type: "string"
- description: ""
- - name: "card_present"
- type: "object"
- description: ""
- subattributes:
- - name: "brand"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "emv_auth_data"
- type: "string"
- description: ""
- - name: "exp_month"
- type: "integer"
- description: ""
- - name: "exp_year"
- type: "integer"
- description: ""
- - name: "fingerprint"
- type: "string"
- description: ""
- - name: "funding"
- type: "string"
- description: ""
- - name: "generated_card"
- type: "string"
- description: ""
- - name: "last4"
- type: "string"
- description: ""
- - name: "network"
- type: "string"
- description: ""
- - name: "read_method"
- type: "string"
- description: ""
- - name: "receipt"
- type: "object"
- description: ""
- subattributes:
- - name: "application_cryptogram"
- type: "string"
- description: ""
- - name: "application_preferred_name"
- type: "string"
- description: ""
- - name: "authorization_code"
- type: "string"
- description: ""
- - name: "authorization_response_code"
- type: "string"
- description: ""
- - name: "cardholder_verification_method"
- type: "string"
- description: ""
- - name: "dedicated_file_name"
- type: "string"
- description: ""
- - name: "terminal_verification_results"
- type: "string"
- description: ""
- - name: "transaction_status_information"
- type: "string"
- description: ""
- - name: "checks"
- type: "object"
- description: ""
- subattributes:
- - name: "address_line1_check"
- type: "string"
- description: ""
- - name: "address_postal_code_check"
- type: "string"
- description: ""
- - name: "cvc_check"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "customer"
- type: "string"
- description: ""
- - name: "cvc_check"
- type: "string"
- description: ""
- - name: "dynamic_last4"
- type: "string"
- description: ""
- - name: "eps"
- type: "object"
- description: ""
- subattributes:
- - name: "verified_name"
- type: "string"
- description: ""
- - name: "exp_month"
- type: "integer"
- description: ""
- - name: "exp_year"
- type: "integer"
- description: ""
- - name: "fingerprint"
- type: "string"
- description: ""
- - name: "funding"
- type: "string"
- description: ""
- - name: "giropay"
- type: "object"
- description: ""
- subattributes:
- - name: "bank_code"
- type: "string"
- description: ""
- - name: "bank_name"
- type: "string"
- description: ""
- - name: "bic"
- type: "string"
- description: ""
- - name: "verified_name"
- type: "string"
- description: ""
- - name: "id"
- type: "string"
- description: ""
- - name: "ideal"
- type: "object"
- description: ""
- subattributes:
- - name: "bank"
- type: "string"
- description: ""
- - name: "bic"
- type: "string"
- description: ""
- - name: "iban_last4"
- type: "string"
- description: ""
- - name: "verified_name"
- type: "string"
- description: ""
- - name: "installments"
- type: "object"
- description: ""
- subattributes:
- - name: "plan"
- type: "object"
- description: ""
- subattributes:
- - name: "count"
- type: "integer"
- description: ""
- - name: "interval"
- type: "string"
- description: ""
- - name: "type"
- type: "string"
- description: ""
- - name: "klarna"
- type: "object"
- description: ""
- - name: "last4"
- type: "string"
- description: ""
- - name: "metadata"
- type: "object"
- description: ""
- - name: "multibanco"
- type: "object"
- description: ""
- subattributes:
- - name: "entity"
- type: "string"
- description: ""
- - name: "reference"
- type: "string"
- description: ""
- - name: "name"
- type: "string"
- description: ""
- - name: "network"
- type: "string"
- description: ""
- - name: "object"
- type: "string"
- description: ""
- - name: "p24"
- type: "object"
- description: ""
- subattributes:
- - name: "reference"
- type: "string"
- description: ""
- - name: "verified_name"
- type: "string"
- description: ""
- - name: "sepa_debit"
- type: "object"
- description: ""
- subattributes:
- - name: "bank_code"
- type: "string"
- description: ""
- - name: "branch_code"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "fingerprint"
- type: "string"
- description: ""
- - name: "last4"
- type: "string"
- description: ""
- - name: "mandate"
- type: "string"
- description: ""
- - name: "sofort"
- type: "object"
- description: ""
- subattributes:
- - name: "bank_code"
- type: "string"
- description: ""
- - name: "bank_name"
- type: "string"
- description: ""
- - name: "bic"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "iban_last4"
- type: "string"
- description: ""
- - name: "verified_name"
- type: "string"
- description: ""
- - name: "stripe_account"
- type: "object"
- description: ""
- subattributes: FIXME
- - name: "three_d_secure"
- type: "object"
- description: ""
- subattributes:
- - name: "authenticated"
- type: "boolean"
- description: ""
- - name: "succeeded"
- type: "boolean"
- description: ""
- - name: "version"
- type: "string"
- description: ""
- - name: "tokenization_method"
- type: "string"
- description: ""
- - name: "type"
- type: "string"
- description: ""
- - name: "wallet"
- type: "object"
- description: ""
- subattributes:
- - name: "amex_express_checkout"
- type: "object"
- description: ""
- - name: "apple_pay"
- type: "object"
- description: ""
- - name: "dynamic_last4"
- type: "string"
- description: ""
- - name: "google_pay"
- type: "object"
- description: ""
- - name: "masterpass"
- type: "object"
- description: ""
- subattributes:
- - name: "billing_address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "line1"
- type: "string"
- description: ""
- - name: "line2"
- type: "string"
- description: ""
- - name: "postal_code"
- type: "string"
- description: ""
- - name: "state"
- type: "string"
- description: ""
- - name: "email"
- type: "string"
- description: ""
- - name: "name"
- type: "string"
- description: ""
- - name: "shipping_address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "line1"
- type: "string"
- description: ""
- - name: "line2"
- type: "string"
- description: ""
- - name: "postal_code"
- type: "string"
- description: ""
- - name: "state"
- type: "string"
- description: ""
- - name: "samsung_pay"
- type: "object"
- description: ""
- - name: "type"
- type: "string"
- description: ""
- - name: "visa_checkout"
- type: "object"
- description: ""
- subattributes:
- - name: "billing_address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "line1"
- type: "string"
- description: ""
- - name: "line2"
- type: "string"
- description: ""
- - name: "postal_code"
- type: "string"
- description: ""
- - name: "state"
- type: "string"
- description: ""
- - name: "email"
- type: "string"
- description: ""
- - name: "name"
- type: "string"
- description: ""
- - name: "shipping_address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "line1"
- type: "string"
- description: ""
- - name: "line2"
- type: "string"
- description: ""
- - name: "postal_code"
- type: "string"
- description: ""
- - name: "state"
- type: "string"
- description: ""
- - name: "wechat"
- type: "object"
- description: ""
- - name: "type"
- type: "string"
- description: ""
-
- - name: "receipt_email"
- type: "string"
- description: "The email address that the receipt for the charge was sent to."
-
- - name: "receipt_number"
- type: "string"
- description: "The transaction number that appears on email receipts for the charge. This will be `null` until a receipt is sent."
-
- - name: "receipt_url"
- type: "string"
- description: ""
-
- - name: "refunded"
- type: "boolean"
- description: "Indicates if the charge has been fully refunded. If the charge is only partially refunded, this attribute will be `false`."
-
- - name: "refunds"
- type: "array"
- description: "A list of refunds that have been applied to the charge."
- subattributes:
- - name: "value"
- type: "string"
- primary-key: true
- description: "The ID of the refund."
-
- - name: "review"
- type: "string"
- description: "The ID of the review associated with the charge."
-
- - name: "shipping"
- type: "object"
- description: "The shipping information for the charge."
- subattributes:
- - name: "address"
- type: "object"
- description: "The shipping address."
- subattributes:
- - name: "city"
- type: "string"
- description: "The city of the shipping address."
-
- - name: "country"
- type: "string"
- description: "The two-letter country code of the shipping address. For example: `us`"
-
- - name: "line1"
- type: "string"
- description: "The first address line of the shipping address."
-
- - name: "line2"
- type: "string"
- description: "The second address line of the shipping address."
-
- - name: "postal_code"
- type: "string"
- description: "The zip or postal code of the shipping address."
-
- - name: "state"
- type: "string"
- description: "The state, county, province, region, etc. of the shipping address"
-
- - name: "carrier"
- type: "string"
- description: "The delivery service that shipped a physical product. For example: `FedEx`"
-
- - name: "name"
- type: "string"
- description: "The recipient's name."
-
- - name: "phone"
- type: "string"
- description: "The recipient's phone number, including extension."
-
- - name: "tracking_number"
- type: "string"
- description: "The tracking number for a physical product, obtained from the delivery service (`carrier`)."
-
- - name: "source"
- type: "object"
- description: *source-description
- subattributes:
- - name: "id"
- type: "string"
- description: "The card ID."
- foreign-key-id: "card-id"
-
- - name: "address_city"
- type: "string"
- description: "The city associated with the card's billing address."
-
- - name: "address_country"
- type: "string"
- description: "The billing address country."
-
- - name: "address_line1"
- type: "string"
- description: "The first line of the billing address."
-
- - name: "address_line1_check"
- type: "string"
- description: |
- If `address_line1` was provided, the results of the check. Possible values are:
-
- - `pass`
- - `fail`
- - `unavailable`
- - `unchecked`
-
- - name: "address_line2"
- type: "string"
- description: "The second line of the billing address."
-
- - name: "address_state"
- type: "string"
- description: "The state/county/province/region of the billing address."
-
- - name: "address_zip"
- type: "string"
- description: "The zip or postal code of the billing address."
-
- - name: "address_zip_check"
- type: "string"
- description: |
- If `address_zip` was provided, the results of the check. Possible values are:
-
- - `pass`
- - `fail`
- - `unavailable`
- - `unchecked`
-
- - name: "brand"
- type: "string"
- description: |
- The brand of the card. Possible values are:
-
- - `American Express`
- - `Diners Club`
- - `Discover`
- - `JCB`
- - `MasterCard`
- - `UnionPay`
- - `Visa`
- - `Unknown`
-
- - name: "country"
- type: "string"
- description: "The two-letter ISO code representing the country of the card."
-
- - name: "customer"
- type: "string"
- description: "The ID of the customer that the card belongs to."
- foreign-key-id: "customer-id"
-
- - name: "cvc_check"
- type: "string"
- description: |
- If a CVC was provided, this will be the result of the check. Possible values are:
-
- - `pass`
- - `fail`
- - `unavailable`
- - `unchecked`
-
- - name: "dynamic_last4"
- type: "string"
- description: "**For tokenized numbers only.** The last four digits of the device account number."
-
- - name: "exp_month"
- type: "integer"
- description: "The two-digit number representing the card's expiration month."
-
- - name: "exp_year"
- type: "integer"
- description: "The four-digit number representing the card's expiration year."
-
- - name: "fingerprint"
- type: "string"
- description: "A unique ID for the card number."
-
- - name: "funding"
- type: "string"
- description: |
- The card's funding type. Possible values are:
-
- - `credit`
- - `debit`
- - `prepaid`
- - `unknown`
-
- - name: "last4"
- type: "string"
- description: "The last four digits of the card."
-
- - name: "metadata"
- type: "object"
- description: "Additional information attached to the card."
- subattributes:
- - name: "ANYTHING"
- type: "ANYTHING"
- description: "This info will vary."
-
- - name: "name"
- type: "string"
- description: "The name of the cardholder."
-
- - name: "object"
- type: "string"
- description: "The type of {{ integration.display_name }} object. This will be `card`."
-
- - name: "tokenization_method"
- type: "string"
- description: |
- If the card number is tokenized, this is the method that was used. Possible values are:
-
- - `apple_pay`
- - `android_pay`
-
- - name: "source_transfer"
- type: "string"
- description: "The transfer ID that created the charge. Only present if the charge came from another {{ integration.display_name }} account."
- foreign-key-id: "transfer-id"
-
- - name: "statement_description"
- type: "string"
- description: "**Deprecated by {{ integration.display_name }}**."
-
- - name: "statement_descriptor"
- type: "string"
- description: "Additional information about the charge. This appears on the customer's credit card statement."
-
- - name: "statement_descriptor_suffix"
- type: "string"
- description: ""
-
- - name: "status"
- type: "string"
- description: |
- The status of the payment. Possible values are:
-
- - `succeeded`
- - `pending`
- - `failed`
-
- - name: "transfer_data"
- type: "object"
- description: ""
- subattributes:
- - name: "amount"
- type: "integer"
- description: ""
- - name: "destination"
- type: "string"
- description: ""
-
- - name: "transfer_group"
- type: "string"
- description: "A string that identifies this transaction as part of a group."
-
- - name: "updated"
- type: "date-time"
- description: "The time at which the charge was last updated."
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v1/customers.md b/_integration-schemas/stripe/v1/customers.md
deleted file mode 100644
index 39becb644..000000000
--- a/_integration-schemas/stripe/v1/customers.md
+++ /dev/null
@@ -1,1011 +0,0 @@
----
-tap: "stripe"
-version: "1"
-
-name: "customers"
-doc-link: "https://stripe.com/docs/api/customers/object"
-singer-schema: "https://github.com/singer-io/tap-stripe/blob/master/tap_stripe/schemas/customers.json"
-description: |
- The `{{ table.name }}` table contains info about your customers.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all customers"
- doc-link: "https://stripe.com/docs/api/customers/list"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The customer ID."
- foreign-key-id: "customer-id"
-
- - name: "address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "line1"
- type: "string"
- description: ""
- - name: "line2"
- type: "string"
- description: ""
- - name: "postal_code"
- type: "string"
- description: ""
- - name: "state"
- type: "string"
- description: ""
-
- - name: "balance"
- type: "integer"
- description: ""
-
- - name: "created"
- type: "date-time"
- replication-key: true
- description: "Time at which the object was created. Measured in seconds since the Unix epoch."
-
- - name: "account_balance"
- type: "integer"
- description: "The current balance, if any, being stored on the customer's account."
-
- - name: "cards"
- type: "array"
- description: "Details about the customer's cards."
- subattributes: &card-attributes
- - name: "id"
- type: "string"
- description: "The card ID."
- foreign-key-id: "card-id"
-
- - name: "address_city"
- type: "string"
- description: &address-city "The city associated with the card's billing address."
-
- - name: "address_country"
- type: "string"
- description: &address-country "The billing address country."
-
- - name: "address_line1"
- type: "string"
- description: &address-line1 "The first line of the billing address."
-
- - name: "address_line1_check"
- type: "string"
- description: &address-line1-check |
- If `address_line1` was provided, the results of the check. Possible values are:
-
- - `pass`
- - `fail`
- - `unavailable`
- - `unchecked`
-
- - name: "address_line2"
- type: "string"
- description: &address-line2 "The second line of the billing address."
-
- - name: "address_state"
- type: "string"
- description: &address-state "The state/county/province/region of the billing address."
-
- - name: "address_zip"
- type: "string"
- description: &address-zip "The zip or postal code of the billing address."
-
- - name: "address_zip_check"
- type: "string"
- description: &address-zip-check |
- If `address_zip` was provided, the results of the check. Possible values are:
-
- - `pass`
- - `fail`
- - `unavailable`
- - `unchecked`
-
- - name: "brand"
- type: "string"
- description: &brand |
- The brand of the card. Possible values are:
-
- - `American Express`
- - `Diners Club`
- - `Discover`
- - `JCB`
- - `MasterCard`
- - `UnionPay`
- - `Visa`
- - `Unknown`
-
- - name: "country"
- type: "string"
- description: &country "The two-letter ISO code representing the country of the card."
-
- - name: "customer"
- type: "string"
- description: "The ID of the customer that the card belongs to."
- foreign-key-id: "customer-id"
-
- - name: "cvc_check"
- type: "string"
- description: &cvc-check |
- If a CVC was provided, this will be the result of the check. Possible values are:
-
- - `pass`
- - `fail`
- - `unavailable`
- - `unchecked`
-
- - name: "dynamic_last4"
- type: "string"
- description: &dynamic-last4 "**For tokenized numbers only.** The last four digits of the device account number."
-
- - name: "exp_month"
- type: "integer"
- description: &exp-month "The two-digit number representing the card's expiration month."
-
- - name: "exp_year"
- type: "integer"
- description: &exp-year "The four-digit number representing the card's expiration year."
-
- - name: "fingerprint"
- type: "string"
- description: &fingerprint "A unique ID for the card number."
-
- - name: "funding"
- type: "string"
- description: &funding |
- The card's funding type. Possible values are:
-
- - `credit`
- - `debit`
- - `prepaid`
- - `unknown`
-
- - name: "last4"
- type: "string"
- description: &last4 "The last four digits of the card."
-
- - name: "metadata"
- type: "object"
- description: "Additional information attached to the card."
- subattributes: &metadata
- - name: "ANYTHING"
- type: "ANYTHING"
- description: "This info will vary."
-
- - name: "name"
- type: "string"
- description: &card-name "The name of the cardholder."
-
- - name: "object"
- type: "string"
- description: "The type of {{ integration.display_name }} object. This will be `card`."
-
- - name: "tokenization_method"
- type: "string"
- description: &tokenization-method |
- If the card number is tokenized, this is the method that was used. Possible values are:
-
- - `apple_pay`
- - `android_pay`
-
- - name: "currency"
- type: "string"
- description: |
- The three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html){:target="new"} the customer can be charged in for recurring billing purposes.
-
- - name: "default_card"
- type: "string"
- description: ""
-
- - name: "default_source"
- type: "string"
- description: "The ID of the default source attached to this customer."
-
- - name: "delinquent"
- type: "boolean"
- description: |
- When the customer's latest invoice is billed by charging automatically, this will be `true` if the invoice's latest charge failed.
-
- When the customer's latest invoice is billed by sending an invoice, this will be `true` if the invoice is not paid by its due date.
-
- - name: "description"
- type: "string"
- description: "The description of the customer."
-
- - name: "discount"
- type: "object"
- description: "Describes the current discount active on the customer."
- subattributes:
- - name: "coupon"
- type: "object"
- description: "Details about the coupon applied to the customer."
- subattributes:
- - name: "id"
- type: "string"
- description: "The coupon ID."
- foreign-key-id: "coupon-id"
-
- - name: "amount_off"
- type: "integer"
- description: "The amount (in the `currency` specified) that will be taken off the subtotal of any invoices for this customer."
-
- - name: "created"
- type: "date-time"
- description: ""
-
- - name: "currency"
- type: "string"
- description: |
- The three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html){:target="new"} of the amount to take off (`amount_off`).
-
- - name: "duration"
- type: "string"
- description: |
- Indicates how long a customer who applies this coupon will get the discount. Possible values are:
-
- - `forever`
- - `once`
- - `repeating`
-
- - name: "duration_in_months"
- type: "integer"
- description: "Indicates the number of months the coupon applies if `duration: repeating`."
-
- - name: "livemode"
- type: "boolean"
- description: "Indicates if the coupon exists in live mode (`true`) or in test mode (`false`)."
-
- - name: "max_redemptions"
- type: "integer"
- description: "The maximum number of times this coupon can be redeemed in total across all customers before it is no longer valid."
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes: *metadata
-
- - name: "name"
- type: "string"
- description: "The name of the coupon as it is displayed to customers."
-
- - name: "object"
- type: "string"
- description: "The type of {{ integration.display_name }} object. This will be `coupon`."
-
- - name: "percent_off"
- type: "integer"
- description: "The percent that will be taken off the subtotal of any invoices for this customer for the duration of the coupon."
-
- - name: "percent_off_precise"
- type: "number"
- description: ""
-
- - name: "redeem_by"
- type: "date-time"
- description: "The date afer which the coupon can no longer be redeemed."
-
- - name: "times_redeemed"
- type: "integer"
- description: "The number of times this coupon has been applied to a customer."
-
- - name: "valid"
- type: "boolean"
- description: "Taking into account all of the other coupon properties, indicates whether this coupon can still be applied to a customer."
-
- - name: "customer"
- type: "string"
- description: "The ID of the customer the discount applies to."
- foreign-key-id: "customer-id"
-
- - name: "end"
- type: "date-time"
- description: "If the coupon has a `duration` of `repeating`, the date that this discount will end. If the coupon has a `duration` of `once` or `forever`, this attribute will be null."
-
- - name: "object"
- type: "string"
- description: "The type of {{ integration.display_name }} object. This will be `discount`."
-
- - name: "start"
- type: "date-time"
- description: "Date that the coupon was applied."
-
- - name: "subscription"
- type: "string"
- description: "The subscription that this coupon is applied to, if it is applied to a particular subscription."
- foreign-key-id: "subscription-id"
-
- - name: "discounts"
- type: "array"
- description: ""
- subattributes:
- - name: "value"
- type: "string"
- description: ""
-
- - name: "email"
- type: "string"
- description: "The customer's email address."
-
- - name: "invoice_prefix"
- type: "string"
- description: "The prefix used to generate unique invoice numbers for the customer."
-
- - name: "invoice_settings"
- type: "object"
- description: ""
- subattributes:
- - name: "custom_fields"
- type: "array"
- description: ""
- subattributes:
- - name: "value"
- type: "string"
- description: ""
- - name: "default_payment_method"
- type: "string"
- description: ""
- - name: "footer"
- type: "string"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: "Indicates if the customer exists in live mode (`true`) or in test mode (`false`)."
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes: *metadata
-
- - name: "next_invoice_sequence"
- type: "integer"
- description: ""
-
- - name: "object"
- type: "string"
- description: "The type of {{ integration.display_name }} object. This will be `customer`."
-
- - name: "phone"
- type: "string"
- description: ""
-
- - name: "preferred_locales"
- type: "array"
- description: ""
- subattributes:
- - name: "value"
- type: "string"
- description: ""
-
- - name: "shipping"
- type: "object"
- description: "Mailing and shipping addresses for the customer. Appears on invoices emailed to this customer."
- subattributes:
- - name: "address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: "The city of the shipping address."
-
- - name: "country"
- type: "string"
- description: "The two-letter country code of the shipping address. For example: `us`"
-
- - name: "line1"
- type: "string"
- description: "The first address line of the shipping address."
-
- - name: "line2"
- type: "string"
- description: "The second address line of the shipping address."
-
- - name: "postal_code"
- type: "string"
- description: "The zip or postal code of the shipping address."
-
- - name: "state"
- type: "string"
- description: "The state, county, province, region, etc. of the shipping address"
-
- - name: "name"
- type: "string"
- description: "The recipient's name."
-
- - name: "phone"
- type: "string"
- description: "The recipient's phone number, including extension."
-
- - name: "sources"
- type: "array"
- description: "The customer's payment sources."
- doc-link: "https://stripe.com/docs/api/sources/object"
- subattributes:
- - name: "ach_credit_transfer"
- type: "object"
- description: "If the source is an ACH credit transfer, this will contain the details about the ACH credit transfer source."
- doc-link: "https://stripe.com/docs/sources/ach-credit-transfer"
- subattributes:
- - name: "account_number"
- type: "string"
- description: "A positive integer in the smallest currency unit (that is, `100` cents for `$1.00`, or `1 for `Â¥1`, Japanese Yen being a zero-decimal currency) representing the total amount associated with the source. This is the amount for which the source will be chargeable once ready."
-
- - name: "bank_name"
- type: "string"
- description: "The name of the bank the credit transfer should be sent to."
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "refund_account_holder_name"
- type: "string"
- description: ""
-
- - name: "refund_account_holder_type"
- type: "string"
- description: ""
-
- - name: "refund_account_number"
- type: "string"
- description: ""
-
- - name: "refund_routing_number"
- type: "string"
- description: ""
-
- - name: "routing_number"
- type: "string"
- description: "The routing number of the bank receiving the credit transfer."
-
- - name: "swift_code"
- type: "string"
- description: ""
-
- - name: "address_city"
- type: "string"
- description: *address-city
-
- - name: "address_country"
- type: "string"
- description: *address-country
-
- - name: "address_line1"
- type: "string"
- description: *address-line1
-
- - name: "address_line1_check"
- type: "string"
- description: *address-line1-check
-
- - name: "address_line2"
- type: "string"
- description: *address-line2
-
- - name: "address_state"
- type: "string"
- description: *address-state
-
- - name: "address_zip"
- type: "string"
- description: *address-zip
-
- - name: "address_zip_check"
- type: "string"
- description: *address-zip-check
-
- - name: "alipay"
- type: ""
- description: "If the source is an Alipay source, this will contain the details about the Alipay source."
- doc-link: "https://stripe.com/docs/sources/alipay"
- subattributes:
- # - name: "TODO"
- # type: ""
- # description: ""
-
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "bancontact"
- type: ""
- description: "If the source is a Bancontact source, this will contain the details about the Bancontact source."
- doc-link: "https://stripe.com/docs/sources/bancontact"
- subattributes:
- # - name: "TODO"
- # type: ""
- # description: ""
-
- - name: "brand"
- type: "string"
- description: *brand
-
- - name: "card"
- type: "object"
- description: "If the source is a card source, this will contain the details about the card source."
- subattributes:
- - name: "id"
- type: "string"
- description: "The card ID."
-
- - name: "address_city"
- type: "string"
- description: &address-city "The city associated with the card's billing address."
-
- - name: "address_country"
- type: "string"
- description: &address-country "The billing address country."
-
- - name: "address_line1"
- type: "string"
- description: &address-line1 "The first line of the billing address."
-
- - name: "address_line1_check"
- type: "string"
- description: &address-line1-check |
- If `address_line1` was provided, the results of the check. Possible values are:
-
- - `pass`
- - `fail`
- - `unavailable`
- - `unchecked`
-
- - name: "address_line2"
- type: "string"
- description: &address-line2 "The second line of the billing address."
-
- - name: "address_state"
- type: "string"
- description: &address-state "The state/county/province/region of the billing address."
-
- - name: "address_zip"
- type: "string"
- description: &address-zip "The zip or postal code of the billing address."
-
- - name: "address_zip_check"
- type: "string"
- description: &address-zip-check |
- If `address_zip` was provided, the results of the check. Possible values are:
-
- - `pass`
- - `fail`
- - `unavailable`
- - `unchecked`
-
- - name: "brand"
- type: "string"
- description: &brand |
- The brand of the card. Possible values are:
-
- - `American Express`
- - `Diners Club`
- - `Discover`
- - `JCB`
- - `MasterCard`
- - `UnionPay`
- - `Visa`
- - `Unknown`
-
- - name: "country"
- type: "string"
- description: &country "The two-letter ISO code representing the country of the card."
-
- - name: "customer"
- type: "string"
- description: "The ID of the customer that the card belongs to."
- foreign-key-id: "customer-id"
-
- - name: "cvc_check"
- type: "string"
- description: &cvc-check |
- If a CVC was provided, this will be the result of the check. Possible values are:
-
- - `pass`
- - `fail`
- - `unavailable`
- - `unchecked`
-
- - name: "dynamic_last4"
- type: "string"
- description: &dynamic-last4 "**For tokenized numbers only.** The last four digits of the device account number."
-
- - name: "exp_month"
- type: "integer"
- description: &exp-month "The two-digit number representing the card's expiration month."
-
- - name: "exp_year"
- type: "integer"
- description: &exp-year "The four-digit number representing the card's expiration year."
-
- - name: "fingerprint"
- type: "string"
- description: &fingerprint "A unique ID for the card number."
-
- - name: "funding"
- type: "string"
- description: &funding |
- The card's funding type. Possible values are:
-
- - `credit`
- - `debit`
- - `prepaid`
- - `unknown`
-
- - name: "last4"
- type: "string"
- description: &last4 "The last four digits of the card."
-
- - name: "metadata"
- type: "object"
- description: "Additional information attached to the card."
- subattributes: &metadata
- - name: "ANYTHING"
- type: "ANYTHING"
- description: "This info will vary."
-
- - name: "name"
- type: "string"
- description: &card-name "The name of the cardholder."
-
- - name: "object"
- type: "string"
- description: "The type of {{ integration.display_name }} object. This will be `card`."
-
- - name: "tokenization_method"
- type: "string"
- description: &tokenization-method |
- If the card number is tokenized, this is the method that was used. Possible values are:
-
- - `apple_pay`
- - `android_pay`
-
- - name: "client_secret"
- type: "string"
- description: "The client secret of the source. Used for client-side retrieval using a publishable key."
-
- - name: "country"
- type: "string"
- description: *country
-
- - name: "created"
- type: "date-time"
- description: "The time the source was created."
-
- - name: "currency"
- type: "string"
- description: |
- The three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html){:target="new"} associated with the source.
-
- - name: "customer"
- type: "string"
- description: "The ID of the customer to which the source is attached."
-
- - name: "cvc_check"
- type: "string"
- description: *cvc-check
-
- - name: "dynamic_last4"
- type: "string"
- description: *dynamic-last4
-
- - name: "eps"
- type: ""
- description: "If the source is an EPS source, this will contain the details about the EPS source."
- doc-link: "https://stripe.com/docs/sources/eps"
- subattributes:
-
- - name: "exp_month"
- type: "integer"
- description: *exp-month
-
- - name: "exp_year"
- type: "integer"
- description: *exp-year
-
- - name: "fingerprint"
- type: "string"
- description: *fingerprint
-
- - name: "flow"
- type: "string"
- description: |
- The authentication flow of the source. Possible values are:
-
- - `redirect`
- - `receiver`
- - `code_verification`
- - `none`
-
- - name: "funding"
- type: "string"
- description: *funding
-
- - name: "id"
- type: "string"
- description: "The source ID."
-
- - name: "ideal"
- type: "object"
- description: "If the source is an iDEAL source, this will contain the details about the iDEAL source."
- doc-link: "https://stripe.com/docs/sources/ideal"
- subattributes:
-
- - name: "last4"
- type: "string"
- description: *last4
-
- - name: "livemode"
- type: "boolean"
- description: "Indicates if the source exists in live mode (`true`) or in test mode (`false`)."
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes: *metadata
-
- - name: "multibanco"
- type: "object"
- description: ""
- doc-link: "https://stripe.com/docs/sources/multibanco"
- subattributes:
-
- - name: "name"
- type: "string"
- description: *card-name
-
- - name: "object"
- type: "string"
- description: "The type of {{ integration.display_name }} object. This will be `source`."
-
- - name: "owner"
- type: "object"
- description: "Details about the owner of the payment instrument that may be used or required by particular source types."
- subattributes:
- - name: "address"
- type: "object"
- description: "The owner's address."
- subattributes:
- - name: "city"
- type: "string"
- description: "The city of the owner's address."
-
- - name: "country"
- type: "string"
- description: "The country of the owner's address."
-
- - name: "line1"
- type: "string"
- description: "The first line of the owner's address."
-
- - name: "line2"
- type: "string"
- description: "The second line of the owner's address."
-
- - name: "postal_code"
- type: "string"
- description: "The postal code of the owner's address."
-
- - name: "state"
- type: "string"
- description: "The state of the owner's address."
-
- - name: "email"
- type: "string"
- description: "The owner's email address."
-
- - name: "name"
- type: "string"
- description: "The owner's full name."
-
- - name: "phone"
- type: "string"
- description: "The owner's phone number."
-
- - name: "verified_address"
- type: "string"
- description: "The verified owner's address. Verified values are verified or provided by the payment directly at the time of authorization or settlement."
-
- - name: "verified_email"
- type: "string"
- description: "The verified owner's email address. Verified values are verified or provided by the payment directly at the time of authorization or settlement."
-
- - name: "verified_name"
- type: "string"
- description: "The verified owner's full name. Verified values are verified or provided by the payment directly at the time of authorization or settlement."
-
- - name: "verified_phone"
- type: "string"
- description: "The verified owner's phone number. Verified values are verified or provided by the payment directly at the time of authorization or settlement."
-
- - name: "receiver"
- type: "object"
- description: "Information related to the receiver flow. These attributes will be present if `flow: receiver`."
- subattributes:
- - name: "address"
- type: "string"
- description: "The address of the receiver source. This is the value that should be communicated to the customer to send their funds to."
-
- - name: "amount_charged"
- type: "integer"
- description: "The total amount charged by you, expressed in the source's currency."
-
- - name: "amount_received"
- type: "integer"
- description: "The total amount received by the receiver source, expressed in the source's currency."
-
- - name: "amount_returned"
- type: "integer"
- description: "The total amount returned to the customer, expressed in the source's currency."
-
- - name: "refund_attributes_method"
- type: "string"
- description: ""
-
- - name: "refund_attributes_status"
- type: "string"
- description: ""
-
- - name: "redirect"
- type: "object"
- description: "Information related to the redirect flow. These attributes will be present if `flow: redirect`."
- subattributes:
- - name: "failure_reason"
- type: "string"
- description: |
- The failure reason for the redirect. Possible values are:
-
- - `user_abort` - The customer aborted or dropped out of the redirect flow
- - `declined` - The authentication failed or the transaction was declined
- - `processing_error` - The redirect failed due to a technical error; only present if the redirect status is `failed`.
-
- - name: "return_url"
- type: "string"
- description: "The URL you provide to redirect the customer to after they authenticate their payment."
-
- - name: "status"
- type: "string"
- description: |
- The status of the redirect. Possible values are:
-
- - `pending` - Ready to be used by your customer to authenticate the transaction
- - `succeeded` - Successful authentication; cannot be reused
- - `not_required` - Redirect should not be used
- - `failed` - Failed authentication; cannot be reused
-
- - name: "url"
- type: "string"
- description: "The URL provided to you to redirect a customer as part of a redirect authentication flow."
-
- - name: "statement_descriptor"
- type: "string"
- description: "Extra information about a source. This will appear on your customer’s statement every time you charge the source."
-
- - name: "status"
- type: "string"
- description: |
- The status of the source. Possible values are:
-
- - `canceled`
- - `chargeable`
- - `consumed`
- - `failed`
- - `pending`
-
- - name: "tokenization_method"
- type: "string"
- description: *tokenization-method
-
- - name: "type"
- type: "string"
- description: |
- The type of the source. Possible values are:
-
- - `ach_credit_transfer`
- - `ach_debit`
- - `alipay`
- - `bancontact`
- - `card`
- - `card_present`
- - `eps`
- - `giropay`
- - `ideal`
- - `multibanco`
- - `p24`
- - `paper_check`
- - `sepa_credit_transfer`
- - `sepa_debit`
- - `sofort`
- - `three_d_secure`
-
- - name: "usage"
- type: "string"
- description: |
- Indicates if the source should be reusable or not. Some source types may or may not be reusable by construction, while others may leave the option at creation. Possible values are:
-
- - `reusable`
- - `single_use`
-
- - name: "subscriptions"
- type: "array"
- description: "The customer's current subscriptions."
- subattributes:
- - name: "value"
- type: "string"
- description: "The subscription ID."
- foreign-key-id: "subscription-id"
-
- - name: "tax_info"
- type: "string"
- description: ""
-
- - name: "tax_info_verification"
- type: "string"
- description: ""
-
- - name: "tax_exempt"
- type: "string"
- description: ""
-
- - name: "tax_rates"
- type: "array"
- description: ""
- subattributes:
- - name: "active"
- type: "boolean"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "created"
- type: "date-time"
- description: ""
- - name: "description"
- type: "string"
- description: ""
- - name: "display_name"
- type: "string"
- description: ""
- - name: "id"
- type: "string"
- description: ""
- - name: "inclusive"
- type: "boolean"
- description: ""
- - name: "jurisdiction"
- type: "string"
- description: ""
- - name: "livemode"
- type: "boolean"
- description: ""
- - name: "object"
- type: "string"
- description: ""
- - name: "percentage"
- type: "decimal"
- description: ""
- - name: "state"
- type: "string"
- description: ""
-
- - name: "unit_amount_decimal"
- type: "decimal"
- description: ""
-
- - name: "updated"
- type: "date-time"
- description: "The time at which the customer was last updated."
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v1/disputes.md b/_integration-schemas/stripe/v1/disputes.md
deleted file mode 100644
index ab2a8006c..000000000
--- a/_integration-schemas/stripe/v1/disputes.md
+++ /dev/null
@@ -1,207 +0,0 @@
----
-tap: "stripe"
-version: "1"
-
-name: "disputes"
-doc-link: "https://stripe.com/docs/api/disputes/object"
-singer-schema: "https://github.com/singer-io/tap-stripe/blob/master/tap_stripe/schemas/disputes.json"
-description: "This table contains information about customer disputes related to charges on their credit card."
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all disputes"
- doc-link: "https://stripe.com/docs/api/disputes/list"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The dispute ID."
- foreign-key-id: "dispute-id"
-
- - name: "created"
- type: "date-time"
- description: "Time at which the dispute was created. Measured in seconds since the Unix epoch."
- replication-key: true
-
- - name: "amount"
- type: "integer"
- description: "The disputed amount of money."
-
- - name: "balance_transactions"
- type: "array"
- description: "A list of zero, one, or two balance transactions that show funds withdrawn and reinstated to a Stripe account as a result of the dispute."
- subattributes:
- - name: "id"
- type: "string"
- description: "The balance transaction ID."
- foreign-key-id: "balance-transaction-id"
-
- - name: "charge"
- type: "string"
- description: "The ID of the disputed charge."
- foreign-key-id: "charge-id"
-
- - name: "currency"
- type: "string"
- description: "The three-letter ISO currency code of the disputed charge."
-
- - name: "evidence"
- type: "object"
- description: ""
- subattributes:
- - name: "access_activity_log"
- type: "string"
- description: "Any server or activity logs showing proof that the customer accessed or downloaded the purchased digital product."
- - name: "billing_address"
- type: "string"
- description: "The billing address provided by the customer."
- - name: "cancellation_policy"
- type: "string"
- description: "The subscription cancellation policy, as shown to the customer."
- - name: "cancellation_policy_disclosure"
- type: "string"
- description: "The explanation of how and when the customer was shown the refund policy prior to purchase."
- - name: "cancellation_rebuttal"
- type: "string"
- description: "The justification for why the customer’s subscription was not canceled."
- - name: "customer_communication"
- type: "string"
- description: "Any communication with the customer that is relevant to your case."
- - name: "customer_email_address"
- type: "string"
- description: "The email address of the customer."
- - name: "customer_name"
- type: "string"
- description: "The name of the customer."
- - name: "customer_purchase_ip"
- type: "string"
- description: "The IP address that the customer used when making the purchase."
- - name: "customer_signature"
- type: "string"
- description: "A relevant document or contract showing the customer’s signature."
- - name: "duplicate_charge_documentation"
- type: "string"
- description: "Documentation for the prior charge that can uniquely identify the charge."
- - name: "duplicate_charge_explanation"
- type: "string"
- description: "The explanation of the difference between the disputed charge versus the prior charge that appears to be a duplicate."
- - name: "duplicate_charge_id"
- type: "string"
- description: "The Stripe ID for the prior charge which appears to be a duplicate of the disputed charge."
- - name: "product_description"
- type: "string"
- description: "The description of the product or service that was sold."
- - name: "receipt"
- type: "string"
- description: "The receipt or message sent to the customer notifying them of the charge."
- - name: "refund_policy"
- type: "string"
- description: "The refund policy, as shown to the customer."
- - name: "refund_policy_disclosure"
- type: "string"
- description: "Documentation demonstrating that the customer was shown your refund policy prior to purchase."
- - name: "refund_refusal_explanation"
- type: "string"
- description: "The justification for why the customer is not entitled to a refund."
- - name: "service_date"
- type: "string"
- description: "The date on which the customer received or began receiving the purchased service."
- - name: "service_documentation"
- type: "string"
- description: "Documentation showing proof that a service was provided to the customer."
- - name: "shipping_address"
- type: "string"
- description: "The address to which a physical product was shipped."
- - name: "shipping_carrier"
- type: "string"
- description: "The delivery service that shipped a physical product, such as `Fedex`, `UPS`, `USPS`, etc."
- - name: "shipping_date"
- type: "string"
- description: "The date on which a physical product began its route to the shipping address."
- - name: "shipping_documentation"
- type: "string"
- description: "Documentation showing proof that a product was shipped to the customer at the same address the customer provided."
- - name: "shipping_tracking_number"
- type: "string"
- description: "The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated, these will be comma-delineated."
- - name: "uncategorized_file"
- type: "string"
- description: "Any additional evidence or statements."
- - name: "uncategorized_text"
- type: "string"
- description: "Any additional evidence or statements."
-
- - name: "evidence_details"
- type: "object"
- description: "Information about the evidence submitted."
- subattributes:
- - name: "due_by"
- type: "date-time"
- description: "The date by which evidence must be submitted in order to successfully challenge dispute."
- - name: "has_evidence"
- type: "boolean"
- description: "Whether or not evidence has been staged for the dispute."
- - name: "past_due"
- type: "boolean"
- description: "Whether the last evidence submission was submitted past the due date."
- - name: "submission_count"
- type: "integer"
- description: "The number of times evidence has been submitted."
-
- - name: "is_charge_refundable"
- type: "boolean"
- description: "Whether or not the disputed charge is refundable."
-
- - name: "livemode"
- type: "boolean"
- description: "Has the value `TRUE` if the object exists in live mode or the value `FALSE` if the object exists in test mode."
-
- - name: "metadata"
- type: "object"
- description: "A set of key-value pairs that you can attach to an object."
- subattributes:
-
- - name: "object"
- type: "string"
- description: "The object type. In this table, the value is `dispute`."
-
- - name: "reason"
- type: "string"
- description: |
- The reason given by the cardholder for the dispute. Possible values are:
-
- - `bank_cannot_process`
- - `check_returned`
- - `credit_not_processed`
- - `customer_initiated`
- - `debit_not_authorized`
- - `duplicate`
- - `fraudulent`
- - `general`
- - `incorrect_account_details`
- - `insufficient_funds`
- - `product_not_received`
- - `product_unacceptable`
- - `subscription_canceled`
- - `unrecognized`
-
- - name: "status"
- type: "string"
- description: |
- The current status of the dispute. Possible values are:
-
- - `warning_needs_response`
- - `warning_under_review`
- - `warning_closed`
- - `needs_response`
- - `under_review`
- - `charge_refunded`
- - `won`
- - `lost`
-
- - name: "updated"
- type: "date-time"
- description: "The time at which the dispute was last updated."
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v1/payouts.md b/_integration-schemas/stripe/v1/payouts.md
deleted file mode 100644
index 72201e51a..000000000
--- a/_integration-schemas/stripe/v1/payouts.md
+++ /dev/null
@@ -1,227 +0,0 @@
----
-tap: "stripe"
-version: "1"
-
-name: "payouts"
-doc-link: "https://stripe.com/docs/api/payouts"
-singer-schema: "https://github.com/singer-io/tap-stripe/blob/master/tap_stripe/schemas/payouts.json"
-description: |
- The `{{ table.name }}` table contains info about payouts, which occur when you receive funds from {{ integration.display_name }} or initiate a payout to a bank account of the debit card of a connected {{ integration.display_name }} account.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all payouts"
- doc-link: "https://stripe.com/docs/api/payouts/list"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The payout ID."
- foreign-key-id: "payout-id"
-
- - name: "created"
- type: "date-time"
- replication-key: true
- description: "The time at which the payout was created. Measured in seconds since the Unix epoch."
-
- - name: "amount"
- type: "integer"
- description: "The amount (in cents) to be transferred to your bank account or debit card."
-
- - name: "amount_reversed"
- type: "integer"
- description: ""
-
- - name: "arrival_date"
- type: "date-time"
- description: "The date the payout is expected to arrive in the bank."
-
- - name: "automatic"
- type: "boolean"
- description: "Indicates if the payout was created by an automated payout schedule (`true`) or if it was requested manually (`false`)."
-
- - name: "balance_transaction"
- type: "string"
- description: "The ID of the balance transaction that describes the impact of this payout on your account balance."
- foreign-key-id: "balance-transaction-id"
-
- - name: "bank_account"
- type: "object"
- description: "Details about the bank account the payout is being sent to."
- doc-link: "https://stripe.com/docs/api/customer_bank_accounts/object"
- subattributes:
- - name: "account_holder_name"
- type: "string"
- description: "The name of the person or business that owns the bank account."
-
- - name: "account_holder_type"
- type: "string"
- description: "The type of entity that holds the account. Possible values are `individual` or `company`."
-
- - name: "bank_name"
- type: "string"
- description: "The name of the bank associated with the routing number. For example: `WELLS FARGO`"
-
- - name: "country"
- type: "string"
- description: "The two-letter ISO code representing the country the bank account is located in."
-
- - name: "currency"
- type: "string"
- description: |
- The three-letter [ISO code](https://www.iso.org/iso-4217-currency-codes.html){:target="new"} for the currency paid out to the bank account.
-
- - name: "fingerprint"
- type: "string"
- description: "Uniquely identifies the bank account."
-
- - name: "id"
- type: "string"
- description: "The bank account ID in {{ integration.display_name }}."
- # foreign-key-id: "bank-account-id"
-
- - name: "last4"
- type: "string"
- description: "The last four digits associated with the bank account."
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "name"
- type: "string"
- description: "**Deprecated by {{ integration.display_name }}.**"
-
- - name: "object"
- type: "string"
- description: "The type of {{ integration.display_name }} object. This will be `bank_account`."
-
- - name: "routing_number"
- type: "string"
- description: "The routing transit number for the bank account."
-
- - name: "status"
- type: "string"
- description: |
- The status of the bank account. Possible values are:
-
- - `new` - Indicates the bank account hasn't been validated or had any activity.
- - `validated` - Indicates that {{ integration.display_name }} has determined the bank account exists.
- - `verified` - Indicates that bank account verification has succeeded.
- - `verification_failed` - Indicates that verfication failed.
- - `errored` - Indicates that a transfer sent to the bank account failed. Transfers will not be sent to the account until its details are updated.
-
- - name: "currency"
- type: "string"
- description: |
- The three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html){:target="new"}.
-
- - name: "date"
- type: "date-time"
- description: ""
-
- - name: "description"
- type: "string"
- description: "The description of the payout."
-
- - name: "destination"
- type: "string"
- description: "The ID of the bank account of card the payout was sent to."
-
- - name: "failure_balance_transaction"
- type: "string"
- description: "If the payout failed or was canceled, this will be the ID of the balance transaction that reversed the initial balance transaction, and puts the funds from the failed payout back in your balance."
- foreign-key-id: "balance-transaction-id"
-
- - name: "failure_code"
- type: "string"
- description: |
- The error code explaining the reason for payout failure. Refer to [{{ integration.display_name }}'s documentation](https://stripe.com/docs/api#payout_failures){:target="new"} for a list of possible codes.
-
- - name: "failure_message"
- type: "string"
- description: "The message displaying to the user that further explains the reason for payout failure."
-
- - name: "livemode"
- type: "boolean"
- description: "Indicates if the object exists in live mode (`true`) or in test mode (`false`)."
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
- - name: "ANYTHING"
- type: "ANYTHING"
- description: "This info will vary."
-
- - name: "method"
- type: "string"
- description: |
- The method used to send the payout. Possible values are:
-
- - `standard`
- - `instant`
-
- - name: "object"
- type: "string"
- description: "The type of {{ integration.display_name }} object. This will be `payout`."
-
- - name: "original_payout"
- type: "string"
- description: ""
-
- - name: "recipient"
- type: "string"
- description: ""
-
- - name: "reversed_by"
- type: "string"
- description: ""
-
- - name: "source_transaction"
- type: "string"
- description: "The ID of the charge or payment used to fund the payout."
-
- - name: "source_type"
- type: "string"
- description: |
- The source balance the payout came from. Possible values are:
-
- - `card`
- - `bank_account`
- - `alipay_account`
-
- - name: "statement_description"
- type: "string"
- description: "**Deprecated by {{ integration.display_name }}**."
-
- - name: "statement_descriptor"
- type: "string"
- description: "Additional info about a payout to be displayed on the user's bank statement."
-
- - name: "status"
- type: "string"
- description: |
- The status of the payout. Possible values are:
-
- - `paid`
- - `pending`
- - `in_transit`
- - `canceled`
- - `failed`
-
- - name: "transfer_group"
- type: "string"
- description: "A string that identifies the payout as part of a group."
-
- - name: "type"
- type: "string"
- description: "The type of the payout. Possible values are `bank_account` or `card`."
-
- - name: "updated"
- type: "date-time"
- description: "The time the payout was last updated."
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v2/charges.md b/_integration-schemas/stripe/v2/charges.md
deleted file mode 100644
index 4a9da849f..000000000
--- a/_integration-schemas/stripe/v2/charges.md
+++ /dev/null
@@ -1,1277 +0,0 @@
----
-tap: "stripe"
-version: "2"
-key: ""
-
-name: "charges"
-doc-link: "https://stripe.com/docs/api/charges/object"
-singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/charges.json
-description: |
- The `{{ table.name }}` table contains info about charges to credit and debit cards.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all charges"
- doc-link: "https://stripe.com/docs/api/charges/list"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The charge ID."
- foreign-key-id: "charge-id"
-
- - name: "created"
- type: "string"
- replication-key: true
- description: "Time at which the object was created. Measured in seconds since the Unix epoch."
-
- - name: "amount"
- type: "integer"
- description: |
- A positive integer in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal){:target="new"} (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency) representing how much to charge. The minimum amount is $0.50 USD or [equivalent in charge currency](https://support.stripe.com/questions/what-is-the-minimum-amount-i-can-charge-with-stripe){:target="new"}.
-
- - name: "amount_captured"
- type: "integer"
- description: ""
-
- - name: "amount_refunded"
- type: "integer"
- description: "Amount in cents refunded (can be less than `amount` if a partial refund was issued)."
-
- - name: "application"
- type: "string"
- description: "The ID of the Connect application that created the charge."
-
- - name: "application_fee"
- type: "string"
- description: ""
-
- - name: "application_fee_amount"
- type: "integer"
- description: ""
-
- - name: "balance_transaction"
- type: "string"
- description: ""
-
- - name: "billing_details"
- type: "object"
- description: ""
- subattributes:
- - name: "address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "line1"
- type: "string"
- description: ""
- - name: "line2"
- type: "string"
- description: ""
- - name: "postal_code"
- type: "string"
- description: ""
- - name: "state"
- type: "string"
- description: ""
- - name: "email"
- type: "string"
- description: ""
- - name: "name"
- type: "string"
- description: ""
- - name: "phone"
- type: "string"
- description: ""
-
-
- - name: "calculated_statement_descriptor"
- type: "string"
- description: ""
-
- - name: "captured"
- type: "boolean"
- description: ""
-
- - name: "card"
- type: "object"
- description: &source-description "Details about the credit or debit card that is the source of the charge."
- subattributes:
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
- - name: "exp_month"
- type: "integer"
- description: ""
- - name: "address_state"
- type: "string"
- description: ""
- - name: "id"
- type: "string"
- description: "The card ID."
- foreign-key-id: "card-id"
- - name: "object"
- type: "string"
- description: ""
- - name: "address_line1_check"
- type: "string"
- description: ""
- - name: "address_line1"
- type: "string"
- description: ""
- - name: "exp_year"
- type: "integer"
- description: ""
- - name: "tokenization_method"
- type: "string"
- description: ""
- - name: "address_country"
- type: "string"
- description: ""
- - name: "fingerprint"
- type: "string"
- description: ""
- - name: "address_city"
- type: "string"
- description: ""
- - name: "last4"
- type: "string"
- description: ""
- - name: "address_line2"
- type: "string"
- description: ""
- - name: "customer"
- type: "string"
- description: ""
- - name: "brand"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "dynamic_last4"
- type: "string"
- description: ""
- - name: "name"
- type: "string"
- description: ""
- - name: "funding"
- type: "string"
- description: ""
- - name: "address_zip"
- type: "string"
- description: ""
- - name: "address_zip_check"
- type: "string"
- description: ""
- - name: "cvc_check"
- type: "string"
- description: ""
- - name: "type"
- type: "string"
- description: ""
-
-
-
-
- - name: "currency"
- type: "string"
- description: |
- The three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html){:target="new"}.
-
- - name: "customer"
- type: "string"
- description: "The ID of the customer associated with the charge."
- foreign-key-id: "customer-id"
-
- - name: "description"
- type: "string"
- description: "An arbitrary string attached to the object. Often useful for displaying to users."
-
- - name: "destination"
- type: "string"
- description: "The account (if any) the charge was made on behalf of, with an automatic transfer."
-
- - name: "dispute"
- type: "string"
- description: "Details about the dispute, if the charge has been disputed."
-
- - name: "disputed"
- type: "boolean"
- description: ""
-
- - name: "failure_code"
- type: "string"
- description: |
- The error code explaining the reason for a charge failure, if available. Refer to [{{ integration.display_name }}'s documentation](https://stripe.com/docs/api#errors){:target="new"} for a list of possible error codes.
-
- - name: "failure_message"
- type: "string"
- description: "The message that displays to the user that further explains the reason for the charge failure."
-
- - name: "fraud_details"
- type: "object"
- description: |
- Details about fraud assessments for the charge.
- subattributes:
- - name: "stripe_report"
- type: "string"
- description: |
- If not `null`, this indicates that a {{ integration.display_name }} fraud assessment exists for the charge. This field may have a value of `fraudulent`.
-
- - `safe`
- - `fraudulent`
-
- - name: "invoice"
- type: "string"
- description: "The ID of the invoice the charge is for."
- foreign-key-id: "invoice-id"
-
- - name: "livemode"
- type: "boolean"
- description: "Indicates if the object exists in live mode (`true`) or in test mode (`false`)."
-
- - name: "metadata"
- type: "object"
- description: "Additional information attached to the charge."
-
- - name: "object"
- type: "string"
- description: "The type of {{ integration.display_name }} object. This will be `charge`."
-
- - name: "on_behalf_of"
- type: "string"
- description: "The account the charge was made on behalf of without triggering an automatic transfer"
-
- - name: "order"
- type: "string"
- description: "The ID of the order this charge is for."
-
- - name: "outcome"
- type: "object"
- description: "Details about whether the payment was accepted and why."
- subattributes:
- - name: "type"
- type: "string"
- description: |
- The type of the outcome. Possible values are:
-
- - `authorized`
- - `manual_review`
- - `issuer_declined`
- - `blocked`
- - `invalid`
-
- - name: "seller_message"
- type: "string"
- description: "A description of the outcome type and reason designed for you, the recipient of the payment."
-
- - name: "reason"
- type: "string"
- description: |
- A detailed explanation of the outcome's `type`. Possible values are:
-
- - `highest_risk_level` - Indicates the charge was blocked by Radar's default block rule.
- - `elevated_risk_level` - Indicates the charge was placed in review by Radar's default review rule.
- - `rule` - Indicates the charge was authorized, blocked, or placed in review by a custom rule.
-
- Refer to [{{ integration.display_name }}'s documentation](https://stripe.com/docs/declines){:target="new"} for more info about this attribute.
-
- - name: "risk_level"
- type: "string"
- description: |
- Indicates {{ integration.display_name }}'s evaluation of the riskiness of the payment. Possible values are:
-
- - `normal`, `elevated`, `highest` - Evaluated payments
- - `not_assessed` - Non-card payments, and card-based payments predating the public assignment of risk levels
- - `unknown` - Indicates an error in the risk evaluation
-
- - name: "network_status"
- type: "string"
- description: |
- The network status of the outcome. Possible values are:
-
- - `approved_by_network`
- - `declined_by_network`
- - `not_sent_to_network`
- - `reversed_after_approval` - This value indicates that [{{ integration.display_name }} blocked the payment](https://stripe.com/docs/declines#blocked-payments){:target="new"} after bank authorization, and may temporarily appear as "pending" on a cardholder's statement.
-
- - name: "risk_score"
- type: "integer"
- description: |
- Indicates {{ integration.display_name }}'s evaluation of the riskiness of the payment.
-
- - For evaluated payments, this attribute will contain a value between `0` and `100`.
-
- - For non-card payments, and card-based payments predating the public assignment of risk levels, this field will be `null`.
-
- - name: "paid"
- type: "boolean"
- description: "Indicates if the charge succeeded (`true`) or was successfully authorzed for later capture (`false`)."
-
- - name: "payment_intent"
- type: "string"
- description: "The ID of the payment intent associated with the charge."
- # foreign-key-id: "payment-intent-id"
-
- - name: "payment_method"
- type: "string"
- description: ""
-
- - name: "payment_method_details"
- type: "object"
- description: ""
- subattributes:
- - name: "card_present"
- type: "object"
- description: ""
- subattributes:
- - name: "amount_authorized"
- type: "integer"
- description: ""
- - name: "brand"
- type: "string"
- description: ""
- - name: "cardholder_name"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "emv_auth_data"
- type: "string"
- description: ""
- - name: "exp_month"
- type: "integer"
- description: ""
- - name: "exp_year"
- type: "integer"
- description: ""
- - name: "fingerprint"
- type: "string"
- description: ""
- - name: "funding"
- type: "string"
- description: ""
- - name: "generated_card"
- type: "string"
- description: ""
- - name: "last4"
- type: "string"
- description: ""
- - name: "network"
- type: "string"
- description: ""
- - name: "overcapture_supported"
- type: "boolean"
- description: ""
- - name: "read_method"
- type: "string"
- description: ""
- - name: "receipt"
- type: "object"
- description: ""
- subattributes:
- - name: "account_type"
- type: "string"
- description: ""
- - name: "application_cryptogram"
- type: "string"
- description: ""
- - name: "application_preferred_name"
- type: "string"
- description: ""
- - name: "authorization_code"
- type: "string"
- description: ""
- - name: "authorization_response_code"
- type: "string"
- description: ""
- - name: "cardholder_verification_method"
- type: "string"
- description: ""
- - name: "dedicated_file_name"
- type: "string"
- description: ""
- - name: "terminal_verification_results"
- type: "string"
- description: ""
- - name: "transaction_status_information"
- type: "string"
- description: ""
- - name: "ach_credit_transfer"
- type: "object"
- description: ""
- subattributes:
- - name: "account_number"
- type: "string"
- description: ""
- - name: "bank_name"
- type: "string"
- description: ""
- - name: "routing_number"
- type: "string"
- description: ""
- - name: "swift_code"
- type: "string"
- description: ""
- - name: "ach_debit"
- type: "object"
- description: ""
- subattributes:
- - name: "account_holder_type"
- type: "string"
- description: ""
- - name: "bank_name"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "fingerprint"
- type: "string"
- description: ""
- - name: "last4"
- type: "string"
- description: ""
- - name: "routing_number"
- type: "string"
- description: ""
- - name: "alipay"
- type: "object"
- description: ""
- - name: "bancontact"
- type: "object"
- description: ""
- subattributes:
- - name: "bank_code"
- type: "string"
- description: ""
- - name: "bank_name"
- type: "string"
- description: ""
- - name: "bic"
- type: "string"
- description: ""
- - name: "iban_last4"
- type: "string"
- description: ""
- - name: "preferred_language"
- type: "string"
- description: ""
- - name: "verified_name"
- type: "string"
- description: ""
- - name: "card"
- type: "object"
- description: ""
- subattributes:
- - name: "brand"
- type: "string"
- description: ""
- - name: "checks"
- type: "object"
- description: ""
- subattributes:
- - name: "address_line1_check"
- type: "string"
- description: ""
- - name: "address_postal_code_check"
- type: "string"
- description: ""
- - name: "cvc_check"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "exp_month"
- type: "integer"
- description: ""
- - name: "exp_year"
- type: "integer"
- description: ""
- - name: "fingerprint"
- type: "string"
- description: ""
- - name: "funding"
- type: "string"
- description: ""
- - name: "installments"
- type: "object"
- description: ""
- subattributes:
- - name: "plan"
- type: "object"
- description: ""
- subattributes:
- - name: "count"
- type: "integer"
- description: ""
- - name: "interval"
- type: "string"
- description: ""
- - name: "type"
- type: "string"
- description: ""
- - name: "last4"
- type: "string"
- description: ""
- - name: "network"
- type: "string"
- description: ""
- - name: "three_d_secure"
- type: "object"
- description: ""
- subattributes:
- - name: "authenticated"
- type: "boolean"
- description: ""
- - name: "succeeded"
- type: "boolean"
- description: ""
- - name: "version"
- type: "string"
- description: ""
- - name: "wallet"
- type: "object"
- description: ""
- subattributes:
- - name: "amex_express_checkout"
- type: "object"
- description: ""
- - name: "apple_pay"
- type: "object"
- description: ""
- - name: "dynamic_last4"
- type: "string"
- description: ""
- - name: "google_pay"
- type: "object"
- description: ""
- - name: "masterpass"
- type: "object"
- description: ""
- subattributes:
- - name: "billing_address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "line1"
- type: "string"
- description: ""
- - name: "line2"
- type: "string"
- description: ""
- - name: "postal_code"
- type: "string"
- description: ""
- - name: "state"
- type: "string"
- description: ""
- - name: "email"
- type: "string"
- description: ""
- - name: "name"
- type: "string"
- description: ""
- - name: "shipping_address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "line1"
- type: "string"
- description: ""
- - name: "line2"
- type: "string"
- description: ""
- - name: "postal_code"
- type: "string"
- description: ""
- - name: "state"
- type: "string"
- description: ""
- - name: "samsung_pay"
- type: "object"
- description: ""
- subattributes:
- - name: "type"
- type: "string"
- description: ""
- - name: "visa_checkout"
- type: "object"
- description: ""
- subattributes:
- - name: "billing_address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "line1"
- type: "string"
- description: ""
- - name: "line2"
- type: "string"
- description: ""
- - name: "postal_code"
- type: "string"
- description: ""
- - name: "state"
- type: "string"
- description: ""
- - name: "email"
- type: "string"
- description: ""
- - name: "name"
- type: "string"
- description: ""
- - name: "shipping_address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "line1"
- type: "string"
- description: ""
- - name: "line2"
- type: "string"
- description: ""
- - name: "postal_code"
- type: "string"
- description: ""
- - name: "state"
- type: "string"
- description: ""
- - name: "card_present"
- type: "object"
- description: ""
- subattributes:
- - name: "brand"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "emv_auth_data"
- type: "string"
- description: ""
- - name: "exp_month"
- type: "integer"
- description: ""
- - name: "exp_year"
- type: "integer"
- description: ""
- - name: "fingerprint"
- type: "string"
- description: ""
- - name: "funding"
- type: "string"
- description: ""
- - name: "generated_card"
- type: "string"
- description: ""
- - name: "last4"
- type: "string"
- description: ""
- - name: "network"
- type: "string"
- description: ""
- - name: "read_method"
- type: "string"
- description: ""
- - name: "receipt"
- type: "object"
- description: ""
- subattributes:
- - name: "application_cryptogram"
- type: "string"
- description: ""
- - name: "application_preferred_name"
- type: "string"
- description: ""
- - name: "authorization_code"
- type: "string"
- description: ""
- - name: "authorization_response_code"
- type: "string"
- description: ""
- - name: "cardholder_verification_method"
- type: "string"
- description: ""
- - name: "dedicated_file_name"
- type: "string"
- description: ""
- - name: "terminal_verification_results"
- type: "string"
- description: ""
- - name: "transaction_status_information"
- type: "string"
- description: ""
- - name: "eps"
- type: "object"
- description: ""
- subattributes:
- - name: "verified_name"
- type: "string"
- description: ""
- - name: "giropay"
- type: "object"
- description: ""
- subattributes:
- - name: "bank_code"
- type: "string"
- description: ""
- - name: "bank_name"
- type: "string"
- description: ""
- - name: "bic"
- type: "string"
- description: ""
- - name: "verified_name"
- type: "string"
- description: ""
- - name: "ideal"
- type: "object"
- description: ""
- subattributes:
- - name: "bank"
- type: "string"
- description: ""
- - name: "bic"
- type: "string"
- description: ""
- - name: "iban_last4"
- type: "string"
- description: ""
- - name: "verified_name"
- type: "string"
- description: ""
- - name: "klarna"
- type: "object"
- description: ""
- subattributes:
- - name: "multibanco"
- type: "object"
- description: ""
- subattributes:
- - name: "entity"
- type: "string"
- description: ""
- - name: "reference"
- type: "string"
- description: ""
- - name: "p24"
- type: "object"
- description: ""
- subattributes:
- - name: "reference"
- type: "string"
- description: ""
- - name: "verified_name"
- type: "string"
- description: ""
- - name: "sepa_debit"
- type: "object"
- description: ""
- subattributes:
- - name: "bank_code"
- type: "string"
- description: ""
- - name: "branch_code"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "fingerprint"
- type: "string"
- description: ""
- - name: "last4"
- type: "string"
- description: ""
- - name: "mandate"
- type: "string"
- description: ""
- - name: "sofort"
- type: "object"
- description: ""
- subattributes:
- - name: "bank_code"
- type: "string"
- description: ""
- - name: "bank_name"
- type: "string"
- description: ""
- - name: "bic"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "iban_last4"
- type: "string"
- description: ""
- - name: "verified_name"
- type: "string"
- description: ""
- - name: "stripe_account"
- type: "object"
- description: ""
- subattributes:
- - name: "type"
- type: "string"
- description: ""
- - name: "wechat"
- type: "object"
- description: ""
- subattributes:
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
- - name: "address_state"
- type: "string"
- description: ""
- - name: "id"
- type: "string"
- description: ""
- - name: "object"
- type: "string"
- description: ""
- - name: "address_line1_check"
- type: "string"
- description: ""
- - name: "address_line1"
- type: "string"
- description: ""
- - name: "tokenization_method"
- type: "string"
- description: ""
- - name: "address_country"
- type: "string"
- description: ""
- - name: "address_city"
- type: "string"
- description: ""
- - name: "address_line2"
- type: "string"
- description: ""
- - name: "customer"
- type: "string"
- description: ""
- - name: "dynamic_last4"
- type: "string"
- description: ""
- - name: "name"
- type: "string"
- description: ""
- - name: "address_zip"
- type: "string"
- description: ""
- - name: "address_zip_check"
- type: "string"
- description: ""
- - name: "cvc_check"
- type: "string"
- description: ""
- - name: "type"
- type: "string"
- description: ""
-
- - name: "receipt_email"
- type: "string"
- description: ""
-
- - name: "receipt_number"
- type: "string"
- description: ""
-
- - name: "receipt_url"
- type: "string"
- description: ""
-
- - name: "refunded"
- type: "boolean"
- description: ""
-
- - name: "refunds"
- type: "array"
- description: ""
- subattributes:
- - name: "items"
- type: ""
- description: ""
-
- - name: "review"
- type: "string"
- description: ""
-
- - name: "shipping"
- type: "object"
- description: ""
- subattributes:
-
- - name: "source"
- type: "object"
- description: ""
- subattributes:
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
- - name: "type"
- type: "string"
- description: ""
- - name: "address_zip"
- type: "string"
- description: ""
- - name: "livemode"
- type: "boolean"
- description: ""
- - name: "card"
- type: "object"
- description: ""
- subattributes:
- - name: "fingerprint"
- type: "string"
- description: ""
- - name: "last4"
- type: "string"
- description: ""
- - name: "dynamic_last4"
- type: "string"
- description: ""
- - name: "address_line1_check"
- type: "string"
- description: ""
- - name: "exp_month"
- type: "integer"
- description: ""
- - name: "tokenization_method"
- type: "string"
- description: ""
- - name: "name"
- type: "string"
- description: ""
- - name: "exp_year"
- type: "integer"
- description: ""
- - name: "three_d_secure"
- type: "string"
- description: ""
- - name: "funding"
- type: "string"
- description: ""
- - name: "brand"
- type: "string"
- description: ""
- - name: "cvc_check"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "address_zip_check"
- type: "string"
- description: ""
- - name: "type"
- type: "string"
- description: ""
- - name: "statement_descriptor"
- type: "string"
- description: ""
- - name: "id"
- type: "string"
- description: ""
- - name: "address_country"
- type: "string"
- description: ""
- - name: "funding"
- type: "string"
- description: ""
- - name: "dynamic_last4"
- type: "string"
- description: ""
- - name: "exp_year"
- type: "integer"
- description: ""
- - name: "last4"
- type: "string"
- description: ""
- - name: "exp_month"
- type: "integer"
- description: ""
- - name: "brand"
- type: "string"
- description: ""
- - name: "address_line2"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "object"
- type: "string"
- description: ""
- - name: "amount"
- type: "integer"
- description: ""
- - name: "cvc_check"
- type: "string"
- description: ""
- - name: "usage"
- type: "string"
- description: ""
- - name: "address_line1"
- type: "string"
- description: ""
- - name: "owner"
- type: "object"
- description: ""
- subattributes:
- - name: "verified_address"
- type: "string"
- description: ""
- - name: "email"
- type: "string"
- description: ""
- - name: "address"
- type: "object"
- description: ""
- subattributes:
- - name: "line2"
- type: "string"
- description: ""
- - name: "state"
- type: "string"
- description: ""
- - name: "city"
- type: "string"
- description: ""
- - name: "postal_code"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "line1"
- type: "string"
- description: ""
- - name: "verified_email"
- type: "string"
- description: ""
- - name: "name"
- type: "string"
- description: ""
- - name: "phone"
- type: "string"
- description: ""
- - name: "verified_name"
- type: "string"
- description: ""
- - name: "verified_phone"
- type: "string"
- description: ""
- - name: "tokenization_method"
- type: "string"
- description: ""
- - name: "client_secret"
- type: "string"
- description: ""
- - name: "fingerprint"
- type: "string"
- description: ""
- - name: "address_city"
- type: "string"
- description: ""
- - name: "currency"
- type: "string"
- description: ""
- - name: "address_line1_check"
- type: "string"
- description: ""
- - name: "receiver"
- type: "object"
- description: ""
- subattributes:
- - name: "refund_attributes_method"
- type: "string"
- description: ""
- - name: "amount_returned"
- type: "integer"
- description: ""
- - name: "amount_received"
- type: "integer"
- description: ""
- - name: "refund_attributes_status"
- type: "string"
- description: ""
- - name: "address"
- type: "string"
- description: ""
- - name: "amount_charged"
- type: "integer"
- description: ""
- - name: "flow"
- type: "string"
- description: ""
- - name: "name"
- type: "string"
- description: ""
- - name: "ach_credit_transfer"
- type: "object"
- description: ""
- subattributes:
- - name: "bank_name"
- type: "string"
- description: ""
- - name: "fingerprint"
- type: "string"
- description: ""
- - name: "routing_number"
- type: "string"
- description: ""
- - name: "swift_code"
- type: "string"
- description: ""
- - name: "refund_account_holder_type"
- type: "string"
- description: ""
- - name: "refund_account_holder_name"
- type: "string"
- description: ""
- - name: "refund_account_number"
- type: "string"
- description: ""
- - name: "refund_routing_number"
- type: "string"
- description: ""
- - name: "account_number"
- type: "string"
- description: ""
- - name: "customer"
- type: "string"
- description: ""
- - name: "address_zip_check"
- type: "string"
- description: ""
- - name: "status"
- type: "string"
- description: ""
- - name: "created"
- type: "string"
- description: ""
- - name: "address_state"
- type: "string"
- description: ""
- - name: "alipay"
- type: "object"
- description: ""
- subattributes:
- - name: "bancontact"
- type: "object"
- description: ""
- subattributes:
- - name: "eps"
- type: "object"
- description: ""
- subattributes:
- - name: "ideal"
- type: "object"
- description: ""
- subattributes:
- - name: "multibanco"
- type: "object"
- description: ""
- subattributes:
- - name: "redirect"
- type: "object"
- description: ""
- subattributes:
- - name: "failure_reason"
- type: "string"
- description: ""
- - name: "return_url"
- type: "string"
- description: ""
- - name: "status"
- type: "string"
- description: ""
- - name: "url"
- type: "string"
- description: ""
-
- - name: "source_transfer"
- type: "string"
- description: ""
-
- - name: "statement_description"
- type: "string"
- description: ""
-
- - name: "statement_descriptor"
- type: "string"
- description: ""
-
- - name: "statement_descriptor_suffix"
- type: "string"
- description: ""
-
- - name: "status"
- type: "string"
- description: ""
-
- - name: "transfer_data"
- type: "object"
- description: ""
- subattributes:
- - name: "amount"
- type: "integer"
- description: ""
- - name: "destination"
- type: "string"
- description: ""
-
- - name: "transfer_group"
- type: "string"
- description: ""
-
- - name: "updated"
- type: "string"
- description: ""
-
- - name: "updated_by_event_type"
- type: "string"
- description: "Description of the event"
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v2/coupons.md b/_integration-schemas/stripe/v2/coupons.md
deleted file mode 100644
index 96b607e19..000000000
--- a/_integration-schemas/stripe/v2/coupons.md
+++ /dev/null
@@ -1,94 +0,0 @@
----
-tap: "stripe"
-version: "2"
-key: ""
-
-name: "coupons"
-doc-link: "https://stripe.com/docs/api/coupons"
-singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/coupons.json
-description: |
- The `{{ table.name }}` table contains info about percent or amount-off discounts that may be applied to a customer. **Note:** Coupons only apply to invoices; they don't apply to one-off charges.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all coupons"
- doc-link: "https://stripe.com/docs/api/coupons/list"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The coupon ID."
- foreign-key-id: "coupon-id"
-
- - name: "created"
- type: "string"
- replication-key: true
- description: "Time at which the object was created. Measured in seconds since the Unix epoch."
-
- - name: "amount_off"
- type: "integer"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "duration"
- type: "string"
- description: ""
-
- - name: "duration_in_months"
- type: "integer"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "max_redemptions"
- type: "integer"
- description: ""
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "percent_off"
- type: "number"
- description: ""
-
- - name: "percent_off_precise"
- type: "number"
- description: ""
-
- - name: "redeem_by"
- type: "string"
- description: ""
-
- - name: "times_redeemed"
- type: "integer"
- description: ""
-
- - name: "updated"
- type: "string"
- description: ""
-
- - name: "updated_by_event_type"
- type: "string"
- description: "Description of the event"
-
- - name: "valid"
- type: "boolean"
- description: ""
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v2/customers.md b/_integration-schemas/stripe/v2/customers.md
deleted file mode 100644
index b54ead741..000000000
--- a/_integration-schemas/stripe/v2/customers.md
+++ /dev/null
@@ -1,1308 +0,0 @@
----
-tap: "stripe"
-version: "2"
-key: ""
-
-name: "customers"
-doc-link: "https://stripe.com/docs/api/customers/object"
-singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/customers.json
-description: |
- The `{{ table.name }}` table contains info about your customers.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all customers"
- doc-link: "https://stripe.com/docs/api/customers/list"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The customer ID."
- foreign-key-id: "customer-id"
-
- - name: "created"
- type: "string"
- replication-key: true
- description: "Time at which the object was created. Measured in seconds since the Unix epoch."
-
- - name: "account_balance"
- type: "integer"
- description: ""
-
- - name: "address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "line1"
- type: "string"
- description: ""
-
- - name: "line2"
- type: "string"
- description: ""
-
- - name: "postal_code"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
-
- - name: "balance"
- type: "integer"
- description: ""
-
- - name: "cards"
- type: "array"
- description: ""
- subattributes:
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "id"
- type: "string"
- description: ""
-
- - name: "exp_month"
- type: "integer"
- description: ""
-
- - name: "dynamic_last4"
- type: "string"
- description: ""
-
- - name: "exp_year"
- type: "integer"
- description: ""
-
- - name: "last4"
- type: "string"
- description: ""
-
- - name: "funding"
- type: "string"
- description: ""
-
- - name: "brand"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "customer"
- type: "string"
- description: ""
-
- - name: "cvc_check"
- type: "string"
- description: ""
-
- - name: "address_line2"
- type: "string"
- description: ""
-
- - name: "address_line1"
- type: "string"
- description: ""
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "address_zip"
- type: "string"
- description: ""
-
- - name: "address_city"
- type: "string"
- description: ""
-
- - name: "address_country"
- type: "string"
- description: ""
-
- - name: "address_line1_check"
- type: "string"
- description: ""
-
- - name: "tokenization_method"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "address_state"
- type: "string"
- description: ""
-
- - name: "address_zip_check"
- type: "string"
- description: ""
-
- - name: "type"
- type: "string"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "default_card"
- type: "string"
- description: ""
-
- - name: "default_source"
- type: "string"
- description: ""
-
- - name: "delinquent"
- type: "boolean"
- description: ""
-
- - name: "description"
- type: "string"
- description: ""
-
- - name: "discount"
- type: "object"
- description: ""
- subattributes:
- - name: "end"
- type: "string"
- description: ""
-
- - name: "coupon"
- type: "object"
- description: ""
- subattributes:
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "valid"
- type: "boolean"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "amount_off"
- type: "integer"
- description: ""
-
- - name: "redeem_by"
- type: "string"
- description: ""
-
- - name: "duration_in_months"
- type: "integer"
- description: ""
-
- - name: "percent_off_precise"
- type: "number"
- description: ""
-
- - name: "max_redemptions"
- type: "integer"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "times_redeemed"
- type: "integer"
- description: ""
-
- - name: "id"
- type: "string"
- description: "The ID of the discount object. "
-
- - name: "duration"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "percent_off"
- type: "number"
- description: ""
-
- - name: "created"
- type: "string"
- description: ""
-
-
- - name: "customer"
- type: "string"
- description: ""
-
- - name: "start"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "subscription"
- type: "string"
- description: ""
-
- - name: "checkout_session"
- type: "string"
- description: ""
-
- - name: "id"
- type: "string"
- description: "The ID of the discount object. "
-
- - name: "invoice"
- type: "string"
- description: "The invoice that the discount’s coupon was applied to, if it was applied directly to a particular invoice."
-
- - name: "invoice_item"
- type: "string"
- description: "The invoice item id (or invoice line item id for invoice line items of type=‘subscription’) that the discount’s coupon was applied to, if it was applied directly to a particular invoice item or invoice line item."
-
- - name: "promotion_code"
- type: "string"
- description: "The promotion code applied to create this discount."
-
-
- - name: "email"
- type: "string"
- description: ""
-
- - name: "invoice_prefix"
- type: "string"
- description: ""
-
- - name: "invoice_settings"
- type: "object"
- description: ""
- subattributes:
- - name: "custom_fields"
- type: "array"
- description: ""
- subattributes:
- - name: "items"
- type: "string"
- description: ""
-
- - name: "default_payment_method"
- type: "string"
- description: ""
-
- - name: "footer"
- type: "string"
- description: ""
-
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "next_invoice_sequence"
- type: "integer"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "phone"
- type: "string"
- description: ""
-
- - name: "preferred_locales"
- type: "array"
- description: ""
- subattributes:
- - name: "items"
- type: "string"
- description: ""
-
- - name: "shipping"
- type: "object"
- description: ""
- subattributes:
- - name: "address"
- type: "object"
- description: ""
- subattributes:
- - name: "line2"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
- - name: "city"
- type: "string"
- description: ""
-
- - name: "postal_code"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "line1"
- type: "string"
- description: ""
-
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "phone"
- type: "string"
- description: ""
-
-
- - name: "sources"
- type: "array"
- description: ""
- subattributes:
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "type"
- type: "string"
- description: ""
-
- - name: "address_zip"
- type: "string"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "card"
- type: "object"
- description: ""
- subattributes:
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "last4"
- type: "string"
- description: ""
-
- - name: "dynamic_last4"
- type: "string"
- description: ""
-
- - name: "address_line1_check"
- type: "string"
- description: ""
-
- - name: "exp_month"
- type: "integer"
- description: ""
-
- - name: "tokenization_method"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "exp_year"
- type: "integer"
- description: ""
-
- - name: "three_d_secure"
- type: "string"
- description: ""
-
- - name: "funding"
- type: "string"
- description: ""
-
- - name: "brand"
- type: "string"
- description: ""
-
- - name: "cvc_check"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "address_zip_check"
- type: "string"
- description: ""
-
- - name: "type"
- type: "string"
- description: ""
-
-
- - name: "statement_descriptor"
- type: "string"
- description: ""
-
- - name: "id"
- type: "string"
- description: ""
-
- - name: "address_country"
- type: "string"
- description: ""
-
- - name: "funding"
- type: "string"
- description: ""
-
- - name: "dynamic_last4"
- type: "string"
- description: ""
-
- - name: "exp_year"
- type: "integer"
- description: ""
-
- - name: "last4"
- type: "string"
- description: ""
-
- - name: "exp_month"
- type: "integer"
- description: ""
-
- - name: "brand"
- type: "string"
- description: ""
-
- - name: "address_line2"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "cvc_check"
- type: "string"
- description: ""
-
- - name: "usage"
- type: "string"
- description: ""
-
- - name: "address_line1"
- type: "string"
- description: ""
-
- - name: "owner"
- type: "object"
- description: ""
- subattributes:
- - name: "verified_address"
- type: "string"
- description: ""
-
- - name: "email"
- type: "string"
- description: ""
-
- - name: "address"
- type: "object"
- description: ""
- subattributes:
- - name: "line2"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
- - name: "city"
- type: "string"
- description: ""
-
- - name: "postal_code"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "line1"
- type: "string"
- description: ""
-
-
- - name: "verified_email"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "phone"
- type: "string"
- description: ""
-
- - name: "verified_name"
- type: "string"
- description: ""
-
- - name: "verified_phone"
- type: "string"
- description: ""
-
-
- - name: "tokenization_method"
- type: "string"
- description: ""
-
- - name: "client_secret"
- type: "string"
- description: ""
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "address_city"
- type: "string"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "address_line1_check"
- type: "string"
- description: ""
-
- - name: "receiver"
- type: "object"
- description: ""
- subattributes:
- - name: "refund_attributes_method"
- type: "string"
- description: ""
-
- - name: "amount_returned"
- type: "integer"
- description: ""
-
- - name: "amount_received"
- type: "integer"
- description: ""
-
- - name: "refund_attributes_status"
- type: "string"
- description: ""
-
- - name: "address"
- type: "string"
- description: ""
-
- - name: "amount_charged"
- type: "integer"
- description: ""
-
-
- - name: "flow"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "ach_credit_transfer"
- type: "object"
- description: ""
- subattributes:
- - name: "bank_name"
- type: "string"
- description: ""
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "routing_number"
- type: "string"
- description: ""
-
- - name: "swift_code"
- type: "string"
- description: ""
-
- - name: "refund_account_holder_type"
- type: "string"
- description: ""
-
- - name: "refund_account_holder_name"
- type: "string"
- description: ""
-
- - name: "refund_account_number"
- type: "string"
- description: ""
-
- - name: "refund_routing_number"
- type: "string"
- description: ""
-
- - name: "account_number"
- type: "string"
- description: ""
-
-
- - name: "customer"
- type: "string"
- description: ""
-
- - name: "address_zip_check"
- type: "string"
- description: ""
-
- - name: "status"
- type: "string"
- description: ""
-
- - name: "created"
- type: "string"
- description: ""
-
- - name: "address_state"
- type: "string"
- description: ""
-
- - name: "alipay"
- type: "object"
- description: ""
- subattributes:
-
- - name: "bancontact"
- type: "object"
- description: ""
- subattributes:
-
- - name: "eps"
- type: "object"
- description: ""
- subattributes:
-
- - name: "ideal"
- type: "object"
- description: ""
- subattributes:
-
- - name: "multibanco"
- type: "object"
- description: ""
- subattributes:
-
- - name: "redirect"
- type: "object"
- description: ""
- subattributes:
- - name: "failure_reason"
- type: "string"
- description: ""
-
- - name: "return_url"
- type: "string"
- description: ""
-
- - name: "status"
- type: "string"
- description: ""
-
- - name: "url"
- type: "string"
- description: ""
-
-
-
-
- - name: "sources"
- type: "object"
- description: ""
- subattributes:
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "type"
- type: "string"
- description: ""
-
- - name: "address_zip"
- type: "string"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "card"
- type: "object"
- description: ""
- subattributes:
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "last4"
- type: "string"
- description: ""
-
- - name: "dynamic_last4"
- type: "string"
- description: ""
-
- - name: "address_line1_check"
- type: "string"
- description: ""
-
- - name: "exp_month"
- type: "integer"
- description: ""
-
- - name: "tokenization_method"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "exp_year"
- type: "integer"
- description: ""
-
- - name: "three_d_secure"
- type: "string"
- description: ""
-
- - name: "funding"
- type: "string"
- description: ""
-
- - name: "brand"
- type: "string"
- description: ""
-
- - name: "cvc_check"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "address_zip_check"
- type: "string"
- description: ""
-
- - name: "type"
- type: "string"
- description: ""
-
-
- - name: "statement_descriptor"
- type: "string"
- description: ""
-
- - name: "id"
- type: "string"
- description: ""
-
- - name: "address_country"
- type: "string"
- description: ""
-
- - name: "funding"
- type: "string"
- description: ""
-
- - name: "dynamic_last4"
- type: "string"
- description: ""
-
- - name: "exp_year"
- type: "integer"
- description: ""
-
- - name: "last4"
- type: "string"
- description: ""
-
- - name: "exp_month"
- type: "integer"
- description: ""
-
- - name: "brand"
- type: "string"
- description: ""
-
- - name: "address_line2"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "cvc_check"
- type: "string"
- description: ""
-
- - name: "usage"
- type: "string"
- description: ""
-
- - name: "address_line1"
- type: "string"
- description: ""
-
- - name: "owner"
- type: "object"
- description: ""
- subattributes:
- - name: "verified_address"
- type: "string"
- description: ""
-
- - name: "email"
- type: "string"
- description: ""
-
- - name: "address"
- type: "object"
- description: ""
- subattributes:
- - name: "line2"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
- - name: "city"
- type: "string"
- description: ""
-
- - name: "postal_code"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "line1"
- type: "string"
- description: ""
-
-
- - name: "verified_email"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "phone"
- type: "string"
- description: ""
-
- - name: "verified_name"
- type: "string"
- description: ""
-
- - name: "verified_phone"
- type: "string"
- description: ""
-
-
- - name: "tokenization_method"
- type: "string"
- description: ""
-
- - name: "client_secret"
- type: "string"
- description: ""
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "address_city"
- type: "string"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "address_line1_check"
- type: "string"
- description: ""
-
- - name: "receiver"
- type: "object"
- description: ""
- subattributes:
- - name: "refund_attributes_method"
- type: "string"
- description: ""
-
- - name: "amount_returned"
- type: "integer"
- description: ""
-
- - name: "amount_received"
- type: "integer"
- description: ""
-
- - name: "refund_attributes_status"
- type: "string"
- description: ""
-
- - name: "address"
- type: "string"
- description: ""
-
- - name: "amount_charged"
- type: "integer"
- description: ""
-
-
- - name: "flow"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "ach_credit_transfer"
- type: "object"
- description: ""
- subattributes:
- - name: "bank_name"
- type: "string"
- description: ""
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "routing_number"
- type: "string"
- description: ""
-
- - name: "swift_code"
- type: "string"
- description: ""
-
- - name: "refund_account_holder_type"
- type: "string"
- description: ""
-
- - name: "refund_account_holder_name"
- type: "string"
- description: ""
-
- - name: "refund_account_number"
- type: "string"
- description: ""
-
- - name: "refund_routing_number"
- type: "string"
- description: ""
-
- - name: "account_number"
- type: "string"
- description: ""
-
-
- - name: "customer"
- type: "string"
- description: ""
-
- - name: "address_zip_check"
- type: "string"
- description: ""
-
- - name: "status"
- type: "string"
- description: ""
-
- - name: "created"
- type: "string"
- description: ""
-
- - name: "address_state"
- type: "string"
- description: ""
-
- - name: "alipay"
- type: "object"
- description: ""
- subattributes:
-
- - name: "bancontact"
- type: "object"
- description: ""
- subattributes:
-
- - name: "eps"
- type: "object"
- description: ""
- subattributes:
-
- - name: "ideal"
- type: "object"
- description: ""
- subattributes:
-
- - name: "multibanco"
- type: "object"
- description: ""
- subattributes:
-
- - name: "redirect"
- type: "object"
- description: ""
- subattributes:
- - name: "failure_reason"
- type: "string"
- description: ""
-
- - name: "return_url"
- type: "string"
- description: ""
-
- - name: "status"
- type: "string"
- description: ""
-
- - name: "url"
- type: "string"
- description: ""
-
-
-
-
- - name: "subscriptions"
- type: "array"
- description: ""
- subattributes:
- - name: "items"
- type: "string"
- description: ""
-
- - name: "tax_exempt"
- type: "string"
- description: ""
-
- - name: "tax_ids"
- type: "array"
- description: ""
- subattributes:
- - name: "id"
- type: "string"
- description: "Unique identifier for the object."
-
- - name: "object"
- type: "string"
- description: "String representing the object’s type. Objects of the same type share the same value."
-
- - name: "country"
- type: "string"
- description: "Two-letter ISO code representing the country of the tax ID."
-
- - name: "created"
- type: "string"
- description: "Time at which the object was created. Measured in seconds since the Unix epoch."
-
- - name: "customer"
- type: "string"
- description: "ID of the customer."
-
- - name: "livemode"
- type: "boolean"
- description: "Has the value true if the object exists in live mode or the value false if the object exists in test mode"
-
- - name: "type"
- type: "string"
- description: "Type of the tax ID."
-
- - name: "value"
- type: "string"
- description: "Value of the tax ID"
-
- - name: "verification"
- type: "object"
- description: "Tax ID verification information."
- subattributes:
- - name: "status"
- type: "string"
- description: ""
-
- - name: "verified_address"
- type: "string"
- description: ""
-
- - name: "verified_name"
- type: "string"
- description: ""
-
-
-
-
- - name: "tax_ids"
- type: "object"
- description: ""
- subattributes:
- - name: "id"
- type: "string"
- description: "Unique identifier for the object."
-
- - name: "object"
- type: "string"
- description: "String representing the object’s type. Objects of the same type share the same value."
-
- - name: "country"
- type: "string"
- description: "Two-letter ISO code representing the country of the tax ID."
-
- - name: "created"
- type: "string"
- description: "Time at which the object was created. Measured in seconds since the Unix epoch."
-
- - name: "customer"
- type: "string"
- description: "ID of the customer."
-
- - name: "livemode"
- type: "boolean"
- description: "Has the value true if the object exists in live mode or the value false if the object exists in test mode"
-
- - name: "type"
- type: "string"
- description: "Type of the tax ID."
-
- - name: "value"
- type: "string"
- description: "Value of the tax ID"
-
- - name: "verification"
- type: "object"
- description: "Tax ID verification information."
- subattributes:
- - name: "status"
- type: "string"
- description: ""
-
- - name: "verified_address"
- type: "string"
- description: ""
-
- - name: "verified_name"
- type: "string"
- description: ""
-
-
-
-
- - name: "tax_info"
- type: "string"
- description: ""
-
- - name: "tax_info_verification"
- type: "string"
- description: ""
-
- - name: "updated"
- type: "string"
- description: ""
-
- - name: "updated_by_event_type"
- type: "string"
- description: "Description of the event"
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v2/disputes.md b/_integration-schemas/stripe/v2/disputes.md
deleted file mode 100644
index cd8bd3477..000000000
--- a/_integration-schemas/stripe/v2/disputes.md
+++ /dev/null
@@ -1,217 +0,0 @@
----
-tap: "stripe"
-version: "2"
-key: ""
-
-name: "disputes"
-doc-link: "https://stripe.com/docs/api/disputes/object"
-singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/disputes.json
-description: "This table contains information about customer disputes related to charges on their credit card."
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all disputes"
- doc-link: "https://stripe.com/docs/api/disputes/list"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The dispute ID."
- foreign-key-id: "dispute-id"
-
- - name: "created"
- type: "string"
- description: "Time at which the dispute was created. Measured in seconds since the Unix epoch."
- replication-key: true
-
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "balance_transactions"
- type: "array"
- description: ""
- subattributes:
- - name: "id"
- type: "string"
- description: "The balance transaction ID."
- foreign-key-id: "balance-transaction-id"
-
-
- - name: "charge"
- type: "string"
- description: "The ID of the disputed charge."
- foreign-key-id: "charge-id"
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "evidence"
- type: "string, object"
- description: ""
- subattributes:
- - name: "refund_policy"
- type: "string"
- description: ""
-
- - name: "shipping_address"
- type: "string"
- description: ""
-
- - name: "duplicate_charge_explanation"
- type: "string"
- description: ""
-
- - name: "shipping_tracking_number"
- type: "string"
- description: ""
-
- - name: "customer_signature"
- type: "string"
- description: ""
-
- - name: "uncategorized_text"
- type: "string"
- description: ""
-
- - name: "cancellation_policy_disclosure"
- type: "string"
- description: ""
-
- - name: "refund_policy_disclosure"
- type: "string"
- description: ""
-
- - name: "receipt"
- type: "string"
- description: ""
-
- - name: "customer_name"
- type: "string"
- description: ""
-
- - name: "refund_refusal_explanation"
- type: "string"
- description: ""
-
- - name: "cancellation_rebuttal"
- type: "string"
- description: ""
-
- - name: "product_description"
- type: "string"
- description: ""
-
- - name: "shipping_date"
- type: "string"
- description: ""
-
- - name: "customer_email_address"
- type: "string"
- description: ""
-
- - name: "duplicate_charge_id"
- type: "string"
- description: ""
-
- - name: "shipping_documentation"
- type: "string"
- description: ""
-
- - name: "access_activity_log"
- type: "string"
- description: ""
-
- - name: "customer_purchase_ip"
- type: "string"
- description: ""
-
- - name: "service_date"
- type: "string"
- description: ""
-
- - name: "shipping_carrier"
- type: "string"
- description: ""
-
- - name: "service_documentation"
- type: "string"
- description: ""
-
- - name: "duplicate_charge_documentation"
- type: "string"
- description: ""
-
- - name: "cancellation_policy"
- type: "string"
- description: ""
-
- - name: "customer_communication"
- type: "string"
- description: ""
-
- - name: "uncategorized_file"
- type: "string"
- description: ""
-
- - name: "billing_address"
- type: "string"
- description: ""
-
-
- - name: "evidence_details"
- type: "object"
- description: ""
- subattributes:
- - name: "due_by"
- type: "string"
- description: ""
-
- - name: "has_evidence"
- type: "boolean"
- description: ""
-
- - name: "past_due"
- type: "boolean"
- description: ""
-
- - name: "submission_count"
- type: "integer"
- description: ""
-
- - name: "is_charge_refundable"
- type: "boolean"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "reason"
- type: "string"
- description: ""
-
- - name: "status"
- type: "string"
- description: ""
-
- - name: "updated"
- type: "string"
- description: ""
-
- - name: "updated_by_event_type"
- type: "string"
- description: "Description of the event"
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v2/events.md b/_integration-schemas/stripe/v2/events.md
deleted file mode 100644
index c508e2e43..000000000
--- a/_integration-schemas/stripe/v2/events.md
+++ /dev/null
@@ -1,66 +0,0 @@
----
-tap: "stripe"
-version: "2"
-key: ""
-
-name: "events"
-doc-link: "https://stripe.com/docs/api/events"
-singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/events.json
-description: |
- The `{{ table.name }}` table contains info about [events](https://stripe.com/docs/api/events){:target="new"}. When an event occurs, a new event object is created. This table acts as the history of an object, allowing you to see how it has changed over time.
-
- For example: When an invoice is created, an `invoice.created` event is created. When the draft invoice is finalized and updated to be open, an `invoice.finalized` event is created. When the invoice is sent to the customer, an `invoice.sent` event is created.
-
- For more info about this table and how data is replicated, refer to the [Replication](#replication) section. Additionally, refer to [{{ integration.display_name }}'s documentation](https://stripe.com/docs/api/events/types){:target="new"} for info about event types and the objects they describe.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all events"
- doc-link: "https://stripe.com/docs/api/events/list"
-
-attributes:
- - name: "id"
- type: "string"
- description: "The event ID."
- primary-key: true
- foreign-key-id: "event-id"
-
- - name: "created"
- type: "string"
- replication-key: true
- description: "The time at which the object was created. Measured in seconds since the Unix epoch."
-
- - name: "api_version"
- type: "string"
- description: ""
-
- - name: "data"
- type: "object"
- description: ""
- subattributes:
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "pending_webhooks"
- type: "integer"
- description: ""
-
- - name: "request"
- type: "string"
- description: ""
-
- - name: "type"
- type: "string"
- description: ""
-
- - name: "updated"
- type: "string"
- description: ""
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v2/invoice_items.md b/_integration-schemas/stripe/v2/invoice_items.md
deleted file mode 100644
index d17add250..000000000
--- a/_integration-schemas/stripe/v2/invoice_items.md
+++ /dev/null
@@ -1,295 +0,0 @@
----
-tap: "stripe"
-version: "2"
-key: ""
-
-name: "invoice_items"
-doc-link:
-singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/invoice_items.json
-description: |
- The `{{ table.name }}` table contains info about items contained in customer invoices.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all invoice items"
- doc-link: "https://stripe.com/docs/api/invoiceitems/list"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The invoice item ID."
- foreign-key-id: "invoice-item-id"
-
- - name: "date"
- type: "string"
- replication-key: true
- description: "The date the invoice item was added to the invoice."
-
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "customer"
- type: "string"
- description: "The ID of the customer who will be billed for the invoice item."
- foreign-key-id: "customer-id"
-
- - name: "description"
- type: "string"
- description: ""
-
- - name: "discountable"
- type: "boolean"
- description: ""
-
- - name: "discounts"
- type: "array"
- description: ""
- subattributes:
- - name: "items"
- type: "string"
- description: ""
-
- - name: "invoice"
- type: "string"
- description: "The ID of the invoice associated with the invoice item."
- foreign-key-id: "invoice-id"
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "period"
- type: "object"
- description: ""
- subattributes:
- - name: "end"
- type: "string"
- description: ""
-
- - name: "start"
- type: "string"
- description: ""
-
-
- - name: "plan"
- type: "object, string"
- description: ""
- subattributes:
- - name: "nickname"
- type: "string"
- description: ""
-
- - name: "updated_by_event_type"
- type: "string"
- description: "Description of the event"
-
- - name: "amount_decimal"
- type: "string"
- description: ""
-
- - name: "tiers"
- type: "array"
- description: ""
- subattributes:
- - name: "flat_amount"
- type: "integer"
- description: ""
-
- - name: "unit_amount"
- type: "integer"
- description: ""
-
- - name: "up_to"
- type: "integer"
- description: ""
-
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "aggregate_usage"
- type: "string"
- description: ""
-
- - name: "created"
- type: "string"
- description: ""
-
- - name: "statement_description"
- type: "string"
- description: ""
-
- - name: "product"
- type: "string"
- description: "The product whose pricing this plan determines."
- foreign-key-id: "product-id"
-
- - name: "statement_descriptor"
- type: "string"
- description: ""
-
- - name: "interval_count"
- type: "integer"
- description: ""
-
- - name: "transform_usage"
- type: "object"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "interval"
- type: "string"
- description: ""
-
- - name: "id"
- type: "string"
- description: "The plan ID."
- foreign-key-id: "plan-id"
-
- - name: "trial_period_days"
- type: "integer"
- description: ""
-
- - name: "usage_type"
- type: "string"
- description: ""
-
- - name: "active"
- type: "boolean"
- description: ""
-
- - name: "tiers_mode"
- type: "string"
- description: ""
-
- - name: "billing_scheme"
- type: "string"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "updated"
- type: "string"
- description: ""
-
-
- - name: "proration"
- type: "boolean"
- description: ""
-
- - name: "quantity"
- type: "integer"
- description: ""
-
- - name: "subscription"
- type: "string"
- description: ""
-
- - name: "subscription_item"
- type: "string"
- description: ""
-
- - name: "tax_rates"
- type: "array"
- description: ""
- subattributes:
- - name: "id"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "active"
- type: "boolean"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "created"
- type: "string"
- description: ""
-
- - name: "description"
- type: "string"
- description: ""
-
- - name: "display_name"
- type: "string"
- description: ""
-
- - name: "inclusive"
- type: "boolean"
- description: ""
-
- - name: "jurisdiction"
- type: "string"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "percentage"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
-
- - name: "unit_amount"
- type: "integer"
- description: ""
-
- - name: "unit_amount_decimal"
- type: "string"
- description: ""
-
- - name: "updated"
- type: "string"
- description: ""
-
- - name: "updated_by_event_type"
- type: "string"
- description: "Description of the event"
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v2/invoices.md b/_integration-schemas/stripe/v2/invoices.md
deleted file mode 100644
index 19cc3ad95..000000000
--- a/_integration-schemas/stripe/v2/invoices.md
+++ /dev/null
@@ -1,735 +0,0 @@
----
-tap: "stripe"
-version: "2"
-key: ""
-
-name: "invoices"
-doc-link: "https://stripe.com/docs/api/invoices"
-singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/invoices.json
-description: |
- The `{{ table.name }}` table contains info about invoices. Invoices are statements of amounts owed by customers, which can be one-off charges or generated periodically from a subscription.
-
- #### Invoice line items
-
- Full records for the line items associated with an invoice can be found in the [`invoice_line_items`](#invoice_line_items) table. To replicate these records, you must set this table and the `invoice_line_items` table to replicate.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all invoices"
- doc-link: "https://stripe.com/docs/api/invoices/list"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The invoice ID."
- foreign-key-id: "invoice-id"
-
- - name: "created"
- type: "string"
- replication-key: true
- description: "The time at which the invoice was created. Measured in seconds since the Unix epoch."
-
- - name: "account_country"
- type: "string"
- description: ""
-
- - name: "account_name"
- type: "string"
- description: ""
-
- - name: "account_tax_ids"
- type: "array"
- description: ""
- subattributes:
- - name: "items"
- type: "string"
- description: ""
-
- - name: "amount_due"
- type: "integer"
- description: ""
-
- - name: "amount_paid"
- type: "integer"
- description: ""
-
- - name: "amount_remaining"
- type: "integer"
- description: ""
-
- - name: "application_fee"
- type: "integer"
- description: ""
-
- - name: "application_fee_amount"
- type: "integer"
- description: "The fee in cents that will be applied to the invoice and transferred to the application owner’s Stripe account when the invoice is paid."
-
- - name: "attempt_count"
- type: "integer"
- description: ""
-
- - name: "attempted"
- type: "boolean"
- description: ""
-
- - name: "auto_advance"
- type: "boolean"
- description: ""
-
- - name: "automatic_tax"
- type: "object"
- description: "Settings and latest results for automatic tax lookup for this invoice."
- subattributes:
- - name: "enabled"
- type: "boolean"
- description: "Whether Stripe automatically computes tax on this invoice."
-
- - name: "status"
- type: "string"
- description: "The status of the most recent automated tax calculation for this invoice."
-
-
- - name: "billing"
- type: "string"
- description: ""
-
- - name: "billing_reason"
- type: "string"
- description: ""
-
- - name: "charge"
- type: "string"
- description: "The ID of the latest charge generated for this invoice."
- foreign-key-id: "charge-id"
-
- - name: "closed"
- type: "boolean"
- description: ""
-
- - name: "collection_method"
- type: "string"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "custom_fields"
- type: "array"
- description: "Custom fields displayed on the invoice."
- subattributes:
- - name: "name"
- type: "string"
- description: "The name of the custom field."
-
- - name: "value"
- type: "string"
- description: "The value of the custom field."
-
-
- - name: "customer"
- type: "string"
- description: "The ID of the customer associated with the invoice."
- foreign-key-id: "customer-id"
-
- - name: "customer_address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "line1"
- type: "string"
- description: ""
-
- - name: "line2"
- type: "string"
- description: ""
-
- - name: "postal_code"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
-
- - name: "customer_email"
- type: "string"
- description: ""
-
- - name: "customer_name"
- type: "string"
- description: ""
-
- - name: "customer_phone"
- type: "string"
- description: ""
-
- - name: "customer_shipping"
- type: "object"
- description: ""
- subattributes:
- - name: "address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "line1"
- type: "string"
- description: ""
-
- - name: "line2"
- type: "string"
- description: ""
-
- - name: "postal_code"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "phone"
- type: "string"
- description: ""
-
-
- - name: "customer_tax_exempt"
- type: "string"
- description: ""
-
- - name: "customer_tax_ids"
- type: "array"
- description: ""
- subattributes:
- - name: "type"
- type: "string"
- description: ""
-
- - name: "value"
- type: "string"
- description: ""
-
-
- - name: "date"
- type: "string"
- description: ""
-
- - name: "default_payment_method"
- type: "string"
- description: ""
-
- - name: "default_source"
- type: "string"
- description: ""
-
- - name: "default_tax_rates"
- type: "array"
- description: ""
- subattributes:
- - name: "id"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "active"
- type: "boolean"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "created"
- type: "string"
- description: ""
-
- - name: "description"
- type: "string"
- description: ""
-
- - name: "display_name"
- type: "string"
- description: ""
-
- - name: "inclusive"
- type: "boolean"
- description: ""
-
- - name: "jurisdiction"
- type: "string"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "metadata"
- type: "object"
- description: ""
-
- - name: "percentage"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
-
- - name: "description"
- type: "string"
- description: ""
-
- - name: "discount"
- type: "object"
- description: ""
- subattributes:
- - name: "end"
- type: "string"
- description: ""
-
- - name: "coupon"
- type: "object"
- description: ""
- subattributes:
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "valid"
- type: "boolean"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "amount_off"
- type: "integer"
- description: ""
-
- - name: "redeem_by"
- type: "string"
- description: ""
-
- - name: "duration_in_months"
- type: "integer"
- description: ""
-
- - name: "percent_off_precise"
- type: "number"
- description: ""
-
- - name: "max_redemptions"
- type: "integer"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "times_redeemed"
- type: "integer"
- description: ""
-
- - name: "id"
- type: "string"
- description: "The coupon ID."
- foreign-key-id: "coupon-id"
-
- - name: "duration"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "percent_off"
- type: "number"
- description: ""
-
- - name: "created"
- type: "string"
- description: ""
-
-
- - name: "customer"
- type: "string"
- description: "The ID of the customer the discount applies to."
- foreign-key-id: "customer-id"
-
- - name: "start"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "subscription"
- type: "string"
- description: "The subscription that this coupon is applied to, if it is applied to a particular subscription."
- foreign-key-id: "subscription-id"
-
- - name: "checkout_session"
- type: "string"
- description: "The Checkout session that this coupon is applied to, if it is applied to a particular session in payment mode. Will not be present for subscription mode."
-
- - name: "id"
- type: "string"
- description: "The ID of the discount object."
-
- - name: "invoice"
- type: "string"
- description: "The invoice that the discount’s coupon was applied to, if it was applied directly to a particular invoice."
-
- - name: "invoice_item"
- type: "string"
- description: "The invoice item id (or invoice line item id for invoice line items of type=‘subscription’) that the discount’s coupon was applied to, if it was applied directly to a particular invoice item or invoice line item."
-
- - name: "promotion_code"
- type: "string"
- description: "The promotion code applied to create this discount."
-
-
- - name: "discounts"
- type: "array"
- description: ""
- subattributes:
- - name: "items"
- type: "string"
- description: ""
-
- - name: "due_date"
- type: "string"
- description: ""
-
- - name: "ending_balance"
- type: "integer"
- description: ""
-
- - name: "finalized_at"
- type: "string"
- description: ""
-
- - name: "footer"
- type: "string"
- description: ""
-
- - name: "forgiven"
- type: "boolean"
- description: ""
-
- - name: "hosted_invoice_url"
- type: "string"
- description: ""
-
- - name: "invoice_pdf"
- type: "string"
- description: ""
-
- - name: "last_finalization_error"
- type: "object"
- description: ""
- subattributes:
- - name: "code"
- type: "string"
- description: ""
-
- - name: "doc_url"
- type: "string"
- description: ""
-
- - name: "message"
- type: "string"
- description: ""
-
- - name: "param"
- type: "string"
- description: ""
-
- - name: "payment_method_type"
- type: "string"
- description: ""
-
- - name: "type"
- type: "string"
- description: ""
-
-
- - name: "lines"
- type: "array, object"
- description: ""
- subattributes:
- - name: "items"
- type: "string"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "next_payment_attempt"
- type: "string"
- description: ""
-
- - name: "number"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "on_behalf_of"
- type: "string, object"
- description: "The account (if any) for which the funds of the invoice payment are intended. If set, the invoice will be presented with the branding and support information of the specified account."
- subattributes:
-
- - name: "paid"
- type: "boolean"
- description: ""
-
- - name: "paid_out_of_band"
- type: "boolean"
- description: "Returns true if the invoice was manually marked paid, returns false if the invoice hasn’t been paid yet or was paid on Stripe."
-
- - name: "payment"
- type: "string"
- description: ""
-
- - name: "payment_intent"
- type: "string"
- description: ""
-
- - name: "payment_settings"
- type: "object"
- description: "Configuration settings for the PaymentIntent that is generated when the invoice is finalized."
- subattributes:
- - name: "payment_method_options"
- type: "object"
- description: "Payment-method-specific configuration to provide to the invoice’s PaymentIntent."
- subattributes:
- - name: "acss_debit"
- type: "object"
- description: ""
- subattributes:
- - name: "mandate_options"
- type: "object"
- description: ""
- subattributes:
- - name: "transaction_type"
- type: "string"
- description: ""
-
-
- - name: "verification_method"
- type: "string"
- description: ""
-
-
- - name: "bancontact"
- type: "object"
- description: ""
- subattributes:
- - name: "preferred_language"
- type: "string"
- description: ""
-
-
- - name: "card"
- type: "object"
- description: ""
- subattributes:
- - name: "request_three_d_secure"
- type: "string"
- description: ""
-
-
-
- - name: "payment_method_types"
- type: "array"
- description: "The list of payment method types (e.g. card) to provide to the invoice’s PaymentIntent"
- subattributes:
- - name: "items"
- type: "string"
- description: ""
-
-
- - name: "period_end"
- type: "string"
- description: ""
-
- - name: "period_start"
- type: "string"
- description: ""
-
- - name: "post_payment_credit_notes_amount"
- type: "integer"
- description: ""
-
- - name: "pre_payment_credit_notes_amount"
- type: "integer"
- description: ""
-
- - name: "quote"
- type: "object, string"
- description: "The quote this invoice was generated from."
- subattributes:
-
- - name: "receipt_number"
- type: "string"
- description: ""
-
- - name: "starting_balance"
- type: "integer"
- description: ""
-
- - name: "statement_description"
- type: "string"
- description: ""
-
- - name: "statement_descriptor"
- type: "string"
- description: ""
-
- - name: "status"
- type: "string"
- description: ""
-
- - name: "status_transitions"
- type: "object"
- description: ""
- subattributes:
- - name: "finalized_at"
- type: "string"
- description: ""
-
- - name: "marked_uncollectible_at"
- type: "string"
- description: ""
-
- - name: "paid_at"
- type: "string"
- description: ""
-
- - name: "voided_at"
- type: "string"
- description: ""
-
-
- - name: "subscription"
- type: "string"
- description: "The ID that the invoice was prepared for."
- foreign-key-id: "subscription-id"
-
- - name: "subtotal"
- type: "integer"
- description: ""
-
- - name: "tax"
- type: "integer"
- description: ""
-
- - name: "tax_percent"
- type: "number"
- description: ""
-
- - name: "total"
- type: "integer"
- description: ""
-
- - name: "total_discount_amounts"
- type: "array"
- description: ""
- subattributes:
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "discount"
- type: "string"
- description: ""
-
-
- - name: "total_tax_amounts"
- type: "array"
- description: ""
- subattributes:
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "inclusive"
- type: "boolean"
- description: ""
-
- - name: "tax_rate"
- type: "string"
- description: ""
-
-
- - name: "transfer_data"
- type: "object"
- description: ""
- subattributes:
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "destination"
- type: "string"
- description: ""
-
-
- - name: "updated"
- type: "string"
- description: ""
-
- - name: "updated_by_event_type"
- type: "string"
- description: "Description of the event"
-
- - name: "webhooks_delivered_at"
- type: "string"
- description: ""
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v2/payment_intents.md b/_integration-schemas/stripe/v2/payment_intents.md
deleted file mode 100644
index 6d17248bc..000000000
--- a/_integration-schemas/stripe/v2/payment_intents.md
+++ /dev/null
@@ -1,3783 +0,0 @@
----
-tap: "stripe"
-version: "2"
-key: ""
-
-name: "payment_intents"
-doc-link: "https://stripe.com/docs/payments/payment-intents"
-singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/payment_intents.json
-description: |
- This table contains information about payments, from creation through checkout, in your {{ integration.display_name }} account.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all payment intents"
- doc-link: "https://stripe.com/docs/api/payment_intents/list"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The payment intent ID."
- foreign-key-id: "payment-intent-id"
-
- - name: "created"
- type: "string"
- description: "Time at which the dispute was created. Measured in seconds since the Unix epoch."
- replication-key: true
-
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "amount_capturable"
- type: "integer"
- description: ""
-
- - name: "amount_received"
- type: "integer"
- description: ""
-
- - name: "application"
- type: "string"
- description: ""
-
- - name: "application_fee_amount"
- type: "integer"
- description: ""
-
- - name: "automatic_payment_methods"
- type: "object"
- description: ""
- subattributes:
- - name: "enabled"
- type: "boolean"
- description: ""
-
-
- - name: "canceled_at"
- type: "string"
- description: ""
-
- - name: "cancellation_reason"
- type: "string"
- description: ""
-
- - name: "capture_method"
- type: "string"
- description: ""
-
- - name: "charges"
- type: "array"
- description: ""
- subattributes:
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "fraud_details"
- type: "object"
- description: ""
- subattributes:
- - name: "stripe_report"
- type: "string"
- description: ""
-
-
- - name: "transfer_group"
- type: "string"
- description: ""
-
- - name: "on_behalf_of"
- type: "string"
- description: ""
-
- - name: "review"
- type: "string"
- description: ""
-
- - name: "failure_message"
- type: "string"
- description: ""
-
- - name: "receipt_email"
- type: "string"
- description: ""
-
- - name: "application_fee_amount"
- type: "integer"
- description: ""
-
- - name: "disputed"
- type: "boolean"
- description: ""
-
- - name: "payment_method"
- type: "string"
- description: ""
-
- - name: "billing_details"
- type: "object"
- description: ""
- subattributes:
- - name: "address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "line1"
- type: "string"
- description: ""
-
- - name: "line2"
- type: "string"
- description: ""
-
- - name: "postal_code"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
-
- - name: "email"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "phone"
- type: "string"
- description: ""
-
-
- - name: "statement_descriptor_suffix"
- type: "string"
- description: ""
-
- - name: "transfer_data"
- type: "object"
- description: ""
- subattributes:
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "destination"
- type: "string"
- description: ""
-
-
- - name: "receipt_url"
- type: "string"
- description: ""
-
- - name: "statement_descriptor"
- type: "string"
- description: ""
-
- - name: "source"
- type: "object"
- description: ""
- subattributes:
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "type"
- type: "string"
- description: ""
-
- - name: "address_zip"
- type: "string"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "card"
- type: "object"
- description: ""
- subattributes:
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "last4"
- type: "string"
- description: ""
-
- - name: "dynamic_last4"
- type: "string"
- description: ""
-
- - name: "address_line1_check"
- type: "string"
- description: ""
-
- - name: "exp_month"
- type: "integer"
- description: ""
-
- - name: "tokenization_method"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "exp_year"
- type: "integer"
- description: ""
-
- - name: "three_d_secure"
- type: "string"
- description: ""
-
- - name: "funding"
- type: "string"
- description: ""
-
- - name: "brand"
- type: "string"
- description: ""
-
- - name: "cvc_check"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "address_zip_check"
- type: "string"
- description: ""
-
- - name: "type"
- type: "string"
- description: ""
-
-
- - name: "statement_descriptor"
- type: "string"
- description: ""
-
- - name: "id"
- type: "string"
- description: ""
-
- - name: "address_country"
- type: "string"
- description: ""
-
- - name: "funding"
- type: "string"
- description: ""
-
- - name: "dynamic_last4"
- type: "string"
- description: ""
-
- - name: "exp_year"
- type: "integer"
- description: ""
-
- - name: "last4"
- type: "string"
- description: ""
-
- - name: "exp_month"
- type: "integer"
- description: ""
-
- - name: "brand"
- type: "string"
- description: ""
-
- - name: "address_line2"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "cvc_check"
- type: "string"
- description: ""
-
- - name: "usage"
- type: "string"
- description: ""
-
- - name: "address_line1"
- type: "string"
- description: ""
-
- - name: "owner"
- type: "object"
- description: ""
- subattributes:
- - name: "verified_address"
- type: "string"
- description: ""
-
- - name: "email"
- type: "string"
- description: ""
-
- - name: "address"
- type: "object"
- description: ""
- subattributes:
- - name: "line2"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
- - name: "city"
- type: "string"
- description: ""
-
- - name: "postal_code"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "line1"
- type: "string"
- description: ""
-
-
- - name: "verified_email"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "phone"
- type: "string"
- description: ""
-
- - name: "verified_name"
- type: "string"
- description: ""
-
- - name: "verified_phone"
- type: "string"
- description: ""
-
-
- - name: "tokenization_method"
- type: "string"
- description: ""
-
- - name: "client_secret"
- type: "string"
- description: ""
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "address_city"
- type: "string"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "address_line1_check"
- type: "string"
- description: ""
-
- - name: "receiver"
- type: "object"
- description: ""
- subattributes:
- - name: "refund_attributes_method"
- type: "string"
- description: ""
-
- - name: "amount_returned"
- type: "integer"
- description: ""
-
- - name: "amount_received"
- type: "integer"
- description: ""
-
- - name: "refund_attributes_status"
- type: "string"
- description: ""
-
- - name: "address"
- type: "string"
- description: ""
-
- - name: "amount_charged"
- type: "integer"
- description: ""
-
-
- - name: "flow"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "ach_credit_transfer"
- type: "object"
- description: ""
- subattributes:
- - name: "bank_name"
- type: "string"
- description: ""
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "routing_number"
- type: "string"
- description: ""
-
- - name: "swift_code"
- type: "string"
- description: ""
-
- - name: "refund_account_holder_type"
- type: "string"
- description: ""
-
- - name: "refund_account_holder_name"
- type: "string"
- description: ""
-
- - name: "refund_account_number"
- type: "string"
- description: ""
-
- - name: "refund_routing_number"
- type: "string"
- description: ""
-
- - name: "account_number"
- type: "string"
- description: ""
-
-
- - name: "customer"
- type: "string"
- description: ""
-
- - name: "address_zip_check"
- type: "string"
- description: ""
-
- - name: "status"
- type: "string"
- description: ""
-
- - name: "created"
- type: "string"
- description: ""
-
- - name: "address_state"
- type: "string"
- description: ""
-
- - name: "alipay"
- type: "object"
- description: ""
- subattributes:
-
- - name: "bancontact"
- type: "object"
- description: ""
- subattributes:
-
- - name: "eps"
- type: "object"
- description: ""
- subattributes:
-
- - name: "ideal"
- type: "object"
- description: ""
- subattributes:
-
- - name: "multibanco"
- type: "object"
- description: ""
- subattributes:
-
- - name: "redirect"
- type: "object"
- description: ""
- subattributes:
- - name: "failure_reason"
- type: "string"
- description: ""
-
- - name: "return_url"
- type: "string"
- description: ""
-
- - name: "status"
- type: "string"
- description: ""
-
- - name: "url"
- type: "string"
- description: ""
-
-
-
- - name: "destination"
- type: "string"
- description: ""
-
- - name: "id"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "outcome"
- type: "object"
- description: ""
- subattributes:
- - name: "type"
- type: "string"
- description: ""
-
- - name: "seller_message"
- type: "string"
- description: ""
-
- - name: "reason"
- type: "string"
- description: ""
-
- - name: "risk_level"
- type: "string"
- description: ""
-
- - name: "network_status"
- type: "string"
- description: ""
-
- - name: "risk_score"
- type: "integer"
- description: ""
-
-
- - name: "status"
- type: "string"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "created"
- type: "string"
- description: ""
-
- - name: "order"
- type: "string"
- description: ""
-
- - name: "application"
- type: "string"
- description: ""
-
- - name: "refunded"
- type: "boolean"
- description: ""
-
- - name: "receipt_number"
- type: "string"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "captured"
- type: "boolean"
- description: ""
-
- - name: "paid"
- type: "boolean"
- description: ""
-
- - name: "shipping"
- type: "object"
- description: ""
- subattributes:
-
- - name: "calculated_statement_descriptor"
- type: "string"
- description: ""
-
- - name: "invoice"
- type: "string"
- description: ""
-
- - name: "amount_captured"
- type: "integer"
- description: ""
-
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "customer"
- type: "string"
- description: ""
-
- - name: "payment_intent"
- type: "string"
- description: ""
-
- - name: "source_transfer"
- type: "string"
- description: ""
-
- - name: "statement_description"
- type: "string"
- description: ""
-
- - name: "refunds"
- type: "array"
- description: ""
- subattributes:
- - name: "items"
- type: ""
- description: ""
-
- - name: "application_fee"
- type: "string"
- description: ""
-
- - name: "card"
- type: "object"
- description: ""
- subattributes:
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "exp_month"
- type: "integer"
- description: ""
-
- - name: "address_state"
- type: "string"
- description: ""
-
- - name: "id"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "address_line1_check"
- type: "string"
- description: ""
-
- - name: "address_line1"
- type: "string"
- description: ""
-
- - name: "exp_year"
- type: "integer"
- description: ""
-
- - name: "tokenization_method"
- type: "string"
- description: ""
-
- - name: "address_country"
- type: "string"
- description: ""
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "address_city"
- type: "string"
- description: ""
-
- - name: "last4"
- type: "string"
- description: ""
-
- - name: "address_line2"
- type: "string"
- description: ""
-
- - name: "customer"
- type: "string"
- description: ""
-
- - name: "brand"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "dynamic_last4"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "funding"
- type: "string"
- description: ""
-
- - name: "address_zip"
- type: "string"
- description: ""
-
- - name: "address_zip_check"
- type: "string"
- description: ""
-
- - name: "cvc_check"
- type: "string"
- description: ""
-
- - name: "type"
- type: "string"
- description: ""
-
-
- - name: "payment_method_details"
- type: "object"
- description: ""
- subattributes:
- - name: "card_present"
- type: "object"
- description: ""
- subattributes:
- - name: "amount_authorized"
- type: "integer"
- description: ""
-
- - name: "brand"
- type: "string"
- description: ""
-
- - name: "cardholder_name"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "emv_auth_data"
- type: "string"
- description: ""
-
- - name: "exp_month"
- type: "integer"
- description: ""
-
- - name: "exp_year"
- type: "integer"
- description: ""
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "funding"
- type: "string"
- description: ""
-
- - name: "generated_card"
- type: "string"
- description: ""
-
- - name: "last4"
- type: "string"
- description: ""
-
- - name: "network"
- type: "string"
- description: ""
-
- - name: "overcapture_supported"
- type: "boolean"
- description: ""
-
- - name: "read_method"
- type: "string"
- description: ""
-
- - name: "receipt"
- type: "object"
- description: ""
- subattributes:
- - name: "account_type"
- type: "string"
- description: ""
-
- - name: "application_cryptogram"
- type: "string"
- description: ""
-
- - name: "application_preferred_name"
- type: "string"
- description: ""
-
- - name: "authorization_code"
- type: "string"
- description: ""
-
- - name: "authorization_response_code"
- type: "string"
- description: ""
-
- - name: "cardholder_verification_method"
- type: "string"
- description: ""
-
- - name: "dedicated_file_name"
- type: "string"
- description: ""
-
- - name: "terminal_verification_results"
- type: "string"
- description: ""
-
- - name: "transaction_status_information"
- type: "string"
- description: ""
-
-
-
- - name: "ach_credit_transfer"
- type: "object"
- description: ""
- subattributes:
- - name: "account_number"
- type: "string"
- description: ""
-
- - name: "bank_name"
- type: "string"
- description: ""
-
- - name: "routing_number"
- type: "string"
- description: ""
-
- - name: "swift_code"
- type: "string"
- description: ""
-
-
- - name: "ach_debit"
- type: "object"
- description: ""
- subattributes:
- - name: "account_holder_type"
- type: "string"
- description: ""
-
- - name: "bank_name"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "last4"
- type: "string"
- description: ""
-
- - name: "routing_number"
- type: "string"
- description: ""
-
-
- - name: "alipay"
- type: "object"
- description: ""
-
- - name: "bancontact"
- type: "object"
- description: ""
- subattributes:
- - name: "bank_code"
- type: "string"
- description: ""
-
- - name: "bank_name"
- type: "string"
- description: ""
-
- - name: "bic"
- type: "string"
- description: ""
-
- - name: "iban_last4"
- type: "string"
- description: ""
-
- - name: "preferred_language"
- type: "string"
- description: ""
-
- - name: "verified_name"
- type: "string"
- description: ""
-
-
- - name: "card"
- type: "object"
- description: ""
- subattributes:
- - name: "brand"
- type: "string"
- description: ""
-
- - name: "checks"
- type: "object"
- description: ""
- subattributes:
- - name: "address_line1_check"
- type: "string"
- description: ""
-
- - name: "address_postal_code_check"
- type: "string"
- description: ""
-
- - name: "cvc_check"
- type: "string"
- description: ""
-
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "exp_month"
- type: "integer"
- description: ""
-
- - name: "exp_year"
- type: "integer"
- description: ""
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "funding"
- type: "string"
- description: ""
-
- - name: "installments"
- type: "object"
- description: ""
- subattributes:
- - name: "plan"
- type: "object"
- description: ""
- subattributes:
- - name: "count"
- type: "integer"
- description: ""
-
- - name: "interval"
- type: "string"
- description: ""
-
- - name: "type"
- type: "string"
- description: ""
-
-
-
- - name: "last4"
- type: "string"
- description: ""
-
- - name: "network"
- type: "string"
- description: ""
-
- - name: "three_d_secure"
- type: "object"
- description: ""
- subattributes:
- - name: "authenticated"
- type: "boolean"
- description: ""
-
- - name: "succeeded"
- type: "boolean"
- description: ""
-
- - name: "version"
- type: "string"
- description: ""
-
-
- - name: "wallet"
- type: "object"
- description: ""
- subattributes:
- - name: "amex_express_checkout"
- type: "object"
- description: ""
- subattributes:
-
- - name: "apple_pay"
- type: "object"
- description: ""
- subattributes:
-
- - name: "dynamic_last4"
- type: "string"
- description: ""
-
- - name: "google_pay"
- type: "object"
- description: ""
- subattributes:
-
- - name: "masterpass"
- type: "object"
- description: ""
- subattributes:
- - name: "billing_address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "line1"
- type: "string"
- description: ""
-
- - name: "line2"
- type: "string"
- description: ""
-
- - name: "postal_code"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
-
- - name: "email"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "shipping_address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "line1"
- type: "string"
- description: ""
-
- - name: "line2"
- type: "string"
- description: ""
-
- - name: "postal_code"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
-
-
- - name: "samsung_pay"
- type: "object"
- description: ""
- subattributes:
-
- - name: "type"
- type: "string"
- description: ""
-
- - name: "visa_checkout"
- type: "object"
- description: ""
- subattributes:
- - name: "billing_address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "line1"
- type: "string"
- description: ""
-
- - name: "line2"
- type: "string"
- description: ""
-
- - name: "postal_code"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
-
- - name: "email"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "shipping_address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "line1"
- type: "string"
- description: ""
-
- - name: "line2"
- type: "string"
- description: ""
-
- - name: "postal_code"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
-
-
-
- - name: "card_present"
- type: "object"
- description: ""
- subattributes:
- - name: "brand"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "emv_auth_data"
- type: "string"
- description: ""
-
- - name: "exp_month"
- type: "integer"
- description: ""
-
- - name: "exp_year"
- type: "integer"
- description: ""
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "funding"
- type: "string"
- description: ""
-
- - name: "generated_card"
- type: "string"
- description: ""
-
- - name: "last4"
- type: "string"
- description: ""
-
- - name: "network"
- type: "string"
- description: ""
-
- - name: "read_method"
- type: "string"
- description: ""
-
- - name: "receipt"
- type: "object"
- description: ""
- subattributes:
- - name: "application_cryptogram"
- type: "string"
- description: ""
-
- - name: "application_preferred_name"
- type: "string"
- description: ""
-
- - name: "authorization_code"
- type: "string"
- description: ""
-
- - name: "authorization_response_code"
- type: "string"
- description: ""
-
- - name: "cardholder_verification_method"
- type: "string"
- description: ""
-
- - name: "dedicated_file_name"
- type: "string"
- description: ""
-
- - name: "terminal_verification_results"
- type: "string"
- description: ""
-
- - name: "transaction_status_information"
- type: "string"
- description: ""
-
-
-
- - name: "eps"
- type: "object"
- description: ""
- subattributes:
- - name: "verified_name"
- type: "string"
- description: ""
-
-
- - name: "giropay"
- type: "object"
- description: ""
- subattributes:
- - name: "bank_code"
- type: "string"
- description: ""
-
- - name: "bank_name"
- type: "string"
- description: ""
-
- - name: "bic"
- type: "string"
- description: ""
-
- - name: "verified_name"
- type: "string"
- description: ""
-
-
- - name: "ideal"
- type: "object"
- description: ""
- subattributes:
- - name: "bank"
- type: "string"
- description: ""
-
- - name: "bic"
- type: "string"
- description: ""
-
- - name: "iban_last4"
- type: "string"
- description: ""
-
- - name: "verified_name"
- type: "string"
- description: ""
-
-
- - name: "klarna"
- type: "object"
- description: ""
- subattributes:
-
- - name: "multibanco"
- type: "object"
- description: ""
- subattributes:
- - name: "entity"
- type: "string"
- description: ""
-
- - name: "reference"
- type: "string"
- description: ""
-
-
- - name: "p24"
- type: "object"
- description: ""
- subattributes:
- - name: "reference"
- type: "string"
- description: ""
-
- - name: "verified_name"
- type: "string"
- description: ""
-
-
- - name: "sepa_debit"
- type: "object"
- description: ""
- subattributes:
- - name: "bank_code"
- type: "string"
- description: ""
-
- - name: "branch_code"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "last4"
- type: "string"
- description: ""
-
- - name: "mandate"
- type: "string"
- description: ""
-
-
- - name: "sofort"
- type: "object"
- description: ""
- subattributes:
- - name: "bank_code"
- type: "string"
- description: ""
-
- - name: "bank_name"
- type: "string"
- description: ""
-
- - name: "bic"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "iban_last4"
- type: "string"
- description: ""
-
- - name: "verified_name"
- type: "string"
- description: ""
-
-
- - name: "stripe_account"
- type: "object"
- description: ""
- subattributes:
-
- - name: "type"
- type: "string"
- description: ""
-
- - name: "wechat"
- type: "object"
- description: ""
- subattributes:
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "address_state"
- type: "string"
- description: ""
-
- - name: "id"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "address_line1_check"
- type: "string"
- description: ""
-
- - name: "address_line1"
- type: "string"
- description: ""
-
- - name: "tokenization_method"
- type: "string"
- description: ""
-
- - name: "address_country"
- type: "string"
- description: ""
-
- - name: "address_city"
- type: "string"
- description: ""
-
- - name: "address_line2"
- type: "string"
- description: ""
-
- - name: "customer"
- type: "string"
- description: ""
-
- - name: "dynamic_last4"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "address_zip"
- type: "string"
- description: ""
-
- - name: "address_zip_check"
- type: "string"
- description: ""
-
- - name: "cvc_check"
- type: "string"
- description: ""
-
-
- - name: "type"
- type: "string"
- description: ""
-
-
- - name: "balance_transaction"
- type: "string"
- description: ""
-
- - name: "amount_refunded"
- type: "integer"
- description: ""
-
- - name: "failure_code"
- type: "string"
- description: ""
-
- - name: "dispute"
- type: "string"
- description: ""
-
- - name: "description"
- type: "string"
- description: ""
-
- - name: "updated"
- type: "string"
- description: ""
-
- - name: "updated_by_event_type"
- type: "string"
- description: "Description of the event"
-
-
-
- - name: "charges"
- type: "object"
- description: ""
- subattributes:
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "fraud_details"
- type: "object"
- description: ""
- subattributes:
- - name: "stripe_report"
- type: "string"
- description: ""
-
-
- - name: "transfer_group"
- type: "string"
- description: ""
-
- - name: "on_behalf_of"
- type: "string"
- description: ""
-
- - name: "review"
- type: "string"
- description: ""
-
- - name: "failure_message"
- type: "string"
- description: ""
-
- - name: "receipt_email"
- type: "string"
- description: ""
-
- - name: "application_fee_amount"
- type: "integer"
- description: ""
-
- - name: "disputed"
- type: "boolean"
- description: ""
-
- - name: "payment_method"
- type: "string"
- description: ""
-
- - name: "billing_details"
- type: "object"
- description: ""
- subattributes:
- - name: "address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "line1"
- type: "string"
- description: ""
-
- - name: "line2"
- type: "string"
- description: ""
-
- - name: "postal_code"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
-
- - name: "email"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "phone"
- type: "string"
- description: ""
-
-
- - name: "statement_descriptor_suffix"
- type: "string"
- description: ""
-
- - name: "transfer_data"
- type: "object"
- description: ""
- subattributes:
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "destination"
- type: "string"
- description: ""
-
-
- - name: "receipt_url"
- type: "string"
- description: ""
-
- - name: "statement_descriptor"
- type: "string"
- description: ""
-
- - name: "source"
- type: "object"
- description: ""
- subattributes:
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "type"
- type: "string"
- description: ""
-
- - name: "address_zip"
- type: "string"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "card"
- type: "object"
- description: ""
- subattributes:
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "last4"
- type: "string"
- description: ""
-
- - name: "dynamic_last4"
- type: "string"
- description: ""
-
- - name: "address_line1_check"
- type: "string"
- description: ""
-
- - name: "exp_month"
- type: "integer"
- description: ""
-
- - name: "tokenization_method"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "exp_year"
- type: "integer"
- description: ""
-
- - name: "three_d_secure"
- type: "string"
- description: ""
-
- - name: "funding"
- type: "string"
- description: ""
-
- - name: "brand"
- type: "string"
- description: ""
-
- - name: "cvc_check"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "address_zip_check"
- type: "string"
- description: ""
-
- - name: "type"
- type: "string"
- description: ""
-
-
- - name: "statement_descriptor"
- type: "string"
- description: ""
-
- - name: "id"
- type: "string"
- description: ""
-
- - name: "address_country"
- type: "string"
- description: ""
-
- - name: "funding"
- type: "string"
- description: ""
-
- - name: "dynamic_last4"
- type: "string"
- description: ""
-
- - name: "exp_year"
- type: "integer"
- description: ""
-
- - name: "last4"
- type: "string"
- description: ""
-
- - name: "exp_month"
- type: "integer"
- description: ""
-
- - name: "brand"
- type: "string"
- description: ""
-
- - name: "address_line2"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "cvc_check"
- type: "string"
- description: ""
-
- - name: "usage"
- type: "string"
- description: ""
-
- - name: "address_line1"
- type: "string"
- description: ""
-
- - name: "owner"
- type: "object"
- description: ""
- subattributes:
- - name: "verified_address"
- type: "string"
- description: ""
-
- - name: "email"
- type: "string"
- description: ""
-
- - name: "address"
- type: "object"
- description: ""
- subattributes:
- - name: "line2"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
- - name: "city"
- type: "string"
- description: ""
-
- - name: "postal_code"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "line1"
- type: "string"
- description: ""
-
-
- - name: "verified_email"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "phone"
- type: "string"
- description: ""
-
- - name: "verified_name"
- type: "string"
- description: ""
-
- - name: "verified_phone"
- type: "string"
- description: ""
-
-
- - name: "tokenization_method"
- type: "string"
- description: ""
-
- - name: "client_secret"
- type: "string"
- description: ""
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "address_city"
- type: "string"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "address_line1_check"
- type: "string"
- description: ""
-
- - name: "receiver"
- type: "object"
- description: ""
- subattributes:
- - name: "refund_attributes_method"
- type: "string"
- description: ""
-
- - name: "amount_returned"
- type: "integer"
- description: ""
-
- - name: "amount_received"
- type: "integer"
- description: ""
-
- - name: "refund_attributes_status"
- type: "string"
- description: ""
-
- - name: "address"
- type: "string"
- description: ""
-
- - name: "amount_charged"
- type: "integer"
- description: ""
-
-
- - name: "flow"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "ach_credit_transfer"
- type: "object"
- description: ""
- subattributes:
- - name: "bank_name"
- type: "string"
- description: ""
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "routing_number"
- type: "string"
- description: ""
-
- - name: "swift_code"
- type: "string"
- description: ""
-
- - name: "refund_account_holder_type"
- type: "string"
- description: ""
-
- - name: "refund_account_holder_name"
- type: "string"
- description: ""
-
- - name: "refund_account_number"
- type: "string"
- description: ""
-
- - name: "refund_routing_number"
- type: "string"
- description: ""
-
- - name: "account_number"
- type: "string"
- description: ""
-
-
- - name: "customer"
- type: "string"
- description: ""
-
- - name: "address_zip_check"
- type: "string"
- description: ""
-
- - name: "status"
- type: "string"
- description: ""
-
- - name: "created"
- type: "string"
- description: ""
-
- - name: "address_state"
- type: "string"
- description: ""
-
- - name: "alipay"
- type: "object"
- description: ""
- subattributes:
-
- - name: "bancontact"
- type: "object"
- description: ""
- subattributes:
-
- - name: "eps"
- type: "object"
- description: ""
- subattributes:
-
- - name: "ideal"
- type: "object"
- description: ""
- subattributes:
-
- - name: "multibanco"
- type: "object"
- description: ""
- subattributes:
-
- - name: "redirect"
- type: "object"
- description: ""
- subattributes:
- - name: "failure_reason"
- type: "string"
- description: ""
-
- - name: "return_url"
- type: "string"
- description: ""
-
- - name: "status"
- type: "string"
- description: ""
-
- - name: "url"
- type: "string"
- description: ""
-
-
-
- - name: "destination"
- type: "string"
- description: ""
-
- - name: "id"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "outcome"
- type: "object"
- description: ""
- subattributes:
- - name: "type"
- type: "string"
- description: ""
-
- - name: "seller_message"
- type: "string"
- description: ""
-
- - name: "reason"
- type: "string"
- description: ""
-
- - name: "risk_level"
- type: "string"
- description: ""
-
- - name: "network_status"
- type: "string"
- description: ""
-
- - name: "risk_score"
- type: "integer"
- description: ""
-
-
- - name: "status"
- type: "string"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "created"
- type: "string"
- description: ""
-
- - name: "order"
- type: "string"
- description: ""
-
- - name: "application"
- type: "string"
- description: ""
-
- - name: "refunded"
- type: "boolean"
- description: ""
-
- - name: "receipt_number"
- type: "string"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "captured"
- type: "boolean"
- description: ""
-
- - name: "paid"
- type: "boolean"
- description: ""
-
- - name: "shipping"
- type: "object"
- description: ""
- subattributes:
-
- - name: "calculated_statement_descriptor"
- type: "string"
- description: ""
-
- - name: "invoice"
- type: "string"
- description: ""
-
- - name: "amount_captured"
- type: "integer"
- description: ""
-
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "customer"
- type: "string"
- description: ""
-
- - name: "payment_intent"
- type: "string"
- description: ""
-
- - name: "source_transfer"
- type: "string"
- description: ""
-
- - name: "statement_description"
- type: "string"
- description: ""
-
- - name: "refunds"
- type: "array"
- description: ""
- subattributes:
- - name: "items"
- type: ""
- description: ""
-
- - name: "application_fee"
- type: "string"
- description: ""
-
- - name: "card"
- type: "object"
- description: ""
- subattributes:
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "exp_month"
- type: "integer"
- description: ""
-
- - name: "address_state"
- type: "string"
- description: ""
-
- - name: "id"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "address_line1_check"
- type: "string"
- description: ""
-
- - name: "address_line1"
- type: "string"
- description: ""
-
- - name: "exp_year"
- type: "integer"
- description: ""
-
- - name: "tokenization_method"
- type: "string"
- description: ""
-
- - name: "address_country"
- type: "string"
- description: ""
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "address_city"
- type: "string"
- description: ""
-
- - name: "last4"
- type: "string"
- description: ""
-
- - name: "address_line2"
- type: "string"
- description: ""
-
- - name: "customer"
- type: "string"
- description: ""
-
- - name: "brand"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "dynamic_last4"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "funding"
- type: "string"
- description: ""
-
- - name: "address_zip"
- type: "string"
- description: ""
-
- - name: "address_zip_check"
- type: "string"
- description: ""
-
- - name: "cvc_check"
- type: "string"
- description: ""
-
- - name: "type"
- type: "string"
- description: ""
-
-
- - name: "payment_method_details"
- type: "object"
- description: ""
- subattributes:
- - name: "card_present"
- type: "object"
- description: ""
- subattributes:
- - name: "amount_authorized"
- type: "integer"
- description: ""
-
- - name: "brand"
- type: "string"
- description: ""
-
- - name: "cardholder_name"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "emv_auth_data"
- type: "string"
- description: ""
-
- - name: "exp_month"
- type: "integer"
- description: ""
-
- - name: "exp_year"
- type: "integer"
- description: ""
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "funding"
- type: "string"
- description: ""
-
- - name: "generated_card"
- type: "string"
- description: ""
-
- - name: "last4"
- type: "string"
- description: ""
-
- - name: "network"
- type: "string"
- description: ""
-
- - name: "overcapture_supported"
- type: "boolean"
- description: ""
-
- - name: "read_method"
- type: "string"
- description: ""
-
- - name: "receipt"
- type: "object"
- description: ""
- subattributes:
- - name: "account_type"
- type: "string"
- description: ""
-
- - name: "application_cryptogram"
- type: "string"
- description: ""
-
- - name: "application_preferred_name"
- type: "string"
- description: ""
-
- - name: "authorization_code"
- type: "string"
- description: ""
-
- - name: "authorization_response_code"
- type: "string"
- description: ""
-
- - name: "cardholder_verification_method"
- type: "string"
- description: ""
-
- - name: "dedicated_file_name"
- type: "string"
- description: ""
-
- - name: "terminal_verification_results"
- type: "string"
- description: ""
-
- - name: "transaction_status_information"
- type: "string"
- description: ""
-
-
-
- - name: "ach_credit_transfer"
- type: "object"
- description: ""
- subattributes:
- - name: "account_number"
- type: "string"
- description: ""
-
- - name: "bank_name"
- type: "string"
- description: ""
-
- - name: "routing_number"
- type: "string"
- description: ""
-
- - name: "swift_code"
- type: "string"
- description: ""
-
-
- - name: "ach_debit"
- type: "object"
- description: ""
- subattributes:
- - name: "account_holder_type"
- type: "string"
- description: ""
-
- - name: "bank_name"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "last4"
- type: "string"
- description: ""
-
- - name: "routing_number"
- type: "string"
- description: ""
-
-
- - name: "alipay"
- type: "object"
- description: ""
-
- - name: "bancontact"
- type: "object"
- description: ""
- subattributes:
- - name: "bank_code"
- type: "string"
- description: ""
-
- - name: "bank_name"
- type: "string"
- description: ""
-
- - name: "bic"
- type: "string"
- description: ""
-
- - name: "iban_last4"
- type: "string"
- description: ""
-
- - name: "preferred_language"
- type: "string"
- description: ""
-
- - name: "verified_name"
- type: "string"
- description: ""
-
-
- - name: "card"
- type: "object"
- description: ""
- subattributes:
- - name: "brand"
- type: "string"
- description: ""
-
- - name: "checks"
- type: "object"
- description: ""
- subattributes:
- - name: "address_line1_check"
- type: "string"
- description: ""
-
- - name: "address_postal_code_check"
- type: "string"
- description: ""
-
- - name: "cvc_check"
- type: "string"
- description: ""
-
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "exp_month"
- type: "integer"
- description: ""
-
- - name: "exp_year"
- type: "integer"
- description: ""
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "funding"
- type: "string"
- description: ""
-
- - name: "installments"
- type: "object"
- description: ""
- subattributes:
- - name: "plan"
- type: "object"
- description: ""
- subattributes:
- - name: "count"
- type: "integer"
- description: ""
-
- - name: "interval"
- type: "string"
- description: ""
-
- - name: "type"
- type: "string"
- description: ""
-
-
-
- - name: "last4"
- type: "string"
- description: ""
-
- - name: "network"
- type: "string"
- description: ""
-
- - name: "three_d_secure"
- type: "object"
- description: ""
- subattributes:
- - name: "authenticated"
- type: "boolean"
- description: ""
-
- - name: "succeeded"
- type: "boolean"
- description: ""
-
- - name: "version"
- type: "string"
- description: ""
-
-
- - name: "wallet"
- type: "object"
- description: ""
- subattributes:
- - name: "amex_express_checkout"
- type: "object"
- description: ""
- subattributes:
-
- - name: "apple_pay"
- type: "object"
- description: ""
- subattributes:
-
- - name: "dynamic_last4"
- type: "string"
- description: ""
-
- - name: "google_pay"
- type: "object"
- description: ""
- subattributes:
-
- - name: "masterpass"
- type: "object"
- description: ""
- subattributes:
- - name: "billing_address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "line1"
- type: "string"
- description: ""
-
- - name: "line2"
- type: "string"
- description: ""
-
- - name: "postal_code"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
-
- - name: "email"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "shipping_address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "line1"
- type: "string"
- description: ""
-
- - name: "line2"
- type: "string"
- description: ""
-
- - name: "postal_code"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
-
-
- - name: "samsung_pay"
- type: "object"
- description: ""
- subattributes:
-
- - name: "type"
- type: "string"
- description: ""
-
- - name: "visa_checkout"
- type: "object"
- description: ""
- subattributes:
- - name: "billing_address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "line1"
- type: "string"
- description: ""
-
- - name: "line2"
- type: "string"
- description: ""
-
- - name: "postal_code"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
-
- - name: "email"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "shipping_address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "line1"
- type: "string"
- description: ""
-
- - name: "line2"
- type: "string"
- description: ""
-
- - name: "postal_code"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
-
-
-
- - name: "card_present"
- type: "object"
- description: ""
- subattributes:
- - name: "brand"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "emv_auth_data"
- type: "string"
- description: ""
-
- - name: "exp_month"
- type: "integer"
- description: ""
-
- - name: "exp_year"
- type: "integer"
- description: ""
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "funding"
- type: "string"
- description: ""
-
- - name: "generated_card"
- type: "string"
- description: ""
-
- - name: "last4"
- type: "string"
- description: ""
-
- - name: "network"
- type: "string"
- description: ""
-
- - name: "read_method"
- type: "string"
- description: ""
-
- - name: "receipt"
- type: "object"
- description: ""
- subattributes:
- - name: "application_cryptogram"
- type: "string"
- description: ""
-
- - name: "application_preferred_name"
- type: "string"
- description: ""
-
- - name: "authorization_code"
- type: "string"
- description: ""
-
- - name: "authorization_response_code"
- type: "string"
- description: ""
-
- - name: "cardholder_verification_method"
- type: "string"
- description: ""
-
- - name: "dedicated_file_name"
- type: "string"
- description: ""
-
- - name: "terminal_verification_results"
- type: "string"
- description: ""
-
- - name: "transaction_status_information"
- type: "string"
- description: ""
-
-
-
- - name: "eps"
- type: "object"
- description: ""
- subattributes:
- - name: "verified_name"
- type: "string"
- description: ""
-
-
- - name: "giropay"
- type: "object"
- description: ""
- subattributes:
- - name: "bank_code"
- type: "string"
- description: ""
-
- - name: "bank_name"
- type: "string"
- description: ""
-
- - name: "bic"
- type: "string"
- description: ""
-
- - name: "verified_name"
- type: "string"
- description: ""
-
-
- - name: "ideal"
- type: "object"
- description: ""
- subattributes:
- - name: "bank"
- type: "string"
- description: ""
-
- - name: "bic"
- type: "string"
- description: ""
-
- - name: "iban_last4"
- type: "string"
- description: ""
-
- - name: "verified_name"
- type: "string"
- description: ""
-
-
- - name: "klarna"
- type: "object"
- description: ""
- subattributes:
-
- - name: "multibanco"
- type: "object"
- description: ""
- subattributes:
- - name: "entity"
- type: "string"
- description: ""
-
- - name: "reference"
- type: "string"
- description: ""
-
-
- - name: "p24"
- type: "object"
- description: ""
- subattributes:
- - name: "reference"
- type: "string"
- description: ""
-
- - name: "verified_name"
- type: "string"
- description: ""
-
-
- - name: "sepa_debit"
- type: "object"
- description: ""
- subattributes:
- - name: "bank_code"
- type: "string"
- description: ""
-
- - name: "branch_code"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "last4"
- type: "string"
- description: ""
-
- - name: "mandate"
- type: "string"
- description: ""
-
-
- - name: "sofort"
- type: "object"
- description: ""
- subattributes:
- - name: "bank_code"
- type: "string"
- description: ""
-
- - name: "bank_name"
- type: "string"
- description: ""
-
- - name: "bic"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "iban_last4"
- type: "string"
- description: ""
-
- - name: "verified_name"
- type: "string"
- description: ""
-
-
- - name: "stripe_account"
- type: "object"
- description: ""
- subattributes:
-
- - name: "type"
- type: "string"
- description: ""
-
- - name: "wechat"
- type: "object"
- description: ""
- subattributes:
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "address_state"
- type: "string"
- description: ""
-
- - name: "id"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "address_line1_check"
- type: "string"
- description: ""
-
- - name: "address_line1"
- type: "string"
- description: ""
-
- - name: "tokenization_method"
- type: "string"
- description: ""
-
- - name: "address_country"
- type: "string"
- description: ""
-
- - name: "address_city"
- type: "string"
- description: ""
-
- - name: "address_line2"
- type: "string"
- description: ""
-
- - name: "customer"
- type: "string"
- description: ""
-
- - name: "dynamic_last4"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "address_zip"
- type: "string"
- description: ""
-
- - name: "address_zip_check"
- type: "string"
- description: ""
-
- - name: "cvc_check"
- type: "string"
- description: ""
-
-
- - name: "type"
- type: "string"
- description: ""
-
-
- - name: "balance_transaction"
- type: "string"
- description: ""
-
- - name: "amount_refunded"
- type: "integer"
- description: ""
-
- - name: "failure_code"
- type: "string"
- description: ""
-
- - name: "dispute"
- type: "string"
- description: ""
-
- - name: "description"
- type: "string"
- description: ""
-
- - name: "updated"
- type: "string"
- description: ""
-
- - name: "updated_by_event_type"
- type: "string"
- description: "Description of the event"
-
-
-
- - name: "client_secret"
- type: "string"
- description: ""
-
- - name: "confirmation_method"
- type: "string"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "customer"
- type: "string"
- description: ""
-
- - name: "description"
- type: "string"
- description: ""
-
- - name: "invoice"
- type: "string"
- description: ""
-
- - name: "last_payment_error"
- type: "object"
- description: ""
- subattributes:
- - name: "charge"
- type: "string"
- description: ""
-
- - name: "code"
- type: "string"
- description: ""
-
- - name: "decline_code"
- type: "string"
- description: ""
-
- - name: "doc_url"
- type: "string"
- description: ""
-
- - name: "message"
- type: "string"
- description: ""
-
- - name: "param"
- type: "string"
- description: ""
-
- - name: "payment_method_type"
- type: "string"
- description: ""
-
- - name: "type"
- type: "string"
- description: ""
-
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "next_action"
- type: "object"
- description: ""
- subattributes:
- - name: "alipay_handle_redirect"
- type: "object"
- description: ""
- subattributes:
- - name: "native_data"
- type: "string"
- description: ""
-
- - name: "native_url"
- type: "string"
- description: ""
-
- - name: "return_url"
- type: "string"
- description: ""
-
- - name: "url"
- type: "string"
- description: ""
-
-
- - name: "boleto_display_details"
- type: "object"
- description: ""
- subattributes:
- - name: "expires_at"
- type: "string"
- description: ""
-
- - name: "hosted_voucher_url"
- type: "string"
- description: ""
-
- - name: "number"
- type: "string"
- description: ""
-
- - name: "pdf"
- type: "string"
- description: ""
-
-
- - name: "oxxo_display_details"
- type: "object"
- description: ""
- subattributes:
- - name: "expires_after"
- type: "string"
- description: ""
-
- - name: "hosted_voucher_url"
- type: "string"
- description: ""
-
- - name: "number"
- type: "string"
- description: ""
-
-
- - name: "redirect_to_url"
- type: "object"
- description: ""
- subattributes:
- - name: "return_url"
- type: "string"
- description: ""
-
- - name: "url"
- type: "string"
- description: ""
-
-
- - name: "type"
- type: "string"
- description: ""
-
- - name: "use_stripe_sdk"
- type: "object"
- description: ""
- subattributes:
-
- - name: "verify_with_microdeposits"
- type: "object"
- description: ""
- subattributes:
- - name: "arrival_date"
- type: "string"
- description: ""
-
- - name: "hosted_verification_url"
- type: "string"
- description: ""
-
-
- - name: "wechat_pay_display_qr_code"
- type: "object"
- description: ""
- subattributes:
- - name: "data"
- type: "string"
- description: ""
-
- - name: "image_data_url"
- type: "string"
- description: ""
-
- - name: "image_url_png"
- type: "string"
- description: ""
-
- - name: "image_url_svg"
- type: "string"
- description: ""
-
-
- - name: "wechat_pay_redirect_to_android_app"
- type: "object"
- description: ""
- subattributes:
- - name: "app_id"
- type: "string"
- description: ""
-
- - name: "nonce_str"
- type: "string"
- description: ""
-
- - name: "package"
- type: "string"
- description: ""
-
- - name: "partner_id"
- type: "string"
- description: ""
-
- - name: "prepay_id"
- type: "string"
- description: ""
-
- - name: "sign"
- type: "string"
- description: ""
-
- - name: "timestamp"
- type: "string"
- description: ""
-
-
- - name: "wechat_pay_redirect_to_ios_app"
- type: "object"
- description: ""
- subattributes:
- - name: "native_url"
- type: "string"
- description: ""
-
-
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "on_behalf_of"
- type: "string"
- description: ""
-
- - name: "payment_method"
- type: "string"
- description: ""
-
- - name: "payment_method_options"
- type: "object"
- description: ""
- subattributes:
- - name: "acss_debit"
- type: "object"
- description: ""
- subattributes:
- - name: "mandate_options"
- type: "object"
- description: ""
- subattributes:
- - name: "custom_mandate_url"
- type: "string"
- description: ""
-
- - name: "interval_description"
- type: "string"
- description: ""
-
- - name: "payment_schedule"
- type: "string"
- description: ""
-
- - name: "transaction_type"
- type: "string"
- description: ""
-
-
-
- - name: "afterpay_clearpay"
- type: "object"
- description: ""
- subattributes:
- - name: "reference"
- type: "string"
- description: ""
-
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "alipay"
- type: "object"
- description: ""
- subattributes:
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "au_becs_debit"
- type: "object"
- description: ""
- subattributes:
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "bacs_debit"
- type: "object"
- description: ""
- subattributes:
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "bancontact"
- type: "object"
- description: ""
- subattributes:
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
- - name: "preferred_language"
- type: "string"
- description: ""
-
-
- - name: "boleto"
- type: "object"
- description: ""
- subattributes:
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
- - name: "expires_after_days"
- type: "integer"
- description: ""
-
-
- - name: "card"
- type: "object"
- description: ""
- subattributes:
- - name: "installments"
- type: "object"
- description: ""
- subattributes:
- - name: "available_plans"
- type: "object"
- description: ""
- subattributes:
- - name: "count"
- type: "integer"
- description: ""
-
- - name: "interval"
- type: "string"
- description: ""
-
- - name: "type"
- type: "string"
- description: ""
-
-
- - name: "enabled"
- type: "boolean"
- description: ""
-
- - name: "plan"
- type: "object"
- description: ""
- subattributes:
- - name: "count"
- type: "integer"
- description: ""
-
- - name: "interval"
- type: "string"
- description: ""
-
- - name: "type"
- type: "string"
- description: ""
-
-
-
- - name: "network"
- type: "string"
- description: ""
-
- - name: "request_three_d_secure"
- type: "string"
- description: ""
-
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "card_present"
- type: "object"
- description: ""
- subattributes:
-
- - name: "eps"
- type: "object"
- description: ""
- subattributes:
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "fps"
- type: "object"
- description: ""
- subattributes:
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "giropay"
- type: "object"
- description: ""
- subattributes:
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "grabpay"
- type: "object"
- description: ""
- subattributes:
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "ideal"
- type: "object"
- description: ""
- subattributes:
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "interac_present"
- type: "object"
- description: ""
- subattributes:
-
- - name: "klarna"
- type: "object"
- description: ""
- subattributes:
- - name: "preferred_locale"
- type: "string"
- description: ""
-
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "oxxo"
- type: "object"
- description: ""
- subattributes:
- - name: "expires_after_days"
- type: "integer"
- description: ""
-
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "p24"
- type: "object"
- description: ""
- subattributes:
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "sepa_debit"
- type: "object"
- description: ""
- subattributes:
- - name: "mandate_options"
- type: "object"
- description: ""
- subattributes:
-
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "sofort"
- type: "object"
- description: ""
- subattributes:
- - name: "preferred_language"
- type: "string"
- description: ""
-
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "wechat_pay"
- type: "object"
- description: ""
- subattributes:
- - name: "app_id"
- type: "string"
- description: ""
-
- - name: "client"
- type: "string"
- description: ""
-
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
-
- - name: "payment_method_types"
- type: "array"
- description: ""
- subattributes:
- - name: "items"
- type: ""
- description: ""
-
- - name: "processing"
- type: "object"
- description: ""
- subattributes:
-
- - name: "receipt_email"
- type: "string"
- description: ""
-
- - name: "review"
- type: "string"
- description: ""
-
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
- - name: "shipping"
- type: "object"
- description: ""
- subattributes:
- - name: "address"
- type: "object"
- description: ""
- subattributes:
- - name: "line2"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
- - name: "city"
- type: "string"
- description: ""
-
- - name: "postal_code"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "line1"
- type: "string"
- description: ""
-
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "phone"
- type: "string"
- description: ""
-
- - name: "carrier"
- type: "string"
- description: ""
-
- - name: "tracking_number"
- type: "string"
- description: ""
-
-
- - name: "source"
- type: "string"
- description: ""
-
- - name: "statement_descriptor"
- type: "string"
- description: ""
-
- - name: "statement_descriptor_suffix"
- type: "string"
- description: ""
-
- - name: "status"
- type: "string"
- description: ""
-
- - name: "transfer_data"
- type: "object"
- description: ""
- subattributes:
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "destination"
- type: "string"
- description: ""
-
-
- - name: "transfer_group"
- type: "string"
- description: ""
-
- - name: "updated"
- type: "string"
- description: ""
-
- - name: "updated_by_event_type"
- type: "string"
- description: "Description of the event"
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v2/payouts.md b/_integration-schemas/stripe/v2/payouts.md
deleted file mode 100644
index 49dcafbf4..000000000
--- a/_integration-schemas/stripe/v2/payouts.md
+++ /dev/null
@@ -1,202 +0,0 @@
----
-tap: "stripe"
-version: "2"
-key: ""
-
-name: "payouts"
-doc-link: "https://stripe.com/docs/api/payouts"
-singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/payouts.json
-description: |
- The `{{ table.name }}` table contains info about payouts, which occur when you receive funds from {{ integration.display_name }} or initiate a payout to a bank account of the debit card of a connected {{ integration.display_name }} account.
-
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all payouts"
- doc-link: "https://stripe.com/docs/api/payouts/list"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The payout ID."
- foreign-key-id: "payout-id"
-
- - name: "created"
- type: "string"
- replication-key: true
- description: "The time at which the payout was created. Measured in seconds since the Unix epoch."
-
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "amount_reversed"
- type: "integer"
- description: ""
-
- - name: "arrival_date"
- type: "string"
- description: ""
-
- - name: "automatic"
- type: "boolean"
- description: ""
-
- - name: "balance_transaction"
- type: "string"
- description: "The ID of the balance transaction that describes the impact of this payout on your account balance."
- foreign-key-id: "balance-transaction-id"
-
- - name: "bank_account"
- type: "object"
- description: ""
- subattributes:
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "routing_number"
- type: "string"
- description: ""
-
- - name: "account_holder_type"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "id"
- type: "string"
- description: ""
-
- - name: "bank_name"
- type: "string"
- description: ""
-
- - name: "last4"
- type: "string"
- description: ""
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "account_holder_name"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "status"
- type: "string"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "date"
- type: "string"
- description: ""
-
- - name: "description"
- type: "string"
- description: ""
-
- - name: "destination"
- type: "string"
- description: ""
-
- - name: "failure_balance_transaction"
- type: "string"
- description: "If the payout failed or was canceled, this will be the ID of the balance transaction that reversed the initial balance transaction, and puts the funds from the failed payout back in your balance."
- foreign-key-id: "balance-transaction-id"
-
- - name: "failure_code"
- type: "string"
- description: ""
-
- - name: "failure_message"
- type: "string"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "method"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "original_payout"
- type: "string"
- description: ""
-
- - name: "recipient"
- type: "string"
- description: ""
-
- - name: "reversed_by"
- type: "string"
- description: ""
-
- - name: "source_transaction"
- type: "string"
- description: ""
-
- - name: "source_type"
- type: "string"
- description: ""
-
- - name: "statement_description"
- type: "string"
- description: ""
-
- - name: "statement_descriptor"
- type: "string"
- description: ""
-
- - name: "status"
- type: "string"
- description: ""
-
- - name: "transfer_group"
- type: "string"
- description: ""
-
- - name: "type"
- type: "string"
- description: ""
-
- - name: "updated"
- type: "string"
- description: ""
-
- - name: "updated_by_event_type"
- type: "string"
- description: "Description of the event"
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v2/plans.md b/_integration-schemas/stripe/v2/plans.md
deleted file mode 100644
index 966316c1d..000000000
--- a/_integration-schemas/stripe/v2/plans.md
+++ /dev/null
@@ -1,136 +0,0 @@
----
-tap: "stripe"
-version: "2"
-key: ""
-
-name: "plans"
-doc-link: "https://stripe.com/docs/api/plans"
-singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/plans.json
-description: |
- The `{{ table.name }}` table contains info about the plans in your {{ integration.display_name }} account. A plan defines the base price, currency, and billing cycle for subscriptions.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all plans"
- doc-link: "https://stripe.com/docs/api/plans/list"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The plan ID."
- foreign-key-id: "plan-id"
-
- - name: "created"
- type: "string"
- replication-key: true
- description: "Time at which the plan was created. Measured in seconds since the Unix epoch."
-
- - name: "active"
- type: "boolean"
- description: ""
-
- - name: "aggregate_usage"
- type: "string"
- description: ""
-
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "amount_decimal"
- type: "string"
- description: ""
-
- - name: "billing_scheme"
- type: "string"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "interval"
- type: "string"
- description: ""
-
- - name: "interval_count"
- type: "integer"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "nickname"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "product"
- type: "string"
- description: "The product whose pricing this plan determines."
- foreign-key-id: "product-id"
-
- - name: "statement_description"
- type: "string"
- description: ""
-
- - name: "statement_descriptor"
- type: "string"
- description: ""
-
- - name: "tiers"
- type: "array"
- description: ""
- subattributes:
- - name: "flat_amount"
- type: "integer"
- description: ""
-
- - name: "unit_amount"
- type: "integer"
- description: ""
-
- - name: "up_to"
- type: "integer"
- description: ""
-
-
- - name: "tiers_mode"
- type: "string"
- description: ""
-
- - name: "transform_usage"
- type: "object"
- description: ""
-
- - name: "trial_period_days"
- type: "integer"
- description: ""
-
- - name: "updated"
- type: "string"
- description: ""
-
- - name: "updated_by_event_type"
- type: "string"
- description: "Description of the event"
-
- - name: "usage_type"
- type: "string"
- description: ""
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v2/products.md b/_integration-schemas/stripe/v2/products.md
deleted file mode 100644
index 4c2ed9a7d..000000000
--- a/_integration-schemas/stripe/v2/products.md
+++ /dev/null
@@ -1,135 +0,0 @@
----
-tap: "stripe"
-version: "2"
-key: ""
-
-name: "products"
-doc-link: "https://stripe.com/docs/api/products"
-singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/products.json
-description: |
- The `{{ table.name }}` table contains info about the products in your {{ integration.display_name }} account.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all products"
- doc-link: "https://stripe.com/docs/api/products/list"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The product ID."
- foreign-key-id: "product-id"
-
- - name: "created"
- type: "string"
- replication-key: true
- description: "Time at which the product was created. Measured in seconds since the Unix epoch."
-
- - name: "active"
- type: "boolean"
- description: ""
-
- - name: "attributes"
- type: "array"
- description: ""
- subattributes:
- - name: "items"
- type: "string"
- description: ""
-
- - name: "caption"
- type: "string"
- description: ""
-
- - name: "deactivate_on"
- type: "array"
- description: ""
- subattributes:
- - name: "items"
- type: "string"
- description: ""
-
- - name: "description"
- type: "string"
- description: ""
-
- - name: "images"
- type: "array"
- description: ""
- subattributes:
- - name: "items"
- type: "string"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "package_dimensions"
- type: "object"
- description: ""
- subattributes:
- - name: "width"
- type: "number"
- description: ""
-
- - name: "length"
- type: "number"
- description: ""
-
- - name: "weight"
- type: "number"
- description: ""
-
- - name: "height"
- type: "number"
- description: ""
-
-
- - name: "shippable"
- type: "boolean"
- description: ""
-
- - name: "statement_descriptor"
- type: "string"
- description: ""
-
- - name: "tax_code"
- type: "string"
- description: "A tax code ID."
-
- - name: "type"
- type: "string"
- description: ""
-
- - name: "unit_label"
- type: "string"
- description: ""
-
- - name: "updated"
- type: "string"
- description: ""
-
- - name: "updated_by_event_type"
- type: "string"
- description: "Description of the event"
-
- - name: "url"
- type: "string"
- description: ""
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v2/subscriptions.md b/_integration-schemas/stripe/v2/subscriptions.md
deleted file mode 100644
index 62f4e7893..000000000
--- a/_integration-schemas/stripe/v2/subscriptions.md
+++ /dev/null
@@ -1,445 +0,0 @@
----
-tap: "stripe"
-version: "2"
-key: ""
-
-name: "subscriptions"
-doc-link: "https://stripe.com/docs/api/subscriptions"
-singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/subscriptions.json
-description: |
- The `{{ table.name }}` table contains info about subscriptions, which allow you to charge a customer on a recurring basis. A subscription ties a customer to a particular [plan](#plans).
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List subscriptions"
- doc-link: "https://stripe.com/docs/api/subscriptions/list"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The subscription ID."
- foreign-key-id: "subscription-id"
-
- - name: "created"
- type: "string"
- replication-key: true
- description: "The time the subscription was created. Measured in second since the Unix epoch."
-
- - name: "application_fee_percent"
- type: "number"
- description: ""
-
- - name: "billing"
- type: "string"
- description: ""
-
- - name: "billing_cycle_anchor"
- type: "string"
- description: ""
-
- - name: "billing_thresholds"
- type: "object"
- description: ""
- subattributes:
- - name: "amount_gte"
- type: "integer"
- description: ""
-
- - name: "reset_billing_cycle_anchor"
- type: "boolean"
- description: ""
-
-
- - name: "cancel_at"
- type: "string"
- description: ""
-
- - name: "cancel_at_period_end"
- type: "boolean"
- description: ""
-
- - name: "canceled_at"
- type: "string"
- description: ""
-
- - name: "collection_method"
- type: "string"
- description: ""
-
- - name: "current_period_end"
- type: "string"
- description: ""
-
- - name: "current_period_start"
- type: "string"
- description: ""
-
- - name: "customer"
- type: "string"
- description: "The ID of the customer who owns the subscription."
- foreign-key-id: "customer-id"
-
- - name: "days_until_due"
- type: "integer"
- description: ""
-
- - name: "default_payment_method"
- type: "string"
- description: ""
-
- - name: "default_source"
- type: "string"
- description: ""
-
- - name: "discount"
- type: "object"
- description: ""
- subattributes:
- - name: "end"
- type: "string"
- description: ""
-
- - name: "coupon"
- type: "object"
- description: ""
- subattributes:
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "valid"
- type: "boolean"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "amount_off"
- type: "integer"
- description: ""
-
- - name: "redeem_by"
- type: "string"
- description: ""
-
- - name: "duration_in_months"
- type: "integer"
- description: ""
-
- - name: "percent_off_precise"
- type: "number"
- description: ""
-
- - name: "max_redemptions"
- type: "integer"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "times_redeemed"
- type: "integer"
- description: ""
-
- - name: "id"
- type: "string"
- description: "The coupon ID."
- foreign-key-id: "coupon-id"
-
- - name: "duration"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "percent_off"
- type: "number"
- description: ""
-
- - name: "created"
- type: "string"
- description: ""
-
-
- - name: "customer"
- type: "string"
- description: ""
-
- - name: "start"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "subscription"
- type: "string"
- description: ""
-
- - name: "checkout_session"
- type: "string"
- description: "The Checkout session that this coupon is applied to, if it is applied to a particular session in payment mode. Will not be present for subscription mode."
-
- - name: "id"
- type: "string"
- description: "The ID of the discount object. "
-
- - name: "invoice"
- type: "string"
- description: "The invoice that the discount’s coupon was applied to, if it was applied directly to a particular invoice."
-
- - name: "invoice_item"
- type: "string"
- description: "The invoice item id (or invoice line item id for invoice line items of type=‘subscription’) that the discount’s coupon was applied to, if it was applied directly to a particular invoice item or invoice line item."
-
- - name: "promotion_code"
- type: "string"
- description: "The promotion code applied to create this discount."
-
-
- - name: "ended_at"
- type: "string"
- description: ""
-
- - name: "invoice_customer_balance_settings"
- type: "object"
- description: ""
- subattributes:
- - name: "consume_applied_balance_on_void"
- type: "boolean"
- description: ""
-
-
- - name: "items"
- type: "array"
- description: ""
- subattributes:
- - name: "items"
- type: "string"
- description: ""
-
- - name: "latest_invoice"
- type: "string"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "next_pending_invoice_item_invoice"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "pause_collection"
- type: "object"
- description: ""
- subattributes:
- - name: "behavior"
- type: "string"
- description: ""
-
- - name: "resumes_at"
- type: "string"
- description: ""
-
-
- - name: "pending_invoice_item_interval"
- type: "object"
- description: ""
- subattributes:
- - name: "interval"
- type: "string"
- description: ""
-
- - name: "interval_count"
- type: "integer"
- description: ""
-
-
- - name: "pending_setup_intent"
- type: "string"
- description: ""
-
- - name: "plan"
- type: "object"
- description: ""
- subattributes:
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "product"
- type: "string"
- description: "The product whose pricing this plan determines."
- foreign-key-id: "product-id"
-
- - name: "statement_description"
- type: "string"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "tiers_mode"
- type: "string"
- description: ""
-
- - name: "active"
- type: "boolean"
- description: ""
-
- - name: "id"
- type: "string"
- description: "The plan ID."
- foreign-key-id: "plan-id"
-
- - name: "tiers"
- type: "array"
- description: ""
- subattributes:
- - name: "flat_amount"
- type: "integer"
- description: ""
-
- - name: "unit_amount"
- type: "integer"
- description: ""
-
- - name: "up_to"
- type: "integer"
- description: ""
-
-
- - name: "created"
- type: "string"
- description: ""
-
- - name: "nickname"
- type: "string"
- description: ""
-
- - name: "transform_usage"
- type: "object"
- description: ""
-
- - name: "interval_count"
- type: "integer"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "interval"
- type: "string"
- description: ""
-
- - name: "aggregate_usage"
- type: "string"
- description: ""
-
- - name: "trial_period_days"
- type: "integer"
- description: ""
-
- - name: "billing_scheme"
- type: "string"
- description: ""
-
- - name: "statement_descriptor"
- type: "string"
- description: ""
-
- - name: "usage_type"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
-
- - name: "quantity"
- type: "integer"
- description: ""
-
- - name: "schedule"
- type: "string"
- description: ""
-
- - name: "start"
- type: "string"
- description: ""
-
- - name: "start_date"
- type: "string"
- description: ""
-
- - name: "status"
- type: "string"
- description: ""
-
- - name: "tax_percent"
- type: "number"
- description: ""
-
- - name: "transfer_data"
- type: "object"
- description: ""
- subattributes:
- - name: "amount_percent"
- type: "string"
- description: ""
-
- - name: "destination"
- type: "string"
- description: ""
-
-
- - name: "trial_end"
- type: "string"
- description: ""
-
- - name: "trial_start"
- type: "string"
- description: ""
-
- - name: "updated"
- type: "string"
- description: ""
-
- - name: "updated_by_event_type"
- type: "string"
- description: "Description of the event"
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v2/transfers.md b/_integration-schemas/stripe/v2/transfers.md
deleted file mode 100644
index 3d673a3ae..000000000
--- a/_integration-schemas/stripe/v2/transfers.md
+++ /dev/null
@@ -1,128 +0,0 @@
----
-tap: "stripe"
-version: "2"
-key: ""
-
-name: "transfers"
-doc-link:
-singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/transfers.json
-description: |
- The `{{ table.name }}` table contains info about transfers sent to connected accounts.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all transfers"
- doc-link: "https://stripe.com/docs/api/transfers/list"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The transfer ID."
- foreign-key-id: "transfer-id"
-
- - name: "created"
- type: "string"
- replication-key: true
- description: "The time the transfer was created. Measured in seconds since the Unix epoch."
-
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "amount_reversed"
- type: "integer"
- description: ""
-
- - name: "arrival_date"
- type: "string"
- description: ""
-
- - name: "automatic"
- type: "boolean"
- description: ""
-
- - name: "balance_transaction"
- type: "string"
- description: "The ID of the balance transaction that describes the impact of the transfer on your account balance."
- foreign-key-id: "balance-transaction-id"
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "date"
- type: "string"
- description: ""
-
- - name: "description"
- type: "string"
- description: ""
-
- - name: "destination"
- type: "string"
- description: ""
-
- - name: "failure_balance_transaction"
- type: "string"
- description: "If the transfer failed or was canceled, this will be the ID of the balance transaction that reversed the initial balance transaction, and puts the funds from the failed payout back in your balance."
- foreign-key-id: "balance-transaction-id"
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "recipient"
- type: "string"
- description: ""
-
- - name: "reversals"
- type: "array"
- description: ""
- subattributes:
- - name: "items"
- type: "object"
- description: ""
-
- - name: "reversed"
- type: "boolean"
- description: ""
-
- - name: "source_transaction"
- type: "string"
- description: ""
-
- - name: "source_type"
- type: "string"
- description: ""
-
- - name: "statement_description"
- type: "string"
- description: ""
-
- - name: "statement_descriptor"
- type: "string"
- description: ""
-
- - name: "transfer_group"
- type: "string"
- description: ""
-
- - name: "updated"
- type: "string"
- description: ""
-
- - name: "updated_by_event_type"
- type: "string"
- description: "Description of the event"
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v3/charges.md b/_integration-schemas/stripe/v3/charges.md
deleted file mode 100644
index d4fc96ab9..000000000
--- a/_integration-schemas/stripe/v3/charges.md
+++ /dev/null
@@ -1,1415 +0,0 @@
----
-tap: "stripe"
-version: "3"
-key: ""
-
-name: "charges"
-doc-link: "https://stripe.com/docs/api/charges/object"
-singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/charges.json
-description: |
- The `{{ table.name }}` table contains info about charges to credit and debit cards.
-
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all charges"
- doc-link: "https://stripe.com/docs/api/charges/list"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The charge ID."
- foreign-key-id: "charge-id"
-
- - name: "created"
- type: "date-time"
- replication-key: true
- description: "Time at which the object was created. Measured in seconds since the Unix epoch."
-
- - name: "amount"
- type: "integer"
- description: |
- A positive integer in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal){:target="new"} (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency) representing how much to charge. The minimum amount is $0.50 USD or [equivalent in charge currency](https://support.stripe.com/questions/what-is-the-minimum-amount-i-can-charge-with-stripe){:target="new"}.
-
- - name: "amount_captured"
- type: "integer"
- description: ""
-
- - name: "amount_refunded"
- type: "integer"
- description: "Amount in cents refunded (can be less than `amount` if a partial refund was issued)"
-
- - name: "application"
- type: "string"
- description: "The ID of the Connect application that created the charge."
-
- - name: "application_fee"
- type: "string"
- description: ""
-
- - name: "application_fee_amount"
- type: "integer"
- description: ""
-
- - name: "balance_transaction"
- type: "string"
- description: ""
-
- - name: "billing_details"
- type: "object"
- description: ""
- subattributes:
- - name: "address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "line1"
- type: "string"
- description: ""
-
- - name: "line2"
- type: "string"
- description: ""
-
- - name: "postal_code"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
-
- - name: "email"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "phone"
- type: "string"
- description: ""
-
-
- - name: "calculated_statement_descriptor"
- type: "string"
- description: ""
-
- - name: "captured"
- type: "boolean"
- description: ""
-
- - name: "card"
- type: "object"
- description: &source-description "Details about the credit or debit card that is the source of the charge."
- subattributes:
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "exp_month"
- type: "integer"
- description: ""
-
- - name: "address_state"
- type: "string"
- description: ""
-
- - name: "id"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "address_line1_check"
- type: "string"
- description: ""
-
- - name: "address_line1"
- type: "string"
- description: ""
-
- - name: "exp_year"
- type: "integer"
- description: ""
-
- - name: "tokenization_method"
- type: "string"
- description: ""
-
- - name: "address_country"
- type: "string"
- description: ""
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "address_city"
- type: "string"
- description: ""
-
- - name: "last4"
- type: "string"
- description: ""
-
- - name: "address_line2"
- type: "string"
- description: ""
-
- - name: "customer"
- type: "string"
- description: ""
-
- - name: "brand"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "dynamic_last4"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "funding"
- type: "string"
- description: ""
-
- - name: "address_zip"
- type: "string"
- description: ""
-
- - name: "address_zip_check"
- type: "string"
- description: ""
-
- - name: "cvc_check"
- type: "string"
- description: ""
-
- - name: "type"
- type: "string"
- description: ""
-
-
- - name: "currency"
- type: "string"
- description: |
- The three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html){:target="new"}.
-
- - name: "customer"
- type: "string"
- description: "The ID of the customer associated with the charge."
- foreign-key-id: "customer-id"
-
- - name: "description"
- type: "string"
- description: "An arbitrary string attached to the object. Often useful for displaying to users."
-
- - name: "destination"
- type: "string"
- description: "The account (if any) the charge was made on behalf of, with an automatic transfer."
-
- - name: "dispute"
- type: "string"
- description: "Details about the dispute, if the charge has been disputed."
-
- - name: "disputed"
- type: "boolean"
- description: ""
-
- - name: "failure_code"
- type: "string"
- description: |
- The error code explaining the reason for a charge failure, if available. Refer to [{{ integration.display_name }}'s documentation](https://stripe.com/docs/api#errors){:target="new"} for a list of possible error codes.
-
- - name: "failure_message"
- type: "string"
- description: "The message that displays to the user that further explains the reason for the charge failure."
-
- - name: "fraud_details"
- type: "object"
- description: |
- Details about fraud assessments for the charge.
- subattributes:
- - name: "stripe_report"
- type: "string"
- description: |
- If not `null`, this indicates that a {{ integration.display_name }} fraud assessment exists for the charge. This field may have a value of `fraudulent`.
-
- - `safe`
- - `fraudulent`
-
-
- - name: "invoice"
- type: "string"
- description: "The ID of the invoice the charge is for."
- foreign-key-id: "invoice-id"
-
- - name: "livemode"
- type: "boolean"
- description: "Indicates if the object exists in live mode (`true`) or in test mode (`false`)."
-
- - name: "metadata"
- type: "object"
- description: "Additional information attached to the charge."
-
- - name: "object"
- type: "string"
- description: "The type of {{ integration.display_name }} object. This will be `charge`."
-
- - name: "on_behalf_of"
- type: "string"
- description: "The account the charge was made on behalf of without triggering an automatic transfer."
-
- - name: "order"
- type: "string"
- description: "The ID of the order this charge is for."
-
- - name: "outcome"
- type: "object"
- description: "Details about whether the payment was accepted and why."
- subattributes:
- - name: "type"
- type: "string"
- description: |
- The type of the outcome. Possible values are:
-
- - `authorized`
- - `manual_review`
- - `issuer_declined`
- - `blocked`
- - `invalid`
-
- - name: "seller_message"
- type: "string"
- description: "A description of the outcome type and reason designed for you, the recipient of the payment."
-
- - name: "reason"
- type: "string"
- description: |
- A detailed explanation of the outcome's `type`. Possible values are:
-
- - `highest_risk_level` - Indicates the charge was blocked by Radar's default block rule.
- - `elevated_risk_level` - Indicates the charge was placed in review by Radar's default review rule.
- - `rule` - Indicates the charge was authorized, blocked, or placed in review by a custom rule.
-
- Refer to [{{ integration.display_name }}'s documentation](https://stripe.com/docs/declines){:target="new"} for more info about this attribute.
-
- - name: "risk_level"
- type: "string"
- description: |
- Indicates {{ integration.display_name }}'s evaluation of the riskiness of the payment. Possible values are:
-
- - `normal`, `elevated`, `highest` - Evaluated payments
- - `not_assessed` - Non-card payments, and card-based payments predating the public assignment of risk levels
- - `unknown` - Indicates an error in the risk evaluation
-
- - name: "network_status"
- type: "string"
- description: |
- The network status of the outcome. Possible values are:
-
- - `approved_by_network`
- - `declined_by_network`
- - `not_sent_to_network`
- - `reversed_after_approval` - This value indicates that [{{ integration.display_name }} blocked the payment](https://stripe.com/docs/declines#blocked-payments){:target="new"} after bank authorization, and may temporarily appear as "pending" on a cardholder's statement.
-
- - name: "risk_score"
- type: "integer"
- description: |
- Indicates {{ integration.display_name }}'s evaluation of the riskiness of the payment.
-
- - For evaluated payments, this attribute will contain a value between `0` and `100`.
-
- - For non-card payments, and card-based payments predating the public assignment of risk levels, this field will be `null`.
-
-
- - name: "paid"
- type: "boolean"
- description: "Indicates if the charge succeeded (`true`) or was successfully authorzed for later capture (`false`)."
-
- - name: "payment_intent"
- type: "string"
- description: "The ID of the payment intent associated with the charge."
- # foreign-key-id: "payment-intent-id"
-
- - name: "payment_method"
- type: "string"
- description: ""
-
- - name: "payment_method_details"
- type: "object"
- description: ""
- subattributes:
- - name: "card_present"
- type: "object"
- description: ""
- subattributes:
- - name: "amount_authorized"
- type: "integer"
- description: ""
- - name: "brand"
- type: "string"
- description: ""
- - name: "cardholder_name"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "emv_auth_data"
- type: "string"
- description: ""
- - name: "exp_month"
- type: "integer"
- description: ""
- - name: "exp_year"
- type: "integer"
- description: ""
- - name: "fingerprint"
- type: "string"
- description: ""
- - name: "funding"
- type: "string"
- description: ""
- - name: "generated_card"
- type: "string"
- description: ""
- - name: "last4"
- type: "string"
- description: ""
- - name: "network"
- type: "string"
- description: ""
- - name: "overcapture_supported"
- type: "boolean"
- description: ""
- - name: "read_method"
- type: "string"
- description: ""
- - name: "receipt"
- type: "object"
- description: ""
- subattributes:
- - name: "account_type"
- type: "string"
- description: ""
- - name: "application_cryptogram"
- type: "string"
- description: ""
- - name: "application_preferred_name"
- type: "string"
- description: ""
- - name: "authorization_code"
- type: "string"
- description: ""
- - name: "authorization_response_code"
- type: "string"
- description: ""
- - name: "cardholder_verification_method"
- type: "string"
- description: ""
- - name: "dedicated_file_name"
- type: "string"
- description: ""
- - name: "terminal_verification_results"
- type: "string"
- description: ""
- - name: "transaction_status_information"
- type: "string"
- description: ""
- - name: "ach_credit_transfer"
- type: "object"
- description: ""
- subattributes:
- - name: "account_number"
- type: "string"
- description: ""
- - name: "bank_name"
- type: "string"
- description: ""
- - name: "routing_number"
- type: "string"
- description: ""
- - name: "swift_code"
- type: "string"
- description: ""
- - name: "ach_debit"
- type: "object"
- description: ""
- subattributes:
- - name: "account_holder_type"
- type: "string"
- description: ""
- - name: "bank_name"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "fingerprint"
- type: "string"
- description: ""
- - name: "last4"
- type: "string"
- description: ""
- - name: "routing_number"
- type: "string"
- description: ""
- - name: "alipay"
- type: "object"
- description: ""
- - name: "bancontact"
- type: "object"
- description: ""
- subattributes:
- - name: "bank_code"
- type: "string"
- description: ""
- - name: "bank_name"
- type: "string"
- description: ""
- - name: "bic"
- type: "string"
- description: ""
- - name: "iban_last4"
- type: "string"
- description: ""
- - name: "preferred_language"
- type: "string"
- description: ""
- - name: "verified_name"
- type: "string"
- description: ""
- - name: "card"
- type: "object"
- description: ""
- subattributes:
- - name: "brand"
- type: "string"
- description: ""
- - name: "checks"
- type: "object"
- description: ""
- subattributes:
- - name: "address_line1_check"
- type: "string"
- description: ""
- - name: "address_postal_code_check"
- type: "string"
- description: ""
- - name: "cvc_check"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "exp_month"
- type: "integer"
- description: ""
- - name: "exp_year"
- type: "integer"
- description: ""
- - name: "fingerprint"
- type: "string"
- description: ""
- - name: "funding"
- type: "string"
- description: ""
- - name: "installments"
- type: "object"
- description: ""
- subattributes:
- - name: "plan"
- type: "object"
- description: ""
- subattributes:
- - name: "count"
- type: "integer"
- description: ""
- - name: "interval"
- type: "string"
- description: ""
- - name: "type"
- type: "string"
- description: ""
- - name: "last4"
- type: "string"
- description: ""
- - name: "network"
- type: "string"
- description: ""
- - name: "three_d_secure"
- type: "object"
- description: ""
- subattributes:
- - name: "authenticated"
- type: "boolean"
- description: ""
- - name: "succeeded"
- type: "boolean"
- description: ""
- - name: "version"
- type: "string"
- description: ""
- - name: "wallet"
- type: "object"
- description: ""
- subattributes:
- - name: "amex_express_checkout"
- type: "object"
- description: ""
- - name: "apple_pay"
- type: "object"
- description: ""
- - name: "dynamic_last4"
- type: "string"
- description: ""
- - name: "google_pay"
- type: "object"
- description: ""
- - name: "masterpass"
- type: "object"
- description: ""
- subattributes:
- - name: "billing_address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "line1"
- type: "string"
- description: ""
- - name: "line2"
- type: "string"
- description: ""
- - name: "postal_code"
- type: "string"
- description: ""
- - name: "state"
- type: "string"
- description: ""
- - name: "email"
- type: "string"
- description: ""
- - name: "name"
- type: "string"
- description: ""
- - name: "shipping_address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "line1"
- type: "string"
- description: ""
- - name: "line2"
- type: "string"
- description: ""
- - name: "postal_code"
- type: "string"
- description: ""
- - name: "state"
- type: "string"
- description: ""
- - name: "samsung_pay"
- type: "object"
- description: ""
- subattributes:
- - name: "type"
- type: "string"
- description: ""
- - name: "visa_checkout"
- type: "object"
- description: ""
- subattributes:
- - name: "billing_address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "line1"
- type: "string"
- description: ""
- - name: "line2"
- type: "string"
- description: ""
- - name: "postal_code"
- type: "string"
- description: ""
- - name: "state"
- type: "string"
- description: ""
- - name: "email"
- type: "string"
- description: ""
- - name: "name"
- type: "string"
- description: ""
- - name: "shipping_address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "line1"
- type: "string"
- description: ""
- - name: "line2"
- type: "string"
- description: ""
- - name: "postal_code"
- type: "string"
- description: ""
- - name: "state"
- type: "string"
- description: ""
- - name: "card_present"
- type: "object"
- description: ""
- subattributes:
- - name: "brand"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "emv_auth_data"
- type: "string"
- description: ""
- - name: "exp_month"
- type: "integer"
- description: ""
- - name: "exp_year"
- type: "integer"
- description: ""
- - name: "fingerprint"
- type: "string"
- description: ""
- - name: "funding"
- type: "string"
- description: ""
- - name: "generated_card"
- type: "string"
- description: ""
- - name: "last4"
- type: "string"
- description: ""
- - name: "network"
- type: "string"
- description: ""
- - name: "read_method"
- type: "string"
- description: ""
- - name: "receipt"
- type: "object"
- description: ""
- subattributes:
- - name: "application_cryptogram"
- type: "string"
- description: ""
- - name: "application_preferred_name"
- type: "string"
- description: ""
- - name: "authorization_code"
- type: "string"
- description: ""
- - name: "authorization_response_code"
- type: "string"
- description: ""
- - name: "cardholder_verification_method"
- type: "string"
- description: ""
- - name: "dedicated_file_name"
- type: "string"
- description: ""
- - name: "terminal_verification_results"
- type: "string"
- description: ""
- - name: "transaction_status_information"
- type: "string"
- description: ""
- - name: "eps"
- type: "object"
- description: ""
- subattributes:
- - name: "verified_name"
- type: "string"
- description: ""
- - name: "giropay"
- type: "object"
- description: ""
- subattributes:
- - name: "bank_code"
- type: "string"
- description: ""
- - name: "bank_name"
- type: "string"
- description: ""
- - name: "bic"
- type: "string"
- description: ""
- - name: "verified_name"
- type: "string"
- description: ""
- - name: "ideal"
- type: "object"
- description: ""
- subattributes:
- - name: "bank"
- type: "string"
- description: ""
- - name: "bic"
- type: "string"
- description: ""
- - name: "iban_last4"
- type: "string"
- description: ""
- - name: "verified_name"
- type: "string"
- description: ""
- - name: "klarna"
- type: "object"
- description: ""
- subattributes:
- - name: "multibanco"
- type: "object"
- description: ""
- subattributes:
- - name: "entity"
- type: "string"
- description: ""
- - name: "reference"
- type: "string"
- description: ""
- - name: "p24"
- type: "object"
- description: ""
- subattributes:
- - name: "reference"
- type: "string"
- description: ""
- - name: "verified_name"
- type: "string"
- description: ""
- - name: "sepa_debit"
- type: "object"
- description: ""
- subattributes:
- - name: "bank_code"
- type: "string"
- description: ""
- - name: "branch_code"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "fingerprint"
- type: "string"
- description: ""
- - name: "last4"
- type: "string"
- description: ""
- - name: "mandate"
- type: "string"
- description: ""
- - name: "sofort"
- type: "object"
- description: ""
- subattributes:
- - name: "bank_code"
- type: "string"
- description: ""
- - name: "bank_name"
- type: "string"
- description: ""
- - name: "bic"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "iban_last4"
- type: "string"
- description: ""
- - name: "verified_name"
- type: "string"
- description: ""
- - name: "stripe_account"
- type: "object"
- description: ""
- subattributes:
- - name: "type"
- type: "string"
- description: ""
- - name: "wechat"
- type: "object"
- description: ""
- subattributes:
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
- - name: "address_state"
- type: "string"
- description: ""
- - name: "id"
- type: "string"
- description: ""
- - name: "object"
- type: "string"
- description: ""
- - name: "address_line1_check"
- type: "string"
- description: ""
- - name: "address_line1"
- type: "string"
- description: ""
- - name: "tokenization_method"
- type: "string"
- description: ""
- - name: "address_country"
- type: "string"
- description: ""
- - name: "address_city"
- type: "string"
- description: ""
- - name: "address_line2"
- type: "string"
- description: ""
- - name: "customer"
- type: "string"
- description: ""
- - name: "dynamic_last4"
- type: "string"
- description: ""
- - name: "name"
- type: "string"
- description: ""
- - name: "address_zip"
- type: "string"
- description: ""
- - name: "address_zip_check"
- type: "string"
- description: ""
- - name: "cvc_check"
- type: "string"
- description: ""
- - name: "type"
- type: "string"
- description: ""
-
-
- - name: "receipt_email"
- type: "string"
- description: ""
-
- - name: "receipt_number"
- type: "string"
- description: ""
-
- - name: "receipt_url"
- type: "string"
- description: ""
-
- - name: "refunded"
- type: "boolean"
- description: ""
-
- - name: "refunds"
- type: "array"
- description: ""
- subattributes:
- - name: "id"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "balance_transaction"
- type: "string"
- description: ""
-
- - name: "charge"
- type: "string"
- description: ""
-
- - name: "created"
- type: "string"
- format: "date-time"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "description"
- type: "string"
- description: ""
-
- - name: "failure_reason"
- type: "string"
- description: ""
-
- - name: "instructions_email"
- type: "string"
- description: ""
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "next_action"
- type: "object"
- description: ""
- subattributes:
- - name: "display_details"
- type: "object"
- description: ""
- subattributes:
- - name: "email_sent"
- type: "object"
- description: ""
- subattributes:
- - name: "email_sent_at"
- type: "string"
- format: "date-time"
- description: ""
-
- - name: "email_sent_to"
- type: "string"
- description: ""
-
-
- - name: "expires_at"
- type: "string"
- format: "date-time"
- description: ""
-
-
- - name: "type"
- type: "string"
- description: ""
-
-
- - name: "payment_intent"
- type: "string"
- description: ""
-
- - name: "reason"
- type: "string"
- description: ""
-
- - name: "receipt_number"
- type: "string"
- description: ""
-
- - name: "source_transfer_reversal"
- type: "string"
- description: ""
-
- - name: "status"
- type: "string"
- description: ""
-
- - name: "transfer_reversal"
- type: "string"
- description: ""
-
-
- - name: "review"
- type: "string"
- description: ""
-
- - name: "shipping"
- type: "object"
- description: ""
- subattributes:
-
- - name: "source"
- type: "object"
- description: ""
- subattributes:
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
- - name: "type"
- type: "string"
- description: ""
- - name: "address_zip"
- type: "string"
- description: ""
- - name: "livemode"
- type: "boolean"
- description: ""
- - name: "card"
- type: "object"
- description: ""
- subattributes:
- - name: "fingerprint"
- type: "string"
- description: ""
- - name: "last4"
- type: "string"
- description: ""
- - name: "dynamic_last4"
- type: "string"
- description: ""
- - name: "address_line1_check"
- type: "string"
- description: ""
- - name: "exp_month"
- type: "integer"
- description: ""
- - name: "tokenization_method"
- type: "string"
- description: ""
- - name: "name"
- type: "string"
- description: ""
- - name: "exp_year"
- type: "integer"
- description: ""
- - name: "three_d_secure"
- type: "string"
- description: ""
- - name: "funding"
- type: "string"
- description: ""
- - name: "brand"
- type: "string"
- description: ""
- - name: "cvc_check"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "address_zip_check"
- type: "string"
- description: ""
- - name: "type"
- type: "string"
- description: ""
- - name: "statement_descriptor"
- type: "string"
- description: ""
- - name: "id"
- type: "string"
- description: ""
- - name: "address_country"
- type: "string"
- description: ""
- - name: "funding"
- type: "string"
- description: ""
- - name: "dynamic_last4"
- type: "string"
- description: ""
- - name: "exp_year"
- type: "integer"
- description: ""
- - name: "last4"
- type: "string"
- description: ""
- - name: "exp_month"
- type: "integer"
- description: ""
- - name: "brand"
- type: "string"
- description: ""
- - name: "address_line2"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "object"
- type: "string"
- description: ""
- - name: "amount"
- type: "integer"
- description: ""
- - name: "cvc_check"
- type: "string"
- description: ""
- - name: "usage"
- type: "string"
- description: ""
- - name: "address_line1"
- type: "string"
- description: ""
- - name: "owner"
- type: "object"
- description: ""
- subattributes:
- - name: "verified_address"
- type: "string"
- description: ""
- - name: "email"
- type: "string"
- description: ""
- - name: "address"
- type: "object"
- description: ""
- subattributes:
- - name: "line2"
- type: "string"
- description: ""
- - name: "state"
- type: "string"
- description: ""
- - name: "city"
- type: "string"
- description: ""
- - name: "postal_code"
- type: "string"
- description: ""
- - name: "country"
- type: "string"
- description: ""
- - name: "line1"
- type: "string"
- description: ""
- - name: "verified_email"
- type: "string"
- description: ""
- - name: "name"
- type: "string"
- description: ""
- - name: "phone"
- type: "string"
- description: ""
- - name: "verified_name"
- type: "string"
- description: ""
- - name: "verified_phone"
- type: "string"
- description: ""
- - name: "tokenization_method"
- type: "string"
- description: ""
- - name: "client_secret"
- type: "string"
- description: ""
- - name: "fingerprint"
- type: "string"
- description: ""
- - name: "address_city"
- type: "string"
- description: ""
- - name: "currency"
- type: "string"
- description: ""
- - name: "address_line1_check"
- type: "string"
- description: ""
- - name: "receiver"
- type: "object"
- description: ""
- subattributes:
- - name: "refund_attributes_method"
- type: "string"
- description: ""
- - name: "amount_returned"
- type: "integer"
- description: ""
- - name: "amount_received"
- type: "integer"
- description: ""
- - name: "refund_attributes_status"
- type: "string"
- description: ""
- - name: "address"
- type: "string"
- description: ""
- - name: "amount_charged"
- type: "integer"
- description: ""
- - name: "flow"
- type: "string"
- description: ""
- - name: "name"
- type: "string"
- description: ""
- - name: "ach_credit_transfer"
- type: "object"
- description: ""
- subattributes:
- - name: "bank_name"
- type: "string"
- description: ""
- - name: "fingerprint"
- type: "string"
- description: ""
- - name: "routing_number"
- type: "string"
- description: ""
- - name: "swift_code"
- type: "string"
- description: ""
- - name: "refund_account_holder_type"
- type: "string"
- description: ""
- - name: "refund_account_holder_name"
- type: "string"
- description: ""
- - name: "refund_account_number"
- type: "string"
- description: ""
- - name: "refund_routing_number"
- type: "string"
- description: ""
- - name: "account_number"
- type: "string"
- description: ""
- - name: "customer"
- type: "string"
- description: ""
- - name: "address_zip_check"
- type: "string"
- description: ""
- - name: "status"
- type: "string"
- description: ""
- - name: "created"
- type: "string"
- description: ""
- - name: "address_state"
- type: "string"
- description: ""
- - name: "alipay"
- type: "object"
- description: ""
- subattributes:
- - name: "bancontact"
- type: "object"
- description: ""
- subattributes:
- - name: "eps"
- type: "object"
- description: ""
- subattributes:
- - name: "ideal"
- type: "object"
- description: ""
- subattributes:
- - name: "multibanco"
- type: "object"
- description: ""
- subattributes:
- - name: "redirect"
- type: "object"
- description: ""
- subattributes:
- - name: "failure_reason"
- type: "string"
- description: ""
- - name: "return_url"
- type: "string"
- description: ""
- - name: "status"
- type: "string"
- description: ""
- - name: "url"
- type: "string"
- description: ""
-
-
-
- - name: "source_transfer"
- type: "string"
- description: ""
-
- - name: "statement_description"
- type: "string"
- description: ""
-
- - name: "statement_descriptor"
- type: "string"
- description: ""
-
- - name: "statement_descriptor_suffix"
- type: "string"
- description: ""
-
- - name: "status"
- type: "string"
- description: ""
-
- - name: "transfer_data"
- type: "object"
- description: ""
- subattributes:
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "destination"
- type: "string"
- description: ""
-
-
- - name: "transfer_group"
- type: "string"
- description: ""
-
- - name: "updated"
- type: "string"
- format: "date-time"
- description: ""
-
- - name: "updated_by_event_type"
- type: "string"
- description: ""
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v3/coupons.md b/_integration-schemas/stripe/v3/coupons.md
deleted file mode 100644
index 0b3f7fb1a..000000000
--- a/_integration-schemas/stripe/v3/coupons.md
+++ /dev/null
@@ -1,94 +0,0 @@
----
-tap: "stripe"
-version: "3"
-key: ""
-
-name: "coupons"
-doc-link: "https://stripe.com/docs/api/coupons"
-singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/coupons.json
-description: |
- The `{{ table.name }}` table contains info about percent or amount-off discounts that may be applied to a customer. **Note:** Coupons only apply to invoices; they don't apply to one-off charges.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all coupons"
- doc-link: "https://stripe.com/docs/api/coupons/list"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The coupon ID."
- foreign-key-id: "coupon-id"
-
- - name: "created"
- type: "string"
- replication-key: true
- description: "Time at which the object was created. Measured in seconds since the Unix epoch."
-
- - name: "amount_off"
- type: "integer"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "duration"
- type: "string"
- description: ""
-
- - name: "duration_in_months"
- type: "integer"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "max_redemptions"
- type: "integer"
- description: ""
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "percent_off"
- type: "number"
- description: ""
-
- - name: "percent_off_precise"
- type: "number"
- description: ""
-
- - name: "redeem_by"
- type: "string"
- description: ""
-
- - name: "times_redeemed"
- type: "integer"
- description: ""
-
- - name: "updated"
- type: "string"
- description: ""
-
- - name: "updated_by_event_type"
- type: "string"
- description: "Description of the event"
-
- - name: "valid"
- type: "boolean"
- description: ""
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v3/customers.md b/_integration-schemas/stripe/v3/customers.md
deleted file mode 100644
index 6fad83b49..000000000
--- a/_integration-schemas/stripe/v3/customers.md
+++ /dev/null
@@ -1,1308 +0,0 @@
----
-tap: "stripe"
-version: "3"
-key: ""
-
-name: "customers"
-doc-link: "https://stripe.com/docs/api/customers/object"
-singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/customers.json
-description: |
- The `{{ table.name }}` table contains info about your customers.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all customers"
- doc-link: "https://stripe.com/docs/api/customers/list"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The customer ID."
- foreign-key-id: "customer-id"
-
- - name: "created"
- type: "string"
- replication-key: true
- description: "Time at which the object was created. Measured in seconds since the Unix epoch."
-
- - name: "account_balance"
- type: "integer"
- description: ""
-
- - name: "address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "line1"
- type: "string"
- description: ""
-
- - name: "line2"
- type: "string"
- description: ""
-
- - name: "postal_code"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
-
- - name: "balance"
- type: "integer"
- description: ""
-
- - name: "cards"
- type: "array"
- description: ""
- subattributes:
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "id"
- type: "string"
- description: ""
-
- - name: "exp_month"
- type: "integer"
- description: ""
-
- - name: "dynamic_last4"
- type: "string"
- description: ""
-
- - name: "exp_year"
- type: "integer"
- description: ""
-
- - name: "last4"
- type: "string"
- description: ""
-
- - name: "funding"
- type: "string"
- description: ""
-
- - name: "brand"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "customer"
- type: "string"
- description: ""
-
- - name: "cvc_check"
- type: "string"
- description: ""
-
- - name: "address_line2"
- type: "string"
- description: ""
-
- - name: "address_line1"
- type: "string"
- description: ""
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "address_zip"
- type: "string"
- description: ""
-
- - name: "address_city"
- type: "string"
- description: ""
-
- - name: "address_country"
- type: "string"
- description: ""
-
- - name: "address_line1_check"
- type: "string"
- description: ""
-
- - name: "tokenization_method"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "address_state"
- type: "string"
- description: ""
-
- - name: "address_zip_check"
- type: "string"
- description: ""
-
- - name: "type"
- type: "string"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "default_card"
- type: "string"
- description: ""
-
- - name: "default_source"
- type: "string"
- description: ""
-
- - name: "delinquent"
- type: "boolean"
- description: ""
-
- - name: "description"
- type: "string"
- description: ""
-
- - name: "discount"
- type: "object"
- description: ""
- subattributes:
- - name: "end"
- type: "string"
- description: ""
-
- - name: "coupon"
- type: "object"
- description: ""
- subattributes:
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "valid"
- type: "boolean"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "amount_off"
- type: "integer"
- description: ""
-
- - name: "redeem_by"
- type: "string"
- description: ""
-
- - name: "duration_in_months"
- type: "integer"
- description: ""
-
- - name: "percent_off_precise"
- type: "number"
- description: ""
-
- - name: "max_redemptions"
- type: "integer"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "times_redeemed"
- type: "integer"
- description: ""
-
- - name: "id"
- type: "string"
- description: "The ID of the discount object. "
-
- - name: "duration"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "percent_off"
- type: "number"
- description: ""
-
- - name: "created"
- type: "string"
- description: ""
-
-
- - name: "customer"
- type: "string"
- description: ""
-
- - name: "start"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "subscription"
- type: "string"
- description: ""
-
- - name: "checkout_session"
- type: "string"
- description: ""
-
- - name: "id"
- type: "string"
- description: "The ID of the discount object. "
-
- - name: "invoice"
- type: "string"
- description: "The invoice that the discount’s coupon was applied to, if it was applied directly to a particular invoice."
-
- - name: "invoice_item"
- type: "string"
- description: "The invoice item id (or invoice line item id for invoice line items of type=‘subscription’) that the discount’s coupon was applied to, if it was applied directly to a particular invoice item or invoice line item."
-
- - name: "promotion_code"
- type: "string"
- description: "The promotion code applied to create this discount."
-
-
- - name: "email"
- type: "string"
- description: ""
-
- - name: "invoice_prefix"
- type: "string"
- description: ""
-
- - name: "invoice_settings"
- type: "object"
- description: ""
- subattributes:
- - name: "custom_fields"
- type: "array"
- description: ""
- subattributes:
- - name: "items"
- type: "string"
- description: ""
-
- - name: "default_payment_method"
- type: "string"
- description: ""
-
- - name: "footer"
- type: "string"
- description: ""
-
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "next_invoice_sequence"
- type: "integer"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "phone"
- type: "string"
- description: ""
-
- - name: "preferred_locales"
- type: "array"
- description: ""
- subattributes:
- - name: "items"
- type: "string"
- description: ""
-
- - name: "shipping"
- type: "object"
- description: ""
- subattributes:
- - name: "address"
- type: "object"
- description: ""
- subattributes:
- - name: "line2"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
- - name: "city"
- type: "string"
- description: ""
-
- - name: "postal_code"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "line1"
- type: "string"
- description: ""
-
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "phone"
- type: "string"
- description: ""
-
-
- - name: "sources"
- type: "array"
- description: ""
- subattributes:
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "type"
- type: "string"
- description: ""
-
- - name: "address_zip"
- type: "string"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "card"
- type: "object"
- description: ""
- subattributes:
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "last4"
- type: "string"
- description: ""
-
- - name: "dynamic_last4"
- type: "string"
- description: ""
-
- - name: "address_line1_check"
- type: "string"
- description: ""
-
- - name: "exp_month"
- type: "integer"
- description: ""
-
- - name: "tokenization_method"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "exp_year"
- type: "integer"
- description: ""
-
- - name: "three_d_secure"
- type: "string"
- description: ""
-
- - name: "funding"
- type: "string"
- description: ""
-
- - name: "brand"
- type: "string"
- description: ""
-
- - name: "cvc_check"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "address_zip_check"
- type: "string"
- description: ""
-
- - name: "type"
- type: "string"
- description: ""
-
-
- - name: "statement_descriptor"
- type: "string"
- description: ""
-
- - name: "id"
- type: "string"
- description: ""
-
- - name: "address_country"
- type: "string"
- description: ""
-
- - name: "funding"
- type: "string"
- description: ""
-
- - name: "dynamic_last4"
- type: "string"
- description: ""
-
- - name: "exp_year"
- type: "integer"
- description: ""
-
- - name: "last4"
- type: "string"
- description: ""
-
- - name: "exp_month"
- type: "integer"
- description: ""
-
- - name: "brand"
- type: "string"
- description: ""
-
- - name: "address_line2"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "cvc_check"
- type: "string"
- description: ""
-
- - name: "usage"
- type: "string"
- description: ""
-
- - name: "address_line1"
- type: "string"
- description: ""
-
- - name: "owner"
- type: "object"
- description: ""
- subattributes:
- - name: "verified_address"
- type: "string"
- description: ""
-
- - name: "email"
- type: "string"
- description: ""
-
- - name: "address"
- type: "object"
- description: ""
- subattributes:
- - name: "line2"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
- - name: "city"
- type: "string"
- description: ""
-
- - name: "postal_code"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "line1"
- type: "string"
- description: ""
-
-
- - name: "verified_email"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "phone"
- type: "string"
- description: ""
-
- - name: "verified_name"
- type: "string"
- description: ""
-
- - name: "verified_phone"
- type: "string"
- description: ""
-
-
- - name: "tokenization_method"
- type: "string"
- description: ""
-
- - name: "client_secret"
- type: "string"
- description: ""
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "address_city"
- type: "string"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "address_line1_check"
- type: "string"
- description: ""
-
- - name: "receiver"
- type: "object"
- description: ""
- subattributes:
- - name: "refund_attributes_method"
- type: "string"
- description: ""
-
- - name: "amount_returned"
- type: "integer"
- description: ""
-
- - name: "amount_received"
- type: "integer"
- description: ""
-
- - name: "refund_attributes_status"
- type: "string"
- description: ""
-
- - name: "address"
- type: "string"
- description: ""
-
- - name: "amount_charged"
- type: "integer"
- description: ""
-
-
- - name: "flow"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "ach_credit_transfer"
- type: "object"
- description: ""
- subattributes:
- - name: "bank_name"
- type: "string"
- description: ""
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "routing_number"
- type: "string"
- description: ""
-
- - name: "swift_code"
- type: "string"
- description: ""
-
- - name: "refund_account_holder_type"
- type: "string"
- description: ""
-
- - name: "refund_account_holder_name"
- type: "string"
- description: ""
-
- - name: "refund_account_number"
- type: "string"
- description: ""
-
- - name: "refund_routing_number"
- type: "string"
- description: ""
-
- - name: "account_number"
- type: "string"
- description: ""
-
-
- - name: "customer"
- type: "string"
- description: ""
-
- - name: "address_zip_check"
- type: "string"
- description: ""
-
- - name: "status"
- type: "string"
- description: ""
-
- - name: "created"
- type: "string"
- description: ""
-
- - name: "address_state"
- type: "string"
- description: ""
-
- - name: "alipay"
- type: "object"
- description: ""
- subattributes:
-
- - name: "bancontact"
- type: "object"
- description: ""
- subattributes:
-
- - name: "eps"
- type: "object"
- description: ""
- subattributes:
-
- - name: "ideal"
- type: "object"
- description: ""
- subattributes:
-
- - name: "multibanco"
- type: "object"
- description: ""
- subattributes:
-
- - name: "redirect"
- type: "object"
- description: ""
- subattributes:
- - name: "failure_reason"
- type: "string"
- description: ""
-
- - name: "return_url"
- type: "string"
- description: ""
-
- - name: "status"
- type: "string"
- description: ""
-
- - name: "url"
- type: "string"
- description: ""
-
-
-
-
- - name: "sources"
- type: "object"
- description: ""
- subattributes:
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "type"
- type: "string"
- description: ""
-
- - name: "address_zip"
- type: "string"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "card"
- type: "object"
- description: ""
- subattributes:
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "last4"
- type: "string"
- description: ""
-
- - name: "dynamic_last4"
- type: "string"
- description: ""
-
- - name: "address_line1_check"
- type: "string"
- description: ""
-
- - name: "exp_month"
- type: "integer"
- description: ""
-
- - name: "tokenization_method"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "exp_year"
- type: "integer"
- description: ""
-
- - name: "three_d_secure"
- type: "string"
- description: ""
-
- - name: "funding"
- type: "string"
- description: ""
-
- - name: "brand"
- type: "string"
- description: ""
-
- - name: "cvc_check"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "address_zip_check"
- type: "string"
- description: ""
-
- - name: "type"
- type: "string"
- description: ""
-
-
- - name: "statement_descriptor"
- type: "string"
- description: ""
-
- - name: "id"
- type: "string"
- description: ""
-
- - name: "address_country"
- type: "string"
- description: ""
-
- - name: "funding"
- type: "string"
- description: ""
-
- - name: "dynamic_last4"
- type: "string"
- description: ""
-
- - name: "exp_year"
- type: "integer"
- description: ""
-
- - name: "last4"
- type: "string"
- description: ""
-
- - name: "exp_month"
- type: "integer"
- description: ""
-
- - name: "brand"
- type: "string"
- description: ""
-
- - name: "address_line2"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "cvc_check"
- type: "string"
- description: ""
-
- - name: "usage"
- type: "string"
- description: ""
-
- - name: "address_line1"
- type: "string"
- description: ""
-
- - name: "owner"
- type: "object"
- description: ""
- subattributes:
- - name: "verified_address"
- type: "string"
- description: ""
-
- - name: "email"
- type: "string"
- description: ""
-
- - name: "address"
- type: "object"
- description: ""
- subattributes:
- - name: "line2"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
- - name: "city"
- type: "string"
- description: ""
-
- - name: "postal_code"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "line1"
- type: "string"
- description: ""
-
-
- - name: "verified_email"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "phone"
- type: "string"
- description: ""
-
- - name: "verified_name"
- type: "string"
- description: ""
-
- - name: "verified_phone"
- type: "string"
- description: ""
-
-
- - name: "tokenization_method"
- type: "string"
- description: ""
-
- - name: "client_secret"
- type: "string"
- description: ""
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "address_city"
- type: "string"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "address_line1_check"
- type: "string"
- description: ""
-
- - name: "receiver"
- type: "object"
- description: ""
- subattributes:
- - name: "refund_attributes_method"
- type: "string"
- description: ""
-
- - name: "amount_returned"
- type: "integer"
- description: ""
-
- - name: "amount_received"
- type: "integer"
- description: ""
-
- - name: "refund_attributes_status"
- type: "string"
- description: ""
-
- - name: "address"
- type: "string"
- description: ""
-
- - name: "amount_charged"
- type: "integer"
- description: ""
-
-
- - name: "flow"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "ach_credit_transfer"
- type: "object"
- description: ""
- subattributes:
- - name: "bank_name"
- type: "string"
- description: ""
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "routing_number"
- type: "string"
- description: ""
-
- - name: "swift_code"
- type: "string"
- description: ""
-
- - name: "refund_account_holder_type"
- type: "string"
- description: ""
-
- - name: "refund_account_holder_name"
- type: "string"
- description: ""
-
- - name: "refund_account_number"
- type: "string"
- description: ""
-
- - name: "refund_routing_number"
- type: "string"
- description: ""
-
- - name: "account_number"
- type: "string"
- description: ""
-
-
- - name: "customer"
- type: "string"
- description: ""
-
- - name: "address_zip_check"
- type: "string"
- description: ""
-
- - name: "status"
- type: "string"
- description: ""
-
- - name: "created"
- type: "string"
- description: ""
-
- - name: "address_state"
- type: "string"
- description: ""
-
- - name: "alipay"
- type: "object"
- description: ""
- subattributes:
-
- - name: "bancontact"
- type: "object"
- description: ""
- subattributes:
-
- - name: "eps"
- type: "object"
- description: ""
- subattributes:
-
- - name: "ideal"
- type: "object"
- description: ""
- subattributes:
-
- - name: "multibanco"
- type: "object"
- description: ""
- subattributes:
-
- - name: "redirect"
- type: "object"
- description: ""
- subattributes:
- - name: "failure_reason"
- type: "string"
- description: ""
-
- - name: "return_url"
- type: "string"
- description: ""
-
- - name: "status"
- type: "string"
- description: ""
-
- - name: "url"
- type: "string"
- description: ""
-
-
-
-
- - name: "subscriptions"
- type: "array"
- description: ""
- subattributes:
- - name: "items"
- type: "string"
- description: ""
-
- - name: "tax_exempt"
- type: "string"
- description: ""
-
- - name: "tax_ids"
- type: "array"
- description: ""
- subattributes:
- - name: "id"
- type: "string"
- description: "Unique identifier for the object."
-
- - name: "object"
- type: "string"
- description: "String representing the object’s type. Objects of the same type share the same value."
-
- - name: "country"
- type: "string"
- description: "Two-letter ISO code representing the country of the tax ID."
-
- - name: "created"
- type: "string"
- description: "Time at which the object was created. Measured in seconds since the Unix epoch."
-
- - name: "customer"
- type: "string"
- description: "ID of the customer."
-
- - name: "livemode"
- type: "boolean"
- description: "Has the value true if the object exists in live mode or the value false if the object exists in test mode"
-
- - name: "type"
- type: "string"
- description: "Type of the tax ID."
-
- - name: "value"
- type: "string"
- description: "Value of the tax ID"
-
- - name: "verification"
- type: "object"
- description: "Tax ID verification information."
- subattributes:
- - name: "status"
- type: "string"
- description: ""
-
- - name: "verified_address"
- type: "string"
- description: ""
-
- - name: "verified_name"
- type: "string"
- description: ""
-
-
-
-
- - name: "tax_ids"
- type: "object"
- description: ""
- subattributes:
- - name: "id"
- type: "string"
- description: "Unique identifier for the object."
-
- - name: "object"
- type: "string"
- description: "String representing the object’s type. Objects of the same type share the same value."
-
- - name: "country"
- type: "string"
- description: "Two-letter ISO code representing the country of the tax ID."
-
- - name: "created"
- type: "string"
- description: "Time at which the object was created. Measured in seconds since the Unix epoch."
-
- - name: "customer"
- type: "string"
- description: "ID of the customer."
-
- - name: "livemode"
- type: "boolean"
- description: "Has the value true if the object exists in live mode or the value false if the object exists in test mode"
-
- - name: "type"
- type: "string"
- description: "Type of the tax ID."
-
- - name: "value"
- type: "string"
- description: "Value of the tax ID"
-
- - name: "verification"
- type: "object"
- description: "Tax ID verification information."
- subattributes:
- - name: "status"
- type: "string"
- description: ""
-
- - name: "verified_address"
- type: "string"
- description: ""
-
- - name: "verified_name"
- type: "string"
- description: ""
-
-
-
-
- - name: "tax_info"
- type: "string"
- description: ""
-
- - name: "tax_info_verification"
- type: "string"
- description: ""
-
- - name: "updated"
- type: "string"
- description: ""
-
- - name: "updated_by_event_type"
- type: "string"
- description: "Description of the event"
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v3/disputes.md b/_integration-schemas/stripe/v3/disputes.md
deleted file mode 100644
index 024cb6449..000000000
--- a/_integration-schemas/stripe/v3/disputes.md
+++ /dev/null
@@ -1,217 +0,0 @@
----
-tap: "stripe"
-version: "3"
-key: ""
-
-name: "disputes"
-doc-link: "https://stripe.com/docs/api/disputes/object"
-singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/disputes.json
-description: "This table contains information about customer disputes related to charges on their credit card."
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all disputes"
- doc-link: "https://stripe.com/docs/api/disputes/list"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The dispute ID."
- foreign-key-id: "dispute-id"
-
- - name: "created"
- type: "string"
- description: "Time at which the dispute was created. Measured in seconds since the Unix epoch."
- replication-key: true
-
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "balance_transactions"
- type: "array"
- description: ""
- subattributes:
- - name: "id"
- type: "string"
- description: "The balance transaction ID."
- foreign-key-id: "balance-transaction-id"
-
-
- - name: "charge"
- type: "string"
- description: "The ID of the disputed charge."
- foreign-key-id: "charge-id"
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "evidence"
- type: "string, object"
- description: ""
- subattributes:
- - name: "refund_policy"
- type: "string"
- description: ""
-
- - name: "shipping_address"
- type: "string"
- description: ""
-
- - name: "duplicate_charge_explanation"
- type: "string"
- description: ""
-
- - name: "shipping_tracking_number"
- type: "string"
- description: ""
-
- - name: "customer_signature"
- type: "string"
- description: ""
-
- - name: "uncategorized_text"
- type: "string"
- description: ""
-
- - name: "cancellation_policy_disclosure"
- type: "string"
- description: ""
-
- - name: "refund_policy_disclosure"
- type: "string"
- description: ""
-
- - name: "receipt"
- type: "string"
- description: ""
-
- - name: "customer_name"
- type: "string"
- description: ""
-
- - name: "refund_refusal_explanation"
- type: "string"
- description: ""
-
- - name: "cancellation_rebuttal"
- type: "string"
- description: ""
-
- - name: "product_description"
- type: "string"
- description: ""
-
- - name: "shipping_date"
- type: "string"
- description: ""
-
- - name: "customer_email_address"
- type: "string"
- description: ""
-
- - name: "duplicate_charge_id"
- type: "string"
- description: ""
-
- - name: "shipping_documentation"
- type: "string"
- description: ""
-
- - name: "access_activity_log"
- type: "string"
- description: ""
-
- - name: "customer_purchase_ip"
- type: "string"
- description: ""
-
- - name: "service_date"
- type: "string"
- description: ""
-
- - name: "shipping_carrier"
- type: "string"
- description: ""
-
- - name: "service_documentation"
- type: "string"
- description: ""
-
- - name: "duplicate_charge_documentation"
- type: "string"
- description: ""
-
- - name: "cancellation_policy"
- type: "string"
- description: ""
-
- - name: "customer_communication"
- type: "string"
- description: ""
-
- - name: "uncategorized_file"
- type: "string"
- description: ""
-
- - name: "billing_address"
- type: "string"
- description: ""
-
-
- - name: "evidence_details"
- type: "object"
- description: ""
- subattributes:
- - name: "due_by"
- type: "string"
- description: ""
-
- - name: "has_evidence"
- type: "boolean"
- description: ""
-
- - name: "past_due"
- type: "boolean"
- description: ""
-
- - name: "submission_count"
- type: "integer"
- description: ""
-
- - name: "is_charge_refundable"
- type: "boolean"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "reason"
- type: "string"
- description: ""
-
- - name: "status"
- type: "string"
- description: ""
-
- - name: "updated"
- type: "string"
- description: ""
-
- - name: "updated_by_event_type"
- type: "string"
- description: "Description of the event"
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v3/events.md b/_integration-schemas/stripe/v3/events.md
deleted file mode 100644
index eb21b8d43..000000000
--- a/_integration-schemas/stripe/v3/events.md
+++ /dev/null
@@ -1,66 +0,0 @@
----
-tap: "stripe"
-version: "3"
-key: ""
-
-name: "events"
-doc-link: "https://stripe.com/docs/api/events"
-singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/events.json
-description: |
- The `{{ table.name }}` table contains info about [events](https://stripe.com/docs/api/events){:target="new"}. When an event occurs, a new event object is created. This table acts as the history of an object, allowing you to see how it has changed over time.
-
- For example: When an invoice is created, an `invoice.created` event is created. When the draft invoice is finalized and updated to be open, an `invoice.finalized` event is created. When the invoice is sent to the customer, an `invoice.sent` event is created.
-
- For more info about this table and how data is replicated, refer to the [Replication](#replication) section. Additionally, refer to [{{ integration.display_name }}'s documentation](https://stripe.com/docs/api/events/types){:target="new"} for info about event types and the objects they describe.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all events"
- doc-link: "https://stripe.com/docs/api/events/list"
-
-attributes:
- - name: "id"
- type: "string"
- description: "The event ID."
- primary-key: true
- foreign-key-id: "event-id"
-
- - name: "created"
- type: "string"
- replication-key: true
- description: "The time at which the object was created. Measured in seconds since the Unix epoch."
-
- - name: "api_version"
- type: "string"
- description: ""
-
- - name: "data"
- type: "object"
- description: ""
- subattributes:
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "pending_webhooks"
- type: "integer"
- description: ""
-
- - name: "request"
- type: "string"
- description: ""
-
- - name: "type"
- type: "string"
- description: ""
-
- - name: "updated"
- type: "string"
- description: ""
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v3/invoice_items.md b/_integration-schemas/stripe/v3/invoice_items.md
deleted file mode 100644
index c0437d94b..000000000
--- a/_integration-schemas/stripe/v3/invoice_items.md
+++ /dev/null
@@ -1,295 +0,0 @@
----
-tap: "stripe"
-version: "3"
-key: ""
-
-name: "invoice_items"
-doc-link:
-singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/invoice_items.json
-description: |
- The `{{ table.name }}` table contains info about items contained in customer invoices.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all invoice items"
- doc-link: "https://stripe.com/docs/api/invoiceitems/list"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The invoice item ID."
- foreign-key-id: "invoice-item-id"
-
- - name: "date"
- type: "string"
- replication-key: true
- description: "The date the invoice item was added to the invoice."
-
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "customer"
- type: "string"
- description: "The ID of the customer who will be billed for the invoice item."
- foreign-key-id: "customer-id"
-
- - name: "description"
- type: "string"
- description: ""
-
- - name: "discountable"
- type: "boolean"
- description: ""
-
- - name: "discounts"
- type: "array"
- description: ""
- subattributes:
- - name: "items"
- type: "string"
- description: ""
-
- - name: "invoice"
- type: "string"
- description: "The ID of the invoice associated with the invoice item."
- foreign-key-id: "invoice-id"
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "period"
- type: "object"
- description: ""
- subattributes:
- - name: "end"
- type: "string"
- description: ""
-
- - name: "start"
- type: "string"
- description: ""
-
-
- - name: "plan"
- type: "object, string"
- description: ""
- subattributes:
- - name: "nickname"
- type: "string"
- description: ""
-
- - name: "updated_by_event_type"
- type: "string"
- description: "Description of the event"
-
- - name: "amount_decimal"
- type: "string"
- description: ""
-
- - name: "tiers"
- type: "array"
- description: ""
- subattributes:
- - name: "flat_amount"
- type: "integer"
- description: ""
-
- - name: "unit_amount"
- type: "integer"
- description: ""
-
- - name: "up_to"
- type: "integer"
- description: ""
-
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "aggregate_usage"
- type: "string"
- description: ""
-
- - name: "created"
- type: "string"
- description: ""
-
- - name: "statement_description"
- type: "string"
- description: ""
-
- - name: "product"
- type: "string"
- description: "The product whose pricing this plan determines."
- foreign-key-id: "product-id"
-
- - name: "statement_descriptor"
- type: "string"
- description: ""
-
- - name: "interval_count"
- type: "integer"
- description: ""
-
- - name: "transform_usage"
- type: "object"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "interval"
- type: "string"
- description: ""
-
- - name: "id"
- type: "string"
- description: "The plan ID."
- foreign-key-id: "plan-id"
-
- - name: "trial_period_days"
- type: "integer"
- description: ""
-
- - name: "usage_type"
- type: "string"
- description: ""
-
- - name: "active"
- type: "boolean"
- description: ""
-
- - name: "tiers_mode"
- type: "string"
- description: ""
-
- - name: "billing_scheme"
- type: "string"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "updated"
- type: "string"
- description: ""
-
-
- - name: "proration"
- type: "boolean"
- description: ""
-
- - name: "quantity"
- type: "integer"
- description: ""
-
- - name: "subscription"
- type: "string"
- description: ""
-
- - name: "subscription_item"
- type: "string"
- description: ""
-
- - name: "tax_rates"
- type: "array"
- description: ""
- subattributes:
- - name: "id"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "active"
- type: "boolean"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "created"
- type: "string"
- description: ""
-
- - name: "description"
- type: "string"
- description: ""
-
- - name: "display_name"
- type: "string"
- description: ""
-
- - name: "inclusive"
- type: "boolean"
- description: ""
-
- - name: "jurisdiction"
- type: "string"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "percentage"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
-
- - name: "unit_amount"
- type: "integer"
- description: ""
-
- - name: "unit_amount_decimal"
- type: "string"
- description: ""
-
- - name: "updated"
- type: "string"
- description: ""
-
- - name: "updated_by_event_type"
- type: "string"
- description: "Description of the event"
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v3/invoices.md b/_integration-schemas/stripe/v3/invoices.md
deleted file mode 100644
index fc216e8aa..000000000
--- a/_integration-schemas/stripe/v3/invoices.md
+++ /dev/null
@@ -1,750 +0,0 @@
----
-tap: "stripe"
-version: "3"
-key: ""
-
-name: "invoices"
-doc-link: "https://stripe.com/docs/api/invoices"
-singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/invoices.json
-description: |
- The `{{ table.name }}` table contains info about invoices. Invoices are statements of amounts owed by customers, which can be one-off charges or generated periodically from a subscription.
-
- #### Invoice line items
-
- Full records for the line items associated with an invoice can be found in the [`invoice_line_items`](#invoice_line_items) table. To replicate these records, you must set this table and the `invoice_line_items` table to replicate.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all invoices"
- doc-link: "https://stripe.com/docs/api/invoices/list"
-
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The invoice ID."
- foreign-key-id: "invoice-id"
-
- - name: "created"
- type: "date-time"
- replication-key: true
- description: "The time at which the invoice was created. Measured in seconds since the Unix epoch."
-
- - name: "account_country"
- type: "string"
- description: ""
-
- - name: "account_name"
- type: "string"
- description: ""
-
- - name: "account_tax_ids"
- type: "array"
- description: ""
- subattributes:
- - name: "items"
- type: "string"
- description: ""
-
- - name: "amount_due"
- type: "integer"
- description: ""
-
- - name: "amount_paid"
- type: "integer"
- description: ""
-
- - name: "amount_remaining"
- type: "integer"
- description: ""
-
- - name: "application_fee"
- type: "integer"
- description: ""
-
- - name: "application_fee_amount"
- type: "integer"
- description: "The fee in cents that will be applied to the invoice and transferred to the application owner’s Stripe account when the invoice is paid."
-
- - name: "attempt_count"
- type: "integer"
- description: ""
-
- - name: "attempted"
- type: "boolean"
- description: ""
-
- - name: "auto_advance"
- type: "boolean"
- description: ""
-
- - name: "automatic_tax"
- type: "object"
- description: "Settings and latest results for automatic tax lookup for this invoice."
- subattributes:
- - name: "enabled"
- type: "boolean"
- description: "Whether Stripe automatically computes tax on this invoice."
-
- - name: "status"
- type: "string"
- description: "The status of the most recent automated tax calculation for this invoice."
-
-
- - name: "billing"
- type: "string"
- description: ""
-
- - name: "billing_reason"
- type: "string"
- description: ""
-
- - name: "charge"
- type: "string"
- description: "The ID of the latest charge generated for this invoice."
- foreign-key-id: "charge-id"
-
- - name: "closed"
- type: "boolean"
- description: ""
-
- - name: "collection_method"
- type: "string"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "custom_fields"
- type: "array"
- description: ""
- subattributes:
- - name: "name"
- type: "string"
- description: "The name of the custom field."
-
- - name: "value"
- type: "string"
- description: "The value of the custom field."
-
-
- - name: "customer"
- type: "string"
- description: "The ID of the customer associated with the invoice."
- foreign-key-id: "customer-id"
-
- - name: "customer_address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "line1"
- type: "string"
- description: ""
-
- - name: "line2"
- type: "string"
- description: ""
-
- - name: "postal_code"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
-
- - name: "customer_email"
- type: "string"
- description: ""
-
- - name: "customer_name"
- type: "string"
- description: ""
-
- - name: "customer_phone"
- type: "string"
- description: ""
-
- - name: "customer_shipping"
- type: "object"
- description: ""
- subattributes:
- - name: "address"
- type: "object"
- description: ""
- subattributes:
- - name: "city"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "line1"
- type: "string"
- description: ""
-
- - name: "line2"
- type: "string"
- description: ""
-
- - name: "postal_code"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "phone"
- type: "string"
- description: ""
-
-
- - name: "customer_tax_exempt"
- type: "string"
- description: ""
-
- - name: "customer_tax_ids"
- type: "array"
- description: ""
- subattributes:
- - name: "type"
- type: "string"
- description: ""
-
- - name: "value"
- type: "string"
- description: ""
-
-
- - name: "date"
- type: "date-time"
- description: ""
-
- - name: "default_payment_method"
- type: "string"
- description: ""
-
- - name: "default_source"
- type: "string"
- description: ""
-
- - name: "default_tax_rates"
- type: "array"
- description: ""
- subattributes:
- - name: "id"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "active"
- type: "boolean"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "created"
- type: "date-time"
- description: ""
-
- - name: "description"
- type: "string"
- description: ""
-
- - name: "display_name"
- type: "string"
- description: ""
-
- - name: "inclusive"
- type: "boolean"
- description: ""
-
- - name: "jurisdiction"
- type: "string"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "metadata"
- type: "object"
- description: ""
-
- - name: "percentage"
- type: "string"
- format: "singer.decimal"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
-
- - name: "description"
- type: "string"
- description: ""
-
- - name: "discount"
- type: "object"
- description: ""
- subattributes:
- - name: "end"
- type: "date-time"
- description: ""
-
- - name: "coupon"
- type: "object"
- description: ""
- subattributes:
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "valid"
- type: "boolean"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "amount_off"
- type: "integer"
- description: ""
-
- - name: "redeem_by"
- type: "date-time"
- description: ""
-
- - name: "duration_in_months"
- type: "integer"
- description: ""
-
- - name: "percent_off_precise"
- type: "number"
- description: ""
-
- - name: "max_redemptions"
- type: "integer"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "times_redeemed"
- type: "integer"
- description: ""
-
- - name: "id"
- type: "string"
- description: "The coupon ID."
- foreign-key-id: "coupon-id"
-
- - name: "duration"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "percent_off"
- type: "number"
- description: ""
-
- - name: "created"
- type: "string"
- format: "date-time"
- description: ""
-
-
- - name: "customer"
- type: "string"
- description: "The ID of the customer the discount applies to."
- foreign-key-id: "customer-id"
-
- - name: "start"
- type: "string"
- format: "date-time"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "subscription"
- type: "string"
- description: "The subscription that this coupon is applied to, if it is applied to a particular subscription."
- foreign-key-id: "subscription-id"
-
- - name: "checkout_session"
- type: "string"
- description: "The Checkout session that this coupon is applied to, if it is applied to a particular session in payment mode. Will not be present for subscription mode."
-
- - name: "id"
- type: "string"
- description: "The ID of the discount object."
-
- - name: "invoice"
- type: "string"
- description: "The invoice that the discount’s coupon was applied to, if it was applied directly to a particular invoice."
-
- - name: "invoice_item"
- type: "string"
- description: "The invoice item id (or invoice line item id for invoice line items of type=‘subscription’) that the discount’s coupon was applied to, if it was applied directly to a particular invoice item or invoice line item."
-
- - name: "promotion_code"
- type: "string"
- description: "The promotion code applied to create this discount."
-
-
- - name: "discounts"
- type: "array"
- description: ""
- subattributes:
- - name: "items"
- type: "string"
- description: ""
-
- - name: "due_date"
- type: "string"
- format: "date-time"
- description: ""
-
- - name: "ending_balance"
- type: "integer"
- description: ""
-
- - name: "finalized_at"
- type: "string"
- format: "date-time"
- description: ""
-
- - name: "footer"
- type: "string"
- description: ""
-
- - name: "forgiven"
- type: "boolean"
- description: ""
-
- - name: "hosted_invoice_url"
- type: "string"
- description: ""
-
- - name: "invoice_pdf"
- type: "string"
- description: ""
-
- - name: "last_finalization_error"
- type: "object"
- description: ""
- subattributes:
- - name: "code"
- type: "string"
- description: ""
-
- - name: "doc_url"
- type: "string"
- description: ""
-
- - name: "message"
- type: "string"
- description: ""
-
- - name: "param"
- type: "string"
- description: ""
-
- - name: "payment_method_type"
- type: "string"
- description: ""
-
- - name: "type"
- type: "string"
- description: ""
-
-
- - name: "lines"
- type: "object"
- description: ""
- subattributes:
- - name: "items"
- type: "string"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "next_payment_attempt"
- type: "date-time"
- description: ""
-
- - name: "number"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "on_behalf_of"
- type: "string, object"
- description: "The account (if any) for which the funds of the invoice payment are intended. If set, the invoice will be presented with the branding and support information of the specified account."
- subattributes:
-
- - name: "paid"
- type: "boolean"
- description: ""
-
- - name: "paid_out_of_band"
- type: "boolean"
- description: "Returns true if the invoice was manually marked paid, returns false if the invoice hasn’t been paid yet or was paid on Stripe."
-
- - name: "payment"
- type: "string"
- description: ""
-
- - name: "payment_intent"
- type: "string"
- description: ""
-
- - name: "payment_settings"
- type: "object"
- description: "Configuration settings for the PaymentIntent that is generated when the invoice is finalized."
- subattributes:
- - name: "payment_method_options"
- type: "object"
- description: "Payment-method-specific configuration to provide to the invoice’s PaymentIntent."
- subattributes:
- - name: "acss_debit"
- type: "object"
- description: ""
- subattributes:
- - name: "mandate_options"
- type: "object"
- description: ""
- subattributes:
- - name: "transaction_type"
- type: "string"
- description: ""
-
-
- - name: "verification_method"
- type: "string"
- description: ""
-
-
- - name: "bancontact"
- type: "object"
- description: ""
- subattributes:
- - name: "preferred_language"
- type: "string"
- description: ""
-
-
- - name: "card"
- type: "object"
- description: ""
- subattributes:
- - name: "request_three_d_secure"
- type: "string"
- description: ""
-
-
-
- - name: "payment_method_types"
- type: "array"
- description: "The list of payment method types (e.g. card) to provide to the invoice’s PaymentIntent"
- subattributes:
- - name: "items"
- type: "string"
- description: ""
-
-
- - name: "period_end"
- type: "date-time"
- description: ""
-
- - name: "period_start"
- type: "date-time"
- description: ""
-
- - name: "post_payment_credit_notes_amount"
- type: "integer"
- description: ""
-
- - name: "pre_payment_credit_notes_amount"
- type: "integer"
- description: ""
-
- - name: "quote"
- type: "object, string"
- description: ""
- subattributes:
-
- - name: "receipt_number"
- type: "string"
- description: ""
-
- - name: "starting_balance"
- type: "integer"
- description: ""
-
- - name: "statement_description"
- type: "string"
- description: ""
-
- - name: "statement_descriptor"
- type: "string"
- description: ""
-
- - name: "status"
- type: "string"
- description: ""
-
- - name: "status_transitions"
- type: "object"
- description: ""
- subattributes:
- - name: "finalized_at"
- type: "date-time"
- description: ""
-
- - name: "marked_uncollectible_at"
- type: "date-time"
- description: ""
-
- - name: "paid_at"
- type: "date-time"
- description: ""
-
- - name: "voided_at"
- type: "date-time"
- description: ""
-
-
- - name: "subscription"
- type: "string"
- description: "The ID that the invoice was prepared for."
- foreign-key-id: "subscription-id"
-
- - name: "subscription_details"
- type: "object"
- description: ""
- subattributes:
- - name: "metadata"
- type: "string"
- description: ""
-
-
- - name: "subtotal"
- type: "integer"
- description: ""
-
- - name: "tax"
- type: "integer"
- description: ""
-
- - name: "tax_percent"
- type: "number"
- description: ""
-
- - name: "total"
- type: "integer"
- description: ""
-
- - name: "total_discount_amounts"
- type: "array"
- description: ""
- subattributes:
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "discount"
- type: "string"
- description: ""
-
-
- - name: "total_tax_amounts"
- type: "array"
- description: ""
- subattributes:
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "inclusive"
- type: "boolean"
- description: ""
-
- - name: "tax_rate"
- type: "string"
- description: ""
-
-
- - name: "transfer_data"
- type: "object"
- description: ""
- subattributes:
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "destination"
- type: "string"
- description: ""
-
-
- - name: "updated"
- type: "date-time"
- description: ""
-
- - name: "updated_by_event_type"
- type: "string"
- description: ""
-
- - name: "webhooks_delivered_at"
- type: "date-time"
- description: ""
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v3/payment_intents.md b/_integration-schemas/stripe/v3/payment_intents.md
deleted file mode 100644
index 82e90aefc..000000000
--- a/_integration-schemas/stripe/v3/payment_intents.md
+++ /dev/null
@@ -1,725 +0,0 @@
----
-tap: "stripe"
-version: "3"
-key: ""
-
-name: "payment_intents"
-doc-link: "https://stripe.com/docs/payments/payment-intents"
-singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/payment_intents.json
-description: |
- This table contains information about payments, from creation through checkout, in your {{ integration.display_name }} account.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all payment intents"
- doc-link: "https://stripe.com/docs/api/payment_intents/list"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The payment intent ID."
- foreign-key-id: "payment-intent-id"
-
- - name: "created"
- type: "date-time"
- description: "Time at which the dispute was created. Measured in seconds since the Unix epoch."
- replication-key: true
-
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "amount_capturable"
- type: "integer"
- description: ""
-
- - name: "amount_received"
- type: "integer"
- description: ""
-
- - name: "application"
- type: "string"
- description: ""
-
- - name: "application_fee_amount"
- type: "integer"
- description: ""
-
- - name: "automatic_payment_methods"
- type: "object"
- description: ""
- subattributes:
- - name: "enabled"
- type: "boolean"
- description: ""
-
-
- - name: "canceled_at"
- type: "date-time"
- description: ""
-
- - name: "cancellation_reason"
- type: "string"
- description: ""
-
- - name: "capture_method"
- type: "string"
- description: ""
-
- - name: "client_secret"
- type: "string"
- description: ""
-
- - name: "confirmation_method"
- type: "string"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "customer"
- type: "string"
- description: ""
-
- - name: "description"
- type: "string"
- description: ""
-
- - name: "invoice"
- type: "string"
- description: ""
-
- - name: "last_payment_error"
- type: "object"
- description: ""
- subattributes:
- - name: "charge"
- type: "string"
- description: ""
-
- - name: "code"
- type: "string"
- description: ""
-
- - name: "decline_code"
- type: "string"
- description: ""
-
- - name: "doc_url"
- type: "string"
- description: ""
-
- - name: "message"
- type: "string"
- description: ""
-
- - name: "param"
- type: "string"
- description: ""
-
- - name: "payment_method_type"
- type: "string"
- description: ""
-
- - name: "type"
- type: "string"
- description: ""
-
-
- - name: "latest_charge"
- type: "string"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "next_action"
- type: "object"
- description: ""
- subattributes:
- - name: "alipay_handle_redirect"
- type: "object"
- description: ""
- subattributes:
- - name: "native_data"
- type: "string"
- description: ""
-
- - name: "native_url"
- type: "string"
- description: ""
-
- - name: "return_url"
- type: "string"
- description: ""
-
- - name: "url"
- type: "string"
- description: ""
-
-
- - name: "boleto_display_details"
- type: "object"
- description: ""
- subattributes:
- - name: "expires_at"
- type: "date-time"
- description: ""
-
- - name: "hosted_voucher_url"
- type: "string"
- description: ""
-
- - name: "number"
- type: "string"
- description: ""
-
- - name: "pdf"
- type: "string"
- description: ""
-
-
- - name: "oxxo_display_details"
- type: "object"
- description: ""
- subattributes:
- - name: "expires_after"
- type: "date-time"
- description: ""
-
- - name: "hosted_voucher_url"
- type: "string"
- description: ""
-
- - name: "number"
- type: "string"
- description: ""
-
-
- - name: "redirect_to_url"
- type: "object"
- description: ""
- subattributes:
- - name: "return_url"
- type: "string"
- description: ""
-
- - name: "url"
- type: "string"
- description: ""
-
-
- - name: "type"
- type: "string"
- description: ""
-
- - name: "use_stripe_sdk"
- type: "object"
- description: ""
- subattributes:
-
- - name: "verify_with_microdeposits"
- type: "object"
- description: ""
- subattributes:
- - name: "arrival_date"
- type: "date-time"
- description: ""
-
- - name: "hosted_verification_url"
- type: "string"
- description: ""
-
-
- - name: "wechat_pay_display_qr_code"
- type: "object"
- description: ""
- subattributes:
- - name: "data"
- type: "string"
- description: ""
-
- - name: "image_data_url"
- type: "string"
- description: ""
-
- - name: "image_url_png"
- type: "string"
- description: ""
-
- - name: "image_url_svg"
- type: "string"
- description: ""
-
-
- - name: "wechat_pay_redirect_to_android_app"
- type: "object"
- description: ""
- subattributes:
- - name: "app_id"
- type: "string"
- description: ""
-
- - name: "nonce_str"
- type: "string"
- description: ""
-
- - name: "package"
- type: "string"
- description: ""
-
- - name: "partner_id"
- type: "string"
- description: ""
-
- - name: "prepay_id"
- type: "string"
- description: ""
-
- - name: "sign"
- type: "string"
- description: ""
-
- - name: "timestamp"
- type: "string"
- description: ""
-
-
- - name: "wechat_pay_redirect_to_ios_app"
- type: "object"
- description: ""
- subattributes:
- - name: "native_url"
- type: "string"
- description: ""
-
-
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "on_behalf_of"
- type: "string"
- description: ""
-
- - name: "payment_method"
- type: "string"
- description: ""
-
- - name: "payment_method_options"
- type: "object"
- description: ""
- subattributes:
- - name: "acss_debit"
- type: "object"
- description: ""
- subattributes:
- - name: "mandate_options"
- type: "object"
- description: ""
- subattributes:
- - name: "custom_mandate_url"
- type: "string"
- description: ""
-
- - name: "interval_description"
- type: "string"
- description: ""
-
- - name: "payment_schedule"
- type: "string"
- description: ""
-
- - name: "transaction_type"
- type: "string"
- description: ""
-
-
-
- - name: "afterpay_clearpay"
- type: "object"
- description: ""
- subattributes:
- - name: "reference"
- type: "string"
- description: ""
-
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "alipay"
- type: "object"
- description: ""
- subattributes:
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "au_becs_debit"
- type: "object"
- description: ""
- subattributes:
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "bacs_debit"
- type: "object"
- description: ""
- subattributes:
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "bancontact"
- type: "object"
- description: ""
- subattributes:
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
- - name: "preferred_language"
- type: "string"
- description: ""
-
-
- - name: "boleto"
- type: "object"
- description: ""
- subattributes:
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
- - name: "expires_after_days"
- type: "integer"
- description: ""
-
-
- - name: "card"
- type: "object"
- description: ""
- subattributes:
- - name: "installments"
- type: "object"
- description: ""
- subattributes:
- - name: "available_plans"
- type: "array"
- description: ""
- subattributes:
- - name: "count"
- type: "integer"
- description: ""
-
- - name: "interval"
- type: "string"
- description: ""
-
- - name: "type"
- type: "string"
- description: ""
-
-
- - name: "enabled"
- type: "boolean"
- description: ""
-
- - name: "plan"
- type: "object"
- description: ""
- subattributes:
- - name: "count"
- type: "integer"
- description: ""
-
- - name: "interval"
- type: "string"
- description: ""
-
- - name: "type"
- type: "string"
- description: ""
-
-
-
- - name: "network"
- type: "string"
- description: ""
-
- - name: "request_three_d_secure"
- type: "string"
- description: ""
-
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "card_present"
- type: "object"
- description: ""
- subattributes:
-
- - name: "eps"
- type: "object"
- description: ""
- subattributes:
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "fps"
- type: "object"
- description: ""
- subattributes:
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "giropay"
- type: "object"
- description: ""
- subattributes:
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "grabpay"
- type: "object"
- description: ""
- subattributes:
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "ideal"
- type: "object"
- description: ""
- subattributes:
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "interac_present"
- type: "object"
- description: ""
- subattributes:
-
- - name: "klarna"
- type: "object"
- description: ""
- subattributes:
- - name: "preferred_locale"
- type: "string"
- description: ""
-
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "oxxo"
- type: "object"
- description: ""
- subattributes:
- - name: "expires_after_days"
- type: "integer"
- description: ""
-
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "p24"
- type: "object"
- description: ""
- subattributes:
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "sepa_debit"
- type: "object"
- description: ""
- subattributes:
- - name: "mandate_options"
- type: "object"
- description: ""
- subattributes:
-
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "sofort"
- type: "object"
- description: ""
- subattributes:
- - name: "preferred_language"
- type: "string"
- description: ""
-
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
- - name: "wechat_pay"
- type: "object"
- description: ""
- subattributes:
- - name: "app_id"
- type: "string"
- description: ""
-
- - name: "client"
- type: "string"
- description: ""
-
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
-
-
- - name: "payment_method_types"
- type: "array"
- description: ""
- subattributes:
- - name: "items"
- type: ""
- description: ""
-
- - name: "processing"
- type: "object"
- description: ""
- subattributes:
-
- - name: "receipt_email"
- type: "string"
- description: ""
-
- - name: "review"
- type: "string"
- description: ""
-
- - name: "setup_future_usage"
- type: "string"
- description: ""
-
- - name: "shipping"
- type: "object"
- description: ""
- subattributes:
- - name: "address"
- type: "object"
- description: ""
- subattributes:
- - name: "line2"
- type: "string"
- description: ""
-
- - name: "state"
- type: "string"
- description: ""
-
- - name: "city"
- type: "string"
- description: ""
-
- - name: "postal_code"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "line1"
- type: "string"
- description: ""
-
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "phone"
- type: "string"
- description: ""
-
- - name: "carrier"
- type: "string"
- description: ""
-
- - name: "tracking_number"
- type: "string"
- description: ""
-
-
- - name: "source"
- type: "string"
- description: ""
-
- - name: "statement_descriptor"
- type: "string"
- description: ""
-
- - name: "statement_descriptor_suffix"
- type: "string"
- description: ""
-
- - name: "status"
- type: "string"
- description: ""
-
- - name: "transfer_data"
- type: "object"
- description: ""
- subattributes:
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "destination"
- type: "string"
- description: ""
-
-
- - name: "transfer_group"
- type: "string"
- description: ""
-
- - name: "updated"
- type: "date-time"
- description: ""
-
- - name: "updated_by_event_type"
- type: "string"
- description: ""
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v3/payouts.md b/_integration-schemas/stripe/v3/payouts.md
deleted file mode 100644
index 3e13e1367..000000000
--- a/_integration-schemas/stripe/v3/payouts.md
+++ /dev/null
@@ -1,202 +0,0 @@
----
-tap: "stripe"
-version: "3"
-key: ""
-
-name: "payouts"
-doc-link: "https://stripe.com/docs/api/payouts"
-singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/payouts.json
-description: |
- The `{{ table.name }}` table contains info about payouts, which occur when you receive funds from {{ integration.display_name }} or initiate a payout to a bank account of the debit card of a connected {{ integration.display_name }} account.
-
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all payouts"
- doc-link: "https://stripe.com/docs/api/payouts/list"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The payout ID."
- foreign-key-id: "payout-id"
-
- - name: "created"
- type: "string"
- replication-key: true
- description: "The time at which the payout was created. Measured in seconds since the Unix epoch."
-
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "amount_reversed"
- type: "integer"
- description: ""
-
- - name: "arrival_date"
- type: "string"
- description: ""
-
- - name: "automatic"
- type: "boolean"
- description: ""
-
- - name: "balance_transaction"
- type: "string"
- description: "The ID of the balance transaction that describes the impact of this payout on your account balance."
- foreign-key-id: "balance-transaction-id"
-
- - name: "bank_account"
- type: "object"
- description: ""
- subattributes:
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "routing_number"
- type: "string"
- description: ""
-
- - name: "account_holder_type"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "id"
- type: "string"
- description: ""
-
- - name: "bank_name"
- type: "string"
- description: ""
-
- - name: "last4"
- type: "string"
- description: ""
-
- - name: "fingerprint"
- type: "string"
- description: ""
-
- - name: "account_holder_name"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "status"
- type: "string"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "country"
- type: "string"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "date"
- type: "string"
- description: ""
-
- - name: "description"
- type: "string"
- description: ""
-
- - name: "destination"
- type: "string"
- description: ""
-
- - name: "failure_balance_transaction"
- type: "string"
- description: "If the payout failed or was canceled, this will be the ID of the balance transaction that reversed the initial balance transaction, and puts the funds from the failed payout back in your balance."
- foreign-key-id: "balance-transaction-id"
-
- - name: "failure_code"
- type: "string"
- description: ""
-
- - name: "failure_message"
- type: "string"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "method"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "original_payout"
- type: "string"
- description: ""
-
- - name: "recipient"
- type: "string"
- description: ""
-
- - name: "reversed_by"
- type: "string"
- description: ""
-
- - name: "source_transaction"
- type: "string"
- description: ""
-
- - name: "source_type"
- type: "string"
- description: ""
-
- - name: "statement_description"
- type: "string"
- description: ""
-
- - name: "statement_descriptor"
- type: "string"
- description: ""
-
- - name: "status"
- type: "string"
- description: ""
-
- - name: "transfer_group"
- type: "string"
- description: ""
-
- - name: "type"
- type: "string"
- description: ""
-
- - name: "updated"
- type: "string"
- description: ""
-
- - name: "updated_by_event_type"
- type: "string"
- description: "Description of the event"
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v3/plans.md b/_integration-schemas/stripe/v3/plans.md
deleted file mode 100644
index 7c473943e..000000000
--- a/_integration-schemas/stripe/v3/plans.md
+++ /dev/null
@@ -1,136 +0,0 @@
----
-tap: "stripe"
-version: "3"
-key: ""
-
-name: "plans"
-doc-link: "https://stripe.com/docs/api/plans"
-singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/plans.json
-description: |
- The `{{ table.name }}` table contains info about the plans in your {{ integration.display_name }} account. A plan defines the base price, currency, and billing cycle for subscriptions.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all plans"
- doc-link: "https://stripe.com/docs/api/plans/list"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The plan ID."
- foreign-key-id: "plan-id"
-
- - name: "created"
- type: "string"
- replication-key: true
- description: "Time at which the plan was created. Measured in seconds since the Unix epoch."
-
- - name: "active"
- type: "boolean"
- description: ""
-
- - name: "aggregate_usage"
- type: "string"
- description: ""
-
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "amount_decimal"
- type: "string"
- description: ""
-
- - name: "billing_scheme"
- type: "string"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "interval"
- type: "string"
- description: ""
-
- - name: "interval_count"
- type: "integer"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "nickname"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "product"
- type: "string"
- description: "The product whose pricing this plan determines."
- foreign-key-id: "product-id"
-
- - name: "statement_description"
- type: "string"
- description: ""
-
- - name: "statement_descriptor"
- type: "string"
- description: ""
-
- - name: "tiers"
- type: "array"
- description: ""
- subattributes:
- - name: "flat_amount"
- type: "integer"
- description: ""
-
- - name: "unit_amount"
- type: "integer"
- description: ""
-
- - name: "up_to"
- type: "integer"
- description: ""
-
-
- - name: "tiers_mode"
- type: "string"
- description: ""
-
- - name: "transform_usage"
- type: "object"
- description: ""
-
- - name: "trial_period_days"
- type: "integer"
- description: ""
-
- - name: "updated"
- type: "string"
- description: ""
-
- - name: "updated_by_event_type"
- type: "string"
- description: "Description of the event"
-
- - name: "usage_type"
- type: "string"
- description: ""
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v3/products.md b/_integration-schemas/stripe/v3/products.md
deleted file mode 100644
index 1a69299c9..000000000
--- a/_integration-schemas/stripe/v3/products.md
+++ /dev/null
@@ -1,135 +0,0 @@
----
-tap: "stripe"
-version: "3"
-key: ""
-
-name: "products"
-doc-link: "https://stripe.com/docs/api/products"
-singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/products.json
-description: |
- The `{{ table.name }}` table contains info about the products in your {{ integration.display_name }} account.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all products"
- doc-link: "https://stripe.com/docs/api/products/list"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The product ID."
- foreign-key-id: "product-id"
-
- - name: "created"
- type: "string"
- replication-key: true
- description: "Time at which the product was created. Measured in seconds since the Unix epoch."
-
- - name: "active"
- type: "boolean"
- description: ""
-
- - name: "attributes"
- type: "array"
- description: ""
- subattributes:
- - name: "items"
- type: "string"
- description: ""
-
- - name: "caption"
- type: "string"
- description: ""
-
- - name: "deactivate_on"
- type: "array"
- description: ""
- subattributes:
- - name: "items"
- type: "string"
- description: ""
-
- - name: "description"
- type: "string"
- description: ""
-
- - name: "images"
- type: "array"
- description: ""
- subattributes:
- - name: "items"
- type: "string"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "package_dimensions"
- type: "object"
- description: ""
- subattributes:
- - name: "width"
- type: "number"
- description: ""
-
- - name: "length"
- type: "number"
- description: ""
-
- - name: "weight"
- type: "number"
- description: ""
-
- - name: "height"
- type: "number"
- description: ""
-
-
- - name: "shippable"
- type: "boolean"
- description: ""
-
- - name: "statement_descriptor"
- type: "string"
- description: ""
-
- - name: "tax_code"
- type: "string"
- description: "A tax code ID."
-
- - name: "type"
- type: "string"
- description: ""
-
- - name: "unit_label"
- type: "string"
- description: ""
-
- - name: "updated"
- type: "string"
- description: ""
-
- - name: "updated_by_event_type"
- type: "string"
- description: "Description of the event"
-
- - name: "url"
- type: "string"
- description: ""
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v3/subscriptions.md b/_integration-schemas/stripe/v3/subscriptions.md
deleted file mode 100644
index 78e0be1f9..000000000
--- a/_integration-schemas/stripe/v3/subscriptions.md
+++ /dev/null
@@ -1,445 +0,0 @@
----
-tap: "stripe"
-version: "3"
-key: ""
-
-name: "subscriptions"
-doc-link: "https://stripe.com/docs/api/subscriptions"
-singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/subscriptions.json
-description: |
- The `{{ table.name }}` table contains info about subscriptions, which allow you to charge a customer on a recurring basis. A subscription ties a customer to a particular [plan](#plans).
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List subscriptions"
- doc-link: "https://stripe.com/docs/api/subscriptions/list"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The subscription ID."
- foreign-key-id: "subscription-id"
-
- - name: "created"
- type: "string"
- replication-key: true
- description: "The time the subscription was created. Measured in second since the Unix epoch."
-
- - name: "application_fee_percent"
- type: "number"
- description: ""
-
- - name: "billing"
- type: "string"
- description: ""
-
- - name: "billing_cycle_anchor"
- type: "string"
- description: ""
-
- - name: "billing_thresholds"
- type: "object"
- description: ""
- subattributes:
- - name: "amount_gte"
- type: "integer"
- description: ""
-
- - name: "reset_billing_cycle_anchor"
- type: "boolean"
- description: ""
-
-
- - name: "cancel_at"
- type: "string"
- description: ""
-
- - name: "cancel_at_period_end"
- type: "boolean"
- description: ""
-
- - name: "canceled_at"
- type: "string"
- description: ""
-
- - name: "collection_method"
- type: "string"
- description: ""
-
- - name: "current_period_end"
- type: "string"
- description: ""
-
- - name: "current_period_start"
- type: "string"
- description: ""
-
- - name: "customer"
- type: "string"
- description: "The ID of the customer who owns the subscription."
- foreign-key-id: "customer-id"
-
- - name: "days_until_due"
- type: "integer"
- description: ""
-
- - name: "default_payment_method"
- type: "string"
- description: ""
-
- - name: "default_source"
- type: "string"
- description: ""
-
- - name: "discount"
- type: "object"
- description: ""
- subattributes:
- - name: "end"
- type: "string"
- description: ""
-
- - name: "coupon"
- type: "object"
- description: ""
- subattributes:
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "valid"
- type: "boolean"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "amount_off"
- type: "integer"
- description: ""
-
- - name: "redeem_by"
- type: "string"
- description: ""
-
- - name: "duration_in_months"
- type: "integer"
- description: ""
-
- - name: "percent_off_precise"
- type: "number"
- description: ""
-
- - name: "max_redemptions"
- type: "integer"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "times_redeemed"
- type: "integer"
- description: ""
-
- - name: "id"
- type: "string"
- description: "The coupon ID."
- foreign-key-id: "coupon-id"
-
- - name: "duration"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "percent_off"
- type: "number"
- description: ""
-
- - name: "created"
- type: "string"
- description: ""
-
-
- - name: "customer"
- type: "string"
- description: ""
-
- - name: "start"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "subscription"
- type: "string"
- description: ""
-
- - name: "checkout_session"
- type: "string"
- description: "The Checkout session that this coupon is applied to, if it is applied to a particular session in payment mode. Will not be present for subscription mode."
-
- - name: "id"
- type: "string"
- description: "The ID of the discount object. "
-
- - name: "invoice"
- type: "string"
- description: "The invoice that the discount’s coupon was applied to, if it was applied directly to a particular invoice."
-
- - name: "invoice_item"
- type: "string"
- description: "The invoice item id (or invoice line item id for invoice line items of type=‘subscription’) that the discount’s coupon was applied to, if it was applied directly to a particular invoice item or invoice line item."
-
- - name: "promotion_code"
- type: "string"
- description: "The promotion code applied to create this discount."
-
-
- - name: "ended_at"
- type: "string"
- description: ""
-
- - name: "invoice_customer_balance_settings"
- type: "object"
- description: ""
- subattributes:
- - name: "consume_applied_balance_on_void"
- type: "boolean"
- description: ""
-
-
- - name: "items"
- type: "array"
- description: ""
- subattributes:
- - name: "items"
- type: "string"
- description: ""
-
- - name: "latest_invoice"
- type: "string"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "next_pending_invoice_item_invoice"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "pause_collection"
- type: "object"
- description: ""
- subattributes:
- - name: "behavior"
- type: "string"
- description: ""
-
- - name: "resumes_at"
- type: "string"
- description: ""
-
-
- - name: "pending_invoice_item_interval"
- type: "object"
- description: ""
- subattributes:
- - name: "interval"
- type: "string"
- description: ""
-
- - name: "interval_count"
- type: "integer"
- description: ""
-
-
- - name: "pending_setup_intent"
- type: "string"
- description: ""
-
- - name: "plan"
- type: "object"
- description: ""
- subattributes:
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "product"
- type: "string"
- description: "The product whose pricing this plan determines."
- foreign-key-id: "product-id"
-
- - name: "statement_description"
- type: "string"
- description: ""
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "tiers_mode"
- type: "string"
- description: ""
-
- - name: "active"
- type: "boolean"
- description: ""
-
- - name: "id"
- type: "string"
- description: "The plan ID."
- foreign-key-id: "plan-id"
-
- - name: "tiers"
- type: "array"
- description: ""
- subattributes:
- - name: "flat_amount"
- type: "integer"
- description: ""
-
- - name: "unit_amount"
- type: "integer"
- description: ""
-
- - name: "up_to"
- type: "integer"
- description: ""
-
-
- - name: "created"
- type: "string"
- description: ""
-
- - name: "nickname"
- type: "string"
- description: ""
-
- - name: "transform_usage"
- type: "object"
- description: ""
-
- - name: "interval_count"
- type: "integer"
- description: ""
-
- - name: "name"
- type: "string"
- description: ""
-
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "interval"
- type: "string"
- description: ""
-
- - name: "aggregate_usage"
- type: "string"
- description: ""
-
- - name: "trial_period_days"
- type: "integer"
- description: ""
-
- - name: "billing_scheme"
- type: "string"
- description: ""
-
- - name: "statement_descriptor"
- type: "string"
- description: ""
-
- - name: "usage_type"
- type: "string"
- description: ""
-
- - name: "object"
- type: "string"
- description: ""
-
-
- - name: "quantity"
- type: "integer"
- description: ""
-
- - name: "schedule"
- type: "string"
- description: ""
-
- - name: "start"
- type: "string"
- description: ""
-
- - name: "start_date"
- type: "string"
- description: ""
-
- - name: "status"
- type: "string"
- description: ""
-
- - name: "tax_percent"
- type: "number"
- description: ""
-
- - name: "transfer_data"
- type: "object"
- description: ""
- subattributes:
- - name: "amount_percent"
- type: "string"
- description: ""
-
- - name: "destination"
- type: "string"
- description: ""
-
-
- - name: "trial_end"
- type: "string"
- description: ""
-
- - name: "trial_start"
- type: "string"
- description: ""
-
- - name: "updated"
- type: "string"
- description: ""
-
- - name: "updated_by_event_type"
- type: "string"
- description: "Description of the event"
----
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v3/transfers.md b/_integration-schemas/stripe/v3/transfers.md
deleted file mode 100644
index f3b08fe98..000000000
--- a/_integration-schemas/stripe/v3/transfers.md
+++ /dev/null
@@ -1,128 +0,0 @@
----
-tap: "stripe"
-version: "3"
-key: ""
-
-name: "transfers"
-doc-link:
-singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/transfers.json
-description: |
- The `{{ table.name }}` table contains info about transfers sent to connected accounts.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "List all transfers"
- doc-link: "https://stripe.com/docs/api/transfers/list"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The transfer ID."
- foreign-key-id: "transfer-id"
-
- - name: "created"
- type: "string"
- replication-key: true
- description: "The time the transfer was created. Measured in seconds since the Unix epoch."
-
- - name: "amount"
- type: "integer"
- description: ""
-
- - name: "amount_reversed"
- type: "integer"
- description: ""
-
- - name: "arrival_date"
- type: "string"
- description: ""
-
- - name: "automatic"
- type: "boolean"
- description: ""
-
- - name: "balance_transaction"
- type: "string"
- description: "The ID of the balance transaction that describes the impact of the transfer on your account balance."
- foreign-key-id: "balance-transaction-id"
-
- - name: "currency"
- type: "string"
- description: ""
-
- - name: "date"
- type: "string"
- description: ""
-
- - name: "description"
- type: "string"
- description: ""
-
- - name: "destination"
- type: "string"
- description: ""
-
- - name: "failure_balance_transaction"
- type: "string"
- description: "If the transfer failed or was canceled, this will be the ID of the balance transaction that reversed the initial balance transaction, and puts the funds from the failed payout back in your balance."
- foreign-key-id: "balance-transaction-id"
-
- - name: "livemode"
- type: "boolean"
- description: ""
-
- - name: "metadata"
- type: "object"
- description: ""
- subattributes:
-
- - name: "object"
- type: "string"
- description: ""
-
- - name: "recipient"
- type: "string"
- description: ""
-
- - name: "reversals"
- type: "array"
- description: ""
- subattributes:
- - name: "items"
- type: "object"
- description: ""
-
- - name: "reversed"
- type: "boolean"
- description: ""
-
- - name: "source_transaction"
- type: "string"
- description: ""
-
- - name: "source_type"
- type: "string"
- description: ""
-
- - name: "statement_description"
- type: "string"
- description: ""
-
- - name: "statement_descriptor"
- type: "string"
- description: ""
-
- - name: "transfer_group"
- type: "string"
- description: ""
-
- - name: "updated"
- type: "string"
- description: ""
-
- - name: "updated_by_event_type"
- type: "string"
- description: "Description of the event"
----
\ No newline at end of file
diff --git a/_integration-schemas/surveymonkey/v1/responses.md b/_integration-schemas/surveymonkey/v1/responses.md
deleted file mode 100644
index adcb4923e..000000000
--- a/_integration-schemas/surveymonkey/v1/responses.md
+++ /dev/null
@@ -1,154 +0,0 @@
----
-tap: "surveymonkey"
-version: "1"
-key: ""
-
-name: "responses"
-doc-link: "https://developer.surveymonkey.com/api/v3/"
-singer-schema: "https://github.com/singer-io/tap-surveymonkey/blob/master/tap_surveymonkey/schemas/responses.json"
-description: "This table contains information about your survey responses."
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "GET Survey Responses"
- doc-link: "https://developer.surveymonkey.com/api/v3/#collectors-id-responses-id-details"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The response ID."
- foreign-key-id: "response-id"
-
- - name: "date_modified"
- type: "date-time"
- description: "The date the response was last modified."
- replication-key: true
-
- - name: "analyze_url"
- type: "string"
- description: "The weblink to the analyze page to view the response."
-
- - name: "collection_mode"
- type: "string"
- description: |
- The collection mode of the response: `default`, `preview`, `data_entry`, `survey_preview`, or `edit`.
-
- - name: "collector_id"
- type: "string"
- description: "The ID of the collector the response was taken for."
-
- - name: "custom_value"
- type: "string"
- description: "The custom value associated with a response."
-
- - name: "custom_variables"
- type: "object"
- description: "The values to any available custom variables in the survey."
- subattributes:
-
- - name: "date_created"
- type: "date-time"
- description: "The date the response was created."
-
- - name: "edit_url"
- type: "string"
- description: "The weblink to the survey taking page to edit the response."
-
- - name: "email_address"
- type: "string"
- description: "The email address of the responder."
-
- - name: "first_name"
- type: "string"
- description: "The first name of the responder."
-
- - name: "href"
- type: "string"
- description: "The **Resource API** URL."
-
- - name: "ip_address"
- type: "string"
- description: "The IP Address the response was taken from."
-
- - name: "last_name"
- type: "string"
- description: "The last name of the responder."
-
- - name: "logic_path"
- type: "object"
- description: "The logic path taken during the survey."
- subattributes:
-
- - name: "metadata"
- type: "object"
- description: "Other associated metadata or custom values."
- subattributes:
-
- - name: "page_path"
- type: "array"
- description: "The order in which the pages were responded to."
- subattributes:
- - name: "value"
- type: "string"
- description: ""
-
- - name: "pages"
- type: "array"
- description: "Pages from the survey and their associated responses."
- subattributes:
- - name: "id"
- type: "string"
- description: "The ID of the page with responses."
- - name: "questions"
- type: "array"
- description: "The questions on that page with responses."
- subattributes:
- - name: "answers"
- type: "array"
- description: "The answers for the question with responses."
- subattributes:
- - name: "choice_id"
- type: "string"
- description: "The choice selected."
- - name: "col_id"
- type: "string"
- description: "The column selected."
- - name: "image"
- type: "string"
- description: ""
- - name: "other_id"
- type: "string"
- description: "The other text choice selected."
- - name: "row_id"
- type: "string"
- description: "The row selected."
- - name: "text"
- type: "string"
- description: "Any open ended text."
- - name: "id"
- type: "string"
- description: "ID of the question with responses."
- - name: "variable_id"
- type: "string"
- description: "ID of the random assignment variable for the question."
-
- - name: "recipient_id"
- type: "string"
- description: "The ID of the recipient."
-
- - name: "response_status"
- type: "string"
- description: |
- The status of the response: `completed`, `partial`, `overquota`, or `disqualified`.
-
- - name: "survey_id"
- type: "string"
- description: "ID of the survey the response was taken for."
- foreign-key-id: "survey-id"
-
- - name: "total_time"
- type: "integer"
- description: "Total time in seconds spent on the survey."
----
diff --git a/_integration-schemas/surveymonkey/v1/simplified_responses.md b/_integration-schemas/surveymonkey/v1/simplified_responses.md
deleted file mode 100644
index f42c2bc96..000000000
--- a/_integration-schemas/surveymonkey/v1/simplified_responses.md
+++ /dev/null
@@ -1,161 +0,0 @@
----
-tap: "surveymonkey"
-version: "1"
-key: ""
-
-name: "simplified_responses"
-doc-link: "https://developer.surveymonkey.com/api/v3/"
-singer-schema: "https://github.com/singer-io/tap-surveymonkey/blob/master/tap_surveymonkey/schemas/simplified_responses.json"
-description: "This table contains a simplified version of information about your survey responses."
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "GET Response"
- doc-link: "https://developer.surveymonkey.com/api/v3/#collectors-id-responses-id-details"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The response ID."
- foreign-key-id: "response-id"
-
- - name: "date_modified"
- type: "date-time"
- description: "The date the response was last modified."
- replication-key: true
-
- - name: "analyze_url"
- type: "string"
- description: "The weblink to the analyze page to view the response."
-
- - name: "collection_mode"
- type: "string"
- description: |
- The collection mode of the response: `default`, `preview`, `data_entry`, `survey_preview`, or `edit`.
-
- - name: "collector_id"
- type: "string"
- description: "The ID of the collector the response was taken for."
-
- - name: "custom_value"
- type: "string"
- description: "The custom value associated with a response."
-
- - name: "custom_variables"
- type: "object"
- description: "The values to any available custom variables in the survey."
- subattributes:
-
- - name: "date_created"
- type: "date-time"
- description: "The date the response was created."
-
- - name: "edit_url"
- type: "string"
- description: "The weblink to the survey taking page to edit the response."
-
- - name: "href"
- type: "string"
- description: "The **Resource API** URL."
-
- - name: "ip_address"
- type: "string"
- description: "The IP Address the response was taken from."
-
- - name: "logic_path"
- type: "object"
- description: "The logic path taken during the survey."
- subattributes:
-
- - name: "metadata"
- type: "object"
- description: "Other associated metadata or custom values."
- subattributes:
-
- - name: "page_path"
- type: "array"
- description: "The order in which the pages were responded to."
- subattributes:
- - name: "value"
- type: "string"
- description: ""
-
- - name: "pages"
- type: "array"
- description: "Pages from the survey and their associated responses."
- subattributes:
- - name: "id"
- type: "string"
- description: "The ID of the page with responses."
- - name: "questions"
- type: "array"
- description: "The questions on that page with responses."
- subattributes:
- - name: "answers"
- type: "array"
- description: "The answers for the question with responses."
- subattributes:
- - name: "choice_id"
- type: "string"
- description: "The choice selected."
- - name: "col_id"
- type: "string"
- description: "The column selected."
- - name: "image"
- type: "string"
- description: ""
- - name: "other_id"
- type: "string"
- description: "The other text choice selected."
- - name: "row_id"
- type: "string"
- description: "The row selected."
- - name: "simple_text"
- type: "string"
- description: ""
- - name: "tag_data"
- type: "array"
- description: ""
- subattributes:
- - name: "value"
- type: "string"
- description: ""
- - name: "text"
- type: "string"
- description: "Any open ended text."
- - name: "family"
- type: "string"
- description: "The question family."
- - name: "heading"
- type: "string"
- description: "The question heading."
- - name: "id"
- type: "string"
- description: "ID of the question with responses."
- - name: "subtype"
- type: "string"
- description: "The question family's subtype."
- - name: "variable_id"
- type: "string"
- description: "ID of the random assignment variable for the question."
-
- - name: "recipient_id"
- type: "string"
- description: "The ID of the recipient."
-
- - name: "response_status"
- type: "string"
- description: |
- The status of the response: `completed`, `partial`, `overquota`, or `disqualified`.
-
- - name: "survey_id"
- type: "string"
- description: "ID of the survey the response was taken for."
- foreign-key-id: "survey-id"
-
- - name: "total_time"
- type: "integer"
- description: "Total time in seconds spent on the survey."
----
diff --git a/_integration-schemas/surveymonkey/v1/survey_details.md b/_integration-schemas/surveymonkey/v1/survey_details.md
deleted file mode 100644
index 4734d0ad6..000000000
--- a/_integration-schemas/surveymonkey/v1/survey_details.md
+++ /dev/null
@@ -1,450 +0,0 @@
----
-tap: "surveymonkey"
-version: "1"
-key: ""
-
-name: "survey_details"
-doc-link: "https://developer.surveymonkey.com/api/v3/"
-singer-schema: "https://github.com/singer-io/tap-surveymonkey/blob/master/tap_surveymonkey/schemas/survey_details.json"
-description: "This table contains information about your survey details."
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "GET Surveys"
- doc-link: "https://developer.surveymonkey.com/api/v3/#surveys"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The survey ID."
- foreign-key-id: "survey-id"
-
- - name: "date_modified"
- type: "date-time"
- description: "The date and time when survey was last modified."
- replication-key: true
-
- - name: "analyze_url"
- type: "string"
- description: "The survey's **Analyze** URL."
-
- - name: "buttons_text"
- type: "object"
- description: "The survey buttons text container."
- subattributes:
- - name: "done_button"
- type: "string"
- description: "The **Done** button text."
- - name: "exit_button"
- type: "string"
- description: "The **Exit** button text."
- - name: "next_button"
- type: "string"
- description: "The **Next** button text."
- - name: "prev_button"
- type: "string"
- description: "The **Previous** button text."
-
- - name: "category"
- type: "string"
- description: "The survey category chosen when creating the survey."
-
- - name: "collect_url"
- type: "string"
- description: "The survey's **Collect** URL."
-
- - name: "custom_variables"
- type: "object"
- description: "The dictionary of survey variables."
- subattributes:
-
- - name: "date_created"
- type: "date-time"
- description: "The date and time when survey was created"
-
- - name: "edit_url"
- type: "string"
- description: "The survey's **Edit** URL."
-
- - name: "folder_id"
- type: "string"
- description: "If applicable, the id of the folder the survey is in."
-
- - name: "footer"
- type: "boolean"
- description: "Whether or not SurveyMonkey’s footer is **not** displayed."
-
- - name: "href"
- type: "string"
- description: "The **Resource API** URL."
-
- - name: "is_owner"
- type: "boolean"
- description: ""
-
- - name: "language"
- type: "string"
- description: "The survey language."
-
- - name: "nickname"
- type: "string"
- description: "The survey nickname."
-
- - name: "page_count"
- type: "integer"
- description: "The number of pages in the survey."
-
- - name: "pages"
- type: "array"
- description: "Pages from the surveys."
- subattributes:
- - name: "description"
- type: "string"
- description: "The page description."
- - name: "href"
- type: "string"
- description: ""
- - name: "id"
- type: "string"
- description: "The page ID."
- - name: "position"
- type: "integer"
- description: "The page position."
- - name: "question_count"
- type: "integer"
- description: "The number of questions on the page."
- - name: "questions"
- type: "array"
- description: "The questions on the page."
- subattributes:
- - name: "answers"
- type: "object"
- description: "The answer to the question."
- subattributes:
- - name: "choices"
- type: "array"
- description: "The list of available choices for the user."
- subattributes:
- - name: "description"
- type: "string"
- description: "Valid values: , Extremely likely, Not at all likely."
- - name: "id"
- type: "string"
- description: "The ID of the choice"
- - name: "image"
- type: "object"
- description: "The image choice."
- subattributes:
- - name: "s3_key"
- type: "string"
- description: ""
- - name: "url"
- type: "string"
- description: "The URL of image choice."
- - name: "is_na"
- type: "boolean"
- description: ""
- - name: "position"
- type: "integer"
- description: "The position of the current choice"
- - name: "quiz_options"
- type: "object"
- description: "The object containing the quiz properties of this question, if quiz-mode is enabled."
- subattributes:
- - name: "score"
- type: "integer"
- description: "The quiz score."
- - name: "text"
- type: "string"
- description: "The choice for user selection."
- - name: "visible"
- type: "boolean"
- description: "Whether the question is visible."
- - name: "weight"
- type: "integer"
- description: "The weight value of the choice."
- - name: "cols"
- type: "array"
- description: "The list of columns in the matrix."
- subattributes:
- - name: "choices"
- type: "array"
- description: "The list of available choices for the user in dropdown menu."
- subattributes:
- - name: "id"
- type: "string"
- description: ""
- - name: "is_na"
- type: "boolean"
- description: ""
- - name: "position"
- type: "integer"
- description: "The position of choice."
- - name: "text"
- type: "string"
- description: "The choice for user selection."
- - name: "visible"
- type: "boolean"
- description: ""
- - name: "id"
- type: "string"
- description: ""
- - name: "is_na"
- type: "boolean"
- description: ""
- - name: "position"
- type: "integer"
- description: ""
- - name: "text"
- type: "string"
- description: ""
- - name: "visible"
- type: "boolean"
- description: ""
- - name: "other"
- type: "object"
- description: ""
- subattributes:
- - name: "apply_all_rows"
- type: "boolean"
- description: ""
- - name: "error_text"
- type: "string"
- description: ""
- - name: "id"
- type: "string"
- description: ""
- - name: "is_answer_choice"
- type: "boolean"
- description: ""
- - name: "num_chars"
- type: "integer"
- description: ""
- - name: "num_lines"
- type: "integer"
- description: ""
- - name: "position"
- type: "integer"
- description: ""
- - name: "text"
- type: "string"
- description: ""
- - name: "visible"
- type: "boolean"
- description: ""
- - name: "rows"
- type: "array"
- description: ""
- subattributes:
- - name: "id"
- type: "string"
- description: ""
- - name: "position"
- type: "integer"
- description: ""
- - name: "required"
- type: "boolean"
- description: ""
- - name: "text"
- type: "string"
- description: ""
- - name: "type"
- type: "string"
- description: ""
- - name: "visible"
- type: "boolean"
- description: ""
- - name: "display_options"
- type: "object"
- description: ""
- subattributes:
- - name: "show_display_number"
- type: "boolean"
- description: ""
- - name: "family"
- type: "string"
- description: ""
- - name: "forced_ranking"
- type: "boolean"
- description: ""
- - name: "headings"
- type: "array"
- description: ""
- subattributes:
- - name: "description"
- type: "string"
- description: ""
- - name: "heading"
- type: "string"
- description: ""
- - name: "image"
- type: "object"
- description: ""
- subattributes:
- - name: "s3_key"
- type: "string"
- description: ""
- - name: "url"
- type: "string"
- description: ""
- - name: "random_assignment"
- type: "object"
- description: ""
- subattributes:
- - name: "description"
- type: "string"
- description: ""
- - name: "id"
- type: "string"
- description: ""
- - name: "percent"
- type: "number"
- description: ""
- - name: "position"
- type: "integer"
- description: ""
- - name: "variable_name"
- type: "string"
- description: ""
- - name: "href"
- type: "string"
- description: ""
- - name: "id"
- type: "string"
- description: ""
- - name: "nickname"
- type: "string"
- description: ""
- - name: "position"
- type: "integer"
- description: ""
- - name: "quiz_options"
- type: "object"
- description: ""
- subattributes:
- - name: "feedback"
- type: "object"
- description: ""
- subattributes:
- - name: "correct_text"
- type: "string"
- description: ""
- - name: "incorrect_text"
- type: "string"
- description: ""
- - name: "partial_text"
- type: "string"
- description: ""
- - name: "scoring_enabled"
- type: "boolean"
- description: ""
- - name: "required"
- type: "object"
- description: ""
- subattributes:
- - name: "amount"
- type: "string"
- description: ""
- - name: "text"
- type: "string"
- description: ""
- - name: "type"
- type: "string"
- description: ""
- - name: "sorting"
- type: "object"
- description: ""
- subattributes:
- - name: "ignore_last"
- type: "boolean"
- description: ""
- - name: "type"
- type: "string"
- description: ""
- - name: "subtype"
- type: "string"
- description: ""
- - name: "validation"
- type: "object"
- description: ""
- subattributes:
- - name: "max"
- type: "string"
- description: ""
- - name: "min"
- type: "string"
- description: ""
- - name: "sum"
- type: "integer"
- description: ""
- - name: "sum_text"
- type: "string"
- description: ""
- - name: "text"
- type: "string"
- description: ""
- - name: "type"
- type: "string"
- description: ""
- - name: "visible"
- type: "boolean"
- description: ""
- - name: "title"
- type: "string"
- description: ""
-
- - name: "preview"
- type: "string"
- description: "The survey **Preview** URL."
-
- - name: "question_count"
- type: "integer"
- description: "Number of questions in survey."
-
- - name: "quiz_options"
- type: "object"
- description: "An object describing the quiz settings, if this survey is a quiz."
- subattributes:
- - name: "feedback"
- type: "object"
- description: "Text to show the user when they complete the quiz."
- subattributes:
- - name: "ranges"
- type: "array"
- description: "The ranges at which to show users certain feedback."
- subattributes:
- - name: "max"
- type: "string"
- description: "Maximum score for this feedback."
- - name: "message"
- type: "string"
- description: "Feedback message."
- - name: "min"
- type: "string"
- description: "Minimum score for this feedback."
- - name: "ranges_type"
- type: "string"
- description: |
- The type of parameters used: `percentage` or `points`.
- - name: "is_quiz_mode"
- type: "boolean"
- description: "The on/off toggle for setting this survey as a quiz."
- - name: "show_results_type"
- type: "string"
- description: |
- What to reveal to the user when they complete the quiz: `disabled`, `results_only` or `results_and_answers`."
-
- - name: "response_count"
- type: "integer"
- description: "The number of responses survey has received."
-
- - name: "summary_url"
- type: "string"
- description: "The survey's **Summary** URL."
-
- - name: "title"
- type: "string"
- description: "The survey title."
----
diff --git a/_integration-schemas/surveymonkey/v2/responses.md b/_integration-schemas/surveymonkey/v2/responses.md
deleted file mode 100644
index 7ac3ae56c..000000000
--- a/_integration-schemas/surveymonkey/v2/responses.md
+++ /dev/null
@@ -1,154 +0,0 @@
----
-tap: "surveymonkey"
-version: "2"
-key: ""
-
-name: "responses"
-doc-link: "https://developer.surveymonkey.com/api/v3/"
-singer-schema: "https://github.com/singer-io/tap-surveymonkey/blob/master/tap_surveymonkey/schemas/responses.json"
-description: "This table contains information about your survey responses."
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "GET Survey Responses"
- doc-link: "https://developer.surveymonkey.com/api/v3/#collectors-id-responses-id-details"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The response ID."
- foreign-key-id: "response-id"
-
- - name: "date_modified"
- type: "date-time"
- description: "The date the response was last modified."
- replication-key: true
-
- - name: "analyze_url"
- type: "string"
- description: "The weblink to the analyze page to view the response."
-
- - name: "collection_mode"
- type: "string"
- description: |
- The collection mode of the response: `default`, `preview`, `data_entry`, `survey_preview`, or `edit`.
-
- - name: "collector_id"
- type: "string"
- description: "The ID of the collector the response was taken for."
-
- - name: "custom_value"
- type: "string"
- description: "The custom value associated with a response."
-
- - name: "custom_variables"
- type: "object"
- description: "The values to any available custom variables in the survey."
- subattributes:
-
- - name: "date_created"
- type: "date-time"
- description: "The date the response was created."
-
- - name: "edit_url"
- type: "string"
- description: "The weblink to the survey taking page to edit the response."
-
- - name: "email_address"
- type: "string"
- description: "The email address of the responder."
-
- - name: "first_name"
- type: "string"
- description: "The first name of the responder."
-
- - name: "href"
- type: "string"
- description: "The **Resource API** URL."
-
- - name: "ip_address"
- type: "string"
- description: "The IP Address the response was taken from."
-
- - name: "last_name"
- type: "string"
- description: "The last name of the responder."
-
- - name: "logic_path"
- type: "object"
- description: "The logic path taken during the survey."
- subattributes:
-
- - name: "metadata"
- type: "object"
- description: "Other associated metadata or custom values."
- subattributes:
-
- - name: "page_path"
- type: "array"
- description: "The order in which the pages were responded to."
- subattributes:
- - name: "value"
- type: "string"
- description: ""
-
- - name: "pages"
- type: "array"
- description: "Pages from the survey and their associated responses."
- subattributes:
- - name: "id"
- type: "string"
- description: "The ID of the page with responses."
- - name: "questions"
- type: "array"
- description: "The questions on that page with responses."
- subattributes:
- - name: "answers"
- type: "array"
- description: "The answers for the question with responses."
- subattributes:
- - name: "choice_id"
- type: "string"
- description: "The choice selected."
- - name: "col_id"
- type: "string"
- description: "The column selected."
- - name: "image"
- type: "string"
- description: ""
- - name: "other_id"
- type: "string"
- description: "The other text choice selected."
- - name: "row_id"
- type: "string"
- description: "The row selected."
- - name: "text"
- type: "string"
- description: "Any open ended text."
- - name: "id"
- type: "string"
- description: "ID of the question with responses."
- - name: "variable_id"
- type: "string"
- description: "ID of the random assignment variable for the question."
-
- - name: "recipient_id"
- type: "string"
- description: "The ID of the recipient."
-
- - name: "response_status"
- type: "string"
- description: |
- The status of the response: `completed`, `partial`, `overquota`, or `disqualified`.
-
- - name: "survey_id"
- type: "string"
- description: "ID of the survey the response was taken for."
- foreign-key-id: "survey-id"
-
- - name: "total_time"
- type: "integer"
- description: "Total time in seconds spent on the survey."
----
diff --git a/_integration-schemas/surveymonkey/v2/simplified_responses.md b/_integration-schemas/surveymonkey/v2/simplified_responses.md
deleted file mode 100644
index 26852be2f..000000000
--- a/_integration-schemas/surveymonkey/v2/simplified_responses.md
+++ /dev/null
@@ -1,161 +0,0 @@
----
-tap: "surveymonkey"
-version: "2"
-key: ""
-
-name: "simplified_responses"
-doc-link: "https://developer.surveymonkey.com/api/v3/"
-singer-schema: "https://github.com/singer-io/tap-surveymonkey/blob/master/tap_surveymonkey/schemas/simplified_responses.json"
-description: "This table contains a simplified version of information about your survey responses."
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "GET Response"
- doc-link: "https://developer.surveymonkey.com/api/v3/#collectors-id-responses-id-details"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The response ID."
- foreign-key-id: "response-id"
-
- - name: "date_modified"
- type: "date-time"
- description: "The date the response was last modified."
- replication-key: true
-
- - name: "analyze_url"
- type: "string"
- description: "The weblink to the analyze page to view the response."
-
- - name: "collection_mode"
- type: "string"
- description: |
- The collection mode of the response: `default`, `preview`, `data_entry`, `survey_preview`, or `edit`.
-
- - name: "collector_id"
- type: "string"
- description: "The ID of the collector the response was taken for."
-
- - name: "custom_value"
- type: "string"
- description: "The custom value associated with a response."
-
- - name: "custom_variables"
- type: "object"
- description: "The values to any available custom variables in the survey."
- subattributes:
-
- - name: "date_created"
- type: "date-time"
- description: "The date the response was created."
-
- - name: "edit_url"
- type: "string"
- description: "The weblink to the survey taking page to edit the response."
-
- - name: "href"
- type: "string"
- description: "The **Resource API** URL."
-
- - name: "ip_address"
- type: "string"
- description: "The IP Address the response was taken from."
-
- - name: "logic_path"
- type: "object"
- description: "The logic path taken during the survey."
- subattributes:
-
- - name: "metadata"
- type: "object"
- description: "Other associated metadata or custom values."
- subattributes:
-
- - name: "page_path"
- type: "array"
- description: "The order in which the pages were responded to."
- subattributes:
- - name: "value"
- type: "string"
- description: ""
-
- - name: "pages"
- type: "array"
- description: "Pages from the survey and their associated responses."
- subattributes:
- - name: "id"
- type: "string"
- description: "The ID of the page with responses."
- - name: "questions"
- type: "array"
- description: "The questions on that page with responses."
- subattributes:
- - name: "answers"
- type: "array"
- description: "The answers for the question with responses."
- subattributes:
- - name: "choice_id"
- type: "string"
- description: "The choice selected."
- - name: "col_id"
- type: "string"
- description: "The column selected."
- - name: "image"
- type: "string"
- description: ""
- - name: "other_id"
- type: "string"
- description: "The other text choice selected."
- - name: "row_id"
- type: "string"
- description: "The row selected."
- - name: "simple_text"
- type: "string"
- description: ""
- - name: "tag_data"
- type: "array"
- description: ""
- subattributes:
- - name: "value"
- type: "string"
- description: ""
- - name: "text"
- type: "string"
- description: "Any open ended text."
- - name: "family"
- type: "string"
- description: "The question family."
- - name: "heading"
- type: "string"
- description: "The question heading."
- - name: "id"
- type: "string"
- description: "ID of the question with responses."
- - name: "subtype"
- type: "string"
- description: "The question family's subtype."
- - name: "variable_id"
- type: "string"
- description: "ID of the random assignment variable for the question."
-
- - name: "recipient_id"
- type: "string"
- description: "The ID of the recipient."
-
- - name: "response_status"
- type: "string"
- description: |
- The status of the response: `completed`, `partial`, `overquota`, or `disqualified`.
-
- - name: "survey_id"
- type: "string"
- description: "ID of the survey the response was taken for."
- foreign-key-id: "survey-id"
-
- - name: "total_time"
- type: "integer"
- description: "Total time in seconds spent on the survey."
----
diff --git a/_integration-schemas/surveymonkey/v2/survey_details.md b/_integration-schemas/surveymonkey/v2/survey_details.md
deleted file mode 100644
index db587882b..000000000
--- a/_integration-schemas/surveymonkey/v2/survey_details.md
+++ /dev/null
@@ -1,450 +0,0 @@
----
-tap: "surveymonkey"
-version: "2"
-key: ""
-
-name: "survey_details"
-doc-link: "https://developer.surveymonkey.com/api/v3/"
-singer-schema: "https://github.com/singer-io/tap-surveymonkey/blob/master/tap_surveymonkey/schemas/survey_details.json"
-description: "This table contains information about your survey details."
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: "GET Surveys"
- doc-link: "https://developer.surveymonkey.com/api/v3/#surveys"
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The survey ID."
- foreign-key-id: "survey-id"
-
- - name: "date_modified"
- type: "date-time"
- description: "The date and time when survey was last modified."
- replication-key: true
-
- - name: "analyze_url"
- type: "string"
- description: "The survey's **Analyze** URL."
-
- - name: "buttons_text"
- type: "object"
- description: "The survey buttons text container."
- subattributes:
- - name: "done_button"
- type: "string"
- description: "The **Done** button text."
- - name: "exit_button"
- type: "string"
- description: "The **Exit** button text."
- - name: "next_button"
- type: "string"
- description: "The **Next** button text."
- - name: "prev_button"
- type: "string"
- description: "The **Previous** button text."
-
- - name: "category"
- type: "string"
- description: "The survey category chosen when creating the survey."
-
- - name: "collect_url"
- type: "string"
- description: "The survey's **Collect** URL."
-
- - name: "custom_variables"
- type: "object"
- description: "The dictionary of survey variables."
- subattributes:
-
- - name: "date_created"
- type: "date-time"
- description: "The date and time when survey was created"
-
- - name: "edit_url"
- type: "string"
- description: "The survey's **Edit** URL."
-
- - name: "folder_id"
- type: "string"
- description: "If applicable, the id of the folder the survey is in."
-
- - name: "footer"
- type: "boolean"
- description: "Whether or not SurveyMonkey’s footer is **not** displayed."
-
- - name: "href"
- type: "string"
- description: "The **Resource API** URL."
-
- - name: "is_owner"
- type: "boolean"
- description: ""
-
- - name: "language"
- type: "string"
- description: "The survey language."
-
- - name: "nickname"
- type: "string"
- description: "The survey nickname."
-
- - name: "page_count"
- type: "integer"
- description: "The number of pages in the survey."
-
- - name: "pages"
- type: "array"
- description: "Pages from the surveys."
- subattributes:
- - name: "description"
- type: "string"
- description: "The page description."
- - name: "href"
- type: "string"
- description: ""
- - name: "id"
- type: "string"
- description: "The page ID."
- - name: "position"
- type: "integer"
- description: "The page position."
- - name: "question_count"
- type: "integer"
- description: "The number of questions on the page."
- - name: "questions"
- type: "array"
- description: "The questions on the page."
- subattributes:
- - name: "answers"
- type: "object"
- description: "The answer to the question."
- subattributes:
- - name: "choices"
- type: "array"
- description: "The list of available choices for the user."
- subattributes:
- - name: "description"
- type: "string"
- description: "Valid values: , Extremely likely, Not at all likely."
- - name: "id"
- type: "string"
- description: "The ID of the choice"
- - name: "image"
- type: "object"
- description: "The image choice."
- subattributes:
- - name: "s3_key"
- type: "string"
- description: ""
- - name: "url"
- type: "string"
- description: "The URL of image choice."
- - name: "is_na"
- type: "boolean"
- description: ""
- - name: "position"
- type: "integer"
- description: "The position of the current choice"
- - name: "quiz_options"
- type: "object"
- description: "The object containing the quiz properties of this question, if quiz-mode is enabled."
- subattributes:
- - name: "score"
- type: "integer"
- description: "The quiz score."
- - name: "text"
- type: "string"
- description: "The choice for user selection."
- - name: "visible"
- type: "boolean"
- description: "Whether the question is visible."
- - name: "weight"
- type: "integer"
- description: "The weight value of the choice."
- - name: "cols"
- type: "array"
- description: "The list of columns in the matrix."
- subattributes:
- - name: "choices"
- type: "array"
- description: "The list of available choices for the user in dropdown menu."
- subattributes:
- - name: "id"
- type: "string"
- description: ""
- - name: "is_na"
- type: "boolean"
- description: ""
- - name: "position"
- type: "integer"
- description: "The position of choice."
- - name: "text"
- type: "string"
- description: "The choice for user selection."
- - name: "visible"
- type: "boolean"
- description: ""
- - name: "id"
- type: "string"
- description: ""
- - name: "is_na"
- type: "boolean"
- description: ""
- - name: "position"
- type: "integer"
- description: ""
- - name: "text"
- type: "string"
- description: ""
- - name: "visible"
- type: "boolean"
- description: ""
- - name: "other"
- type: "object"
- description: ""
- subattributes:
- - name: "apply_all_rows"
- type: "boolean"
- description: ""
- - name: "error_text"
- type: "string"
- description: ""
- - name: "id"
- type: "string"
- description: ""
- - name: "is_answer_choice"
- type: "boolean"
- description: ""
- - name: "num_chars"
- type: "integer"
- description: ""
- - name: "num_lines"
- type: "integer"
- description: ""
- - name: "position"
- type: "integer"
- description: ""
- - name: "text"
- type: "string"
- description: ""
- - name: "visible"
- type: "boolean"
- description: ""
- - name: "rows"
- type: "array"
- description: ""
- subattributes:
- - name: "id"
- type: "string"
- description: ""
- - name: "position"
- type: "integer"
- description: ""
- - name: "required"
- type: "boolean"
- description: ""
- - name: "text"
- type: "string"
- description: ""
- - name: "type"
- type: "string"
- description: ""
- - name: "visible"
- type: "boolean"
- description: ""
- - name: "display_options"
- type: "object"
- description: ""
- subattributes:
- - name: "show_display_number"
- type: "boolean"
- description: ""
- - name: "family"
- type: "string"
- description: ""
- - name: "forced_ranking"
- type: "boolean"
- description: ""
- - name: "headings"
- type: "array"
- description: ""
- subattributes:
- - name: "description"
- type: "string"
- description: ""
- - name: "heading"
- type: "string"
- description: ""
- - name: "image"
- type: "object"
- description: ""
- subattributes:
- - name: "s3_key"
- type: "string"
- description: ""
- - name: "url"
- type: "string"
- description: ""
- - name: "random_assignment"
- type: "object"
- description: ""
- subattributes:
- - name: "description"
- type: "string"
- description: ""
- - name: "id"
- type: "string"
- description: ""
- - name: "percent"
- type: "number"
- description: ""
- - name: "position"
- type: "integer"
- description: ""
- - name: "variable_name"
- type: "string"
- description: ""
- - name: "href"
- type: "string"
- description: ""
- - name: "id"
- type: "string"
- description: ""
- - name: "nickname"
- type: "string"
- description: ""
- - name: "position"
- type: "integer"
- description: ""
- - name: "quiz_options"
- type: "object"
- description: ""
- subattributes:
- - name: "feedback"
- type: "object"
- description: ""
- subattributes:
- - name: "correct_text"
- type: "string"
- description: ""
- - name: "incorrect_text"
- type: "string"
- description: ""
- - name: "partial_text"
- type: "string"
- description: ""
- - name: "scoring_enabled"
- type: "boolean"
- description: ""
- - name: "required"
- type: "object"
- description: ""
- subattributes:
- - name: "amount"
- type: "string"
- description: ""
- - name: "text"
- type: "string"
- description: ""
- - name: "type"
- type: "string"
- description: ""
- - name: "sorting"
- type: "object"
- description: ""
- subattributes:
- - name: "ignore_last"
- type: "boolean"
- description: ""
- - name: "type"
- type: "string"
- description: ""
- - name: "subtype"
- type: "string"
- description: ""
- - name: "validation"
- type: "object"
- description: ""
- subattributes:
- - name: "max"
- type: "string"
- description: ""
- - name: "min"
- type: "string"
- description: ""
- - name: "sum"
- type: "integer"
- description: ""
- - name: "sum_text"
- type: "string"
- description: ""
- - name: "text"
- type: "string"
- description: ""
- - name: "type"
- type: "string"
- description: ""
- - name: "visible"
- type: "boolean"
- description: ""
- - name: "title"
- type: "string"
- description: ""
-
- - name: "preview"
- type: "string"
- description: "The survey **Preview** URL."
-
- - name: "question_count"
- type: "integer"
- description: "Number of questions in survey."
-
- - name: "quiz_options"
- type: "object"
- description: "An object describing the quiz settings, if this survey is a quiz."
- subattributes:
- - name: "feedback"
- type: "object"
- description: "Text to show the user when they complete the quiz."
- subattributes:
- - name: "ranges"
- type: "array"
- description: "The ranges at which to show users certain feedback."
- subattributes:
- - name: "max"
- type: "string"
- description: "Maximum score for this feedback."
- - name: "message"
- type: "string"
- description: "Feedback message."
- - name: "min"
- type: "string"
- description: "Minimum score for this feedback."
- - name: "ranges_type"
- type: "string"
- description: |
- The type of parameters used: `percentage` or `points`.
- - name: "is_quiz_mode"
- type: "boolean"
- description: "The on/off toggle for setting this survey as a quiz."
- - name: "show_results_type"
- type: "string"
- description: |
- What to reveal to the user when they complete the quiz: `disabled`, `results_only` or `results_and_answers`."
-
- - name: "response_count"
- type: "integer"
- description: "The number of responses survey has received."
-
- - name: "summary_url"
- type: "string"
- description: "The survey's **Summary** URL."
-
- - name: "title"
- type: "string"
- description: "The survey title."
----
diff --git a/_integration-schemas/xero/contacts.md b/_integration-schemas/xero/contacts.md
deleted file mode 100644
index b7f48790c..000000000
--- a/_integration-schemas/xero/contacts.md
+++ /dev/null
@@ -1,420 +0,0 @@
----
-tap: "xero"
-version: "1"
-
-name: "contacts"
-doc-link: &api-doc https://developer.xero.com/documentation/api/contacts
-singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/contacts.json
-description: |
- The `{{ table.name }}` table contains info about the customers and suppliers you do business with.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: getContacts
- doc-link: *api-doc
-
-attributes:
- - name: "ContactID"
- type: "string"
- primary-key: true
- description: "The contact ID."
- foreign-key-id: "contact-id"
-
- - name: "UpdatedDateUTC"
- type: "date-time"
- replication-key: true
- description: "The date the contact was last updated, in UTC."
-
- - name: "ContactNumber"
- type: "string"
- description: "An identifier for the contact used in an external system. In {{ integration.display_name }}, this is the **Contact Code** field in the Contacts UI."
-
- - name: "AccountNumber"
- type: "string"
- description: "The account number associated with the contact."
-
- - name: "ContactStatus"
- type: "string"
- description: |
- The current status of the contact. Possible values are:
-
- - `ACTIVE`
- - `ARCHIVED`
-
- - name: "Name"
- type: "string"
- description: "The full name of the contact/organisation."
-
- - name: "FirstName"
- type: "string"
- description: "The first name of the contact."
-
- - name: "LastName"
- type: "string"
- description: "The last name of the contact."
-
- - name: "EmailAddress"
- type: "string"
- description: "The email address of the contact."
-
- - name: "SkypeUserName"
- type: "string"
- description: "The Skype username of the contact."
-
- - name: "BankAccountDetails"
- type: "string"
- description: "The bank account number of the contact."
-
- - name: "TaxNumber"
- type: "string"
- description: |
- The tax number of the contact. Depending on the version of {{ integration.display_name }} you're using, this could be one of the following in the {{ integration.display_name }} UI:
-
- - Australia - ABN
- - New Zealand - GST Number
- - UK - VAT Number
- - US and global - Tax ID Number
-
- - name: "AccountsReceivableTaxType"
- type: "string"
- description: "The default tax type used on AR invoices for the contact."
-
- - name: "AccountsPayableTaxType"
- type: "string"
- description: "The default tax type used on AP invoices for the contact."
-
- - name: "Addresses"
- type: "array"
- description: "Details about the contact's addresses."
- subattributes:
- - name: "Region"
- type: "string"
- description: "The region associated with the address."
-
- - name: "AddressType"
- type: "string"
- description: |
- The address type. Possible values are:
-
- - `POBOX`
- - `STREET`
- - `DELIVERY` - **Note**: This address type is not valid for `contacts`.
-
- - name: "AddressLine1"
- type: "string"
- description: "The first line of the address."
-
- - name: "AddressLine2"
- type: "string"
- description: "The second line of the address."
-
- - name: "AddressLine3"
- type: "string"
- description: "The third line of the address."
-
- - name: "AddressLine4"
- type: "string"
- description: "The fourth line of the address."
-
- - name: "AttentionTo"
- type: "string"
- description: "The name of the addressee."
-
- - name: "City"
- type: "string"
- description: "The city associated with the address."
-
- - name: "PostalCode"
- type: "string"
- description: "The postal code associated with the address."
-
- - name: "Country"
- type: "string"
- description: "The country associated with the address."
-
- - name: "Phones"
- type: "array"
- description: "Details about the contact's phone numbers."
- subattributes:
- - name: "PhoneNumber"
- type: "string"
- description: "The phone number."
-
- - name: "PhoneAreaCode"
- type: "string"
- description: "The area code associated with the phone number."
-
- - name: "PhoneCountryCode"
- type: "string"
- description: "The country code associated with the phone number."
-
- - name: "PhoneType"
- type: "string"
- description: |
- The type of phone number. Possible values are:
-
- - `DEFAULT`
- - `DDI`
- - `MOBILE`
- - `FAX`
-
- - name: "IsSupplier"
- type: "boolean"
- description: "If `true`, the contact has AP invoices entered against them."
-
- - name: "IsCustomer"
- type: "boolean"
- description: "If `true`, the contact has AR invoices entered against them."
-
- - name: "DefaultCurrency"
- type: "string"
- description: "The default currency for raising invoices against the contact."
-
- - name: "ContactPersons"
- type: "array"
- description: "Details about the contact persons associated with the contact."
- subattributes:
- - name: "FirstName"
- type: "string"
- description: "The first name of the contact person."
-
- - name: "LastName"
- type: "string"
- description: "The last name of the contact person."
-
- - name: "EmailAddress"
- type: "string"
- description: "The email address of the contact person."
-
- - name: "IncludeInEmails"
- type: "string"
- description: "If `true`, the contact person should be included on emails with invoices, etc."
-
- - name: "SalesDefaultAccountCode"
- type: "string"
- description: "The default sales account code for the contact."
-
- - name: "PurchasesDefaultAccountCode"
- type: "string"
- description: "The default purchases account code for the contact."
-
- - name: "SalesTrackingCategories"
- type: "array"
- description: "Details about the default sales tracking categories for the contact."
- subattributes:
- - name: "TrackingCategoryID"
- type: "string"
- description: "The tracking category ID."
- foreign-key-id: "tracking-category-id"
-
- - name: "Status"
- type: "string"
- description: "The status of the tracking category."
-
- - name: "TrackingCategoryName"
- type: "string"
- description: "The name of the tracking category."
-
- - name: "Name"
- type: "string"
- description: "The name of the tracking option."
-
- - name: "Option"
- type: "string"
- description: "The value of the tracking option."
-
- - name: "Options"
- type: "array"
- description: "Details about the tracking option."
- subattributes: &options
- - name: "IsActive"
- type: "boolean"
- description: "If `true`, the tracking option is active."
-
- - name: "IsDeleted"
- type: "boolean"
- description: "If `true`, the tracking option has been deleted."
-
- - name: "TrackingOptionID"
- type: "string"
- description: "The ID of the tracking option."
-
- - name: "IsArchived"
- type: "boolean"
- description: "If `true`, the tracking option has been archived."
-
- - name: "Status"
- type: "string"
- description: "The status of the tracking option."
-
- - name: "Name"
- type: "string"
- description: "The name of the tracking option."
-
- - name: "PurchasesTrackingCategories"
- type: "array"
- description: "Details about the default purchases tracking categories for the contact."
- subattributes:
- - name: "TrackingCategoryID"
- type: "string"
- description: "The tracking category ID."
- foreign-key-id: "tracking-category-id"
-
- - name: "Status"
- type: "string"
- description: "The status of the tracking category."
-
- - name: "TrackingCategoryName"
- type: "string"
- description: "The name of the tracking category."
-
- - name: "Name"
- type: "string"
- description: "The name of the tracking option."
-
- - name: "Option"
- type: "string"
- description: "The value of the tracking option."
-
- - name: "Options"
- type: "array"
- description: "Details about the tracking option."
- subattributes: *options
-
- - name: "TrackingCategoryName"
- type: "string"
- description: "The name of the Tracking Category assigned to the contact."
-
- - name: "TrackingCategoryOption"
- type: "string"
- description: "The name of the Tracking Option assigned to the contact."
-
- - name: "PaymentTerms"
- type: "array"
- description: "Details about the contact's payment terms."
- subattributes:
- - name: "Sales"
- type: "object"
- description: "Details about the payment terms used for sales transactions."
- subattributes:
- - name: "Day"
- type: "integer"
- description: "An integer used with the payment term type to indicate the calendar date of the payment term used for sales transactions."
-
- - name: "Type"
- type: "integer"
- description: |
- The payment term type used for sales transactions. Possible values are:
-
- - `DAYSAFTERBILLDATE` - _n_ day(s) after the bill date
- - `DAYSAFTERBILLMONTH`- _n_ day(s) after the bill month
- - `OFCURRENTMONTH` - Of the current month
- - `OFFOLLOWINGMONTH` - Of the following month
-
- - name: "Bills"
- type: "object"
- description: "Details about the payment terms used for bills (invoices)."
- subattributes:
- - name: "Day"
- type: "integer"
- description: "An integer used with the payment term type to indicate the calendar date of the payment term used for bills."
-
- - name: "Type"
- type: "integer"
- description: |
- The payment term type used for bills (invoices). Possible values are:
-
- - `DAYSAFTERBILLDATE` - _n_ day(s) after the bill date
- - `DAYSAFTERBILLMONTH`- _n_ day(s) after the bill month
- - `OFCURRENTMONTH` - Of the current month
- - `OFFOLLOWINGMONTH` - Of the following month
-
- - name: "ContactGroups"
- type: "array"
- description: |
- Details about the contact groups the contact is included in.
- subattributes:
- - description: |
- This will contain the same attributes as the `contact_groups` table. Refer to the [`contact_groups`](#contact_groups) table schema for details.
-
- - name: "Website"
- type: "string"
- description: "The website address of the contact."
-
- - name: "BrandingTheme"
- type: "object"
- description: |
- Details about the branding theme applied to documents sent to the contact.
- subattributes:
- - description: |
- This will contain the same attributes as the `branding_themes` table. Refer to the [`branding_themes`](#branding_themes) table schema for details.
-
- - name: "BatchPayments"
- type: "object"
- description: "Details about the batch payment details for the contact."
- subattributes:
- - name: "Details"
- type: "string"
- description: "Details about the batch payment."
-
- - name: "Reference"
- type: "string"
- description: "The reference number for the batch payment."
-
- - name: "Code"
- type: "string"
- description: "The code associated with the batch payment."
-
- - name: "BankAccountNumber"
- type: "string"
- description: "The bank account number associated with the batch payment."
-
- - name: "BankAccountName"
- type: "string"
- description: "The name of the bank account associated with the batch payment."
-
- - name: "Discount"
- type: "number"
- description: "The default discount rate for the contact."
-
- - name: "Balances"
- type: "object"
- description: "Details about the raw AR (sales invoices) and AP (bills) outstanding and overdue amounts associated with the contact."
- subattributes:
- - name: "AccountsReceivable"
- type: "object"
- description: "Details about the outstanding and/or overdue sales invoices associated with the contact, not converted to base currency."
- subattributes:
- - name: "Outstanding"
- type: "number"
- description: "The total amount of outstanding sales invoices associated with the contact."
-
- - name: "Overdue"
- type: "number"
- description: "The total amount of overdue sales invoices associated with the contact."
-
- - name: "AccountsPayable"
- type: "object"
- description: "Details about the outstanding and/or overdue bills associated with the contact, not converted to base currency."
- subattributes:
- - name: "Outstanding"
- type: "number"
- description: "The total amount of outstanding bills associated with the contact."
-
- - name: "Overdue"
- type: "number"
- description: "The total amount of overdue bills associated with the contact."
-
- - name: "HasAttachments"
- type: "boolean"
- description: "If `true`, the contact has an attachment."
-
- - name: "HasValidationErrors"
- type: "array"
- description: "Details about any validation errors associated with the contact."
- subattributes:
- - name: "Message"
- type: "string"
- description: "The validation error message."
----
\ No newline at end of file
diff --git a/_integration-schemas/xero/invoices.md b/_integration-schemas/xero/invoices.md
deleted file mode 100644
index 7ac614276..000000000
--- a/_integration-schemas/xero/invoices.md
+++ /dev/null
@@ -1,260 +0,0 @@
----
-tap: "xero"
-version: "1"
-
-name: "invoices"
-doc-link: &api-doc https://developer.xero.com/documentation/api/invoices
-singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/invoices.json
-description: |
- The `{{ table.name }}` table contains info about sales invoices, which are requests for payment for goods and services.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: getInvoices
- doc-link: *api-doc
-
-attributes:
- - name: "InvoiceID"
- type: "string"
- primary-key: true
- description: "The invoice ID."
- foreign-key-id: "invoice-id"
-
- - name: "UpdatedDateUTC"
- type: "date-time"
- replication-key: true
- description: "The date the invoice was last updated, in UTC."
-
- - name: "Type"
- type: "string"
- description: |
- The type of the invoice. Possible values are:
-
- - `ACCPAY` - A bill, or an Accounts Payable or supplier invoice
- - `ACCREC` - A sales invoice, or an Accounts Receivable or customer invoice
-
- - name: "Contact"
- type: "array"
- description: |
- Details about the contact(s) associated with the invoice.
- subattributes:
- - description: |
- This will contain the same attributes as the `contacts` table. Refer to the [`contacts`](#contacts) table schema for details.
-
- - name: "Date"
- type: "date-time"
- description: "The date the invoice was issued."
-
- - name: "DueDate"
- type: "date-time"
- description: "The date the invoice is due."
-
- - name: "Status"
- type: "string"
- description: |
- The status of the invoice. Possible values are:
-
- - `DRAFT`
- - `SUBMITTED`
- - `AUTHORISED`
- - `DELETED`
- - `VOIDED`
- - `PAID`
-
- - name: "LineAmountTypes"
- type: "string"
- description: |
- The type of amounts that the line items in the invoice contain. Possible values are:
-
- - `Exclusive` - Line items are exclusive of tax
- - `Inclusive` - Line items are inclusive tax
- - `NoTax` - Line items have no tax
- doc-link: https://developer.xero.com/documentation/api/types#LineAmountTypes
-
- - name: "LineItems"
- type: "array"
- description: "Details about the line items contained in the invoice."
- subattributes:
- - name: "LineItemID"
- type: "string"
- description: "The ID of the line item."
-
- - name: "Description"
- type: "string"
- description: "The description of the line item."
-
- - name: "Quantity"
- type: "number"
- description: "The quantity of the line item."
-
- - name: "UnitAmount"
- type: "number"
- description: "The amount of the line item."
-
- - name: "AccountCode"
- type: "string"
- description: "The account code associated with the line item."
-
- - name: "ItemCode"
- type: "string"
- description: "The code associated with the line item."
-
- - name: "TaxType"
- type: "string"
- description: "The tax type associated with the line item."
-
- - name: "LineAmount"
- type: "number"
- description: "The total of the line item, calculated as `UnitAmount x Quantity`."
-
- - name: "TaxAmount"
- type: "number"
- description: "The total tax of the line item."
-
- - name: "DiscountRate"
- type: "number"
- description: "The discount rate of the line item, if applicable."
-
- - name: "Tracking"
- type: "array"
- description: |
- Details about the tracking categories applied to the line item, if applicable.
- subattributes:
- - description: |
- This will contain the same attributes as the `tracking_categories` table. Refer to the [`tracking_categories`](#tracking_categories) table schema for details.
-
- - name: "SubTotal"
- type: "number"
- description: "The total of the invoice, excluding taxes."
-
- - name: "TotalTax"
- type: "number"
- description: "The total tax on the invoice."
-
- - name: "Total"
- type: "number"
- description: "The total of the invoice, calculated as `SubTotal + TotalTax`."
-
- - name: "TotalDiscount"
- type: "number"
- description: "The total of discounts applied to invoice line items."
-
- - name: "CurrencyCode"
- type: "string"
- description: "The currency that the invoice has been raised in."
- foreign-key-id: "currency-code"
-
- - name: "CurrencyRate"
- type: "number"
- description: "The currency rate, if the invoice is a multicurrency invoice."
-
- - name: "InvoiceNumber"
- type: "string"
- description: |
- An identifier for the invoice. The value this field contains varies depending on the invoice `Type`:
-
- - `ACCPAY` - A non-unique alpha-numeric code identifying the invoice. In the {{ integration.display_name }} UI, this displays as **Reference**.
- - `ACCREC` - A unique alpha-numeric code identifying the invoice.
-
- - name: "Reference"
- type: "string"
- description: "**Applicable only to `Type: ACCREC` invoices**. An additional reference number."
-
- - name: "BrandingThemeID"
- type: "string"
- description: "The ID of the branding theme applied to the invoice."
- foreign-key-id: "branding-theme-id"
-
- - name: "Url"
- type: "string"
- description: "The URL link to a source document."
-
- - name: "SentToContact"
- type: "boolean"
- description: "IF `true`, the invoice will display in the {{ integration.display_name }} app as 'Sent'."
-
- - name: "ExpectedPaymentDate"
- type: "date-time"
- description: "For sales invoices (`Type: ACCREC`), the expected payment date."
-
- - name: "ExpectedPaymentDateString"
- type: "date-time"
- description: "For sales invoices, the expected payment date."
-
- - name: "PlannedPaymentDate"
- type: "date-time"
- description: "For bills (`Type: ACCPAY`), the planned payment date."
-
- - name: "PlannedPaymentDateString"
- type: "date-time"
- description: "For bills, the planned payment date."
-
- - name: "HasAttachments"
- type: "boolean"
- description: "If `true`, the invoice has an attachment."
-
- - name: "Payments"
- type: "array"
- description: |
- Details about the payments associated with the invoice.
- subattributes:
- - description: |
- This will contain the same attributes as the `payments` table. Refer to the [`payments`](#payments) table schema for details.
-
- - name: "CreditNotes"
- type: "array"
- description: |
- Details about the credit notes associated with the invoice.
- subattributes:
- - description: |
- This will contain the same attributes as the `credit_notes` table. Refer to the [`credit_notes`](#credit_notes) table schema for details.
-
- - name: "Prepayments"
- type: "array"
- description: |
- Details about the prepayments associated with the invoice.
- subattributes:
- - description: |
- This will contain the same attributes as the `prepayments` table. Refer to the [`prepayments`](#prepayments) table schema for details.
-
- - name: "Overpayments"
- type: "array"
- description: |
- Details about the overpayments associated with the invoice.
- subattributes:
- - description: |
- This will contain the same attributes as the `overpayments` table. Refer to the [`overpayments`](#overpayments) table schema for details.
-
- - name: "AmountDue"
- type: "number"
- description: "The amount remaining to be paid on the invoice."
-
- - name: "AmountPaid"
- type: "number"
- description: "The sum of payments received for the invoice."
-
- - name: "FullyPaidOnDate"
- type: "date-time"
- description: "The date the invoice was fully paid."
-
- - name: "AmountCredited"
- type: "number"
- description: "The sum of all credit notes, overpayments, and prepayments applied to the invoice."
-
- - name: "DueDateString"
- type: "date-time"
- description: "The date the invoice is due."
-
- # - name: "IsDiscounted"
- # type: "boolean"
- # description: ""
-
- # - name: "HasErrors"
- # type: "boolean"
- # description: ""
-
- - name: "DateString"
- type: "date-time"
- description: "The date the invoice was issued."
----
\ No newline at end of file
diff --git a/_integration-schemas/zendesk/v1/ticket_audits.md b/_integration-schemas/zendesk/v1/ticket_audits.md
deleted file mode 100644
index 861b0d3ca..000000000
--- a/_integration-schemas/zendesk/v1/ticket_audits.md
+++ /dev/null
@@ -1,505 +0,0 @@
----
-tap: "zendesk"
-version: "1"
-
-name: "ticket_audits"
-doc-link: https://developer.zendesk.com/rest_api/docs/support/ticket_audits
-singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/ticket_audits.json
-description: |
- The `{{ table.name }}` table contains info about the activity associated with a ticket. An audit is a history of all updates to a given ticket. When a ticket is updated in {{ integration.display_name }}, an audit record is created. Each audit represents a single update to a ticket.
-
- A single audit record may include multiple event types. For example: A ticket comment, satisfaction rating, and a change event. For a full list of {{ integration.display_name }} audit event types, [refer to {{ integration.display_name }}'s documentation](https://developer.zendesk.com/rest_api/docs/support/ticket_audits#audit-events){:target="new"}.
-
- #### Replication {#ticket-audit-replication}
-
- This table uses Append-Only Incremental Replication. This means that new audit records, or updates made to existing audits, are appended as new rows to the end of the table.
-
-replication-method: "Append-Only Incremental"
-
-api-method:
- name: List all ticket audits
- doc-link: https://developer.zendesk.com/rest_api/support/core/ticket_audits#list-all-ticket-audits
-
-attributes:
- - name: "id"
- type: "integer"
- primary-key: true
- description: "The ticket audit ID."
- foreign-key-id: "ticket-audit-id"
-
- - name: "created_at"
- type: "date-time"
- replication-key: true
- description: "The time the audit was created."
-
- - name: "author_id"
- type: "integer"
- description: "The ID of the user who created the audit."
- foreign-key-id: "user-id"
-
- - name: "ticket_id"
- type: "integer"
- description: "The ID of the ticket associated with the audit."
- foreign-key-id: "ticket-id"
-
-# START METADATA OBJECT
- - name: "metadata"
- type: "object"
- description: "Metadata for the audit, custom, and system data."
- subattributes:
- # Commenting out these fields - they're not documented by Zendesk.
- # - name: "custom"
- # type:
- # description: ""
-
- # - name: "trusted"
- # type: "boolean"
- # description: ""
-
- # - name: "notifications_suppressed_for"
- # type: "array"
- # description: "[TODO]"
- # subattributes:
- # - name: "value"
- # type: "integer"
- # description: "[TODO]"
-
- - name: "flags"
- type: "array"
- description: "For `Comment` and `VoiceComment` events, the comment flags applied to the comment."
- subattributes:
- - name: "value"
- type: "integer"
- description: |
- The value of the flag applied to the comment. [Refer to {{ integration.display_name }}'s documentation for more info](https://developer.zendesk.com/rest_api/docs/support/ticket_comments#comment-flags){:target="new"}.
-
- Possible values are:
-
- - `0` - {{ integration.display_name }} is unsure the comment should be trusted.
- - `2` - The comment author was not part of the conversation.
- - `3` - The comment author wasn't signed in when the comment was submitted.
- - `4` - The comment was automatically generated.
- - `5` - The attached file was rejected because it's too big.
- - `11` - The comment was submitted by the user on behalf of the author.
-
- - name: "flags_options"
- type: "object"
- description: "For `Comment` and `VoiceComment` events, additional information about the comment flags."
- subattributes:
-
- # START METADATA > SYSTEM OBJECT
- - name: "system"
- type: "object"
- description: "Metadata about the system of the user who created the audit."
- subattributes:
- - name: "location"
- type: "string"
- description: "The user's location. For example: `Philadelphia, PA, United States`"
-
- - name: "longitude"
- type: "number"
- description: "The user's longitude."
-
- # Commenting out these fields - they're not documented by Zendesk.
-
- # - name: "message_id"
- # type: "string"
- # description:
-
- # - name: "raw_email_identifier"
- # type: "string"
- # description:
-
- # - name: "json_email_identifier"
- # type: "string"
- # description:
-
- - name: "ip_address"
- type: "string"
- description: "The user's IP address."
-
- - name: "client"
- type: "string"
- description: "The user's client, or web browser."
-
- - name: "latitude"
- type: "number"
- description: "The user's latitude."
- # END METADATA > SYSTEM OBJECT
-
-# END METADATA OBJECT
-
-# START EVENTS ARRAY
- - name: "events"
- type: "array"
- description: "The events that happened in the audit."
- subattributes:
- - name: "id"
- type: "integer"
- description: "The audit event ID."
-
- - name: "audit_id"
- type: "integer"
- description: "The ticket audit ID."
- foreign-key-id: "ticket-audit-id"
-
- - name: "type"
- type: "string"
- description: |
- The event type. Refer to [{{ integration.display_name }}'s documentation](https://developer.zendesk.com/rest_api/docs/support/ticket_audits#audit-events){:target="new"} for a full list of event types.
- doc-link: "https://developer.zendesk.com/rest_api/docs/support/ticket_audits#audit-events"
-
- # Same here.
- # - name: "macro_id"
- # type: "string"
- # description: ""
- # foreign-key-id: "macro-id"
-
- # - name: "macro_title"
- # type: "string"
- # description:
-
- # - name: "macro_deleted"
- # type: "boolean"
- # description:
-
- - name: "body"
- type: "string"
- description: |
- - For `VoiceComment` events - The comment added to the ticket.
- - For `Notification` events - The message sent to the recipients.
- - For `Cc` events - The message sent to the recipients.
- - For `SatisfactionRating` events - The user's comment posted during the rating.
- - For `OrganizationActivity` events - The message sent to the recipients.
- - For `Tweet` events - The body of the tweet.
- - For `FacebookEvent` events - The message posted to Facebook.
- - For `FacebookComment` events - The comment made by the author.
- - For `External` events - The trigger message for the target event.
- - For `LogMeInTranscript` events - The audit of the transcript.
-
- - name: "plain_body"
- type: "string"
- description: |
- - For `VoiceComment` events - The comment in plaintext format.
- - For `FacebookComment` events - The comment in plaintext format.
-
- - name: "value"
- type: "string"
- description: |
- - For `Create` events - The value of the field that was set.
- - For `Change` events - The value of the field that was changed.
-
- - name: "author_id"
- type: "integer"
- description: |
- - For `VoiceComment` events - The comment author, typically the agent assigned to the ticket.
- - For `FacebookComment` events - The ID of the comment author.
-
- - name: "html_body"
- type: "string"
- description: |
- - For `VoiceComment` events - The comment in HTML format.
- - For `FacebookComment` events - The comment in HTML format.
-
- - name: "subject"
- type: "string"
- description: |
- - For `Notification` events - The subject of the message sent to recipients.
- - For `OrganizationActivity` events - The subject of the message sent to recipients.
-
- - name: "field_name"
- type: "string"
- description: |
- - For `Create` events - The name of the field that was set.
- - For `Change` events - The name of the field that was changed.
- - For `Push` events - The data being pushed out of Zendesk.
-
- - name: "public"
- type: "boolean"
- description: |
- - For `VoiceComment` events - If `true`, the ticket requester can see the comment. Otherwise, only agents can see it.
- - For `CommentPrivacyChange` events - If `true`, the comment was public.
- - For `FacebookComment` events - If `true`, the comment was public. Otherwise, only agents can see it.
-
- - name: "previous_value"
- type: "string"
- description: |
- Applicable to `Change` events. The previous value of the field that was changed.
-
- **Note**: This field may occasionally be an `array`, which will create a subtable in your destination if nested structures are unsupported. This occurs when the `field_name` value is `tags`. [Refer to {{ integration.display_name }}'s documentation for more info](https://developer.zendesk.com/rest_api/docs/support/ticket_audits#change-event){:target="new"}.
-
- # START RECIPIENTS
- - name: "recipients"
- type: "array"
- description: |
- For `Notification`, `Cc`, `OrganizationActivity`, and `Tweet` events, the IDs of the recipients.
- subattributes:
- - name: "value"
- type: "integer"
- description: "The ID of the recipient."
- # END RECIPIENTS
-
- # START ATTACHMENTS OBJECT
- - name: "attachments"
- type: "object"
- description: |
- Details about the attachments associated with the event, if any.
- subattributes:
- - name: "id"
- type: "integer"
- description: "The attachment ID."
-
- - name: "size"
- type: "integer"
- description: "The size of the attachment in bytes."
-
- - name: "url"
- type: "string"
- description: "The API URL associated with the attachment."
-
- - name: "inline"
- type: "boolean"
- description: "If `true`, the attachment is excluded from the attachment list. Additionally, the attachment's URL can be referenced within the comment of a ticket."
-
- - name: "height"
- type: "integer"
- description: "The height of the attachment, if applicable."
-
- - name: "width"
- type: "integer"
- description: "The width of the attachment, if applicable."
-
- - name: "content_url"
- type: "string"
- description: "The full URL where the attachment image file may be downloaded."
-
- - name: "mapped_content_url"
- type: "string"
- description: "The URL where the attachment image file may be downloaded."
-
- - name: "content_type"
- type: "string"
- description: "The content type of the image. For example: `image/png`"
-
- - name: "file_name"
- type: "string"
- description: "The name of the image file."
-
- # And here.
- # - name: "html_body"
- # type: "string"
- # description:
-
- # - name: "subject"
- # type: "string"
- # description:
-
- - name: "file_name"
- type: "string"
- description: "The name of the image file."
-
- # START THUMBNAILS OBJECT
- - name: "thumbnails"
- type: "object"
- description: "Details about the thumbnails associated with image attachments."
- subattributes:
- - name: "id"
- type: "integer"
- description:
-
- - name: "size"
- type: "integer"
- description:
-
- - name: "url"
- type: "string"
- description:
-
- - name: "inline"
- type: "boolean"
- description:
-
- - name: "height"
- type: "integer"
- description:
-
- - name: "width"
- type: "integer"
- description:
-
- - name: "content_url"
- type: "string"
- description:
-
- - name: "mapped_content_url"
- type: "string"
- description:
-
- - name: "content_type"
- type: "string"
- description:
-
- - name: "file_name"
- type: "string"
- description:
- # END THUMBNAILS
-
- # END ATTACHMENTS
-
- # START VIA OBJECT
- - name: "via"
- type: "object"
- description: "Details about how the event was created."
- subattributes:
- - name: "channel"
- type: "string"
- description: "The channel used to create the event. For example: `web`, `mobile`"
-
- - name: "source"
- type: "object"
- description: "Additional details about how the event was created. Only available for some channels."
- subattributes:
-
- # START TO OBJECT
- - name: "to"
- type: "object"
- description: "If the source was an email, Twitter message/mention, phone call, etc., details about the recipient."
- subattributes:
- - name: "address"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description:
- # END TO
-
- # START FROM OBJECT
- - name: "from"
- type: "object"
- description: "Details about the source that created the event."
- subattributes:
- - name: "id"
- type: "integer"
- description:
-
- - name: "ticket_id"
- type: "integer"
- description:
- foreign-key-id: "ticket-id"
-
- - name: "revision_id"
- type: "string"
- description:
-
- - name: "title"
- type: "string"
- description:
-
- - name: "address"
- type: "string"
- description:
-
- - name: "subject"
- type: "string"
- description:
-
- - name: "deleted"
- type: "boolean"
- description:
-
- - name: "name"
- type: "string"
- description:
-
- - name: "original_recipients"
- type: "array"
- description:
- subattributes:
- - name: "value"
- type: "string"
- description:
- # END FROM
- - name: "rel"
- type: "string"
- description: "The type of relation that created the event. For example: For an event submitted through a {{ integration.display_name }} widget, this field would have a value of `zendesk_widget`."
-
- # END VIA
-
- - name: "via"
- type: "object"
- description: "Details about how the audit record was created."
- subattributes:
- - name: "channel"
- type: "string"
- description: "The channel used to create the audit record. For example: `web`, `mobile`"
-
- - name: "source"
- type: "object"
- description: "Additional details about how the audit record was created. Only available for some channels."
- subattributes:
-
- # START TO OBJECT
- - name: "to"
- type: "object"
- description: "If the source was an email, Twitter message/mention, phone call, etc., details about the recipient."
- subattributes:
- - name: "address"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description:
- # END TO
-
- # START FROM OBJECT
- - name: "from"
- type: "object"
- description: "Details about the source that created the audit record."
- subattributes:
- - name: "id"
- type: "integer"
- description:
-
- - name: "ticket_id"
- type: "integer"
- description:
- foreign-key: true
-
- - name: "revision_id"
- type: "string"
- description:
-
- - name: "title"
- type: "string"
- description:
-
- - name: "address"
- type: "string"
- description:
-
- - name: "subject"
- type: "string"
- description:
-
- - name: "deleted"
- type: "boolean"
- description:
-
- - name: "name"
- type: "string"
- description:
-
- - name: "original_recipients"
- type: "array"
- description:
- subattributes:
- - name: "value"
- type: "string"
- description:
- # END FROM
- - name: "rel"
- type: "string"
- description: "The type of relation that created the audit record. For example: For an event submitted through a {{ integration.display_name }} widget, this field would have a value of `zendesk_widget`."
----
\ No newline at end of file
diff --git a/_integration-schemas/zendesk/v1/ticket_metrics.md b/_integration-schemas/zendesk/v1/ticket_metrics.md
deleted file mode 100644
index 96461fe0c..000000000
--- a/_integration-schemas/zendesk/v1/ticket_metrics.md
+++ /dev/null
@@ -1,204 +0,0 @@
----
-tap: "zendesk"
-version: "1"
-
-name: "ticket_metrics"
-doc-link: https://developer.zendesk.com/rest_api/docs/support/ticket_metrics
-singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/ticket_metrics.json
-description: |
- The `{{ table.name }}` table contains info about the metrics associated with {{ integration.display_name }} tickets. **This table will not include records for deleted tickets.**
-
- **Note**: Retrieving ticket metric data requires {{ integration.display_name }} Admin permissions.
-
- #### Deleted ticket metrics
-
- As {{ integration.display_name }}'s API doesn't currently support returning metrics for deleted tickets, this table will not contain any metrics for deleted tickets.
-
- If you believe you're missing records, check in your {{ integration.display_name }} account to see if the missing records are for deleted tickets.
-
- For more info on how {{ integration.display_name }} handles deleting tickets, [refer to their documentation](https://support.zendesk.com/hc/en-us/articles/203690936){:target="new"}.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: List ticket metrics
- doc-link: https://developer.zendesk.com/rest_api/docs/support/ticket_metrics#list-ticket-metrics
-
-attributes:
- - name: "id"
- type: "integer"
- primary-key: true
- description: "The ticket metric ID."
- # foreign-key-id: "ticket-metric"
-
- - name: "updated_at"
- type: "date-time"
- replication-key: true
- description: "The last time the ticket metric was updated."
-
- # - name: "metric"
- # type: "string"
- # description: ""
-
- # - name: "time"
- # type: "string"
- # description: ""
-
- # - name: "instance_id"
- # type: "integer"
- # description: ""
-
- - name: "ticket_id"
- type: "integer"
- description: "The ID of the associated ticket."
- foreign-key-id: "ticket-id"
-
- # - name: "status"
- # type: "object"
- # description: "The number of minutes inside and outside of business hours."
- # subattributes:
- # - name: "calendar"
- # type: "integer"
- # description:
-
- # - name: "business"
- # type: "integer"
- # description: "The
-
- # - name: "type"
- # type: "string"
- # description: ""
-
- - name: "agent_wait_time_in_minutes"
- type: "object"
- description: "The number of minutes the agent spent waiting inside and outside of business hours."
- subattributes:
- - name: "calendar"
- type: "integer"
- description: "The number of minutes the agent spent waiting outside of business hours."
-
- - name: "business"
- type: "integer"
- description: "The number of minutes the agent spent waiting inside of business hours."
-
- - name: "assignee_stations"
- type: "integer"
- description: "The number of assignees the ticket had."
-
- - name: "created_at"
- type: "date-time"
- description: "The time the ticket metric was created."
-
- - name: "first_resolution_time_in_minutes"
- type: "object"
- description: "The number of minutes to the first resolution time inside and outside of business hours."
- subattributes:
- - name: "calendar"
- type: "integer"
- description: "The number of minutes to the first resolution time outside of business hours."
-
- - name: "business"
- type: "integer"
- description: "The number of minutes to the first resolution time inside of business hours."
-
- - name: "full_resolution_time_in_minutes"
- type: "object"
- description: "The number of minutes to the full resolution inside and outside of business hours."
- subattributes:
-
- - name: "group_stations"
- type: "integer"
- description: "The number of groups the ticket passed through."
-
- - name: "latest_comment_added_at"
- type: "date-time"
- description: "The time the last comment was added to the ticket."
-
- - name: "on_hold_time_in_minutes"
- type: "object"
- description: "The number of minutes the ticket was on hold inside and outside of business hours."
- subattributes:
- - name: "calendar"
- type: "integer"
- description: "The number of minutes the ticket was on hold outside of business hours."
-
- - name: "business"
- type: "integer"
- description: "The number of minutes the ticket was on hold inside of business hours."
-
- - name: "reopens"
- type: "integer"
- description: "The total number of times the ticket was reopened."
-
- - name: "replies"
- type: "integer"
- description: "The total number of times the ticket was replied to."
-
- - name: "reply_time_in_minutes"
- type: "object"
- description: "The number of minutes to the first reply inside and outside of business hours."
-
- - name: "requester_updated_at"
- type: "date-time"
- description: "The time the requester last updated the ticket."
-
- - name: "requester_wait_time_in_minutes"
- type: "object"
- description: "The number of minutes the requester spent waiting inside and outside of business hours."
- subattributes:
- - name: "calendar"
- type: "integer"
- description: "The number of minutes the requester spent waiting outside of business hours."
-
- - name: "business"
- type: "integer"
- description: "The number of minutes the requester spent waiting inside of business hours."
-
- - name: "reply_time_in_minutes"
- type: "object"
- description: "Number of minutes to the first reply inside and out of business hours."
- subattributes:
- - name: "calendar"
- type: "integer"
- description: "The number of minutes to the first reply outside of business hours."
-
- - name: "business"
- type: "integer"
- description: "The number of minutes to the first reply inside of business hours."
-
- - name: "full_resolution_time_in_minutes"
- type: "object"
- description: "Number of minutes to the full resolution inside and out of business hours."
- subattributes:
- - name: "calendar"
- type: "integer"
- description: "The number of minutes to the full resolution outside of business hours."
-
- - name: "business"
- type: "integer"
- description: "The number of minutes to the full resolution inside of business hours."
-
- - name: "status_updated_at"
- type: "date-time"
- description: "The time the ticket's status was last updated."
-
- - name: "url"
- type: "string"
- description: "The API URL of the ticket metric."
-
- - name: "initially_assigned_at"
- type: "date-time"
- description: "The time the ticket was initially assigned."
-
- - name: "assigned_at"
- type: "date-time"
- description: "The time the ticket was last assigned."
-
- - name: "solved_at"
- type: "date-time"
- description: "The time the ticket was solved."
-
- - name: "assignee_updated_at"
- type: "date-time"
- description: "The time the assignee last updated the ticket."
----
\ No newline at end of file
diff --git a/_integration-schemas/zendesk/v2/ticket_audits.md b/_integration-schemas/zendesk/v2/ticket_audits.md
deleted file mode 100644
index 2a1c34e1e..000000000
--- a/_integration-schemas/zendesk/v2/ticket_audits.md
+++ /dev/null
@@ -1,505 +0,0 @@
----
-tap: "zendesk"
-version: "2"
-
-name: "ticket_audits"
-doc-link: https://developer.zendesk.com/rest_api/docs/support/ticket_audits
-singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/ticket_audits.json
-description: |
- The `{{ table.name }}` table contains info about the activity associated with a ticket. An audit is a history of all updates to a given ticket. When a ticket is updated in {{ integration.display_name }}, an audit record is created. Each audit represents a single update to a ticket.
-
- A single audit record may include multiple event types. For example: A ticket comment, satisfaction rating, and a change event. For a full list of {{ integration.display_name }} audit event types, [refer to {{ integration.display_name }}'s documentation](https://developer.zendesk.com/rest_api/docs/support/ticket_audits#audit-events){:target="new"}.
-
- #### Replication {#ticket-audit-replication}
-
- This table uses Append-Only Incremental Replication. This means that new audit records, or updates made to existing audits, are appended as new rows to the end of the table.
-
-replication-method: "Append-Only Incremental"
-
-api-method:
- name: List all ticket audits
- doc-link: https://developer.zendesk.com/rest_api/support/core/ticket_audits#list-all-ticket-audits
-
-attributes:
- - name: "id"
- type: "integer"
- primary-key: true
- description: "The ticket audit ID."
- foreign-key-id: "ticket-audit-id"
-
- - name: "created_at"
- type: "date-time"
- replication-key: true
- description: "The time the audit was created."
-
- - name: "author_id"
- type: "integer"
- description: "The ID of the user who created the audit."
- foreign-key-id: "user-id"
-
- - name: "ticket_id"
- type: "integer"
- description: "The ID of the ticket associated with the audit."
- foreign-key-id: "ticket-id"
-
-# START METADATA OBJECT
- - name: "metadata"
- type: "object"
- description: "Metadata for the audit, custom, and system data."
- subattributes:
- # Commenting out these fields - they're not documented by Zendesk.
- # - name: "custom"
- # type:
- # description: ""
-
- # - name: "trusted"
- # type: "boolean"
- # description: ""
-
- # - name: "notifications_suppressed_for"
- # type: "array"
- # description: "[TODO]"
- # subattributes:
- # - name: "value"
- # type: "integer"
- # description: "[TODO]"
-
- - name: "flags"
- type: "array"
- description: "For `Comment` and `VoiceComment` events, the comment flags applied to the comment."
- subattributes:
- - name: "value"
- type: "integer"
- description: |
- The value of the flag applied to the comment. [Refer to {{ integration.display_name }}'s documentation for more info](https://developer.zendesk.com/rest_api/docs/support/ticket_comments#comment-flags){:target="new"}.
-
- Possible values are:
-
- - `0` - {{ integration.display_name }} is unsure the comment should be trusted.
- - `2` - The comment author was not part of the conversation.
- - `3` - The comment author wasn't signed in when the comment was submitted.
- - `4` - The comment was automatically generated.
- - `5` - The attached file was rejected because it's too big.
- - `11` - The comment was submitted by the user on behalf of the author.
-
- - name: "flags_options"
- type: "object"
- description: "For `Comment` and `VoiceComment` events, additional information about the comment flags."
- subattributes:
-
- # START METADATA > SYSTEM OBJECT
- - name: "system"
- type: "object"
- description: "Metadata about the system of the user who created the audit."
- subattributes:
- - name: "location"
- type: "string"
- description: "The user's location. For example: `Philadelphia, PA, United States`"
-
- - name: "longitude"
- type: "number"
- description: "The user's longitude."
-
- # Commenting out these fields - they're not documented by Zendesk.
-
- # - name: "message_id"
- # type: "string"
- # description:
-
- # - name: "raw_email_identifier"
- # type: "string"
- # description:
-
- # - name: "json_email_identifier"
- # type: "string"
- # description:
-
- - name: "ip_address"
- type: "string"
- description: "The user's IP address."
-
- - name: "client"
- type: "string"
- description: "The user's client, or web browser."
-
- - name: "latitude"
- type: "number"
- description: "The user's latitude."
- # END METADATA > SYSTEM OBJECT
-
-# END METADATA OBJECT
-
-# START EVENTS ARRAY
- - name: "events"
- type: "array"
- description: "The events that happened in the audit."
- subattributes:
- - name: "id"
- type: "integer"
- description: "The audit event ID."
-
- - name: "audit_id"
- type: "integer"
- description: "The ticket audit ID."
- foreign-key-id: "ticket-audit-id"
-
- - name: "type"
- type: "string"
- description: |
- The event type. Refer to [{{ integration.display_name }}'s documentation](https://developer.zendesk.com/rest_api/docs/support/ticket_audits#audit-events){:target="new"} for a full list of event types.
- doc-link: "https://developer.zendesk.com/rest_api/docs/support/ticket_audits#audit-events"
-
- # Same here.
- # - name: "macro_id"
- # type: "string"
- # description: ""
- # foreign-key-id: "macro-id"
-
- # - name: "macro_title"
- # type: "string"
- # description:
-
- # - name: "macro_deleted"
- # type: "boolean"
- # description:
-
- - name: "body"
- type: "string"
- description: |
- - For `VoiceComment` events - The comment added to the ticket.
- - For `Notification` events - The message sent to the recipients.
- - For `Cc` events - The message sent to the recipients.
- - For `SatisfactionRating` events - The user's comment posted during the rating.
- - For `OrganizationActivity` events - The message sent to the recipients.
- - For `Tweet` events - The body of the tweet.
- - For `FacebookEvent` events - The message posted to Facebook.
- - For `FacebookComment` events - The comment made by the author.
- - For `External` events - The trigger message for the target event.
- - For `LogMeInTranscript` events - The audit of the transcript.
-
- - name: "plain_body"
- type: "string"
- description: |
- - For `VoiceComment` events - The comment in plaintext format.
- - For `FacebookComment` events - The comment in plaintext format.
-
- - name: "value"
- type: "string"
- description: |
- - For `Create` events - The value of the field that was set.
- - For `Change` events - The value of the field that was changed.
-
- - name: "author_id"
- type: "integer"
- description: |
- - For `VoiceComment` events - The comment author, typically the agent assigned to the ticket.
- - For `FacebookComment` events - The ID of the comment author.
-
- - name: "html_body"
- type: "string"
- description: |
- - For `VoiceComment` events - The comment in HTML format.
- - For `FacebookComment` events - The comment in HTML format.
-
- - name: "subject"
- type: "string"
- description: |
- - For `Notification` events - The subject of the message sent to recipients.
- - For `OrganizationActivity` events - The subject of the message sent to recipients.
-
- - name: "field_name"
- type: "string"
- description: |
- - For `Create` events - The name of the field that was set.
- - For `Change` events - The name of the field that was changed.
- - For `Push` events - The data being pushed out of Zendesk.
-
- - name: "public"
- type: "boolean"
- description: |
- - For `VoiceComment` events - If `true`, the ticket requester can see the comment. Otherwise, only agents can see it.
- - For `CommentPrivacyChange` events - If `true`, the comment was public.
- - For `FacebookComment` events - If `true`, the comment was public. Otherwise, only agents can see it.
-
- - name: "previous_value"
- type: "string"
- description: |
- Applicable to `Change` events. The previous value of the field that was changed.
-
- **Note**: This field may occasionally be an `array`, which will create a subtable in your destination if nested structures are unsupported. This occurs when the `field_name` value is `tags`. [Refer to {{ integration.display_name }}'s documentation for more info](https://developer.zendesk.com/rest_api/docs/support/ticket_audits#change-event){:target="new"}.
-
- # START RECIPIENTS
- - name: "recipients"
- type: "array"
- description: |
- For `Notification`, `Cc`, `OrganizationActivity`, and `Tweet` events, the IDs of the recipients.
- subattributes:
- - name: "value"
- type: "integer"
- description: "The ID of the recipient."
- # END RECIPIENTS
-
- # START ATTACHMENTS OBJECT
- - name: "attachments"
- type: "object"
- description: |
- Details about the attachments associated with the event, if any.
- subattributes:
- - name: "id"
- type: "integer"
- description: "The attachment ID."
-
- - name: "size"
- type: "integer"
- description: "The size of the attachment in bytes."
-
- - name: "url"
- type: "string"
- description: "The API URL associated with the attachment."
-
- - name: "inline"
- type: "boolean"
- description: "If `true`, the attachment is excluded from the attachment list. Additionally, the attachment's URL can be referenced within the comment of a ticket."
-
- - name: "height"
- type: "integer"
- description: "The height of the attachment, if applicable."
-
- - name: "width"
- type: "integer"
- description: "The width of the attachment, if applicable."
-
- - name: "content_url"
- type: "string"
- description: "The full URL where the attachment image file may be downloaded."
-
- - name: "mapped_content_url"
- type: "string"
- description: "The URL where the attachment image file may be downloaded."
-
- - name: "content_type"
- type: "string"
- description: "The content type of the image. For example: `image/png`"
-
- - name: "file_name"
- type: "string"
- description: "The name of the image file."
-
- # And here.
- # - name: "html_body"
- # type: "string"
- # description:
-
- # - name: "subject"
- # type: "string"
- # description:
-
- - name: "file_name"
- type: "string"
- description: "The name of the image file."
-
- # START THUMBNAILS OBJECT
- - name: "thumbnails"
- type: "object"
- description: "Details about the thumbnails associated with image attachments."
- subattributes:
- - name: "id"
- type: "integer"
- description:
-
- - name: "size"
- type: "integer"
- description:
-
- - name: "url"
- type: "string"
- description:
-
- - name: "inline"
- type: "boolean"
- description:
-
- - name: "height"
- type: "integer"
- description:
-
- - name: "width"
- type: "integer"
- description:
-
- - name: "content_url"
- type: "string"
- description:
-
- - name: "mapped_content_url"
- type: "string"
- description:
-
- - name: "content_type"
- type: "string"
- description:
-
- - name: "file_name"
- type: "string"
- description:
- # END THUMBNAILS
-
- # END ATTACHMENTS
-
- # START VIA OBJECT
- - name: "via"
- type: "object"
- description: "Details about how the event was created."
- subattributes:
- - name: "channel"
- type: "string"
- description: "The channel used to create the event. For example: `web`, `mobile`"
-
- - name: "source"
- type: "object"
- description: "Additional details about how the event was created. Only available for some channels."
- subattributes:
-
- # START TO OBJECT
- - name: "to"
- type: "object"
- description: "If the source was an email, Twitter message/mention, phone call, etc., details about the recipient."
- subattributes:
- - name: "address"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description:
- # END TO
-
- # START FROM OBJECT
- - name: "from"
- type: "object"
- description: "Details about the source that created the event."
- subattributes:
- - name: "id"
- type: "integer"
- description:
-
- - name: "ticket_id"
- type: "integer"
- description:
- foreign-key-id: "ticket-id"
-
- - name: "revision_id"
- type: "string"
- description:
-
- - name: "title"
- type: "string"
- description:
-
- - name: "address"
- type: "string"
- description:
-
- - name: "subject"
- type: "string"
- description:
-
- - name: "deleted"
- type: "boolean"
- description:
-
- - name: "name"
- type: "string"
- description:
-
- - name: "original_recipients"
- type: "array"
- description:
- subattributes:
- - name: "value"
- type: "string"
- description:
- # END FROM
- - name: "rel"
- type: "string"
- description: "The type of relation that created the event. For example: For an event submitted through a {{ integration.display_name }} widget, this field would have a value of `zendesk_widget`."
-
- # END VIA
-
- - name: "via"
- type: "object"
- description: "Details about how the audit record was created."
- subattributes:
- - name: "channel"
- type: "string"
- description: "The channel used to create the audit record. For example: `web`, `mobile`"
-
- - name: "source"
- type: "object"
- description: "Additional details about how the audit record was created. Only available for some channels."
- subattributes:
-
- # START TO OBJECT
- - name: "to"
- type: "object"
- description: "If the source was an email, Twitter message/mention, phone call, etc., details about the recipient."
- subattributes:
- - name: "address"
- type: "string"
- description: ""
-
- - name: "name"
- type: "string"
- description:
- # END TO
-
- # START FROM OBJECT
- - name: "from"
- type: "object"
- description: "Details about the source that created the audit record."
- subattributes:
- - name: "id"
- type: "integer"
- description:
-
- - name: "ticket_id"
- type: "integer"
- description:
- foreign-key: true
-
- - name: "revision_id"
- type: "string"
- description:
-
- - name: "title"
- type: "string"
- description:
-
- - name: "address"
- type: "string"
- description:
-
- - name: "subject"
- type: "string"
- description:
-
- - name: "deleted"
- type: "boolean"
- description:
-
- - name: "name"
- type: "string"
- description:
-
- - name: "original_recipients"
- type: "array"
- description:
- subattributes:
- - name: "value"
- type: "string"
- description:
- # END FROM
- - name: "rel"
- type: "string"
- description: "The type of relation that created the audit record. For example: For an event submitted through a {{ integration.display_name }} widget, this field would have a value of `zendesk_widget`."
----
\ No newline at end of file
diff --git a/_integration-schemas/zendesk/v2/ticket_metrics.md b/_integration-schemas/zendesk/v2/ticket_metrics.md
deleted file mode 100644
index 637e7b910..000000000
--- a/_integration-schemas/zendesk/v2/ticket_metrics.md
+++ /dev/null
@@ -1,204 +0,0 @@
----
-tap: "zendesk"
-version: "2"
-
-name: "ticket_metrics"
-doc-link: https://developer.zendesk.com/rest_api/docs/support/ticket_metrics
-singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/ticket_metrics.json
-description: |
- The `{{ table.name }}` table contains info about the metrics associated with {{ integration.display_name }} tickets. **This table will not include records for deleted tickets.**
-
- **Note**: Retrieving ticket metric data requires {{ integration.display_name }} Admin permissions.
-
- #### Deleted ticket metrics
-
- As {{ integration.display_name }}'s API doesn't currently support returning metrics for deleted tickets, this table will not contain any metrics for deleted tickets.
-
- If you believe you're missing records, check in your {{ integration.display_name }} account to see if the missing records are for deleted tickets.
-
- For more info on how {{ integration.display_name }} handles deleting tickets, [refer to their documentation](https://support.zendesk.com/hc/en-us/articles/203690936){:target="new"}.
-
-replication-method: "Key-based Incremental"
-
-api-method:
- name: List ticket metrics
- doc-link: https://developer.zendesk.com/rest_api/docs/support/ticket_metrics#list-ticket-metrics
-
-attributes:
- - name: "id"
- type: "integer"
- primary-key: true
- description: "The ticket metric ID."
- # foreign-key-id: "ticket-metric"
-
- - name: "updated_at"
- type: "date-time"
- replication-key: true
- description: "The last time the ticket metric was updated."
-
- # - name: "metric"
- # type: "string"
- # description: ""
-
- # - name: "time"
- # type: "string"
- # description: ""
-
- # - name: "instance_id"
- # type: "integer"
- # description: ""
-
- - name: "ticket_id"
- type: "integer"
- description: "The ID of the associated ticket."
- foreign-key-id: "ticket-id"
-
- # - name: "status"
- # type: "object"
- # description: "The number of minutes inside and outside of business hours."
- # subattributes:
- # - name: "calendar"
- # type: "integer"
- # description:
-
- # - name: "business"
- # type: "integer"
- # description: "The
-
- # - name: "type"
- # type: "string"
- # description: ""
-
- - name: "agent_wait_time_in_minutes"
- type: "object"
- description: "The number of minutes the agent spent waiting inside and outside of business hours."
- subattributes:
- - name: "calendar"
- type: "integer"
- description: "The number of minutes the agent spent waiting outside of business hours."
-
- - name: "business"
- type: "integer"
- description: "The number of minutes the agent spent waiting inside of business hours."
-
- - name: "assignee_stations"
- type: "integer"
- description: "The number of assignees the ticket had."
-
- - name: "created_at"
- type: "date-time"
- description: "The time the ticket metric was created."
-
- - name: "first_resolution_time_in_minutes"
- type: "object"
- description: "The number of minutes to the first resolution time inside and outside of business hours."
- subattributes:
- - name: "calendar"
- type: "integer"
- description: "The number of minutes to the first resolution time outside of business hours."
-
- - name: "business"
- type: "integer"
- description: "The number of minutes to the first resolution time inside of business hours."
-
- - name: "full_resolution_time_in_minutes"
- type: "object"
- description: "The number of minutes to the full resolution inside and outside of business hours."
- subattributes:
-
- - name: "group_stations"
- type: "integer"
- description: "The number of groups the ticket passed through."
-
- - name: "latest_comment_added_at"
- type: "date-time"
- description: "The time the last comment was added to the ticket."
-
- - name: "on_hold_time_in_minutes"
- type: "object"
- description: "The number of minutes the ticket was on hold inside and outside of business hours."
- subattributes:
- - name: "calendar"
- type: "integer"
- description: "The number of minutes the ticket was on hold outside of business hours."
-
- - name: "business"
- type: "integer"
- description: "The number of minutes the ticket was on hold inside of business hours."
-
- - name: "reopens"
- type: "integer"
- description: "The total number of times the ticket was reopened."
-
- - name: "replies"
- type: "integer"
- description: "The total number of times the ticket was replied to."
-
- - name: "reply_time_in_minutes"
- type: "object"
- description: "The number of minutes to the first reply inside and outside of business hours."
-
- - name: "requester_updated_at"
- type: "date-time"
- description: "The time the requester last updated the ticket."
-
- - name: "requester_wait_time_in_minutes"
- type: "object"
- description: "The number of minutes the requester spent waiting inside and outside of business hours."
- subattributes:
- - name: "calendar"
- type: "integer"
- description: "The number of minutes the requester spent waiting outside of business hours."
-
- - name: "business"
- type: "integer"
- description: "The number of minutes the requester spent waiting inside of business hours."
-
- - name: "reply_time_in_minutes"
- type: "object"
- description: "Number of minutes to the first reply inside and out of business hours."
- subattributes:
- - name: "calendar"
- type: "integer"
- description: "The number of minutes to the first reply outside of business hours."
-
- - name: "business"
- type: "integer"
- description: "The number of minutes to the first reply inside of business hours."
-
- - name: "full_resolution_time_in_minutes"
- type: "object"
- description: "Number of minutes to the full resolution inside and out of business hours."
- subattributes:
- - name: "calendar"
- type: "integer"
- description: "The number of minutes to the full resolution outside of business hours."
-
- - name: "business"
- type: "integer"
- description: "The number of minutes to the full resolution inside of business hours."
-
- - name: "status_updated_at"
- type: "date-time"
- description: "The time the ticket's status was last updated."
-
- - name: "url"
- type: "string"
- description: "The API URL of the ticket metric."
-
- - name: "initially_assigned_at"
- type: "date-time"
- description: "The time the ticket was initially assigned."
-
- - name: "assigned_at"
- type: "date-time"
- description: "The time the ticket was last assigned."
-
- - name: "solved_at"
- type: "date-time"
- description: "The time the ticket was solved."
-
- - name: "assignee_updated_at"
- type: "date-time"
- description: "The time the assignee last updated the ticket."
----
\ No newline at end of file
diff --git a/_integration-schemas/zoom/v1/foreign-keys.md b/_integration-schemas/zoom/v1/foreign-keys.md
deleted file mode 100644
index b6a91f432..000000000
--- a/_integration-schemas/zoom/v1/foreign-keys.md
+++ /dev/null
@@ -1,134 +0,0 @@
----
-# -------------------------- #
-# USING THIS TEMPLATE #
-# -------------------------- #
-
-## NEED HELP USING THIS TEMPLATE? SEE:
-## https://docs-about-stitch-docs.netlify.com/reference/integration-templates/saas-foreign-keys/
-## FOR INSTRUCTIONS & REFERENCE INFO
-
-tap-reference: "zoom"
-
-version: "1"
-
-foreign-keys:
- - id: "meeting-uuid"
- table: "meetings"
- attribute: "uuid"
- all-foreign-keys:
- - table: "meeting_poll_results"
- join-on: "meeting_uuid"
- - table: "meeting_files"
- joini-on: "meeting_uuid"
- - table: "meetings"
- join-on: "uuid"
-
- - id: "meeting-id"
- table: "meeting_registrants"
- attribute: "meeting_id"
- all-foreign-keys:
- - table: "meeting_polls"
- - table: "meeting_questions"
- - table: "meeting_registrants"
- - table: "meetings"
- - table: "report_meeting_participants"
- - table: "report_meetings"
-
- # - id: "poll-id"
- # table: "meeting_polls"
- # attribute: "id"
- # all-foreign-keys:
- # - table: "meeting_polls"
- # join-on: "id"
-
- - id: "user-id"
- table: "users"
- attribute: "user_id"
- all-foreign-keys:
- - table: "users"
- join-on: "id"
- - table: "report_meeting_participants"
- - table: "report_webinar_participants"
-
- - id: "webinar-id"
- table: "webinar_panelists"
- attribute: "webinar_id"
- all-foreign-keys:
- - table: "report_webinar_participants"
- - table: "report_webinars"
- - table: "webinar_panelists"
- - table: "webinar_registrants"
- - table: "webinar_polls"
- - table: "webinar_questions"
- - table: "webinar_registrants"
- - table: "webinar_tracking_sources"
-
- - id: "webinar-uuid"
- table: "webinars"
- attribute: "webinar_uuid"
- all-foreign-keys:
- - table: "report_webinars"
- join-on: "uuid"
- - table: "webinar_absentees"
- - table: "webinar_files"
- - table: "webinar_poll_results"
- - table: "webinar_qna_results"
- - table: "webinars"
- join-on: "uuid"
-
- # - id: "absentee-id"
- # table: "webinar_absentees"
- # attribute: "id"
- # all-foreign-keys:
- # - table: "webinar_absentees"
- # join-on: "id"
-
- # - id: "participant-id"
- # table: "report_meeting_participants"
- # attribute: "id"
- # all-foreign-keys:
- # - table: "report_meeting_participants"
- # join-on: "id"
-
- # - id: "registrant-id"
- # table: "meeting_registrants"
- # attribute: "id"
- # all-foreign-keys:
- # - table: "meeting_registrants"
- # join-on: "id"
-
- # - id: "panelist-id"
- # table: "webinar_panelists"
- # attribute: "id"
- # all-foreign-keys:
- # - table: "webinar_panelists"
- # join-on: "id"
-
- # - id: "webinar-registrant-id"
- # table: "webinar_registrants"
- # attribute: "id"
- # all-foreign-keys:
- # - table: "webinar_registrants"
- # join-on: "id"
-
- # - id: "webinar-poll-id"
- # table: "webinar_polls"
- # attribute: "id"
- # all-foreign-keys:
- # - table: "webinar_polls"
- # join-on: "id"
-
- # - id: "tracking-source-id"
- # table: "webinar_tracking_sources"
- # attribute: "id"
- # all-foreign-keys:
- # - table: "webinar_tracking_sources"
- # join-on: "id"
-
- # - id: "webinar-participant-id"
- # table: "report_webinar_participants"
- # attribute: "id"
- # all-foreign-keys:
- # - table: "report_webinar_participants"
- # join-on: "id"
----
\ No newline at end of file
diff --git a/_integration-schemas/zuora/account.md b/_integration-schemas/zuora/account.md
deleted file mode 100644
index d1c9d2a87..000000000
--- a/_integration-schemas/zuora/account.md
+++ /dev/null
@@ -1,203 +0,0 @@
----
-tap: "zuora"
-version: "1"
-
-name: "account"
-doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Accounts
-#singer-schema:
-description: |
- The `{{ table.name }}` table contains information about the customer accounts in your {{ integration.display_name }} instance.
-
-replication-method: "Key-based Incremental"
-api-method:
- name:
- doc-link:
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The account ID."
- foreign-key-id: "account-id"
-
- - name: "updatedDate"
- type: "date-time"
- replication-key: true
- description: "The date when the account was last updated."
-
- - name: "accountNumber"
- type: "string"
- description: "The unique account number assigned to the account."
-
- - name: "additionalEmailAddresses"
- type: "string"
- description: "A list of additional email addresses to receive emailed invoices."
-
- - name: "allowInvoiceEdit"
- type: "boolean"
- description: "If `true`, the account's associated invoices may be edited."
-
- - name: "autoPay"
- type: "boolean"
- description: "If `true`, future payments for the account are automatically collected when they're due during a Payment Run."
-
- - name: "balance"
- type: "decimal"
- description: "The current outstanding balance for the account."
-
- - name: "batch"
- type: "string"
- description: "The batch group the account is a part of."
-
- - name: "bcdSettingOption"
- type: "string"
- description: "The billing cycle day setting option for the account."
-
- - name: "billCycleDay"
- type: "integer"
- description: "The billing cycle day (BCD) on which bill runs generate invoices for the account."
-
- - name: "billToContactId"
- type: "string"
- description: "The ID of the person to bill for the account."
- foreign-key-id: "bill-to-contact-id"
-
- - name: "communicationProfileId"
- type: "string"
- description: "The ID of the communication profile associated with the account."
- foreign-key-id: "communication-profile-id"
-
- - name: "createdById"
- type: "string"
- description: "The ID of the {{ integration.display_name }} user who created the account."
-
- - name: "createdDate"
- type: "date-time"
- description: "The date when the account was created."
-
- - name: "creditBalance"
- type: "decimal"
- description: "The total credit balance for the account."
-
- - name: "crmId"
- type: "string"
- description: "The CRM account ID for the account. Used when Salesforce is integrated with your {{ integration.display_name }} instance."
-
- - name: "currency"
- type: "string"
- description: "The currency that the customer is billed in."
-
- - name: "customerServiceRepName"
- type: "string"
- description: "The name of the account's customer service representative, if applicable."
-
- - name: "defaultPaymentMethodId"
- type: "string"
- description: "The ID of the default payment method for the account."
- foreign-key-id: "default-payment-method-id"
-
- - name: "deleted"
- type: "boolean"
- description: |
- **Only supported for the AQuA API.** If `true`, this record was deleted in {{ integration.display_name }}.
-
- - name: "invoiceDeliveryPrefsEmail"
- type: "boolean"
- description: "If `true`, the customer wants to receive invoices through email."
-
- - name: "invoiceDeliveryPrefsPrint"
- type: "boolean"
- description: "If `true`, the customer wants to receive printed invoices."
-
- - name: "invoiceTemplateId"
- type: "string"
- description: "The ID of the invoice template used for the account."
-
- - name: "lastInvoiceDate"
- type: "date-time"
- description: "The date when the previous invoice was generated for the account. This field will be `NULL` if no invoice has ever been generated for the account."
-
- - name: "name"
- type: "string"
- description: "The name of the account as displayed in the {{ integration.display_name }} UI."
-
- - name: "notes"
- type: "string"
- description: "Any comments about the account."
-
- - name: "parentAccountId"
- type: "string"
- description: "The ID of the parent customer account for this account. This field is used when customer hierarchy is enabled in {{ integration.display_name }}."
- foreign-key-id: "parent-account-id"
-
- - name: "paymentGateway"
- type: "string"
- description: "The gateway used for processing electronic payments and refunds."
-
- - name: "paymentTerm"
- type: "string"
- description: "Indicates when the customer pays for subscriptions."
-
- - name: "purchaseOrderNumber"
- type: "string"
- description: "The number of the purchase order associated with this account."
-
- - name: "salesRepName"
- type: "string"
- description: "The name of the sales representative associated with the account, if applicable."
-
- - name: "soldToContactId"
- type: "string"
- description: "The ID of the person who bought the subscription associated with the account."
- foreign-key-id: "sold-to-contact-id"
-
- - name: "status"
- type: "string"
- description: |
- The status of the account in the system. Possible values are:
-
- - `Draft`
- - `Active`
- - `Canceled`
-
- - name: "taxExemptCertificateId"
- type: "string"
- description: "The ID of the customer's tax exemption certificate."
-
- - name: "taxExemptCertificateType"
- type: "string"
- description: "The type of tax exemption certificate that the customer holds."
-
- - name: "taxExemptDescription"
- type: "string"
- description: "The description of the tax exemption certificate that the customer holds."
-
- - name: "taxExemptEffectiveDate"
- type: "date-time"
- description: "The date when the customer's tax exemption starts."
-
- - name: "taxExemptExpirationDate"
- type: "date-time"
- description: "The date when the customer's tax exemption expires."
-
- - name: "taxExemptIssuingJurisdiction"
- type: "string"
- description: "The jurisdiction in which the customer's tax exemption certificate was issued."
-
- - name: "taxExemptStatus"
- type: "string"
- description: |
- The status of the account's tax exemption. Possible values are:
-
- - `Yes`
- - `No`
- - `PendingVerification`
-
- - name: "totalInvoiceBalance"
- type: "decimal"
- description: "The total balance of the account's invoices."
-
- - name: "updatedById"
- type: "string"
- description: "The ID of the {{ integration.display_name }} user who last updated the account."
----
\ No newline at end of file
diff --git a/_integration-schemas/zuora/export.md b/_integration-schemas/zuora/export.md
deleted file mode 100644
index c0755f960..000000000
--- a/_integration-schemas/zuora/export.md
+++ /dev/null
@@ -1,96 +0,0 @@
----
-tap: "zuora"
-version: "1"
-
-name: "export"
-doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Exports
-#singer-schema:
-description: |
- The `{{ table.name }}` table contains information about export jobs and files.
-
-replication-method: "Key-based Incremental"
-api-method:
- name:
- doc-link:
-
-attributes:
- - name: "id"
- type: "string"
- primary-key: true
- description: "The export ID."
-
- - name: "updatedDate"
- type: "date-time"
- replication-key: true
- description: "The date when the export was last updated."
-
- - name: "convertToCurrencies"
- type: "string"
- description: "The currencies that transaction amounts will be converted into."
-
- - name: "createdById"
- type: "string"
- description: "The ID of the {{ integration.display_name }} user who created the export."
-
- - name: "createdDate"
- type: "date-time"
- description: "The date when the export was created."
-
- - name: "deleted"
- type: "boolean"
- description: |
- **Only supported for the AQuA API.** If `true`, this record was deleted in {{ integration.display_name }}.
-
- - name: "encrypted"
- type: "boolean"
- description: "Indicates if encrypted data source fields (ex: `paymentMethod.achAccountNumber`) have had a secure version exported."
-
- - name: "fileId"
- type: "string"
- description: "The ID of the file generated by the export query."
-
- - name: "format"
- type: "string"
- description: |
- The format that the export file used. Possible values are:
-
- - `csv`
- - `html`
- - `Excel`
-
- - name: "name"
- type: "string"
- description: "The name of the export."
-
- - name: "query"
- type: "string"
- description: |
- **Currently unsupported by the {{ integration.display_name }} API.**
-
- - name: "size"
- type: "integer"
- description: "The number of records or rows exported."
-
- - name: "status"
- type: "string"
- description: |
- The status of the export. Possible values are:
-
- - `Pending`
- - `Processing`
- - `Completed`
- - `Canceled`
- - `Failed`
-
- - name: "statusReason"
- type: "string"
- description: "The reason for the given status. Useful for troubleshooting export failures."
-
- - name: "zip"
- type: "boolean"
- description: "If `true`, the export file will be compressed into a zip file."
-
- - name: "updatedById"
- type: "string"
- description: "The ID of the {{ integration.display_name }} user who last updated the export."
----
\ No newline at end of file
diff --git a/_integration-schemas/zuora/foreign-keys.md b/_integration-schemas/zuora/foreign-keys.md
deleted file mode 100644
index 2cc7990f2..000000000
--- a/_integration-schemas/zuora/foreign-keys.md
+++ /dev/null
@@ -1,610 +0,0 @@
----
-tap-reference: "zuora"
-
-version: "1"
-
-foreign-keys:
- - id: "account-id"
- attribute: "accountId"
- table: "account"
- all-foreign-keys:
- - table: "account"
- join-on: "id"
- - table: "contactSnapshot"
- - table: "invoice"
- - table: "payment"
- - table: "refund"
- - table: "subscription"
-
- - id: "accounting-code-id"
- attribute: "accountingCode"
- table: "accountingCode"
- all-foreign-keys:
- - table: "accountingCode"
- join-on: "id"
- - table: "creditBalanceAdjustment"
- - table: "invoiceItem"
- - table: "invoiceItemAdjustment"
- - table: "productRatePlanCharge"
-
- - id: "accounting-period-id"
- attribute: "accountingPeriodId"
- table: "accountingPeriod"
- all-foreign-keys:
- - table: "accountingPeriod"
- join-on: "id"
- - table: "creditBalanceAdjustment"
- - table: "invoiceItemAdjustment"
- - table: "journalEntry"
- - table: "revenueChargeSummaryItem"
- - table: "revenueEventItemInvoiceItem"
- - table: "revenueEventItemInvoiceItemAdjustment"
- - table: "revenueScheduleItem"
- - table: "revenueScheduleItemInvoiceItem"
- - table: "revenueScheduleItemInvoiceItemAdjustment"
-
- - id: "account-receivable-accounting-code-id"
- attribute: "accountReceivableAccountingCodeId"
- table: "accountingCode"
- all-foreign-keys:
- - table: "accountingCode"
- join-on: "id"
- - table: "creditBalanceAdjustment"
- - table: "invoiceItemAdjustment"
-
- - id: "amendment-id"
- attribute: "amendmentId"
- table: "amendment"
- all-foreign-keys:
- - table: "amendment"
- join-on: "id"
- - table: "discountAppliedMetrics"
- - table: "invoiceItemAdjustment"
- - table: "processedUsage"
- - table: "ratePlan"
- - table: "ratePlanChargeTier"
- - table: "revenueChargeSummaryItem"
- - table: "revenueEventItem"
- - table: "revenueEventItemInvoiceItem"
- - table: "revenueEventItemInvoiceItemAdjustment"
- - table: "revenueScheduleItem"
- - table: "revenueScheduleItemInvoiceItem"
- - table: "revenueScheduleItemInvoiceItemAdjustment"
-
- - id: "billing-run-id"
- attribute: "billingRunId"
- table: "billingRun"
- all-foreign-keys:
- - table: "billingRun"
- join-on: "id"
- - table: "paymentRun"
-
- - id: "bill-to-contact-id"
- attribute: "billToContactId"
- table: "contact"
- all-foreign-keys:
- - table: "account"
- - table: "contact"
- join-on: "id"
- - table: "contactSnapshot"
- join-on: "contactId"
- - table: "creditBalanceAdjustment"
- - table: "discountAppliedMetrics"
- - table: "invoice"
- - table: "invoiceItemAdjustment"
- - table: "processedUsage"
- - table: "ratePlan"
- - table: "refund"
- - table: "revenueChargeSummaryItem"
- - table: "revenueEventItem"
- - table: "revenueEventItemInvoiceItem"
- - table: "revenueEventItemInvoiceItemAdjustment"
- - table: "revenueScheduleItem"
- - table: "revenueScheduleItemInvoiceItem"
- - table: "revenueScheduleItemInvoiceItemAdjustment"
-
- - id: "bill-to-contact-snapshot-id"
- attribute: "billToContactSnapshotId"
- table: "contactSnapshot"
- all-foreign-keys:
- - table: "contactSnapshot"
- join-on: "contactId"
- - table: "invoice"
-
- - id: "cash-on-account-accounting-code-id"
- attribute: "cashOnAccountAccountingCodeId"
- table: "accountingCode"
- all-foreign-keys:
- - table: "accountingCode"
- join-on: "id"
- - table: "creditBalanceAdjustment"
-
- - id: "contact-id"
- attribute: "contactId"
- table: "contact"
- all-foreign-keys:
- - table: "account"
- join-on: "billToContactId"
- - table: "account"
- join-on: "soldToContactId"
- - table: "contact"
- join-on: "id"
- - table: "contactSnapshot"
- join-on: "contactId"
- - table: "creditBalanceAdjustment"
- join-on: "billToContactId"
- - table: "creditBalanceAdjustment"
- join-on: "soldToContactId"
- - table: "discountAppliedMetrics"
- join-on: "billToContactId"
- - table: "discountAppliedMetrics"
- join-on: "soldToContactId"
- - table: "invoice"
- join-on: "billToContactId"
- - table: "invoice"
- join-on: "soldToContactId"
- - table: "invoiceItemAdjustment"
- join-on: "billToContactId"
- - table: "invoiceItemAdjustment"
- join-on: "soldToContactId"
- - table: "processedUsage"
- join-on: "billToContactId"
- - table: "processedUsage"
- join-on: "soldToContactId"
- - table: "ratePlan"
- join-on: "billToContactId"
- - table: "ratePlan"
- join-on: "soldToContactId"
- - table: "refund"
- join-on: "billToContactId"
- - table: "refund"
- join-on: "soldToContactId"
- - table: "revenueChargeSummaryItem"
- join-on: "billToContactId"
- - table: "revenueChargeSummaryItem"
- join-on: "soldToContactId"
- - table: "revenueEventItem"
- join-on: "billToContactId"
- - table: "revenueEventItem"
- join-on: "soldToContactId"
- - table: "revenueEventItemInvoiceItem"
- join-on: "billToContactId"
- - table: "revenueEventItemInvoiceItem"
- join-on: "soldToContactId"
- - table: "revenueEventItemInvoiceItemAdjustment"
- join-on: "billToContactId"
- - table: "revenueEventItemInvoiceItemAdjustment"
- join-on: "soldToContactId"
- - table: "revenueScheduleItem"
- join-on: "billToContactId"
- - table: "revenueScheduleItem"
- join-on: "soldToContactId"
- - table: "revenueScheduleItemInvoiceItem"
- join-on: "billToContactId"
- - table: "revenueScheduleItemInvoiceItem"
- join-on: "soldToContactId"
- - table: "revenueScheduleItemInvoiceItemAdjustment"
- join-on: "billToContactId"
- - table: "revenueScheduleItemInvoiceItemAdjustment"
- join-on: "soldToContactId"
-
- - id: "contact-snapshot-id"
- attribute: "contactSnapshotId"
- table: "contactSnapshot"
- all-foreign-keys:
- - table: "contactSnapshot"
- join-on: "contactId"
- - table: "invoice"
- join-on: "billToContactSnapshotId"
- - table: "invoice"
- join-on: "soldToContactSnapshotId"
-
- - id: "communication-profile-id"
- attribute: "communicationProfileId"
- table: "communicationProfile"
- all-foreign-keys:
- - table: "communicationProfile"
- join-on: "id"
- - table: "account"
-
- - attribute: "creatorInvoiceOwnerId"
- table: "account"
- all-foreign-keys:
- - table: "account"
-
- - id: "default-payment-method-id"
- attribute: "defaultPaymentMethodId"
- table: "paymentMethod"
- all-foreign-keys:
- - table: "paymentMethod"
- join-on: "id"
- - table: "account"
- - table: "invoice"
-
- - id: "deferred-revenue-accounting-code-id"
- attribute: "deferredRevenueAccountingCodeId"
- table: "accountingCode"
- all-foreign-keys:
- - table: "account"
- join-on: "id"
- - table: "revenueEventItem"
- - table: "revenueEventItemInvoiceItem"
- - table: "revenueEventItemInvoiceItemAdjustment"
- - table: "revenueScheduleItem"
- - table: "revenueScheduleItemInvoiceItem"
- - table: "revenueScheduleItemInvoiceItemAdjustment"
-
- - id: "discount-rate-plan-charge-id"
- attribute: "discountRatePlanChargeId"
- table: "ratePlanCharge"
- all-foreign-keys:
- - table: "ratePlanCharge"
- join-on: "id"
- - table: "discountAppliedMetrics"
-
- - id: "invoice-id"
- attribute: "invoiceId"
- table: "invoice"
- all-foreign-keys:
- - table: "invoice"
- join-on: "id"
- - table: "creditBalanceAdjustment"
- join-on: "invoiceId"
- - table: "creditBalanceAdjustment"
- join-on: "sourceTransactionId"
-
- - id: "invoice-item-adjustment"
- attribute: "invoiceItemAdjustmentId"
- table: "invoiceItemAdjustment"
- all-foreign-keys:
- - table: "invoiceItemAdjustment"
- join-on: "id"
- - table: "revenueEventItemInvoiceItemAdjustment"
- - table: "revenueScheduleItemInvoiceItemAdjustment"
-
- - id: "invoice-number"
- attribute: "invoiceNumber"
- table: "invoice"
- all-foreign-keys:
- - table: "invoice"
- - table: "creditBalanceAdjustment"
- - table: "creditBalanceAdjustment"
- join-on: "sourceTransactionNumber"
-
- - id: "invoice-owner-id"
- attribute: "invoiceOwnerId"
- table: "account"
- all-foreign-keys:
- - table: "account"
-
- - id: "invoice-item-id"
- attribute: "invoiceItemId"
- table: "invoiceItem"
- all-foreign-keys:
- - table: "invoiceItem"
- join-on: "id"
- - table: "processedUsage"
- - table: "revenueEventItemInvoiceItem"
- - table: "revenueEventItemInvoiceItemAdjustment"
- - table: "revenueScheduleItemInvoiceItem"
- - table: "revenueScheduleItemInvoiceItemAdjustment"
-
- - id: "journal-entry-id"
- attribute: "journalEntryId"
- table: "journalEntry"
- all-foreign-keys:
- - table: "journalEntry"
- join-on: "id"
- - table: "creditBalanceAdjustment"
- - table: "invoiceItemAdjustment"
- - table: "journalEntryItem"
- - table: "revenueEventItem"
- - table: "revenueEventItemInvoiceItem"
- - table: "revenueEventItemInvoiceItemAdjustment"
-
- - id: "journal-run-id"
- attribute: "journalRunId"
- table: "journalRun"
- all-foreign-keys:
- - table: "journalRun"
- join-on: "id"
- - table: "creditBalanceAdjustment"
- - table: "invoiceItemAdjustment"
- - table: "journalEntryItem"
- - table: "revenueEventItem"
- - table: "revenueEventItemInvoiceItem"
- - table: "revenueEventItemInvoiceItemAdjustment"
-
- - id: "parent-account-id"
- attribute: "parentAccountId"
- table: "account"
- all-foreign-keys:
- - table: "account"
- - table: "creditBalanceAdjustment"
- - table: "discountAppliedMetrics"
- - table: "invoice"
- - table: "invoiceItemAdjustment"
- - table: "processedUsage"
- - table: "refund"
- - table: "revenueChargeSummaryItem"
- - table: "revenueEventItem"
- - table: "revenueEventItemInvoiceItem"
- - table: "revenueEventItemInvoiceItemAdjustment"
- - table: "revenueScheduleItem"
- - table: "revenueScheduleItemInvoiceItem"
- - table: "revenueScheduleItemInvoiceItemAdjustment"
-
- - id: "payment-id"
- attribute: "paymentId"
- table: "payment"
- all-foreign-keys:
- - table: "payment"
- join-on: "id"
- - table: "creditBalanceAdjustment"
- - table: "creditBalanceAdjustment"
- join-on: "sourceTransactionId"
-
- - id: "payment-method-id"
- attribute: "paymentMethodId"
- table: "paymentMethod"
- all-foreign-keys:
- - table: "paymentMethod"
- join-on: "id"
- - table: "creditBalanceAdjustment"
- - table: "payment"
- - table: "refund"
-
- - id: "payment-run-id"
- attribute: "paymentRunId"
- table: "paymentRun"
- all-foreign-keys:
- - table: "paymentRun"
-
- - id: "payment-method-snapshot-id"
- attribute: "paymentMethodSnapshotId"
- table: "paymentMethodSnapshot"
- all-foreign-keys:
- - table: "paymentMethodSnapshot"
- join-on: "id"
- - table: "creditBalanceAdjustment"
- - table: "payment"
- - table: "refund"
-
- - id: "product-id"
- attribute: "productId"
- table: "product"
- all-foreign-keys:
- - table: "product"
- join-on: "id"
- - table: "discountAppliedMetrics"
- - table: "invoiceItem"
- - table: "invoiceItemAdjustment"
- - table: "processedUsage"
- - table: "productRatePlan"
- - table: "revenueChargeSummaryItem"
- - table: "revenueEventItem"
- - table: "revenueEventItemInvoiceItem"
- - table: "revenueEventItemInvoiceItemAdjustment"
- - table: "revenueScheduleItem"
- - table: "revenueScheduleItemInvoiceItem"
- - table: "revenueScheduleItemInvoiceItemAdjustment"
-
- - id: "product-rate-plan-charge-id"
- attribute: "productRatePlanChargeId"
- table: "productRatePlanCharge"
- all-foreign-keys:
- - table: "productRatePlanCharge"
- join-on: "id"
- - table: "discountAppliedMetrics"
- - table: "invoiceItem"
- - table: "invoiceItemAdjustment"
- - table: "processedUsage"
- - table: "productRatePlanChargeTier"
- - table: "revenueChargeSummaryItem"
- - table: "revenueEventItem"
- - table: "revenueEventItemInvoiceItem"
- - table: "revenueEventItemInvoiceItemAdjustment"
- - table: "revenueScheduleItem"
- - table: "revenueScheduleItemInvoiceItem"
- - table: "revenueScheduleItemInvoiceItemAdjustment"
-
- - id: "product-rate-plan-id"
- attribute: "productRatePlanId"
- table: "productRatePlan"
- all-foreign-keys:
- - table: "productRatePlan"
- join-on: "id"
- - table: "discountAppliedMetrics"
- - table: "processedUsage"
- - table: "productRatePlanCharge"
- - table: "productRatePlanChargeTier"
- - table: "ratePlan"
- - table: "ratePlanChargeTier"
- - table: "revenueChargeSummaryItem"
- - table: "revenueEventItem"
- - table: "revenueEventItemInvoiceItem"
- - table: "revenueEventItemInvoiceItemAdjustment"
- - table: "revenueScheduleItem"
- - table: "revenueScheduleItemInvoiceItem"
- - table: "revenueScheduleItemInvoiceItemAdjustment"
-
- - id: "rate-plan-charge-id"
- attribute: "ratePlanChargeId"
- table: "ratePlanCharge"
- all-foreign-keys:
- - table: "ratePlanCharge"
- join-on: "id"
- - table: "discountAppliedMetrics"
- - table: "invoiceItem"
- - table: "invoiceItemAdjustment"
- - table: "processedUsage"
- - table: "productRatePlanChargeTier"
- - table: "ratePlanChargeTier"
- - table: "revenueChargeSummaryItem"
- - table: "revenueEventItem"
- - table: "revenueEventItemInvoiceItem"
- - table: "revenueEventItemInvoiceItemAdjustment"
- - table: "revenueScheduleItem"
- - table: "revenueScheduleItemInvoiceItem"
- - table: "revenueScheduleItemInvoiceItemAdjustment"
-
- - id: "rate-plan-id"
- attribute: "ratePlanId"
- table: "ratePlan"
- all-foreign-keys:
- - table: "ratePlan"
- join-on: "id"
- - table: "discountAppliedMetrics"
- - table: "invoiceItem"
- - table: "invoiceItemAdjustment"
- - table: "processedUsage"
- - table: "productRatePlanChargeTier"
- - table: "ratePlanChargeTier"
- - table: "revenueChargeSummaryItem"
- - table: "revenueEventItem"
- - table: "revenueEventItemInvoiceItem"
- - table: "revenueEventItemInvoiceItemAdjustment"
- - table: "revenueScheduleItem"
- - table: "revenueScheduleItemInvoiceItem"
- - table: "revenueScheduleItemInvoiceItemAdjustment"
-
- - id: "recognized-revenue-accounting-code-id"
- attribute: "recognizedRevenueAccountingCodeId"
- table: "accountingCode"
- all-foreign-keys:
- - table: "accountingCode"
- join-on: "id"
- - table: "invoiceItemAdjustment"
- - table: "revenueEventItem"
- - table: "revenueEventItemInvoiceItem"
- - table: "revenueEventItemInvoiceItemAdjustment"
- - table: "revenueScheduleItem"
- - table: "revenueScheduleItemInvoiceItem"
- - table: "revenueScheduleItemInvoiceItemAdjustment"
-
- - id: "refund-id"
- attribute: "refundId"
- table: "refund"
- all-foreign-keys:
- - table: "refund"
- join-on: "id"
- - table: "creditBalanceAdjustment"
- - table: "creditBalanceAdjustment"
- join-on: "sourceTransactionId"
-
- - id: "revenue-charge-summary-id"
- attribute: "revenueChargeSummaryId"
- table: "revenueChargeSummary"
- all-foreign-keys:
- - table: "revenueChargeSummaryItem"
- - table: "revenueEventItem"
- - table: "RevenutEventItemInvoiceItem"
- - table: "revenueEventItemInvoiceItemAdjustment"
- - table: "revenueScheduleItem"
- - table: "revenueScheduleItemInvoiceItem"
- - table: "revenueScheduleItemInvoiceItemAdjustment"
-
- - id: "revenue-event-type-id"
- attribute: "revenueEventTypeId"
- table: "revenueEventType"
- all-foreign-keys:
- - table: "revenueEventType"
- join-on: "id"
-
- - id: "revenue-schedule-invoice-item-id"
- attribute: "revenueScheduleInvoiceItemId"
- table: "revenueScheduleInvoiceItem"
- all-foreign-keys:
- - table: "revenueScheduleInvoiceItem"
- join-on: "id"
-
- - id: "sales-tax-payable-accounting-code-id"
- attribute: "salesTaxPayableAccountingCodeId"
- table: "accountingCode"
- all-foreign-keys:
- - table: "accountingCode"
- join-on: "id"
- - table: "invoiceItemAdjustment"
-
- - id: "sold-to-contact-id"
- attribute: "soldToContactId"
- table: "contact"
- all-foreign-keys:
- - table: "account"
- - table: "contact"
- join-on: "id"
- - table: "contactSnapshot"
- join-on: "contactId"
- - table: "creditBalanceAdjustment"
- - table: "discountAppliedMetrics"
- - table: "invoice"
- - table: "invoiceItemAdjustment"
- - table: "processedUsage"
- - table: "ratePlan"
- - table: "refund"
- - table: "revenueChargeSummaryItem"
- - table: "revenueEventItem"
- - table: "revenueEventItemInvoiceItem"
- - table: "revenueEventItemInvoiceItemAdjustment"
- - table: "revenueScheduleItem"
- - table: "revenueScheduleItemInvoiceItem"
- - table: "revenueScheduleItemInvoiceItemAdjustment"
-
- - id: "sold-to-contact-snapshot-id"
- attribute: "soldToContactSnapshotId"
- table: "contactSnapshot"
- all-foreign-keys:
- - table: "contactSnapshot"
- join-on: "contactId"
- - table: "invoice"
-
- - id: "source-transaction-id"
- attribute: "sourceTransactionId"
- table: "creditBalanceAdjustment"
- all-foreign-keys:
- - table: "invoice"
- join-on: "id"
- - table: "payment"
- join-on: "id"
- - table: "refund"
- join-on: "id"
-
- - id: "source-transaction-number"
- attribute: "sourceTransactionNumber"
- table: "creditBalanceAdjustment"
- all-foreign-keys:
- - table: "invoice"
- join-on: "invoiceNumber"
- - table: "payment"
- join-on: "number"
- - table: "refund"
- join-on: "number"
-
- - id: "subscription-id"
- attribute: "subscriptionId"
- table: "subscription"
- all-foreign-keys:
- - table: "subscription"
- join-on: "id"
- - table: "amendment"
- - table: "discountAppliedMetrics"
- - table: "invoiceItem"
- - table: "invoiceItemAdjustment"
- - table: "ratePlan"
- - table: "ratePlanChargeTier"
- - table: "revenueChargeSummaryItem"
- - table: "revenueEventItem"
- - table: "revenueEventItemInvoiceItem"
- - table: "revenueEventItemInvoiceItemAdjustment"
- - table: "revenueScheduleItemInvoiceItemAdjustment"
-
- - id: "taxation-id"
- attribute: "taxationId"
- table: ""
- join-on: "id"
-
- - id: "usage-id"
- attribute: "usageId"
- table: "usage"
- join-on: "id"
----
\ No newline at end of file
diff --git a/_layouts/new.html b/_layouts/new.html
new file mode 100644
index 000000000..1f0cf6e43
--- /dev/null
+++ b/_layouts/new.html
@@ -0,0 +1,7 @@
+---
+layout: page
+---
+
+{% if page.layout == 'new' %}
+ {{ content }}
+{% endif %}
\ No newline at end of file
diff --git a/_layouts/saas.html b/_layouts/saas.html
index 3214eb822..5f4cc5e5d 100755
--- a/_layouts/saas.html
+++ b/_layouts/saas.html
@@ -57,7 +57,7 @@ Included Tables
dozens of tables. ex: NetSuite -->
{% if integration.schema-format == "singer" %}
- {% include integrations/templates/schemas/table-schemas.html %}
+ {% include integrations/templates/schemas/schemas.html %}
{% else %}
{% if integration.format.list == "table" %}
diff --git a/_saas-integrations/sailthru/v1/sailthru-v0.2.md b/_saas-integrations/sailthru/v1/sailthru-v1.md
similarity index 100%
rename from _saas-integrations/sailthru/v1/sailthru-v0.2.md
rename to _saas-integrations/sailthru/v1/sailthru-v1.md
diff --git a/_integration-schemas/3plcentral/customers.md b/archive/_integration-schemas/3plcentral/customers.md
similarity index 100%
rename from _integration-schemas/3plcentral/customers.md
rename to archive/_integration-schemas/3plcentral/customers.md
diff --git a/_integration-schemas/3plcentral/foreign-keys.md b/archive/_integration-schemas/3plcentral/foreign-keys.md
similarity index 100%
rename from _integration-schemas/3plcentral/foreign-keys.md
rename to archive/_integration-schemas/3plcentral/foreign-keys.md
diff --git a/_integration-schemas/3plcentral/inventory.md b/archive/_integration-schemas/3plcentral/inventory.md
similarity index 100%
rename from _integration-schemas/3plcentral/inventory.md
rename to archive/_integration-schemas/3plcentral/inventory.md
diff --git a/_integration-schemas/3plcentral/locations.md b/archive/_integration-schemas/3plcentral/locations.md
similarity index 100%
rename from _integration-schemas/3plcentral/locations.md
rename to archive/_integration-schemas/3plcentral/locations.md
diff --git a/_integration-schemas/3plcentral/orders.md b/archive/_integration-schemas/3plcentral/orders.md
similarity index 100%
rename from _integration-schemas/3plcentral/orders.md
rename to archive/_integration-schemas/3plcentral/orders.md
diff --git a/_integration-schemas/3plcentral/sku_items.md b/archive/_integration-schemas/3plcentral/sku_items.md
similarity index 100%
rename from _integration-schemas/3plcentral/sku_items.md
rename to archive/_integration-schemas/3plcentral/sku_items.md
diff --git a/_integration-schemas/3plcentral/stock_details.md b/archive/_integration-schemas/3plcentral/stock_details.md
similarity index 100%
rename from _integration-schemas/3plcentral/stock_details.md
rename to archive/_integration-schemas/3plcentral/stock_details.md
diff --git a/_integration-schemas/3plcentral/stock_summaries.md b/archive/_integration-schemas/3plcentral/stock_summaries.md
similarity index 100%
rename from _integration-schemas/3plcentral/stock_summaries.md
rename to archive/_integration-schemas/3plcentral/stock_summaries.md
diff --git a/_integration-schemas/activecampaign/v1/account_contacts.md b/archive/_integration-schemas/activecampaign/v1/account_contacts.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/account_contacts.md
rename to archive/_integration-schemas/activecampaign/v1/account_contacts.md
diff --git a/_integration-schemas/activecampaign/v1/account_custom_field_values.md b/archive/_integration-schemas/activecampaign/v1/account_custom_field_values.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/account_custom_field_values.md
rename to archive/_integration-schemas/activecampaign/v1/account_custom_field_values.md
diff --git a/_integration-schemas/activecampaign/v1/account_custom_fields.md b/archive/_integration-schemas/activecampaign/v1/account_custom_fields.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/account_custom_fields.md
rename to archive/_integration-schemas/activecampaign/v1/account_custom_fields.md
diff --git a/_integration-schemas/activecampaign/v1/accounts.md b/archive/_integration-schemas/activecampaign/v1/accounts.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/accounts.md
rename to archive/_integration-schemas/activecampaign/v1/accounts.md
diff --git a/_integration-schemas/activecampaign/v1/activities.md b/archive/_integration-schemas/activecampaign/v1/activities.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/activities.md
rename to archive/_integration-schemas/activecampaign/v1/activities.md
diff --git a/_integration-schemas/activecampaign/v1/addresses.md b/archive/_integration-schemas/activecampaign/v1/addresses.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/addresses.md
rename to archive/_integration-schemas/activecampaign/v1/addresses.md
diff --git a/_integration-schemas/activecampaign/v1/automation_blocks.md b/archive/_integration-schemas/activecampaign/v1/automation_blocks.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/automation_blocks.md
rename to archive/_integration-schemas/activecampaign/v1/automation_blocks.md
diff --git a/_integration-schemas/activecampaign/v1/automations.md b/archive/_integration-schemas/activecampaign/v1/automations.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/automations.md
rename to archive/_integration-schemas/activecampaign/v1/automations.md
diff --git a/_integration-schemas/activecampaign/v1/bounce_logs.md b/archive/_integration-schemas/activecampaign/v1/bounce_logs.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/bounce_logs.md
rename to archive/_integration-schemas/activecampaign/v1/bounce_logs.md
diff --git a/_integration-schemas/activecampaign/v1/brandings.md b/archive/_integration-schemas/activecampaign/v1/brandings.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/brandings.md
rename to archive/_integration-schemas/activecampaign/v1/brandings.md
diff --git a/_integration-schemas/activecampaign/v1/calendars.md b/archive/_integration-schemas/activecampaign/v1/calendars.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/calendars.md
rename to archive/_integration-schemas/activecampaign/v1/calendars.md
diff --git a/_integration-schemas/activecampaign/v1/campaign_links.md b/archive/_integration-schemas/activecampaign/v1/campaign_links.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/campaign_links.md
rename to archive/_integration-schemas/activecampaign/v1/campaign_links.md
diff --git a/_integration-schemas/activecampaign/v1/campaign_lists.md b/archive/_integration-schemas/activecampaign/v1/campaign_lists.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/campaign_lists.md
rename to archive/_integration-schemas/activecampaign/v1/campaign_lists.md
diff --git a/_integration-schemas/activecampaign/v1/campaign_messages.md b/archive/_integration-schemas/activecampaign/v1/campaign_messages.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/campaign_messages.md
rename to archive/_integration-schemas/activecampaign/v1/campaign_messages.md
diff --git a/_integration-schemas/activecampaign/v1/campaigns.md b/archive/_integration-schemas/activecampaign/v1/campaigns.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/campaigns.md
rename to archive/_integration-schemas/activecampaign/v1/campaigns.md
diff --git a/_integration-schemas/activecampaign/v1/configs.md b/archive/_integration-schemas/activecampaign/v1/configs.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/configs.md
rename to archive/_integration-schemas/activecampaign/v1/configs.md
diff --git a/_integration-schemas/activecampaign/v1/contact_automations.md b/archive/_integration-schemas/activecampaign/v1/contact_automations.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/contact_automations.md
rename to archive/_integration-schemas/activecampaign/v1/contact_automations.md
diff --git a/_integration-schemas/activecampaign/v1/contact_conversions.md b/archive/_integration-schemas/activecampaign/v1/contact_conversions.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/contact_conversions.md
rename to archive/_integration-schemas/activecampaign/v1/contact_conversions.md
diff --git a/_integration-schemas/activecampaign/v1/contact_custom_field_options.md b/archive/_integration-schemas/activecampaign/v1/contact_custom_field_options.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/contact_custom_field_options.md
rename to archive/_integration-schemas/activecampaign/v1/contact_custom_field_options.md
diff --git a/_integration-schemas/activecampaign/v1/contact_custom_field_rels.md b/archive/_integration-schemas/activecampaign/v1/contact_custom_field_rels.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/contact_custom_field_rels.md
rename to archive/_integration-schemas/activecampaign/v1/contact_custom_field_rels.md
diff --git a/_integration-schemas/activecampaign/v1/contact_custom_field_values.md b/archive/_integration-schemas/activecampaign/v1/contact_custom_field_values.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/contact_custom_field_values.md
rename to archive/_integration-schemas/activecampaign/v1/contact_custom_field_values.md
diff --git a/_integration-schemas/activecampaign/v1/contact_custom_fields.md b/archive/_integration-schemas/activecampaign/v1/contact_custom_fields.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/contact_custom_fields.md
rename to archive/_integration-schemas/activecampaign/v1/contact_custom_fields.md
diff --git a/_integration-schemas/activecampaign/v1/contact_data.md b/archive/_integration-schemas/activecampaign/v1/contact_data.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/contact_data.md
rename to archive/_integration-schemas/activecampaign/v1/contact_data.md
diff --git a/_integration-schemas/activecampaign/v1/contact_deals.md b/archive/_integration-schemas/activecampaign/v1/contact_deals.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/contact_deals.md
rename to archive/_integration-schemas/activecampaign/v1/contact_deals.md
diff --git a/_integration-schemas/activecampaign/v1/contact_emails.md b/archive/_integration-schemas/activecampaign/v1/contact_emails.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/contact_emails.md
rename to archive/_integration-schemas/activecampaign/v1/contact_emails.md
diff --git a/_integration-schemas/activecampaign/v1/contact_lists.md b/archive/_integration-schemas/activecampaign/v1/contact_lists.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/contact_lists.md
rename to archive/_integration-schemas/activecampaign/v1/contact_lists.md
diff --git a/_integration-schemas/activecampaign/v1/contact_tags.md b/archive/_integration-schemas/activecampaign/v1/contact_tags.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/contact_tags.md
rename to archive/_integration-schemas/activecampaign/v1/contact_tags.md
diff --git a/_integration-schemas/activecampaign/v1/contacts.md b/archive/_integration-schemas/activecampaign/v1/contacts.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/contacts.md
rename to archive/_integration-schemas/activecampaign/v1/contacts.md
diff --git a/_integration-schemas/activecampaign/v1/conversion_triggers.md b/archive/_integration-schemas/activecampaign/v1/conversion_triggers.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/conversion_triggers.md
rename to archive/_integration-schemas/activecampaign/v1/conversion_triggers.md
diff --git a/_integration-schemas/activecampaign/v1/conversions.md b/archive/_integration-schemas/activecampaign/v1/conversions.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/conversions.md
rename to archive/_integration-schemas/activecampaign/v1/conversions.md
diff --git a/_integration-schemas/activecampaign/v1/deal_activities.md b/archive/_integration-schemas/activecampaign/v1/deal_activities.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/deal_activities.md
rename to archive/_integration-schemas/activecampaign/v1/deal_activities.md
diff --git a/_integration-schemas/activecampaign/v1/deal_custom_field_values.md b/archive/_integration-schemas/activecampaign/v1/deal_custom_field_values.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/deal_custom_field_values.md
rename to archive/_integration-schemas/activecampaign/v1/deal_custom_field_values.md
diff --git a/_integration-schemas/activecampaign/v1/deal_custom_fields.md b/archive/_integration-schemas/activecampaign/v1/deal_custom_fields.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/deal_custom_fields.md
rename to archive/_integration-schemas/activecampaign/v1/deal_custom_fields.md
diff --git a/_integration-schemas/activecampaign/v1/deal_group_users.md b/archive/_integration-schemas/activecampaign/v1/deal_group_users.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/deal_group_users.md
rename to archive/_integration-schemas/activecampaign/v1/deal_group_users.md
diff --git a/_integration-schemas/activecampaign/v1/deal_groups.md b/archive/_integration-schemas/activecampaign/v1/deal_groups.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/deal_groups.md
rename to archive/_integration-schemas/activecampaign/v1/deal_groups.md
diff --git a/_integration-schemas/activecampaign/v1/deal_stages.md b/archive/_integration-schemas/activecampaign/v1/deal_stages.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/deal_stages.md
rename to archive/_integration-schemas/activecampaign/v1/deal_stages.md
diff --git a/_integration-schemas/activecampaign/v1/deals.md b/archive/_integration-schemas/activecampaign/v1/deals.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/deals.md
rename to archive/_integration-schemas/activecampaign/v1/deals.md
diff --git a/_integration-schemas/activecampaign/v1/ecommerce_connections.md b/archive/_integration-schemas/activecampaign/v1/ecommerce_connections.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/ecommerce_connections.md
rename to archive/_integration-schemas/activecampaign/v1/ecommerce_connections.md
diff --git a/_integration-schemas/activecampaign/v1/ecommerce_customers.md b/archive/_integration-schemas/activecampaign/v1/ecommerce_customers.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/ecommerce_customers.md
rename to archive/_integration-schemas/activecampaign/v1/ecommerce_customers.md
diff --git a/_integration-schemas/activecampaign/v1/ecommerce_order_activities.md b/archive/_integration-schemas/activecampaign/v1/ecommerce_order_activities.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/ecommerce_order_activities.md
rename to archive/_integration-schemas/activecampaign/v1/ecommerce_order_activities.md
diff --git a/_integration-schemas/activecampaign/v1/ecommerce_order_products.md b/archive/_integration-schemas/activecampaign/v1/ecommerce_order_products.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/ecommerce_order_products.md
rename to archive/_integration-schemas/activecampaign/v1/ecommerce_order_products.md
diff --git a/_integration-schemas/activecampaign/v1/ecommerce_orders.md b/archive/_integration-schemas/activecampaign/v1/ecommerce_orders.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/ecommerce_orders.md
rename to archive/_integration-schemas/activecampaign/v1/ecommerce_orders.md
diff --git a/_integration-schemas/activecampaign/v1/email_activities.md b/archive/_integration-schemas/activecampaign/v1/email_activities.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/email_activities.md
rename to archive/_integration-schemas/activecampaign/v1/email_activities.md
diff --git a/archive/_integration-schemas/activecampaign/v1/foreign-keys.md b/archive/_integration-schemas/activecampaign/v1/foreign-keys.md
new file mode 100644
index 000000000..880ec620f
--- /dev/null
+++ b/archive/_integration-schemas/activecampaign/v1/foreign-keys.md
@@ -0,0 +1,346 @@
+---
+# -------------------------- #
+# USING THIS TEMPLATE #
+# -------------------------- #
+
+## NEED HELP USING THIS TEMPLATE? SEE:
+## https://docs-about-stitch-docs.netlify.com/reference/integration-templates/saas-foreign-keys/
+## FOR INSTRUCTIONS & REFERENCE INFO
+
+tap-reference: "activecampaign"
+
+version: "1"
+
+foreign-keys:
+ - id: "custom-field-id"
+ table: "account_custom_fields"
+ attribute: "id"
+ all-foreign-keys:
+ - table: "account_custom_fields"
+ join-on: "id"
+ - table: "account_custom_field_values"
+ join-on: "custom_field_id"
+
+ - id: "address-id"
+ table: "addresses"
+ attribute: "id"
+ all-foreign-keys:
+ - table: "addresses"
+ join-on: "id"
+ - table: "campaigns"
+ join-on: "addressid"
+ - table: "forms"
+ join-on: "addressid"
+
+ - id: "campaign-id"
+ table: "campaigns"
+ attribute: "id"
+ all-foreign-keys:
+ - table: "campaigns"
+ join-on: "id"
+ - table: "campaign_links"
+ join-on: "campaignid"
+ - table: "bounce_logs"
+ join-on: "campaignid"
+ - table: "campaign_lists"
+ join-on: "campaignid"
+ - table: "campaign_messages"
+ join-on: "campaignid"
+ - table: "contact_lists"
+ join-on: "campaign"
+
+ - id: "deal-custom-field-id"
+ table: "deal_custom_fields"
+ attribute: "id"
+ all-foreign-keys:
+ - table: "deal_custom_fields"
+ join-on: "id"
+ - table: "deal_custom_field_values"
+ join-on: "custom_field_id"
+
+ - id: "deal-id"
+ table: "deals"
+ attribute: "id"
+ all-foreign-keys:
+ - table: "deals"
+ join-on: "id"
+ - table: "deal_custom_field_values"
+ join-on: "deal_id"
+ - table: "contact_deals"
+ join-on: "deal"
+ - table: "forms"
+ join-on: "deals"
+ - table: "deal_activities"
+ join-on: "deal"
+ - table: "email_activities"
+ join-on: "deal"
+ - table: "contact_emails"
+ join-on: "deal"
+
+ - id: "stage-id"
+ table: "deal_stages"
+ attribute: "id"
+ all-foreign-keys:
+ - table: "deal_stages"
+ join-on: "id"
+ - table: "deals"
+ join-on: "stage"
+ - table: "deal_groups"
+ join-on: "stages"
+ - table: "deal_activities"
+ join-on: "stage"
+
+ - id: "pipeline-id"
+ table: "deal_groups"
+ attribute: "id"
+ all-foreign-keys:
+ - table: "deal_groups"
+ join-on: "id"
+ - table: "deals"
+ join-on: "group"
+ - table: "deal_stages"
+ join-on: "group"
+ - table: "deal_group_users"
+ join-on: "deal_group"
+
+ - id: "account-id"
+ table: "accounts"
+ attribute: "id"
+ all-foreign-keys:
+ - table: "accounts"
+ join-on: "id"
+ - table: "deals"
+ join-on: "account"
+ - table: "contact_emails"
+ join-on: "account"
+ - table: "email_activities"
+ join-on: "account"
+ - table: "account_contacts"
+ join-on: "account"
+ - table: "account_custom_field_values"
+ join-on: "account_id"
+
+ - id: "contact-id"
+ table: "contacts"
+ attribute: "id"
+ all-foreign-keys:
+ - table: "contacts"
+ join-on: "id"
+ - table: "deals"
+ join-on: "contact"
+ - table: "forms"
+ join-on: "contacts"
+ - table: "bounce_logs"
+ join-on: "contact"
+ - table: "contact_data"
+ join-on: "contact"
+ - table: "contact_emails"
+ join-on: "contact"
+ - table: "contact_lists"
+ join-on: "contact"
+ - table: "contact_tags"
+ join-on: "contact"
+ - table: "contact_conversions"
+ join-on: "contact"
+ - table: "email_activities"
+ join-on: "contact"
+ - table: "account_contacts"
+ join-on: "contact"
+ - table: "contact_automations"
+ join-on: "contact"
+ - table: "contact_custom_field_values"
+ join-on: "contact"
+ - table: "contact_deals"
+ join-on: "contact"
+
+ - id: "connection-id"
+ table: "ecommerce_connections"
+ attribute: "id"
+ all-foreign-keys:
+ - table: "ecommerce_connections"
+ join-on: "id"
+ - table: "ecommerce_customers"
+ join-on: "connectionid"
+ - table: "ecommerce_orders"
+ join-on: "connectionid"
+ - table: "ecommerce_orders"
+ join-on: "connectionid"
+ - table: "ecommerce_order_products"
+ join-on: "connectionid"
+ - table: "ecommerce_order_activities"
+ join-on: "connectionid"
+
+ - id: "customer-id"
+ table: "ecommerce_customers"
+ attribute: "id"
+ all-foreign-keys:
+ - table: "ecommerce_customers"
+ join-on: "id"
+ - table: "ecommerce_orders"
+ join-on: "customer"
+ - table: "ecommerce_order_activities"
+ join-on: "customerid"
+
+ - id: "order-id"
+ table: "ecommerce_orders"
+ attribute: "id"
+ all-foreign-keys:
+ - table: "ecommerce_orders"
+ join-on: "id"
+ - table: "ecommerce_order_products"
+ join-on: "orderid"
+ - table: "ecommerce_order_activities"
+ join-on: "orderid"
+ - table: "contact_custom_field_options"
+ join-on: "orderid"
+ - table: "deal_stages"
+ join-on: "order"
+
+ - id: "user-id"
+ table: "users"
+ attribute: "id"
+ all-foreign-keys:
+ - table: "users"
+ join-on: "id"
+ - table: "forms"
+ join-on: "userid"
+ - table: "lists"
+ join-on: "userid"
+ - table: "messages"
+ join-on: "userid"
+ - table: "saved_responses"
+ join-on: "last_sent_user_id"
+ - table: "tasks"
+ join-on: "user"
+ - table: "templates"
+ join-on: "userid"
+ - table: "activities"
+ join-on: "userid"
+ - table: "campaign_lists"
+ join-on: "userid"
+ - table: "configs"
+ join-on: "userid"
+ - table: "contact_emails"
+ join-on: "userid"
+ - table: "deal_activities"
+ join-on: "userid"
+ - table: "deal_group_users"
+ join-on: "user"
+ - table: "email_activities"
+ join-on: "userid"
+ - table: "sms"
+ join-on: "userid"
+ - table: "automations"
+ join-on: "userid"
+ - table: "calendars"
+ join-on: "userid"
+ - table: "campaigns"
+ join-on: "userid"
+
+ - id: "task-type-id"
+ table: "task_types"
+ attribute: "id"
+ all-foreign-keys:
+ - table: "task_types"
+ join-on: "id"
+ - table: "tasks"
+ join-on: "deal_task_type"
+
+ - id: "list-id"
+ table: "lists"
+ attribute: "id"
+ all-foreign-keys:
+ - table: "lists"
+ join-on: "id"
+ - table: "webhooks"
+ join-on: "listid"
+ - table: "campaign_lists"
+ join-on: "listid"
+ - table: "contact_lists"
+ join-on: "list"
+
+ - id: "message-id"
+ table: "messages"
+ attribute: "id"
+ all-foreign-keys:
+ - table: "messages"
+ join-on: "id"
+ - table: "bounce_logs"
+ join-on: "messageid"
+ - table: "campaign_messages"
+ join-on: "messageid"
+ - table: "contact_emails"
+ join-on: "messageid"
+ - table: "contact_lists"
+ join-on: "message"
+ - table: "campaign_links"
+ join-on: "messageid"
+
+ - id: "tag-id"
+ table: "tags"
+ attribute: "id"
+ all-foreign-keys:
+ - table: "tags"
+ join-on: "id"
+ - table: "contact_tags"
+ join-on: "tag"
+
+ - id: "conversion-id"
+ table: "conversions"
+ attribute: "id"
+ all-foreign-keys:
+ - table: "conversions"
+ join-on: "id"
+ - table: "contact_conversions"
+ join-on: "conversion"
+ - table: "conversion_triggers"
+ join-on: "conversion"
+
+ - id: "conversion-trigger-id"
+ table: "conversion_triggers"
+ attribute: "id"
+ all-foreign-keys:
+ - table: "conversion_triggers"
+ join-on: "id"
+ - table: "contact_conversions"
+ join-on: "conversiontrigger"
+
+ - id: "automation-id"
+ table: "automations"
+ attribute: "id"
+ all-foreign-keys:
+ - table: "automations"
+ join-on: "id"
+ - table: "deal_activities"
+ join-on: "automation"
+ - table: "goals"
+ join-on: "automation"
+ - table: "site_messages"
+ join-on: "automation"
+ - table: "sms"
+ join-on: "automation"
+ - table: "automation_blocks"
+ join-on: "automation"
+ - table: "campaigns"
+ join-on: "automation"
+ - table: "contact_automations"
+ join-on: "automation"
+
+ - id: "segment-id"
+ table: "segments"
+ attribute: "id"
+ all-foreign-keys:
+ - table: "segments"
+ join-on: "id"
+ - table: "campaigns"
+ join-on: "segmentid"
+
+ - id: "form-id"
+ table: "forms"
+ attribute: "id"
+ all-foreign-keys:
+ - table: "form"
+ join-on: "id"
+ - table: "contact_lists"
+ join-on: "form"
+---
\ No newline at end of file
diff --git a/_integration-schemas/activecampaign/v1/forms.md b/archive/_integration-schemas/activecampaign/v1/forms.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/forms.md
rename to archive/_integration-schemas/activecampaign/v1/forms.md
diff --git a/_integration-schemas/activecampaign/v1/goals.md b/archive/_integration-schemas/activecampaign/v1/goals.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/goals.md
rename to archive/_integration-schemas/activecampaign/v1/goals.md
diff --git a/_integration-schemas/activecampaign/v1/groups.md b/archive/_integration-schemas/activecampaign/v1/groups.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/groups.md
rename to archive/_integration-schemas/activecampaign/v1/groups.md
diff --git a/_integration-schemas/activecampaign/v1/lists.md b/archive/_integration-schemas/activecampaign/v1/lists.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/lists.md
rename to archive/_integration-schemas/activecampaign/v1/lists.md
diff --git a/_integration-schemas/activecampaign/v1/messages.md b/archive/_integration-schemas/activecampaign/v1/messages.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/messages.md
rename to archive/_integration-schemas/activecampaign/v1/messages.md
diff --git a/_integration-schemas/activecampaign/v1/saved_responses.md b/archive/_integration-schemas/activecampaign/v1/saved_responses.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/saved_responses.md
rename to archive/_integration-schemas/activecampaign/v1/saved_responses.md
diff --git a/_integration-schemas/activecampaign/v1/scores.md b/archive/_integration-schemas/activecampaign/v1/scores.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/scores.md
rename to archive/_integration-schemas/activecampaign/v1/scores.md
diff --git a/_integration-schemas/activecampaign/v1/segments.md b/archive/_integration-schemas/activecampaign/v1/segments.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/segments.md
rename to archive/_integration-schemas/activecampaign/v1/segments.md
diff --git a/_integration-schemas/activecampaign/v1/site_messages.md b/archive/_integration-schemas/activecampaign/v1/site_messages.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/site_messages.md
rename to archive/_integration-schemas/activecampaign/v1/site_messages.md
diff --git a/_integration-schemas/activecampaign/v1/sms.md b/archive/_integration-schemas/activecampaign/v1/sms.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/sms.md
rename to archive/_integration-schemas/activecampaign/v1/sms.md
diff --git a/_integration-schemas/activecampaign/v1/tags.md b/archive/_integration-schemas/activecampaign/v1/tags.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/tags.md
rename to archive/_integration-schemas/activecampaign/v1/tags.md
diff --git a/_integration-schemas/activecampaign/v1/task_types.md b/archive/_integration-schemas/activecampaign/v1/task_types.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/task_types.md
rename to archive/_integration-schemas/activecampaign/v1/task_types.md
diff --git a/_integration-schemas/activecampaign/v1/tasks.md b/archive/_integration-schemas/activecampaign/v1/tasks.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/tasks.md
rename to archive/_integration-schemas/activecampaign/v1/tasks.md
diff --git a/_integration-schemas/activecampaign/v1/templates.md b/archive/_integration-schemas/activecampaign/v1/templates.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/templates.md
rename to archive/_integration-schemas/activecampaign/v1/templates.md
diff --git a/_integration-schemas/activecampaign/v1/users.md b/archive/_integration-schemas/activecampaign/v1/users.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/users.md
rename to archive/_integration-schemas/activecampaign/v1/users.md
diff --git a/_integration-schemas/activecampaign/v1/webhooks.md b/archive/_integration-schemas/activecampaign/v1/webhooks.md
similarity index 100%
rename from _integration-schemas/activecampaign/v1/webhooks.md
rename to archive/_integration-schemas/activecampaign/v1/webhooks.md
diff --git a/_integration-schemas/adroll/v1/ad_groups.md b/archive/_integration-schemas/adroll/v1/ad_groups.md
similarity index 100%
rename from _integration-schemas/adroll/v1/ad_groups.md
rename to archive/_integration-schemas/adroll/v1/ad_groups.md
diff --git a/_integration-schemas/adroll/v1/ad_reports.md b/archive/_integration-schemas/adroll/v1/ad_reports.md
similarity index 100%
rename from _integration-schemas/adroll/v1/ad_reports.md
rename to archive/_integration-schemas/adroll/v1/ad_reports.md
diff --git a/_integration-schemas/adroll/v1/ads.md b/archive/_integration-schemas/adroll/v1/ads.md
similarity index 100%
rename from _integration-schemas/adroll/v1/ads.md
rename to archive/_integration-schemas/adroll/v1/ads.md
diff --git a/_integration-schemas/adroll/v1/advertisables.md b/archive/_integration-schemas/adroll/v1/advertisables.md
similarity index 100%
rename from _integration-schemas/adroll/v1/advertisables.md
rename to archive/_integration-schemas/adroll/v1/advertisables.md
diff --git a/_integration-schemas/adroll/v1/campaigns.md b/archive/_integration-schemas/adroll/v1/campaigns.md
similarity index 100%
rename from _integration-schemas/adroll/v1/campaigns.md
rename to archive/_integration-schemas/adroll/v1/campaigns.md
diff --git a/_integration-schemas/adroll/v1/foreign-keys.md b/archive/_integration-schemas/adroll/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/adroll/v1/foreign-keys.md
rename to archive/_integration-schemas/adroll/v1/foreign-keys.md
diff --git a/_integration-schemas/adroll/v1/segments.md b/archive/_integration-schemas/adroll/v1/segments.md
similarity index 100%
rename from _integration-schemas/adroll/v1/segments.md
rename to archive/_integration-schemas/adroll/v1/segments.md
diff --git a/_integration-schemas/amplitude/v1/events.md b/archive/_integration-schemas/amplitude/v1/events.md
similarity index 100%
rename from _integration-schemas/amplitude/v1/events.md
rename to archive/_integration-schemas/amplitude/v1/events.md
diff --git a/_integration-schemas/amplitude/v1/merge_ids.md b/archive/_integration-schemas/amplitude/v1/merge_ids.md
similarity index 100%
rename from _integration-schemas/amplitude/v1/merge_ids.md
rename to archive/_integration-schemas/amplitude/v1/merge_ids.md
diff --git a/_integration-schemas/appsflyer/in_app_events.md b/archive/_integration-schemas/appsflyer/in_app_events.md
similarity index 100%
rename from _integration-schemas/appsflyer/in_app_events.md
rename to archive/_integration-schemas/appsflyer/in_app_events.md
diff --git a/_integration-schemas/appsflyer/installations.md b/archive/_integration-schemas/appsflyer/installations.md
similarity index 100%
rename from _integration-schemas/appsflyer/installations.md
rename to archive/_integration-schemas/appsflyer/installations.md
diff --git a/_integration-schemas/asana/v1/foreign-keys.md b/archive/_integration-schemas/asana/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/asana/v1/foreign-keys.md
rename to archive/_integration-schemas/asana/v1/foreign-keys.md
diff --git a/_integration-schemas/asana/v1/projects.md b/archive/_integration-schemas/asana/v1/projects.md
similarity index 100%
rename from _integration-schemas/asana/v1/projects.md
rename to archive/_integration-schemas/asana/v1/projects.md
diff --git a/_integration-schemas/asana/v1/tags.md b/archive/_integration-schemas/asana/v1/tags.md
similarity index 100%
rename from _integration-schemas/asana/v1/tags.md
rename to archive/_integration-schemas/asana/v1/tags.md
diff --git a/_integration-schemas/asana/v1/tasks.md b/archive/_integration-schemas/asana/v1/tasks.md
similarity index 100%
rename from _integration-schemas/asana/v1/tasks.md
rename to archive/_integration-schemas/asana/v1/tasks.md
diff --git a/_integration-schemas/asana/v1/users.md b/archive/_integration-schemas/asana/v1/users.md
similarity index 100%
rename from _integration-schemas/asana/v1/users.md
rename to archive/_integration-schemas/asana/v1/users.md
diff --git a/_integration-schemas/asana/v1/workspaces.md b/archive/_integration-schemas/asana/v1/workspaces.md
similarity index 100%
rename from _integration-schemas/asana/v1/workspaces.md
rename to archive/_integration-schemas/asana/v1/workspaces.md
diff --git a/_integration-schemas/asana/v2/foreign-keys.md b/archive/_integration-schemas/asana/v2/foreign-keys.md
similarity index 100%
rename from _integration-schemas/asana/v2/foreign-keys.md
rename to archive/_integration-schemas/asana/v2/foreign-keys.md
diff --git a/_integration-schemas/asana/v2/portfolios.md b/archive/_integration-schemas/asana/v2/portfolios.md
similarity index 100%
rename from _integration-schemas/asana/v2/portfolios.md
rename to archive/_integration-schemas/asana/v2/portfolios.md
diff --git a/_integration-schemas/asana/v2/projects.md b/archive/_integration-schemas/asana/v2/projects.md
similarity index 100%
rename from _integration-schemas/asana/v2/projects.md
rename to archive/_integration-schemas/asana/v2/projects.md
diff --git a/_integration-schemas/asana/v2/sections.md b/archive/_integration-schemas/asana/v2/sections.md
similarity index 100%
rename from _integration-schemas/asana/v2/sections.md
rename to archive/_integration-schemas/asana/v2/sections.md
diff --git a/_integration-schemas/asana/v2/stories.md b/archive/_integration-schemas/asana/v2/stories.md
similarity index 100%
rename from _integration-schemas/asana/v2/stories.md
rename to archive/_integration-schemas/asana/v2/stories.md
diff --git a/_integration-schemas/asana/v2/tags.md b/archive/_integration-schemas/asana/v2/tags.md
similarity index 100%
rename from _integration-schemas/asana/v2/tags.md
rename to archive/_integration-schemas/asana/v2/tags.md
diff --git a/_integration-schemas/asana/v2/tasks.md b/archive/_integration-schemas/asana/v2/tasks.md
similarity index 100%
rename from _integration-schemas/asana/v2/tasks.md
rename to archive/_integration-schemas/asana/v2/tasks.md
diff --git a/_integration-schemas/asana/v2/teams.md b/archive/_integration-schemas/asana/v2/teams.md
similarity index 100%
rename from _integration-schemas/asana/v2/teams.md
rename to archive/_integration-schemas/asana/v2/teams.md
diff --git a/_integration-schemas/asana/v2/users.md b/archive/_integration-schemas/asana/v2/users.md
similarity index 100%
rename from _integration-schemas/asana/v2/users.md
rename to archive/_integration-schemas/asana/v2/users.md
diff --git a/_integration-schemas/asana/v2/workspaces.md b/archive/_integration-schemas/asana/v2/workspaces.md
similarity index 100%
rename from _integration-schemas/asana/v2/workspaces.md
rename to archive/_integration-schemas/asana/v2/workspaces.md
diff --git a/_integration-schemas/autopilot/contacts.md b/archive/_integration-schemas/autopilot/contacts.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/autopilot/contacts.md
rename to archive/_integration-schemas/autopilot/contacts.md
diff --git a/_integration-schemas/autopilot/foreign-keys.md b/archive/_integration-schemas/autopilot/foreign-keys.md
similarity index 100%
rename from _integration-schemas/autopilot/foreign-keys.md
rename to archive/_integration-schemas/autopilot/foreign-keys.md
diff --git a/_integration-schemas/autopilot/lists.md b/archive/_integration-schemas/autopilot/lists.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/autopilot/lists.md
rename to archive/_integration-schemas/autopilot/lists.md
diff --git a/_integration-schemas/autopilot/lists_contacts.md b/archive/_integration-schemas/autopilot/lists_contacts.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/autopilot/lists_contacts.md
rename to archive/_integration-schemas/autopilot/lists_contacts.md
diff --git a/_integration-schemas/autopilot/smart_segments.md b/archive/_integration-schemas/autopilot/smart_segments.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/autopilot/smart_segments.md
rename to archive/_integration-schemas/autopilot/smart_segments.md
diff --git a/_integration-schemas/autopilot/smart_segments_contacts.md b/archive/_integration-schemas/autopilot/smart_segments_contacts.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/autopilot/smart_segments_contacts.md
rename to archive/_integration-schemas/autopilot/smart_segments_contacts.md
diff --git a/_integration-schemas/bigcommerce/coupons.md b/archive/_integration-schemas/bigcommerce/coupons.md
similarity index 100%
rename from _integration-schemas/bigcommerce/coupons.md
rename to archive/_integration-schemas/bigcommerce/coupons.md
diff --git a/_integration-schemas/bigcommerce/customers.md b/archive/_integration-schemas/bigcommerce/customers.md
similarity index 100%
rename from _integration-schemas/bigcommerce/customers.md
rename to archive/_integration-schemas/bigcommerce/customers.md
diff --git a/_integration-schemas/bigcommerce/foreign-keys.md b/archive/_integration-schemas/bigcommerce/foreign-keys.md
similarity index 100%
rename from _integration-schemas/bigcommerce/foreign-keys.md
rename to archive/_integration-schemas/bigcommerce/foreign-keys.md
diff --git a/_integration-schemas/bigcommerce/orders.md b/archive/_integration-schemas/bigcommerce/orders.md
similarity index 99%
rename from _integration-schemas/bigcommerce/orders.md
rename to archive/_integration-schemas/bigcommerce/orders.md
index 61d9528dc..5567377db 100644
--- a/_integration-schemas/bigcommerce/orders.md
+++ b/archive/_integration-schemas/bigcommerce/orders.md
@@ -617,7 +617,7 @@ attributes:
- name: "country_iso2"
type: "string"
- description: *country-iso2
+ description: ""
- name: "email"
type: "string"
diff --git a/_integration-schemas/bigcommerce/products.md b/archive/_integration-schemas/bigcommerce/products.md
similarity index 100%
rename from _integration-schemas/bigcommerce/products.md
rename to archive/_integration-schemas/bigcommerce/products.md
diff --git a/archive/_integration-schemas/bing-ads/v1/accounts.md b/archive/_integration-schemas/bing-ads/v1/accounts.md
new file mode 100644
index 000000000..3369bc890
--- /dev/null
+++ b/archive/_integration-schemas/bing-ads/v1/accounts.md
@@ -0,0 +1,126 @@
+---
+tap: "bing-ads"
+version: "1"
+
+name: "accounts"
+doc-link: https://docs.microsoft.com/en-us/bingads/customer-management-service/account
+
+description: |
+ The `accounts` table contains high-level information about each of the ad accounts you selected during setup. Each row in this table corresponds to a single account.
+
+ [This is a **Core Object** table](#replication).
+
+replication-method: "Key-based Incremental"
+api-method:
+ name:
+ doc-link: https://docs.microsoft.com/en-us/bingads/customer-management-service/account
+
+attributes:
+ - name: "id"
+ type: "integer"
+ primary-key: true
+ description: "The account ID."
+ foreign-key-id: "account-id"
+
+ - name: "lastModifiedTime"
+ type: "date-time"
+ primary-key: true
+ replication-key: true
+ description: |
+ The time (in UTC) the account was last updated.
+
+ **Note**: The date and time value reflects the date and time at the Bing server, not the client.
+
+ - name: "accountFinancialStatus"
+ type: "string"
+ description: "The financial status of the account."
+
+ - name: "accountLifeCycleStatus"
+ type: "string"
+ description: "The status of the account."
+
+ - name: "accountType"
+ type: "string"
+ description: "The type of the account."
+
+ - name: "billToCustomerId"
+ type: "integer"
+ description: "The ID of the customer that is billed for the charges that the account generates. This is either the reseller that manages the account on behalf of the owner or the ID of the customer that owns the account."
+
+ - name: "countryCode"
+ type: "string"
+ description: "The code of the country/region in which the account operates. See [Microsoft's documentation](https://docs.microsoft.com/en-us/bingads/guides/ad-languages) for a list of country code values."
+
+ - name: "currencyType"
+ type: "string"
+ description: "The type of currency used to settle the account."
+
+ - name: "forwardCompatibilityMap"
+ type: "array"
+ description: "Details about the forward compatibility settings for the account."
+ doc-link: https://docs.microsoft.com/en-us/bingads/customer-management-service/keyvaluepairofstringstring
+ subattributes:
+ - name: "keyValuePairOfStringString"
+ type: "array"
+ description: "Key and value pairs for the account's forward compatibility settings."
+ subattributes:
+ - name: "key"
+ type: "string"
+ description: "The name of the setting."
+
+ - name: "value"
+ type: "string"
+ description: "The value of the setting."
+
+ - name: "language"
+ type: "string"
+ description: "The language used to render the invoice for the account, if invoice is used as the payment method."
+
+ - name: "lastModifiedByUserId"
+ type: "integer"
+ description: "The ID of the user who last updated the account's information."
+
+ - name: "name"
+ type: "string"
+ description: "The name of the account."
+
+ - name: "number"
+ type: "string"
+ description: "The account number generated by Bing Ads used to identify the account in the Bing Ads web app. This value is alphanumeric."
+
+ - name: "parentCustomerId"
+ type: "integer"
+ description: "The ID of the customer that owns the account."
+
+ - name: "pauseReason"
+ type: "integer"
+ description: |
+ Indicates the reason the account is paused. Possible values include:
+
+ - `1` - A user paused the account
+ - `2` - The billing service paused the account
+ - `4` - The user and billing service paused the account
+
+ - name: "paymentMethodId"
+ type: "integer"
+ description: "The ID of the payment instrument used to settle the account."
+
+ - name: "paymentMethodtype"
+ type: "string"
+ description: "The type of payment instrument used to settle the account."
+
+ - name: "primaryUserId"
+ type: "integer"
+ description: "The ID of the account manager who is primarily responsible for managing the account. By default, this value is set to the reseller's user ID."
+
+ - name: "timestamp"
+ type: "timestamp"
+ description: "The timestamp value used internally by Bing Ads to reconcile updates between account update and delete operations."
+
+ - name: "timezone"
+ type: "string"
+ description: |
+ The default timezone value to use for campaigns in this account.
+
+ If left unspecified when the account is created, this value will default to `PacificTimeUSCanadaTijuana`.
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/bing-ads/v1/ad_groups.md b/archive/_integration-schemas/bing-ads/v1/ad_groups.md
new file mode 100644
index 000000000..eb40c2e09
--- /dev/null
+++ b/archive/_integration-schemas/bing-ads/v1/ad_groups.md
@@ -0,0 +1,140 @@
+---
+tap: "bing-ads"
+version: "1"
+
+name: "ad_groups"
+doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/adgroup
+
+description: |
+ The `ad_groups` table contains info about the ad groups associated with the campaigns in your Bing Ads account.
+
+ [This is a **Core Object** table](#replication).
+
+replication-method: "Full Table"
+
+api-method:
+ name: getAdGroupsbyCampaignId
+ doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/getadgroupsbycampaignid
+
+attributes:
+ - name: "id"
+ type: "integer"
+ primary-key: true
+ description: "The ad group ID."
+ foreign-key-id: "ad-group-id"
+
+ - name: "adDistribution"
+ type: "string"
+ description: "Determines whether the ads within the ad group will be displayed on the content distribution channel, search distribution channel, or both."
+
+ - name: "adRotation"
+ type: "string"
+ description: |
+ Determines how often ads in the ad group show in relation to each other. If there are multiple ads within an ad group, the ads will rotate because only one ad from your account can show at a time.
+
+ Possible values are:
+
+ - `OptimizeForClicks` - In this rotation, Bing Ads will predominantly show ads that have the highest click-through rate, or CTR.
+ - `RotateAdsEvenly` - In this rotation, Bing ads will rotate between ads on an equal basis.
+
+ - name: "biddingScheme"
+ type: "string"
+ description: "The bid strategy type for how bids are managed."
+
+ - name: "contentMatchBid"
+ type: "number"
+ description: "The bid to use when the keywords that the service extracts from the content page and the ad group's keywords match by using an exact match comparison."
+
+ - name: "endDate"
+ type: "date-time"
+ description: "The date that the ads in the ad group will expire."
+
+ - name: "forwardCompatibilityMap"
+ type: "array"
+ description: "Details about the forward compatibility settings for the ad group."
+ doc-link: https://docs.microsoft.com/en-us/bingads/customer-management-service/keyvaluepairofstringstring
+ subattributes:
+ - name: "keyValuePairOfStringString"
+ type: "array"
+ description: "Key and value pairs for the ad group's forward compatibility settings."
+ subattributes:
+ - name: "key"
+ type: "string"
+ description: "The name of the setting."
+
+ - name: "value"
+ type: "string"
+ description: "The value of the setting."
+
+ - name: "language"
+ type: "string"
+ description: "The language of the ads and keywords in the ad group."
+
+ - name: "name"
+ type: "string"
+ description: "The name of the ad group."
+
+ - name: "nativeBidAdjustment"
+ type: "integer"
+ description: "The percent amount by which to adjust the bid for intent ads above or below the base ad group or keyword bid."
+
+ - name: "network"
+ type: "string"
+ description: |
+ The search networks where the ads will display. Possible values are:
+
+ - `OwnedAndOperatedAndSyndicatedSearch`
+ - `OwnedAndOperatedOnly`
+ - `SyndicatedSearchOnly`
+
+ - name: "pricingModel"
+ type: "string"
+ description: |
+ The pricing model for the ad group. The only supported pricing model in Bing Ads is based on cost per click, or CPC.
+
+ **This field has been deprecated by Bing Ads.**
+
+ - name: "remarketingTargetingSetting"
+ type: "string"
+ description: |
+ The targeting setting that is applicable for all audiences, or custom audiences and remarketing lists associated with the ad group.
+
+ Possible values are:
+
+ - `TargetAndBid`- Ads are shown only to people included in the audience
+ - `BidOnly` - Ads can be shown to everyone, but the bid adjustment will apply to people included in the audience
+
+ - name: "searchBid"
+ type: "number"
+ description: "The default bid to use when the user's query and the ad group's keywords match by using either a broad, exact or phrase match comparison."
+
+ - name: "settings"
+ type: "array"
+ description: "Details about the settings applied to the ad group."
+ subattributes:
+ - name: "type"
+ type: "string"
+ description: "The type of setting. For example: `ShoppingSetting`"
+ doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/setting
+
+ - name: "startDate"
+ type: "date-time"
+ description: "The date that the ads in the ad group can begin serving."
+
+ - name: "status"
+ type: "string"
+ description: |
+ The status of the ad group. Possible values are:
+
+ - `Active`
+ - `Expired`
+ - `Paused`
+
+ - name: "trackingUrlTemplate"
+ type: "string"
+ description: "The tracking template to use as a default for all URLs in your ad group."
+
+ - name: "urlCustomParameters"
+ type: "array"
+ description: "The custom collection of key and value parameters for URL tracking."
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/bing-ads/v1/ad_performance_report.md b/archive/_integration-schemas/bing-ads/v1/ad_performance_report.md
new file mode 100644
index 000000000..ae1281d02
--- /dev/null
+++ b/archive/_integration-schemas/bing-ads/v1/ad_performance_report.md
@@ -0,0 +1,52 @@
+---
+tap: "bing-ads"
+version: "1"
+
+name: "ad_performance_report"
+doc-link: https://docs.microsoft.com/en-us/bingads/reporting-service/adperformancereportcolumn#values
+
+description: |
+ The `ad_performance_report` table contains performance info about ads, including clicks and conversions. This data can be used to identify and improve under-performing ads.
+
+ [This is a **Report** table](#replication). See the **Replication** section for information on how data is replicated and loaded for this table.
+
+replication-method: "Append-Only (Incremental)"
+
+
+attributes:
+ - name: "accountId"
+ type: "integer"
+ primary-key: true
+ description: "The Bing Ads-assigned ID of the account."
+ foreign-key-id: "accounts-id"
+
+ - name: "{{ system-column.report-date-time }}"
+ type: "date-time"
+ primary-key: true
+ description: "The start time of the Stitch replication job that replicated this record."
+
+ - name: "gregorianDate"
+ type: "date"
+ primary-key: true
+ replication-key: true
+ description: "The day the record pertains to."
+
+ - name: "adGroupId"
+ type: "integer"
+ description: "The ID of the ad group the ad is a part of."
+ foreign-key-id: "ad-group-id"
+
+ - name: "adId"
+ type: "integer"
+ description: "The ad ID."
+ foreign-key-id: "ad-id"
+
+ - name: "campaignId"
+ type: "integer"
+ description: "The ID of the campaign the ad is a part of."
+ foreign-key-id: "campaign-id"
+
+ - name: "Custom Fields"
+ description: |
+ Columns selected by you. For descriptions of available columns, refer to [Microsoft's documentation]({{ table.doc-link }}).
+---
\ No newline at end of file
diff --git a/_integration-schemas/bing-ads/v1/adgroup_performance_report.md b/archive/_integration-schemas/bing-ads/v1/adgroup_performance_report.md
similarity index 96%
rename from _integration-schemas/bing-ads/v1/adgroup_performance_report.md
rename to archive/_integration-schemas/bing-ads/v1/adgroup_performance_report.md
index e4772603d..ec35fc8d5 100644
--- a/_integration-schemas/bing-ads/v1/adgroup_performance_report.md
+++ b/archive/_integration-schemas/bing-ads/v1/adgroup_performance_report.md
@@ -4,7 +4,7 @@ version: "1"
name: "adgroup_performance_report"
doc-link: https://docs.microsoft.com/en-us/bingads/reporting-service/adgroupperformancereportcolumn#values
-singer-schema:
+
description: |
The `adgroup_performance_report` table contains performance data for ad groups, aggregated by day.
@@ -12,9 +12,7 @@ description: |
replication-method: "Append-Only (Incremental)"
attribution-window: true
-api-method:
- name:
- doc-link:
+
attributes:
- name: "accountId"
diff --git a/archive/_integration-schemas/bing-ads/v1/ads.md b/archive/_integration-schemas/bing-ads/v1/ads.md
new file mode 100644
index 000000000..21448ff71
--- /dev/null
+++ b/archive/_integration-schemas/bing-ads/v1/ads.md
@@ -0,0 +1,118 @@
+---
+tap: "bing-ads"
+version: "1"
+
+name: "ads"
+doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/ad
+
+description: |
+ The `ads` table contains info about the following ad types:
+
+ - `AppInstall`
+ - `DynamicSearch`
+ - `ExpandedText`
+ - `Product`
+ - `Text`
+ - `Image`
+
+ [This is a **Core Object** table](#replication).
+
+replication-method: "Full Table"
+api-method:
+ name: "getAdsByAdGroupId"
+ doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/getadsbyadgroupid
+
+attributes:
+ - name: "id"
+ type: "integer"
+ primary-key: true
+ description: "The ad ID."
+ foreign-key-id: "ad-id"
+
+ - name: "adFormatPreference"
+ type: "string"
+ description: |
+ Indicates whether or not the ad copy is shown to users as a search or native ad. Search ads tend to be written as a call to action, whereas intent ads are written in a more informational style.
+
+ Possible values are:
+
+ - `Native` - Ad will be eligible only for the native ad format
+ - `All` - Ad will be eligible for both search and native ad formats
+
+ - name: "devicePreference"
+ type: "integer"
+ description: "Determines the device preference for showing the ad."
+
+ - name: "editorialStatus"
+ type: "string"
+ description: "The editorial review status of the ad, which indicates whether the ad is pending review, approved, or disapproved."
+
+ - name: "finalAppUrls"
+ type: "string"
+ description: "The last or final URL where a user who clicks on an in-app ad is taken."
+ subattributes:
+ - name: "string"
+ type: "array"
+ description: "The app landing page URL."
+ subattributes:
+ - name: "value"
+ type: "string"
+ description: "The app landing page URL."
+
+ - name: "finalMobileUrls"
+ type: "array"
+ description: "The last or final URL where a user who clicks on a mobile ad is taken."
+ subattributes:
+ - name: "string"
+ type: "array"
+ description: "The mobile landing page URL. This is only supported for text ads."
+ subattributes:
+ - name: "value"
+ type: "string"
+ description: "The mobile landing page URL. This is only supported for text ads."
+
+ - name: "finalUrls"
+ type: "string"
+ description: "The last or final URL where a user is taken, whether or not the click to final URL path included any redirects."
+ subattributes:
+ - name: "string"
+ type: "array"
+ description: "The last or final URL where a user is taken, whether or not the click to final URL path included any redirects."
+ subattributes:
+ - name: "value"
+ type: "string"
+ description: "The last or final URL where a user is taken, whether or not the click to final URL path included any redirects."
+
+ - name: "forwardCompatibilityMap"
+ type: "array"
+ description: "Details about the forward compatibility settings for the ad."
+ doc-link: https://docs.microsoft.com/en-us/bingads/customer-management-service/keyvaluepairofstringstring
+ subattributes:
+ - name: "keyValuePairOfStringString"
+ type: "array"
+ description: "Key and value pairs for the ad's forward compatibility settings."
+ subattributes:
+ - name: "key"
+ type: "string"
+ description: "The name of the setting."
+
+ - name: "value"
+ type: "string"
+ description: "The value of the setting."
+
+ - name: "status"
+ type: "string"
+ description: "The status of the ad. Possible values are `Active` and `Paused`."
+
+ - name: "trackingUrlTemplate"
+ type: "string"
+ description: "The tracking template to use as a default for all landing page URLs."
+
+ - name: "type"
+ type: "string"
+ description: "The type of the ad."
+
+ - name: "urlCustomParameters"
+ type: "string"
+ description: "The custom collection of key and value parameters for URL tracking."
+---
\ No newline at end of file
diff --git a/_integration-schemas/bing-ads/v1/age_gender_performance_report.md b/archive/_integration-schemas/bing-ads/v1/age_gender_performance_report.md
similarity index 92%
rename from _integration-schemas/bing-ads/v1/age_gender_performance_report.md
rename to archive/_integration-schemas/bing-ads/v1/age_gender_performance_report.md
index 88ef37fd4..36bdbd341 100644
--- a/_integration-schemas/bing-ads/v1/age_gender_performance_report.md
+++ b/archive/_integration-schemas/bing-ads/v1/age_gender_performance_report.md
@@ -4,16 +4,14 @@ version: "1"
name: "age_gender_performance_report"
doc-link: https://docs.microsoft.com/en-us/bingads/reporting-service/agegenderdemographicreportcolumn#values
-singer-schema: ## link to the JSON schema file in the integration's Singer repo
+
description: |
The `age_gender_performance_report` table contains info about the age and gender demographics of people interacting with your campaigns and ad groups.
[This is a **Report** table](#replication). See the **Replication** section for information on how data is replicated and loaded for this table.
replication-method: "Append-Only (Incremental)"
-api-method:
- name:
- doc-link:
+
attributes:
- name: "accountId"
diff --git a/archive/_integration-schemas/bing-ads/v1/campaign_performance_report.md b/archive/_integration-schemas/bing-ads/v1/campaign_performance_report.md
new file mode 100644
index 000000000..5f7050000
--- /dev/null
+++ b/archive/_integration-schemas/bing-ads/v1/campaign_performance_report.md
@@ -0,0 +1,43 @@
+---
+tap: "bing-ads"
+version: "1"
+
+name: "campaign_performance_report"
+doc-link: https://docs.microsoft.com/en-us/bingads/reporting-service/campaignperformancereportcolumn#values
+
+description: |
+ The `campaign_performance_report` table contains performance data for campaigns, aggregated by day..
+
+ [This is a **Report** table](#replication). See the **Replication** section for information on how data is replicated and loaded for this table.
+
+replication-method: "Append-Only (Incremental)"
+attribution-window: true
+
+
+attributes:
+ - name: "accountId"
+ type: "integer"
+ primary-key: true
+ description: "The Bing Ads-assigned ID of the account."
+ foreign-key: true
+
+ - name: "{{ system-column.report-date-time }}"
+ type: "date-time"
+ primary-key: true
+ description: "The start time of the Stitch replication job that replicated this record."
+
+ - name: "gregorianDate"
+ type: "date"
+ primary-key: true
+ replication-key: true
+ description: "The day the record pertains to."
+
+ - name: "campaignId"
+ type: "integer"
+ description: "The ID of the campaign."
+ foreign-key: true
+
+ - name: "Custom Fields"
+ description: |
+ Columns selected by you. For descriptions of available columns, refer to [Microsoft's documentation]({{ table.doc-link }}).
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/bing-ads/v1/campaigns.md b/archive/_integration-schemas/bing-ads/v1/campaigns.md
new file mode 100644
index 000000000..71c8f2c5a
--- /dev/null
+++ b/archive/_integration-schemas/bing-ads/v1/campaigns.md
@@ -0,0 +1,109 @@
+---
+tap: "bing-ads"
+version: "1"
+
+name: "campaigns"
+doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/campaign
+
+description: |
+ The `campaigns` table contains info about the campaigns in your Bing Ads account.
+
+ [This is a **Core Object** table](#replication).
+
+replication-method: "Full Table"
+
+api-method:
+ name: getCampaignsByAccountId
+ doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/getcampaignsbyaccountid
+
+attributes:
+ - name: "id"
+ type: "integer"
+ primary-key: true
+ description: "The campaign ID."
+ foreign-key-id: "campaign-id"
+
+ - name: "biddingScheme"
+ type: "object"
+ doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/biddingscheme
+ description: "Details about the bid strategy type used to manage the campaign."
+ subattributes:
+ - name: "type"
+ type: "string"
+ description: "The type of bidding scheme set for the campaign."
+ doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/biddingscheme
+
+ - name: "budgetId"
+ type: "integer"
+ description: "The ID of the budget that the campaign shares with other campaigns in the account. Refer to [Microsoft's documentation](https://docs.microsoft.com/en-us/bingads/campaign-management-service/budget) for more info on budgets."
+
+ - name: "budgetType"
+ type: "string"
+ description: "The budget type that determines how the budget is spent."
+
+ - name: "campaignType"
+ type: "string"
+ description: "The type of campaign."
+
+ - name: "dailyBudget"
+ type: "number"
+ description: "The amount to spend daily on the campaign."
+
+ - name: "description"
+ type: "string"
+ description: "The description of the campaign."
+
+ - name: "forwardCompatibilityMap"
+ type: "array"
+ description: "Details about the forward compatibility settings for the campaign."
+ doc-link: https://docs.microsoft.com/en-us/bingads/customer-management-service/keyvaluepairofstringstring
+ subattributes:
+ - name: "keyValuePairOfStringString"
+ type: "array"
+ description: "Key and value pairs for the campaign's forward compatibility settings."
+ subattributes:
+ - name: "key"
+ type: "string"
+ description: "The name of the setting."
+
+ - name: "value"
+ type: "string"
+ description: "The value of the setting."
+
+ - name: "languages"
+ type: "string"
+ description: "The languages of the ads and keywords in the campaign."
+
+ - name: "name"
+ type: "string"
+ description: "The name of the campaign."
+
+ - name: "nativeBidAdjustment"
+ type: "integer"
+ description: "The percent amount by which to adjust the bid for intent ads above or below the base ad group or keyword bid."
+
+ - name: "settings"
+ type: "array"
+ description: "The settings for the campaign."
+ subattributes:
+ - name: "type"
+ type: "string"
+ description: "The type of setting. For example: `ShoppingSetting`"
+ doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/setting
+
+ - name: "status"
+ type: "string"
+ description: "The status of the campaign. Possible values are `Active` and `Paused`."
+
+ - name: "timeZone"
+ type: "string"
+ description: "The timezone where the campaign operates."
+
+ - name: "trackingUrlTemplate"
+ type: "string"
+ description: "The tracking template to use as a default for all URLs in the campaign."
+
+ - name: "urlCustomParameters"
+ type: "string"
+ description: "The custom collection of key and value parameters for URL tracking."
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/bing-ads/v1/foreign-keys.md b/archive/_integration-schemas/bing-ads/v1/foreign-keys.md
new file mode 100644
index 000000000..1856f9e52
--- /dev/null
+++ b/archive/_integration-schemas/bing-ads/v1/foreign-keys.md
@@ -0,0 +1,49 @@
+---
+tap-reference: "bing-ads"
+version: "1"
+
+foreign-keys:
+ - id: "account-id"
+ attribute: "accountId"
+ table: "accounts"
+ all-foreign-keys:
+ - table: "accounts"
+ join-on: "id"
+ - table: "ad_performance_report"
+ - table: "adgroup_performance_report"
+ - table: "age_gender_performance_report"
+ - table: "campaign_performance_report"
+ - table: "geographic_performance_report"
+ - table: "goals_and_funnels_report"
+ - table: "keyword_performance_report"
+ - table: "search_query_performance_report"
+
+ - id: "ad-id"
+ attribute: "adId"
+ table: "ads"
+ all-foreign-keys:
+ - table: "ads"
+ join-on: "id"
+
+ - id: "ad-group-id"
+ attribute: "adGroupId"
+ table: "ad_groups"
+ all-foreign-keys:
+ - table: "ad_groups"
+ join-on: "id"
+ - table: "ad_performance_report"
+ - table: "adgroup_performance_report"
+ - table: "age_gender_performance_report"
+ - table: "campaign_performance_report"
+ - table: "geographic_performance_report"
+ - table: "goals_and_funnels_report"
+ - table: "keyword_performance_report"
+ - table: "search_query_performance_report"
+
+ - id: "campaign-id"
+ attribute: "campaignId"
+ table: "campaigns"
+ all-foreign-keys:
+ - table: "campaigns"
+ join-on: "id"
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/bing-ads/v1/geographic_performance_report.md b/archive/_integration-schemas/bing-ads/v1/geographic_performance_report.md
new file mode 100644
index 000000000..77366e218
--- /dev/null
+++ b/archive/_integration-schemas/bing-ads/v1/geographic_performance_report.md
@@ -0,0 +1,47 @@
+---
+tap: "bing-ads"
+version: "1"
+
+name: "geographic_performance_report"
+doc-link: https://docs.microsoft.com/en-us/bingads/reporting-service/geographicperformancereportcolumn#values
+
+description: |
+ The `geographic_performance_report` table contains info about the physical locations of people searching for an ad or the locations people are searching for. This data can be used to validate or improve location targeting strategies.
+
+ [This is a **Report** table](#replication). See the **Replication** section for information on how data is replicated and loaded for this table.
+
+replication-method: "Append-Only (Incremental)"
+
+
+attributes:
+ - name: "accountId"
+ type: "integer"
+ primary-key: true
+ description: "The Bing Ads-assigned ID of the account."
+ foreign-key-id: "account-id"
+
+ - name: "{{ system-column.report-date-time }}"
+ type: "date-time"
+ primary-key: true
+ description: "The start time of the Stitch replication job that replicated this record."
+
+ - name: "gregorianDate"
+ type: "date"
+ primary-key: true
+ replication-key: true
+ description: "The day the record pertains to."
+
+ - name: "adGroupId"
+ type: "integer"
+ description: "The ID of the ad group."
+ foreign-key-id: "ad-group-id"
+
+ - name: "campaignId"
+ type: "integer"
+ description: "The ID of the campaign."
+ foreign-key-id: "campaign-id"
+
+ - name: "Custom Fields"
+ description: |
+ Columns selected by you. For descriptions of available columns, refer to [Microsoft's documentation]({{ table.doc-link }}).
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/bing-ads/v1/goals_and_funnels_report.md b/archive/_integration-schemas/bing-ads/v1/goals_and_funnels_report.md
new file mode 100644
index 000000000..da639a6de
--- /dev/null
+++ b/archive/_integration-schemas/bing-ads/v1/goals_and_funnels_report.md
@@ -0,0 +1,47 @@
+---
+tap: "bing-ads"
+version: "1"
+
+name: "goals_and_funnels_report"
+doc-link: https://docs.microsoft.com/en-us/bingads/reporting-service/goalsandfunnelsreportcolumn
+
+description: |
+ The `goals_and_funnels_report` table contains information about your audience's progression through your conversion funnel. Use this report to determine the point at which users leave the funnel, thereby allowing you to improve and increase conversion.
+
+ [This is a **Report** table](#replication). See the **Replication** section for information on how data is replicated and loaded for this table.
+
+replication-method: "Append-Only (Incremental)"
+
+
+attributes:
+ - name: "accountId"
+ type: "integer"
+ primary-key: true
+ description: "The Bing Ads-assigned ID of the account."
+ foreign-key-id: "account-id"
+
+ - name: "{{ system-column.report-date-time }}"
+ type: "date-time"
+ primary-key: true
+ description: "The start time of the Stitch replication job that replicated this record."
+
+ - name: "gregorianDate"
+ type: "date"
+ primary-key: true
+ replication-key: true
+ description: "The day the record pertains to."
+
+ - name: "adGroupId"
+ type: "integer"
+ description: "The ID of the ad group."
+ foreign-key-id: "ad-group-id"
+
+ - name: "campaignId"
+ type: "integer"
+ description: "The ID of the campaign."
+ foreign-key-id: "campaign-id"
+
+ - name: "Custom Fields"
+ description: |
+ Columns selected by you. For descriptions of available columns, refer to [Microsoft's documentation]({{ table.doc-link }}).
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/bing-ads/v1/keyword_performance_report.md b/archive/_integration-schemas/bing-ads/v1/keyword_performance_report.md
new file mode 100644
index 000000000..bf80039e4
--- /dev/null
+++ b/archive/_integration-schemas/bing-ads/v1/keyword_performance_report.md
@@ -0,0 +1,47 @@
+---
+tap: "bing-ads"
+version: "1"
+
+name: "keyword_performance_report"
+doc-link: https://docs.microsoft.com/en-us/bingads/reporting-service/keywordperformancereportcolumn#values
+
+description: |
+ The `keyword_performance_report` table contains performance data about keywords.
+
+ [This is a **Report** table](#replication). See the **Replication** section for information on how data is replicated and loaded for this table.
+
+replication-method: "Append-Only (Incremental)"
+
+
+attributes:
+ - name: "accountId"
+ type: "integer"
+ primary-key: true
+ description: "The Bing Ads-assigned ID of the account."
+ foreign-key-id: "account-id"
+
+ - name: "{{ system-column.report-date-time }}"
+ type: "date-time"
+ primary-key: true
+ description: "The start time of the Stitch replication job that replicated this record."
+
+ - name: "gregorianDate"
+ type: "date"
+ primary-key: true
+ replication-key: true
+ description: "The day the record pertains to."
+
+ - name: "adGroupId"
+ type: "integer"
+ description: "The ID of the ad group."
+ foreign-key-id: "ad-group-id"
+
+ - name: "campaignId"
+ type: "integer"
+ description: "The ID of the campaign."
+ foreign-key-id: "campaign-id"
+
+ - name: "Custom Fields"
+ description: |
+ Columns selected by you. For descriptions of available columns, refer to [Microsoft's documentation]({{ table.doc-link }}).
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/bing-ads/v1/search_query_performance_report.md b/archive/_integration-schemas/bing-ads/v1/search_query_performance_report.md
new file mode 100644
index 000000000..ef135a6a3
--- /dev/null
+++ b/archive/_integration-schemas/bing-ads/v1/search_query_performance_report.md
@@ -0,0 +1,49 @@
+---
+tap: "bing-ads"
+version: "1"
+
+name: "search_query_performance_report"
+doc-link: https://docs.microsoft.com/en-us/bingads/reporting-service/searchqueryperformancereportcolumn#values
+
+description: |
+ The `search_query_performance_report` table contains performance data for search terms that resulted in a significant number of clicks in the last 30 days. As this data may change over time, use the `keyword_performance_report` table to analyze the overall performance of keywords.
+
+ **Note**: This data in this table is not applicable to Bing Shopping campaigns.
+
+ [This is a **Report** table](#replication). See the **Replication** section for information on how data is replicated and loaded for this table.
+
+replication-method: "Append-Only (Incremental)"
+
+
+attributes:
+ - name: "accountId"
+ type: "integer"
+ primary-key: true
+ description: "The Bing Ads-assigned ID of the account."
+ foreign-key-id: "account-id"
+
+ - name: "{{ system-column.report-date-time }}"
+ type: "date-time"
+ primary-key: true
+ description: "The start time of the Stitch replication job that replicated this record."
+
+ - name: "gregorianDate"
+ type: "date"
+ primary-key: true
+ replication-key: true
+ description: "The day the record pertains to."
+
+ - name: "adGroupId"
+ type: "integer"
+ description: "The ID of the ad group."
+ foreign-key-id: "ad-group-id"
+
+ - name: "campaignId"
+ type: "integer"
+ description: "The ID of the campaign."
+ foreign-key-id: "campaign-id"
+
+ - name: "Custom Fields"
+ description: |
+ Columns selected by you. For descriptions of available columns, refer to [Microsoft's documentation]({{ table.doc-link }}).
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/bing-ads/v2/accounts.md b/archive/_integration-schemas/bing-ads/v2/accounts.md
new file mode 100644
index 000000000..3b0da5af2
--- /dev/null
+++ b/archive/_integration-schemas/bing-ads/v2/accounts.md
@@ -0,0 +1,187 @@
+---
+tap: "bing-ads"
+version: "2"
+
+name: "accounts"
+doc-link: https://docs.microsoft.com/en-us/advertising/customer-management-service/getaccount?view=bingads-13
+
+description: |
+ The `{{ table.name }}` table contains high-level information about each of the ad accounts you selected during setup. Each row in this table corresponds to a single account.
+
+ [This is a **Core Object** table](#replication).
+
+ #### Schema changes from Bing Ads v1 {#renamed-v1-columns}
+
+ In this version of Stitch's {{ integration.display_name }} integration, the schema of this table has changed. This was done to ensure consistency between the fields in our integration and [the changes made by Microsoft to the Bing Ads API](https://docs.microsoft.com/en-us/bingads/guides/migration-guide?view=bingads-12#reporting-downloadedcolumns){:target="new}.
+
+ - `CurrencyType` is now `CurrencyCode`
+ - `AccountType` has been removed
+ - `CountryCode` has been removed
+ - `AutoTagType` has been added
+ - `BusinessAddress` has been added
+ - `SoldToPaymentInstrumentId` has been added
+
+replication-method: "Key-based Incremental"
+
+attributes:
+ - name: "Id"
+ type: "integer"
+ primary-key: true
+ description: "The account ID."
+ foreign-key-id: "account-id"
+
+ - name: "LastModifiedTime"
+ type: "date-time"
+ primary-key: true
+ replication-key: true
+ description: |
+ The time (in UTC) the account was last updated.
+
+ **Note**: The date and time value reflects the date and time at the Bing server, not the client.
+
+ - name: "AccountFinancialStatus"
+ type: "string"
+ description: "The financial status of the account."
+
+ - name: "AccountLifeCycleStatus"
+ type: "string"
+ description: "The status of the account."
+
+ - name: "AutoTagType"
+ type: "string"
+ description: "Indicates whether supported UTM tracking codes are appended or replaced."
+
+ - name: "BillToCustomerId"
+ type: "integer"
+ description: "The ID of the customer that is billed for the charges that the account generates. This is either the reseller that manages the account on behalf of the owner or the ID of the customer that owns the account."
+
+ - name: "BusinessAddress"
+ type: "array"
+ description: |
+ The location where your business is legally registered. If you're an agency working as an agent for your customer, this is the location where your client is legally registered.
+ subattributes:
+ - name: "Id"
+ type: "string"
+ primary-key: true
+ description: "The ID of the address object."
+
+ - name: "BusinessName"
+ type: "string"
+ description: "The legal business name."
+
+ - name: "City"
+ type: "string"
+ description: "The city."
+
+ - name: "CountryCode"
+ type: "string"
+ description: |
+ The country/region code. For a list of possible values, refer to [Microsoft's documentation](https://docs.microsoft.com/en-us/bingads/guides/geographical-location-codes?view=bingads-12){:target="new"}.
+
+ - name: "Line1"
+ type: "string"
+ description: "The first line of the address."
+
+ - name: "Line2"
+ type: "string"
+ description: "The second line of the address."
+
+ - name: "Line3"
+ type: "string"
+ description: "The third line of the address."
+
+ - name: "Line4"
+ type: "string"
+ description: "The fourth line of the address."
+
+ - name: "PostalCode"
+ type: "string"
+ description: "The postal or zip code."
+
+ - name: "StateOrProvince"
+ type: "string"
+ description: |
+ The state or province. For a list of possible values, refer to [Microsoft's documentation](https://docs.microsoft.com/en-us/bingads/guides/geographical-location-codes?view=bingads-12){:target="new"}.
+
+ - name: "TimeStamp"
+ type: "date-time"
+ description: "The date and time that the address was last updated."
+
+ - name: "CurrencyCode"
+ type: "string"
+ description: |
+ The type of currency used to settle the account. Refer to [Microsoft's documentation](https://docs.microsoft.com/en-us/bingads/customer-management-service/currencycode?view=bingads-12){:target="new"} for a list of possible values.
+
+ - name: "ForwardCompatibilityMap"
+ type: "array"
+ description: "Details about the forward compatibility settings for the account."
+ doc-link: https://docs.microsoft.com/en-us/bingads/customer-management-service/keyvaluepairofstringstring
+ subattributes:
+ - name: "KeyValuePairOfStringString"
+ type: "array"
+ description: "Key and value pairs for the account's forward compatibility settings."
+ subattributes:
+ - name: "key"
+ type: "string"
+ description: "The name of the setting."
+
+ - name: "value"
+ type: "string"
+ description: "The value of the setting."
+
+ - name: "Language"
+ type: "string"
+ description: "The language used to render the invoice for the account, if invoice is used as the payment method."
+
+ - name: "LastModifiedByUserId"
+ type: "integer"
+ description: "The ID of the user who last updated the account's information."
+
+ - name: "Name"
+ type: "string"
+ description: "The name of the account."
+
+ - name: "Number"
+ type: "string"
+ description: "The account number generated by Bing Ads used to identify the account in the Bing Ads web app. This value is alphanumeric."
+
+ - name: "ParentCustomerId"
+ type: "integer"
+ description: "The ID of the customer that owns the account."
+
+ - name: "PauseReason"
+ type: "integer"
+ description: |
+ Indicates the reason the account is paused. Possible values include:
+
+ - `1` - A user paused the account
+ - `2` - The billing service paused the account
+ - `4` - The user and billing service paused the account
+
+ - name: "PaymentMethodId"
+ type: "integer"
+ description: "The ID of the payment instrument used to settle the account."
+
+ - name: "PaymentMethodType"
+ type: "string"
+ description: "The type of payment instrument used to settle the account."
+
+ - name: "PrimaryUserId"
+ type: "integer"
+ description: "The ID of the account manager who is primarily responsible for managing the account. By default, this value is set to the reseller's user ID."
+
+ - name: "SoldToPaymentInstrumentId"
+ type: "string"
+ description: "The ID of the payment instrument of your client (the sold-to customer) used to settle the account."
+
+ - name: "Timestamp"
+ type: "timestamp"
+ description: "The timestamp value used internally by Bing Ads to reconcile updates between account update and delete operations."
+
+ - name: "Timezone"
+ type: "string"
+ description: |
+ The default timezone value to use for campaigns in this account.
+
+ If left unspecified when the account is created, this value will default to `PacificTimeUSCanadaTijuana`.
+---
\ No newline at end of file
diff --git a/_integration-schemas/bing-ads/v2/ad_extension_detail_report.md b/archive/_integration-schemas/bing-ads/v2/ad_extension_detail_report.md
similarity index 99%
rename from _integration-schemas/bing-ads/v2/ad_extension_detail_report.md
rename to archive/_integration-schemas/bing-ads/v2/ad_extension_detail_report.md
index 72743fd81..81b6ddc26 100644
--- a/_integration-schemas/bing-ads/v2/ad_extension_detail_report.md
+++ b/archive/_integration-schemas/bing-ads/v2/ad_extension_detail_report.md
@@ -5,7 +5,7 @@
name: "ad_extension_detail_report"
doc-link: https://docs.microsoft.com/en-us/advertising/reporting-service/adextensiondetailreportfilter?view=bingads-13
-singer-schema:
+
description: |
The `{{ table.name }}` table contains info about ad extension items.
diff --git a/_integration-schemas/bing-ads/v2/ad_group_performance_report.md b/archive/_integration-schemas/bing-ads/v2/ad_group_performance_report.md
similarity index 99%
rename from _integration-schemas/bing-ads/v2/ad_group_performance_report.md
rename to archive/_integration-schemas/bing-ads/v2/ad_group_performance_report.md
index 37bd5c0cf..3469aff47 100644
--- a/_integration-schemas/bing-ads/v2/ad_group_performance_report.md
+++ b/archive/_integration-schemas/bing-ads/v2/ad_group_performance_report.md
@@ -4,7 +4,7 @@ version: "2"
name: "ad_group_performance_report"
doc-link: https://docs.microsoft.com/en-us/advertising/reporting-service/adgroupperformancereportfilter?view=bingads-13
-singer-schema:
+
description: |
The `{{ table.name }}` table contains performance data for ad groups, aggregated by day.
diff --git a/archive/_integration-schemas/bing-ads/v2/ad_groups.md b/archive/_integration-schemas/bing-ads/v2/ad_groups.md
new file mode 100644
index 000000000..a1d71d3de
--- /dev/null
+++ b/archive/_integration-schemas/bing-ads/v2/ad_groups.md
@@ -0,0 +1,220 @@
+---
+tap: "bing-ads"
+version: "2"
+
+name: "ad_groups"
+doc-link: https://docs.microsoft.com/en-us/advertising/campaign-management-service/getadgroupsbyids?view=bingads-13
+
+description: |
+ The `{{ table.name }}` table contains info about the ad groups associated with the campaigns in your Bing Ads account.
+
+ [This is a **Core Object** table](#replication).
+
+ #### Schema changes from Bing Ads v1 {#renamed-v1-columns}
+
+ In this version of Stitch's {{ integration.display_name }} integration, the schema of this table has changed. This was done to ensure consistency between the fields in our integration and [the changes made by Microsoft to the Bing Ads API](https://docs.microsoft.com/en-us/bingads/guides/migration-guide?view=bingads-12#reporting-downloadedcolumns){:target="new}.
+
+ - `AdDistribution` has been removed
+ - `ContentMatchBid` has been removed
+ - `NativeBidAdjustment` has been removed
+ - `PricingModel` has been removed
+ - `RemarketingTargetingSetting` has been removed
+ - `SearchBid` has been removed
+ - `AudienceAdsBidAdjustment` has been added
+ - `CpcBid` has been added
+ - Additional fields have been added to `BiddingScheme` and `Settings`
+
+replication-method: "Full Table"
+
+api-method:
+ name: getAdGroupsbyCampaignId
+ doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/getadgroupsbycampaignid
+
+attributes:
+ - name: "id"
+ type: "integer"
+ primary-key: true
+ description: "The ad group ID."
+ foreign-key-id: "ad-group-id"
+
+ - name: "AdRotation"
+ type: "string"
+ description: |
+ Determines how often ads in the ad group show in relation to each other. If there are multiple ads within an ad group, the ads will rotate because only one ad from your account can show at a time.
+
+ Possible values are:
+
+ - `OptimizeForClicks` - In this rotation, Bing Ads will predominantly show ads that have the highest click-through rate, or CTR.
+ - `RotateAdsEvenly` - In this rotation, Bing ads will rotate between ads on an equal basis.
+
+ - name: "AudienceAdsBidAdjustment"
+ type: "integer"
+ description: |
+ The percent amount by which to adjust your bid for intent ads above or below the base ad group or keyword bid.
+
+ Possible values are negative one hundred `(-100)` through positive nine hundred `(900)`.
+
+ - name: "BiddingScheme"
+ type: "object"
+ description: "The bid strategy type for how bids are managed."
+ subattributes:
+ - name: "Type"
+ type: "string"
+ description: |
+ The type of bidding scheme set for the campaign, ad group, or keyword. Refer to [Microsoft's documentation](https://docs.microsoft.com/en-us/bingads/campaign-management-service/biddingscheme?view=bingads-12#remarks){:target="new"} for info about bidding scheme types.
+
+ - name: "InheritedBidStrategyType"
+ type: "string"
+ description: |
+ The type of bidding scheme that is inherited from the parent campaign or ad group. Possible values are:
+
+ - `EnhancedCpc`
+ - `ManualCpc`
+ - `MaxClicks`
+ - `MaxConversions`
+ - `TargetCpa`
+
+ - name: "CpcBid"
+ type: "string"
+ description: |
+ The default bid to use when the user's query and the ad group's keywords match by either using a broad, exact, or phrase match comparison.
+
+ - name: "EndDate"
+ type: "date-time"
+ description: "The date that the ads in the ad group will expire."
+
+ - name: "ForwardCompatibilityMap"
+ type: "array"
+ description: "Details about the forward compatibility settings for the ad group."
+ doc-link: https://docs.microsoft.com/en-us/bingads/customer-management-service/keyvaluepairofstringstring
+ subattributes:
+ - name: "KeyValuePairOfStringString"
+ type: "array"
+ description: "Key and value pairs for the ad group's forward compatibility settings."
+ subattributes:
+ - name: "key"
+ type: "string"
+ description: "The name of the setting."
+
+ - name: "value"
+ type: "string"
+ description: "The value of the setting."
+
+ - name: "Language"
+ type: "string"
+ description: "The language of the ads and keywords in the ad group."
+
+ - name: "Name"
+ type: "string"
+ description: "The name of the ad group."
+
+ - name: "Network"
+ type: "string"
+ description: |
+ The search networks where the ads will display. Possible values are:
+
+ - `OwnedAndOperatedAndSyndicatedSearch`
+ - `OwnedAndOperatedOnly`
+ - `SyndicatedSearchOnly`
+
+ - name: "Settings"
+ type: "array"
+ description: |
+ Details about the settings applied to the ad group.
+
+ Only certain attributes are applicable to different ad group settings. This means that only certain columns will contain values based on the `Type` field.
+ subattributes:
+ - name: "Type"
+ type: "string"
+ description: |
+ The type of setting. Possible values are:
+
+ - `CoOpSetting`
+ - `DynamicSearchAdsSetting`
+ - `ShoppingSetting`
+
+ doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/setting
+
+ - name: "BidBoostValue"
+ type: "number"
+ description: |
+ **Applicable to Cooperative Bidding campaigns,** or `Type: CoOpSetting`. The percentage that allows your cooperative bid to flex.
+
+ - name: "BidMaxValue"
+ type: "number"
+ description: |
+ **Applicable to Cooperative Bidding campaigns,** or `Type: CoOpSetting`. The flat amount of your cooperative bid.
+
+ - name: "BidOption"
+ type: "string"
+ description: |
+ **Applicable to Cooperative Bidding campaigns,** or `Type: CoOpSetting`. Determines whether or not to amplify your partner's bid.
+
+ - name: "DomainName"
+ type: "string"
+ description: |
+ **Applicable to Dynamic Search Ads campaigns,** or `Type: DynamicSearchAdsSetting`. The domain name of the website that you want to target for dynamic search ads.
+
+ - name: "Language"
+ type: "string"
+ description: |
+ **Applicable to Dynamic Search Ads campaigns,** or `Type: DynamicSearchAdsSetting`. The language of the website pages that you want to target for dynamic search ads.
+
+ - name: "PageFeedIds"
+ type: "array"
+ description: |
+ **Applicable to Dynamic Search Ads campaigns,** or `Type: DynamicSearchAdsSetting`. Reserved by Microsoft.
+ subattributes:
+ - name: "value"
+ type: "integer"
+ description: |
+ **Applicable to Dynamic Search Ads campaigns,** or `Type: DynamicSearchAdsSetting`. Reserved by Microsoft.
+
+ - name: "Source"
+ type: "string"
+ description: |
+ **Applicable to Dynamic Search Ads campaigns,** or `Type: DynamicSearchAdsSetting`. Reserved by Microsoft.
+
+ - name: "LocalInventoryAdsEnabled"
+ type: "boolean"
+ description: |
+ **Applicable to feed-based audience or shopping campaigns,** or `Type: ShoppingSetting`. Determines whether local inventory ads are enabled for the Bing Merchant Center store.
+
+ - name: "Priority"
+ type: "integer"
+ description: |
+ **Applicable to feed-based audience or shopping campaigns,** or `Type: ShoppingSetting`. Determines which Bing Shopping campaign serves ads, in the event that two or more campaigns use the product catalog feed from the same Bing Merchant Center store.
+
+ Possible value are `0`, `1`, or `2`. The higher numbers are given priority.
+
+ - name: "SalesCountryCode"
+ type: "string"
+ description: |
+ **Applicable to feed-based audience or shopping campaigns,** or `Type: ShoppingSetting`. The country code for the Bing Merchant Center store. Refer to [Microsoft's documentation](https://docs.microsoft.com/en-us/bingads/campaign-management-service/getbsccountries?view=bingads-12){:target="new"} for a list of possible values.
+
+ - name: "StoreId"
+ type: "integer"
+ description: |
+ **Applicable to feed-based audience or shopping campaigns,** or `Type: ShoppingSetting`. The ID for the Bing Merchant Center store that contains a product catalog feed that you want to use for the campaign.
+
+ - name: "StartDate"
+ type: "date-time"
+ description: "The date that the ads in the ad group can begin serving."
+
+ - name: "Status"
+ type: "string"
+ description: |
+ The status of the ad group. Possible values are:
+
+ - `Active`
+ - `Expired`
+ - `Paused`
+
+ - name: "TrackingUrlTemplate"
+ type: "string"
+ description: "The tracking template to use as a default for all URLs in your ad group."
+
+ - name: "UrlCustomParameters"
+ type: "array"
+ description: "The custom collection of key and value parameters for URL tracking."
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/bing-ads/v2/ad_performance_report.md b/archive/_integration-schemas/bing-ads/v2/ad_performance_report.md
new file mode 100644
index 000000000..cc352d629
--- /dev/null
+++ b/archive/_integration-schemas/bing-ads/v2/ad_performance_report.md
@@ -0,0 +1,62 @@
+---
+tap: "bing-ads"
+version: "2"
+
+name: "ad_performance_report"
+doc-link: https://docs.microsoft.com/en-us/advertising/reporting-service/adperformancereportfilter?view=bingads-13
+
+description: |
+ The `{{ table.name }}` table contains performance info about ads, including clicks and conversions. This data can be used to identify and improve under-performing ads.
+
+ [This is a **Report** table](#replication). See the **Replication** section for information on how data is replicated and loaded for this table.
+
+ #### Columns renamed from Bing Ads v1 {#renamed-v1-columns}
+
+ In this version of Stitch's {{ integration.display_name }} integration, some columns have been re-named. This was done to ensure consistency between the fields in our integration and [the changes made by Microsoft to the Bing Ads API](https://docs.microsoft.com/en-us/bingads/guides/migration-guide?view=bingads-12#reporting-downloadedcolumns){:target="new}.
+
+ - `FinalAppURL` is now `FinalAppUrl`
+ - `FinalURL` is now `FinalUrl`
+ - `FinalMobileURL` is now `FinalMobileUrl`
+
+replication-method: "Key-based Incremental"
+loading-behavior: "Append-Only"
+
+attribution-window: true
+
+attributes:
+ - name: "AccountId"
+ type: "integer"
+ primary-key: true
+ description: "The Bing Ads-assigned ID of the account."
+ foreign-key-id: "accounts-id"
+
+ - name: "{{ system-column.report-date-time }}"
+ type: "date-time"
+ primary-key: true
+ description: "The start time of the Stitch replication job that replicated this record."
+
+ - name: "TimePeriod"
+ type: "date"
+ primary-key: true
+ replication-key: true
+ description: "The day the record pertains to."
+
+ - name: "AdGroupId"
+ type: "integer"
+ description: "The ID of the ad group the ad is a part of."
+ foreign-key-id: "ad-group-id"
+
+ - name: "AdId"
+ type: "integer"
+ description: "The ad ID."
+ foreign-key-id: "ad-id"
+
+ - name: "CampaignId"
+ type: "integer"
+ description: "The ID of the campaign the ad is a part of."
+ foreign-key-id: "campaign-id"
+
+ - name: "Custom Fields"
+ description: |
+ Columns selected by you. For descriptions of available columns, refer to [Microsoft's documentation]({{ table.doc-link }}).
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/bing-ads/v2/ads.md b/archive/_integration-schemas/bing-ads/v2/ads.md
new file mode 100644
index 000000000..dd1ea2709
--- /dev/null
+++ b/archive/_integration-schemas/bing-ads/v2/ads.md
@@ -0,0 +1,151 @@
+---
+tap: "bing-ads"
+version: "2"
+
+name: "ads"
+doc-link: https://docs.microsoft.com/en-us/advertising/campaign-management-service/getadsbyids?view=bingads-13
+
+description: |
+ The `{{ table.name }}` table contains info about the following ad types:
+
+ - `AppInstall`
+ - `DynamicSearch`
+ - `ExpandedText`
+ - `Product`
+ - `Text`
+ - `Image`
+
+ [This is a **Core Object** table](#replication).
+
+ #### Schema changes from Bing Ads v1 {#renamed-v1-columns}
+
+ In this version of Stitch's {{ integration.display_name }} integration, the schema of this table has changed. This was done to ensure consistency between the fields in our integration and [the changes made by Microsoft to the Bing Ads API](https://docs.microsoft.com/en-us/bingads/guides/migration-guide?view=bingads-12#reporting-downloadedcolumns){:target="new}.
+
+ - `Domain` has been added
+ - `TextPart2` has been added
+ - `TitlePart3` has been added
+
+replication-method: "Full Table"
+api-method:
+ name: "getAdsByAdGroupId"
+ doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/getadsbyadgroupid
+
+attributes:
+ - name: "Id"
+ type: "integer"
+ primary-key: true
+ description: "The ad ID."
+ foreign-key-id: "ad-id"
+
+ - name: "AdFormatPreference"
+ type: "string"
+ description: |
+ Indicates whether or not the ad copy is shown to users as a search or native ad. Search ads tend to be written as a call to action, whereas intent ads are written in a more informational style.
+
+ Possible values are:
+
+ - `Native` - Ad will be eligible only for the native ad format
+ - `All` - Ad will be eligible for both search and native ad formats
+
+ - name: "DevicePreference"
+ type: "integer"
+ description: "Determines the device preference for showing the ad."
+
+ - name: "Domain"
+ type: "string"
+ description: |
+ **Applicable to `Type: ExpandedText` ads.** The URL that will be displayed instead of the final URL. The final URL will still be used for the landing page URL.
+
+ - name: "EditorialStatus"
+ type: "string"
+ description: "The editorial review status of the ad, which indicates whether the ad is pending review, approved, or disapproved."
+
+ - name: "FinalAppUrls"
+ type: "string"
+ description: "The last or final URL where a user who clicks on an in-app ad is taken."
+ subattributes:
+ - name: "string"
+ type: "array"
+ description: "The app landing page URL."
+ subattributes:
+ - name: "value"
+ type: "string"
+ description: "The app landing page URL."
+
+ - name: "FinalMobileUrls"
+ type: "array"
+ description: "The last or final URL where a user who clicks on a mobile ad is taken."
+ subattributes:
+ - name: "string"
+ type: "array"
+ description: "The mobile landing page URL. This is only supported for text ads."
+ subattributes:
+ - name: "value"
+ type: "string"
+ description: "The mobile landing page URL. This is only supported for text ads."
+
+ - name: "FinalUrls"
+ type: "string"
+ description: "The last or final URL where a user is taken, whether or not the click to final URL path included any redirects."
+ subattributes:
+ - name: "string"
+ type: "array"
+ description: "The last or final URL where a user is taken, whether or not the click to final URL path included any redirects."
+ subattributes:
+ - name: "value"
+ type: "string"
+ description: "The last or final URL where a user is taken, whether or not the click to final URL path included any redirects."
+
+ - name: "ForwardCompatibilityMap"
+ type: "array"
+ description: "Details about the forward compatibility settings for the ad."
+ doc-link: https://docs.microsoft.com/en-us/bingads/customer-management-service/keyvaluepairofstringstring
+ subattributes:
+ - name: "KeyValuePairOfStringString"
+ type: "array"
+ description: "Key and value pairs for the ad's forward compatibility settings."
+ subattributes:
+ - name: "key"
+ type: "string"
+ description: "The name of the setting."
+
+ - name: "value"
+ type: "string"
+ description: "The value of the setting."
+
+ - name: "Status"
+ type: "string"
+ description: "The status of the ad. Possible values are `Active` and `Paused`."
+
+ - name: "TextPart2"
+ type: "string"
+ description: |
+ **Applicable to `Type: ExpandedText` ads.** As per Microsoft, this field is reserved for future use.
+
+ - name: "TitlePart1"
+ type: "string"
+ description: |
+ **Applicable to `Type: ExpandedText` ads.** The first part of the ad title.
+
+ - name: "TitlePart2"
+ type: "string"
+ description: |
+ **Applicable to `Type: ExpandedText` ads.** The second part of the ad title.
+
+ - name: "TitlePart3"
+ type: "string"
+ description: |
+ **Applicable to `Type: ExpandedText` ads.** As per Microsoft, this field is reserved for future use.
+
+ - name: "TrackingUrlTemplate"
+ type: "string"
+ description: "The tracking template to use as a default for all landing page URLs."
+
+ - name: "Type"
+ type: "string"
+ description: "The type of the ad."
+
+ - name: "UrlCustomParameters"
+ type: "string"
+ description: "The custom collection of key and value parameters for URL tracking."
+---
\ No newline at end of file
diff --git a/_integration-schemas/bing-ads/v2/age_gender_audience_report.md b/archive/_integration-schemas/bing-ads/v2/age_gender_audience_report.md
similarity index 95%
rename from _integration-schemas/bing-ads/v2/age_gender_audience_report.md
rename to archive/_integration-schemas/bing-ads/v2/age_gender_audience_report.md
index 82d608962..bfa8a6388 100644
--- a/_integration-schemas/bing-ads/v2/age_gender_audience_report.md
+++ b/archive/_integration-schemas/bing-ads/v2/age_gender_audience_report.md
@@ -4,7 +4,7 @@ version: "2"
name: "age_gender_audience_report"
doc-link: https://docs.microsoft.com/en-us/advertising/reporting-service/agegenderaudiencereportfilter?view=bingads-13
-singer-schema: ## link to the JSON schema file in the integration's Singer repo
+
description: |
The `{{ table.name }}` table contains info about the age and gender demographics of people interacting with your campaigns and ad groups.
diff --git a/_integration-schemas/bing-ads/v2/audience_performance_report.md b/archive/_integration-schemas/bing-ads/v2/audience_performance_report.md
similarity index 99%
rename from _integration-schemas/bing-ads/v2/audience_performance_report.md
rename to archive/_integration-schemas/bing-ads/v2/audience_performance_report.md
index 452d2f03f..9c4a13564 100644
--- a/_integration-schemas/bing-ads/v2/audience_performance_report.md
+++ b/archive/_integration-schemas/bing-ads/v2/audience_performance_report.md
@@ -4,7 +4,7 @@ version: "2"
name: "audience_performance_report"
doc-link: https://docs.microsoft.com/en-us/advertising/reporting-service/audienceperformancereportfilter?view=bingads-13
-singer-schema:
+
description: |
The `{{ table.name }}` table contains info about performance statistics for various audiences.
diff --git a/archive/_integration-schemas/bing-ads/v2/campaign_performance_report.md b/archive/_integration-schemas/bing-ads/v2/campaign_performance_report.md
new file mode 100644
index 000000000..9f379c57e
--- /dev/null
+++ b/archive/_integration-schemas/bing-ads/v2/campaign_performance_report.md
@@ -0,0 +1,58 @@
+---
+tap: "bing-ads"
+version: "2"
+
+name: "campaign_performance_report"
+doc-link: https://docs.microsoft.com/en-us/advertising/reporting-service/dsacategoryperformancereportfilter?view=bingads-13
+
+description: |
+ The `{{ table.name }}` table contains performance data for campaigns, aggregated by day..
+
+ [This is a **Report** table](#replication). See the **Replication** section for information on how data is replicated and loaded for this table.
+
+ #### Column compatibility
+
+ As per Microsoft's attribute selection rules, some columns may be incompatible. This means that you won't be able to select certain combinations of columns in Stitch. Refer to [Microsoft's documentation](https://docs.microsoft.com/en-us/bingads/guides/reports?view=bingads-12#columnrestrictions){:target="new"} for more info, and the specific column combinations for this table.
+
+ #### Columns renamed from Bing Ads v1 {#renamed-v1-columns}
+
+ In this version of Stitch's {{ integration.display_name }} integration, some columns have been re-named. This was done to ensure consistency between the fields in our integration and [the changes made by Microsoft to the Bing Ads API](https://docs.microsoft.com/en-us/bingads/guides/migration-guide?view=bingads-12#reporting-downloadedcolumns){:target="new}.
+
+ - `HistoricQualityScore` is now `HistoricalQualityScore`
+ - `HistoricExpectedCtr` is now `HistoricalExpectedCtr`
+ - `HistoricAdRelevance` is now `HistoricalAdRelevance`
+ - `HistoricLandingPageExperience` is now `HistoricalLandingPageExperience`
+ - `Status` is now `CampaignStatus`
+
+replication-method: "Key-based Incremental"
+loading-behavior: "Append-Only"
+
+attribution-window: true
+
+attributes:
+ - name: "AccountId"
+ type: "integer"
+ primary-key: true
+ description: "The Bing Ads-assigned ID of the account."
+ foreign-key: true
+
+ - name: "{{ system-column.report-date-time }}"
+ type: "date-time"
+ primary-key: true
+ description: "The start time of the Stitch replication job that replicated this record."
+
+ - name: "TimePeriod"
+ type: "date"
+ primary-key: true
+ replication-key: true
+ description: "The day the record pertains to."
+
+ - name: "CampaignId"
+ type: "integer"
+ description: "The ID of the campaign."
+ foreign-key-id: "campaign-id"
+
+ - name: "Custom Fields"
+ description: |
+ Columns selected by you. For descriptions of available columns, refer to [Microsoft's documentation]({{ table.doc-link }}).
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/bing-ads/v2/campaigns.md b/archive/_integration-schemas/bing-ads/v2/campaigns.md
new file mode 100644
index 000000000..cfac132b7
--- /dev/null
+++ b/archive/_integration-schemas/bing-ads/v2/campaigns.md
@@ -0,0 +1,201 @@
+---
+tap: "bing-ads"
+version: "2"
+
+name: "campaigns"
+doc-link: https://docs.microsoft.com/en-us/advertising/campaign-management-service/getcampaignsbyids?view=bingads-13
+
+description: |
+ The `{{ table.name }}` table contains info about the campaigns in your Bing Ads account.
+
+ [This is a **Core Object** table](#replication).
+
+ #### Schema changes from Bing Ads v1 {#renamed-v1-columns}
+
+ In this version of Stitch's {{ integration.display_name }} integration, the schema of this table has changed. This was done to ensure consistency between the fields in our integration and [the changes made by Microsoft to the Bing Ads API](https://docs.microsoft.com/en-us/bingads/guides/migration-guide?view=bingads-12#reporting-downloadedcolumns){:target="new}.
+
+ - `NativeBidAdjustment` has been removed
+ - `AudienceAdsBidAdjustment` has been added
+ - Additional fields have been added to `BiddingScheme` and `Settings`
+
+replication-method: "Full Table"
+
+api-method:
+ name: getCampaignsByAccountId
+ doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/getcampaignsbyaccountid
+
+attributes:
+ - name: "Id"
+ type: "integer"
+ primary-key: true
+ description: "The campaign ID."
+ foreign-key-id: "campaign-id"
+
+ - name: "AudienceAdsBidAdjustment"
+ type: "integer"
+ description: |
+ The percent amount by which to adjust your bid for intent ads above or below the base ad group or keyword bid.
+
+ Possible values are negative one hundred `(-100)` through positive nine hundred `(900)`.
+
+ - name: "BiddingScheme"
+ type: "object"
+ description: "The bid strategy type for how bids are managed."
+ subattributes:
+ - name: "Type"
+ type: "string"
+ description: |
+ The type of bidding scheme set for the campaign, ad group, or keyword. Refer to [Microsoft's documentation](https://docs.microsoft.com/en-us/bingads/campaign-management-service/biddingscheme?view=bingads-12#remarks){:target="new"} for info about bidding scheme types.
+
+ - name: "InheritedBidStrategyType"
+ type: "string"
+ description: |
+ The type of bidding scheme that is inherited from the parent campaign or ad group. Possible values are:
+
+ - `EnhancedCpc`
+ - `ManualCpc`
+ - `MaxClicks`
+ - `MaxConversions`
+ - `TargetCpa`
+
+ - name: "BudgetId"
+ type: "integer"
+ description: "The ID of the budget that the campaign shares with other campaigns in the account. Refer to [Microsoft's documentation](https://docs.microsoft.com/en-us/bingads/campaign-management-service/budget) for more info on budgets."
+
+ - name: "BudgetType"
+ type: "string"
+ description: "The budget type that determines how the budget is spent."
+
+ - name: "CampaignType"
+ type: "string"
+ description: "The type of campaign."
+
+ - name: "DailyBudget"
+ type: "number"
+ description: "The amount to spend daily on the campaign."
+
+ - name: "Description"
+ type: "string"
+ description: "The description of the campaign."
+
+ - name: "ForwardCompatibilityMap"
+ type: "array"
+ description: "Details about the forward compatibility settings for the campaign."
+ doc-link: https://docs.microsoft.com/en-us/bingads/customer-management-service/keyvaluepairofstringstring
+ subattributes:
+ - name: "keyValuePairOfStringString"
+ type: "array"
+ description: "Key and value pairs for the campaign's forward compatibility settings."
+ subattributes:
+ - name: "key"
+ type: "string"
+ description: "The name of the setting."
+
+ - name: "value"
+ type: "string"
+ description: "The value of the setting."
+
+ - name: "Languages"
+ type: "string"
+ description: "The languages of the ads and keywords in the campaign."
+
+ - name: "Name"
+ type: "string"
+ description: "The name of the campaign."
+
+ - name: "Settings"
+ type: "array"
+ description: |
+ Details about the settings applied to the campaign.
+
+ Only certain attributes are applicable to different campaign settings. This means that only certain columns will contain values based on the `Type` field.
+ subattributes:
+ - name: "Type"
+ type: "string"
+ description: |
+ The type of setting. Possible values are:
+
+ - `CoOpSetting`
+ - `DynamicSearchAdsSetting`
+ - `ShoppingSetting`
+
+ doc-link: https://docs.microsoft.com/en-us/bingads/campaign-management-service/setting
+
+ - name: "BidBoostValue"
+ type: "number"
+ description: |
+ **Applicable to Cooperative Bidding campaigns,** or `Type: CoOpSetting`. The percentage that allows your cooperative bid to flex.
+
+ - name: "BidMaxValue"
+ type: "number"
+ description: |
+ **Applicable to Cooperative Bidding campaigns,** or `Type: CoOpSetting`. The flat amount of your cooperative bid.
+
+ - name: "BidOption"
+ type: "string"
+ description: |
+ **Applicable to Cooperative Bidding campaigns,** or `Type: CoOpSetting`. Determines whether or not to amplify your partner's bid.
+
+ - name: "DomainName"
+ type: "string"
+ description: |
+ **Applicable to Dynamic Search Ads campaigns,** or `Type: DynamicSearchAdsSetting`. The domain name of the website that you want to target for dynamic search ads.
+
+ - name: "Language"
+ type: "string"
+ description: |
+ **Applicable to Dynamic Search Ads campaigns,** or `Type: DynamicSearchAdsSetting`. The language of the website pages that you want to target for dynamic search ads.
+
+ - name: "PageFeedIds"
+ type: "array"
+ description: |
+ **Applicable to Dynamic Search Ads campaigns,** or `Type: DynamicSearchAdsSetting`. Reserved by Microsoft.
+ subattributes:
+ - name: "value"
+ type: "integer"
+ description: |
+ **Applicable to Dynamic Search Ads campaigns,** or `Type: DynamicSearchAdsSetting`. Reserved by Microsoft.
+
+ - name: "Source"
+ type: "string"
+ description: |
+ **Applicable to Dynamic Search Ads campaigns,** or `Type: DynamicSearchAdsSetting`. Reserved by Microsoft.
+
+ - name: "LocalInventoryAdsEnabled"
+ type: "boolean"
+ description: |
+ **Applicable to feed-based audience or shopping campaigns,** or `Type: ShoppingSetting`. Determines whether local inventory ads are enabled for the Bing Merchant Center store.
+
+ - name: "Priority"
+ type: "integer"
+ description: |
+ **Applicable to feed-based audience or shopping campaigns,** or `Type: ShoppingSetting`. Determines which Bing Shopping campaign serves ads, in the event that two or more campaigns use the product catalog feed from the same Bing Merchant Center store.
+
+ Possible value are `0`, `1`, or `2`. The higher numbers are given priority.
+
+ - name: "SalesCountryCode"
+ type: "string"
+ description: |
+ **Applicable to feed-based audience or shopping campaigns,** or `Type: ShoppingSetting`. The country code for the Bing Merchant Center store. Refer to [Microsoft's documentation](https://docs.microsoft.com/en-us/bingads/campaign-management-service/getbsccountries?view=bingads-12){:target="new"} for a list of possible values.
+
+ - name: "StoreId"
+ type: "integer"
+ description: |
+ **Applicable to feed-based audience or shopping campaigns,** or `Type: ShoppingSetting`. The ID for the Bing Merchant Center store that contains a product catalog feed that you want to use for the campaign.
+
+ - name: "Status"
+ type: "string"
+ description: "The status of the campaign. Possible values are `Active` and `Paused`."
+
+ - name: "TimeZone"
+ type: "string"
+ description: "The timezone where the campaign operates."
+
+ - name: "TrackingUrlTemplate"
+ type: "string"
+ description: "The tracking template to use as a default for all URLs in the campaign."
+
+ - name: "UrlCustomParameters"
+ type: "string"
+ description: "The custom collection of key and value parameters for URL tracking."
+---
\ No newline at end of file
diff --git a/_integration-schemas/bing-ads/v2/foreign-keys.md b/archive/_integration-schemas/bing-ads/v2/foreign-keys.md
similarity index 100%
rename from _integration-schemas/bing-ads/v2/foreign-keys.md
rename to archive/_integration-schemas/bing-ads/v2/foreign-keys.md
diff --git a/archive/_integration-schemas/bing-ads/v2/geographic_performance_report.md b/archive/_integration-schemas/bing-ads/v2/geographic_performance_report.md
new file mode 100644
index 000000000..34cd96139
--- /dev/null
+++ b/archive/_integration-schemas/bing-ads/v2/geographic_performance_report.md
@@ -0,0 +1,49 @@
+---
+tap: "bing-ads"
+version: "2"
+
+name: "geographic_performance_report"
+doc-link: https://docs.microsoft.com/en-us/advertising/reporting-service/geographicperformancereportfilter?view=bingads-13
+
+description: |
+ The `{{ table.name }}` table contains info about the physical locations of people searching for an ad or the locations people are searching for. This data can be used to validate or improve location targeting strategies.
+
+ [This is a **Report** table](#replication). See the **Replication** section for information on how data is replicated and loaded for this table.
+
+replication-method: "Key-based Incremental"
+loading-behavior: "Append-Only"
+
+attribution-window: true
+
+attributes:
+ - name: "AccountId"
+ type: "integer"
+ primary-key: true
+ description: "The Bing Ads-assigned ID of the account."
+ foreign-key-id: "account-id"
+
+ - name: "{{ system-column.report-date-time }}"
+ type: "date-time"
+ primary-key: true
+ description: "The start time of the Stitch replication job that replicated this record."
+
+ - name: "TimePeriod"
+ type: "date"
+ primary-key: true
+ replication-key: true
+ description: "The day the record pertains to."
+
+ - name: "AdGroupId"
+ type: "integer"
+ description: "The ID of the ad group."
+ foreign-key-id: "ad-group-id"
+
+ - name: "CampaignId"
+ type: "integer"
+ description: "The ID of the campaign."
+ foreign-key-id: "campaign-id"
+
+ - name: "Custom Fields"
+ description: |
+ Columns selected by you. For descriptions of available columns, refer to [Microsoft's documentation]({{ table.doc-link }}).
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/bing-ads/v2/goals_and_funnels_report.md b/archive/_integration-schemas/bing-ads/v2/goals_and_funnels_report.md
new file mode 100644
index 000000000..4f0df761f
--- /dev/null
+++ b/archive/_integration-schemas/bing-ads/v2/goals_and_funnels_report.md
@@ -0,0 +1,53 @@
+---
+tap: "bing-ads"
+version: "2"
+
+name: "goals_and_funnels_report"
+doc-link: https://docs.microsoft.com/en-us/advertising/reporting-service/goalsandfunnelsreportfilter?view=bingads-13
+
+description: |
+ The `{{ table.name }}` table contains information about your audience's progression through your conversion funnel. Use this report to determine the point at which users leave the funnel, thereby allowing you to improve and increase conversion.
+
+ [This is a **Report** table](#replication). See the **Replication** section for information on how data is replicated and loaded for this table.
+
+replication-method: "Key-based Incremental"
+loading-behavior: "Append-Only"
+
+attribution-window: true
+
+attributes:
+ - name: "AccountId"
+ type: "integer"
+ primary-key: true
+ description: "The Bing Ads-assigned ID of the account."
+ foreign-key-id: "account-id"
+
+ - name: "{{ system-column.report-date-time }}"
+ type: "date-time"
+ primary-key: true
+ description: "The start time of the Stitch replication job that replicated this record."
+
+ - name: "TimePeriod"
+ type: "date"
+ primary-key: true
+ replication-key: true
+ description: "The day the record pertains to."
+
+ - name: "AdGroupId"
+ type: "integer"
+ description: "The ID of the ad group."
+ foreign-key-id: "ad-group-id"
+
+ - name: "CampaignId"
+ type: "integer"
+ description: "The ID of the campaign."
+ foreign-key-id: "campaign-id"
+
+ - name: "Goal"
+ type: "string"
+ description: "The name of the goal you set for the conversions you want."
+
+ - name: "Custom Fields"
+ description: |
+ Columns selected by you. For descriptions of available columns, refer to [Microsoft's documentation]({{ table.doc-link }}).
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/bing-ads/v2/keyword_performance_report.md b/archive/_integration-schemas/bing-ads/v2/keyword_performance_report.md
new file mode 100644
index 000000000..ca5524406
--- /dev/null
+++ b/archive/_integration-schemas/bing-ads/v2/keyword_performance_report.md
@@ -0,0 +1,63 @@
+---
+tap: "bing-ads"
+version: "2"
+
+name: "keyword_performance_report"
+doc-link: https://docs.microsoft.com/en-us/advertising/reporting-service/keywordperformancereportfilter?view=bingads-13
+
+description: |
+ The `{{ table.name }}` table contains performance data about keywords.
+
+ [This is a **Report** table](#replication). See the **Replication** section for information on how data is replicated and loaded for this table.
+
+ #### Columns renamed from Bing Ads v1 {#renamed-v1-columns}
+
+ In this version of Stitch's {{ integration.display_name }} integration, some columns have been re-named. This was done to ensure consistency between the fields in our integration and [the changes made by Microsoft to the Bing Ads API](https://docs.microsoft.com/en-us/bingads/guides/migration-guide?view=bingads-12#reporting-downloadedcolumns){:target="new}.
+
+ - `FinalAppURL` is now `FinalAppUrl`
+ - `FinalURL` is now `FinalUrl`
+ - `FinalMobileURL` is now `FinalMobileUrl`
+ - `HistoricQualityScore` is now `HistoricalQualityScore`
+ - `HistoricExpectedCtr` is now `HistoricalExpectedCtr`
+ - `HistoricAdRelevance` is now `HistoricalAdRelevance`
+ - `HistoricLandingPageExperience` is now `HistoricalLandingPageExperience`
+ - `Status` is now `CampaignStatus`
+ - `SidebarBid` is now `FirstPageBid`
+
+replication-method: "Key-based Incremental"
+loading-behavior: "Append-Only"
+
+attribution-window: true
+
+attributes:
+ - name: "AccountId"
+ type: "integer"
+ primary-key: true
+ description: "The Bing Ads-assigned ID of the account."
+ foreign-key-id: "account-id"
+
+ - name: "{{ system-column.report-date-time }}"
+ type: "date-time"
+ primary-key: true
+ description: "The start time of the Stitch replication job that replicated this record."
+
+ - name: "TimePeriod"
+ type: "date"
+ primary-key: true
+ replication-key: true
+ description: "The day the record pertains to."
+
+ - name: "AdGroupId"
+ type: "integer"
+ description: "The ID of the ad group."
+ foreign-key-id: "ad-group-id"
+
+ - name: "CampaignId"
+ type: "integer"
+ description: "The ID of the campaign."
+ foreign-key-id: "campaign-id"
+
+ - name: "Custom Fields"
+ description: |
+ Columns selected by you. For descriptions of available columns, refer to [Microsoft's documentation]({{ table.doc-link }}).
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/bing-ads/v2/search_query_performance_report.md b/archive/_integration-schemas/bing-ads/v2/search_query_performance_report.md
new file mode 100644
index 000000000..9ed383666
--- /dev/null
+++ b/archive/_integration-schemas/bing-ads/v2/search_query_performance_report.md
@@ -0,0 +1,51 @@
+---
+tap: "bing-ads"
+version: "2"
+
+name: "search_query_performance_report"
+doc-link: https://docs.microsoft.com/en-us/advertising/reporting-service/searchqueryperformancereportfilter?view=bingads-13
+
+description: |
+ The `{{ table.name }} ` table contains performance data for search terms that resulted in a significant number of clicks in the last 30 days. As this data may change over time, use the `keyword_performance_report` table to analyze the overall performance of keywords.
+
+ **Note**: This data in this table is not applicable to Bing Shopping campaigns.
+
+ [This is a **Report** table](#replication). See the **Replication** section for information on how data is replicated and loaded for this table.
+
+replication-method: "Key-based Incremental"
+loading-behavior: "Append-Only"
+
+attribution-window: true
+
+attributes:
+ - name: "AccountId"
+ type: "integer"
+ primary-key: true
+ description: "The Bing Ads-assigned ID of the account."
+ foreign-key-id: "account-id"
+
+ - name: "{{ system-column.report-date-time }}"
+ type: "date-time"
+ primary-key: true
+ description: "The start time of the Stitch replication job that replicated this record."
+
+ - name: "TimePeriod"
+ type: "date"
+ primary-key: true
+ replication-key: true
+ description: "The day the record pertains to."
+
+ - name: "AdGroupId"
+ type: "integer"
+ description: "The ID of the ad group."
+ foreign-key-id: "ad-group-id"
+
+ - name: "CampaignId"
+ type: "integer"
+ description: "The ID of the campaign."
+ foreign-key-id: "campaign-id"
+
+ - name: "Custom Fields"
+ description: |
+ Columns selected by you. For descriptions of available columns, refer to [Microsoft's documentation]({{ table.doc-link }}).
+---
\ No newline at end of file
diff --git a/_integration-schemas/braintree/transactions.yml b/archive/_integration-schemas/braintree/transactions.yml
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/braintree/transactions.yml
rename to archive/_integration-schemas/braintree/transactions.yml
diff --git a/_integration-schemas/bronto/contact.md b/archive/_integration-schemas/bronto/contact.md
similarity index 100%
rename from _integration-schemas/bronto/contact.md
rename to archive/_integration-schemas/bronto/contact.md
diff --git a/_integration-schemas/bronto/foreign-keys.md b/archive/_integration-schemas/bronto/foreign-keys.md
similarity index 100%
rename from _integration-schemas/bronto/foreign-keys.md
rename to archive/_integration-schemas/bronto/foreign-keys.md
diff --git a/_integration-schemas/bronto/inbound_activity.md b/archive/_integration-schemas/bronto/inbound_activity.md
similarity index 100%
rename from _integration-schemas/bronto/inbound_activity.md
rename to archive/_integration-schemas/bronto/inbound_activity.md
diff --git a/_integration-schemas/bronto/list.md b/archive/_integration-schemas/bronto/list.md
similarity index 100%
rename from _integration-schemas/bronto/list.md
rename to archive/_integration-schemas/bronto/list.md
diff --git a/_integration-schemas/bronto/outbound_activity.md b/archive/_integration-schemas/bronto/outbound_activity.md
similarity index 100%
rename from _integration-schemas/bronto/outbound_activity.md
rename to archive/_integration-schemas/bronto/outbound_activity.md
diff --git a/_integration-schemas/bronto/unsubscribe.md b/archive/_integration-schemas/bronto/unsubscribe.md
similarity index 100%
rename from _integration-schemas/bronto/unsubscribe.md
rename to archive/_integration-schemas/bronto/unsubscribe.md
diff --git a/_integration-schemas/campaign-manager/sample_report_table.md b/archive/_integration-schemas/campaign-manager/sample_report_table.md
similarity index 100%
rename from _integration-schemas/campaign-manager/sample_report_table.md
rename to archive/_integration-schemas/campaign-manager/sample_report_table.md
diff --git a/_integration-schemas/campaign-monitor/v1/campaign_bounces.md b/archive/_integration-schemas/campaign-monitor/v1/campaign_bounces.md
similarity index 100%
rename from _integration-schemas/campaign-monitor/v1/campaign_bounces.md
rename to archive/_integration-schemas/campaign-monitor/v1/campaign_bounces.md
diff --git a/_integration-schemas/campaign-monitor/v1/campaign_clicks.md b/archive/_integration-schemas/campaign-monitor/v1/campaign_clicks.md
similarity index 100%
rename from _integration-schemas/campaign-monitor/v1/campaign_clicks.md
rename to archive/_integration-schemas/campaign-monitor/v1/campaign_clicks.md
diff --git a/_integration-schemas/campaign-monitor/v1/campaign_email_client_usage.md b/archive/_integration-schemas/campaign-monitor/v1/campaign_email_client_usage.md
similarity index 100%
rename from _integration-schemas/campaign-monitor/v1/campaign_email_client_usage.md
rename to archive/_integration-schemas/campaign-monitor/v1/campaign_email_client_usage.md
diff --git a/_integration-schemas/campaign-monitor/v1/campaign_opens.md b/archive/_integration-schemas/campaign-monitor/v1/campaign_opens.md
similarity index 100%
rename from _integration-schemas/campaign-monitor/v1/campaign_opens.md
rename to archive/_integration-schemas/campaign-monitor/v1/campaign_opens.md
diff --git a/_integration-schemas/campaign-monitor/v1/campaign_recipients.md b/archive/_integration-schemas/campaign-monitor/v1/campaign_recipients.md
similarity index 100%
rename from _integration-schemas/campaign-monitor/v1/campaign_recipients.md
rename to archive/_integration-schemas/campaign-monitor/v1/campaign_recipients.md
diff --git a/_integration-schemas/campaign-monitor/v1/campaign_spam_complaints.md b/archive/_integration-schemas/campaign-monitor/v1/campaign_spam_complaints.md
similarity index 100%
rename from _integration-schemas/campaign-monitor/v1/campaign_spam_complaints.md
rename to archive/_integration-schemas/campaign-monitor/v1/campaign_spam_complaints.md
diff --git a/_integration-schemas/campaign-monitor/v1/campaign_summary.md b/archive/_integration-schemas/campaign-monitor/v1/campaign_summary.md
similarity index 100%
rename from _integration-schemas/campaign-monitor/v1/campaign_summary.md
rename to archive/_integration-schemas/campaign-monitor/v1/campaign_summary.md
diff --git a/_integration-schemas/campaign-monitor/v1/campaign_unsubscribes.md b/archive/_integration-schemas/campaign-monitor/v1/campaign_unsubscribes.md
similarity index 100%
rename from _integration-schemas/campaign-monitor/v1/campaign_unsubscribes.md
rename to archive/_integration-schemas/campaign-monitor/v1/campaign_unsubscribes.md
diff --git a/_integration-schemas/campaign-monitor/v1/campaigns.md b/archive/_integration-schemas/campaign-monitor/v1/campaigns.md
similarity index 100%
rename from _integration-schemas/campaign-monitor/v1/campaigns.md
rename to archive/_integration-schemas/campaign-monitor/v1/campaigns.md
diff --git a/_integration-schemas/campaign-monitor/v1/foreign-keys.yml b/archive/_integration-schemas/campaign-monitor/v1/foreign-keys.yml
similarity index 100%
rename from _integration-schemas/campaign-monitor/v1/foreign-keys.yml
rename to archive/_integration-schemas/campaign-monitor/v1/foreign-keys.yml
diff --git a/_integration-schemas/campaign-monitor/v1/list_active_subscribers.md b/archive/_integration-schemas/campaign-monitor/v1/list_active_subscribers.md
similarity index 100%
rename from _integration-schemas/campaign-monitor/v1/list_active_subscribers.md
rename to archive/_integration-schemas/campaign-monitor/v1/list_active_subscribers.md
diff --git a/_integration-schemas/campaign-monitor/v1/list_bounced_subscribers.md b/archive/_integration-schemas/campaign-monitor/v1/list_bounced_subscribers.md
similarity index 100%
rename from _integration-schemas/campaign-monitor/v1/list_bounced_subscribers.md
rename to archive/_integration-schemas/campaign-monitor/v1/list_bounced_subscribers.md
diff --git a/_integration-schemas/campaign-monitor/v1/list_deleted_subscribers.md b/archive/_integration-schemas/campaign-monitor/v1/list_deleted_subscribers.md
similarity index 100%
rename from _integration-schemas/campaign-monitor/v1/list_deleted_subscribers.md
rename to archive/_integration-schemas/campaign-monitor/v1/list_deleted_subscribers.md
diff --git a/_integration-schemas/campaign-monitor/v1/list_details.md b/archive/_integration-schemas/campaign-monitor/v1/list_details.md
similarity index 100%
rename from _integration-schemas/campaign-monitor/v1/list_details.md
rename to archive/_integration-schemas/campaign-monitor/v1/list_details.md
diff --git a/_integration-schemas/campaign-monitor/v1/list_unconfirmed_subscribers.md b/archive/_integration-schemas/campaign-monitor/v1/list_unconfirmed_subscribers.md
similarity index 100%
rename from _integration-schemas/campaign-monitor/v1/list_unconfirmed_subscribers.md
rename to archive/_integration-schemas/campaign-monitor/v1/list_unconfirmed_subscribers.md
diff --git a/_integration-schemas/campaign-monitor/v1/list_unsubscribed_subscribers.md b/archive/_integration-schemas/campaign-monitor/v1/list_unsubscribed_subscribers.md
similarity index 100%
rename from _integration-schemas/campaign-monitor/v1/list_unsubscribed_subscribers.md
rename to archive/_integration-schemas/campaign-monitor/v1/list_unsubscribed_subscribers.md
diff --git a/_integration-schemas/campaign-monitor/v1/lists.md b/archive/_integration-schemas/campaign-monitor/v1/lists.md
similarity index 100%
rename from _integration-schemas/campaign-monitor/v1/lists.md
rename to archive/_integration-schemas/campaign-monitor/v1/lists.md
diff --git a/_integration-schemas/chargebee/20-05-2019/addons.md b/archive/_integration-schemas/chargebee/20-05-2019/addons.md
similarity index 100%
rename from _integration-schemas/chargebee/20-05-2019/addons.md
rename to archive/_integration-schemas/chargebee/20-05-2019/addons.md
diff --git a/_integration-schemas/chargebee/20-05-2019/coupons.md b/archive/_integration-schemas/chargebee/20-05-2019/coupons.md
similarity index 100%
rename from _integration-schemas/chargebee/20-05-2019/coupons.md
rename to archive/_integration-schemas/chargebee/20-05-2019/coupons.md
diff --git a/_integration-schemas/chargebee/20-05-2019/credit_notes.md b/archive/_integration-schemas/chargebee/20-05-2019/credit_notes.md
similarity index 100%
rename from _integration-schemas/chargebee/20-05-2019/credit_notes.md
rename to archive/_integration-schemas/chargebee/20-05-2019/credit_notes.md
diff --git a/_integration-schemas/chargebee/20-05-2019/customers.md b/archive/_integration-schemas/chargebee/20-05-2019/customers.md
similarity index 100%
rename from _integration-schemas/chargebee/20-05-2019/customers.md
rename to archive/_integration-schemas/chargebee/20-05-2019/customers.md
diff --git a/_integration-schemas/chargebee/20-05-2019/events.md b/archive/_integration-schemas/chargebee/20-05-2019/events.md
similarity index 100%
rename from _integration-schemas/chargebee/20-05-2019/events.md
rename to archive/_integration-schemas/chargebee/20-05-2019/events.md
diff --git a/_integration-schemas/chargebee/20-05-2019/foreign-keys.md b/archive/_integration-schemas/chargebee/20-05-2019/foreign-keys.md
similarity index 100%
rename from _integration-schemas/chargebee/20-05-2019/foreign-keys.md
rename to archive/_integration-schemas/chargebee/20-05-2019/foreign-keys.md
diff --git a/_integration-schemas/chargebee/20-05-2019/invoices.md b/archive/_integration-schemas/chargebee/20-05-2019/invoices.md
similarity index 100%
rename from _integration-schemas/chargebee/20-05-2019/invoices.md
rename to archive/_integration-schemas/chargebee/20-05-2019/invoices.md
diff --git a/_integration-schemas/chargebee/20-05-2019/payment_sources.md b/archive/_integration-schemas/chargebee/20-05-2019/payment_sources.md
similarity index 100%
rename from _integration-schemas/chargebee/20-05-2019/payment_sources.md
rename to archive/_integration-schemas/chargebee/20-05-2019/payment_sources.md
diff --git a/_integration-schemas/chargebee/20-05-2019/plans.md b/archive/_integration-schemas/chargebee/20-05-2019/plans.md
similarity index 100%
rename from _integration-schemas/chargebee/20-05-2019/plans.md
rename to archive/_integration-schemas/chargebee/20-05-2019/plans.md
diff --git a/_integration-schemas/chargebee/20-05-2019/subscriptions.md b/archive/_integration-schemas/chargebee/20-05-2019/subscriptions.md
similarity index 100%
rename from _integration-schemas/chargebee/20-05-2019/subscriptions.md
rename to archive/_integration-schemas/chargebee/20-05-2019/subscriptions.md
diff --git a/_integration-schemas/chargebee/20-05-2019/transactions.md b/archive/_integration-schemas/chargebee/20-05-2019/transactions.md
similarity index 100%
rename from _integration-schemas/chargebee/20-05-2019/transactions.md
rename to archive/_integration-schemas/chargebee/20-05-2019/transactions.md
diff --git a/_integration-schemas/chargebee/20-05-2019/virtual_bank_accounts.md b/archive/_integration-schemas/chargebee/20-05-2019/virtual_bank_accounts.md
similarity index 100%
rename from _integration-schemas/chargebee/20-05-2019/virtual_bank_accounts.md
rename to archive/_integration-schemas/chargebee/20-05-2019/virtual_bank_accounts.md
diff --git a/_integration-schemas/chargebee/v1/addons.md b/archive/_integration-schemas/chargebee/v1/addons.md
similarity index 100%
rename from _integration-schemas/chargebee/v1/addons.md
rename to archive/_integration-schemas/chargebee/v1/addons.md
diff --git a/_integration-schemas/chargebee/v1/coupons.md b/archive/_integration-schemas/chargebee/v1/coupons.md
similarity index 100%
rename from _integration-schemas/chargebee/v1/coupons.md
rename to archive/_integration-schemas/chargebee/v1/coupons.md
diff --git a/_integration-schemas/chargebee/v1/credit_notes.md b/archive/_integration-schemas/chargebee/v1/credit_notes.md
similarity index 100%
rename from _integration-schemas/chargebee/v1/credit_notes.md
rename to archive/_integration-schemas/chargebee/v1/credit_notes.md
diff --git a/_integration-schemas/chargebee/v1/customers.md b/archive/_integration-schemas/chargebee/v1/customers.md
similarity index 100%
rename from _integration-schemas/chargebee/v1/customers.md
rename to archive/_integration-schemas/chargebee/v1/customers.md
diff --git a/_integration-schemas/chargebee/v1/events.md b/archive/_integration-schemas/chargebee/v1/events.md
similarity index 100%
rename from _integration-schemas/chargebee/v1/events.md
rename to archive/_integration-schemas/chargebee/v1/events.md
diff --git a/_integration-schemas/chargebee/v1/foreign-keys.md b/archive/_integration-schemas/chargebee/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/chargebee/v1/foreign-keys.md
rename to archive/_integration-schemas/chargebee/v1/foreign-keys.md
diff --git a/_integration-schemas/chargebee/v1/gifts.md b/archive/_integration-schemas/chargebee/v1/gifts.md
similarity index 100%
rename from _integration-schemas/chargebee/v1/gifts.md
rename to archive/_integration-schemas/chargebee/v1/gifts.md
diff --git a/_integration-schemas/chargebee/v1/invoices.md b/archive/_integration-schemas/chargebee/v1/invoices.md
similarity index 100%
rename from _integration-schemas/chargebee/v1/invoices.md
rename to archive/_integration-schemas/chargebee/v1/invoices.md
diff --git a/_integration-schemas/chargebee/v1/item_families.md b/archive/_integration-schemas/chargebee/v1/item_families.md
similarity index 100%
rename from _integration-schemas/chargebee/v1/item_families.md
rename to archive/_integration-schemas/chargebee/v1/item_families.md
diff --git a/_integration-schemas/chargebee/v1/item_prices.md b/archive/_integration-schemas/chargebee/v1/item_prices.md
similarity index 100%
rename from _integration-schemas/chargebee/v1/item_prices.md
rename to archive/_integration-schemas/chargebee/v1/item_prices.md
diff --git a/_integration-schemas/chargebee/v1/items.md b/archive/_integration-schemas/chargebee/v1/items.md
similarity index 100%
rename from _integration-schemas/chargebee/v1/items.md
rename to archive/_integration-schemas/chargebee/v1/items.md
diff --git a/_integration-schemas/chargebee/v1/orders.md b/archive/_integration-schemas/chargebee/v1/orders.md
similarity index 100%
rename from _integration-schemas/chargebee/v1/orders.md
rename to archive/_integration-schemas/chargebee/v1/orders.md
diff --git a/_integration-schemas/chargebee/v1/payment_sources.md b/archive/_integration-schemas/chargebee/v1/payment_sources.md
similarity index 100%
rename from _integration-schemas/chargebee/v1/payment_sources.md
rename to archive/_integration-schemas/chargebee/v1/payment_sources.md
diff --git a/_integration-schemas/chargebee/v1/plans.md b/archive/_integration-schemas/chargebee/v1/plans.md
similarity index 100%
rename from _integration-schemas/chargebee/v1/plans.md
rename to archive/_integration-schemas/chargebee/v1/plans.md
diff --git a/_integration-schemas/chargebee/v1/promotional_credit.md b/archive/_integration-schemas/chargebee/v1/promotional_credit.md
similarity index 100%
rename from _integration-schemas/chargebee/v1/promotional_credit.md
rename to archive/_integration-schemas/chargebee/v1/promotional_credit.md
diff --git a/_integration-schemas/chargebee/v1/subscriptions.md b/archive/_integration-schemas/chargebee/v1/subscriptions.md
similarity index 100%
rename from _integration-schemas/chargebee/v1/subscriptions.md
rename to archive/_integration-schemas/chargebee/v1/subscriptions.md
diff --git a/_integration-schemas/chargebee/v1/transactions.md b/archive/_integration-schemas/chargebee/v1/transactions.md
similarity index 100%
rename from _integration-schemas/chargebee/v1/transactions.md
rename to archive/_integration-schemas/chargebee/v1/transactions.md
diff --git a/_integration-schemas/chargebee/v1/virtual_bank_accounts.md b/archive/_integration-schemas/chargebee/v1/virtual_bank_accounts.md
similarity index 100%
rename from _integration-schemas/chargebee/v1/virtual_bank_accounts.md
rename to archive/_integration-schemas/chargebee/v1/virtual_bank_accounts.md
diff --git a/_integration-schemas/chargify/v1/components.md b/archive/_integration-schemas/chargify/v1/components.md
similarity index 100%
rename from _integration-schemas/chargify/v1/components.md
rename to archive/_integration-schemas/chargify/v1/components.md
diff --git a/_integration-schemas/chargify/v1/coupons.md b/archive/_integration-schemas/chargify/v1/coupons.md
similarity index 100%
rename from _integration-schemas/chargify/v1/coupons.md
rename to archive/_integration-schemas/chargify/v1/coupons.md
diff --git a/_integration-schemas/chargify/v1/customers.md b/archive/_integration-schemas/chargify/v1/customers.md
similarity index 100%
rename from _integration-schemas/chargify/v1/customers.md
rename to archive/_integration-schemas/chargify/v1/customers.md
diff --git a/_integration-schemas/chargify/v1/events.md b/archive/_integration-schemas/chargify/v1/events.md
similarity index 100%
rename from _integration-schemas/chargify/v1/events.md
rename to archive/_integration-schemas/chargify/v1/events.md
diff --git a/_integration-schemas/chargify/v1/foreign-keys.md b/archive/_integration-schemas/chargify/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/chargify/v1/foreign-keys.md
rename to archive/_integration-schemas/chargify/v1/foreign-keys.md
diff --git a/_integration-schemas/chargify/v1/invoices.md b/archive/_integration-schemas/chargify/v1/invoices.md
similarity index 100%
rename from _integration-schemas/chargify/v1/invoices.md
rename to archive/_integration-schemas/chargify/v1/invoices.md
diff --git a/_integration-schemas/chargify/v1/price_points.md b/archive/_integration-schemas/chargify/v1/price_points.md
similarity index 100%
rename from _integration-schemas/chargify/v1/price_points.md
rename to archive/_integration-schemas/chargify/v1/price_points.md
diff --git a/_integration-schemas/chargify/v1/product_families.md b/archive/_integration-schemas/chargify/v1/product_families.md
similarity index 100%
rename from _integration-schemas/chargify/v1/product_families.md
rename to archive/_integration-schemas/chargify/v1/product_families.md
diff --git a/_integration-schemas/chargify/v1/products.md b/archive/_integration-schemas/chargify/v1/products.md
similarity index 100%
rename from _integration-schemas/chargify/v1/products.md
rename to archive/_integration-schemas/chargify/v1/products.md
diff --git a/_integration-schemas/chargify/v1/statements.md b/archive/_integration-schemas/chargify/v1/statements.md
similarity index 100%
rename from _integration-schemas/chargify/v1/statements.md
rename to archive/_integration-schemas/chargify/v1/statements.md
diff --git a/_integration-schemas/chargify/v1/subscriptions.md b/archive/_integration-schemas/chargify/v1/subscriptions.md
similarity index 100%
rename from _integration-schemas/chargify/v1/subscriptions.md
rename to archive/_integration-schemas/chargify/v1/subscriptions.md
diff --git a/_integration-schemas/chargify/v1/transactions.md b/archive/_integration-schemas/chargify/v1/transactions.md
similarity index 100%
rename from _integration-schemas/chargify/v1/transactions.md
rename to archive/_integration-schemas/chargify/v1/transactions.md
diff --git a/_integration-schemas/circle-ci/v1/foreign-keys.md b/archive/_integration-schemas/circle-ci/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/circle-ci/v1/foreign-keys.md
rename to archive/_integration-schemas/circle-ci/v1/foreign-keys.md
diff --git a/_integration-schemas/circle-ci/v1/jobs.md b/archive/_integration-schemas/circle-ci/v1/jobs.md
similarity index 100%
rename from _integration-schemas/circle-ci/v1/jobs.md
rename to archive/_integration-schemas/circle-ci/v1/jobs.md
diff --git a/_integration-schemas/circle-ci/v1/pipelines.md b/archive/_integration-schemas/circle-ci/v1/pipelines.md
similarity index 99%
rename from _integration-schemas/circle-ci/v1/pipelines.md
rename to archive/_integration-schemas/circle-ci/v1/pipelines.md
index 986e6aed3..d87f0cd40 100644
--- a/_integration-schemas/circle-ci/v1/pipelines.md
+++ b/archive/_integration-schemas/circle-ci/v1/pipelines.md
@@ -85,7 +85,6 @@ attributes:
- name: "trigger_parameters"
type: "object"
description: ""
- subattributes:
- name: "vcs"
diff --git a/_integration-schemas/circle-ci/v1/workflows.md b/archive/_integration-schemas/circle-ci/v1/workflows.md
similarity index 100%
rename from _integration-schemas/circle-ci/v1/workflows.md
rename to archive/_integration-schemas/circle-ci/v1/workflows.md
diff --git a/_integration-schemas/closeio/v1/activities.md b/archive/_integration-schemas/closeio/v1/activities.md
similarity index 100%
rename from _integration-schemas/closeio/v1/activities.md
rename to archive/_integration-schemas/closeio/v1/activities.md
diff --git a/_integration-schemas/closeio/v1/custom_fields.md b/archive/_integration-schemas/closeio/v1/custom_fields.md
similarity index 100%
rename from _integration-schemas/closeio/v1/custom_fields.md
rename to archive/_integration-schemas/closeio/v1/custom_fields.md
diff --git a/_integration-schemas/closeio/v1/event_log.md b/archive/_integration-schemas/closeio/v1/event_log.md
similarity index 100%
rename from _integration-schemas/closeio/v1/event_log.md
rename to archive/_integration-schemas/closeio/v1/event_log.md
diff --git a/_integration-schemas/closeio/v1/foreign-keys.md b/archive/_integration-schemas/closeio/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/closeio/v1/foreign-keys.md
rename to archive/_integration-schemas/closeio/v1/foreign-keys.md
diff --git a/_integration-schemas/closeio/v1/leads.md b/archive/_integration-schemas/closeio/v1/leads.md
similarity index 100%
rename from _integration-schemas/closeio/v1/leads.md
rename to archive/_integration-schemas/closeio/v1/leads.md
diff --git a/_integration-schemas/closeio/v1/tasks.md b/archive/_integration-schemas/closeio/v1/tasks.md
similarity index 100%
rename from _integration-schemas/closeio/v1/tasks.md
rename to archive/_integration-schemas/closeio/v1/tasks.md
diff --git a/_integration-schemas/closeio/v1/users.md b/archive/_integration-schemas/closeio/v1/users.md
similarity index 100%
rename from _integration-schemas/closeio/v1/users.md
rename to archive/_integration-schemas/closeio/v1/users.md
diff --git a/_integration-schemas/clubspeed/v1/booking.md b/archive/_integration-schemas/clubspeed/v1/booking.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/booking.md
rename to archive/_integration-schemas/clubspeed/v1/booking.md
diff --git a/_integration-schemas/clubspeed/v1/booking_availability.md b/archive/_integration-schemas/clubspeed/v1/booking_availability.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/booking_availability.md
rename to archive/_integration-schemas/clubspeed/v1/booking_availability.md
diff --git a/_integration-schemas/clubspeed/v1/check_details.md b/archive/_integration-schemas/clubspeed/v1/check_details.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/check_details.md
rename to archive/_integration-schemas/clubspeed/v1/check_details.md
diff --git a/_integration-schemas/clubspeed/v1/checks.md b/archive/_integration-schemas/clubspeed/v1/checks.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/checks.md
rename to archive/_integration-schemas/clubspeed/v1/checks.md
diff --git a/_integration-schemas/clubspeed/v1/customers.md b/archive/_integration-schemas/clubspeed/v1/customers.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/customers.md
rename to archive/_integration-schemas/clubspeed/v1/customers.md
diff --git a/_integration-schemas/clubspeed/v1/discount_types.md b/archive/_integration-schemas/clubspeed/v1/discount_types.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/discount_types.md
rename to archive/_integration-schemas/clubspeed/v1/discount_types.md
diff --git a/_integration-schemas/clubspeed/v1/event_heat_details.md b/archive/_integration-schemas/clubspeed/v1/event_heat_details.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/event_heat_details.md
rename to archive/_integration-schemas/clubspeed/v1/event_heat_details.md
diff --git a/_integration-schemas/clubspeed/v1/event_heat_types.md b/archive/_integration-schemas/clubspeed/v1/event_heat_types.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/event_heat_types.md
rename to archive/_integration-schemas/clubspeed/v1/event_heat_types.md
diff --git a/_integration-schemas/clubspeed/v1/event_reservation_links.md b/archive/_integration-schemas/clubspeed/v1/event_reservation_links.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/event_reservation_links.md
rename to archive/_integration-schemas/clubspeed/v1/event_reservation_links.md
diff --git a/_integration-schemas/clubspeed/v1/event_reservation_types.md b/archive/_integration-schemas/clubspeed/v1/event_reservation_types.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/event_reservation_types.md
rename to archive/_integration-schemas/clubspeed/v1/event_reservation_types.md
diff --git a/_integration-schemas/clubspeed/v1/event_reservations.md b/archive/_integration-schemas/clubspeed/v1/event_reservations.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/event_reservations.md
rename to archive/_integration-schemas/clubspeed/v1/event_reservations.md
diff --git a/_integration-schemas/clubspeed/v1/event_rounds.md b/archive/_integration-schemas/clubspeed/v1/event_rounds.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/event_rounds.md
rename to archive/_integration-schemas/clubspeed/v1/event_rounds.md
diff --git a/_integration-schemas/clubspeed/v1/event_statuses.md b/archive/_integration-schemas/clubspeed/v1/event_statuses.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/event_statuses.md
rename to archive/_integration-schemas/clubspeed/v1/event_statuses.md
diff --git a/_integration-schemas/clubspeed/v1/event_task_types.md b/archive/_integration-schemas/clubspeed/v1/event_task_types.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/event_task_types.md
rename to archive/_integration-schemas/clubspeed/v1/event_task_types.md
diff --git a/_integration-schemas/clubspeed/v1/event_tasks.md b/archive/_integration-schemas/clubspeed/v1/event_tasks.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/event_tasks.md
rename to archive/_integration-schemas/clubspeed/v1/event_tasks.md
diff --git a/_integration-schemas/clubspeed/v1/event_types.md b/archive/_integration-schemas/clubspeed/v1/event_types.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/event_types.md
rename to archive/_integration-schemas/clubspeed/v1/event_types.md
diff --git a/_integration-schemas/clubspeed/v1/events.md b/archive/_integration-schemas/clubspeed/v1/events.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/events.md
rename to archive/_integration-schemas/clubspeed/v1/events.md
diff --git a/_integration-schemas/clubspeed/v1/foreign-keys.md b/archive/_integration-schemas/clubspeed/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/foreign-keys.md
rename to archive/_integration-schemas/clubspeed/v1/foreign-keys.md
diff --git a/_integration-schemas/clubspeed/v1/gift_card_history.md b/archive/_integration-schemas/clubspeed/v1/gift_card_history.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/gift_card_history.md
rename to archive/_integration-schemas/clubspeed/v1/gift_card_history.md
diff --git a/_integration-schemas/clubspeed/v1/heat_main.md b/archive/_integration-schemas/clubspeed/v1/heat_main.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/heat_main.md
rename to archive/_integration-schemas/clubspeed/v1/heat_main.md
diff --git a/_integration-schemas/clubspeed/v1/heat_main_details.md b/archive/_integration-schemas/clubspeed/v1/heat_main_details.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/heat_main_details.md
rename to archive/_integration-schemas/clubspeed/v1/heat_main_details.md
diff --git a/_integration-schemas/clubspeed/v1/heat_types.md b/archive/_integration-schemas/clubspeed/v1/heat_types.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/heat_types.md
rename to archive/_integration-schemas/clubspeed/v1/heat_types.md
diff --git a/_integration-schemas/clubspeed/v1/membership_types.md b/archive/_integration-schemas/clubspeed/v1/membership_types.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/membership_types.md
rename to archive/_integration-schemas/clubspeed/v1/membership_types.md
diff --git a/_integration-schemas/clubspeed/v1/memberships.md b/archive/_integration-schemas/clubspeed/v1/memberships.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/memberships.md
rename to archive/_integration-schemas/clubspeed/v1/memberships.md
diff --git a/_integration-schemas/clubspeed/v1/payments.md b/archive/_integration-schemas/clubspeed/v1/payments.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/payments.md
rename to archive/_integration-schemas/clubspeed/v1/payments.md
diff --git a/_integration-schemas/clubspeed/v1/payments_voided.md b/archive/_integration-schemas/clubspeed/v1/payments_voided.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/payments_voided.md
rename to archive/_integration-schemas/clubspeed/v1/payments_voided.md
diff --git a/_integration-schemas/clubspeed/v1/product_classes.md b/archive/_integration-schemas/clubspeed/v1/product_classes.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/product_classes.md
rename to archive/_integration-schemas/clubspeed/v1/product_classes.md
diff --git a/_integration-schemas/clubspeed/v1/products.md b/archive/_integration-schemas/clubspeed/v1/products.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/products.md
rename to archive/_integration-schemas/clubspeed/v1/products.md
diff --git a/_integration-schemas/clubspeed/v1/reservations.md b/archive/_integration-schemas/clubspeed/v1/reservations.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/reservations.md
rename to archive/_integration-schemas/clubspeed/v1/reservations.md
diff --git a/_integration-schemas/clubspeed/v1/sources.md b/archive/_integration-schemas/clubspeed/v1/sources.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/sources.md
rename to archive/_integration-schemas/clubspeed/v1/sources.md
diff --git a/_integration-schemas/clubspeed/v1/taxes.md b/archive/_integration-schemas/clubspeed/v1/taxes.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/taxes.md
rename to archive/_integration-schemas/clubspeed/v1/taxes.md
diff --git a/_integration-schemas/clubspeed/v1/users.md b/archive/_integration-schemas/clubspeed/v1/users.md
similarity index 100%
rename from _integration-schemas/clubspeed/v1/users.md
rename to archive/_integration-schemas/clubspeed/v1/users.md
diff --git a/_integration-schemas/codat/v1/accounts.md b/archive/_integration-schemas/codat/v1/accounts.md
similarity index 100%
rename from _integration-schemas/codat/v1/accounts.md
rename to archive/_integration-schemas/codat/v1/accounts.md
diff --git a/_integration-schemas/codat/v1/balance_sheets.md b/archive/_integration-schemas/codat/v1/balance_sheets.md
similarity index 100%
rename from _integration-schemas/codat/v1/balance_sheets.md
rename to archive/_integration-schemas/codat/v1/balance_sheets.md
diff --git a/_integration-schemas/codat/v1/bank_account_transactions.md b/archive/_integration-schemas/codat/v1/bank_account_transactions.md
similarity index 100%
rename from _integration-schemas/codat/v1/bank_account_transactions.md
rename to archive/_integration-schemas/codat/v1/bank_account_transactions.md
diff --git a/_integration-schemas/codat/v1/bank_accounts.md b/archive/_integration-schemas/codat/v1/bank_accounts.md
similarity index 100%
rename from _integration-schemas/codat/v1/bank_accounts.md
rename to archive/_integration-schemas/codat/v1/bank_accounts.md
diff --git a/_integration-schemas/codat/v1/bank_statement_lines.md b/archive/_integration-schemas/codat/v1/bank_statement_lines.md
similarity index 100%
rename from _integration-schemas/codat/v1/bank_statement_lines.md
rename to archive/_integration-schemas/codat/v1/bank_statement_lines.md
diff --git a/_integration-schemas/codat/v1/bank_statements.md b/archive/_integration-schemas/codat/v1/bank_statements.md
similarity index 100%
rename from _integration-schemas/codat/v1/bank_statements.md
rename to archive/_integration-schemas/codat/v1/bank_statements.md
diff --git a/_integration-schemas/codat/v1/bill_payments.md b/archive/_integration-schemas/codat/v1/bill_payments.md
similarity index 100%
rename from _integration-schemas/codat/v1/bill_payments.md
rename to archive/_integration-schemas/codat/v1/bill_payments.md
diff --git a/_integration-schemas/codat/v1/bills.md b/archive/_integration-schemas/codat/v1/bills.md
similarity index 100%
rename from _integration-schemas/codat/v1/bills.md
rename to archive/_integration-schemas/codat/v1/bills.md
diff --git a/_integration-schemas/codat/v1/companies.md b/archive/_integration-schemas/codat/v1/companies.md
similarity index 100%
rename from _integration-schemas/codat/v1/companies.md
rename to archive/_integration-schemas/codat/v1/companies.md
diff --git a/_integration-schemas/codat/v1/company_info.md b/archive/_integration-schemas/codat/v1/company_info.md
similarity index 100%
rename from _integration-schemas/codat/v1/company_info.md
rename to archive/_integration-schemas/codat/v1/company_info.md
diff --git a/_integration-schemas/codat/v1/connections.md b/archive/_integration-schemas/codat/v1/connections.md
similarity index 100%
rename from _integration-schemas/codat/v1/connections.md
rename to archive/_integration-schemas/codat/v1/connections.md
diff --git a/_integration-schemas/codat/v1/credit_notes.md b/archive/_integration-schemas/codat/v1/credit_notes.md
similarity index 100%
rename from _integration-schemas/codat/v1/credit_notes.md
rename to archive/_integration-schemas/codat/v1/credit_notes.md
diff --git a/_integration-schemas/codat/v1/customers.md b/archive/_integration-schemas/codat/v1/customers.md
similarity index 100%
rename from _integration-schemas/codat/v1/customers.md
rename to archive/_integration-schemas/codat/v1/customers.md
diff --git a/_integration-schemas/codat/v1/events.md b/archive/_integration-schemas/codat/v1/events.md
similarity index 100%
rename from _integration-schemas/codat/v1/events.md
rename to archive/_integration-schemas/codat/v1/events.md
diff --git a/_integration-schemas/codat/v1/foreign-keys.md b/archive/_integration-schemas/codat/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/codat/v1/foreign-keys.md
rename to archive/_integration-schemas/codat/v1/foreign-keys.md
diff --git a/_integration-schemas/codat/v1/invoices.md b/archive/_integration-schemas/codat/v1/invoices.md
similarity index 100%
rename from _integration-schemas/codat/v1/invoices.md
rename to archive/_integration-schemas/codat/v1/invoices.md
diff --git a/_integration-schemas/codat/v1/items.md b/archive/_integration-schemas/codat/v1/items.md
similarity index 100%
rename from _integration-schemas/codat/v1/items.md
rename to archive/_integration-schemas/codat/v1/items.md
diff --git a/_integration-schemas/codat/v1/journal_entries.md b/archive/_integration-schemas/codat/v1/journal_entries.md
similarity index 100%
rename from _integration-schemas/codat/v1/journal_entries.md
rename to archive/_integration-schemas/codat/v1/journal_entries.md
diff --git a/_integration-schemas/codat/v1/payments.md b/archive/_integration-schemas/codat/v1/payments.md
similarity index 100%
rename from _integration-schemas/codat/v1/payments.md
rename to archive/_integration-schemas/codat/v1/payments.md
diff --git a/_integration-schemas/codat/v1/profit_and_loss.md b/archive/_integration-schemas/codat/v1/profit_and_loss.md
similarity index 100%
rename from _integration-schemas/codat/v1/profit_and_loss.md
rename to archive/_integration-schemas/codat/v1/profit_and_loss.md
diff --git a/_integration-schemas/codat/v1/suppliers.md b/archive/_integration-schemas/codat/v1/suppliers.md
similarity index 100%
rename from _integration-schemas/codat/v1/suppliers.md
rename to archive/_integration-schemas/codat/v1/suppliers.md
diff --git a/_integration-schemas/codat/v1/tax_rates.md b/archive/_integration-schemas/codat/v1/tax_rates.md
similarity index 100%
rename from _integration-schemas/codat/v1/tax_rates.md
rename to archive/_integration-schemas/codat/v1/tax_rates.md
diff --git a/_integration-schemas/covid-19/c19_trk_us_daily.md b/archive/_integration-schemas/covid-19/c19_trk_us_daily.md
similarity index 100%
rename from _integration-schemas/covid-19/c19_trk_us_daily.md
rename to archive/_integration-schemas/covid-19/c19_trk_us_daily.md
diff --git a/_integration-schemas/covid-19/c19_trk_us_population_counties.md b/archive/_integration-schemas/covid-19/c19_trk_us_population_counties.md
similarity index 100%
rename from _integration-schemas/covid-19/c19_trk_us_population_counties.md
rename to archive/_integration-schemas/covid-19/c19_trk_us_population_counties.md
diff --git a/_integration-schemas/covid-19/c19_trk_us_population_states.md b/archive/_integration-schemas/covid-19/c19_trk_us_population_states.md
similarity index 100%
rename from _integration-schemas/covid-19/c19_trk_us_population_states.md
rename to archive/_integration-schemas/covid-19/c19_trk_us_population_states.md
diff --git a/_integration-schemas/covid-19/c19_trk_us_population_states_age_groups.md b/archive/_integration-schemas/covid-19/c19_trk_us_population_states_age_groups.md
similarity index 100%
rename from _integration-schemas/covid-19/c19_trk_us_population_states_age_groups.md
rename to archive/_integration-schemas/covid-19/c19_trk_us_population_states_age_groups.md
diff --git a/_integration-schemas/covid-19/c19_trk_us_states_acs_health_insurance.md b/archive/_integration-schemas/covid-19/c19_trk_us_states_acs_health_insurance.md
similarity index 100%
rename from _integration-schemas/covid-19/c19_trk_us_states_acs_health_insurance.md
rename to archive/_integration-schemas/covid-19/c19_trk_us_states_acs_health_insurance.md
diff --git a/_integration-schemas/covid-19/c19_trk_us_states_current.md b/archive/_integration-schemas/covid-19/c19_trk_us_states_current.md
similarity index 100%
rename from _integration-schemas/covid-19/c19_trk_us_states_current.md
rename to archive/_integration-schemas/covid-19/c19_trk_us_states_current.md
diff --git a/_integration-schemas/covid-19/c19_trk_us_states_daily.md b/archive/_integration-schemas/covid-19/c19_trk_us_states_daily.md
similarity index 100%
rename from _integration-schemas/covid-19/c19_trk_us_states_daily.md
rename to archive/_integration-schemas/covid-19/c19_trk_us_states_daily.md
diff --git a/_integration-schemas/covid-19/c19_trk_us_states_info.md b/archive/_integration-schemas/covid-19/c19_trk_us_states_info.md
similarity index 100%
rename from _integration-schemas/covid-19/c19_trk_us_states_info.md
rename to archive/_integration-schemas/covid-19/c19_trk_us_states_info.md
diff --git a/_integration-schemas/covid-19/c19_trk_us_states_kff_hospital_beds.md b/archive/_integration-schemas/covid-19/c19_trk_us_states_kff_hospital_beds.md
similarity index 100%
rename from _integration-schemas/covid-19/c19_trk_us_states_kff_hospital_beds.md
rename to archive/_integration-schemas/covid-19/c19_trk_us_states_kff_hospital_beds.md
diff --git a/_integration-schemas/covid-19/eu_daily.md b/archive/_integration-schemas/covid-19/eu_daily.md
similarity index 100%
rename from _integration-schemas/covid-19/eu_daily.md
rename to archive/_integration-schemas/covid-19/eu_daily.md
diff --git a/_integration-schemas/covid-19/eu_ecdc_daily.md b/archive/_integration-schemas/covid-19/eu_ecdc_daily.md
similarity index 100%
rename from _integration-schemas/covid-19/eu_ecdc_daily.md
rename to archive/_integration-schemas/covid-19/eu_ecdc_daily.md
diff --git a/_integration-schemas/covid-19/italy_national_daily.md b/archive/_integration-schemas/covid-19/italy_national_daily.md
similarity index 100%
rename from _integration-schemas/covid-19/italy_national_daily.md
rename to archive/_integration-schemas/covid-19/italy_national_daily.md
diff --git a/_integration-schemas/covid-19/italy_provincial_daily.md b/archive/_integration-schemas/covid-19/italy_provincial_daily.md
similarity index 100%
rename from _integration-schemas/covid-19/italy_provincial_daily.md
rename to archive/_integration-schemas/covid-19/italy_provincial_daily.md
diff --git a/_integration-schemas/covid-19/italy_regional_daily.md b/archive/_integration-schemas/covid-19/italy_regional_daily.md
similarity index 100%
rename from _integration-schemas/covid-19/italy_regional_daily.md
rename to archive/_integration-schemas/covid-19/italy_regional_daily.md
diff --git a/_integration-schemas/covid-19/jh_csse_daily.md b/archive/_integration-schemas/covid-19/jh_csse_daily.md
similarity index 100%
rename from _integration-schemas/covid-19/jh_csse_daily.md
rename to archive/_integration-schemas/covid-19/jh_csse_daily.md
diff --git a/_integration-schemas/covid-19/neherlab_case_counts.md b/archive/_integration-schemas/covid-19/neherlab_case_counts.md
similarity index 100%
rename from _integration-schemas/covid-19/neherlab_case_counts.md
rename to archive/_integration-schemas/covid-19/neherlab_case_counts.md
diff --git a/_integration-schemas/covid-19/neherlab_country_codes.md b/archive/_integration-schemas/covid-19/neherlab_country_codes.md
similarity index 100%
rename from _integration-schemas/covid-19/neherlab_country_codes.md
rename to archive/_integration-schemas/covid-19/neherlab_country_codes.md
diff --git a/_integration-schemas/covid-19/neherlab_icu_capacity.md b/archive/_integration-schemas/covid-19/neherlab_icu_capacity.md
similarity index 100%
rename from _integration-schemas/covid-19/neherlab_icu_capacity.md
rename to archive/_integration-schemas/covid-19/neherlab_icu_capacity.md
diff --git a/_integration-schemas/covid-19/neherlab_population.md b/archive/_integration-schemas/covid-19/neherlab_population.md
similarity index 100%
rename from _integration-schemas/covid-19/neherlab_population.md
rename to archive/_integration-schemas/covid-19/neherlab_population.md
diff --git a/_integration-schemas/covid-19/nytimes_us_counties.md b/archive/_integration-schemas/covid-19/nytimes_us_counties.md
similarity index 100%
rename from _integration-schemas/covid-19/nytimes_us_counties.md
rename to archive/_integration-schemas/covid-19/nytimes_us_counties.md
diff --git a/_integration-schemas/covid-19/nytimes_us_states.md b/archive/_integration-schemas/covid-19/nytimes_us_states.md
similarity index 100%
rename from _integration-schemas/covid-19/nytimes_us_states.md
rename to archive/_integration-schemas/covid-19/nytimes_us_states.md
diff --git a/_integration-schemas/crossbeam/v1/foreign-keys.md b/archive/_integration-schemas/crossbeam/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/crossbeam/v1/foreign-keys.md
rename to archive/_integration-schemas/crossbeam/v1/foreign-keys.md
diff --git a/_integration-schemas/crossbeam/v1/partner_populations.md b/archive/_integration-schemas/crossbeam/v1/partner_populations.md
similarity index 100%
rename from _integration-schemas/crossbeam/v1/partner_populations.md
rename to archive/_integration-schemas/crossbeam/v1/partner_populations.md
diff --git a/_integration-schemas/crossbeam/v1/partners.md b/archive/_integration-schemas/crossbeam/v1/partners.md
similarity index 100%
rename from _integration-schemas/crossbeam/v1/partners.md
rename to archive/_integration-schemas/crossbeam/v1/partners.md
diff --git a/_integration-schemas/crossbeam/v1/populations.md b/archive/_integration-schemas/crossbeam/v1/populations.md
similarity index 100%
rename from _integration-schemas/crossbeam/v1/populations.md
rename to archive/_integration-schemas/crossbeam/v1/populations.md
diff --git a/_integration-schemas/crossbeam/v1/thread_timelines.md b/archive/_integration-schemas/crossbeam/v1/thread_timelines.md
similarity index 100%
rename from _integration-schemas/crossbeam/v1/thread_timelines.md
rename to archive/_integration-schemas/crossbeam/v1/thread_timelines.md
diff --git a/_integration-schemas/crossbeam/v1/threads.md b/archive/_integration-schemas/crossbeam/v1/threads.md
similarity index 100%
rename from _integration-schemas/crossbeam/v1/threads.md
rename to archive/_integration-schemas/crossbeam/v1/threads.md
diff --git a/_integration-schemas/darksky/forecast.md b/archive/_integration-schemas/darksky/forecast.md
similarity index 100%
rename from _integration-schemas/darksky/forecast.md
rename to archive/_integration-schemas/darksky/forecast.md
diff --git a/_integration-schemas/deputy/v1/addresses.md b/archive/_integration-schemas/deputy/v1/addresses.md
similarity index 98%
rename from _integration-schemas/deputy/v1/addresses.md
rename to archive/_integration-schemas/deputy/v1/addresses.md
index 0179c8e1f..dda594a08 100644
--- a/_integration-schemas/deputy/v1/addresses.md
+++ b/archive/_integration-schemas/deputy/v1/addresses.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The address ID."
diff --git a/_integration-schemas/deputy/v1/categories.md b/archive/_integration-schemas/deputy/v1/categories.md
similarity index 97%
rename from _integration-schemas/deputy/v1/categories.md
rename to archive/_integration-schemas/deputy/v1/categories.md
index 3bbbed5e2..e507fd40a 100644
--- a/_integration-schemas/deputy/v1/categories.md
+++ b/archive/_integration-schemas/deputy/v1/categories.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The category ID."
diff --git a/_integration-schemas/deputy/v1/comments.md b/archive/_integration-schemas/deputy/v1/comments.md
similarity index 97%
rename from _integration-schemas/deputy/v1/comments.md
rename to archive/_integration-schemas/deputy/v1/comments.md
index 8a93ec0a4..cc676359b 100644
--- a/_integration-schemas/deputy/v1/comments.md
+++ b/archive/_integration-schemas/deputy/v1/comments.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The comment ID."
diff --git a/archive/_integration-schemas/deputy/v1/companies.md b/archive/_integration-schemas/deputy/v1/companies.md
new file mode 100644
index 000000000..d0d1f1fca
--- /dev/null
+++ b/archive/_integration-schemas/deputy/v1/companies.md
@@ -0,0 +1,89 @@
+---
+tap: "deputy"
+version: "1"
+key: "company"
+
+name: "companies"
+doc-link: "https://www.deputy.com/api-doc/Resources/Company"
+
+description: |
+ The `{{ table.name }}` table contains info about companies.
+
+replication-method: "Key-based Incremental"
+
+attributes:
+ - name: "Id"
+ type: "integer"
+ primary-key: true
+ description: "The company ID."
+ foreign-key-id: "company-id"
+
+ - name: "Modified"
+ type: "date-time"
+ replication-key: true
+ description: "The time the company was last modified."
+
+ - name: "Portfolio"
+ type: "integer"
+ description: ""
+
+ - name: "Code"
+ type: "string"
+ description: ""
+
+ - name: "Active"
+ type: "boolean"
+ description: ""
+
+ - name: "ParentCompany"
+ type: "integer"
+ description: ""
+ foreign-key-id: "company-id"
+
+ - name: "CompanyName"
+ type: "string"
+ description: ""
+
+ - name: "TradingName"
+ type: "string"
+ description: ""
+
+ - name: "BusinessNumber"
+ type: "string"
+ description: ""
+
+ - name: "CompanyNumber"
+ type: "string"
+ description: ""
+
+ - name: "IsWorkplace"
+ type: "boolean"
+ description: ""
+
+ - name: "IsPayrollEntity"
+ type: "boolean"
+ description: ""
+
+ - name: "PayrollExportCode"
+ type: "integer"
+ description: ""
+
+ - name: "Address"
+ type: "integer"
+ description: ""
+ foreign-key-id: "address-id"
+
+ - name: "Contact"
+ type: "integer"
+ description: ""
+ foreign-key-id: "contact-id"
+
+ - name: "Creator"
+ type: "integer"
+ description: ""
+ foreign-key-id: "employee-id"
+
+ - name: "Created"
+ type: "date-time"
+ description: ""
+---
\ No newline at end of file
diff --git a/_integration-schemas/deputy/v1/company_periods.md b/archive/_integration-schemas/deputy/v1/company_periods.md
similarity index 98%
rename from _integration-schemas/deputy/v1/company_periods.md
rename to archive/_integration-schemas/deputy/v1/company_periods.md
index c00dd775b..48fa83efb 100644
--- a/_integration-schemas/deputy/v1/company_periods.md
+++ b/archive/_integration-schemas/deputy/v1/company_periods.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The company period ID."
diff --git a/archive/_integration-schemas/deputy/v1/contacts.md b/archive/_integration-schemas/deputy/v1/contacts.md
new file mode 100644
index 000000000..8a263e2e4
--- /dev/null
+++ b/archive/_integration-schemas/deputy/v1/contacts.md
@@ -0,0 +1,114 @@
+---
+tap: "deputy"
+version: "1"
+key: "contact"
+
+name: "contacts"
+doc-link: "https://www.deputy.com/api-doc/Resources/Contact"
+
+description: |
+ The `{{ table.name }}` table contains info about contacts.
+
+replication-method: "Key-based Incremental"
+
+attributes:
+ - name: "Id"
+ type: "integer"
+ primary-key: true
+ description: "The contact ID."
+ foreign-key-id: "contact-id"
+
+ - name: "Modified"
+ type: "date-time"
+ replication-key: true
+ description: "The time the contact was last modified."
+
+ - name: "Phone1"
+ type: "string"
+ description: ""
+
+ - name: "Phone2"
+ type: "string"
+ description: ""
+
+ - name: "Phone3"
+ type: "string"
+ description: ""
+
+ - name: "Fax"
+ type: "string"
+ description: ""
+
+ - name: "Phone1Type"
+ type: "string"
+ description: ""
+
+ - name: "Phone2Type"
+ type: "string"
+ description: ""
+
+ - name: "Phone3Type"
+ type: "string"
+ description: ""
+
+ - name: "PrimaryPhone"
+ type: "integer"
+ description: ""
+
+ - name: "Email1"
+ type: "string"
+ description: ""
+
+ - name: "Email2"
+ type: "string"
+ description: ""
+
+ - name: "Email1Type"
+ type: "string"
+ description: ""
+
+ - name: "Email2Type"
+ type: "string"
+ description: ""
+
+ - name: "PrimaryEmail"
+ type: "integer"
+ description: ""
+
+ - name: "Im1"
+ type: "string"
+ description: ""
+
+ - name: "Im2"
+ type: "string"
+ description: ""
+
+ - name: "Im1Type"
+ type: "string"
+ description: ""
+
+ - name: "Im2Type"
+ type: "string"
+ description: ""
+
+ - name: "Web"
+ type: "string"
+ description: ""
+
+ - name: "Notes"
+ type: "string"
+ description: ""
+
+ - name: "Saved"
+ type: "boolean"
+ description: ""
+
+ - name: "Creator"
+ type: "integer"
+ description: ""
+ foreign-key-id: "employee-id"
+
+ - name: "Created"
+ type: "date-time"
+ description: ""
+---
\ No newline at end of file
diff --git a/_integration-schemas/deputy/v1/countries.md b/archive/_integration-schemas/deputy/v1/countries.md
similarity index 98%
rename from _integration-schemas/deputy/v1/countries.md
rename to archive/_integration-schemas/deputy/v1/countries.md
index f0886941b..47acbfd8a 100644
--- a/_integration-schemas/deputy/v1/countries.md
+++ b/archive/_integration-schemas/deputy/v1/countries.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The country ID."
diff --git a/_integration-schemas/deputy/v1/custom_app_data.md b/archive/_integration-schemas/deputy/v1/custom_app_data.md
similarity index 98%
rename from _integration-schemas/deputy/v1/custom_app_data.md
rename to archive/_integration-schemas/deputy/v1/custom_app_data.md
index 9afe27b8a..96d7bed7a 100644
--- a/_integration-schemas/deputy/v1/custom_app_data.md
+++ b/archive/_integration-schemas/deputy/v1/custom_app_data.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The custom app data ID."
diff --git a/_integration-schemas/deputy/v1/custom_field_data.md b/archive/_integration-schemas/deputy/v1/custom_field_data.md
similarity index 98%
rename from _integration-schemas/deputy/v1/custom_field_data.md
rename to archive/_integration-schemas/deputy/v1/custom_field_data.md
index c31748857..6bec74f93 100644
--- a/_integration-schemas/deputy/v1/custom_field_data.md
+++ b/archive/_integration-schemas/deputy/v1/custom_field_data.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The custom field data ID."
diff --git a/_integration-schemas/deputy/v1/custom_fields.md b/archive/_integration-schemas/deputy/v1/custom_fields.md
similarity index 98%
rename from _integration-schemas/deputy/v1/custom_fields.md
rename to archive/_integration-schemas/deputy/v1/custom_fields.md
index 2c3376739..c2d3eed77 100644
--- a/_integration-schemas/deputy/v1/custom_fields.md
+++ b/archive/_integration-schemas/deputy/v1/custom_fields.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The custom fieldID."
diff --git a/_integration-schemas/deputy/v1/employee_agreement_history.md b/archive/_integration-schemas/deputy/v1/employee_agreement_history.md
similarity index 98%
rename from _integration-schemas/deputy/v1/employee_agreement_history.md
rename to archive/_integration-schemas/deputy/v1/employee_agreement_history.md
index 02064d45e..d94808385 100644
--- a/_integration-schemas/deputy/v1/employee_agreement_history.md
+++ b/archive/_integration-schemas/deputy/v1/employee_agreement_history.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The employee agreement history ID."
diff --git a/_integration-schemas/deputy/v1/employee_agreements.md b/archive/_integration-schemas/deputy/v1/employee_agreements.md
similarity index 98%
rename from _integration-schemas/deputy/v1/employee_agreements.md
rename to archive/_integration-schemas/deputy/v1/employee_agreements.md
index 47bc6b19f..a62faa706 100644
--- a/_integration-schemas/deputy/v1/employee_agreements.md
+++ b/archive/_integration-schemas/deputy/v1/employee_agreements.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The employee agreement ID."
diff --git a/_integration-schemas/deputy/v1/employee_appraisal.md b/archive/_integration-schemas/deputy/v1/employee_appraisal.md
similarity index 98%
rename from _integration-schemas/deputy/v1/employee_appraisal.md
rename to archive/_integration-schemas/deputy/v1/employee_appraisal.md
index 90c7745b5..cd875e5f0 100644
--- a/_integration-schemas/deputy/v1/employee_appraisal.md
+++ b/archive/_integration-schemas/deputy/v1/employee_appraisal.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The employee appraisal ID."
diff --git a/_integration-schemas/deputy/v1/employee_availability.md b/archive/_integration-schemas/deputy/v1/employee_availability.md
similarity index 98%
rename from _integration-schemas/deputy/v1/employee_availability.md
rename to archive/_integration-schemas/deputy/v1/employee_availability.md
index 5ffd1bb09..34fafbf81 100644
--- a/_integration-schemas/deputy/v1/employee_availability.md
+++ b/archive/_integration-schemas/deputy/v1/employee_availability.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The employee availability ID."
diff --git a/_integration-schemas/deputy/v1/employee_contract_leave_rules.md b/archive/_integration-schemas/deputy/v1/employee_contract_leave_rules.md
similarity index 98%
rename from _integration-schemas/deputy/v1/employee_contract_leave_rules.md
rename to archive/_integration-schemas/deputy/v1/employee_contract_leave_rules.md
index 9b5f89348..7f7e53d20 100644
--- a/_integration-schemas/deputy/v1/employee_contract_leave_rules.md
+++ b/archive/_integration-schemas/deputy/v1/employee_contract_leave_rules.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The employment contract leave rule ID."
diff --git a/_integration-schemas/deputy/v1/employee_contracts.md b/archive/_integration-schemas/deputy/v1/employee_contracts.md
similarity index 98%
rename from _integration-schemas/deputy/v1/employee_contracts.md
rename to archive/_integration-schemas/deputy/v1/employee_contracts.md
index 51ce877ba..23c1ea272 100644
--- a/_integration-schemas/deputy/v1/employee_contracts.md
+++ b/archive/_integration-schemas/deputy/v1/employee_contracts.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The employee contract ID."
diff --git a/_integration-schemas/deputy/v1/employee_history.md b/archive/_integration-schemas/deputy/v1/employee_history.md
similarity index 99%
rename from _integration-schemas/deputy/v1/employee_history.md
rename to archive/_integration-schemas/deputy/v1/employee_history.md
index 270b2e77e..b10bf6256 100644
--- a/_integration-schemas/deputy/v1/employee_history.md
+++ b/archive/_integration-schemas/deputy/v1/employee_history.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The employee history ID."
diff --git a/_integration-schemas/deputy/v1/employee_paycycle_returns.md b/archive/_integration-schemas/deputy/v1/employee_paycycle_returns.md
similarity index 98%
rename from _integration-schemas/deputy/v1/employee_paycycle_returns.md
rename to archive/_integration-schemas/deputy/v1/employee_paycycle_returns.md
index e4e7b9e4c..6791235c4 100644
--- a/_integration-schemas/deputy/v1/employee_paycycle_returns.md
+++ b/archive/_integration-schemas/deputy/v1/employee_paycycle_returns.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The employee paycycle return ID."
diff --git a/_integration-schemas/deputy/v1/employee_paycycles.md b/archive/_integration-schemas/deputy/v1/employee_paycycles.md
similarity index 98%
rename from _integration-schemas/deputy/v1/employee_paycycles.md
rename to archive/_integration-schemas/deputy/v1/employee_paycycles.md
index 7bd3093dc..abe69ae09 100644
--- a/_integration-schemas/deputy/v1/employee_paycycles.md
+++ b/archive/_integration-schemas/deputy/v1/employee_paycycles.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The employee paycycle ID."
diff --git a/_integration-schemas/deputy/v1/employee_roles.md b/archive/_integration-schemas/deputy/v1/employee_roles.md
similarity index 97%
rename from _integration-schemas/deputy/v1/employee_roles.md
rename to archive/_integration-schemas/deputy/v1/employee_roles.md
index f2eee2f99..6da3389f3 100644
--- a/_integration-schemas/deputy/v1/employee_roles.md
+++ b/archive/_integration-schemas/deputy/v1/employee_roles.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The employee role ID."
diff --git a/_integration-schemas/deputy/v1/employee_salary_opunit_costing.md b/archive/_integration-schemas/deputy/v1/employee_salary_opunit_costing.md
similarity index 98%
rename from _integration-schemas/deputy/v1/employee_salary_opunit_costing.md
rename to archive/_integration-schemas/deputy/v1/employee_salary_opunit_costing.md
index 2c1b05f1e..c936505f9 100644
--- a/_integration-schemas/deputy/v1/employee_salary_opunit_costing.md
+++ b/archive/_integration-schemas/deputy/v1/employee_salary_opunit_costing.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The employee salary operational unit costing ID."
diff --git a/_integration-schemas/deputy/v1/employee_workplaces.md b/archive/_integration-schemas/deputy/v1/employee_workplaces.md
similarity index 98%
rename from _integration-schemas/deputy/v1/employee_workplaces.md
rename to archive/_integration-schemas/deputy/v1/employee_workplaces.md
index e9546e6ba..6c03e45dc 100644
--- a/_integration-schemas/deputy/v1/employee_workplaces.md
+++ b/archive/_integration-schemas/deputy/v1/employee_workplaces.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The employee workplace ID."
diff --git a/_integration-schemas/deputy/v1/employment_conditions.md b/archive/_integration-schemas/deputy/v1/employment_conditions.md
similarity index 98%
rename from _integration-schemas/deputy/v1/employment_conditions.md
rename to archive/_integration-schemas/deputy/v1/employment_conditions.md
index 4fb2d3c17..eda0fcb8f 100644
--- a/_integration-schemas/deputy/v1/employment_conditions.md
+++ b/archive/_integration-schemas/deputy/v1/employment_conditions.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The employment condition ID."
diff --git a/archive/_integration-schemas/deputy/v1/events.md b/archive/_integration-schemas/deputy/v1/events.md
new file mode 100644
index 000000000..a9d9a46a8
--- /dev/null
+++ b/archive/_integration-schemas/deputy/v1/events.md
@@ -0,0 +1,59 @@
+---
+tap: "deputy"
+version: "1"
+key: "event"
+
+name: "events"
+doc-link: "https://www.deputy.com/api-doc/Resources/Event"
+
+description: |
+ The `{{ table.name }}` table contains info about events.
+
+replication-method: "Key-based Incremental"
+
+attributes:
+ - name: "Id"
+ type: "integer"
+ primary-key: true
+ description: "The event ID."
+ #foreign-key-id: "event-id"
+
+ - name: "Modified"
+ type: "date-time"
+ replication-key: true
+ description: "The time the event was last modified."
+
+ - name: "Title"
+ type: "string"
+ description: ""
+
+ - name: "Schedule"
+ type: "integer"
+ description: ""
+ foreign-key-id: "schedule-id"
+
+ - name: "Colour"
+ type: "string"
+ description: ""
+
+ - name: "ShowOnRoster"
+ type: "boolean"
+ description: ""
+
+ - name: "BlockTimeOff"
+ type: "boolean"
+ description: ""
+
+ - name: "AddToBudget"
+ type: "number"
+ description: ""
+
+ - name: "Creator"
+ type: "integer"
+ description: ""
+ foreign-key-id: "employee-id"
+
+ - name: "Created"
+ type: "date-time"
+ description: ""
+---
\ No newline at end of file
diff --git a/_integration-schemas/deputy/v1/foreign-keys.md b/archive/_integration-schemas/deputy/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/deputy/v1/foreign-keys.md
rename to archive/_integration-schemas/deputy/v1/foreign-keys.md
diff --git a/_integration-schemas/deputy/v1/geo.md b/archive/_integration-schemas/deputy/v1/geo.md
similarity index 98%
rename from _integration-schemas/deputy/v1/geo.md
rename to archive/_integration-schemas/deputy/v1/geo.md
index 3f0e6f76f..fa7043463 100644
--- a/_integration-schemas/deputy/v1/geo.md
+++ b/archive/_integration-schemas/deputy/v1/geo.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The geo ID."
diff --git a/_integration-schemas/deputy/v1/journal.md b/archive/_integration-schemas/deputy/v1/journal.md
similarity index 97%
rename from _integration-schemas/deputy/v1/journal.md
rename to archive/_integration-schemas/deputy/v1/journal.md
index e0518a8e4..53900b601 100644
--- a/_integration-schemas/deputy/v1/journal.md
+++ b/archive/_integration-schemas/deputy/v1/journal.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The journal ID."
diff --git a/_integration-schemas/deputy/v1/kiosks.md b/archive/_integration-schemas/deputy/v1/kiosks.md
similarity index 98%
rename from _integration-schemas/deputy/v1/kiosks.md
rename to archive/_integration-schemas/deputy/v1/kiosks.md
index ac853e690..7ffc1bcd4 100644
--- a/_integration-schemas/deputy/v1/kiosks.md
+++ b/archive/_integration-schemas/deputy/v1/kiosks.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The kiosk ID."
diff --git a/_integration-schemas/deputy/v1/leave_accruals.md b/archive/_integration-schemas/deputy/v1/leave_accruals.md
similarity index 98%
rename from _integration-schemas/deputy/v1/leave_accruals.md
rename to archive/_integration-schemas/deputy/v1/leave_accruals.md
index 34a0366de..2677f1ee1 100644
--- a/_integration-schemas/deputy/v1/leave_accruals.md
+++ b/archive/_integration-schemas/deputy/v1/leave_accruals.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The leave accrual ID."
diff --git a/_integration-schemas/deputy/v1/leave_pay_lines.md b/archive/_integration-schemas/deputy/v1/leave_pay_lines.md
similarity index 98%
rename from _integration-schemas/deputy/v1/leave_pay_lines.md
rename to archive/_integration-schemas/deputy/v1/leave_pay_lines.md
index 0ced27317..f3e52bce7 100644
--- a/_integration-schemas/deputy/v1/leave_pay_lines.md
+++ b/archive/_integration-schemas/deputy/v1/leave_pay_lines.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The leave pay line ID."
diff --git a/_integration-schemas/deputy/v1/leave_rules.md b/archive/_integration-schemas/deputy/v1/leave_rules.md
similarity index 98%
rename from _integration-schemas/deputy/v1/leave_rules.md
rename to archive/_integration-schemas/deputy/v1/leave_rules.md
index 9a95d3d90..681f2db40 100644
--- a/_integration-schemas/deputy/v1/leave_rules.md
+++ b/archive/_integration-schemas/deputy/v1/leave_rules.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The leave rule ID."
diff --git a/_integration-schemas/deputy/v1/leaves.md b/archive/_integration-schemas/deputy/v1/leaves.md
similarity index 98%
rename from _integration-schemas/deputy/v1/leaves.md
rename to archive/_integration-schemas/deputy/v1/leaves.md
index d3e547675..f142d33f9 100644
--- a/_integration-schemas/deputy/v1/leaves.md
+++ b/archive/_integration-schemas/deputy/v1/leaves.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The leave ID."
diff --git a/_integration-schemas/deputy/v1/memos.md b/archive/_integration-schemas/deputy/v1/memos.md
similarity index 98%
rename from _integration-schemas/deputy/v1/memos.md
rename to archive/_integration-schemas/deputy/v1/memos.md
index 09d2fad01..e3e5ea0c1 100644
--- a/_integration-schemas/deputy/v1/memos.md
+++ b/archive/_integration-schemas/deputy/v1/memos.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The memo ID."
diff --git a/_integration-schemas/deputy/v1/operational_units.md b/archive/_integration-schemas/deputy/v1/operational_units.md
similarity index 98%
rename from _integration-schemas/deputy/v1/operational_units.md
rename to archive/_integration-schemas/deputy/v1/operational_units.md
index 01fa2c3ab..16dfa8726 100644
--- a/_integration-schemas/deputy/v1/operational_units.md
+++ b/archive/_integration-schemas/deputy/v1/operational_units.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The operational unit ID."
diff --git a/_integration-schemas/deputy/v1/pay_periods.md b/archive/_integration-schemas/deputy/v1/pay_periods.md
similarity index 97%
rename from _integration-schemas/deputy/v1/pay_periods.md
rename to archive/_integration-schemas/deputy/v1/pay_periods.md
index e5e07a9f1..6651d2c18 100644
--- a/_integration-schemas/deputy/v1/pay_periods.md
+++ b/archive/_integration-schemas/deputy/v1/pay_periods.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The pay period ID."
diff --git a/_integration-schemas/deputy/v1/pay_rules.md b/archive/_integration-schemas/deputy/v1/pay_rules.md
similarity index 99%
rename from _integration-schemas/deputy/v1/pay_rules.md
rename to archive/_integration-schemas/deputy/v1/pay_rules.md
index 9c1e56854..9e1fd4f61 100644
--- a/_integration-schemas/deputy/v1/pay_rules.md
+++ b/archive/_integration-schemas/deputy/v1/pay_rules.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The pay rule ID."
diff --git a/_integration-schemas/deputy/v1/public_holidays.md b/archive/_integration-schemas/deputy/v1/public_holidays.md
similarity index 97%
rename from _integration-schemas/deputy/v1/public_holidays.md
rename to archive/_integration-schemas/deputy/v1/public_holidays.md
index ba7c7848b..9158ae295 100644
--- a/_integration-schemas/deputy/v1/public_holidays.md
+++ b/archive/_integration-schemas/deputy/v1/public_holidays.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The public holiday ID."
diff --git a/_integration-schemas/deputy/v1/roster_opens.md b/archive/_integration-schemas/deputy/v1/roster_opens.md
similarity index 98%
rename from _integration-schemas/deputy/v1/roster_opens.md
rename to archive/_integration-schemas/deputy/v1/roster_opens.md
index ea5cebcd3..1e7567b4b 100644
--- a/_integration-schemas/deputy/v1/roster_opens.md
+++ b/archive/_integration-schemas/deputy/v1/roster_opens.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The roster open ID."
diff --git a/_integration-schemas/deputy/v1/roster_swaps.md b/archive/_integration-schemas/deputy/v1/roster_swaps.md
similarity index 98%
rename from _integration-schemas/deputy/v1/roster_swaps.md
rename to archive/_integration-schemas/deputy/v1/roster_swaps.md
index 3bcaf369c..7cba1ffa6 100644
--- a/_integration-schemas/deputy/v1/roster_swaps.md
+++ b/archive/_integration-schemas/deputy/v1/roster_swaps.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The roster swap ID."
diff --git a/_integration-schemas/deputy/v1/rosters.md b/archive/_integration-schemas/deputy/v1/rosters.md
similarity index 98%
rename from _integration-schemas/deputy/v1/rosters.md
rename to archive/_integration-schemas/deputy/v1/rosters.md
index 5b3feb46f..d8d2b170f 100644
--- a/_integration-schemas/deputy/v1/rosters.md
+++ b/archive/_integration-schemas/deputy/v1/rosters.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The roster ID."
diff --git a/_integration-schemas/deputy/v1/sales_data.md b/archive/_integration-schemas/deputy/v1/sales_data.md
similarity index 98%
rename from _integration-schemas/deputy/v1/sales_data.md
rename to archive/_integration-schemas/deputy/v1/sales_data.md
index 4165bdc25..4df365f0c 100644
--- a/_integration-schemas/deputy/v1/sales_data.md
+++ b/archive/_integration-schemas/deputy/v1/sales_data.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The sale data ID."
diff --git a/_integration-schemas/deputy/v1/schedules.md b/archive/_integration-schemas/deputy/v1/schedules.md
similarity index 98%
rename from _integration-schemas/deputy/v1/schedules.md
rename to archive/_integration-schemas/deputy/v1/schedules.md
index c9bda4e5a..264866379 100644
--- a/_integration-schemas/deputy/v1/schedules.md
+++ b/archive/_integration-schemas/deputy/v1/schedules.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The schedule ID."
diff --git a/_integration-schemas/deputy/v1/sms_logs.md b/archive/_integration-schemas/deputy/v1/sms_logs.md
similarity index 97%
rename from _integration-schemas/deputy/v1/sms_logs.md
rename to archive/_integration-schemas/deputy/v1/sms_logs.md
index 64bf3825a..4b0d29105 100644
--- a/_integration-schemas/deputy/v1/sms_logs.md
+++ b/archive/_integration-schemas/deputy/v1/sms_logs.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The SMS log ID."
diff --git a/_integration-schemas/deputy/v1/states.md b/archive/_integration-schemas/deputy/v1/states.md
similarity index 97%
rename from _integration-schemas/deputy/v1/states.md
rename to archive/_integration-schemas/deputy/v1/states.md
index 3b8f1147d..8b30b0486 100644
--- a/_integration-schemas/deputy/v1/states.md
+++ b/archive/_integration-schemas/deputy/v1/states.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The state ID."
diff --git a/_integration-schemas/deputy/v1/stress_profiles.md b/archive/_integration-schemas/deputy/v1/stress_profiles.md
similarity index 98%
rename from _integration-schemas/deputy/v1/stress_profiles.md
rename to archive/_integration-schemas/deputy/v1/stress_profiles.md
index 72c8704ea..c92a07e64 100644
--- a/_integration-schemas/deputy/v1/stress_profiles.md
+++ b/archive/_integration-schemas/deputy/v1/stress_profiles.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The stress profile ID."
diff --git a/_integration-schemas/deputy/v1/system_usage_balances.md b/archive/_integration-schemas/deputy/v1/system_usage_balances.md
similarity index 97%
rename from _integration-schemas/deputy/v1/system_usage_balances.md
rename to archive/_integration-schemas/deputy/v1/system_usage_balances.md
index 2c46c4cf8..c8d9d7b4a 100644
--- a/_integration-schemas/deputy/v1/system_usage_balances.md
+++ b/archive/_integration-schemas/deputy/v1/system_usage_balances.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The system usage balance ID."
diff --git a/_integration-schemas/deputy/v1/system_usage_tracking.md b/archive/_integration-schemas/deputy/v1/system_usage_tracking.md
similarity index 98%
rename from _integration-schemas/deputy/v1/system_usage_tracking.md
rename to archive/_integration-schemas/deputy/v1/system_usage_tracking.md
index de033bd88..f164f9aca 100644
--- a/_integration-schemas/deputy/v1/system_usage_tracking.md
+++ b/archive/_integration-schemas/deputy/v1/system_usage_tracking.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The system usage tracking ID."
diff --git a/_integration-schemas/deputy/v1/task_group_setups.md b/archive/_integration-schemas/deputy/v1/task_group_setups.md
similarity index 98%
rename from _integration-schemas/deputy/v1/task_group_setups.md
rename to archive/_integration-schemas/deputy/v1/task_group_setups.md
index c9b9b2e85..869f792dc 100644
--- a/_integration-schemas/deputy/v1/task_group_setups.md
+++ b/archive/_integration-schemas/deputy/v1/task_group_setups.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The task group setup ID."
diff --git a/_integration-schemas/deputy/v1/task_groups.md b/archive/_integration-schemas/deputy/v1/task_groups.md
similarity index 98%
rename from _integration-schemas/deputy/v1/task_groups.md
rename to archive/_integration-schemas/deputy/v1/task_groups.md
index e87afa614..ddeee3c61 100644
--- a/_integration-schemas/deputy/v1/task_groups.md
+++ b/archive/_integration-schemas/deputy/v1/task_groups.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The task group ID."
diff --git a/_integration-schemas/deputy/v1/task_opunit_configs.md b/archive/_integration-schemas/deputy/v1/task_opunit_configs.md
similarity index 98%
rename from _integration-schemas/deputy/v1/task_opunit_configs.md
rename to archive/_integration-schemas/deputy/v1/task_opunit_configs.md
index fbca60b91..172253e0f 100644
--- a/_integration-schemas/deputy/v1/task_opunit_configs.md
+++ b/archive/_integration-schemas/deputy/v1/task_opunit_configs.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The task operational unit configuration ID."
diff --git a/_integration-schemas/deputy/v1/task_setups.md b/archive/_integration-schemas/deputy/v1/task_setups.md
similarity index 98%
rename from _integration-schemas/deputy/v1/task_setups.md
rename to archive/_integration-schemas/deputy/v1/task_setups.md
index 0aa1dd794..6a78ed242 100644
--- a/_integration-schemas/deputy/v1/task_setups.md
+++ b/archive/_integration-schemas/deputy/v1/task_setups.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The task setup ID."
diff --git a/_integration-schemas/deputy/v1/tasks.md b/archive/_integration-schemas/deputy/v1/tasks.md
similarity index 99%
rename from _integration-schemas/deputy/v1/tasks.md
rename to archive/_integration-schemas/deputy/v1/tasks.md
index 7099b1852..8966e1aba 100644
--- a/_integration-schemas/deputy/v1/tasks.md
+++ b/archive/_integration-schemas/deputy/v1/tasks.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The task ID."
diff --git a/_integration-schemas/deputy/v1/teams.md b/archive/_integration-schemas/deputy/v1/teams.md
similarity index 97%
rename from _integration-schemas/deputy/v1/teams.md
rename to archive/_integration-schemas/deputy/v1/teams.md
index 2e8463d56..a52a0b169 100644
--- a/_integration-schemas/deputy/v1/teams.md
+++ b/archive/_integration-schemas/deputy/v1/teams.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The team ID."
diff --git a/_integration-schemas/deputy/v1/timesheet_pay_returns.md b/archive/_integration-schemas/deputy/v1/timesheet_pay_returns.md
similarity index 98%
rename from _integration-schemas/deputy/v1/timesheet_pay_returns.md
rename to archive/_integration-schemas/deputy/v1/timesheet_pay_returns.md
index 01d6718e6..61f3aedb4 100644
--- a/_integration-schemas/deputy/v1/timesheet_pay_returns.md
+++ b/archive/_integration-schemas/deputy/v1/timesheet_pay_returns.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The timesheet pay return ID."
diff --git a/_integration-schemas/deputy/v1/timesheets.md b/archive/_integration-schemas/deputy/v1/timesheets.md
similarity index 99%
rename from _integration-schemas/deputy/v1/timesheets.md
rename to archive/_integration-schemas/deputy/v1/timesheets.md
index b0a6f9c53..4fc09212c 100644
--- a/_integration-schemas/deputy/v1/timesheets.md
+++ b/archive/_integration-schemas/deputy/v1/timesheets.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The timesheet ID."
diff --git a/_integration-schemas/deputy/v1/training_modules.md b/archive/_integration-schemas/deputy/v1/training_modules.md
similarity index 98%
rename from _integration-schemas/deputy/v1/training_modules.md
rename to archive/_integration-schemas/deputy/v1/training_modules.md
index 24b9d51a8..a87032bfd 100644
--- a/_integration-schemas/deputy/v1/training_modules.md
+++ b/archive/_integration-schemas/deputy/v1/training_modules.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The training module ID."
diff --git a/_integration-schemas/deputy/v1/training_records.md b/archive/_integration-schemas/deputy/v1/training_records.md
similarity index 98%
rename from _integration-schemas/deputy/v1/training_records.md
rename to archive/_integration-schemas/deputy/v1/training_records.md
index 428dae6d2..36c0a68b8 100644
--- a/_integration-schemas/deputy/v1/training_records.md
+++ b/archive/_integration-schemas/deputy/v1/training_records.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The training record ID."
diff --git a/_integration-schemas/deputy/v1/webhooks.md b/archive/_integration-schemas/deputy/v1/webhooks.md
similarity index 97%
rename from _integration-schemas/deputy/v1/webhooks.md
rename to archive/_integration-schemas/deputy/v1/webhooks.md
index 345ecf0bb..83f440f2f 100644
--- a/_integration-schemas/deputy/v1/webhooks.md
+++ b/archive/_integration-schemas/deputy/v1/webhooks.md
@@ -12,7 +12,7 @@ description: |
replication-method: "Key-based Incremental"
attributes:
- - name: "Modified"
+ - name: "Id"
type: "integer"
primary-key: true
description: "The webhook ID."
diff --git a/_integration-schemas/dixa/v1/activity_logs.md b/archive/_integration-schemas/dixa/v1/activity_logs.md
similarity index 100%
rename from _integration-schemas/dixa/v1/activity_logs.md
rename to archive/_integration-schemas/dixa/v1/activity_logs.md
diff --git a/_integration-schemas/dixa/v1/conversations.md b/archive/_integration-schemas/dixa/v1/conversations.md
similarity index 100%
rename from _integration-schemas/dixa/v1/conversations.md
rename to archive/_integration-schemas/dixa/v1/conversations.md
diff --git a/_integration-schemas/dixa/v1/foreign-keys.md b/archive/_integration-schemas/dixa/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/dixa/v1/foreign-keys.md
rename to archive/_integration-schemas/dixa/v1/foreign-keys.md
diff --git a/_integration-schemas/dixa/v1/messages.md b/archive/_integration-schemas/dixa/v1/messages.md
similarity index 100%
rename from _integration-schemas/dixa/v1/messages.md
rename to archive/_integration-schemas/dixa/v1/messages.md
diff --git a/_integration-schemas/ebay/v1/orders.md b/archive/_integration-schemas/ebay/v1/orders.md
similarity index 100%
rename from _integration-schemas/ebay/v1/orders.md
rename to archive/_integration-schemas/ebay/v1/orders.md
diff --git a/_integration-schemas/eloqua/v1/accounts.md b/archive/_integration-schemas/eloqua/v1/accounts.md
similarity index 100%
rename from _integration-schemas/eloqua/v1/accounts.md
rename to archive/_integration-schemas/eloqua/v1/accounts.md
diff --git a/_integration-schemas/eloqua/v1/activity_bounceback.md b/archive/_integration-schemas/eloqua/v1/activity_bounceback.md
similarity index 100%
rename from _integration-schemas/eloqua/v1/activity_bounceback.md
rename to archive/_integration-schemas/eloqua/v1/activity_bounceback.md
diff --git a/_integration-schemas/eloqua/v1/activity_email_clickthrough.md b/archive/_integration-schemas/eloqua/v1/activity_email_clickthrough.md
similarity index 100%
rename from _integration-schemas/eloqua/v1/activity_email_clickthrough.md
rename to archive/_integration-schemas/eloqua/v1/activity_email_clickthrough.md
diff --git a/_integration-schemas/eloqua/v1/activity_email_open.md b/archive/_integration-schemas/eloqua/v1/activity_email_open.md
similarity index 100%
rename from _integration-schemas/eloqua/v1/activity_email_open.md
rename to archive/_integration-schemas/eloqua/v1/activity_email_open.md
diff --git a/_integration-schemas/eloqua/v1/activity_email_send.md b/archive/_integration-schemas/eloqua/v1/activity_email_send.md
similarity index 100%
rename from _integration-schemas/eloqua/v1/activity_email_send.md
rename to archive/_integration-schemas/eloqua/v1/activity_email_send.md
diff --git a/_integration-schemas/eloqua/v1/activity_form_submit.md b/archive/_integration-schemas/eloqua/v1/activity_form_submit.md
similarity index 100%
rename from _integration-schemas/eloqua/v1/activity_form_submit.md
rename to archive/_integration-schemas/eloqua/v1/activity_form_submit.md
diff --git a/_integration-schemas/eloqua/v1/activity_page_view.md b/archive/_integration-schemas/eloqua/v1/activity_page_view.md
similarity index 100%
rename from _integration-schemas/eloqua/v1/activity_page_view.md
rename to archive/_integration-schemas/eloqua/v1/activity_page_view.md
diff --git a/_integration-schemas/eloqua/v1/activity_subscribe.md b/archive/_integration-schemas/eloqua/v1/activity_subscribe.md
similarity index 100%
rename from _integration-schemas/eloqua/v1/activity_subscribe.md
rename to archive/_integration-schemas/eloqua/v1/activity_subscribe.md
diff --git a/_integration-schemas/eloqua/v1/activity_unsubscribe.md b/archive/_integration-schemas/eloqua/v1/activity_unsubscribe.md
similarity index 100%
rename from _integration-schemas/eloqua/v1/activity_unsubscribe.md
rename to archive/_integration-schemas/eloqua/v1/activity_unsubscribe.md
diff --git a/_integration-schemas/eloqua/v1/activity_web_visit.md b/archive/_integration-schemas/eloqua/v1/activity_web_visit.md
similarity index 100%
rename from _integration-schemas/eloqua/v1/activity_web_visit.md
rename to archive/_integration-schemas/eloqua/v1/activity_web_visit.md
diff --git a/_integration-schemas/eloqua/v1/assets.md b/archive/_integration-schemas/eloqua/v1/assets.md
similarity index 100%
rename from _integration-schemas/eloqua/v1/assets.md
rename to archive/_integration-schemas/eloqua/v1/assets.md
diff --git a/_integration-schemas/eloqua/v1/campaigns.md b/archive/_integration-schemas/eloqua/v1/campaigns.md
similarity index 100%
rename from _integration-schemas/eloqua/v1/campaigns.md
rename to archive/_integration-schemas/eloqua/v1/campaigns.md
diff --git a/_integration-schemas/eloqua/v1/contacts.md b/archive/_integration-schemas/eloqua/v1/contacts.md
similarity index 100%
rename from _integration-schemas/eloqua/v1/contacts.md
rename to archive/_integration-schemas/eloqua/v1/contacts.md
diff --git a/_integration-schemas/eloqua/v1/custom-objects.md b/archive/_integration-schemas/eloqua/v1/custom-objects.md
similarity index 100%
rename from _integration-schemas/eloqua/v1/custom-objects.md
rename to archive/_integration-schemas/eloqua/v1/custom-objects.md
diff --git a/_integration-schemas/eloqua/v1/email_groups.md b/archive/_integration-schemas/eloqua/v1/email_groups.md
similarity index 100%
rename from _integration-schemas/eloqua/v1/email_groups.md
rename to archive/_integration-schemas/eloqua/v1/email_groups.md
diff --git a/_integration-schemas/eloqua/v1/emails.md b/archive/_integration-schemas/eloqua/v1/emails.md
similarity index 100%
rename from _integration-schemas/eloqua/v1/emails.md
rename to archive/_integration-schemas/eloqua/v1/emails.md
diff --git a/_integration-schemas/eloqua/v1/foreign-keys.md b/archive/_integration-schemas/eloqua/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/eloqua/v1/foreign-keys.md
rename to archive/_integration-schemas/eloqua/v1/foreign-keys.md
diff --git a/_integration-schemas/eloqua/v1/forms.md b/archive/_integration-schemas/eloqua/v1/forms.md
similarity index 100%
rename from _integration-schemas/eloqua/v1/forms.md
rename to archive/_integration-schemas/eloqua/v1/forms.md
diff --git a/_integration-schemas/eloqua/v1/visitors.md b/archive/_integration-schemas/eloqua/v1/visitors.md
similarity index 100%
rename from _integration-schemas/eloqua/v1/visitors.md
rename to archive/_integration-schemas/eloqua/v1/visitors.md
diff --git a/_integration-schemas/facebook-ads/adcreative.md b/archive/_integration-schemas/facebook-ads/adcreative.md
old mode 100755
new mode 100644
similarity index 99%
rename from _integration-schemas/facebook-ads/adcreative.md
rename to archive/_integration-schemas/facebook-ads/adcreative.md
index 45981bc1e..08ac48df1
--- a/_integration-schemas/facebook-ads/adcreative.md
+++ b/archive/_integration-schemas/facebook-ads/adcreative.md
@@ -1014,7 +1014,6 @@ attributes:
- name: "targeting"
type: "array"
description: "The post gating for the video."
- subattributes:
- name: "video_id"
type: "string"
diff --git a/_integration-schemas/facebook-ads/ads.md b/archive/_integration-schemas/facebook-ads/ads.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/facebook-ads/ads.md
rename to archive/_integration-schemas/facebook-ads/ads.md
diff --git a/_integration-schemas/facebook-ads/ads_insights.md b/archive/_integration-schemas/facebook-ads/ads_insights.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/facebook-ads/ads_insights.md
rename to archive/_integration-schemas/facebook-ads/ads_insights.md
diff --git a/_integration-schemas/facebook-ads/ads_insights_age_and_gender.md b/archive/_integration-schemas/facebook-ads/ads_insights_age_and_gender.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/facebook-ads/ads_insights_age_and_gender.md
rename to archive/_integration-schemas/facebook-ads/ads_insights_age_and_gender.md
diff --git a/_integration-schemas/facebook-ads/ads_insights_country.md b/archive/_integration-schemas/facebook-ads/ads_insights_country.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/facebook-ads/ads_insights_country.md
rename to archive/_integration-schemas/facebook-ads/ads_insights_country.md
diff --git a/_integration-schemas/facebook-ads/ads_insights_dma.md b/archive/_integration-schemas/facebook-ads/ads_insights_dma.md
similarity index 100%
rename from _integration-schemas/facebook-ads/ads_insights_dma.md
rename to archive/_integration-schemas/facebook-ads/ads_insights_dma.md
diff --git a/_integration-schemas/facebook-ads/ads_insights_hourly_advertiser.md b/archive/_integration-schemas/facebook-ads/ads_insights_hourly_advertiser.md
similarity index 100%
rename from _integration-schemas/facebook-ads/ads_insights_hourly_advertiser.md
rename to archive/_integration-schemas/facebook-ads/ads_insights_hourly_advertiser.md
diff --git a/_integration-schemas/facebook-ads/ads_insights_platform_and_device.md b/archive/_integration-schemas/facebook-ads/ads_insights_platform_and_device.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/facebook-ads/ads_insights_platform_and_device.md
rename to archive/_integration-schemas/facebook-ads/ads_insights_platform_and_device.md
diff --git a/_integration-schemas/facebook-ads/ads_insights_region.md b/archive/_integration-schemas/facebook-ads/ads_insights_region.md
similarity index 100%
rename from _integration-schemas/facebook-ads/ads_insights_region.md
rename to archive/_integration-schemas/facebook-ads/ads_insights_region.md
diff --git a/_integration-schemas/facebook-ads/adsets.md b/archive/_integration-schemas/facebook-ads/adsets.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/facebook-ads/adsets.md
rename to archive/_integration-schemas/facebook-ads/adsets.md
diff --git a/_integration-schemas/facebook-ads/campaigns.md b/archive/_integration-schemas/facebook-ads/campaigns.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/facebook-ads/campaigns.md
rename to archive/_integration-schemas/facebook-ads/campaigns.md
diff --git a/_integration-schemas/facebook-ads/foreign-keys.md b/archive/_integration-schemas/facebook-ads/foreign-keys.md
similarity index 100%
rename from _integration-schemas/facebook-ads/foreign-keys.md
rename to archive/_integration-schemas/facebook-ads/foreign-keys.md
diff --git a/_integration-schemas/freshdesk/agents.md b/archive/_integration-schemas/freshdesk/agents.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/freshdesk/agents.md
rename to archive/_integration-schemas/freshdesk/agents.md
diff --git a/archive/_integration-schemas/freshdesk/companies.md b/archive/_integration-schemas/freshdesk/companies.md
new file mode 100644
index 000000000..eee7242c9
--- /dev/null
+++ b/archive/_integration-schemas/freshdesk/companies.md
@@ -0,0 +1,55 @@
+---
+tap: "freshdesk"
+version: "1"
+
+name: "companies"
+doc-link: https://developers.freshdesk.com/api/#companies
+
+description: |
+ The `{{ table.name }}` table contains info about the companies your various customers and contacts belong to.
+
+ #### Custom Fields
+
+ If applicable, Stitch will replicate custom fields related to `{{ table.name }}` in {{ integration.display_name }}.
+
+replication-method: "Key-based Incremental"
+api-method:
+ name: "listAllCompanies"
+ doc-link: https://developers.freshdesk.com/api/#list_all_companies
+
+attributes:
+ - name: "id"
+ type: "integer"
+ primary-key: true
+ description: "The company ID."
+ foreign-key-id: "company-id"
+
+ - name: "updated_at"
+ type: "date-time"
+ replication-key: true
+ description: "The last time the company was updated."
+
+ - name: "description"
+ type: "string"
+ description: "The description of the company."
+
+ - name: "domains"
+ type: "array"
+ description: "The domains (ex: `stitchdata.com`) associated with the company."
+ subattributes:
+ - name: "value"
+ type: "string"
+ description: "The domain (ex: `stitchdata.com`) associated with the company."
+
+ - name: "name"
+ type: "string"
+ description: "The name of the company."
+
+ - name: "note"
+ type: "string"
+ description: "Any notes about the company."
+
+ - name: "created_at"
+ type: "date-time"
+ description: "The timestamp when the company was first created."
+---
\ No newline at end of file
diff --git a/_integration-schemas/freshdesk/contacts.md b/archive/_integration-schemas/freshdesk/contacts.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/freshdesk/contacts.md
rename to archive/_integration-schemas/freshdesk/contacts.md
diff --git a/_integration-schemas/freshdesk/conversations.md b/archive/_integration-schemas/freshdesk/conversations.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/freshdesk/conversations.md
rename to archive/_integration-schemas/freshdesk/conversations.md
diff --git a/_integration-schemas/freshdesk/foreign-keys.md b/archive/_integration-schemas/freshdesk/foreign-keys.md
similarity index 100%
rename from _integration-schemas/freshdesk/foreign-keys.md
rename to archive/_integration-schemas/freshdesk/foreign-keys.md
diff --git a/_integration-schemas/freshdesk/groups.md b/archive/_integration-schemas/freshdesk/groups.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/freshdesk/groups.md
rename to archive/_integration-schemas/freshdesk/groups.md
diff --git a/_integration-schemas/freshdesk/roles.md b/archive/_integration-schemas/freshdesk/roles.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/freshdesk/roles.md
rename to archive/_integration-schemas/freshdesk/roles.md
diff --git a/_integration-schemas/freshdesk/satisfaction_ratings.md b/archive/_integration-schemas/freshdesk/satisfaction_ratings.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/freshdesk/satisfaction_ratings.md
rename to archive/_integration-schemas/freshdesk/satisfaction_ratings.md
diff --git a/_integration-schemas/freshdesk/tickets.md b/archive/_integration-schemas/freshdesk/tickets.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/freshdesk/tickets.md
rename to archive/_integration-schemas/freshdesk/tickets.md
diff --git a/_integration-schemas/freshdesk/time_entries.md b/archive/_integration-schemas/freshdesk/time_entries.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/freshdesk/time_entries.md
rename to archive/_integration-schemas/freshdesk/time_entries.md
diff --git a/_integration-schemas/frontapp/v1/tags_table.md b/archive/_integration-schemas/frontapp/v1/tags_table.md
similarity index 100%
rename from _integration-schemas/frontapp/v1/tags_table.md
rename to archive/_integration-schemas/frontapp/v1/tags_table.md
diff --git a/_integration-schemas/frontapp/v1/team_table.md b/archive/_integration-schemas/frontapp/v1/team_table.md
similarity index 100%
rename from _integration-schemas/frontapp/v1/team_table.md
rename to archive/_integration-schemas/frontapp/v1/team_table.md
diff --git a/_integration-schemas/frontapp/v2/accounts_table.md b/archive/_integration-schemas/frontapp/v2/accounts_table.md
similarity index 100%
rename from _integration-schemas/frontapp/v2/accounts_table.md
rename to archive/_integration-schemas/frontapp/v2/accounts_table.md
diff --git a/_integration-schemas/frontapp/v2/channels_table.md b/archive/_integration-schemas/frontapp/v2/channels_table.md
similarity index 100%
rename from _integration-schemas/frontapp/v2/channels_table.md
rename to archive/_integration-schemas/frontapp/v2/channels_table.md
diff --git a/_integration-schemas/frontapp/v2/inboxes_table.md b/archive/_integration-schemas/frontapp/v2/inboxes_table.md
similarity index 100%
rename from _integration-schemas/frontapp/v2/inboxes_table.md
rename to archive/_integration-schemas/frontapp/v2/inboxes_table.md
diff --git a/_integration-schemas/frontapp/v2/tags_table.md b/archive/_integration-schemas/frontapp/v2/tags_table.md
similarity index 100%
rename from _integration-schemas/frontapp/v2/tags_table.md
rename to archive/_integration-schemas/frontapp/v2/tags_table.md
diff --git a/_integration-schemas/frontapp/v2/teammates_table.md b/archive/_integration-schemas/frontapp/v2/teammates_table.md
similarity index 100%
rename from _integration-schemas/frontapp/v2/teammates_table.md
rename to archive/_integration-schemas/frontapp/v2/teammates_table.md
diff --git a/_integration-schemas/frontapp/v2/teams_table.md b/archive/_integration-schemas/frontapp/v2/teams_table.md
similarity index 100%
rename from _integration-schemas/frontapp/v2/teams_table.md
rename to archive/_integration-schemas/frontapp/v2/teams_table.md
diff --git a/_integration-schemas/fullstory/events.md b/archive/_integration-schemas/fullstory/events.md
similarity index 100%
rename from _integration-schemas/fullstory/events.md
rename to archive/_integration-schemas/fullstory/events.md
diff --git a/_integration-schemas/ga360/foreign-keys.md b/archive/_integration-schemas/ga360/foreign-keys.md
similarity index 100%
rename from _integration-schemas/ga360/foreign-keys.md
rename to archive/_integration-schemas/ga360/foreign-keys.md
diff --git a/_integration-schemas/ga360/ga_session_hits.md b/archive/_integration-schemas/ga360/ga_session_hits.md
similarity index 100%
rename from _integration-schemas/ga360/ga_session_hits.md
rename to archive/_integration-schemas/ga360/ga_session_hits.md
diff --git a/_integration-schemas/ga360/ga_sessions.md b/archive/_integration-schemas/ga360/ga_sessions.md
similarity index 100%
rename from _integration-schemas/ga360/ga_sessions.md
rename to archive/_integration-schemas/ga360/ga_sessions.md
diff --git a/_integration-schemas/ga4/v1/sample-report.md b/archive/_integration-schemas/ga4/v1/sample-report.md
similarity index 100%
rename from _integration-schemas/ga4/v1/sample-report.md
rename to archive/_integration-schemas/ga4/v1/sample-report.md
diff --git a/_integration-schemas/github/v1/assignees.md b/archive/_integration-schemas/github/v1/assignees.md
similarity index 100%
rename from _integration-schemas/github/v1/assignees.md
rename to archive/_integration-schemas/github/v1/assignees.md
diff --git a/_integration-schemas/github/v1/collaborators.md b/archive/_integration-schemas/github/v1/collaborators.md
similarity index 100%
rename from _integration-schemas/github/v1/collaborators.md
rename to archive/_integration-schemas/github/v1/collaborators.md
diff --git a/_integration-schemas/github/v1/comments.md b/archive/_integration-schemas/github/v1/comments.md
similarity index 100%
rename from _integration-schemas/github/v1/comments.md
rename to archive/_integration-schemas/github/v1/comments.md
diff --git a/_integration-schemas/github/v1/commit_comments.md b/archive/_integration-schemas/github/v1/commit_comments.md
similarity index 100%
rename from _integration-schemas/github/v1/commit_comments.md
rename to archive/_integration-schemas/github/v1/commit_comments.md
diff --git a/_integration-schemas/github/v1/commits.md b/archive/_integration-schemas/github/v1/commits.md
similarity index 100%
rename from _integration-schemas/github/v1/commits.md
rename to archive/_integration-schemas/github/v1/commits.md
diff --git a/_integration-schemas/github/v1/events.md b/archive/_integration-schemas/github/v1/events.md
similarity index 100%
rename from _integration-schemas/github/v1/events.md
rename to archive/_integration-schemas/github/v1/events.md
diff --git a/_integration-schemas/github/v1/foreign-keys.md b/archive/_integration-schemas/github/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/github/v1/foreign-keys.md
rename to archive/_integration-schemas/github/v1/foreign-keys.md
diff --git a/_integration-schemas/github/v1/issue_events.md b/archive/_integration-schemas/github/v1/issue_events.md
similarity index 100%
rename from _integration-schemas/github/v1/issue_events.md
rename to archive/_integration-schemas/github/v1/issue_events.md
diff --git a/_integration-schemas/github/v1/issue_labels.md b/archive/_integration-schemas/github/v1/issue_labels.md
similarity index 100%
rename from _integration-schemas/github/v1/issue_labels.md
rename to archive/_integration-schemas/github/v1/issue_labels.md
diff --git a/_integration-schemas/github/v1/issue_milestones.md b/archive/_integration-schemas/github/v1/issue_milestones.md
similarity index 100%
rename from _integration-schemas/github/v1/issue_milestones.md
rename to archive/_integration-schemas/github/v1/issue_milestones.md
diff --git a/_integration-schemas/github/v1/issues.md b/archive/_integration-schemas/github/v1/issues.md
similarity index 100%
rename from _integration-schemas/github/v1/issues.md
rename to archive/_integration-schemas/github/v1/issues.md
diff --git a/_integration-schemas/github/v1/pr_commits.md b/archive/_integration-schemas/github/v1/pr_commits.md
similarity index 99%
rename from _integration-schemas/github/v1/pr_commits.md
rename to archive/_integration-schemas/github/v1/pr_commits.md
index b67c17b3f..4fffdff60 100644
--- a/_integration-schemas/github/v1/pr_commits.md
+++ b/archive/_integration-schemas/github/v1/pr_commits.md
@@ -28,7 +28,7 @@ replication-key:
based-on: "updated_at"
tooltip: "This is a query parameter used to extract new/updated data from GitHub. It will not be included in the table's fields."
-dependent-table-key: "pull-request"
+dependent-table-key: "pull_request"
# -------------------------- #
diff --git a/_integration-schemas/github/v1/project_cards.md b/archive/_integration-schemas/github/v1/project_cards.md
similarity index 100%
rename from _integration-schemas/github/v1/project_cards.md
rename to archive/_integration-schemas/github/v1/project_cards.md
diff --git a/_integration-schemas/github/v1/project_columns.md b/archive/_integration-schemas/github/v1/project_columns.md
similarity index 100%
rename from _integration-schemas/github/v1/project_columns.md
rename to archive/_integration-schemas/github/v1/project_columns.md
diff --git a/_integration-schemas/github/v1/projects.md b/archive/_integration-schemas/github/v1/projects.md
similarity index 100%
rename from _integration-schemas/github/v1/projects.md
rename to archive/_integration-schemas/github/v1/projects.md
diff --git a/_integration-schemas/github/v1/pull_requests.md b/archive/_integration-schemas/github/v1/pull_requests.md
similarity index 100%
rename from _integration-schemas/github/v1/pull_requests.md
rename to archive/_integration-schemas/github/v1/pull_requests.md
diff --git a/_integration-schemas/github/v1/releases.md b/archive/_integration-schemas/github/v1/releases.md
similarity index 100%
rename from _integration-schemas/github/v1/releases.md
rename to archive/_integration-schemas/github/v1/releases.md
diff --git a/_integration-schemas/github/v1/review_comments.md b/archive/_integration-schemas/github/v1/review_comments.md
similarity index 99%
rename from _integration-schemas/github/v1/review_comments.md
rename to archive/_integration-schemas/github/v1/review_comments.md
index e6b5568dd..16de0d1fe 100644
--- a/_integration-schemas/github/v1/review_comments.md
+++ b/archive/_integration-schemas/github/v1/review_comments.md
@@ -28,7 +28,7 @@ replication-key:
based-on: "updated_at"
tooltip: "This is a query parameter used to extract new/updated data from GitHub. It will not be included in the table's fields."
-dependent-table-key: "pull-request"
+dependent-table-key: "pull_request"
# -------------------------- #
diff --git a/archive/_integration-schemas/github/v1/reviews.md b/archive/_integration-schemas/github/v1/reviews.md
new file mode 100644
index 000000000..799fd6ef6
--- /dev/null
+++ b/archive/_integration-schemas/github/v1/reviews.md
@@ -0,0 +1,87 @@
+---
+# -------------------------- #
+# Table Details #
+# -------------------------- #
+
+tap: "github"
+version: "1"
+key: "review"
+
+name: "reviews"
+doc-link: https://developer.github.com/v3/pulls/reviews/
+singer-schema: https://github.com/singer-io/tap-github/blob/master/tap_github/schemas/reviews.json
+description: |
+ The `{{ table.name }}` table contains info about pull request reviews in the repositories specified for the integration. A pull request review is a group of comments on a pull request.
+
+
+# -------------------------- #
+# Replication Details #
+# -------------------------- #
+
+api-method:
+ name: "List reviews for a pull request"
+ doc-link: "https://docs.github.com/en/rest/reference/pulls#list-reviews-for-a-pull-request"
+
+replication-method: "Key-based Incremental"
+replication-key:
+ name: "since"
+ based-on: "updated_at"
+ tooltip: "This is a query parameter used to extract new/updated data from GitHub. It will not be included in the table's fields."
+
+dependent-table-key: "pull_request"
+
+
+# -------------------------- #
+# Table Attributes #
+# -------------------------- #
+
+attributes:
+ - name: "id"
+ type: "integer"
+ primary-key: true
+ description: "The review ID."
+ # foreign-key-id: "review-id"
+
+ - name: "body"
+ type: "string"
+ description: "The description of the review."
+
+ - name: "commit_id"
+ type: "string"
+ description: "The ID of the commit the review was performed on."
+ foreign-key-id: "commit-id"
+
+ - name: "html_url"
+ type: "string"
+ description: "The HTML URL to the review."
+
+ - name: "pull_request_url"
+ type: "string"
+ description: "The URL to the pull request being reviewed."
+
+ - name: "state"
+ type: "string"
+ description: |
+ The state of the review. Possible values are:
+
+ - `APPROVED`
+ - `PENDING`
+ - `CHANGES_REQUESTED`
+
+ - name: "submitted_at"
+ type: "date-time"
+ description: ""
+
+ - name: "user"
+ type: "object"
+ description: "Details about the user who submitted the review."
+ subattributes:
+ - name: "id"
+ type: "integer"
+ description: "The user ID."
+ foreign-key-id: "collaborator-id"
+
+ - name: "login"
+ type: "string"
+ description: "The user's GitHub username."
+---
\ No newline at end of file
diff --git a/_integration-schemas/github/v1/stargazers.md b/archive/_integration-schemas/github/v1/stargazers.md
similarity index 100%
rename from _integration-schemas/github/v1/stargazers.md
rename to archive/_integration-schemas/github/v1/stargazers.md
diff --git a/_integration-schemas/github/v1/team_members.md b/archive/_integration-schemas/github/v1/team_members.md
similarity index 100%
rename from _integration-schemas/github/v1/team_members.md
rename to archive/_integration-schemas/github/v1/team_members.md
diff --git a/_integration-schemas/github/v1/team_memberships.md b/archive/_integration-schemas/github/v1/team_memberships.md
similarity index 100%
rename from _integration-schemas/github/v1/team_memberships.md
rename to archive/_integration-schemas/github/v1/team_memberships.md
diff --git a/_integration-schemas/github/v1/teams.md b/archive/_integration-schemas/github/v1/teams.md
similarity index 100%
rename from _integration-schemas/github/v1/teams.md
rename to archive/_integration-schemas/github/v1/teams.md
diff --git a/_integration-schemas/github/v2/assignees.md b/archive/_integration-schemas/github/v2/assignees.md
similarity index 100%
rename from _integration-schemas/github/v2/assignees.md
rename to archive/_integration-schemas/github/v2/assignees.md
diff --git a/_integration-schemas/github/v2/collaborators.md b/archive/_integration-schemas/github/v2/collaborators.md
similarity index 100%
rename from _integration-schemas/github/v2/collaborators.md
rename to archive/_integration-schemas/github/v2/collaborators.md
diff --git a/_integration-schemas/github/v2/comments.md b/archive/_integration-schemas/github/v2/comments.md
similarity index 100%
rename from _integration-schemas/github/v2/comments.md
rename to archive/_integration-schemas/github/v2/comments.md
diff --git a/_integration-schemas/github/v2/commit_comments.md b/archive/_integration-schemas/github/v2/commit_comments.md
similarity index 100%
rename from _integration-schemas/github/v2/commit_comments.md
rename to archive/_integration-schemas/github/v2/commit_comments.md
diff --git a/_integration-schemas/github/v2/commits.md b/archive/_integration-schemas/github/v2/commits.md
similarity index 100%
rename from _integration-schemas/github/v2/commits.md
rename to archive/_integration-schemas/github/v2/commits.md
diff --git a/_integration-schemas/github/v2/events.md b/archive/_integration-schemas/github/v2/events.md
similarity index 100%
rename from _integration-schemas/github/v2/events.md
rename to archive/_integration-schemas/github/v2/events.md
diff --git a/_integration-schemas/github/v2/foreign-keys.md b/archive/_integration-schemas/github/v2/foreign-keys.md
similarity index 100%
rename from _integration-schemas/github/v2/foreign-keys.md
rename to archive/_integration-schemas/github/v2/foreign-keys.md
diff --git a/_integration-schemas/github/v2/issue_events.md b/archive/_integration-schemas/github/v2/issue_events.md
similarity index 100%
rename from _integration-schemas/github/v2/issue_events.md
rename to archive/_integration-schemas/github/v2/issue_events.md
diff --git a/_integration-schemas/github/v2/issue_labels.md b/archive/_integration-schemas/github/v2/issue_labels.md
similarity index 100%
rename from _integration-schemas/github/v2/issue_labels.md
rename to archive/_integration-schemas/github/v2/issue_labels.md
diff --git a/_integration-schemas/github/v2/issue_milestones.md b/archive/_integration-schemas/github/v2/issue_milestones.md
similarity index 100%
rename from _integration-schemas/github/v2/issue_milestones.md
rename to archive/_integration-schemas/github/v2/issue_milestones.md
diff --git a/_integration-schemas/github/v2/issues.md b/archive/_integration-schemas/github/v2/issues.md
similarity index 100%
rename from _integration-schemas/github/v2/issues.md
rename to archive/_integration-schemas/github/v2/issues.md
diff --git a/_integration-schemas/github/v2/pr_commits.md b/archive/_integration-schemas/github/v2/pr_commits.md
similarity index 100%
rename from _integration-schemas/github/v2/pr_commits.md
rename to archive/_integration-schemas/github/v2/pr_commits.md
diff --git a/_integration-schemas/github/v2/project_cards.md b/archive/_integration-schemas/github/v2/project_cards.md
similarity index 100%
rename from _integration-schemas/github/v2/project_cards.md
rename to archive/_integration-schemas/github/v2/project_cards.md
diff --git a/_integration-schemas/github/v2/project_columns.md b/archive/_integration-schemas/github/v2/project_columns.md
similarity index 100%
rename from _integration-schemas/github/v2/project_columns.md
rename to archive/_integration-schemas/github/v2/project_columns.md
diff --git a/_integration-schemas/github/v2/projects.md b/archive/_integration-schemas/github/v2/projects.md
similarity index 100%
rename from _integration-schemas/github/v2/projects.md
rename to archive/_integration-schemas/github/v2/projects.md
diff --git a/_integration-schemas/github/v2/pull_requests.md b/archive/_integration-schemas/github/v2/pull_requests.md
similarity index 100%
rename from _integration-schemas/github/v2/pull_requests.md
rename to archive/_integration-schemas/github/v2/pull_requests.md
diff --git a/_integration-schemas/github/v2/releases.md b/archive/_integration-schemas/github/v2/releases.md
similarity index 100%
rename from _integration-schemas/github/v2/releases.md
rename to archive/_integration-schemas/github/v2/releases.md
diff --git a/_integration-schemas/github/v2/review_comments.md b/archive/_integration-schemas/github/v2/review_comments.md
similarity index 100%
rename from _integration-schemas/github/v2/review_comments.md
rename to archive/_integration-schemas/github/v2/review_comments.md
diff --git a/_integration-schemas/github/v2/reviews.md b/archive/_integration-schemas/github/v2/reviews.md
similarity index 100%
rename from _integration-schemas/github/v2/reviews.md
rename to archive/_integration-schemas/github/v2/reviews.md
diff --git a/_integration-schemas/github/v2/stargazers.md b/archive/_integration-schemas/github/v2/stargazers.md
similarity index 100%
rename from _integration-schemas/github/v2/stargazers.md
rename to archive/_integration-schemas/github/v2/stargazers.md
diff --git a/_integration-schemas/github/v2/team_members.md b/archive/_integration-schemas/github/v2/team_members.md
similarity index 100%
rename from _integration-schemas/github/v2/team_members.md
rename to archive/_integration-schemas/github/v2/team_members.md
diff --git a/_integration-schemas/github/v2/team_memberships.md b/archive/_integration-schemas/github/v2/team_memberships.md
similarity index 100%
rename from _integration-schemas/github/v2/team_memberships.md
rename to archive/_integration-schemas/github/v2/team_memberships.md
diff --git a/_integration-schemas/github/v2/teams.md b/archive/_integration-schemas/github/v2/teams.md
similarity index 100%
rename from _integration-schemas/github/v2/teams.md
rename to archive/_integration-schemas/github/v2/teams.md
diff --git a/_integration-schemas/gitlab/branches.md b/archive/_integration-schemas/gitlab/branches.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/gitlab/branches.md
rename to archive/_integration-schemas/gitlab/branches.md
diff --git a/_integration-schemas/gitlab/commits.md b/archive/_integration-schemas/gitlab/commits.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/gitlab/commits.md
rename to archive/_integration-schemas/gitlab/commits.md
diff --git a/_integration-schemas/gitlab/foreign-keys.md b/archive/_integration-schemas/gitlab/foreign-keys.md
similarity index 100%
rename from _integration-schemas/gitlab/foreign-keys.md
rename to archive/_integration-schemas/gitlab/foreign-keys.md
diff --git a/_integration-schemas/gitlab/issues.md b/archive/_integration-schemas/gitlab/issues.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/gitlab/issues.md
rename to archive/_integration-schemas/gitlab/issues.md
diff --git a/_integration-schemas/gitlab/milestones.md b/archive/_integration-schemas/gitlab/milestones.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/gitlab/milestones.md
rename to archive/_integration-schemas/gitlab/milestones.md
diff --git a/_integration-schemas/gitlab/projects.md b/archive/_integration-schemas/gitlab/projects.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/gitlab/projects.md
rename to archive/_integration-schemas/gitlab/projects.md
diff --git a/_integration-schemas/gitlab/users.md b/archive/_integration-schemas/gitlab/users.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/gitlab/users.md
rename to archive/_integration-schemas/gitlab/users.md
diff --git a/_integration-schemas/google-ads-adwords/account_performance_report.md b/archive/_integration-schemas/google-ads-adwords/account_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads-adwords/account_performance_report.md
rename to archive/_integration-schemas/google-ads-adwords/account_performance_report.md
diff --git a/_integration-schemas/google-ads-adwords/accounts.md b/archive/_integration-schemas/google-ads-adwords/accounts.md
similarity index 100%
rename from _integration-schemas/google-ads-adwords/accounts.md
rename to archive/_integration-schemas/google-ads-adwords/accounts.md
diff --git a/_integration-schemas/google-ads-adwords/ad_groups.md b/archive/_integration-schemas/google-ads-adwords/ad_groups.md
similarity index 100%
rename from _integration-schemas/google-ads-adwords/ad_groups.md
rename to archive/_integration-schemas/google-ads-adwords/ad_groups.md
diff --git a/_integration-schemas/google-ads-adwords/ad_performance_report.md b/archive/_integration-schemas/google-ads-adwords/ad_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads-adwords/ad_performance_report.md
rename to archive/_integration-schemas/google-ads-adwords/ad_performance_report.md
diff --git a/_integration-schemas/google-ads-adwords/adgroup_performance_report.md b/archive/_integration-schemas/google-ads-adwords/adgroup_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads-adwords/adgroup_performance_report.md
rename to archive/_integration-schemas/google-ads-adwords/adgroup_performance_report.md
diff --git a/_integration-schemas/google-ads-adwords/ads.md b/archive/_integration-schemas/google-ads-adwords/ads.md
similarity index 100%
rename from _integration-schemas/google-ads-adwords/ads.md
rename to archive/_integration-schemas/google-ads-adwords/ads.md
diff --git a/_integration-schemas/google-ads-adwords/age_range_performance_report.md b/archive/_integration-schemas/google-ads-adwords/age_range_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads-adwords/age_range_performance_report.md
rename to archive/_integration-schemas/google-ads-adwords/age_range_performance_report.md
diff --git a/_integration-schemas/google-ads-adwords/audience_performance_report.md b/archive/_integration-schemas/google-ads-adwords/audience_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads-adwords/audience_performance_report.md
rename to archive/_integration-schemas/google-ads-adwords/audience_performance_report.md
diff --git a/_integration-schemas/google-ads-adwords/call_metrics_call_details_report.md b/archive/_integration-schemas/google-ads-adwords/call_metrics_call_details_report.md
similarity index 100%
rename from _integration-schemas/google-ads-adwords/call_metrics_call_details_report.md
rename to archive/_integration-schemas/google-ads-adwords/call_metrics_call_details_report.md
diff --git a/_integration-schemas/google-ads-adwords/campaign_performance_report.md b/archive/_integration-schemas/google-ads-adwords/campaign_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads-adwords/campaign_performance_report.md
rename to archive/_integration-schemas/google-ads-adwords/campaign_performance_report.md
diff --git a/_integration-schemas/google-ads-adwords/campaigns.md b/archive/_integration-schemas/google-ads-adwords/campaigns.md
similarity index 100%
rename from _integration-schemas/google-ads-adwords/campaigns.md
rename to archive/_integration-schemas/google-ads-adwords/campaigns.md
diff --git a/_integration-schemas/google-ads-adwords/click_performance_report.md b/archive/_integration-schemas/google-ads-adwords/click_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads-adwords/click_performance_report.md
rename to archive/_integration-schemas/google-ads-adwords/click_performance_report.md
diff --git a/_integration-schemas/google-ads-adwords/criteria_performance_report.md b/archive/_integration-schemas/google-ads-adwords/criteria_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads-adwords/criteria_performance_report.md
rename to archive/_integration-schemas/google-ads-adwords/criteria_performance_report.md
diff --git a/_integration-schemas/google-ads-adwords/display_keyword_performance_report.md b/archive/_integration-schemas/google-ads-adwords/display_keyword_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads-adwords/display_keyword_performance_report.md
rename to archive/_integration-schemas/google-ads-adwords/display_keyword_performance_report.md
diff --git a/_integration-schemas/google-ads-adwords/display_topics_performance_report.md b/archive/_integration-schemas/google-ads-adwords/display_topics_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads-adwords/display_topics_performance_report.md
rename to archive/_integration-schemas/google-ads-adwords/display_topics_performance_report.md
diff --git a/_integration-schemas/google-ads-adwords/final_url_report.md b/archive/_integration-schemas/google-ads-adwords/final_url_report.md
similarity index 100%
rename from _integration-schemas/google-ads-adwords/final_url_report.md
rename to archive/_integration-schemas/google-ads-adwords/final_url_report.md
diff --git a/_integration-schemas/google-ads-adwords/gender_performance_report.md b/archive/_integration-schemas/google-ads-adwords/gender_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads-adwords/gender_performance_report.md
rename to archive/_integration-schemas/google-ads-adwords/gender_performance_report.md
diff --git a/_integration-schemas/google-ads-adwords/geo_performance_report.md b/archive/_integration-schemas/google-ads-adwords/geo_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads-adwords/geo_performance_report.md
rename to archive/_integration-schemas/google-ads-adwords/geo_performance_report.md
diff --git a/_integration-schemas/google-ads-adwords/keywordless_query_report.md b/archive/_integration-schemas/google-ads-adwords/keywordless_query_report.md
similarity index 100%
rename from _integration-schemas/google-ads-adwords/keywordless_query_report.md
rename to archive/_integration-schemas/google-ads-adwords/keywordless_query_report.md
diff --git a/_integration-schemas/google-ads-adwords/keywords_performance_report.md b/archive/_integration-schemas/google-ads-adwords/keywords_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads-adwords/keywords_performance_report.md
rename to archive/_integration-schemas/google-ads-adwords/keywords_performance_report.md
diff --git a/_integration-schemas/google-ads-adwords/search_query_performance_report.md b/archive/_integration-schemas/google-ads-adwords/search_query_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads-adwords/search_query_performance_report.md
rename to archive/_integration-schemas/google-ads-adwords/search_query_performance_report.md
diff --git a/_integration-schemas/google-ads-adwords/video_performance_report.md b/archive/_integration-schemas/google-ads-adwords/video_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads-adwords/video_performance_report.md
rename to archive/_integration-schemas/google-ads-adwords/video_performance_report.md
diff --git a/_integration-schemas/google-ads/accessible_bidding_strategies.md b/archive/_integration-schemas/google-ads/accessible_bidding_strategies.md
similarity index 100%
rename from _integration-schemas/google-ads/accessible_bidding_strategies.md
rename to archive/_integration-schemas/google-ads/accessible_bidding_strategies.md
diff --git a/_integration-schemas/google-ads/account_performance_report.md b/archive/_integration-schemas/google-ads/account_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads/account_performance_report.md
rename to archive/_integration-schemas/google-ads/account_performance_report.md
diff --git a/_integration-schemas/google-ads/accounts.md b/archive/_integration-schemas/google-ads/accounts.md
similarity index 100%
rename from _integration-schemas/google-ads/accounts.md
rename to archive/_integration-schemas/google-ads/accounts.md
diff --git a/_integration-schemas/google-ads/ad_group_audience_performance_report.md b/archive/_integration-schemas/google-ads/ad_group_audience_performance_report.md
similarity index 99%
rename from _integration-schemas/google-ads/ad_group_audience_performance_report.md
rename to archive/_integration-schemas/google-ads/ad_group_audience_performance_report.md
index 23149d5e5..7f611f28c 100644
--- a/_integration-schemas/google-ads/ad_group_audience_performance_report.md
+++ b/archive/_integration-schemas/google-ads/ad_group_audience_performance_report.md
@@ -101,7 +101,6 @@ attributes:
- name: "target_restrictions"
type: "object, string"
description: ""
- subattributes: *id001
- name: "ad_group_tracking_url_template"
type: "string"
description: ""
diff --git a/_integration-schemas/google-ads/ad_group_criterion.md b/archive/_integration-schemas/google-ads/ad_group_criterion.md
similarity index 100%
rename from _integration-schemas/google-ads/ad_group_criterion.md
rename to archive/_integration-schemas/google-ads/ad_group_criterion.md
diff --git a/_integration-schemas/google-ads/ad_group_performance_report.md b/archive/_integration-schemas/google-ads/ad_group_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads/ad_group_performance_report.md
rename to archive/_integration-schemas/google-ads/ad_group_performance_report.md
diff --git a/_integration-schemas/google-ads/ad_groups.md b/archive/_integration-schemas/google-ads/ad_groups.md
similarity index 100%
rename from _integration-schemas/google-ads/ad_groups.md
rename to archive/_integration-schemas/google-ads/ad_groups.md
diff --git a/_integration-schemas/google-ads/ad_performance_report.md b/archive/_integration-schemas/google-ads/ad_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads/ad_performance_report.md
rename to archive/_integration-schemas/google-ads/ad_performance_report.md
diff --git a/_integration-schemas/google-ads/ads.md b/archive/_integration-schemas/google-ads/ads.md
similarity index 100%
rename from _integration-schemas/google-ads/ads.md
rename to archive/_integration-schemas/google-ads/ads.md
diff --git a/_integration-schemas/google-ads/age_range_performance_report.md b/archive/_integration-schemas/google-ads/age_range_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads/age_range_performance_report.md
rename to archive/_integration-schemas/google-ads/age_range_performance_report.md
diff --git a/_integration-schemas/google-ads/bidding_strategies.md b/archive/_integration-schemas/google-ads/bidding_strategies.md
similarity index 100%
rename from _integration-schemas/google-ads/bidding_strategies.md
rename to archive/_integration-schemas/google-ads/bidding_strategies.md
diff --git a/_integration-schemas/google-ads/call_details.md b/archive/_integration-schemas/google-ads/call_details.md
similarity index 100%
rename from _integration-schemas/google-ads/call_details.md
rename to archive/_integration-schemas/google-ads/call_details.md
diff --git a/_integration-schemas/google-ads/campaign_audience_performance_report.md b/archive/_integration-schemas/google-ads/campaign_audience_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads/campaign_audience_performance_report.md
rename to archive/_integration-schemas/google-ads/campaign_audience_performance_report.md
diff --git a/_integration-schemas/google-ads/campaign_budgets.md b/archive/_integration-schemas/google-ads/campaign_budgets.md
similarity index 100%
rename from _integration-schemas/google-ads/campaign_budgets.md
rename to archive/_integration-schemas/google-ads/campaign_budgets.md
diff --git a/_integration-schemas/google-ads/campaign_criterion.md b/archive/_integration-schemas/google-ads/campaign_criterion.md
similarity index 100%
rename from _integration-schemas/google-ads/campaign_criterion.md
rename to archive/_integration-schemas/google-ads/campaign_criterion.md
diff --git a/_integration-schemas/google-ads/campaign_labels.md b/archive/_integration-schemas/google-ads/campaign_labels.md
similarity index 100%
rename from _integration-schemas/google-ads/campaign_labels.md
rename to archive/_integration-schemas/google-ads/campaign_labels.md
diff --git a/_integration-schemas/google-ads/campaign_performance_report.md b/archive/_integration-schemas/google-ads/campaign_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads/campaign_performance_report.md
rename to archive/_integration-schemas/google-ads/campaign_performance_report.md
diff --git a/_integration-schemas/google-ads/campaigns.md b/archive/_integration-schemas/google-ads/campaigns.md
similarity index 100%
rename from _integration-schemas/google-ads/campaigns.md
rename to archive/_integration-schemas/google-ads/campaigns.md
diff --git a/_integration-schemas/google-ads/carrier_constant.md b/archive/_integration-schemas/google-ads/carrier_constant.md
similarity index 100%
rename from _integration-schemas/google-ads/carrier_constant.md
rename to archive/_integration-schemas/google-ads/carrier_constant.md
diff --git a/_integration-schemas/google-ads/click_performance_report.md b/archive/_integration-schemas/google-ads/click_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads/click_performance_report.md
rename to archive/_integration-schemas/google-ads/click_performance_report.md
diff --git a/_integration-schemas/google-ads/display_keyword_performance_report.md b/archive/_integration-schemas/google-ads/display_keyword_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads/display_keyword_performance_report.md
rename to archive/_integration-schemas/google-ads/display_keyword_performance_report.md
diff --git a/_integration-schemas/google-ads/display_topics_performance_report.md b/archive/_integration-schemas/google-ads/display_topics_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads/display_topics_performance_report.md
rename to archive/_integration-schemas/google-ads/display_topics_performance_report.md
diff --git a/_integration-schemas/google-ads/expanded_landing_page_report.md b/archive/_integration-schemas/google-ads/expanded_landing_page_report.md
similarity index 100%
rename from _integration-schemas/google-ads/expanded_landing_page_report.md
rename to archive/_integration-schemas/google-ads/expanded_landing_page_report.md
diff --git a/_integration-schemas/google-ads/feed.md b/archive/_integration-schemas/google-ads/feed.md
similarity index 100%
rename from _integration-schemas/google-ads/feed.md
rename to archive/_integration-schemas/google-ads/feed.md
diff --git a/_integration-schemas/google-ads/feed_item.md b/archive/_integration-schemas/google-ads/feed_item.md
similarity index 100%
rename from _integration-schemas/google-ads/feed_item.md
rename to archive/_integration-schemas/google-ads/feed_item.md
diff --git a/_integration-schemas/google-ads/gender_performance_report.md b/archive/_integration-schemas/google-ads/gender_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads/gender_performance_report.md
rename to archive/_integration-schemas/google-ads/gender_performance_report.md
diff --git a/_integration-schemas/google-ads/geo_performance_report.md b/archive/_integration-schemas/google-ads/geo_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads/geo_performance_report.md
rename to archive/_integration-schemas/google-ads/geo_performance_report.md
diff --git a/_integration-schemas/google-ads/keywordless_query_report.md b/archive/_integration-schemas/google-ads/keywordless_query_report.md
similarity index 100%
rename from _integration-schemas/google-ads/keywordless_query_report.md
rename to archive/_integration-schemas/google-ads/keywordless_query_report.md
diff --git a/_integration-schemas/google-ads/keywords_performance_report.md b/archive/_integration-schemas/google-ads/keywords_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads/keywords_performance_report.md
rename to archive/_integration-schemas/google-ads/keywords_performance_report.md
diff --git a/_integration-schemas/google-ads/labels.md b/archive/_integration-schemas/google-ads/labels.md
similarity index 100%
rename from _integration-schemas/google-ads/labels.md
rename to archive/_integration-schemas/google-ads/labels.md
diff --git a/_integration-schemas/google-ads/landing_page_report.md b/archive/_integration-schemas/google-ads/landing_page_report.md
similarity index 100%
rename from _integration-schemas/google-ads/landing_page_report.md
rename to archive/_integration-schemas/google-ads/landing_page_report.md
diff --git a/_integration-schemas/google-ads/language_constant.md b/archive/_integration-schemas/google-ads/language_constant.md
similarity index 95%
rename from _integration-schemas/google-ads/language_constant.md
rename to archive/_integration-schemas/google-ads/language_constant.md
index c5d374ad7..f2e7d26be 100644
--- a/_integration-schemas/google-ads/language_constant.md
+++ b/archive/_integration-schemas/google-ads/language_constant.md
@@ -3,7 +3,7 @@ tap: "google-ads"
version: "1"
name: "language_constant"
doc-link: https://developers.google.com/google-ads/api/reference/rpc/v12/LanguageConstant
-dependent-on: "campaign-criterion"
+dependent-on: "campaign_criterion"
description: |
The `{{ table.name }}` table contains info about about languages.
diff --git a/_integration-schemas/google-ads/mobile_app_category_constant.md b/archive/_integration-schemas/google-ads/mobile_app_category_constant.md
similarity index 100%
rename from _integration-schemas/google-ads/mobile_app_category_constant.md
rename to archive/_integration-schemas/google-ads/mobile_app_category_constant.md
diff --git a/_integration-schemas/google-ads/mobile_device_constant.md b/archive/_integration-schemas/google-ads/mobile_device_constant.md
similarity index 96%
rename from _integration-schemas/google-ads/mobile_device_constant.md
rename to archive/_integration-schemas/google-ads/mobile_device_constant.md
index 9f1b1ed5e..1059540c5 100644
--- a/_integration-schemas/google-ads/mobile_device_constant.md
+++ b/archive/_integration-schemas/google-ads/mobile_device_constant.md
@@ -3,7 +3,7 @@ tap: "google-ads"
version: "1"
name: "mobile_device_constant"
doc-link: https://developers.google.com/google-ads/api/reference/rpc/v12/MobileDeviceConstant
-dependent-on: "campaign-criterion"
+dependent-on: "campaign_criterion"
description: |
The `{{ table.name }}` table contains info about mobile devices.
diff --git a/_integration-schemas/google-ads/operating_system_verison_constant.md b/archive/_integration-schemas/google-ads/operating_system_verison_constant.md
similarity index 96%
rename from _integration-schemas/google-ads/operating_system_verison_constant.md
rename to archive/_integration-schemas/google-ads/operating_system_verison_constant.md
index fc411b5e7..dcb15efd3 100644
--- a/_integration-schemas/google-ads/operating_system_verison_constant.md
+++ b/archive/_integration-schemas/google-ads/operating_system_verison_constant.md
@@ -3,7 +3,7 @@ tap: "google-ads"
version: "1"
name: "operating_system_verison_constant"
doc-link: https://developers.google.com/google-ads/api/reference/rpc/v12/OperatingSystemVersionConstant
-dependent-on: "campaign-criterion"
+dependent-on: "campaign_criterion"
description: |
The `{{ table.name }}` table contains info about mobile operating system versions.
diff --git a/_integration-schemas/google-ads/placeholder_feed_item_report.md b/archive/_integration-schemas/google-ads/placeholder_feed_item_report.md
similarity index 100%
rename from _integration-schemas/google-ads/placeholder_feed_item_report.md
rename to archive/_integration-schemas/google-ads/placeholder_feed_item_report.md
diff --git a/_integration-schemas/google-ads/placeholder_report.md b/archive/_integration-schemas/google-ads/placeholder_report.md
similarity index 100%
rename from _integration-schemas/google-ads/placeholder_report.md
rename to archive/_integration-schemas/google-ads/placeholder_report.md
diff --git a/_integration-schemas/google-ads/placement_performance_report.md b/archive/_integration-schemas/google-ads/placement_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads/placement_performance_report.md
rename to archive/_integration-schemas/google-ads/placement_performance_report.md
diff --git a/_integration-schemas/google-ads/search_query_performance_report.md b/archive/_integration-schemas/google-ads/search_query_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads/search_query_performance_report.md
rename to archive/_integration-schemas/google-ads/search_query_performance_report.md
diff --git a/_integration-schemas/google-ads/shopping_performance_report.md b/archive/_integration-schemas/google-ads/shopping_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads/shopping_performance_report.md
rename to archive/_integration-schemas/google-ads/shopping_performance_report.md
diff --git a/_integration-schemas/google-ads/topic_constant.md b/archive/_integration-schemas/google-ads/topic_constant.md
similarity index 100%
rename from _integration-schemas/google-ads/topic_constant.md
rename to archive/_integration-schemas/google-ads/topic_constant.md
diff --git a/_integration-schemas/google-ads/user_interest.md b/archive/_integration-schemas/google-ads/user_interest.md
similarity index 100%
rename from _integration-schemas/google-ads/user_interest.md
rename to archive/_integration-schemas/google-ads/user_interest.md
diff --git a/_integration-schemas/google-ads/user_list.md b/archive/_integration-schemas/google-ads/user_list.md
similarity index 100%
rename from _integration-schemas/google-ads/user_list.md
rename to archive/_integration-schemas/google-ads/user_list.md
diff --git a/_integration-schemas/google-ads/user_location_performance_report.md b/archive/_integration-schemas/google-ads/user_location_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads/user_location_performance_report.md
rename to archive/_integration-schemas/google-ads/user_location_performance_report.md
diff --git a/_integration-schemas/google-ads/video_performance_report.md b/archive/_integration-schemas/google-ads/video_performance_report.md
similarity index 100%
rename from _integration-schemas/google-ads/video_performance_report.md
rename to archive/_integration-schemas/google-ads/video_performance_report.md
diff --git a/archive/_integration-schemas/google-adwords/foreign-keys.md b/archive/_integration-schemas/google-adwords/foreign-keys.md
new file mode 100644
index 000000000..6023a5a41
--- /dev/null
+++ b/archive/_integration-schemas/google-adwords/foreign-keys.md
@@ -0,0 +1,71 @@
+---
+tap-reference: "google-ads-adwords"
+
+version: "1"
+
+foreign-keys:
+ - id: "customer-id"
+ attribute: "customerId"
+ table: "accounts"
+ all-foreign-keys:
+ - table: "account_performance_report"
+ - table: "accounts"
+ - table: "ad_groups"
+ - table: "ad_performance_report"
+ - table: "adgroup_performance_report"
+ - table: "age_range_performance_report"
+ - table: "audience_performance_report"
+ - table: "call_metrics_call_details_performance_report"
+ - table: "campaign_performance_report"
+ - table: "campaigns"
+ - table: "click_performance_report"
+ - table: "criteria_performance_report"
+ - table: "display_keyword_performance_report"
+ - table: "display_topics_performance_report"
+ - table: "final_url_report"
+ - table: "gender_performance_report"
+ - table: "geo_performance_report"
+ - table: "keywordless_query_report"
+ - table: "keywords_performance_report"
+ - table: "search_query_performance_report"
+ - table: "video_performance_report"
+
+ - id: "adgroup-id"
+ attribute: "adGroupId"
+ table: "ad_groups"
+ all-foreign-keys:
+ - table: "ad_groups"
+ join-on: "id"
+ - table: "ads"
+
+ - id: "base-adgroup-id"
+ attribute: "baseAdGroupId"
+ table: "ad_groups"
+ all-foreign-keys:
+ - table: "ads"
+ - table: "ad_groups"
+
+ - id: "base-campaign-id"
+ attribute: "baseCampaignId"
+ table: "campaigns"
+ all-foreign-keys:
+ - table: "ads"
+ - table: "ad_groups"
+ - table: "campaigns"
+
+ - id: "campaign-id"
+ attribute: "campaignId"
+ table: "campaigns"
+ all-foreign-keys:
+ - table: "ad_groups"
+ - table: "campaigns"
+
+ - id: "label-id"
+ attribute: "id"
+ table: ""
+ all-foreign-keys:
+ - table: "ad_groups"
+ subtable: "labels"
+ - table: "campaigns"
+ subtable: "labels"
+---
\ No newline at end of file
diff --git a/_integration-schemas/google-analytics-adwords/report.md b/archive/_integration-schemas/google-analytics-adwords/report.md
similarity index 99%
rename from _integration-schemas/google-analytics-adwords/report.md
rename to archive/_integration-schemas/google-analytics-adwords/report.md
index 39edefa84..b9e5df8c3 100644
--- a/_integration-schemas/google-analytics-adwords/report.md
+++ b/archive/_integration-schemas/google-analytics-adwords/report.md
@@ -3,7 +3,7 @@ tap: "google-analytics-adwords"
version: "05-12-2017"
name: "report"
-doc-link:
+
description: |
The `report` table contains info about your active campaigns and the ads contained within those campaigns.
diff --git a/_integration-schemas/google-analytics-adwords/v15-10-2015/adwords.md b/archive/_integration-schemas/google-analytics-adwords/v15-10-2015/adwords.md
similarity index 99%
rename from _integration-schemas/google-analytics-adwords/v15-10-2015/adwords.md
rename to archive/_integration-schemas/google-analytics-adwords/v15-10-2015/adwords.md
index c78f7a916..a97beb910 100644
--- a/_integration-schemas/google-analytics-adwords/v15-10-2015/adwords.md
+++ b/archive/_integration-schemas/google-analytics-adwords/v15-10-2015/adwords.md
@@ -3,7 +3,7 @@ tap: "google-analytics-adwords"
version: "15-10-2015"
name: "adwords123456789_v2"
-doc-link:
+
description: |
The `adwords` table contains daily info about each of your active campaigns and the ads contained within those campaigns.
diff --git a/_integration-schemas/google-analytics-adwords/v15-10-2015/campaigns.md b/archive/_integration-schemas/google-analytics-adwords/v15-10-2015/campaigns.md
similarity index 100%
rename from _integration-schemas/google-analytics-adwords/v15-10-2015/campaigns.md
rename to archive/_integration-schemas/google-analytics-adwords/v15-10-2015/campaigns.md
diff --git a/_integration-schemas/google-analytics/v1/sample-table.md b/archive/_integration-schemas/google-analytics/v1/sample-table.md
similarity index 100%
rename from _integration-schemas/google-analytics/v1/sample-table.md
rename to archive/_integration-schemas/google-analytics/v1/sample-table.md
diff --git a/_integration-schemas/google-analytics/v14-09-2016/report.md b/archive/_integration-schemas/google-analytics/v14-09-2016/report.md
similarity index 100%
rename from _integration-schemas/google-analytics/v14-09-2016/report.md
rename to archive/_integration-schemas/google-analytics/v14-09-2016/report.md
diff --git a/_integration-schemas/google-ecommerce/ecommerce-v2.md b/archive/_integration-schemas/google-ecommerce/ecommerce-v2.md
similarity index 100%
rename from _integration-schemas/google-ecommerce/ecommerce-v2.md
rename to archive/_integration-schemas/google-ecommerce/ecommerce-v2.md
diff --git a/_integration-schemas/google-search-console/v1/foreign-keys.md b/archive/_integration-schemas/google-search-console/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/google-search-console/v1/foreign-keys.md
rename to archive/_integration-schemas/google-search-console/v1/foreign-keys.md
diff --git a/_integration-schemas/google-search-console/v1/performance_report_country.md b/archive/_integration-schemas/google-search-console/v1/performance_report_country.md
similarity index 100%
rename from _integration-schemas/google-search-console/v1/performance_report_country.md
rename to archive/_integration-schemas/google-search-console/v1/performance_report_country.md
diff --git a/_integration-schemas/google-search-console/v1/performance_report_custom.md b/archive/_integration-schemas/google-search-console/v1/performance_report_custom.md
similarity index 100%
rename from _integration-schemas/google-search-console/v1/performance_report_custom.md
rename to archive/_integration-schemas/google-search-console/v1/performance_report_custom.md
diff --git a/_integration-schemas/google-search-console/v1/performance_report_date.md b/archive/_integration-schemas/google-search-console/v1/performance_report_date.md
similarity index 100%
rename from _integration-schemas/google-search-console/v1/performance_report_date.md
rename to archive/_integration-schemas/google-search-console/v1/performance_report_date.md
diff --git a/_integration-schemas/google-search-console/v1/performance_report_device.md b/archive/_integration-schemas/google-search-console/v1/performance_report_device.md
similarity index 100%
rename from _integration-schemas/google-search-console/v1/performance_report_device.md
rename to archive/_integration-schemas/google-search-console/v1/performance_report_device.md
diff --git a/_integration-schemas/google-search-console/v1/performance_report_page.md b/archive/_integration-schemas/google-search-console/v1/performance_report_page.md
similarity index 100%
rename from _integration-schemas/google-search-console/v1/performance_report_page.md
rename to archive/_integration-schemas/google-search-console/v1/performance_report_page.md
diff --git a/_integration-schemas/google-search-console/v1/performance_report_query.md b/archive/_integration-schemas/google-search-console/v1/performance_report_query.md
similarity index 100%
rename from _integration-schemas/google-search-console/v1/performance_report_query.md
rename to archive/_integration-schemas/google-search-console/v1/performance_report_query.md
diff --git a/_integration-schemas/google-search-console/v1/sitemaps.md b/archive/_integration-schemas/google-search-console/v1/sitemaps.md
similarity index 100%
rename from _integration-schemas/google-search-console/v1/sitemaps.md
rename to archive/_integration-schemas/google-search-console/v1/sitemaps.md
diff --git a/_integration-schemas/google-search-console/v1/sites.md b/archive/_integration-schemas/google-search-console/v1/sites.md
similarity index 100%
rename from _integration-schemas/google-search-console/v1/sites.md
rename to archive/_integration-schemas/google-search-console/v1/sites.md
diff --git a/_integration-schemas/google-sheets/v1/file_metadata.md b/archive/_integration-schemas/google-sheets/v1/file_metadata.md
similarity index 100%
rename from _integration-schemas/google-sheets/v1/file_metadata.md
rename to archive/_integration-schemas/google-sheets/v1/file_metadata.md
diff --git a/_integration-schemas/google-sheets/v1/foreign-keys.md b/archive/_integration-schemas/google-sheets/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/google-sheets/v1/foreign-keys.md
rename to archive/_integration-schemas/google-sheets/v1/foreign-keys.md
diff --git a/_integration-schemas/google-sheets/v1/sample-table.md b/archive/_integration-schemas/google-sheets/v1/sample-table.md
similarity index 100%
rename from _integration-schemas/google-sheets/v1/sample-table.md
rename to archive/_integration-schemas/google-sheets/v1/sample-table.md
diff --git a/_integration-schemas/google-sheets/v1/sheet_metadata.md b/archive/_integration-schemas/google-sheets/v1/sheet_metadata.md
similarity index 100%
rename from _integration-schemas/google-sheets/v1/sheet_metadata.md
rename to archive/_integration-schemas/google-sheets/v1/sheet_metadata.md
diff --git a/_integration-schemas/google-sheets/v1/sheets_loaded.md b/archive/_integration-schemas/google-sheets/v1/sheets_loaded.md
similarity index 100%
rename from _integration-schemas/google-sheets/v1/sheets_loaded.md
rename to archive/_integration-schemas/google-sheets/v1/sheets_loaded.md
diff --git a/_integration-schemas/google-sheets/v1/spreadsheet_metadata.md b/archive/_integration-schemas/google-sheets/v1/spreadsheet_metadata.md
similarity index 100%
rename from _integration-schemas/google-sheets/v1/spreadsheet_metadata.md
rename to archive/_integration-schemas/google-sheets/v1/spreadsheet_metadata.md
diff --git a/_integration-schemas/google-sheets/v2/file_metadata.md b/archive/_integration-schemas/google-sheets/v2/file_metadata.md
similarity index 100%
rename from _integration-schemas/google-sheets/v2/file_metadata.md
rename to archive/_integration-schemas/google-sheets/v2/file_metadata.md
diff --git a/_integration-schemas/google-sheets/v2/sheet_metadata.md b/archive/_integration-schemas/google-sheets/v2/sheet_metadata.md
similarity index 100%
rename from _integration-schemas/google-sheets/v2/sheet_metadata.md
rename to archive/_integration-schemas/google-sheets/v2/sheet_metadata.md
diff --git a/_integration-schemas/google-sheets/v2/sheets_loaded.md b/archive/_integration-schemas/google-sheets/v2/sheets_loaded.md
similarity index 100%
rename from _integration-schemas/google-sheets/v2/sheets_loaded.md
rename to archive/_integration-schemas/google-sheets/v2/sheets_loaded.md
diff --git a/_integration-schemas/google-sheets/v2/spreadsheet_metadata.md b/archive/_integration-schemas/google-sheets/v2/spreadsheet_metadata.md
similarity index 100%
rename from _integration-schemas/google-sheets/v2/spreadsheet_metadata.md
rename to archive/_integration-schemas/google-sheets/v2/spreadsheet_metadata.md
diff --git a/_integration-schemas/harvest-forecast/assignments.md b/archive/_integration-schemas/harvest-forecast/assignments.md
similarity index 100%
rename from _integration-schemas/harvest-forecast/assignments.md
rename to archive/_integration-schemas/harvest-forecast/assignments.md
diff --git a/_integration-schemas/harvest-forecast/clients.md b/archive/_integration-schemas/harvest-forecast/clients.md
similarity index 100%
rename from _integration-schemas/harvest-forecast/clients.md
rename to archive/_integration-schemas/harvest-forecast/clients.md
diff --git a/_integration-schemas/harvest-forecast/foreign-keys.md b/archive/_integration-schemas/harvest-forecast/foreign-keys.md
similarity index 100%
rename from _integration-schemas/harvest-forecast/foreign-keys.md
rename to archive/_integration-schemas/harvest-forecast/foreign-keys.md
diff --git a/_integration-schemas/harvest-forecast/milestones.md b/archive/_integration-schemas/harvest-forecast/milestones.md
similarity index 100%
rename from _integration-schemas/harvest-forecast/milestones.md
rename to archive/_integration-schemas/harvest-forecast/milestones.md
diff --git a/_integration-schemas/harvest-forecast/people.md b/archive/_integration-schemas/harvest-forecast/people.md
similarity index 100%
rename from _integration-schemas/harvest-forecast/people.md
rename to archive/_integration-schemas/harvest-forecast/people.md
diff --git a/_integration-schemas/harvest-forecast/placeholders.md b/archive/_integration-schemas/harvest-forecast/placeholders.md
similarity index 100%
rename from _integration-schemas/harvest-forecast/placeholders.md
rename to archive/_integration-schemas/harvest-forecast/placeholders.md
diff --git a/_integration-schemas/harvest-forecast/projects.md b/archive/_integration-schemas/harvest-forecast/projects.md
similarity index 100%
rename from _integration-schemas/harvest-forecast/projects.md
rename to archive/_integration-schemas/harvest-forecast/projects.md
diff --git a/_integration-schemas/harvest-forecast/roles.md b/archive/_integration-schemas/harvest-forecast/roles.md
similarity index 100%
rename from _integration-schemas/harvest-forecast/roles.md
rename to archive/_integration-schemas/harvest-forecast/roles.md
diff --git a/_integration-schemas/harvest/v1/clients.md b/archive/_integration-schemas/harvest/v1/clients.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/harvest/v1/clients.md
rename to archive/_integration-schemas/harvest/v1/clients.md
diff --git a/_integration-schemas/harvest/v1/contacts.md b/archive/_integration-schemas/harvest/v1/contacts.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/harvest/v1/contacts.md
rename to archive/_integration-schemas/harvest/v1/contacts.md
diff --git a/_integration-schemas/harvest/v1/expense_categories.md b/archive/_integration-schemas/harvest/v1/expense_categories.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/harvest/v1/expense_categories.md
rename to archive/_integration-schemas/harvest/v1/expense_categories.md
diff --git a/_integration-schemas/harvest/v1/expenses.md b/archive/_integration-schemas/harvest/v1/expenses.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/harvest/v1/expenses.md
rename to archive/_integration-schemas/harvest/v1/expenses.md
diff --git a/_integration-schemas/harvest/v1/invoice_item_categories.md b/archive/_integration-schemas/harvest/v1/invoice_item_categories.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/harvest/v1/invoice_item_categories.md
rename to archive/_integration-schemas/harvest/v1/invoice_item_categories.md
diff --git a/_integration-schemas/harvest/v1/invoice_messages.md b/archive/_integration-schemas/harvest/v1/invoice_messages.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/harvest/v1/invoice_messages.md
rename to archive/_integration-schemas/harvest/v1/invoice_messages.md
diff --git a/_integration-schemas/harvest/v1/invoice_payments.md b/archive/_integration-schemas/harvest/v1/invoice_payments.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/harvest/v1/invoice_payments.md
rename to archive/_integration-schemas/harvest/v1/invoice_payments.md
diff --git a/archive/_integration-schemas/harvest/v1/invoices.md b/archive/_integration-schemas/harvest/v1/invoices.md
new file mode 100644
index 000000000..ab01bf443
--- /dev/null
+++ b/archive/_integration-schemas/harvest/v1/invoices.md
@@ -0,0 +1,152 @@
+---
+tap: "harvest"
+version: "1"
+
+name: "invoices"
+doc-link: http://help.getharvest.com/api-v1/invoices-api/invoices/show-invoices#show-a-single-invoice
+singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/invoices.json
+description: |
+ The `invoices` table contains info about the invoices in your Harvest account.
+
+replication-method: "Key-based Incremental"
+
+
+attributes:
+ - name: "id"
+ type: "integer"
+ primary-key: true
+ description: "The invoice ID."
+ # foreign-keys:
+ # - table: "invoice_messages"
+ # attribute: "invoice_id"
+ # - table: "invoice_payments"
+ # attribute: "invoice_id"
+
+ - name: "updated_at"
+ type: "date-time"
+ replication-key: true
+ description: "The last time the invoice was updated."
+
+ - name: "client_id"
+ type: "integer"
+ description: "The ID of the client associated with the invoice."
+ # foreign-keys:
+ # - table: "clients"
+ # attribute: "id"
+ # - table: "contacts"
+ # attribute: "client_id"
+
+ - name: "client_name"
+ type: "string"
+ description: "The name of the client associated with the invoice."
+
+ - name: "period_start"
+ type: "string"
+ description: "The start date of the period associated with the invoice."
+
+ - name: "period_end"
+ type: "string"
+ description: "The end date of the period associated with the invoice."
+
+ - name: "number"
+ type: "string"
+ description: "The invoice number. If no value is set, Harvest will automatically generate a value."
+
+ - name: "issued_at"
+ type: "string"
+ description: "The date the invoice was issued."
+
+ - name: "due_at"
+ type: "string"
+ description: "The date that payment of the invoice is due by."
+
+ - name: "amount"
+ type: "number"
+ description: "The total amount of the invoice."
+
+ - name: "currency"
+ type: "string"
+ description: "The currency denomination of the invoice."
+
+ - name: "state"
+ type: "string"
+ description: |
+ The state of the invoice. Possible values:
+
+ - `open` - May apply for unpaid, sent invoices (either current or past due)
+ - `partial` - Applicable to invoices with partial payments
+ - `draft`
+ - `paid` - Applicable to invoices paid in full
+ - `unpaid`
+ - `pastdue`
+ - `closed` - Applicable to written off invoices
+ doc-link: http://help.getharvest.com/api-v1/invoices-api/invoices/show-invoices/#show-recently-created-invoices
+
+ - name: "notes"
+ type: "string"
+ description: "Any notes entered about the invoice."
+
+ - name: "purchase_order"
+ type: "string"
+ description: "If applicable, the purchase order associated with the invoice."
+
+ - name: "due_amount"
+ type: "number"
+ description: "The due amount of the invoice."
+
+ - name: "due_at_human_format"
+ type: "string"
+ description: "The human-readable format of the invoice due date."
+
+ - name: "created_at"
+ type: "date-time"
+ description: "The time the invoice was created."
+
+ - name: "tax"
+ type: "string, number"
+ description: "The tax percentage applied to the subtotal, including line items and discounts."
+
+ - name: "tax_amount"
+ type: "number"
+ description: "The first amount of tax included, calculated from `tax`. If `tax` is undefined, this value will be `null`."
+
+ - name: "subject"
+ type: "string"
+ description: "The subject of the invoice."
+
+ - name: "recurring_invoice_id"
+ type: "integer"
+ description: "If a recurring invoice, this field will contain the ID of the recurring invoice."
+
+ - name: "tax2"
+ type: "string, number"
+ description: "The tax percentage applied to the subtotal, including line items and discounts."
+
+ - name: "tax2_amount"
+ type: "number"
+ description: "The amount calculated from `tax2`."
+
+ - name: "client_key"
+ type: "string"
+ description: "A string used to build a URL to the public web invoice for the associated client."
+
+ - name: "estimate_id"
+ type: "integer"
+ description: "If applicable, the ID of the estimate associated with the invoice."
+
+ - name: "discount"
+ type: "string, number"
+ description: "If applicable, the percentage to be subtracted from the subtotal."
+
+ - name: "discount_amount"
+ type: "number"
+ description: "If applicable, the amount calculated from `discount`."
+
+ - name: "retainer_id"
+ type: "integer"
+ description: "If applicable, the ID of the retainer associated with the invoice."
+
+ - name: "created_by_id"
+ type: "integer"
+ description: "The ID of the user who created the invoice."
+---
\ No newline at end of file
diff --git a/_integration-schemas/harvest/v1/people.md b/archive/_integration-schemas/harvest/v1/people.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/harvest/v1/people.md
rename to archive/_integration-schemas/harvest/v1/people.md
diff --git a/_integration-schemas/harvest/v1/project_tasks.md b/archive/_integration-schemas/harvest/v1/project_tasks.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/harvest/v1/project_tasks.md
rename to archive/_integration-schemas/harvest/v1/project_tasks.md
diff --git a/_integration-schemas/harvest/v1/project_users.md b/archive/_integration-schemas/harvest/v1/project_users.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/harvest/v1/project_users.md
rename to archive/_integration-schemas/harvest/v1/project_users.md
diff --git a/_integration-schemas/harvest/v1/projects.md b/archive/_integration-schemas/harvest/v1/projects.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/harvest/v1/projects.md
rename to archive/_integration-schemas/harvest/v1/projects.md
diff --git a/_integration-schemas/harvest/v1/tasks.md b/archive/_integration-schemas/harvest/v1/tasks.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/harvest/v1/tasks.md
rename to archive/_integration-schemas/harvest/v1/tasks.md
diff --git a/_integration-schemas/harvest/v1/time_entries.md b/archive/_integration-schemas/harvest/v1/time_entries.md
old mode 100755
new mode 100644
similarity index 98%
rename from _integration-schemas/harvest/v1/time_entries.md
rename to archive/_integration-schemas/harvest/v1/time_entries.md
index b4d0e688e..5567e5ebb
--- a/_integration-schemas/harvest/v1/time_entries.md
+++ b/archive/_integration-schemas/harvest/v1/time_entries.md
@@ -9,9 +9,7 @@ description: |
The `time_entries` table contains info about the time entries in your Harvest account.
replication-method: "Key-based Incremental"
-api-method:
- name:
- doc-link:
+
attributes:
- name: "id"
diff --git a/_integration-schemas/harvest/v2/clients.md b/archive/_integration-schemas/harvest/v2/clients.md
similarity index 100%
rename from _integration-schemas/harvest/v2/clients.md
rename to archive/_integration-schemas/harvest/v2/clients.md
diff --git a/_integration-schemas/harvest/v2/contacts.md b/archive/_integration-schemas/harvest/v2/contacts.md
similarity index 100%
rename from _integration-schemas/harvest/v2/contacts.md
rename to archive/_integration-schemas/harvest/v2/contacts.md
diff --git a/_integration-schemas/harvest/v2/estimate_item_categories.md b/archive/_integration-schemas/harvest/v2/estimate_item_categories.md
similarity index 100%
rename from _integration-schemas/harvest/v2/estimate_item_categories.md
rename to archive/_integration-schemas/harvest/v2/estimate_item_categories.md
diff --git a/_integration-schemas/harvest/v2/estimate_line_items.md b/archive/_integration-schemas/harvest/v2/estimate_line_items.md
similarity index 100%
rename from _integration-schemas/harvest/v2/estimate_line_items.md
rename to archive/_integration-schemas/harvest/v2/estimate_line_items.md
diff --git a/_integration-schemas/harvest/v2/estimate_messages.md b/archive/_integration-schemas/harvest/v2/estimate_messages.md
similarity index 100%
rename from _integration-schemas/harvest/v2/estimate_messages.md
rename to archive/_integration-schemas/harvest/v2/estimate_messages.md
diff --git a/_integration-schemas/harvest/v2/estimates.md b/archive/_integration-schemas/harvest/v2/estimates.md
similarity index 100%
rename from _integration-schemas/harvest/v2/estimates.md
rename to archive/_integration-schemas/harvest/v2/estimates.md
diff --git a/_integration-schemas/harvest/v2/expense_categories.md b/archive/_integration-schemas/harvest/v2/expense_categories.md
similarity index 100%
rename from _integration-schemas/harvest/v2/expense_categories.md
rename to archive/_integration-schemas/harvest/v2/expense_categories.md
diff --git a/_integration-schemas/harvest/v2/expenses.md b/archive/_integration-schemas/harvest/v2/expenses.md
similarity index 100%
rename from _integration-schemas/harvest/v2/expenses.md
rename to archive/_integration-schemas/harvest/v2/expenses.md
diff --git a/_integration-schemas/harvest/v2/external_reference.md b/archive/_integration-schemas/harvest/v2/external_reference.md
similarity index 96%
rename from _integration-schemas/harvest/v2/external_reference.md
rename to archive/_integration-schemas/harvest/v2/external_reference.md
index 5d90bde0d..2928f0e29 100644
--- a/_integration-schemas/harvest/v2/external_reference.md
+++ b/archive/_integration-schemas/harvest/v2/external_reference.md
@@ -3,7 +3,7 @@ tap: "harvest"
version: "2"
name: "external_references"
-doc-link:
+
singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/external_reference.json
description: |
The `{{ table.name }}` table contains info about external references. External references are references to external services where time is tracked.
@@ -16,9 +16,7 @@ replication-key:
name: "updated_at"
## This is replicated as part of the parent table, time_entries
-api-method:
- name:
- doc-link:
+
attributes:
- name: "id"
diff --git a/_integration-schemas/harvest/v2/foreign-keys.md b/archive/_integration-schemas/harvest/v2/foreign-keys.md
similarity index 100%
rename from _integration-schemas/harvest/v2/foreign-keys.md
rename to archive/_integration-schemas/harvest/v2/foreign-keys.md
diff --git a/_integration-schemas/harvest/v2/invoice_item_categories.md b/archive/_integration-schemas/harvest/v2/invoice_item_categories.md
similarity index 100%
rename from _integration-schemas/harvest/v2/invoice_item_categories.md
rename to archive/_integration-schemas/harvest/v2/invoice_item_categories.md
diff --git a/_integration-schemas/harvest/v2/invoice_line_items.md b/archive/_integration-schemas/harvest/v2/invoice_line_items.md
similarity index 100%
rename from _integration-schemas/harvest/v2/invoice_line_items.md
rename to archive/_integration-schemas/harvest/v2/invoice_line_items.md
diff --git a/_integration-schemas/harvest/v2/invoice_messages.md b/archive/_integration-schemas/harvest/v2/invoice_messages.md
similarity index 100%
rename from _integration-schemas/harvest/v2/invoice_messages.md
rename to archive/_integration-schemas/harvest/v2/invoice_messages.md
diff --git a/_integration-schemas/harvest/v2/invoice_payments.md b/archive/_integration-schemas/harvest/v2/invoice_payments.md
similarity index 100%
rename from _integration-schemas/harvest/v2/invoice_payments.md
rename to archive/_integration-schemas/harvest/v2/invoice_payments.md
diff --git a/_integration-schemas/harvest/v2/invoices.md b/archive/_integration-schemas/harvest/v2/invoices.md
similarity index 100%
rename from _integration-schemas/harvest/v2/invoices.md
rename to archive/_integration-schemas/harvest/v2/invoices.md
diff --git a/_integration-schemas/harvest/v2/project_tasks.md b/archive/_integration-schemas/harvest/v2/project_tasks.md
similarity index 100%
rename from _integration-schemas/harvest/v2/project_tasks.md
rename to archive/_integration-schemas/harvest/v2/project_tasks.md
diff --git a/_integration-schemas/harvest/v2/project_users.md b/archive/_integration-schemas/harvest/v2/project_users.md
similarity index 100%
rename from _integration-schemas/harvest/v2/project_users.md
rename to archive/_integration-schemas/harvest/v2/project_users.md
diff --git a/_integration-schemas/harvest/v2/projects.md b/archive/_integration-schemas/harvest/v2/projects.md
similarity index 100%
rename from _integration-schemas/harvest/v2/projects.md
rename to archive/_integration-schemas/harvest/v2/projects.md
diff --git a/_integration-schemas/harvest/v2/roles.md b/archive/_integration-schemas/harvest/v2/roles.md
similarity index 100%
rename from _integration-schemas/harvest/v2/roles.md
rename to archive/_integration-schemas/harvest/v2/roles.md
diff --git a/_integration-schemas/harvest/v2/tasks.md b/archive/_integration-schemas/harvest/v2/tasks.md
similarity index 100%
rename from _integration-schemas/harvest/v2/tasks.md
rename to archive/_integration-schemas/harvest/v2/tasks.md
diff --git a/_integration-schemas/harvest/v2/time_entries.md b/archive/_integration-schemas/harvest/v2/time_entries.md
similarity index 100%
rename from _integration-schemas/harvest/v2/time_entries.md
rename to archive/_integration-schemas/harvest/v2/time_entries.md
diff --git a/_integration-schemas/harvest/v2/time_entry_external_reference.md b/archive/_integration-schemas/harvest/v2/time_entry_external_reference.md
similarity index 100%
rename from _integration-schemas/harvest/v2/time_entry_external_reference.md
rename to archive/_integration-schemas/harvest/v2/time_entry_external_reference.md
diff --git a/_integration-schemas/harvest/v2/user_project_tasks.md b/archive/_integration-schemas/harvest/v2/user_project_tasks.md
similarity index 96%
rename from _integration-schemas/harvest/v2/user_project_tasks.md
rename to archive/_integration-schemas/harvest/v2/user_project_tasks.md
index be54ef18b..9d8e4f891 100644
--- a/_integration-schemas/harvest/v2/user_project_tasks.md
+++ b/archive/_integration-schemas/harvest/v2/user_project_tasks.md
@@ -18,9 +18,7 @@ replication-key:
name: "updated_at"
## This is replicated as part of the parent table, users
-api-method:
- name:
- doc-link:
+
attributes:
- name: "user_id"
diff --git a/_integration-schemas/harvest/v2/user_projects.md b/archive/_integration-schemas/harvest/v2/user_projects.md
similarity index 100%
rename from _integration-schemas/harvest/v2/user_projects.md
rename to archive/_integration-schemas/harvest/v2/user_projects.md
diff --git a/_integration-schemas/harvest/v2/user_roles.md b/archive/_integration-schemas/harvest/v2/user_roles.md
similarity index 96%
rename from _integration-schemas/harvest/v2/user_roles.md
rename to archive/_integration-schemas/harvest/v2/user_roles.md
index d32b8fa5e..a5d0c4745 100644
--- a/_integration-schemas/harvest/v2/user_roles.md
+++ b/archive/_integration-schemas/harvest/v2/user_roles.md
@@ -16,9 +16,7 @@ replication-key:
name: "updated_at"
## This is replicated as part of the parent table, users
-api-method:
- name:
- doc-link:
+
attributes:
- name: "user_id"
diff --git a/_integration-schemas/harvest/v2/users.md b/archive/_integration-schemas/harvest/v2/users.md
similarity index 100%
rename from _integration-schemas/harvest/v2/users.md
rename to archive/_integration-schemas/harvest/v2/users.md
diff --git a/_integration-schemas/heap/v1/event_tables.md b/archive/_integration-schemas/heap/v1/event_tables.md
similarity index 100%
rename from _integration-schemas/heap/v1/event_tables.md
rename to archive/_integration-schemas/heap/v1/event_tables.md
diff --git a/_integration-schemas/heap/v1/foreign-keys.md b/archive/_integration-schemas/heap/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/heap/v1/foreign-keys.md
rename to archive/_integration-schemas/heap/v1/foreign-keys.md
diff --git a/_integration-schemas/heap/v1/pageviews.md b/archive/_integration-schemas/heap/v1/pageviews.md
similarity index 100%
rename from _integration-schemas/heap/v1/pageviews.md
rename to archive/_integration-schemas/heap/v1/pageviews.md
diff --git a/_integration-schemas/heap/v1/sessions.md b/archive/_integration-schemas/heap/v1/sessions.md
similarity index 100%
rename from _integration-schemas/heap/v1/sessions.md
rename to archive/_integration-schemas/heap/v1/sessions.md
diff --git a/_integration-schemas/heap/v1/user_migrations.md b/archive/_integration-schemas/heap/v1/user_migrations.md
similarity index 100%
rename from _integration-schemas/heap/v1/user_migrations.md
rename to archive/_integration-schemas/heap/v1/user_migrations.md
diff --git a/_integration-schemas/heap/v1/users.md b/archive/_integration-schemas/heap/v1/users.md
similarity index 100%
rename from _integration-schemas/heap/v1/users.md
rename to archive/_integration-schemas/heap/v1/users.md
diff --git a/_integration-schemas/helpscout/v1/conversation_threads.md b/archive/_integration-schemas/helpscout/v1/conversation_threads.md
similarity index 100%
rename from _integration-schemas/helpscout/v1/conversation_threads.md
rename to archive/_integration-schemas/helpscout/v1/conversation_threads.md
diff --git a/_integration-schemas/helpscout/v1/conversations.md b/archive/_integration-schemas/helpscout/v1/conversations.md
similarity index 100%
rename from _integration-schemas/helpscout/v1/conversations.md
rename to archive/_integration-schemas/helpscout/v1/conversations.md
diff --git a/_integration-schemas/helpscout/v1/customers.md b/archive/_integration-schemas/helpscout/v1/customers.md
similarity index 100%
rename from _integration-schemas/helpscout/v1/customers.md
rename to archive/_integration-schemas/helpscout/v1/customers.md
diff --git a/_integration-schemas/helpscout/v1/foreign-keys.md b/archive/_integration-schemas/helpscout/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/helpscout/v1/foreign-keys.md
rename to archive/_integration-schemas/helpscout/v1/foreign-keys.md
diff --git a/_integration-schemas/helpscout/v1/happiness_ratings_report.md b/archive/_integration-schemas/helpscout/v1/happiness_ratings_report.md
similarity index 100%
rename from _integration-schemas/helpscout/v1/happiness_ratings_report.md
rename to archive/_integration-schemas/helpscout/v1/happiness_ratings_report.md
diff --git a/_integration-schemas/helpscout/v1/mailbox_fields.md b/archive/_integration-schemas/helpscout/v1/mailbox_fields.md
similarity index 100%
rename from _integration-schemas/helpscout/v1/mailbox_fields.md
rename to archive/_integration-schemas/helpscout/v1/mailbox_fields.md
diff --git a/_integration-schemas/helpscout/v1/mailbox_folders.md b/archive/_integration-schemas/helpscout/v1/mailbox_folders.md
similarity index 100%
rename from _integration-schemas/helpscout/v1/mailbox_folders.md
rename to archive/_integration-schemas/helpscout/v1/mailbox_folders.md
diff --git a/_integration-schemas/helpscout/v1/mailboxes.md b/archive/_integration-schemas/helpscout/v1/mailboxes.md
similarity index 100%
rename from _integration-schemas/helpscout/v1/mailboxes.md
rename to archive/_integration-schemas/helpscout/v1/mailboxes.md
diff --git a/_integration-schemas/helpscout/v1/team_members.md b/archive/_integration-schemas/helpscout/v1/team_members.md
similarity index 100%
rename from _integration-schemas/helpscout/v1/team_members.md
rename to archive/_integration-schemas/helpscout/v1/team_members.md
diff --git a/_integration-schemas/helpscout/v1/teams.md b/archive/_integration-schemas/helpscout/v1/teams.md
similarity index 100%
rename from _integration-schemas/helpscout/v1/teams.md
rename to archive/_integration-schemas/helpscout/v1/teams.md
diff --git a/_integration-schemas/helpscout/v1/users.md b/archive/_integration-schemas/helpscout/v1/users.md
similarity index 100%
rename from _integration-schemas/helpscout/v1/users.md
rename to archive/_integration-schemas/helpscout/v1/users.md
diff --git a/_integration-schemas/helpscout/v1/workflows.md b/archive/_integration-schemas/helpscout/v1/workflows.md
similarity index 100%
rename from _integration-schemas/helpscout/v1/workflows.md
rename to archive/_integration-schemas/helpscout/v1/workflows.md
diff --git a/_integration-schemas/hubspot/campaigns.md b/archive/_integration-schemas/hubspot/campaigns.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/campaigns.md
rename to archive/_integration-schemas/hubspot/campaigns.md
diff --git a/_integration-schemas/hubspot/companies.md b/archive/_integration-schemas/hubspot/companies.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/companies.md
rename to archive/_integration-schemas/hubspot/companies.md
diff --git a/_integration-schemas/hubspot/contact_lists.md b/archive/_integration-schemas/hubspot/contact_lists.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/contact_lists.md
rename to archive/_integration-schemas/hubspot/contact_lists.md
diff --git a/_integration-schemas/hubspot/contacts.md b/archive/_integration-schemas/hubspot/contacts.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/contacts.md
rename to archive/_integration-schemas/hubspot/contacts.md
diff --git a/_integration-schemas/hubspot/contacts_by_company.md b/archive/_integration-schemas/hubspot/contacts_by_company.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/contacts_by_company.md
rename to archive/_integration-schemas/hubspot/contacts_by_company.md
diff --git a/_integration-schemas/hubspot/deal_pipelines.md b/archive/_integration-schemas/hubspot/deal_pipelines.md
similarity index 100%
rename from _integration-schemas/hubspot/deal_pipelines.md
rename to archive/_integration-schemas/hubspot/deal_pipelines.md
diff --git a/_integration-schemas/hubspot/deals.md b/archive/_integration-schemas/hubspot/deals.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/deals.md
rename to archive/_integration-schemas/hubspot/deals.md
diff --git a/_integration-schemas/hubspot/email_events.md b/archive/_integration-schemas/hubspot/email_events.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/email_events.md
rename to archive/_integration-schemas/hubspot/email_events.md
diff --git a/_integration-schemas/hubspot/engagements.md b/archive/_integration-schemas/hubspot/engagements.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/engagements.md
rename to archive/_integration-schemas/hubspot/engagements.md
diff --git a/_integration-schemas/hubspot/foreign-keys.md b/archive/_integration-schemas/hubspot/foreign-keys.md
similarity index 100%
rename from _integration-schemas/hubspot/foreign-keys.md
rename to archive/_integration-schemas/hubspot/foreign-keys.md
diff --git a/_integration-schemas/hubspot/forms.md b/archive/_integration-schemas/hubspot/forms.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/forms.md
rename to archive/_integration-schemas/hubspot/forms.md
diff --git a/_integration-schemas/hubspot/owners.md b/archive/_integration-schemas/hubspot/owners.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/owners.md
rename to archive/_integration-schemas/hubspot/owners.md
diff --git a/_integration-schemas/hubspot/subscription_changes.md b/archive/_integration-schemas/hubspot/subscription_changes.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/subscription_changes.md
rename to archive/_integration-schemas/hubspot/subscription_changes.md
diff --git a/_integration-schemas/hubspot/tickets.md b/archive/_integration-schemas/hubspot/tickets.md
similarity index 100%
rename from _integration-schemas/hubspot/tickets.md
rename to archive/_integration-schemas/hubspot/tickets.md
diff --git a/_integration-schemas/hubspot/v01-03-2017/campaigns.md b/archive/_integration-schemas/hubspot/v01-03-2017/campaigns.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/v01-03-2017/campaigns.md
rename to archive/_integration-schemas/hubspot/v01-03-2017/campaigns.md
diff --git a/_integration-schemas/hubspot/v01-03-2017/companies.md b/archive/_integration-schemas/hubspot/v01-03-2017/companies.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/v01-03-2017/companies.md
rename to archive/_integration-schemas/hubspot/v01-03-2017/companies.md
diff --git a/_integration-schemas/hubspot/v01-03-2017/contact_lists.md b/archive/_integration-schemas/hubspot/v01-03-2017/contact_lists.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/v01-03-2017/contact_lists.md
rename to archive/_integration-schemas/hubspot/v01-03-2017/contact_lists.md
diff --git a/_integration-schemas/hubspot/v01-03-2017/contacts.md b/archive/_integration-schemas/hubspot/v01-03-2017/contacts.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/v01-03-2017/contacts.md
rename to archive/_integration-schemas/hubspot/v01-03-2017/contacts.md
diff --git a/_integration-schemas/hubspot/v01-03-2017/deals.md b/archive/_integration-schemas/hubspot/v01-03-2017/deals.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/v01-03-2017/deals.md
rename to archive/_integration-schemas/hubspot/v01-03-2017/deals.md
diff --git a/_integration-schemas/hubspot/v01-03-2017/email_events.md b/archive/_integration-schemas/hubspot/v01-03-2017/email_events.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/v01-03-2017/email_events.md
rename to archive/_integration-schemas/hubspot/v01-03-2017/email_events.md
diff --git a/_integration-schemas/hubspot/v01-03-2017/engagements.md b/archive/_integration-schemas/hubspot/v01-03-2017/engagements.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/v01-03-2017/engagements.md
rename to archive/_integration-schemas/hubspot/v01-03-2017/engagements.md
diff --git a/_integration-schemas/hubspot/v01-03-2017/forms.md b/archive/_integration-schemas/hubspot/v01-03-2017/forms.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/v01-03-2017/forms.md
rename to archive/_integration-schemas/hubspot/v01-03-2017/forms.md
diff --git a/_integration-schemas/hubspot/v01-03-2017/keywords.md b/archive/_integration-schemas/hubspot/v01-03-2017/keywords.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/v01-03-2017/keywords.md
rename to archive/_integration-schemas/hubspot/v01-03-2017/keywords.md
diff --git a/_integration-schemas/hubspot/v01-03-2017/owners.md b/archive/_integration-schemas/hubspot/v01-03-2017/owners.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/v01-03-2017/owners.md
rename to archive/_integration-schemas/hubspot/v01-03-2017/owners.md
diff --git a/_integration-schemas/hubspot/v01-03-2017/subscription_changes.md b/archive/_integration-schemas/hubspot/v01-03-2017/subscription_changes.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/v01-03-2017/subscription_changes.md
rename to archive/_integration-schemas/hubspot/v01-03-2017/subscription_changes.md
diff --git a/_integration-schemas/hubspot/v01-03-2017/workflows.md b/archive/_integration-schemas/hubspot/v01-03-2017/workflows.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/v01-03-2017/workflows.md
rename to archive/_integration-schemas/hubspot/v01-03-2017/workflows.md
diff --git a/_integration-schemas/hubspot/v1/campaigns.md b/archive/_integration-schemas/hubspot/v1/campaigns.md
similarity index 100%
rename from _integration-schemas/hubspot/v1/campaigns.md
rename to archive/_integration-schemas/hubspot/v1/campaigns.md
diff --git a/_integration-schemas/hubspot/v1/companies.md b/archive/_integration-schemas/hubspot/v1/companies.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/v1/companies.md
rename to archive/_integration-schemas/hubspot/v1/companies.md
diff --git a/_integration-schemas/hubspot/v1/contact_lists.md b/archive/_integration-schemas/hubspot/v1/contact_lists.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/v1/contact_lists.md
rename to archive/_integration-schemas/hubspot/v1/contact_lists.md
diff --git a/_integration-schemas/hubspot/v1/contacts.md b/archive/_integration-schemas/hubspot/v1/contacts.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/v1/contacts.md
rename to archive/_integration-schemas/hubspot/v1/contacts.md
diff --git a/_integration-schemas/hubspot/v1/contacts_by_company.md b/archive/_integration-schemas/hubspot/v1/contacts_by_company.md
old mode 100755
new mode 100644
similarity index 95%
rename from _integration-schemas/hubspot/v1/contacts_by_company.md
rename to archive/_integration-schemas/hubspot/v1/contacts_by_company.md
index 7b0cefe80..55170db32
--- a/_integration-schemas/hubspot/v1/contacts_by_company.md
+++ b/archive/_integration-schemas/hubspot/v1/contacts_by_company.md
@@ -3,7 +3,7 @@ tap: "hubspot"
version: "1"
name: "hubspot_contacts_by_company"
-doc-link:
+
singer-schema: https://github.com/singer-io/tap-hubspot/blob/master/tap_hubspot/schemas/hubspot_contacts_by_company.json
description: |
The `hubspot_contacts_by_company` table contains contact and company ID pairs, allowing you to join contacts to relevant company data.
@@ -13,9 +13,7 @@ description: |
notes:
replication-method: "Full Table"
-api-method:
- name:
- doc-link:
+
attributes:
## Primary Key
diff --git a/_integration-schemas/hubspot/v1/deals.md b/archive/_integration-schemas/hubspot/v1/deals.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/v1/deals.md
rename to archive/_integration-schemas/hubspot/v1/deals.md
diff --git a/_integration-schemas/hubspot/v1/email_events.md b/archive/_integration-schemas/hubspot/v1/email_events.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/v1/email_events.md
rename to archive/_integration-schemas/hubspot/v1/email_events.md
diff --git a/_integration-schemas/hubspot/v1/engagements.md b/archive/_integration-schemas/hubspot/v1/engagements.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/v1/engagements.md
rename to archive/_integration-schemas/hubspot/v1/engagements.md
diff --git a/_integration-schemas/hubspot/v1/forms.md b/archive/_integration-schemas/hubspot/v1/forms.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/v1/forms.md
rename to archive/_integration-schemas/hubspot/v1/forms.md
diff --git a/_integration-schemas/hubspot/v1/keywords.md b/archive/_integration-schemas/hubspot/v1/keywords.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/v1/keywords.md
rename to archive/_integration-schemas/hubspot/v1/keywords.md
diff --git a/_integration-schemas/hubspot/v1/owners.md b/archive/_integration-schemas/hubspot/v1/owners.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/v1/owners.md
rename to archive/_integration-schemas/hubspot/v1/owners.md
diff --git a/_integration-schemas/hubspot/v1/subscription_changes.md b/archive/_integration-schemas/hubspot/v1/subscription_changes.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/v1/subscription_changes.md
rename to archive/_integration-schemas/hubspot/v1/subscription_changes.md
diff --git a/_integration-schemas/hubspot/workflows.md b/archive/_integration-schemas/hubspot/workflows.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/hubspot/workflows.md
rename to archive/_integration-schemas/hubspot/workflows.md
diff --git a/_integration-schemas/ilevel/v1/asset_to_asset_relations.md b/archive/_integration-schemas/ilevel/v1/asset_to_asset_relations.md
similarity index 100%
rename from _integration-schemas/ilevel/v1/asset_to_asset_relations.md
rename to archive/_integration-schemas/ilevel/v1/asset_to_asset_relations.md
diff --git a/_integration-schemas/ilevel/v1/assets.md b/archive/_integration-schemas/ilevel/v1/assets.md
similarity index 100%
rename from _integration-schemas/ilevel/v1/assets.md
rename to archive/_integration-schemas/ilevel/v1/assets.md
diff --git a/_integration-schemas/ilevel/v1/data_items.md b/archive/_integration-schemas/ilevel/v1/data_items.md
similarity index 100%
rename from _integration-schemas/ilevel/v1/data_items.md
rename to archive/_integration-schemas/ilevel/v1/data_items.md
diff --git a/_integration-schemas/ilevel/v1/foreign-keys.md b/archive/_integration-schemas/ilevel/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/ilevel/v1/foreign-keys.md
rename to archive/_integration-schemas/ilevel/v1/foreign-keys.md
diff --git a/_integration-schemas/ilevel/v1/fund_to_asset_relations.md b/archive/_integration-schemas/ilevel/v1/fund_to_asset_relations.md
similarity index 100%
rename from _integration-schemas/ilevel/v1/fund_to_asset_relations.md
rename to archive/_integration-schemas/ilevel/v1/fund_to_asset_relations.md
diff --git a/_integration-schemas/ilevel/v1/fund_to_fund_relations.md b/archive/_integration-schemas/ilevel/v1/fund_to_fund_relations.md
similarity index 100%
rename from _integration-schemas/ilevel/v1/fund_to_fund_relations.md
rename to archive/_integration-schemas/ilevel/v1/fund_to_fund_relations.md
diff --git a/_integration-schemas/ilevel/v1/funds.md b/archive/_integration-schemas/ilevel/v1/funds.md
similarity index 100%
rename from _integration-schemas/ilevel/v1/funds.md
rename to archive/_integration-schemas/ilevel/v1/funds.md
diff --git a/_integration-schemas/ilevel/v1/investment_transactions.md b/archive/_integration-schemas/ilevel/v1/investment_transactions.md
similarity index 100%
rename from _integration-schemas/ilevel/v1/investment_transactions.md
rename to archive/_integration-schemas/ilevel/v1/investment_transactions.md
diff --git a/_integration-schemas/ilevel/v1/investments.md b/archive/_integration-schemas/ilevel/v1/investments.md
similarity index 100%
rename from _integration-schemas/ilevel/v1/investments.md
rename to archive/_integration-schemas/ilevel/v1/investments.md
diff --git a/_integration-schemas/ilevel/v1/periodic_data_calculated.md b/archive/_integration-schemas/ilevel/v1/periodic_data_calculated.md
similarity index 100%
rename from _integration-schemas/ilevel/v1/periodic_data_calculated.md
rename to archive/_integration-schemas/ilevel/v1/periodic_data_calculated.md
diff --git a/_integration-schemas/ilevel/v1/periodic_data_standardized.md b/archive/_integration-schemas/ilevel/v1/periodic_data_standardized.md
similarity index 100%
rename from _integration-schemas/ilevel/v1/periodic_data_standardized.md
rename to archive/_integration-schemas/ilevel/v1/periodic_data_standardized.md
diff --git a/_integration-schemas/ilevel/v1/scenarios.md b/archive/_integration-schemas/ilevel/v1/scenarios.md
similarity index 100%
rename from _integration-schemas/ilevel/v1/scenarios.md
rename to archive/_integration-schemas/ilevel/v1/scenarios.md
diff --git a/_integration-schemas/ilevel/v1/securities.md b/archive/_integration-schemas/ilevel/v1/securities.md
similarity index 100%
rename from _integration-schemas/ilevel/v1/securities.md
rename to archive/_integration-schemas/ilevel/v1/securities.md
diff --git a/_integration-schemas/impact/v1/action_inquiries.md b/archive/_integration-schemas/impact/v1/action_inquiries.md
similarity index 100%
rename from _integration-schemas/impact/v1/action_inquiries.md
rename to archive/_integration-schemas/impact/v1/action_inquiries.md
diff --git a/_integration-schemas/impact/v1/action_updates.md b/archive/_integration-schemas/impact/v1/action_updates.md
similarity index 100%
rename from _integration-schemas/impact/v1/action_updates.md
rename to archive/_integration-schemas/impact/v1/action_updates.md
diff --git a/_integration-schemas/impact/v1/actions.md b/archive/_integration-schemas/impact/v1/actions.md
similarity index 100%
rename from _integration-schemas/impact/v1/actions.md
rename to archive/_integration-schemas/impact/v1/actions.md
diff --git a/_integration-schemas/impact/v1/ads.md b/archive/_integration-schemas/impact/v1/ads.md
similarity index 100%
rename from _integration-schemas/impact/v1/ads.md
rename to archive/_integration-schemas/impact/v1/ads.md
diff --git a/_integration-schemas/impact/v1/api_submissions.md b/archive/_integration-schemas/impact/v1/api_submissions.md
similarity index 100%
rename from _integration-schemas/impact/v1/api_submissions.md
rename to archive/_integration-schemas/impact/v1/api_submissions.md
diff --git a/_integration-schemas/impact/v1/campaigns.md b/archive/_integration-schemas/impact/v1/campaigns.md
similarity index 100%
rename from _integration-schemas/impact/v1/campaigns.md
rename to archive/_integration-schemas/impact/v1/campaigns.md
diff --git a/_integration-schemas/impact/v1/catalog_items.md b/archive/_integration-schemas/impact/v1/catalog_items.md
similarity index 100%
rename from _integration-schemas/impact/v1/catalog_items.md
rename to archive/_integration-schemas/impact/v1/catalog_items.md
diff --git a/_integration-schemas/impact/v1/catalogs.md b/archive/_integration-schemas/impact/v1/catalogs.md
similarity index 100%
rename from _integration-schemas/impact/v1/catalogs.md
rename to archive/_integration-schemas/impact/v1/catalogs.md
diff --git a/_integration-schemas/impact/v1/clicks.md b/archive/_integration-schemas/impact/v1/clicks.md
similarity index 100%
rename from _integration-schemas/impact/v1/clicks.md
rename to archive/_integration-schemas/impact/v1/clicks.md
diff --git a/_integration-schemas/impact/v1/company_information.md b/archive/_integration-schemas/impact/v1/company_information.md
similarity index 100%
rename from _integration-schemas/impact/v1/company_information.md
rename to archive/_integration-schemas/impact/v1/company_information.md
diff --git a/_integration-schemas/impact/v1/contacts.md b/archive/_integration-schemas/impact/v1/contacts.md
similarity index 100%
rename from _integration-schemas/impact/v1/contacts.md
rename to archive/_integration-schemas/impact/v1/contacts.md
diff --git a/_integration-schemas/impact/v1/conversion_paths.md b/archive/_integration-schemas/impact/v1/conversion_paths.md
similarity index 100%
rename from _integration-schemas/impact/v1/conversion_paths.md
rename to archive/_integration-schemas/impact/v1/conversion_paths.md
diff --git a/_integration-schemas/impact/v1/deals.md b/archive/_integration-schemas/impact/v1/deals.md
similarity index 100%
rename from _integration-schemas/impact/v1/deals.md
rename to archive/_integration-schemas/impact/v1/deals.md
diff --git a/_integration-schemas/impact/v1/exception_list_items.md b/archive/_integration-schemas/impact/v1/exception_list_items.md
similarity index 100%
rename from _integration-schemas/impact/v1/exception_list_items.md
rename to archive/_integration-schemas/impact/v1/exception_list_items.md
diff --git a/_integration-schemas/impact/v1/exception_lists.md b/archive/_integration-schemas/impact/v1/exception_lists.md
similarity index 100%
rename from _integration-schemas/impact/v1/exception_lists.md
rename to archive/_integration-schemas/impact/v1/exception_lists.md
diff --git a/_integration-schemas/impact/v1/foreign-keys.md b/archive/_integration-schemas/impact/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/impact/v1/foreign-keys.md
rename to archive/_integration-schemas/impact/v1/foreign-keys.md
diff --git a/_integration-schemas/impact/v1/ftp_file_submissions.md b/archive/_integration-schemas/impact/v1/ftp_file_submissions.md
similarity index 100%
rename from _integration-schemas/impact/v1/ftp_file_submissions.md
rename to archive/_integration-schemas/impact/v1/ftp_file_submissions.md
diff --git a/_integration-schemas/impact/v1/invoices.md b/archive/_integration-schemas/impact/v1/invoices.md
similarity index 100%
rename from _integration-schemas/impact/v1/invoices.md
rename to archive/_integration-schemas/impact/v1/invoices.md
diff --git a/_integration-schemas/impact/v1/media_partner_groups.md b/archive/_integration-schemas/impact/v1/media_partner_groups.md
similarity index 100%
rename from _integration-schemas/impact/v1/media_partner_groups.md
rename to archive/_integration-schemas/impact/v1/media_partner_groups.md
diff --git a/_integration-schemas/impact/v1/media_partners.md b/archive/_integration-schemas/impact/v1/media_partners.md
similarity index 100%
rename from _integration-schemas/impact/v1/media_partners.md
rename to archive/_integration-schemas/impact/v1/media_partners.md
diff --git a/_integration-schemas/impact/v1/notes.md b/archive/_integration-schemas/impact/v1/notes.md
similarity index 100%
rename from _integration-schemas/impact/v1/notes.md
rename to archive/_integration-schemas/impact/v1/notes.md
diff --git a/_integration-schemas/impact/v1/phone_numbers.md b/archive/_integration-schemas/impact/v1/phone_numbers.md
similarity index 100%
rename from _integration-schemas/impact/v1/phone_numbers.md
rename to archive/_integration-schemas/impact/v1/phone_numbers.md
diff --git a/_integration-schemas/impact/v1/promo_codes.md b/archive/_integration-schemas/impact/v1/promo_codes.md
similarity index 100%
rename from _integration-schemas/impact/v1/promo_codes.md
rename to archive/_integration-schemas/impact/v1/promo_codes.md
diff --git a/_integration-schemas/impact/v1/report_metadata.md b/archive/_integration-schemas/impact/v1/report_metadata.md
similarity index 100%
rename from _integration-schemas/impact/v1/report_metadata.md
rename to archive/_integration-schemas/impact/v1/report_metadata.md
diff --git a/_integration-schemas/impact/v1/reports.md b/archive/_integration-schemas/impact/v1/reports.md
similarity index 100%
rename from _integration-schemas/impact/v1/reports.md
rename to archive/_integration-schemas/impact/v1/reports.md
diff --git a/_integration-schemas/impact/v1/tracking_value_requests.md b/archive/_integration-schemas/impact/v1/tracking_value_requests.md
similarity index 100%
rename from _integration-schemas/impact/v1/tracking_value_requests.md
rename to archive/_integration-schemas/impact/v1/tracking_value_requests.md
diff --git a/_integration-schemas/impact/v1/unique_urls.md b/archive/_integration-schemas/impact/v1/unique_urls.md
similarity index 100%
rename from _integration-schemas/impact/v1/unique_urls.md
rename to archive/_integration-schemas/impact/v1/unique_urls.md
diff --git a/_integration-schemas/intercom/v02-02-2016/admins.md b/archive/_integration-schemas/intercom/v02-02-2016/admins.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/intercom/v02-02-2016/admins.md
rename to archive/_integration-schemas/intercom/v02-02-2016/admins.md
diff --git a/_integration-schemas/intercom/v02-02-2016/companies.md b/archive/_integration-schemas/intercom/v02-02-2016/companies.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/intercom/v02-02-2016/companies.md
rename to archive/_integration-schemas/intercom/v02-02-2016/companies.md
diff --git a/_integration-schemas/intercom/v02-02-2016/company_segments.md b/archive/_integration-schemas/intercom/v02-02-2016/company_segments.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/intercom/v02-02-2016/company_segments.md
rename to archive/_integration-schemas/intercom/v02-02-2016/company_segments.md
diff --git a/_integration-schemas/intercom/v02-02-2016/contacts.md b/archive/_integration-schemas/intercom/v02-02-2016/contacts.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/intercom/v02-02-2016/contacts.md
rename to archive/_integration-schemas/intercom/v02-02-2016/contacts.md
diff --git a/_integration-schemas/intercom/v02-02-2016/conversations.md b/archive/_integration-schemas/intercom/v02-02-2016/conversations.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/intercom/v02-02-2016/conversations.md
rename to archive/_integration-schemas/intercom/v02-02-2016/conversations.md
diff --git a/_integration-schemas/intercom/v02-02-2016/foreign-keys.md b/archive/_integration-schemas/intercom/v02-02-2016/foreign-keys.md
similarity index 100%
rename from _integration-schemas/intercom/v02-02-2016/foreign-keys.md
rename to archive/_integration-schemas/intercom/v02-02-2016/foreign-keys.md
diff --git a/_integration-schemas/intercom/v02-02-2016/segments.md b/archive/_integration-schemas/intercom/v02-02-2016/segments.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/intercom/v02-02-2016/segments.md
rename to archive/_integration-schemas/intercom/v02-02-2016/segments.md
diff --git a/_integration-schemas/intercom/v02-02-2016/tags.md b/archive/_integration-schemas/intercom/v02-02-2016/tags.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/intercom/v02-02-2016/tags.md
rename to archive/_integration-schemas/intercom/v02-02-2016/tags.md
diff --git a/_integration-schemas/intercom/v02-02-2016/users.md b/archive/_integration-schemas/intercom/v02-02-2016/users.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/intercom/v02-02-2016/users.md
rename to archive/_integration-schemas/intercom/v02-02-2016/users.md
diff --git a/_integration-schemas/intercom/v1/admins.md b/archive/_integration-schemas/intercom/v1/admins.md
similarity index 100%
rename from _integration-schemas/intercom/v1/admins.md
rename to archive/_integration-schemas/intercom/v1/admins.md
diff --git a/_integration-schemas/intercom/v1/companies.md b/archive/_integration-schemas/intercom/v1/companies.md
similarity index 100%
rename from _integration-schemas/intercom/v1/companies.md
rename to archive/_integration-schemas/intercom/v1/companies.md
diff --git a/_integration-schemas/intercom/v1/company_attributes.md b/archive/_integration-schemas/intercom/v1/company_attributes.md
similarity index 100%
rename from _integration-schemas/intercom/v1/company_attributes.md
rename to archive/_integration-schemas/intercom/v1/company_attributes.md
diff --git a/_integration-schemas/intercom/v1/company_segments.md b/archive/_integration-schemas/intercom/v1/company_segments.md
similarity index 100%
rename from _integration-schemas/intercom/v1/company_segments.md
rename to archive/_integration-schemas/intercom/v1/company_segments.md
diff --git a/_integration-schemas/intercom/v1/contact_attributes.md b/archive/_integration-schemas/intercom/v1/contact_attributes.md
similarity index 100%
rename from _integration-schemas/intercom/v1/contact_attributes.md
rename to archive/_integration-schemas/intercom/v1/contact_attributes.md
diff --git a/_integration-schemas/intercom/v1/contacts.md b/archive/_integration-schemas/intercom/v1/contacts.md
similarity index 100%
rename from _integration-schemas/intercom/v1/contacts.md
rename to archive/_integration-schemas/intercom/v1/contacts.md
diff --git a/_integration-schemas/intercom/v1/conversation_parts.md b/archive/_integration-schemas/intercom/v1/conversation_parts.md
similarity index 100%
rename from _integration-schemas/intercom/v1/conversation_parts.md
rename to archive/_integration-schemas/intercom/v1/conversation_parts.md
diff --git a/_integration-schemas/intercom/v1/conversations.md b/archive/_integration-schemas/intercom/v1/conversations.md
similarity index 100%
rename from _integration-schemas/intercom/v1/conversations.md
rename to archive/_integration-schemas/intercom/v1/conversations.md
diff --git a/_integration-schemas/intercom/v1/foreign-keys.md b/archive/_integration-schemas/intercom/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/intercom/v1/foreign-keys.md
rename to archive/_integration-schemas/intercom/v1/foreign-keys.md
diff --git a/_integration-schemas/intercom/v1/segments.md b/archive/_integration-schemas/intercom/v1/segments.md
similarity index 100%
rename from _integration-schemas/intercom/v1/segments.md
rename to archive/_integration-schemas/intercom/v1/segments.md
diff --git a/_integration-schemas/intercom/v1/tags.md b/archive/_integration-schemas/intercom/v1/tags.md
similarity index 100%
rename from _integration-schemas/intercom/v1/tags.md
rename to archive/_integration-schemas/intercom/v1/tags.md
diff --git a/_integration-schemas/intercom/v1/teams.md b/archive/_integration-schemas/intercom/v1/teams.md
similarity index 100%
rename from _integration-schemas/intercom/v1/teams.md
rename to archive/_integration-schemas/intercom/v1/teams.md
diff --git a/_integration-schemas/intercom/v2/admins.md b/archive/_integration-schemas/intercom/v2/admins.md
similarity index 100%
rename from _integration-schemas/intercom/v2/admins.md
rename to archive/_integration-schemas/intercom/v2/admins.md
diff --git a/_integration-schemas/intercom/v2/companies.md b/archive/_integration-schemas/intercom/v2/companies.md
similarity index 100%
rename from _integration-schemas/intercom/v2/companies.md
rename to archive/_integration-schemas/intercom/v2/companies.md
diff --git a/_integration-schemas/intercom/v2/company_attributes.md b/archive/_integration-schemas/intercom/v2/company_attributes.md
similarity index 100%
rename from _integration-schemas/intercom/v2/company_attributes.md
rename to archive/_integration-schemas/intercom/v2/company_attributes.md
diff --git a/_integration-schemas/intercom/v2/company_segments.md b/archive/_integration-schemas/intercom/v2/company_segments.md
similarity index 100%
rename from _integration-schemas/intercom/v2/company_segments.md
rename to archive/_integration-schemas/intercom/v2/company_segments.md
diff --git a/_integration-schemas/intercom/v2/contact_attributes.md b/archive/_integration-schemas/intercom/v2/contact_attributes.md
similarity index 100%
rename from _integration-schemas/intercom/v2/contact_attributes.md
rename to archive/_integration-schemas/intercom/v2/contact_attributes.md
diff --git a/_integration-schemas/intercom/v2/contacts.md b/archive/_integration-schemas/intercom/v2/contacts.md
similarity index 100%
rename from _integration-schemas/intercom/v2/contacts.md
rename to archive/_integration-schemas/intercom/v2/contacts.md
diff --git a/_integration-schemas/intercom/v2/conversation_parts.md b/archive/_integration-schemas/intercom/v2/conversation_parts.md
similarity index 100%
rename from _integration-schemas/intercom/v2/conversation_parts.md
rename to archive/_integration-schemas/intercom/v2/conversation_parts.md
diff --git a/_integration-schemas/intercom/v2/conversations.md b/archive/_integration-schemas/intercom/v2/conversations.md
similarity index 100%
rename from _integration-schemas/intercom/v2/conversations.md
rename to archive/_integration-schemas/intercom/v2/conversations.md
diff --git a/_integration-schemas/intercom/v2/foreign-keys.md b/archive/_integration-schemas/intercom/v2/foreign-keys.md
similarity index 100%
rename from _integration-schemas/intercom/v2/foreign-keys.md
rename to archive/_integration-schemas/intercom/v2/foreign-keys.md
diff --git a/_integration-schemas/intercom/v2/segments.md b/archive/_integration-schemas/intercom/v2/segments.md
similarity index 100%
rename from _integration-schemas/intercom/v2/segments.md
rename to archive/_integration-schemas/intercom/v2/segments.md
diff --git a/_integration-schemas/intercom/v2/tags.md b/archive/_integration-schemas/intercom/v2/tags.md
similarity index 100%
rename from _integration-schemas/intercom/v2/tags.md
rename to archive/_integration-schemas/intercom/v2/tags.md
diff --git a/_integration-schemas/intercom/v2/teams.md b/archive/_integration-schemas/intercom/v2/teams.md
similarity index 100%
rename from _integration-schemas/intercom/v2/teams.md
rename to archive/_integration-schemas/intercom/v2/teams.md
diff --git a/_integration-schemas/invoiced/credit_notes.md b/archive/_integration-schemas/invoiced/credit_notes.md
similarity index 100%
rename from _integration-schemas/invoiced/credit_notes.md
rename to archive/_integration-schemas/invoiced/credit_notes.md
diff --git a/archive/_integration-schemas/invoiced/customers.md b/archive/_integration-schemas/invoiced/customers.md
new file mode 100644
index 000000000..92980874f
--- /dev/null
+++ b/archive/_integration-schemas/invoiced/customers.md
@@ -0,0 +1,223 @@
+---
+tap: "invoiced"
+version: "1"
+
+name: "customers"
+doc-link: ""
+singer-schema: "https://github.com/singer-io/tap-invoiced/blob/master/tap_invoiced/schemas/customers.json"
+description: |
+ The `{{ table.name }}` table contains info about the customers in your {{ integration.display_name }} account.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all customers"
+ doc-link: "https://invoiced.com/docs/api/#list-all-customers"
+
+attributes:
+ - name: "id"
+ type: "integer"
+ primary-key: true
+ description: "The customer ID."
+ foreign-key-id: "customer-id"
+
+ - name: "updated_at"
+ type: "date-time"
+ replication-key: true
+ description: "The time the customer was last updated."
+
+ - name: "address1"
+ type: "string"
+ description: "The first line of the customer's address."
+
+ - name: "address2"
+ type: "string"
+ description: "The second line of the customer's address."
+
+ - name: "attention_to"
+ type: "string"
+ description: "Used for `ATTN: address` line if `type: company`."
+
+ - name: "autopay"
+ type: "boolean"
+ description: "If `true`, AutoPay is enabled for the customer."
+
+ - name: "chase"
+ type: "boolean"
+ description: ""
+
+ - name: "chasing_cadence"
+ type: "integer"
+ description: ""
+
+ - name: "city"
+ type: "string"
+ description: "The city of the customer's address."
+
+ - name: "country"
+ type: "string"
+ description: |
+ The two-letter [ISO code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2){:target="new"} of the customer's country.
+
+ - name: "created_at"
+ type: "date-time"
+ description: "The time the customer was created."
+
+ - name: "credit_hold"
+ type: "boolean"
+ description: ""
+
+ - name: "credit_limit"
+ type: "number"
+ description: "The credit limit for the customer."
+
+ - name: "email"
+ type: "string"
+ description: "The customer's email address."
+
+ - name: "language"
+ type: "string"
+ description: |
+ The two-letter [ISO code](https://en.wikipedia.org/wiki/ISO_639-1){:target="new"} of the customer's language.
+
+ - name: "metadata"
+ type: "object"
+ description: "Additional information about the customer."
+
+ - name: "name"
+ type: "string"
+ description: "The name of the customer."
+
+ - name: "next_chase_step"
+ type: "integer"
+ description: ""
+
+ - name: "notes"
+ type: "string"
+ description: "Additional notes about the customer."
+
+ - name: "number"
+ type: "string"
+ description: "A unique ID used to tie the customer to external systems."
+
+ - name: "parent_customer"
+ type: "integer"
+ description: ""
+
+ - name: "payment_source"
+ type: "object"
+ description: "The customer's payment source, if attached."
+ subattributes:
+ - name: "id"
+ type: "integer"
+ description: "The payment source's ID."
+
+ - name: "object"
+ type: "string"
+ description: |
+ The object type of the payment source. Possible values are:
+
+ - `card`
+ - `bank_account`
+
+ - name: "brand"
+ type: "string"
+ description: "**Applicable to `object: card` only.** The card brand."
+
+ - name: "last4"
+ type: "string"
+ description: "The last four digits of the card or bank account."
+
+ - name: "exp_month"
+ type: "integer"
+ description: "**Applicable to `object: card` only.** The expiry month."
+
+ - name: "exp_year"
+ type: "integer"
+ description: "**Applicable to `object: card` only.** The expiry year."
+
+ - name: "funding"
+ type: "string"
+ description: |
+ **Applicable to `object: card` only.** The funding instrument of the card. Possible values are:
+
+ - `credit`
+ - `debit`
+ - `prepaid`
+ - `unknown`
+
+ - name: "bank_name"
+ type: "string"
+ description: "**Applicable to `object: bank_account` only.** The name of the bank."
+
+ - name: "routing_number"
+ type: "string"
+ description: "**Applicable to `object: bank_account` only.** The routing number."
+
+ - name: "verified"
+ type: "boolean"
+ description: "**Applicable to `object: bank_account` only.** Indicates whether the bank account has been verified with instant verification or microdeposits."
+
+ - name: "currency"
+ type: "string"
+ description: |
+ **Applicable to `object: bank_account` only.** The [three letter ISO code](https://en.wikipedia.org/wiki/ISO_4217){:target="new"} used by the bank account.
+
+ - name: "payment_terms"
+ type: "string"
+ description: "The payment terms for the customer when AutoPay is not enabled."
+
+ - name: "phone"
+ type: "string"
+ description: "The customer's phone number."
+
+ - name: "postal_code"
+ type: "string"
+ description: "The customer's postal code."
+
+ - name: "sign_up_page"
+ type: "integer"
+ description: "The ID of the sign up page used by the customer."
+
+ - name: "state"
+ type: "string"
+ description: "The customer's state."
+
+ - name: "tax_id"
+ type: "string"
+ description: "The customer's tax ID."
+
+ - name: "taxable"
+ type: "boolean"
+ description: "If `true`, the customer is not tax exempt."
+
+ - name: "taxes"
+ type: "array"
+ description: "The taxes applicable to the customer."
+ subattributes: &taxes
+ - name: "id"
+ type: "integer"
+ primary-key: true
+ description: "The tax ID."
+ foreign-key-id: "tax-id"
+
+ - name: "object"
+ type: "string"
+ description: "This will be `tax`."
+
+ - name: "amount"
+ type: "number"
+ description: "The amount of tax."
+
+ - name: "tax_rate"
+ type: "number"
+ description: "The tax rate the tax was calculated from."
+
+ - name: "type"
+ type: "string"
+ description: |
+ The customer's type. Possible values are:
+
+ - `company`
+ - `person`
+---
\ No newline at end of file
diff --git a/_integration-schemas/invoiced/estimates.md b/archive/_integration-schemas/invoiced/estimates.md
similarity index 97%
rename from _integration-schemas/invoiced/estimates.md
rename to archive/_integration-schemas/invoiced/estimates.md
index 5ea15dbec..41dfd8ef6 100644
--- a/_integration-schemas/invoiced/estimates.md
+++ b/archive/_integration-schemas/invoiced/estimates.md
@@ -72,7 +72,7 @@ attributes:
- name: "discounts"
type: "array"
description: "The discounts applicable to the estimate."
- subattributes:
+ subattributes: &discounts
- name: "id"
type: "integer"
primary-key: true
@@ -188,15 +188,10 @@ attributes:
- name: "metadata"
type: "object"
description: "Additional information about the line item."
- subattributes: &metadata
- - name: ""
- type:
- description: ""
- name: "metadata"
type: "object"
description: "Additional information about the estimate."
- subattributes:
- name: "name"
type: "string"
diff --git a/_integration-schemas/invoiced/foreign-keys.md b/archive/_integration-schemas/invoiced/foreign-keys.md
similarity index 100%
rename from _integration-schemas/invoiced/foreign-keys.md
rename to archive/_integration-schemas/invoiced/foreign-keys.md
diff --git a/archive/_integration-schemas/invoiced/invoices.md b/archive/_integration-schemas/invoiced/invoices.md
new file mode 100644
index 000000000..6ebfd73fd
--- /dev/null
+++ b/archive/_integration-schemas/invoiced/invoices.md
@@ -0,0 +1,240 @@
+---
+tap: "invoiced"
+version: "1"
+
+name: "invoices"
+doc-link: ""
+singer-schema: "https://github.com/singer-io/tap-invoiced/blob/master/tap_invoiced/schemas/invoices.json"
+description: |
+ The `{{ table.name }}` table contains info about the invoices in your {{ integration.display_name }} account. An invoice represents a balance owed to you by a customer.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all invoices"
+ doc-link: "https://invoiced.com/docs/api/#list-all-invoices"
+
+attributes:
+ - name: "id"
+ type: "integer"
+ primary-key: true
+ description: "The invoice ID."
+ foreign-key-id: "invoice-id"
+
+ - name: "updated_at"
+ type: "date-time"
+ replication-key: true
+ description: "The time the invoice was last updated."
+
+ - name: "attempt_count"
+ type: "integer"
+ description: "The number of payment attempts for the invoice."
+
+ - name: "autopay"
+ type: "boolean"
+ description: "If `true`, AutoPay is enabled for the invoice."
+
+ - name: "balance"
+ type: "number"
+ description: "The balance of the invoice."
+
+ - name: "closed"
+ type: "boolean"
+ description: "If `true`, an invoice is closed and considered bad debt. No further payments are allowed."
+
+ - name: "created_at"
+ type: "date-time"
+ description: "The time the invoice was created."
+
+ - name: "currency"
+ type: "string"
+ description: |
+ The [three letter ISO code](https://en.wikipedia.org/wiki/ISO_4217){:target="new"} used by the invoice.
+
+ - name: "customer"
+ type: "integer"
+ description: "The ID of the customer associated with the invoice."
+ foreign-key-id: "customer-id"
+
+ - name: "date"
+ type: "date-time"
+ description: "The date of the invoice."
+
+ - name: "discounts"
+ type: "array"
+ description: "The discounts applicable to the estimate."
+ subattributes: &discounts
+ - name: "id"
+ type: "integer"
+ primary-key: true
+ description: "The discount ID."
+ foreign-key-id: "discount-id"
+
+ - name: "object"
+ type: "string"
+ description: "This will be `discount`."
+
+ - name: "amount"
+ type: "integer"
+ description: "The amount of the discount."
+
+ - name: "coupon"
+ type: "object"
+ description: "The coupon the discount was calculated from, if applicable."
+
+ - name: "expires"
+ type: "date-time"
+ description: "The time until the discount expires."
+
+ - name: "draft"
+ type: "boolean"
+ description: "If `true`, the invoice is a draft. If `false`, the invoice is considered outstanding."
+
+ - name: "due_date"
+ type: "date-time"
+ description: "The due date of the invoice."
+
+ - name: "items"
+ type: "array"
+ description: "The line items associated with the invoice."
+ subattributes:
+ - name: "id"
+ type: "integer"
+ primary-key: true
+ description: "The line item ID."
+ foreign-key-id: "line-item-id"
+
+ - name: "object"
+ type: "string"
+ description: "This will be `line_item`."
+
+ - name: "catalog_item"
+ type: "string"
+ description: "The catalog item ID."
+
+ - name: "type"
+ type: "string"
+ description: "The line item type."
+
+ - name: "name"
+ type: "string"
+ description: "The name of the line item."
+
+ - name: "description"
+ type: "string"
+ description: "The description of the line item."
+
+ - name: "quantity"
+ type: "integer"
+ description: "The quantity of the line item."
+
+ - name: "unit_cost"
+ type: "integer"
+ description: "The unit cost or rate of the line item."
+
+ - name: "amount"
+ type: "integer"
+ description: "The total amount of the line item, calculated as `quantity x unit_cost`."
+
+ - name: "discountable"
+ type: "boolean"
+ description: "If `true`, the line item is discountable and included in the credit note's total discounts."
+
+ - name: "discounts"
+ type: "array"
+ description: "The discounts applicable to the line item."
+ subattributes: *discounts
+
+ - name: "taxable"
+ type: "boolean"
+ description: "If `true`, the line item is taxable and included in the credit note's total taxes."
+
+ - name: "taxes"
+ type: "array"
+ description: "The taxes applicable to the line item."
+ subattributes: &taxes
+ - name: "id"
+ type: "integer"
+ primary-key: true
+ description: "The tax ID."
+ foreign-key-id: "tax-id"
+
+ - name: "object"
+ type: "string"
+ description: "This will be `tax`."
+
+ - name: "amount"
+ type: "number"
+ description: "The amount of tax."
+
+ - name: "tax_rate"
+ type: "number"
+ description: "The tax rate the tax was calculated from."
+
+ - name: "metadata"
+ type: "object"
+ description: "Additional information about the line item."
+
+ - name: "metadata"
+ type: "object"
+ description: "Additional information about the invoice."
+
+ - name: "name"
+ type: "string"
+ description: "The name of the invoice."
+
+ - name: "needs_attention"
+ type: "boolean"
+ description: ""
+
+ - name: "next_payment_attempt"
+ type: "date-time"
+ description: "The time of the next scheduled payment attempt, when in automatic collection."
+
+ - name: "notes"
+ type: "string"
+ description: "Additional notes about the invoice."
+
+ - name: "number"
+ type: "string"
+ description: "The reference number assigned to the invoice."
+
+ - name: "paid"
+ type: "boolean"
+ description: "Indicates whether an invoice has been paid in full."
+
+ - name: "payment_terms"
+ type: "string"
+ description: "The payment terms for the invoice. "
+
+ - name: "status"
+ type: "string"
+ description: |
+ The status of the invoice. Possible values are:
+
+ - `draft`
+ - `not_sent`
+ - `sent`
+ - `viewed`
+ - `past_due`
+ - `pending`
+ - `paid`
+
+ - name: "subscription"
+ type: "integer"
+ description: "The subscription ID, if the invoice came from a subscription."
+ foreign-key-id: "subscription-id"
+
+ - name: "subtotal"
+ type: "number"
+ description: "The subtotal of the invoice."
+
+ - name: "taxes"
+ type: "array"
+ description: "The taxes applicable to the invoice."
+ subattributes: *taxes
+
+ - name: "total"
+ type: "number"
+ description: "The total of the invoice."
+---
\ No newline at end of file
diff --git a/_integration-schemas/invoiced/plans.md b/archive/_integration-schemas/invoiced/plans.md
similarity index 100%
rename from _integration-schemas/invoiced/plans.md
rename to archive/_integration-schemas/invoiced/plans.md
diff --git a/archive/_integration-schemas/invoiced/subscriptions.md b/archive/_integration-schemas/invoiced/subscriptions.md
new file mode 100644
index 000000000..3c0439182
--- /dev/null
+++ b/archive/_integration-schemas/invoiced/subscriptions.md
@@ -0,0 +1,198 @@
+---
+tap: "invoiced"
+version: "1"
+
+name: "subscriptions"
+doc-link: ""
+singer-schema: "https://github.com/singer-io/tap-invoiced/blob/master/tap_invoiced/schemas/subscriptions.json"
+description: |
+ The `{{ table.name }}` table contains info about the subscriptions in your {{ integration.display_name }} account.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all subscriptions"
+ doc-link: "https://invoiced.com/docs/api/#list-all-subscriptions"
+
+attributes:
+ - name: "id"
+ type: "integer"
+ primary-key: true
+ description: "The subscription ID."
+ foreign-key-id: "subscription-id"
+
+ - name: "updated_at"
+ type: "date-time"
+ replication-key: true
+ description: "The time the subscription was last updated."
+
+ - name: "addons"
+ type: "array"
+ description: "Details about subscription's add ons."
+ subattributes:
+ - name: "id"
+ type: "integer"
+ description: "The subscription ID."
+
+ - name: "object"
+ type: "string"
+ description: "This will be `subscription_addon`."
+
+ - name: "plan"
+ type: "integer"
+ description: "The ID of the plan associated with the subscription."
+ foreign-key-id: "plan-id"
+
+ - name: "quantity"
+ type: "integer"
+ description: "The quantity of the subscription add on."
+
+ - name: "description"
+ type: "string"
+ description: "The description of the add on."
+
+ - name: "created_at"
+ type: "date-time"
+ description: "The time when the add on was created."
+
+ # - name: "approval"
+ # type: "object"
+ # description: ""
+
+ - name: "cancel_at_period_end"
+ type: "boolean"
+ description: "If `true`, the subscription will be canceled at the end of the current billing period."
+
+ - name: "canceled_at"
+ type: "date-time"
+ description: "The time when the subscription was canceled."
+
+ - name: "contract_period_end"
+ type: "date-time"
+ description: ""
+
+ - name: "contract_period_start"
+ type: "date-time"
+ description: ""
+
+ - name: "contract_renewal_cycles"
+ type: "integer"
+ description: ""
+
+ - name: "contract_renewal_mode"
+ type: "string"
+ description: ""
+
+ - name: "created_at"
+ type: "date-time"
+ description: "The time when the subscription was created."
+
+ - name: "customer"
+ type: "integer"
+ description: "The ID of the customer associated with the subscription."
+ foreign-key-id: "customer-id"
+
+ - name: "cycles"
+ type: "integer"
+ description: "The number of billing cycles the subscription runs for. When `null`, the subscription will run until canceled."
+
+ - name: "discounts"
+ type: "array"
+ description: "The discounts applicable to the subscription."
+ subattributes:
+ - name: "id"
+ type: "integer"
+ primary-key: true
+ description: "The discount ID."
+ foreign-key-id: "discount-id"
+
+ - name: "object"
+ type: "string"
+ description: "This will be `discount`."
+
+ - name: "amount"
+ type: "integer"
+ description: "The amount of the discount."
+
+ - name: "coupon"
+ type: "object"
+ description: "The coupon the discount was calculated from, if applicable."
+
+ - name: "expires"
+ type: "date-time"
+ description: "The time until the discount expires."
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "mrr"
+ type: "number"
+ description: "The amount the subscription contributes to monthly recurring revenue."
+
+ - name: "period_end"
+ type: "date-time"
+ description: "The start of the current billing period."
+
+ - name: "period_start"
+ type: "date-time"
+ description: "The end of the current billing period."
+
+ - name: "plan"
+ type: "string"
+ description: "The ID of the plan associated with the subscription."
+ foreign-key-id: "plan-id"
+
+ - name: "quantity"
+ type: "number"
+ description: "The plan quantity."
+
+ - name: "recurring_total"
+ type: "number"
+ description: "The total recurring amount, including taxes."
+
+ - name: "renewed_last"
+ type: "date-time"
+ description: "The date the subscription was last renewed."
+
+ - name: "renews_next"
+ type: "date-time"
+ description: "The date the subscription renews next."
+
+ - name: "start_date"
+ type: "date-time"
+ description: "The time the subscription starts, or started."
+
+ - name: "status"
+ type: "string"
+ description: |
+ The status of the subscription. Possible values are:
+
+ - `not_started`
+ - `active`
+ - `past_due`
+ - `finished`
+ - `canceled`
+
+ - name: "taxes"
+ type: "array"
+ description: "The taxes applicable to the subscription."
+ subattributes:
+ - name: "id"
+ type: "integer"
+ primary-key: true
+ description: "The tax ID."
+ foreign-key-id: "tax-id"
+
+ - name: "object"
+ type: "string"
+ description: "This will be `tax`."
+
+ - name: "amount"
+ type: "number"
+ description: "The amount of tax."
+
+ - name: "tax_rate"
+ type: "number"
+ description: "The tax rate the tax was calculated from."
+---
\ No newline at end of file
diff --git a/_integration-schemas/invoiced/transactions.md b/archive/_integration-schemas/invoiced/transactions.md
similarity index 100%
rename from _integration-schemas/invoiced/transactions.md
rename to archive/_integration-schemas/invoiced/transactions.md
diff --git a/_integration-schemas/iterable/v1/campaigns.md b/archive/_integration-schemas/iterable/v1/campaigns.md
similarity index 100%
rename from _integration-schemas/iterable/v1/campaigns.md
rename to archive/_integration-schemas/iterable/v1/campaigns.md
diff --git a/_integration-schemas/iterable/v1/channels.md b/archive/_integration-schemas/iterable/v1/channels.md
similarity index 100%
rename from _integration-schemas/iterable/v1/channels.md
rename to archive/_integration-schemas/iterable/v1/channels.md
diff --git a/_integration-schemas/iterable/v1/email_bounce.md b/archive/_integration-schemas/iterable/v1/email_bounce.md
similarity index 100%
rename from _integration-schemas/iterable/v1/email_bounce.md
rename to archive/_integration-schemas/iterable/v1/email_bounce.md
diff --git a/_integration-schemas/iterable/v1/email_click.md b/archive/_integration-schemas/iterable/v1/email_click.md
similarity index 100%
rename from _integration-schemas/iterable/v1/email_click.md
rename to archive/_integration-schemas/iterable/v1/email_click.md
diff --git a/_integration-schemas/iterable/v1/email_complaint.md b/archive/_integration-schemas/iterable/v1/email_complaint.md
similarity index 100%
rename from _integration-schemas/iterable/v1/email_complaint.md
rename to archive/_integration-schemas/iterable/v1/email_complaint.md
diff --git a/_integration-schemas/iterable/v1/email_open.md b/archive/_integration-schemas/iterable/v1/email_open.md
similarity index 100%
rename from _integration-schemas/iterable/v1/email_open.md
rename to archive/_integration-schemas/iterable/v1/email_open.md
diff --git a/_integration-schemas/iterable/v1/email_send.md b/archive/_integration-schemas/iterable/v1/email_send.md
similarity index 100%
rename from _integration-schemas/iterable/v1/email_send.md
rename to archive/_integration-schemas/iterable/v1/email_send.md
diff --git a/_integration-schemas/iterable/v1/email_send_skip.md b/archive/_integration-schemas/iterable/v1/email_send_skip.md
similarity index 100%
rename from _integration-schemas/iterable/v1/email_send_skip.md
rename to archive/_integration-schemas/iterable/v1/email_send_skip.md
diff --git a/_integration-schemas/iterable/v1/email_subscribe.md b/archive/_integration-schemas/iterable/v1/email_subscribe.md
similarity index 100%
rename from _integration-schemas/iterable/v1/email_subscribe.md
rename to archive/_integration-schemas/iterable/v1/email_subscribe.md
diff --git a/_integration-schemas/iterable/v1/email_unsubscribe.md b/archive/_integration-schemas/iterable/v1/email_unsubscribe.md
similarity index 100%
rename from _integration-schemas/iterable/v1/email_unsubscribe.md
rename to archive/_integration-schemas/iterable/v1/email_unsubscribe.md
diff --git a/_integration-schemas/iterable/v1/foreign-keys.md b/archive/_integration-schemas/iterable/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/iterable/v1/foreign-keys.md
rename to archive/_integration-schemas/iterable/v1/foreign-keys.md
diff --git a/_integration-schemas/iterable/v1/list_users.md b/archive/_integration-schemas/iterable/v1/list_users.md
similarity index 100%
rename from _integration-schemas/iterable/v1/list_users.md
rename to archive/_integration-schemas/iterable/v1/list_users.md
diff --git a/_integration-schemas/iterable/v1/lists.md b/archive/_integration-schemas/iterable/v1/lists.md
similarity index 100%
rename from _integration-schemas/iterable/v1/lists.md
rename to archive/_integration-schemas/iterable/v1/lists.md
diff --git a/_integration-schemas/iterable/v1/message_types.md b/archive/_integration-schemas/iterable/v1/message_types.md
similarity index 100%
rename from _integration-schemas/iterable/v1/message_types.md
rename to archive/_integration-schemas/iterable/v1/message_types.md
diff --git a/_integration-schemas/iterable/v1/metadata.md b/archive/_integration-schemas/iterable/v1/metadata.md
similarity index 100%
rename from _integration-schemas/iterable/v1/metadata.md
rename to archive/_integration-schemas/iterable/v1/metadata.md
diff --git a/_integration-schemas/iterable/v1/templates.md b/archive/_integration-schemas/iterable/v1/templates.md
similarity index 100%
rename from _integration-schemas/iterable/v1/templates.md
rename to archive/_integration-schemas/iterable/v1/templates.md
diff --git a/_integration-schemas/iterable/v1/users.md b/archive/_integration-schemas/iterable/v1/users.md
similarity index 100%
rename from _integration-schemas/iterable/v1/users.md
rename to archive/_integration-schemas/iterable/v1/users.md
diff --git a/_integration-schemas/jira/v1/changelogs.md b/archive/_integration-schemas/jira/v1/changelogs.md
similarity index 100%
rename from _integration-schemas/jira/v1/changelogs.md
rename to archive/_integration-schemas/jira/v1/changelogs.md
diff --git a/archive/_integration-schemas/jira/v1/foreign-keys.md b/archive/_integration-schemas/jira/v1/foreign-keys.md
new file mode 100644
index 000000000..77dbd3046
--- /dev/null
+++ b/archive/_integration-schemas/jira/v1/foreign-keys.md
@@ -0,0 +1,120 @@
+---
+tap-reference: "jira"
+
+version: "1"
+
+foreign-keys:
+ - id: "changelog-id"
+ attribute: ""
+ table: "changelogs"
+ all-foreign-keys:
+ - table: "changelogs"
+ join-on: "id"
+
+ - id: "issue-comment-id"
+ attribute: "issueCommentId"
+ table: "issue_comments"
+ all-foreign-keys:
+ - table: "issue_comments"
+ join-on: "id"
+
+ - id: "issue-id"
+ attribute: "issueId"
+ table: "issues"
+ all-foreign-keys:
+ - table: "changelogs"
+ - table: "issue_comments"
+ - table: "issue_transitions"
+ - table: "issues"
+ join-on: "id"
+ - table: "worklogs"
+
+ - id: "issue-transition-id"
+ attribute: "issueTransitionId"
+ table: "issue_transitions"
+ all-foreign-keys:
+ - table: "issue_transitions"
+ join-on: "id"
+
+ - id: "project-type-key"
+ attribute: "projectTypeKey"
+ table: "project_types"
+ all-foreign-keys:
+ - table: "project_types"
+ join-on: "key"
+
+ - id: "project-category-id"
+ attribute: "projectCategoryId"
+ table: "project_categories"
+ all-foreign-keys:
+ - table: "project_categories"
+ join-on: "id"
+ - table: "projects"
+ subattribute: "projectCategory"
+ join-on: "id"
+
+ - id: "project-id"
+ attribute: "projectId"
+ table: "projects"
+ all-foreign-keys:
+ - table: "projects"
+ join-on: "id"
+ - table: "versions"
+
+ - id: "resolution-id"
+ attribute: "resolutionId"
+ table: "resolutions"
+ all-foreign-keys:
+ - table: "resolutions"
+ join-on: "id"
+
+ - id: "role-id"
+ attribute: "roleId"
+ table: "roles"
+ all-foreign-keys:
+ - table: "roles"
+ join-on: "id"
+
+ - id: "user-key"
+ attribute: "key"
+ table: "users"
+ all-foreign-keys:
+ - table: "changelogs"
+ subattribute: "author"
+ - table: "issue_comments"
+ subattribute: "author"
+ - table: "issue_comments"
+ subattribute: "updateAuthor"
+ - table: "issues"
+ subtattribute: "fields"
+ subtable: "attachment"
+ subsubattribute: "author"
+ - table: "projects"
+ subattribute: "components__assignee"
+ - table: "projects"
+ subattribute: "components__lead"
+ - table: "projects"
+ subattribute: "components__realAssignee"
+ - table: "projects"
+ subattribute: "lead"
+ - table: "users"
+ join-on: "key"
+ - table: "worklogs"
+ subattribute: "author"
+ - table: "worklogs"
+ subattribute: "updateAuthor"
+
+ - id: "version-id"
+ attribute: "versionId"
+ table: "versions"
+ all-foreign-keys:
+ - table: "versions"
+ join-on: "id"
+
+ - id: "worklog-id"
+ attribute: "worklogId"
+ table: "worklogs"
+ all-foreign-keys:
+ - table: "worklogs"
+ join-on: "id"
+---
\ No newline at end of file
diff --git a/_integration-schemas/jira/v1/issue_comments.md b/archive/_integration-schemas/jira/v1/issue_comments.md
similarity index 100%
rename from _integration-schemas/jira/v1/issue_comments.md
rename to archive/_integration-schemas/jira/v1/issue_comments.md
diff --git a/_integration-schemas/jira/v1/issue_transitions.md b/archive/_integration-schemas/jira/v1/issue_transitions.md
similarity index 100%
rename from _integration-schemas/jira/v1/issue_transitions.md
rename to archive/_integration-schemas/jira/v1/issue_transitions.md
diff --git a/_integration-schemas/jira/v1/issues.md b/archive/_integration-schemas/jira/v1/issues.md
similarity index 100%
rename from _integration-schemas/jira/v1/issues.md
rename to archive/_integration-schemas/jira/v1/issues.md
diff --git a/_integration-schemas/jira/v1/project_categories.md b/archive/_integration-schemas/jira/v1/project_categories.md
similarity index 100%
rename from _integration-schemas/jira/v1/project_categories.md
rename to archive/_integration-schemas/jira/v1/project_categories.md
diff --git a/_integration-schemas/jira/v1/project_types.md b/archive/_integration-schemas/jira/v1/project_types.md
similarity index 100%
rename from _integration-schemas/jira/v1/project_types.md
rename to archive/_integration-schemas/jira/v1/project_types.md
diff --git a/archive/_integration-schemas/jira/v1/projects.md b/archive/_integration-schemas/jira/v1/projects.md
new file mode 100644
index 000000000..7ede107c6
--- /dev/null
+++ b/archive/_integration-schemas/jira/v1/projects.md
@@ -0,0 +1,470 @@
+---
+tap: "jira"
+version: "1"
+key: "project"
+
+name: "projects"
+doc-link: "https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-project-get"
+singer-schema: "https://github.com/singer-io/tap-jira/tree/77206190933146b7cf51f14bfc7aaf670539ca5f/tap_jira/schemas/projects.json"
+description: |
+ The `{{ table.name }}` table contains info about the projects in your {{ integration.display_name }} account.
+
+ **Note**: Stitch will only replicate data from the projects that the user whose credentials are [authenticating the integration](#add-stitch-data-source) can access. If there are missing projects, verify that the authenticating user (found in the integration's {{ app.page-names.int-settings }} page) has access to the missing projects.
+
+replication-method: "Full Table"
+
+api-method:
+ name: "Get all projects"
+ doc-link: "https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-project-get"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The project ID."
+ foreign-key-id: "project-id"
+
+ - name: "assigneeType"
+ type: "string"
+ description: |
+ The default assignee when creating issues for the project. Possible values are:
+
+ - `PROJECT_LEAD`
+ - `UNASSIGNED`
+
+ - name: "avatarUrls"
+ type: "object"
+ description: "The URLs associated with the avatars used by the project."
+ subattributes:
+ - name: "16x16"
+ type: "string"
+ description: "The URL of the project's 16x16 avatar."
+
+ - name: "24x24"
+ type: "string"
+ description: "The URL of the project's 24x24 avatar."
+
+ - name: "32x32"
+ type: "string"
+ description: "The URL of the project's 32x32 avatar."
+
+ - name: "48x48"
+ type: "string"
+ description: "The URL of the project's 48x48 avatar."
+
+ - name: "components"
+ type: "array"
+ description: "A list of the components contained in the project."
+ subattributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: |
+ The component ID.
+
+ {% assign description-type = "assignee" %}
+
+ - name: "assignee"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "accountId"
+ type: "string"
+ description: "The {{ description-type }}'s account ID."
+
+ - name: "active"
+ type: "boolean"
+ description: "Indicates if the {{ description-type }} is active."
+
+ - name: "applicationRoles"
+ type: "object"
+ description: "Application roles associated with the {{ description-type }}."
+ subattributes:
+ - name: "items"
+ type: "array"
+ description: "A list of application roles associated with the {{ description-type }}."
+ subattributes:
+ - name: "name"
+ type: "string"
+ description: "The name of the application role."
+
+ - name: "self"
+ type: "string"
+ description: "The URL of the application role."
+
+ - name: "max-results"
+ type: "integer"
+ description: ""
+
+ - name: "size"
+ type: "integer"
+ description: ""
+
+ - name: "avatarUrls"
+ type: "object"
+ description: "The URLs associated with the avatars used by the {{ description-type }}."
+ subattributes:
+ - name: "16x16"
+ type: "string"
+ description: "The URL of the {{ description-type }}'s 16x16 avatar."
+
+ - name: "24x24"
+ type: "string"
+ description: "The URL of the {{ description-type }}'s 24x24 avatar."
+
+ - name: "32x32"
+ type: "string"
+ description: "The URL of the {{ description-type }}'s 32x32 avatar."
+
+ - name: "48x48"
+ type: "string"
+ description: "The URL of the {{ description-type }}'s 48x48 avatar."
+
+ - name: "displayName"
+ type: "string"
+ description: "The {{ description-type }}'s display name. Depending on the user's privacy setting, this may be returned as null."
+
+ - name: "emailAddress"
+ type: "string"
+ description: "The {{ description-type }}'s email address. Depending on the user's privacy setting, this may be returned as null."
+
+ - name: "expand"
+ type: "string"
+ description: "Details of expands available for the {{ description-type }} details."
+
+ - name: "groups"
+ type: "object"
+ description: "Details about the groups the {{ description-type }} is associated with."
+ subattributes:
+ - name: "items"
+ type: "array"
+ description: "The groups the {{ description-type }} is associated with."
+ subattributes:
+ - name: "name"
+ type: "string"
+ description: "The name of the group."
+
+ - name: "self"
+ type: "string"
+ description: "The URL for the group."
+
+ - name: "max-results"
+ type: "integer"
+ description: ""
+
+ - name: "size"
+ type: "integer"
+ description: ""
+
+ - name: "key"
+ type: "string"
+ description: "The key of the {{ description-type }}."
+ foreign-key-id: "user-key"
+
+ - name: "locale"
+ type: "string"
+ description: "The locale of the {{ description-type }}. Depending on the user's privacy setting, this may be returned as null."
+
+ - name: "name"
+ type: "string"
+ description: "The name of the {{ description-type }}."
+
+ - name: "self"
+ type: "string"
+ description: "The URL for the {{ description-type }}."
+
+ - name: "timeZone"
+ type: "string"
+ description: "The time zone specified in the {{ description-type }}'s profile. Depending on the user's privacy setting, this may be returned as null."
+
+ - name: "assigneeType"
+ type: "string"
+ description: |
+ The user type used to determine the assignee for issues created with this component. Possible values are:
+
+ - `COMPONENT_LEAD` - The assignee to any issues created with this component is nominally the lead for the component.
+ - `PROJECT_DEFAULT` - The assignee to any issues created with this component is nominally the default assignee for the project the component is in.
+ - `PROJECT_LEAD` - The assignee to any issues created with this component is nominally the lead for the project the component is in.
+ - `UNASSIGNED` - An assignee is not set for issues created with this component.
+
+ - name: "description"
+ type: "string"
+ description: "A description of the component."
+
+ - name: "isAssigneeTypeValid"
+ type: "boolean"
+ description: |
+ Indicates if the `assigneeType` is valid.
+
+ {% assign description-type = "lead user" %}
+
+ - name: "lead"
+ type: "object"
+ description: |
+ Details about the lead user associated with the project.
+ subattributes:
+ - name: "accountId"
+ type: "string"
+ description: "The {{ description-type }}'s account ID."
+
+ - name: "active"
+ type: "boolean"
+ description: "Indicates if the {{ description-type }} is active."
+
+ - name: "applicationRoles"
+ type: "object"
+ description: "Application roles associated with the {{ description-type }}."
+ subattributes:
+ - name: "items"
+ type: "array"
+ description: "A list of application roles associated with the {{ description-type }}."
+ subattributes:
+ - name: "name"
+ type: "string"
+ description: "The name of the application role."
+
+ - name: "self"
+ type: "string"
+ description: "The URL of the application role."
+
+ - name: "max-results"
+ type: "integer"
+ description: ""
+
+ - name: "size"
+ type: "integer"
+ description: ""
+
+ - name: "avatarUrls"
+ type: "object"
+ description: "The URLs associated with the avatars used by the {{ description-type }}."
+ subattributes:
+ - name: "16x16"
+ type: "string"
+ description: "The URL of the {{ description-type }}'s 16x16 avatar."
+
+ - name: "24x24"
+ type: "string"
+ description: "The URL of the {{ description-type }}'s 24x24 avatar."
+
+ - name: "32x32"
+ type: "string"
+ description: "The URL of the {{ description-type }}'s 32x32 avatar."
+
+ - name: "48x48"
+ type: "string"
+ description: "The URL of the {{ description-type }}'s 48x48 avatar."
+
+ - name: "displayName"
+ type: "string"
+ description: "The {{ description-type }}'s display name. Depending on the user's privacy setting, this may be returned as null."
+
+ - name: "emailAddress"
+ type: "string"
+ description: "The {{ description-type }}'s email address. Depending on the user's privacy setting, this may be returned as null."
+
+ - name: "expand"
+ type: "string"
+ description: "Details of expands available for the {{ description-type }} details."
+
+ - name: "groups"
+ type: "object"
+ description: "Details about the groups the {{ description-type }} is associated with."
+ subattributes:
+ - name: "items"
+ type: "array"
+ description: "The groups the {{ description-type }} is associated with."
+ subattributes:
+ - name: "name"
+ type: "string"
+ description: "The name of the group."
+
+ - name: "self"
+ type: "string"
+ description: "The URL for the group."
+
+ - name: "max-results"
+ type: "integer"
+ description: ""
+
+ - name: "size"
+ type: "integer"
+ description: ""
+
+ - name: "key"
+ type: "string"
+ description: "The key of the {{ description-type }}."
+ foreign-key-id: "user-key"
+
+ - name: "locale"
+ type: "string"
+ description: "The locale of the {{ description-type }}. Depending on the user's privacy setting, this may be returned as null."
+
+ - name: "name"
+ type: "string"
+ description: "The name of the {{ description-type }}."
+
+ - name: "self"
+ type: "string"
+ description: "The URL for the {{ description-type }}."
+
+ - name: "timeZone"
+ type: "string"
+ description: "The time zone specified in the {{ description-type }}'s profile. Depending on the user's privacy setting, this may be returned as null."
+
+ - name: "leadUserName"
+ type: "string"
+ description: "The username of the component's lead user."
+
+ - name: "name"
+ type: "string"
+ description: "The name of the component."
+
+ - name: "project"
+ type: "string"
+ description: "The key of the project to which the component is assignee."
+
+ - name: "projectId"
+ type: "integer"
+ description: |
+ **Not used.**
+
+ {% assign description-type = "assignee" %}
+
+ - name: "realAssignee"
+ type: "object"
+ description: |
+ Details about the real assignee associated with the component.
+
+ - name: "realAssigneeType"
+ type: "string"
+ description: |
+ The actual type of the assignee to issues created with this component, when an assignee cannot be set from the `assigneeType`. Possible values are:
+
+ - `COMPONENT_LEAD` - When `assigneeType` is `COMPONENT_LEAD` and the component lead has permission to be assigned issues in the project that the component is in.
+ - `PROJECT_LEAD` - When `assigneeType` is `PROJECT_LEAD` and the project lead has permission to be assigneed issues in the project that the component is in.
+ - `UNASSIGNED` - When `assigneeType` is `UNASSIGNED` and {{ integration.display_name }} is configured to allow unassigned issues.
+ - `PROJECT_DEFAULT` - When none of the preceeding cases are true.
+
+ - name: "self"
+ type: "string"
+ description: "The URL of the component."
+
+ - name: "description"
+ type: "string"
+ description: "A description of the project."
+
+ - name: "email"
+ type: "string"
+ description: "The email address associated with the project."
+
+ - name: "expand"
+ type: "string"
+ description: "Details of expands available for project details."
+
+ - name: "issueTypes"
+ type: "array"
+ description: "A list of the issue types available in the project."
+ subattributes:
+ - name: "avatarId"
+ type: "integer"
+ description: "The ID of the issue type's avatar."
+
+ - name: "description"
+ type: "string"
+ description: "The description of the issue type."
+
+ - name: "iconUrl"
+ type: "string"
+ description: "The URL of the issue type's avatar."
+
+ - name: "id"
+ type: "string"
+ description: "The ID of the issue type."
+
+ - name: "name"
+ type: "string"
+ description: "The name of the issue type."
+
+ - name: "self"
+ type: "string"
+ description: "The URL of the issue type."
+
+ - name: "subtask"
+ type: "boolean"
+ description: "Indicates whether the issue type can be used to create subtasks."
+
+ - name: "key"
+ type: "string"
+ description: |
+ The project key.
+
+ {% assign description-type = "lead user" %}
+
+ - name: "lead"
+ type: "object"
+ description: "Details about the lead user associated with the project."
+
+ - name: "name"
+ type: "string"
+ description: "The name of the project."
+
+ - name: "projectCategory"
+ type: "object"
+ description: "The category associated with the project."
+ subattributes:
+ - name: "description"
+ type: "string"
+ description: "The description of the project category."
+
+ - name: "id"
+ type: "string"
+ description: "The ID of the project category."
+ foreign-key-id: "project-category-id"
+
+ - name: "name"
+ type: "string"
+ description: "The name of the project category."
+
+ - name: "self"
+ type: "string"
+ description: "The URL of the project category."
+
+ - name: "projectKeys"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "value"
+ type: "string"
+ description: ""
+
+ - name: "projectTypeKey"
+ type: "string"
+ description: |
+ The project type of the project. Possible values are:
+
+ - `ops`
+ - `software`
+ - `service_desk`
+ - `business`
+
+ - name: "roles"
+ type: "object"
+ description: "The roles defined in the project."
+ subattributes:
+ - name: "varies"
+ type: "string"
+ description: "The role defined in the project."
+
+ - name: "self"
+ type: "string"
+ description: "The URL of the project."
+
+ - name: "simplified"
+ type: "boolean"
+ description: "Indicates whether the project is simplified."
+
+ - name: "url"
+ type: "string"
+ description: "The URL of the project."
+---
\ No newline at end of file
diff --git a/_integration-schemas/jira/v1/resolutions.md b/archive/_integration-schemas/jira/v1/resolutions.md
similarity index 100%
rename from _integration-schemas/jira/v1/resolutions.md
rename to archive/_integration-schemas/jira/v1/resolutions.md
diff --git a/_integration-schemas/jira/v1/roles.md b/archive/_integration-schemas/jira/v1/roles.md
similarity index 100%
rename from _integration-schemas/jira/v1/roles.md
rename to archive/_integration-schemas/jira/v1/roles.md
diff --git a/_integration-schemas/jira/v1/users.md b/archive/_integration-schemas/jira/v1/users.md
similarity index 100%
rename from _integration-schemas/jira/v1/users.md
rename to archive/_integration-schemas/jira/v1/users.md
diff --git a/_integration-schemas/jira/v1/versions.md b/archive/_integration-schemas/jira/v1/versions.md
similarity index 100%
rename from _integration-schemas/jira/v1/versions.md
rename to archive/_integration-schemas/jira/v1/versions.md
diff --git a/_integration-schemas/jira/v1/worklogs.md b/archive/_integration-schemas/jira/v1/worklogs.md
similarity index 100%
rename from _integration-schemas/jira/v1/worklogs.md
rename to archive/_integration-schemas/jira/v1/worklogs.md
diff --git a/_integration-schemas/jira/v2/changelogs.md b/archive/_integration-schemas/jira/v2/changelogs.md
similarity index 100%
rename from _integration-schemas/jira/v2/changelogs.md
rename to archive/_integration-schemas/jira/v2/changelogs.md
diff --git a/_integration-schemas/jira/v2/components.md b/archive/_integration-schemas/jira/v2/components.md
similarity index 100%
rename from _integration-schemas/jira/v2/components.md
rename to archive/_integration-schemas/jira/v2/components.md
diff --git a/archive/_integration-schemas/jira/v2/foreign-keys.md b/archive/_integration-schemas/jira/v2/foreign-keys.md
new file mode 100644
index 000000000..4f12227d2
--- /dev/null
+++ b/archive/_integration-schemas/jira/v2/foreign-keys.md
@@ -0,0 +1,139 @@
+---
+tap-reference: "jira"
+
+version: "2"
+
+foreign-keys:
+ - id: "changelog-id"
+ attribute: ""
+ table: "changelogs"
+ all-foreign-keys:
+ - table: "changelogs"
+ join-on: "id"
+
+ - id: "component-id"
+ attribute: ""
+ table: "components"
+ all-foreign-keys:
+ - table: "component"
+ join-on: "id"
+
+ - id: "issue-comment-id"
+ attribute: "issueCommentId"
+ table: "issue_comments"
+ all-foreign-keys:
+ - table: "issue_comments"
+ join-on: "id"
+
+ - id: "issue-id"
+ attribute: "issueId"
+ table: "issues"
+ all-foreign-keys:
+ - table: "changelogs"
+ - table: "issue_comments"
+ - table: "issue_transitions"
+ - table: "issues"
+ join-on: "id"
+ - table: "worklogs"
+
+ - id: "issue-transition-id"
+ attribute: "issueTransitionId"
+ table: "issue_transitions"
+ all-foreign-keys:
+ - table: "issue_transitions"
+ join-on: "id"
+
+ - id: "project-type-key"
+ attribute: "projectTypeKey"
+ table: "project_types"
+ all-foreign-keys:
+ - table: "project_types"
+ join-on: "key"
+
+ - id: "project-category-id"
+ attribute: "projectCategoryId"
+ table: "project_categories"
+ all-foreign-keys:
+ - table: "project_categories"
+ join-on: "id"
+ - table: "projects"
+ subattribute: "projectCategory"
+ join-on: "id"
+
+ - id: "project-id"
+ attribute: "projectId"
+ table: "projects"
+ all-foreign-keys:
+ - table: "components"
+ subattribute: "componentBean"
+ - table: "components"
+ - table: "projects"
+ join-on: "id"
+ - table: "versions"
+
+ - id: "resolution-id"
+ attribute: "resolutionId"
+ table: "resolutions"
+ all-foreign-keys:
+ - table: "resolutions"
+ join-on: "id"
+
+ - id: "role-id"
+ attribute: "roleId"
+ table: "roles"
+ all-foreign-keys:
+ - table: "roles"
+ join-on: "id"
+
+ - id: "user-id"
+ attribute: "accountId"
+ table: "users"
+ all-foreign-keys:
+ - table: "changelogs"
+ subattribute: "author"
+ - table: "components"
+ subattribute: "assignee"
+ - table: "components"
+ subattribute: "componentBean.assignee"
+ - table: "components"
+ subattribute: "componentBean.lead"
+ - table: "components"
+ subattribute: "componentBean.realAssignee"
+ - table: "components"
+ subattribute: "lead"
+ - table: "components"
+ subattribute: "realAssignee"
+ - table: "issue_comments"
+ subattribute: "author"
+ - table: "issue_comments"
+ subattribute: "updateAuthor"
+ - table: "issues"
+ subtattribute: "fields.attachment.author"
+ - table: "projects"
+ subattribute: "components.assignee"
+ - table: "projects"
+ subattribute: "components.lead"
+ - table: "projects"
+ subattribute: "components.realAssignee"
+ - table: "projects"
+ subattribute: "lead"
+ - table: "users"
+ - table: "worklogs"
+ subattribute: "author"
+ - table: "worklogs"
+ subattribute: "updateAuthor"
+
+ - id: "version-id"
+ attribute: "versionId"
+ table: "versions"
+ all-foreign-keys:
+ - table: "versions"
+ join-on: "id"
+
+ - id: "worklog-id"
+ attribute: "worklogId"
+ table: "worklogs"
+ all-foreign-keys:
+ - table: "worklogs"
+ join-on: "id"
+---
\ No newline at end of file
diff --git a/_integration-schemas/jira/v2/issue_comments.md b/archive/_integration-schemas/jira/v2/issue_comments.md
similarity index 100%
rename from _integration-schemas/jira/v2/issue_comments.md
rename to archive/_integration-schemas/jira/v2/issue_comments.md
diff --git a/_integration-schemas/jira/v2/issue_transitions.md b/archive/_integration-schemas/jira/v2/issue_transitions.md
similarity index 100%
rename from _integration-schemas/jira/v2/issue_transitions.md
rename to archive/_integration-schemas/jira/v2/issue_transitions.md
diff --git a/_integration-schemas/jira/v2/issues.md b/archive/_integration-schemas/jira/v2/issues.md
similarity index 100%
rename from _integration-schemas/jira/v2/issues.md
rename to archive/_integration-schemas/jira/v2/issues.md
diff --git a/_integration-schemas/jira/v2/project_categories.md b/archive/_integration-schemas/jira/v2/project_categories.md
similarity index 100%
rename from _integration-schemas/jira/v2/project_categories.md
rename to archive/_integration-schemas/jira/v2/project_categories.md
diff --git a/_integration-schemas/jira/v2/project_types.md b/archive/_integration-schemas/jira/v2/project_types.md
similarity index 100%
rename from _integration-schemas/jira/v2/project_types.md
rename to archive/_integration-schemas/jira/v2/project_types.md
diff --git a/archive/_integration-schemas/jira/v2/projects.md b/archive/_integration-schemas/jira/v2/projects.md
new file mode 100644
index 000000000..0e557a268
--- /dev/null
+++ b/archive/_integration-schemas/jira/v2/projects.md
@@ -0,0 +1,472 @@
+---
+tap: "jira"
+version: "2"
+key: "project"
+
+name: "projects"
+doc-link: "https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-project-get"
+singer-schema: "https://github.com/singer-io/tap-jira/blob/master/tap_jira/schemas/projects.json"
+description: |
+ The `{{ table.name }}` table contains info about the projects in your {{ integration.display_name }} account.
+
+ **Note**: Stitch will only replicate data from the projects that the user whose credentials are [authenticating the integration](#add-stitch-data-source) can access. If there are missing projects, verify that the authenticating user (found in the integration's {{ app.page-names.int-settings }} page) has access to the missing projects.
+
+replication-method: "Full Table"
+
+api-method:
+ name: "Get all projects"
+ doc-link: "https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-project-get"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The project ID."
+ foreign-key-id: "project-id"
+
+ - name: "assigneeType"
+ type: "string"
+ description: |
+ The default assignee when creating issues for the project. Possible values are:
+
+ - `PROJECT_LEAD`
+ - `UNASSIGNED`
+
+ - name: "avatarUrls"
+ type: "object"
+ description: "The URLs associated with the avatars used by the project."
+ subattributes:
+ - name: "16x16"
+ type: "string"
+ description: "The URL of the project's 16x16 avatar."
+
+ - name: "24x24"
+ type: "string"
+ description: "The URL of the project's 24x24 avatar."
+
+ - name: "32x32"
+ type: "string"
+ description: "The URL of the project's 32x32 avatar."
+
+ - name: "48x48"
+ type: "string"
+ description: "The URL of the project's 48x48 avatar."
+
+ - name: "components"
+ type: "array"
+ description: "A list of the components contained in the project."
+ subattributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: |
+ The component ID.
+
+ {% assign description-type = "assignee" %}
+
+ - name: "assignee"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "accountId"
+ type: "string"
+ description: "The {{ description-type }}'s account ID."
+ foreign-key-id: "user-id"
+
+ - name: "active"
+ type: "boolean"
+ description: "Indicates if the {{ description-type }} is active."
+
+ - name: "applicationRoles"
+ type: "object"
+ description: "Application roles associated with the {{ description-type }}."
+ subattributes:
+ - name: "items"
+ type: "array"
+ description: "A list of application roles associated with the {{ description-type }}."
+ subattributes:
+ - name: "name"
+ type: "string"
+ description: "The name of the application role."
+
+ - name: "self"
+ type: "string"
+ description: "The URL of the application role."
+
+ - name: "max-results"
+ type: "integer"
+ description: ""
+
+ - name: "size"
+ type: "integer"
+ description: ""
+
+ - name: "avatarUrls"
+ type: "object"
+ description: "The URLs associated with the avatars used by the {{ description-type }}."
+ subattributes:
+ - name: "16x16"
+ type: "string"
+ description: "The URL of the {{ description-type }}'s 16x16 avatar."
+
+ - name: "24x24"
+ type: "string"
+ description: "The URL of the {{ description-type }}'s 24x24 avatar."
+
+ - name: "32x32"
+ type: "string"
+ description: "The URL of the {{ description-type }}'s 32x32 avatar."
+
+ - name: "48x48"
+ type: "string"
+ description: "The URL of the {{ description-type }}'s 48x48 avatar."
+
+ - name: "displayName"
+ type: "string"
+ description: "The {{ description-type }}'s display name. Depending on the user's privacy setting, this may be returned as null."
+
+ - name: "emailAddress"
+ type: "string"
+ description: "The {{ description-type }}'s email address. Depending on the user's privacy setting, this may be returned as null."
+
+ - name: "expand"
+ type: "string"
+ description: "Details of expands available for the {{ description-type }} details."
+
+ - name: "groups"
+ type: "object"
+ description: "Details about the groups the {{ description-type }} is associated with."
+ subattributes:
+ - name: "items"
+ type: "array"
+ description: "The groups the {{ description-type }} is associated with."
+ subattributes:
+ - name: "name"
+ type: "string"
+ description: "The name of the group."
+
+ - name: "self"
+ type: "string"
+ description: "The URL for the group."
+
+ - name: "max-results"
+ type: "integer"
+ description: ""
+
+ - name: "size"
+ type: "integer"
+ description: ""
+
+ - name: "key"
+ type: "string"
+ description: "The key of the {{ description-type }}."
+ foreign-key-id: "user-key"
+
+ - name: "locale"
+ type: "string"
+ description: "The locale of the {{ description-type }}. Depending on the user's privacy setting, this may be returned as null."
+
+ - name: "name"
+ type: "string"
+ description: "The name of the {{ description-type }}."
+
+ - name: "self"
+ type: "string"
+ description: "The URL for the {{ description-type }}."
+
+ - name: "timeZone"
+ type: "string"
+ description: "The time zone specified in the {{ description-type }}'s profile. Depending on the user's privacy setting, this may be returned as null."
+
+ - name: "assigneeType"
+ type: "string"
+ description: |
+ The user type used to determine the assignee for issues created with this component. Possible values are:
+
+ - `COMPONENT_LEAD` - The assignee to any issues created with this component is nominally the lead for the component.
+ - `PROJECT_DEFAULT` - The assignee to any issues created with this component is nominally the default assignee for the project the component is in.
+ - `PROJECT_LEAD` - The assignee to any issues created with this component is nominally the lead for the project the component is in.
+ - `UNASSIGNED` - An assignee is not set for issues created with this component.
+
+ - name: "description"
+ type: "string"
+ description: "A description of the component."
+
+ - name: "isAssigneeTypeValid"
+ type: "boolean"
+ description: |
+ Indicates if the `assigneeType` is valid.
+
+ {% assign description-type = "lead user" %}
+
+ - name: "lead"
+ type: "object"
+ description: |
+ Details about the lead user associated with the project.
+ subattributes:
+ - name: "accountId"
+ type: "string"
+ description: "The {{ description-type }}'s account ID."
+ foreign-key-id: "user-id"
+
+ - name: "active"
+ type: "boolean"
+ description: "Indicates if the {{ description-type }} is active."
+
+ - name: "applicationRoles"
+ type: "object"
+ description: "Application roles associated with the {{ description-type }}."
+ subattributes:
+ - name: "items"
+ type: "array"
+ description: "A list of application roles associated with the {{ description-type }}."
+ subattributes:
+ - name: "name"
+ type: "string"
+ description: "The name of the application role."
+
+ - name: "self"
+ type: "string"
+ description: "The URL of the application role."
+
+ - name: "max-results"
+ type: "integer"
+ description: ""
+
+ - name: "size"
+ type: "integer"
+ description: ""
+
+ - name: "avatarUrls"
+ type: "object"
+ description: "The URLs associated with the avatars used by the {{ description-type }}."
+ subattributes:
+ - name: "16x16"
+ type: "string"
+ description: "The URL of the {{ description-type }}'s 16x16 avatar."
+
+ - name: "24x24"
+ type: "string"
+ description: "The URL of the {{ description-type }}'s 24x24 avatar."
+
+ - name: "32x32"
+ type: "string"
+ description: "The URL of the {{ description-type }}'s 32x32 avatar."
+
+ - name: "48x48"
+ type: "string"
+ description: "The URL of the {{ description-type }}'s 48x48 avatar."
+
+ - name: "displayName"
+ type: "string"
+ description: "The {{ description-type }}'s display name. Depending on the user's privacy setting, this may be returned as null."
+
+ - name: "emailAddress"
+ type: "string"
+ description: "The {{ description-type }}'s email address. Depending on the user's privacy setting, this may be returned as null."
+
+ - name: "expand"
+ type: "string"
+ description: "Details of expands available for the {{ description-type }} details."
+
+ - name: "groups"
+ type: "object"
+ description: "Details about the groups the {{ description-type }} is associated with."
+ subattributes:
+ - name: "items"
+ type: "array"
+ description: "The groups the {{ description-type }} is associated with."
+ subattributes:
+ - name: "name"
+ type: "string"
+ description: "The name of the group."
+
+ - name: "self"
+ type: "string"
+ description: "The URL for the group."
+
+ - name: "max-results"
+ type: "integer"
+ description: ""
+
+ - name: "size"
+ type: "integer"
+ description: ""
+
+ - name: "key"
+ type: "string"
+ description: "The key of the {{ description-type }}."
+ foreign-key-id: "user-key"
+
+ - name: "locale"
+ type: "string"
+ description: "The locale of the {{ description-type }}. Depending on the user's privacy setting, this may be returned as null."
+
+ - name: "name"
+ type: "string"
+ description: "The name of the {{ description-type }}."
+
+ - name: "self"
+ type: "string"
+ description: "The URL for the {{ description-type }}."
+
+ - name: "timeZone"
+ type: "string"
+ description: "The time zone specified in the {{ description-type }}'s profile. Depending on the user's privacy setting, this may be returned as null."
+
+ - name: "leadUserName"
+ type: "string"
+ description: "The username of the component's lead user."
+
+ - name: "name"
+ type: "string"
+ description: "The name of the component."
+
+ - name: "project"
+ type: "string"
+ description: "The key of the project to which the component is assignee."
+
+ - name: "projectId"
+ type: "integer"
+ description: |
+ **Not used.**
+
+ {% assign description-type = "assignee" %}
+
+ - name: "realAssignee"
+ type: "object"
+ description: |
+ Details about the real assignee associated with the component.
+
+ - name: "realAssigneeType"
+ type: "string"
+ description: |
+ The actual type of the assignee to issues created with this component, when an assignee cannot be set from the `assigneeType`. Possible values are:
+
+ - `COMPONENT_LEAD` - When `assigneeType` is `COMPONENT_LEAD` and the component lead has permission to be assigned issues in the project that the component is in.
+ - `PROJECT_LEAD` - When `assigneeType` is `PROJECT_LEAD` and the project lead has permission to be assigneed issues in the project that the component is in.
+ - `UNASSIGNED` - When `assigneeType` is `UNASSIGNED` and {{ integration.display_name }} is configured to allow unassigned issues.
+ - `PROJECT_DEFAULT` - When none of the preceeding cases are true.
+
+ - name: "self"
+ type: "string"
+ description: "The URL of the component."
+
+ - name: "description"
+ type: "string"
+ description: "A description of the project."
+
+ - name: "email"
+ type: "string"
+ description: "The email address associated with the project."
+
+ - name: "expand"
+ type: "string"
+ description: "Details of expands available for project details."
+
+ - name: "issueTypes"
+ type: "array"
+ description: "A list of the issue types available in the project."
+ subattributes:
+ - name: "avatarId"
+ type: "integer"
+ description: "The ID of the issue type's avatar."
+
+ - name: "description"
+ type: "string"
+ description: "The description of the issue type."
+
+ - name: "iconUrl"
+ type: "string"
+ description: "The URL of the issue type's avatar."
+
+ - name: "id"
+ type: "string"
+ description: "The ID of the issue type."
+
+ - name: "name"
+ type: "string"
+ description: "The name of the issue type."
+
+ - name: "self"
+ type: "string"
+ description: "The URL of the issue type."
+
+ - name: "subtask"
+ type: "boolean"
+ description: "Indicates whether the issue type can be used to create subtasks."
+
+ - name: "key"
+ type: "string"
+ description: |
+ The project key.
+
+ {% assign description-type = "lead user" %}
+
+ - name: "lead"
+ type: "object"
+ description: "Details about the lead user associated with the project."
+
+ - name: "name"
+ type: "string"
+ description: "The name of the project."
+
+ - name: "projectCategory"
+ type: "object"
+ description: "The category associated with the project."
+ subattributes:
+ - name: "description"
+ type: "string"
+ description: "The description of the project category."
+
+ - name: "id"
+ type: "string"
+ description: "The ID of the project category."
+ foreign-key-id: "project-category-id"
+
+ - name: "name"
+ type: "string"
+ description: "The name of the project category."
+
+ - name: "self"
+ type: "string"
+ description: "The URL of the project category."
+
+ - name: "projectKeys"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "value"
+ type: "string"
+ description: ""
+
+ - name: "projectTypeKey"
+ type: "string"
+ description: |
+ The project type of the project. Possible values are:
+
+ - `ops`
+ - `software`
+ - `service_desk`
+ - `business`
+
+ - name: "roles"
+ type: "object"
+ description: "The roles defined in the project."
+ subattributes:
+ - name: "varies"
+ type: "string"
+ description: "The role defined in the project."
+
+ - name: "self"
+ type: "string"
+ description: "The URL of the project."
+
+ - name: "simplified"
+ type: "boolean"
+ description: "Indicates whether the project is simplified."
+
+ - name: "url"
+ type: "string"
+ description: "The URL of the project."
+---
\ No newline at end of file
diff --git a/_integration-schemas/jira/v2/resolutions.md b/archive/_integration-schemas/jira/v2/resolutions.md
similarity index 100%
rename from _integration-schemas/jira/v2/resolutions.md
rename to archive/_integration-schemas/jira/v2/resolutions.md
diff --git a/_integration-schemas/jira/v2/roles.md b/archive/_integration-schemas/jira/v2/roles.md
similarity index 100%
rename from _integration-schemas/jira/v2/roles.md
rename to archive/_integration-schemas/jira/v2/roles.md
diff --git a/_integration-schemas/jira/v2/users.md b/archive/_integration-schemas/jira/v2/users.md
similarity index 100%
rename from _integration-schemas/jira/v2/users.md
rename to archive/_integration-schemas/jira/v2/users.md
diff --git a/_integration-schemas/jira/v2/versions.md b/archive/_integration-schemas/jira/v2/versions.md
similarity index 100%
rename from _integration-schemas/jira/v2/versions.md
rename to archive/_integration-schemas/jira/v2/versions.md
diff --git a/_integration-schemas/jira/v2/worklogs.md b/archive/_integration-schemas/jira/v2/worklogs.md
similarity index 100%
rename from _integration-schemas/jira/v2/worklogs.md
rename to archive/_integration-schemas/jira/v2/worklogs.md
diff --git a/_integration-schemas/klaviyo/bounce.md b/archive/_integration-schemas/klaviyo/bounce.md
similarity index 100%
rename from _integration-schemas/klaviyo/bounce.md
rename to archive/_integration-schemas/klaviyo/bounce.md
diff --git a/_integration-schemas/klaviyo/campaigns.md b/archive/_integration-schemas/klaviyo/campaigns.md
similarity index 100%
rename from _integration-schemas/klaviyo/campaigns.md
rename to archive/_integration-schemas/klaviyo/campaigns.md
diff --git a/_integration-schemas/klaviyo/click.md b/archive/_integration-schemas/klaviyo/click.md
similarity index 100%
rename from _integration-schemas/klaviyo/click.md
rename to archive/_integration-schemas/klaviyo/click.md
diff --git a/_integration-schemas/klaviyo/clicked_sms.md b/archive/_integration-schemas/klaviyo/clicked_sms.md
similarity index 100%
rename from _integration-schemas/klaviyo/clicked_sms.md
rename to archive/_integration-schemas/klaviyo/clicked_sms.md
diff --git a/_integration-schemas/klaviyo/consented_to_receive.md b/archive/_integration-schemas/klaviyo/consented_to_receive.md
similarity index 100%
rename from _integration-schemas/klaviyo/consented_to_receive.md
rename to archive/_integration-schemas/klaviyo/consented_to_receive.md
diff --git a/_integration-schemas/klaviyo/dropped_email.md b/archive/_integration-schemas/klaviyo/dropped_email.md
similarity index 100%
rename from _integration-schemas/klaviyo/dropped_email.md
rename to archive/_integration-schemas/klaviyo/dropped_email.md
diff --git a/_integration-schemas/klaviyo/failed_to_deliver.md b/archive/_integration-schemas/klaviyo/failed_to_deliver.md
similarity index 100%
rename from _integration-schemas/klaviyo/failed_to_deliver.md
rename to archive/_integration-schemas/klaviyo/failed_to_deliver.md
diff --git a/_integration-schemas/klaviyo/failed_to_deliver_automated_response.md b/archive/_integration-schemas/klaviyo/failed_to_deliver_automated_response.md
similarity index 100%
rename from _integration-schemas/klaviyo/failed_to_deliver_automated_response.md
rename to archive/_integration-schemas/klaviyo/failed_to_deliver_automated_response.md
diff --git a/_integration-schemas/klaviyo/foreign-keys.yml b/archive/_integration-schemas/klaviyo/foreign-keys.yml
similarity index 100%
rename from _integration-schemas/klaviyo/foreign-keys.yml
rename to archive/_integration-schemas/klaviyo/foreign-keys.yml
diff --git a/_integration-schemas/klaviyo/global_exclusions.md b/archive/_integration-schemas/klaviyo/global_exclusions.md
similarity index 100%
rename from _integration-schemas/klaviyo/global_exclusions.md
rename to archive/_integration-schemas/klaviyo/global_exclusions.md
diff --git a/_integration-schemas/klaviyo/lists.md b/archive/_integration-schemas/klaviyo/lists.md
similarity index 100%
rename from _integration-schemas/klaviyo/lists.md
rename to archive/_integration-schemas/klaviyo/lists.md
diff --git a/_integration-schemas/klaviyo/mark_as_spam.md b/archive/_integration-schemas/klaviyo/mark_as_spam.md
similarity index 100%
rename from _integration-schemas/klaviyo/mark_as_spam.md
rename to archive/_integration-schemas/klaviyo/mark_as_spam.md
diff --git a/_integration-schemas/klaviyo/open.md b/archive/_integration-schemas/klaviyo/open.md
similarity index 100%
rename from _integration-schemas/klaviyo/open.md
rename to archive/_integration-schemas/klaviyo/open.md
diff --git a/_integration-schemas/klaviyo/receive.md b/archive/_integration-schemas/klaviyo/receive.md
similarity index 100%
rename from _integration-schemas/klaviyo/receive.md
rename to archive/_integration-schemas/klaviyo/receive.md
diff --git a/_integration-schemas/klaviyo/received_automated_response.md b/archive/_integration-schemas/klaviyo/received_automated_response.md
similarity index 100%
rename from _integration-schemas/klaviyo/received_automated_response.md
rename to archive/_integration-schemas/klaviyo/received_automated_response.md
diff --git a/_integration-schemas/klaviyo/received_sms.md b/archive/_integration-schemas/klaviyo/received_sms.md
similarity index 100%
rename from _integration-schemas/klaviyo/received_sms.md
rename to archive/_integration-schemas/klaviyo/received_sms.md
diff --git a/_integration-schemas/klaviyo/sent_sms.md b/archive/_integration-schemas/klaviyo/sent_sms.md
similarity index 100%
rename from _integration-schemas/klaviyo/sent_sms.md
rename to archive/_integration-schemas/klaviyo/sent_sms.md
diff --git a/_integration-schemas/klaviyo/subscribe_list.md b/archive/_integration-schemas/klaviyo/subscribe_list.md
similarity index 100%
rename from _integration-schemas/klaviyo/subscribe_list.md
rename to archive/_integration-schemas/klaviyo/subscribe_list.md
diff --git a/_integration-schemas/klaviyo/unsub_list.md b/archive/_integration-schemas/klaviyo/unsub_list.md
similarity index 100%
rename from _integration-schemas/klaviyo/unsub_list.md
rename to archive/_integration-schemas/klaviyo/unsub_list.md
diff --git a/_integration-schemas/klaviyo/unsubscribe.md b/archive/_integration-schemas/klaviyo/unsubscribe.md
similarity index 100%
rename from _integration-schemas/klaviyo/unsubscribe.md
rename to archive/_integration-schemas/klaviyo/unsubscribe.md
diff --git a/_integration-schemas/klaviyo/update_email_preferences.md b/archive/_integration-schemas/klaviyo/update_email_preferences.md
similarity index 100%
rename from _integration-schemas/klaviyo/update_email_preferences.md
rename to archive/_integration-schemas/klaviyo/update_email_preferences.md
diff --git a/_integration-schemas/kustomer/v1/conversations.md b/archive/_integration-schemas/kustomer/v1/conversations.md
similarity index 100%
rename from _integration-schemas/kustomer/v1/conversations.md
rename to archive/_integration-schemas/kustomer/v1/conversations.md
diff --git a/_integration-schemas/kustomer/v1/customers.md b/archive/_integration-schemas/kustomer/v1/customers.md
similarity index 100%
rename from _integration-schemas/kustomer/v1/customers.md
rename to archive/_integration-schemas/kustomer/v1/customers.md
diff --git a/_integration-schemas/kustomer/v1/foreign-keys.md b/archive/_integration-schemas/kustomer/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/kustomer/v1/foreign-keys.md
rename to archive/_integration-schemas/kustomer/v1/foreign-keys.md
diff --git a/_integration-schemas/kustomer/v1/kobjects.md b/archive/_integration-schemas/kustomer/v1/kobjects.md
similarity index 100%
rename from _integration-schemas/kustomer/v1/kobjects.md
rename to archive/_integration-schemas/kustomer/v1/kobjects.md
diff --git a/_integration-schemas/kustomer/v1/messages.md b/archive/_integration-schemas/kustomer/v1/messages.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/kustomer/v1/messages.md
rename to archive/_integration-schemas/kustomer/v1/messages.md
diff --git a/_integration-schemas/kustomer/v1/notes.md b/archive/_integration-schemas/kustomer/v1/notes.md
similarity index 100%
rename from _integration-schemas/kustomer/v1/notes.md
rename to archive/_integration-schemas/kustomer/v1/notes.md
diff --git a/_integration-schemas/kustomer/v1/shortcuts.md b/archive/_integration-schemas/kustomer/v1/shortcuts.md
similarity index 100%
rename from _integration-schemas/kustomer/v1/shortcuts.md
rename to archive/_integration-schemas/kustomer/v1/shortcuts.md
diff --git a/_integration-schemas/kustomer/v1/tags.md b/archive/_integration-schemas/kustomer/v1/tags.md
similarity index 100%
rename from _integration-schemas/kustomer/v1/tags.md
rename to archive/_integration-schemas/kustomer/v1/tags.md
diff --git a/_integration-schemas/kustomer/v1/teams.md b/archive/_integration-schemas/kustomer/v1/teams.md
similarity index 100%
rename from _integration-schemas/kustomer/v1/teams.md
rename to archive/_integration-schemas/kustomer/v1/teams.md
diff --git a/_integration-schemas/kustomer/v1/users.md b/archive/_integration-schemas/kustomer/v1/users.md
similarity index 100%
rename from _integration-schemas/kustomer/v1/users.md
rename to archive/_integration-schemas/kustomer/v1/users.md
diff --git a/_integration-schemas/lever/v1/archive_reasons.md b/archive/_integration-schemas/lever/v1/archive_reasons.md
similarity index 100%
rename from _integration-schemas/lever/v1/archive_reasons.md
rename to archive/_integration-schemas/lever/v1/archive_reasons.md
diff --git a/_integration-schemas/lever/v1/candidate_applications.md b/archive/_integration-schemas/lever/v1/candidate_applications.md
similarity index 100%
rename from _integration-schemas/lever/v1/candidate_applications.md
rename to archive/_integration-schemas/lever/v1/candidate_applications.md
diff --git a/_integration-schemas/lever/v1/candidate_offers.md b/archive/_integration-schemas/lever/v1/candidate_offers.md
similarity index 100%
rename from _integration-schemas/lever/v1/candidate_offers.md
rename to archive/_integration-schemas/lever/v1/candidate_offers.md
diff --git a/_integration-schemas/lever/v1/candidate_referrals.md b/archive/_integration-schemas/lever/v1/candidate_referrals.md
similarity index 100%
rename from _integration-schemas/lever/v1/candidate_referrals.md
rename to archive/_integration-schemas/lever/v1/candidate_referrals.md
diff --git a/_integration-schemas/lever/v1/candidate_resumes.md b/archive/_integration-schemas/lever/v1/candidate_resumes.md
similarity index 100%
rename from _integration-schemas/lever/v1/candidate_resumes.md
rename to archive/_integration-schemas/lever/v1/candidate_resumes.md
diff --git a/_integration-schemas/lever/v1/candidates.md b/archive/_integration-schemas/lever/v1/candidates.md
similarity index 99%
rename from _integration-schemas/lever/v1/candidates.md
rename to archive/_integration-schemas/lever/v1/candidates.md
index 1ee389ce8..404707524 100644
--- a/_integration-schemas/lever/v1/candidates.md
+++ b/archive/_integration-schemas/lever/v1/candidates.md
@@ -171,7 +171,6 @@ attributes:
- name: "resume"
type: "object"
description: "Details about the candidate's resume."
- subattributes:
- name: "snoozedUntil"
type: "date-time"
diff --git a/_integration-schemas/lever/v1/foreign-keys.md b/archive/_integration-schemas/lever/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/lever/v1/foreign-keys.md
rename to archive/_integration-schemas/lever/v1/foreign-keys.md
diff --git a/_integration-schemas/lever/v1/opportunities.md b/archive/_integration-schemas/lever/v1/opportunities.md
similarity index 100%
rename from _integration-schemas/lever/v1/opportunities.md
rename to archive/_integration-schemas/lever/v1/opportunities.md
diff --git a/_integration-schemas/lever/v1/opportunity_applications.md b/archive/_integration-schemas/lever/v1/opportunity_applications.md
similarity index 100%
rename from _integration-schemas/lever/v1/opportunity_applications.md
rename to archive/_integration-schemas/lever/v1/opportunity_applications.md
diff --git a/_integration-schemas/lever/v1/opportunity_offers.md b/archive/_integration-schemas/lever/v1/opportunity_offers.md
similarity index 100%
rename from _integration-schemas/lever/v1/opportunity_offers.md
rename to archive/_integration-schemas/lever/v1/opportunity_offers.md
diff --git a/_integration-schemas/lever/v1/opportunity_referrals.md b/archive/_integration-schemas/lever/v1/opportunity_referrals.md
similarity index 100%
rename from _integration-schemas/lever/v1/opportunity_referrals.md
rename to archive/_integration-schemas/lever/v1/opportunity_referrals.md
diff --git a/_integration-schemas/lever/v1/opportunity_resumes.md b/archive/_integration-schemas/lever/v1/opportunity_resumes.md
similarity index 100%
rename from _integration-schemas/lever/v1/opportunity_resumes.md
rename to archive/_integration-schemas/lever/v1/opportunity_resumes.md
diff --git a/_integration-schemas/lever/v1/postings.md b/archive/_integration-schemas/lever/v1/postings.md
similarity index 100%
rename from _integration-schemas/lever/v1/postings.md
rename to archive/_integration-schemas/lever/v1/postings.md
diff --git a/_integration-schemas/lever/v1/requisitions.md b/archive/_integration-schemas/lever/v1/requisitions.md
similarity index 99%
rename from _integration-schemas/lever/v1/requisitions.md
rename to archive/_integration-schemas/lever/v1/requisitions.md
index aba157a6d..b5da8d4a2 100644
--- a/_integration-schemas/lever/v1/requisitions.md
+++ b/archive/_integration-schemas/lever/v1/requisitions.md
@@ -59,7 +59,6 @@ attributes:
- name: "customFields"
type: "object"
description: "The custom fields associated with the requisition."
- subattributes:
- name: "department"
type: "string"
diff --git a/_integration-schemas/lever/v1/sources.md b/archive/_integration-schemas/lever/v1/sources.md
similarity index 100%
rename from _integration-schemas/lever/v1/sources.md
rename to archive/_integration-schemas/lever/v1/sources.md
diff --git a/_integration-schemas/lever/v1/stages.md b/archive/_integration-schemas/lever/v1/stages.md
similarity index 100%
rename from _integration-schemas/lever/v1/stages.md
rename to archive/_integration-schemas/lever/v1/stages.md
diff --git a/_integration-schemas/lever/v1/users.md b/archive/_integration-schemas/lever/v1/users.md
similarity index 100%
rename from _integration-schemas/lever/v1/users.md
rename to archive/_integration-schemas/lever/v1/users.md
diff --git a/_integration-schemas/linkedin-ads/v1/account_users.md b/archive/_integration-schemas/linkedin-ads/v1/account_users.md
similarity index 100%
rename from _integration-schemas/linkedin-ads/v1/account_users.md
rename to archive/_integration-schemas/linkedin-ads/v1/account_users.md
diff --git a/_integration-schemas/linkedin-ads/v1/accounts.md b/archive/_integration-schemas/linkedin-ads/v1/accounts.md
similarity index 100%
rename from _integration-schemas/linkedin-ads/v1/accounts.md
rename to archive/_integration-schemas/linkedin-ads/v1/accounts.md
diff --git a/_integration-schemas/linkedin-ads/v1/ad_analytics_by_campaign.md b/archive/_integration-schemas/linkedin-ads/v1/ad_analytics_by_campaign.md
similarity index 100%
rename from _integration-schemas/linkedin-ads/v1/ad_analytics_by_campaign.md
rename to archive/_integration-schemas/linkedin-ads/v1/ad_analytics_by_campaign.md
diff --git a/_integration-schemas/linkedin-ads/v1/ad_analytics_by_creative.md b/archive/_integration-schemas/linkedin-ads/v1/ad_analytics_by_creative.md
similarity index 100%
rename from _integration-schemas/linkedin-ads/v1/ad_analytics_by_creative.md
rename to archive/_integration-schemas/linkedin-ads/v1/ad_analytics_by_creative.md
diff --git a/_integration-schemas/linkedin-ads/v1/campaign_groups.md b/archive/_integration-schemas/linkedin-ads/v1/campaign_groups.md
similarity index 100%
rename from _integration-schemas/linkedin-ads/v1/campaign_groups.md
rename to archive/_integration-schemas/linkedin-ads/v1/campaign_groups.md
diff --git a/_integration-schemas/linkedin-ads/v1/campaigns.md b/archive/_integration-schemas/linkedin-ads/v1/campaigns.md
similarity index 100%
rename from _integration-schemas/linkedin-ads/v1/campaigns.md
rename to archive/_integration-schemas/linkedin-ads/v1/campaigns.md
diff --git a/_integration-schemas/linkedin-ads/v1/creatives.md b/archive/_integration-schemas/linkedin-ads/v1/creatives.md
similarity index 100%
rename from _integration-schemas/linkedin-ads/v1/creatives.md
rename to archive/_integration-schemas/linkedin-ads/v1/creatives.md
diff --git a/_integration-schemas/linkedin-ads/v1/foreign-keys.md b/archive/_integration-schemas/linkedin-ads/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/linkedin-ads/v1/foreign-keys.md
rename to archive/_integration-schemas/linkedin-ads/v1/foreign-keys.md
diff --git a/_integration-schemas/linkedin-ads/v1/video_ads.md b/archive/_integration-schemas/linkedin-ads/v1/video_ads.md
similarity index 100%
rename from _integration-schemas/linkedin-ads/v1/video_ads.md
rename to archive/_integration-schemas/linkedin-ads/v1/video_ads.md
diff --git a/_integration-schemas/linkedin-ads/v2/account_users.md b/archive/_integration-schemas/linkedin-ads/v2/account_users.md
similarity index 100%
rename from _integration-schemas/linkedin-ads/v2/account_users.md
rename to archive/_integration-schemas/linkedin-ads/v2/account_users.md
diff --git a/_integration-schemas/linkedin-ads/v2/accounts.md b/archive/_integration-schemas/linkedin-ads/v2/accounts.md
similarity index 100%
rename from _integration-schemas/linkedin-ads/v2/accounts.md
rename to archive/_integration-schemas/linkedin-ads/v2/accounts.md
diff --git a/_integration-schemas/linkedin-ads/v2/ad_analytics_by_campaign.md b/archive/_integration-schemas/linkedin-ads/v2/ad_analytics_by_campaign.md
similarity index 100%
rename from _integration-schemas/linkedin-ads/v2/ad_analytics_by_campaign.md
rename to archive/_integration-schemas/linkedin-ads/v2/ad_analytics_by_campaign.md
diff --git a/_integration-schemas/linkedin-ads/v2/ad_analytics_by_creative.md b/archive/_integration-schemas/linkedin-ads/v2/ad_analytics_by_creative.md
similarity index 100%
rename from _integration-schemas/linkedin-ads/v2/ad_analytics_by_creative.md
rename to archive/_integration-schemas/linkedin-ads/v2/ad_analytics_by_creative.md
diff --git a/_integration-schemas/linkedin-ads/v2/campaign_groups.md b/archive/_integration-schemas/linkedin-ads/v2/campaign_groups.md
similarity index 100%
rename from _integration-schemas/linkedin-ads/v2/campaign_groups.md
rename to archive/_integration-schemas/linkedin-ads/v2/campaign_groups.md
diff --git a/_integration-schemas/linkedin-ads/v2/campaigns.md b/archive/_integration-schemas/linkedin-ads/v2/campaigns.md
similarity index 100%
rename from _integration-schemas/linkedin-ads/v2/campaigns.md
rename to archive/_integration-schemas/linkedin-ads/v2/campaigns.md
diff --git a/_integration-schemas/linkedin-ads/v2/creatives.md b/archive/_integration-schemas/linkedin-ads/v2/creatives.md
similarity index 100%
rename from _integration-schemas/linkedin-ads/v2/creatives.md
rename to archive/_integration-schemas/linkedin-ads/v2/creatives.md
diff --git a/_integration-schemas/linkedin-ads/v2/foreign-keys.md b/archive/_integration-schemas/linkedin-ads/v2/foreign-keys.md
similarity index 100%
rename from _integration-schemas/linkedin-ads/v2/foreign-keys.md
rename to archive/_integration-schemas/linkedin-ads/v2/foreign-keys.md
diff --git a/_integration-schemas/linkedin-ads/v2/video_ads.md b/archive/_integration-schemas/linkedin-ads/v2/video_ads.md
similarity index 100%
rename from _integration-schemas/linkedin-ads/v2/video_ads.md
rename to archive/_integration-schemas/linkedin-ads/v2/video_ads.md
diff --git a/_integration-schemas/listrak/foreign-keys.md b/archive/_integration-schemas/listrak/foreign-keys.md
similarity index 100%
rename from _integration-schemas/listrak/foreign-keys.md
rename to archive/_integration-schemas/listrak/foreign-keys.md
diff --git a/_integration-schemas/listrak/lists.md b/archive/_integration-schemas/listrak/lists.md
similarity index 100%
rename from _integration-schemas/listrak/lists.md
rename to archive/_integration-schemas/listrak/lists.md
diff --git a/_integration-schemas/listrak/message_bounces.md b/archive/_integration-schemas/listrak/message_bounces.md
similarity index 100%
rename from _integration-schemas/listrak/message_bounces.md
rename to archive/_integration-schemas/listrak/message_bounces.md
diff --git a/_integration-schemas/listrak/message_clicks.md b/archive/_integration-schemas/listrak/message_clicks.md
similarity index 100%
rename from _integration-schemas/listrak/message_clicks.md
rename to archive/_integration-schemas/listrak/message_clicks.md
diff --git a/_integration-schemas/listrak/message_opens.md b/archive/_integration-schemas/listrak/message_opens.md
similarity index 100%
rename from _integration-schemas/listrak/message_opens.md
rename to archive/_integration-schemas/listrak/message_opens.md
diff --git a/_integration-schemas/listrak/message_reads.md b/archive/_integration-schemas/listrak/message_reads.md
similarity index 100%
rename from _integration-schemas/listrak/message_reads.md
rename to archive/_integration-schemas/listrak/message_reads.md
diff --git a/_integration-schemas/listrak/message_sends.md b/archive/_integration-schemas/listrak/message_sends.md
similarity index 100%
rename from _integration-schemas/listrak/message_sends.md
rename to archive/_integration-schemas/listrak/message_sends.md
diff --git a/_integration-schemas/listrak/message_unsubs.md b/archive/_integration-schemas/listrak/message_unsubs.md
similarity index 100%
rename from _integration-schemas/listrak/message_unsubs.md
rename to archive/_integration-schemas/listrak/message_unsubs.md
diff --git a/_integration-schemas/listrak/messages.md b/archive/_integration-schemas/listrak/messages.md
similarity index 100%
rename from _integration-schemas/listrak/messages.md
rename to archive/_integration-schemas/listrak/messages.md
diff --git a/_integration-schemas/listrak/subscribed_contacts.md b/archive/_integration-schemas/listrak/subscribed_contacts.md
similarity index 100%
rename from _integration-schemas/listrak/subscribed_contacts.md
rename to archive/_integration-schemas/listrak/subscribed_contacts.md
diff --git a/_integration-schemas/liveperson/v1/agent_activity.md b/archive/_integration-schemas/liveperson/v1/agent_activity.md
similarity index 100%
rename from _integration-schemas/liveperson/v1/agent_activity.md
rename to archive/_integration-schemas/liveperson/v1/agent_activity.md
diff --git a/_integration-schemas/liveperson/v1/agent_groups.md b/archive/_integration-schemas/liveperson/v1/agent_groups.md
similarity index 100%
rename from _integration-schemas/liveperson/v1/agent_groups.md
rename to archive/_integration-schemas/liveperson/v1/agent_groups.md
diff --git a/_integration-schemas/liveperson/v1/agent_state_distribution.md b/archive/_integration-schemas/liveperson/v1/agent_state_distribution.md
similarity index 100%
rename from _integration-schemas/liveperson/v1/agent_state_distribution.md
rename to archive/_integration-schemas/liveperson/v1/agent_state_distribution.md
diff --git a/_integration-schemas/liveperson/v1/agent_status.md b/archive/_integration-schemas/liveperson/v1/agent_status.md
similarity index 100%
rename from _integration-schemas/liveperson/v1/agent_status.md
rename to archive/_integration-schemas/liveperson/v1/agent_status.md
diff --git a/_integration-schemas/liveperson/v1/engagement_history.md b/archive/_integration-schemas/liveperson/v1/engagement_history.md
similarity index 100%
rename from _integration-schemas/liveperson/v1/engagement_history.md
rename to archive/_integration-schemas/liveperson/v1/engagement_history.md
diff --git a/_integration-schemas/liveperson/v1/foreign-keys.md b/archive/_integration-schemas/liveperson/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/liveperson/v1/foreign-keys.md
rename to archive/_integration-schemas/liveperson/v1/foreign-keys.md
diff --git a/_integration-schemas/liveperson/v1/messaging_interactions.md b/archive/_integration-schemas/liveperson/v1/messaging_interactions.md
similarity index 100%
rename from _integration-schemas/liveperson/v1/messaging_interactions.md
rename to archive/_integration-schemas/liveperson/v1/messaging_interactions.md
diff --git a/_integration-schemas/liveperson/v1/messaging_queue_health.md b/archive/_integration-schemas/liveperson/v1/messaging_queue_health.md
similarity index 100%
rename from _integration-schemas/liveperson/v1/messaging_queue_health.md
rename to archive/_integration-schemas/liveperson/v1/messaging_queue_health.md
diff --git a/_integration-schemas/liveperson/v1/queue_health.md b/archive/_integration-schemas/liveperson/v1/queue_health.md
similarity index 100%
rename from _integration-schemas/liveperson/v1/queue_health.md
rename to archive/_integration-schemas/liveperson/v1/queue_health.md
diff --git a/_integration-schemas/liveperson/v1/skills.md b/archive/_integration-schemas/liveperson/v1/skills.md
similarity index 100%
rename from _integration-schemas/liveperson/v1/skills.md
rename to archive/_integration-schemas/liveperson/v1/skills.md
diff --git a/_integration-schemas/liveperson/v1/users.md b/archive/_integration-schemas/liveperson/v1/users.md
similarity index 100%
rename from _integration-schemas/liveperson/v1/users.md
rename to archive/_integration-schemas/liveperson/v1/users.md
diff --git a/_integration-schemas/looker/v1/color_collections.md b/archive/_integration-schemas/looker/v1/color_collections.md
similarity index 100%
rename from _integration-schemas/looker/v1/color_collections.md
rename to archive/_integration-schemas/looker/v1/color_collections.md
diff --git a/_integration-schemas/looker/v1/connections.md b/archive/_integration-schemas/looker/v1/connections.md
similarity index 100%
rename from _integration-schemas/looker/v1/connections.md
rename to archive/_integration-schemas/looker/v1/connections.md
diff --git a/_integration-schemas/looker/v1/content_favorites.md b/archive/_integration-schemas/looker/v1/content_favorites.md
similarity index 100%
rename from _integration-schemas/looker/v1/content_favorites.md
rename to archive/_integration-schemas/looker/v1/content_favorites.md
diff --git a/_integration-schemas/looker/v1/content_metadata.md b/archive/_integration-schemas/looker/v1/content_metadata.md
similarity index 100%
rename from _integration-schemas/looker/v1/content_metadata.md
rename to archive/_integration-schemas/looker/v1/content_metadata.md
diff --git a/_integration-schemas/looker/v1/content_metadata_access.md b/archive/_integration-schemas/looker/v1/content_metadata_access.md
similarity index 100%
rename from _integration-schemas/looker/v1/content_metadata_access.md
rename to archive/_integration-schemas/looker/v1/content_metadata_access.md
diff --git a/_integration-schemas/looker/v1/content_views.md b/archive/_integration-schemas/looker/v1/content_views.md
similarity index 100%
rename from _integration-schemas/looker/v1/content_views.md
rename to archive/_integration-schemas/looker/v1/content_views.md
diff --git a/_integration-schemas/looker/v1/dashboard_elements.md b/archive/_integration-schemas/looker/v1/dashboard_elements.md
similarity index 100%
rename from _integration-schemas/looker/v1/dashboard_elements.md
rename to archive/_integration-schemas/looker/v1/dashboard_elements.md
diff --git a/_integration-schemas/looker/v1/dashboard_filters.md b/archive/_integration-schemas/looker/v1/dashboard_filters.md
similarity index 100%
rename from _integration-schemas/looker/v1/dashboard_filters.md
rename to archive/_integration-schemas/looker/v1/dashboard_filters.md
diff --git a/_integration-schemas/looker/v1/dashboard_layouts.md b/archive/_integration-schemas/looker/v1/dashboard_layouts.md
similarity index 100%
rename from _integration-schemas/looker/v1/dashboard_layouts.md
rename to archive/_integration-schemas/looker/v1/dashboard_layouts.md
diff --git a/_integration-schemas/looker/v1/dashboards.md b/archive/_integration-schemas/looker/v1/dashboards.md
similarity index 100%
rename from _integration-schemas/looker/v1/dashboards.md
rename to archive/_integration-schemas/looker/v1/dashboards.md
diff --git a/_integration-schemas/looker/v1/datagroups.md b/archive/_integration-schemas/looker/v1/datagroups.md
similarity index 100%
rename from _integration-schemas/looker/v1/datagroups.md
rename to archive/_integration-schemas/looker/v1/datagroups.md
diff --git a/_integration-schemas/looker/v1/explores.md b/archive/_integration-schemas/looker/v1/explores.md
similarity index 100%
rename from _integration-schemas/looker/v1/explores.md
rename to archive/_integration-schemas/looker/v1/explores.md
diff --git a/_integration-schemas/looker/v1/folders.md b/archive/_integration-schemas/looker/v1/folders.md
similarity index 100%
rename from _integration-schemas/looker/v1/folders.md
rename to archive/_integration-schemas/looker/v1/folders.md
diff --git a/_integration-schemas/looker/v1/foreign-keys.md b/archive/_integration-schemas/looker/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/looker/v1/foreign-keys.md
rename to archive/_integration-schemas/looker/v1/foreign-keys.md
diff --git a/_integration-schemas/looker/v1/git_branches.md b/archive/_integration-schemas/looker/v1/git_branches.md
similarity index 100%
rename from _integration-schemas/looker/v1/git_branches.md
rename to archive/_integration-schemas/looker/v1/git_branches.md
diff --git a/_integration-schemas/looker/v1/groups.md b/archive/_integration-schemas/looker/v1/groups.md
similarity index 100%
rename from _integration-schemas/looker/v1/groups.md
rename to archive/_integration-schemas/looker/v1/groups.md
diff --git a/_integration-schemas/looker/v1/groups_in_group.md b/archive/_integration-schemas/looker/v1/groups_in_group.md
similarity index 100%
rename from _integration-schemas/looker/v1/groups_in_group.md
rename to archive/_integration-schemas/looker/v1/groups_in_group.md
diff --git a/_integration-schemas/looker/v1/integration_hubs.md b/archive/_integration-schemas/looker/v1/integration_hubs.md
similarity index 100%
rename from _integration-schemas/looker/v1/integration_hubs.md
rename to archive/_integration-schemas/looker/v1/integration_hubs.md
diff --git a/_integration-schemas/looker/v1/integrations.md b/archive/_integration-schemas/looker/v1/integrations.md
similarity index 100%
rename from _integration-schemas/looker/v1/integrations.md
rename to archive/_integration-schemas/looker/v1/integrations.md
diff --git a/_integration-schemas/looker/v1/lookml_dashboards.md b/archive/_integration-schemas/looker/v1/lookml_dashboards.md
similarity index 100%
rename from _integration-schemas/looker/v1/lookml_dashboards.md
rename to archive/_integration-schemas/looker/v1/lookml_dashboards.md
diff --git a/_integration-schemas/looker/v1/lookml_models.md b/archive/_integration-schemas/looker/v1/lookml_models.md
similarity index 100%
rename from _integration-schemas/looker/v1/lookml_models.md
rename to archive/_integration-schemas/looker/v1/lookml_models.md
diff --git a/_integration-schemas/looker/v1/looks.md b/archive/_integration-schemas/looker/v1/looks.md
similarity index 100%
rename from _integration-schemas/looker/v1/looks.md
rename to archive/_integration-schemas/looker/v1/looks.md
diff --git a/_integration-schemas/looker/v1/merge_queries.md b/archive/_integration-schemas/looker/v1/merge_queries.md
similarity index 100%
rename from _integration-schemas/looker/v1/merge_queries.md
rename to archive/_integration-schemas/looker/v1/merge_queries.md
diff --git a/_integration-schemas/looker/v1/model_sets.md b/archive/_integration-schemas/looker/v1/model_sets.md
similarity index 100%
rename from _integration-schemas/looker/v1/model_sets.md
rename to archive/_integration-schemas/looker/v1/model_sets.md
diff --git a/_integration-schemas/looker/v1/models.md b/archive/_integration-schemas/looker/v1/models.md
similarity index 100%
rename from _integration-schemas/looker/v1/models.md
rename to archive/_integration-schemas/looker/v1/models.md
diff --git a/_integration-schemas/looker/v1/permission_sets.md b/archive/_integration-schemas/looker/v1/permission_sets.md
similarity index 100%
rename from _integration-schemas/looker/v1/permission_sets.md
rename to archive/_integration-schemas/looker/v1/permission_sets.md
diff --git a/_integration-schemas/looker/v1/permissions.md b/archive/_integration-schemas/looker/v1/permissions.md
similarity index 100%
rename from _integration-schemas/looker/v1/permissions.md
rename to archive/_integration-schemas/looker/v1/permissions.md
diff --git a/_integration-schemas/looker/v1/project_files.md b/archive/_integration-schemas/looker/v1/project_files.md
similarity index 100%
rename from _integration-schemas/looker/v1/project_files.md
rename to archive/_integration-schemas/looker/v1/project_files.md
diff --git a/_integration-schemas/looker/v1/projects.md b/archive/_integration-schemas/looker/v1/projects.md
similarity index 100%
rename from _integration-schemas/looker/v1/projects.md
rename to archive/_integration-schemas/looker/v1/projects.md
diff --git a/_integration-schemas/looker/v1/queries.md b/archive/_integration-schemas/looker/v1/queries.md
similarity index 100%
rename from _integration-schemas/looker/v1/queries.md
rename to archive/_integration-schemas/looker/v1/queries.md
diff --git a/_integration-schemas/looker/v1/query_history.md b/archive/_integration-schemas/looker/v1/query_history.md
similarity index 100%
rename from _integration-schemas/looker/v1/query_history.md
rename to archive/_integration-schemas/looker/v1/query_history.md
diff --git a/_integration-schemas/looker/v1/role_groups.md b/archive/_integration-schemas/looker/v1/role_groups.md
similarity index 100%
rename from _integration-schemas/looker/v1/role_groups.md
rename to archive/_integration-schemas/looker/v1/role_groups.md
diff --git a/_integration-schemas/looker/v1/roles.md b/archive/_integration-schemas/looker/v1/roles.md
similarity index 100%
rename from _integration-schemas/looker/v1/roles.md
rename to archive/_integration-schemas/looker/v1/roles.md
diff --git a/_integration-schemas/looker/v1/scheduled_plans.md b/archive/_integration-schemas/looker/v1/scheduled_plans.md
similarity index 100%
rename from _integration-schemas/looker/v1/scheduled_plans.md
rename to archive/_integration-schemas/looker/v1/scheduled_plans.md
diff --git a/_integration-schemas/looker/v1/themes.md b/archive/_integration-schemas/looker/v1/themes.md
similarity index 100%
rename from _integration-schemas/looker/v1/themes.md
rename to archive/_integration-schemas/looker/v1/themes.md
diff --git a/_integration-schemas/looker/v1/user_attribute_group_values.md b/archive/_integration-schemas/looker/v1/user_attribute_group_values.md
similarity index 100%
rename from _integration-schemas/looker/v1/user_attribute_group_values.md
rename to archive/_integration-schemas/looker/v1/user_attribute_group_values.md
diff --git a/_integration-schemas/looker/v1/user_attribute_values.md b/archive/_integration-schemas/looker/v1/user_attribute_values.md
similarity index 100%
rename from _integration-schemas/looker/v1/user_attribute_values.md
rename to archive/_integration-schemas/looker/v1/user_attribute_values.md
diff --git a/_integration-schemas/looker/v1/user_attributes.md b/archive/_integration-schemas/looker/v1/user_attributes.md
similarity index 100%
rename from _integration-schemas/looker/v1/user_attributes.md
rename to archive/_integration-schemas/looker/v1/user_attributes.md
diff --git a/_integration-schemas/looker/v1/user_login_lockouts.md b/archive/_integration-schemas/looker/v1/user_login_lockouts.md
similarity index 100%
rename from _integration-schemas/looker/v1/user_login_lockouts.md
rename to archive/_integration-schemas/looker/v1/user_login_lockouts.md
diff --git a/_integration-schemas/looker/v1/user_sessions.md b/archive/_integration-schemas/looker/v1/user_sessions.md
similarity index 100%
rename from _integration-schemas/looker/v1/user_sessions.md
rename to archive/_integration-schemas/looker/v1/user_sessions.md
diff --git a/_integration-schemas/looker/v1/users.md b/archive/_integration-schemas/looker/v1/users.md
similarity index 100%
rename from _integration-schemas/looker/v1/users.md
rename to archive/_integration-schemas/looker/v1/users.md
diff --git a/_integration-schemas/looker/v1/versions.md b/archive/_integration-schemas/looker/v1/versions.md
similarity index 100%
rename from _integration-schemas/looker/v1/versions.md
rename to archive/_integration-schemas/looker/v1/versions.md
diff --git a/_integration-schemas/looker/v1/workspaces.md b/archive/_integration-schemas/looker/v1/workspaces.md
similarity index 100%
rename from _integration-schemas/looker/v1/workspaces.md
rename to archive/_integration-schemas/looker/v1/workspaces.md
diff --git a/_integration-schemas/lookml/v1/model_files.md b/archive/_integration-schemas/lookml/v1/model_files.md
similarity index 100%
rename from _integration-schemas/lookml/v1/model_files.md
rename to archive/_integration-schemas/lookml/v1/model_files.md
diff --git a/_integration-schemas/lookml/v1/models.md b/archive/_integration-schemas/lookml/v1/models.md
similarity index 100%
rename from _integration-schemas/lookml/v1/models.md
rename to archive/_integration-schemas/lookml/v1/models.md
diff --git a/_integration-schemas/lookml/v1/view_files.md b/archive/_integration-schemas/lookml/v1/view_files.md
similarity index 100%
rename from _integration-schemas/lookml/v1/view_files.md
rename to archive/_integration-schemas/lookml/v1/view_files.md
diff --git a/_integration-schemas/lookml/v1/views.md b/archive/_integration-schemas/lookml/v1/views.md
similarity index 100%
rename from _integration-schemas/lookml/v1/views.md
rename to archive/_integration-schemas/lookml/v1/views.md
diff --git a/_integration-schemas/mailchimp/v1/automations.md b/archive/_integration-schemas/mailchimp/v1/automations.md
similarity index 100%
rename from _integration-schemas/mailchimp/v1/automations.md
rename to archive/_integration-schemas/mailchimp/v1/automations.md
diff --git a/_integration-schemas/mailchimp/v1/campaigns.md b/archive/_integration-schemas/mailchimp/v1/campaigns.md
similarity index 100%
rename from _integration-schemas/mailchimp/v1/campaigns.md
rename to archive/_integration-schemas/mailchimp/v1/campaigns.md
diff --git a/_integration-schemas/mailchimp/v1/foreign-keys.md b/archive/_integration-schemas/mailchimp/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/mailchimp/v1/foreign-keys.md
rename to archive/_integration-schemas/mailchimp/v1/foreign-keys.md
diff --git a/_integration-schemas/mailchimp/v1/list_members.md b/archive/_integration-schemas/mailchimp/v1/list_members.md
similarity index 100%
rename from _integration-schemas/mailchimp/v1/list_members.md
rename to archive/_integration-schemas/mailchimp/v1/list_members.md
diff --git a/_integration-schemas/mailchimp/v1/list_segment_members.md b/archive/_integration-schemas/mailchimp/v1/list_segment_members.md
similarity index 100%
rename from _integration-schemas/mailchimp/v1/list_segment_members.md
rename to archive/_integration-schemas/mailchimp/v1/list_segment_members.md
diff --git a/_integration-schemas/mailchimp/v1/list_segments.md b/archive/_integration-schemas/mailchimp/v1/list_segments.md
similarity index 100%
rename from _integration-schemas/mailchimp/v1/list_segments.md
rename to archive/_integration-schemas/mailchimp/v1/list_segments.md
diff --git a/_integration-schemas/mailchimp/v1/lists.md b/archive/_integration-schemas/mailchimp/v1/lists.md
similarity index 100%
rename from _integration-schemas/mailchimp/v1/lists.md
rename to archive/_integration-schemas/mailchimp/v1/lists.md
diff --git a/_integration-schemas/mailchimp/v1/reports_email_activity.md b/archive/_integration-schemas/mailchimp/v1/reports_email_activity.md
similarity index 100%
rename from _integration-schemas/mailchimp/v1/reports_email_activity.md
rename to archive/_integration-schemas/mailchimp/v1/reports_email_activity.md
diff --git a/_integration-schemas/mailchimp/v1/unsubscribes.md b/archive/_integration-schemas/mailchimp/v1/unsubscribes.md
similarity index 100%
rename from _integration-schemas/mailchimp/v1/unsubscribes.md
rename to archive/_integration-schemas/mailchimp/v1/unsubscribes.md
diff --git a/_integration-schemas/mailshake/v1/campaigns.md b/archive/_integration-schemas/mailshake/v1/campaigns.md
similarity index 100%
rename from _integration-schemas/mailshake/v1/campaigns.md
rename to archive/_integration-schemas/mailshake/v1/campaigns.md
diff --git a/_integration-schemas/mailshake/v1/clicks.md b/archive/_integration-schemas/mailshake/v1/clicks.md
similarity index 100%
rename from _integration-schemas/mailshake/v1/clicks.md
rename to archive/_integration-schemas/mailshake/v1/clicks.md
diff --git a/_integration-schemas/mailshake/v1/foreign-keys.md b/archive/_integration-schemas/mailshake/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/mailshake/v1/foreign-keys.md
rename to archive/_integration-schemas/mailshake/v1/foreign-keys.md
diff --git a/archive/_integration-schemas/mailshake/v1/leads.md b/archive/_integration-schemas/mailshake/v1/leads.md
new file mode 100644
index 000000000..c7e936e3f
--- /dev/null
+++ b/archive/_integration-schemas/mailshake/v1/leads.md
@@ -0,0 +1,132 @@
+---
+tap: "mailshake"
+version: "1"
+key: "lead"
+
+name: "leads"
+doc-link: ""
+singer-schema: "https://github.com/singer-io/tap-mailshake/blob/master/tap_mailshake/schemas/leads.json"
+description: |
+ The `{{ table.name }}` table contains info about the leads in your {{ integration.display_name }} account.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List leads"
+ doc-link: "https://api-docs.mailshake.com/?shell#List59"
+
+attributes:
+ - name: "id"
+ type: "integer"
+ primary-key: true
+ description: ""
+ # foreign-key-id: "lead-id"
+
+ - name: "created"
+ type: "date-time"
+ replication-key: true
+ description: ""
+
+ - name: "assignedTo"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "emailAddress"
+ type: "string"
+ description: ""
+
+ - name: "first"
+ type: "string"
+ description: ""
+
+ - name: "fullName"
+ type: "string"
+ description: ""
+
+ - name: "id"
+ type: "integer"
+ description: ""
+ foreign-key-id: "team-member-id"
+
+ - name: "last"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "campaign"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "created"
+ type: "date-time"
+ description: ""
+
+ - name: "id"
+ type: "integer"
+ description: ""
+ foreign-key-id: "campaign-id"
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "title"
+ type: "string"
+ description: ""
+
+ - name: "lastStatusChangeDate"
+ type: "date-time"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "openedDate"
+ type: "date-time"
+ description: ""
+
+ - name: "recipient"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "created"
+ type: "date-time"
+ description: ""
+
+ - name: "emailAddress"
+ type: "string"
+ description: ""
+
+ - name: "fields"
+ type: "object"
+ description: ""
+
+ - name: "first"
+ type: "string"
+ description: ""
+
+ - name: "fullName"
+ type: "string"
+ description: ""
+
+ - name: "id"
+ type: "integer"
+ description: ""
+ foreign-key-id: "recipient-id"
+
+ - name: "last"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "status"
+ type: "string"
+ description: ""
+---
\ No newline at end of file
diff --git a/_integration-schemas/mailshake/v1/opens.md b/archive/_integration-schemas/mailshake/v1/opens.md
similarity index 99%
rename from _integration-schemas/mailshake/v1/opens.md
rename to archive/_integration-schemas/mailshake/v1/opens.md
index 8dbb99975..d1a37afa8 100644
--- a/_integration-schemas/mailshake/v1/opens.md
+++ b/archive/_integration-schemas/mailshake/v1/opens.md
@@ -113,7 +113,6 @@ attributes:
- name: "fields"
type: "object"
description: ""
- subattributes:
- name: "first"
type: "string"
diff --git a/_integration-schemas/mailshake/v1/recipients.md b/archive/_integration-schemas/mailshake/v1/recipients.md
similarity index 100%
rename from _integration-schemas/mailshake/v1/recipients.md
rename to archive/_integration-schemas/mailshake/v1/recipients.md
diff --git a/_integration-schemas/mailshake/v1/replies.md b/archive/_integration-schemas/mailshake/v1/replies.md
similarity index 100%
rename from _integration-schemas/mailshake/v1/replies.md
rename to archive/_integration-schemas/mailshake/v1/replies.md
diff --git a/_integration-schemas/mailshake/v1/senders.md b/archive/_integration-schemas/mailshake/v1/senders.md
similarity index 100%
rename from _integration-schemas/mailshake/v1/senders.md
rename to archive/_integration-schemas/mailshake/v1/senders.md
diff --git a/_integration-schemas/mailshake/v1/sent_messages.md b/archive/_integration-schemas/mailshake/v1/sent_messages.md
similarity index 99%
rename from _integration-schemas/mailshake/v1/sent_messages.md
rename to archive/_integration-schemas/mailshake/v1/sent_messages.md
index 24f1afab0..990eaa5a6 100644
--- a/_integration-schemas/mailshake/v1/sent_messages.md
+++ b/archive/_integration-schemas/mailshake/v1/sent_messages.md
@@ -140,7 +140,6 @@ attributes:
- name: "fields"
type: "object"
description: ""
- subattributes:
- name: "first"
type: "string"
diff --git a/_integration-schemas/mailshake/v1/team_members.md b/archive/_integration-schemas/mailshake/v1/team_members.md
similarity index 100%
rename from _integration-schemas/mailshake/v1/team_members.md
rename to archive/_integration-schemas/mailshake/v1/team_members.md
diff --git a/_integration-schemas/mambu/v1/activities.md b/archive/_integration-schemas/mambu/v1/activities.md
similarity index 100%
rename from _integration-schemas/mambu/v1/activities.md
rename to archive/_integration-schemas/mambu/v1/activities.md
diff --git a/_integration-schemas/mambu/v1/branches.md b/archive/_integration-schemas/mambu/v1/branches.md
similarity index 100%
rename from _integration-schemas/mambu/v1/branches.md
rename to archive/_integration-schemas/mambu/v1/branches.md
diff --git a/archive/_integration-schemas/mambu/v1/cards.md b/archive/_integration-schemas/mambu/v1/cards.md
new file mode 100644
index 000000000..a1f5fad65
--- /dev/null
+++ b/archive/_integration-schemas/mambu/v1/cards.md
@@ -0,0 +1,46 @@
+---
+# -------------------------- #
+# Table Details #
+# -------------------------- #
+
+tap: "mambu"
+version: "1"
+key: "card"
+
+name: "cards"
+doc-link: "https://api.mambu.com/?shell#welcome"
+singer-schema: "https://github.com/singer-io/tap-mambu/tree/v1.3.3/tap_mambu/schemas/cards.json"
+description: |
+ This table contains information about cards.
+
+
+# -------------------------- #
+# Replication Details #
+# -------------------------- #
+
+replication-method: "Full Table"
+
+api-method:
+ name: "Get all cards (v2.0)"
+ doc-link: "https://api.mambu.com/?http#depositaccounts-getallcards"
+
+dependent-table-key: "deposit_account"
+
+
+# -------------------------- #
+# Table Attributes #
+# -------------------------- #
+
+attributes:
+ - name: "deposit_id"
+ type: "string"
+ primary-key: true
+ description: "The deposit ID."
+ foreign-key-id: "deposit-id"
+
+ - name: "reference_token"
+ type: "string"
+ primary-key: true
+ description: "The token used to externally identify the card."
+# foreign-key-id: "reference-token"
+---
diff --git a/_integration-schemas/mambu/v1/centres.md b/archive/_integration-schemas/mambu/v1/centres.md
similarity index 100%
rename from _integration-schemas/mambu/v1/centres.md
rename to archive/_integration-schemas/mambu/v1/centres.md
diff --git a/_integration-schemas/mambu/v1/clients.md b/archive/_integration-schemas/mambu/v1/clients.md
similarity index 100%
rename from _integration-schemas/mambu/v1/clients.md
rename to archive/_integration-schemas/mambu/v1/clients.md
diff --git a/_integration-schemas/mambu/v1/communications.md b/archive/_integration-schemas/mambu/v1/communications.md
similarity index 100%
rename from _integration-schemas/mambu/v1/communications.md
rename to archive/_integration-schemas/mambu/v1/communications.md
diff --git a/_integration-schemas/mambu/v1/credit_arrangements.md b/archive/_integration-schemas/mambu/v1/credit_arrangements.md
similarity index 100%
rename from _integration-schemas/mambu/v1/credit_arrangements.md
rename to archive/_integration-schemas/mambu/v1/credit_arrangements.md
diff --git a/_integration-schemas/mambu/v1/custom_field_sets.md b/archive/_integration-schemas/mambu/v1/custom_field_sets.md
similarity index 100%
rename from _integration-schemas/mambu/v1/custom_field_sets.md
rename to archive/_integration-schemas/mambu/v1/custom_field_sets.md
diff --git a/_integration-schemas/mambu/v1/deposit_accounts.md b/archive/_integration-schemas/mambu/v1/deposit_accounts.md
similarity index 100%
rename from _integration-schemas/mambu/v1/deposit_accounts.md
rename to archive/_integration-schemas/mambu/v1/deposit_accounts.md
diff --git a/_integration-schemas/mambu/v1/deposit_products.md b/archive/_integration-schemas/mambu/v1/deposit_products.md
similarity index 100%
rename from _integration-schemas/mambu/v1/deposit_products.md
rename to archive/_integration-schemas/mambu/v1/deposit_products.md
diff --git a/_integration-schemas/mambu/v1/deposit_transactions.md b/archive/_integration-schemas/mambu/v1/deposit_transactions.md
similarity index 100%
rename from _integration-schemas/mambu/v1/deposit_transactions.md
rename to archive/_integration-schemas/mambu/v1/deposit_transactions.md
diff --git a/_integration-schemas/mambu/v1/foreign-keys.md b/archive/_integration-schemas/mambu/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/mambu/v1/foreign-keys.md
rename to archive/_integration-schemas/mambu/v1/foreign-keys.md
diff --git a/_integration-schemas/mambu/v1/gl_accounts.md b/archive/_integration-schemas/mambu/v1/gl_accounts.md
similarity index 100%
rename from _integration-schemas/mambu/v1/gl_accounts.md
rename to archive/_integration-schemas/mambu/v1/gl_accounts.md
diff --git a/_integration-schemas/mambu/v1/gl_journal_entries.md b/archive/_integration-schemas/mambu/v1/gl_journal_entries.md
similarity index 100%
rename from _integration-schemas/mambu/v1/gl_journal_entries.md
rename to archive/_integration-schemas/mambu/v1/gl_journal_entries.md
diff --git a/_integration-schemas/mambu/v1/groups.md b/archive/_integration-schemas/mambu/v1/groups.md
similarity index 100%
rename from _integration-schemas/mambu/v1/groups.md
rename to archive/_integration-schemas/mambu/v1/groups.md
diff --git a/_integration-schemas/mambu/v1/index_rate_sources.md b/archive/_integration-schemas/mambu/v1/index_rate_sources.md
similarity index 100%
rename from _integration-schemas/mambu/v1/index_rate_sources.md
rename to archive/_integration-schemas/mambu/v1/index_rate_sources.md
diff --git a/_integration-schemas/mambu/v1/installments.md b/archive/_integration-schemas/mambu/v1/installments.md
similarity index 100%
rename from _integration-schemas/mambu/v1/installments.md
rename to archive/_integration-schemas/mambu/v1/installments.md
diff --git a/_integration-schemas/mambu/v1/loan_accounts.md b/archive/_integration-schemas/mambu/v1/loan_accounts.md
similarity index 100%
rename from _integration-schemas/mambu/v1/loan_accounts.md
rename to archive/_integration-schemas/mambu/v1/loan_accounts.md
diff --git a/_integration-schemas/mambu/v1/loan_products.md b/archive/_integration-schemas/mambu/v1/loan_products.md
similarity index 100%
rename from _integration-schemas/mambu/v1/loan_products.md
rename to archive/_integration-schemas/mambu/v1/loan_products.md
diff --git a/archive/_integration-schemas/mambu/v1/loan_repayments.md b/archive/_integration-schemas/mambu/v1/loan_repayments.md
new file mode 100644
index 000000000..cdb1ac4d6
--- /dev/null
+++ b/archive/_integration-schemas/mambu/v1/loan_repayments.md
@@ -0,0 +1,92 @@
+---
+# -------------------------- #
+# Table Details #
+# -------------------------- #
+
+tap: "mambu"
+version: "1"
+key: "loan-repayment"
+
+name: "loan_repayments"
+doc-link: ""
+singer-schema: "https://github.com/singer-io/tap-mambu/tree/v1.3.3/tap_mambu/schemas/loan_repayments.json"
+description: |
+ This is a child table of `loan_accounts`, containing information exclusively about loan repayments.
+
+
+# -------------------------- #
+# Replication Details #
+# -------------------------- #
+
+api-method:
+ name: "Get repayments for a loan account (v1.0)"
+ doc-link: "https://api.mambu.com/v1/#loan-accounts-get-repayments-for-a-loan-account"
+
+replication-method: "Full Table"
+
+dependent-table-key: "loan_account"
+
+
+# -------------------------- #
+# Table Attributes #
+# -------------------------- #
+
+attributes:
+ - name: "encoded_key"
+ type: "string"
+ primary-key: true
+ description: "The unique loan repayment encoded key."
+
+ - name: "due_date"
+ type: "date-time"
+ description: ""
+
+ - name: "fees_due"
+ type: "string"
+ description: ""
+ - name: "fees_paid"
+ type: "string"
+ description: ""
+ - name: "interest_due"
+ type: "string"
+ description: ""
+ - name: "interest_paid"
+ type: "string"
+ description: ""
+ - name: "parent_account_key"
+ type: "string"
+ description: ""
+ - name: "penalty_due"
+ type: "string"
+ description: ""
+ - name: "penalty_paid"
+ type: "string"
+ description: ""
+ - name: "principal_due"
+ type: "string"
+ description: ""
+ - name: "principal_paid"
+ type: "string"
+ description: ""
+ - name: "state"
+ type: "string"
+ description: ""
+ - name: "tax_fees_due"
+ type: "string"
+ description: ""
+ - name: "tax_fees_paid"
+ type: "string"
+ description: ""
+ - name: "tax_interest_due"
+ type: "string"
+ description: ""
+ - name: "tax_interest_paid"
+ type: "string"
+ description: ""
+ - name: "tax_penalty_due"
+ type: "string"
+ description: ""
+ - name: "tax_penalty_paid"
+ type: "string"
+ description: ""
+---
diff --git a/_integration-schemas/mambu/v1/loan_transactions.md b/archive/_integration-schemas/mambu/v1/loan_transactions.md
similarity index 100%
rename from _integration-schemas/mambu/v1/loan_transactions.md
rename to archive/_integration-schemas/mambu/v1/loan_transactions.md
diff --git a/_integration-schemas/mambu/v1/tasks.md b/archive/_integration-schemas/mambu/v1/tasks.md
similarity index 100%
rename from _integration-schemas/mambu/v1/tasks.md
rename to archive/_integration-schemas/mambu/v1/tasks.md
diff --git a/_integration-schemas/mambu/v1/users.md b/archive/_integration-schemas/mambu/v1/users.md
similarity index 100%
rename from _integration-schemas/mambu/v1/users.md
rename to archive/_integration-schemas/mambu/v1/users.md
diff --git a/_integration-schemas/mambu/v2/activities.md b/archive/_integration-schemas/mambu/v2/activities.md
similarity index 100%
rename from _integration-schemas/mambu/v2/activities.md
rename to archive/_integration-schemas/mambu/v2/activities.md
diff --git a/_integration-schemas/mambu/v2/audit_trail.md b/archive/_integration-schemas/mambu/v2/audit_trail.md
similarity index 100%
rename from _integration-schemas/mambu/v2/audit_trail.md
rename to archive/_integration-schemas/mambu/v2/audit_trail.md
diff --git a/_integration-schemas/mambu/v2/branches.md b/archive/_integration-schemas/mambu/v2/branches.md
similarity index 100%
rename from _integration-schemas/mambu/v2/branches.md
rename to archive/_integration-schemas/mambu/v2/branches.md
diff --git a/archive/_integration-schemas/mambu/v2/cards.md b/archive/_integration-schemas/mambu/v2/cards.md
new file mode 100644
index 000000000..87179b26f
--- /dev/null
+++ b/archive/_integration-schemas/mambu/v2/cards.md
@@ -0,0 +1,46 @@
+---
+# -------------------------- #
+# Table Details #
+# -------------------------- #
+
+tap: "mambu"
+version: "2"
+key: "card"
+
+name: "cards"
+doc-link: "https://api.mambu.com/?shell#welcome"
+singer-schema: "https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/cards.json"
+description: |
+ This table contains information about cards.
+
+
+# -------------------------- #
+# Replication Details #
+# -------------------------- #
+
+replication-method: "Full Table"
+
+api-method:
+ name: "Get all cards (v2.0)"
+ doc-link: "https://api.mambu.com/?http#depositaccounts-getallcards"
+
+dependent-table-key: "deposit_account"
+
+
+# -------------------------- #
+# Table Attributes #
+# -------------------------- #
+
+attributes:
+ - name: "deposit_id"
+ type: "string"
+ primary-key: true
+ description: "The deposit ID."
+ # foreign-key-id: "deposit-id"
+
+ - name: "reference_token"
+ type: "string"
+ primary-key: true
+ description: "The token used to externally identify the card."
+# foreign-key-id: "reference-token"
+---
\ No newline at end of file
diff --git a/_integration-schemas/mambu/v2/centres.md b/archive/_integration-schemas/mambu/v2/centres.md
similarity index 100%
rename from _integration-schemas/mambu/v2/centres.md
rename to archive/_integration-schemas/mambu/v2/centres.md
diff --git a/_integration-schemas/mambu/v2/clients.md b/archive/_integration-schemas/mambu/v2/clients.md
similarity index 100%
rename from _integration-schemas/mambu/v2/clients.md
rename to archive/_integration-schemas/mambu/v2/clients.md
diff --git a/_integration-schemas/mambu/v2/communications.md b/archive/_integration-schemas/mambu/v2/communications.md
similarity index 100%
rename from _integration-schemas/mambu/v2/communications.md
rename to archive/_integration-schemas/mambu/v2/communications.md
diff --git a/_integration-schemas/mambu/v2/credit_arrangements.md b/archive/_integration-schemas/mambu/v2/credit_arrangements.md
similarity index 100%
rename from _integration-schemas/mambu/v2/credit_arrangements.md
rename to archive/_integration-schemas/mambu/v2/credit_arrangements.md
diff --git a/_integration-schemas/mambu/v2/custom_field_sets.md b/archive/_integration-schemas/mambu/v2/custom_field_sets.md
similarity index 100%
rename from _integration-schemas/mambu/v2/custom_field_sets.md
rename to archive/_integration-schemas/mambu/v2/custom_field_sets.md
diff --git a/_integration-schemas/mambu/v2/deposit_accounts.md b/archive/_integration-schemas/mambu/v2/deposit_accounts.md
similarity index 100%
rename from _integration-schemas/mambu/v2/deposit_accounts.md
rename to archive/_integration-schemas/mambu/v2/deposit_accounts.md
diff --git a/_integration-schemas/mambu/v2/deposit_products.md b/archive/_integration-schemas/mambu/v2/deposit_products.md
similarity index 100%
rename from _integration-schemas/mambu/v2/deposit_products.md
rename to archive/_integration-schemas/mambu/v2/deposit_products.md
diff --git a/_integration-schemas/mambu/v2/deposit_transactions.md b/archive/_integration-schemas/mambu/v2/deposit_transactions.md
similarity index 100%
rename from _integration-schemas/mambu/v2/deposit_transactions.md
rename to archive/_integration-schemas/mambu/v2/deposit_transactions.md
diff --git a/_integration-schemas/mambu/v2/foreign-keys.md b/archive/_integration-schemas/mambu/v2/foreign-keys.md
similarity index 100%
rename from _integration-schemas/mambu/v2/foreign-keys.md
rename to archive/_integration-schemas/mambu/v2/foreign-keys.md
diff --git a/_integration-schemas/mambu/v2/gl_accounts.md b/archive/_integration-schemas/mambu/v2/gl_accounts.md
similarity index 100%
rename from _integration-schemas/mambu/v2/gl_accounts.md
rename to archive/_integration-schemas/mambu/v2/gl_accounts.md
diff --git a/_integration-schemas/mambu/v2/gl_journal_entries.md b/archive/_integration-schemas/mambu/v2/gl_journal_entries.md
similarity index 100%
rename from _integration-schemas/mambu/v2/gl_journal_entries.md
rename to archive/_integration-schemas/mambu/v2/gl_journal_entries.md
diff --git a/_integration-schemas/mambu/v2/groups.md b/archive/_integration-schemas/mambu/v2/groups.md
similarity index 100%
rename from _integration-schemas/mambu/v2/groups.md
rename to archive/_integration-schemas/mambu/v2/groups.md
diff --git a/_integration-schemas/mambu/v2/index_rate_sources.md b/archive/_integration-schemas/mambu/v2/index_rate_sources.md
similarity index 100%
rename from _integration-schemas/mambu/v2/index_rate_sources.md
rename to archive/_integration-schemas/mambu/v2/index_rate_sources.md
diff --git a/_integration-schemas/mambu/v2/installments.md b/archive/_integration-schemas/mambu/v2/installments.md
similarity index 100%
rename from _integration-schemas/mambu/v2/installments.md
rename to archive/_integration-schemas/mambu/v2/installments.md
diff --git a/_integration-schemas/mambu/v2/loan_accounts.md b/archive/_integration-schemas/mambu/v2/loan_accounts.md
similarity index 100%
rename from _integration-schemas/mambu/v2/loan_accounts.md
rename to archive/_integration-schemas/mambu/v2/loan_accounts.md
diff --git a/_integration-schemas/mambu/v2/loan_products.md b/archive/_integration-schemas/mambu/v2/loan_products.md
similarity index 100%
rename from _integration-schemas/mambu/v2/loan_products.md
rename to archive/_integration-schemas/mambu/v2/loan_products.md
diff --git a/archive/_integration-schemas/mambu/v2/loan_repayments.md b/archive/_integration-schemas/mambu/v2/loan_repayments.md
new file mode 100644
index 000000000..066aeb7ef
--- /dev/null
+++ b/archive/_integration-schemas/mambu/v2/loan_repayments.md
@@ -0,0 +1,108 @@
+---
+# -------------------------- #
+# Table Details #
+# -------------------------- #
+
+tap: "mambu"
+version: "2"
+key: "loan-repayment"
+
+name: "loan_repayments"
+doc-link: ""
+singer-schema: "https://github.com/singer-io/tap-mambu/blob/master/tap_mambu/schemas/loan_repayments.json"
+description: |
+ This is a child table of `loan_accounts`, containing information exclusively about loan repayments.
+
+
+# -------------------------- #
+# Replication Details #
+# -------------------------- #
+
+api-method:
+ name: "Get repayments for a loan account (v1.0)"
+ doc-link: "https://api.mambu.com/v1/#loan-accounts-get-repayments-for-a-loan-account"
+
+replication-method: "Full Table"
+
+dependent-table-key: "loan_account"
+
+
+# -------------------------- #
+# Table Attributes #
+# -------------------------- #
+
+attributes:
+ - name: "encoded_key"
+ type: "string"
+ primary-key: true
+ description: "The unique loan repayment encoded key."
+ # foreign-key-id: "loan-repayment-key"
+
+ - name: "due_date"
+ type: "date-time"
+ description: ""
+
+ - name: "fees_due"
+ type: "string"
+ description: ""
+
+ - name: "fees_paid"
+ type: "string"
+ description: ""
+
+ - name: "interest_due"
+ type: "string"
+ description: ""
+
+ - name: "interest_paid"
+ type: "string"
+ description: ""
+
+ - name: "parent_account_key"
+ type: "string"
+ description: ""
+
+ - name: "penalty_due"
+ type: "string"
+ description: ""
+
+ - name: "penalty_paid"
+ type: "string"
+ description: ""
+
+ - name: "principal_due"
+ type: "string"
+ description: ""
+
+ - name: "principal_paid"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+ - name: "tax_fees_due"
+ type: "string"
+ description: ""
+
+ - name: "tax_fees_paid"
+ type: "string"
+ description: ""
+
+ - name: "tax_interest_due"
+ type: "string"
+ description: ""
+
+ - name: "tax_interest_paid"
+ type: "string"
+ description: ""
+
+ - name: "tax_penalty_due"
+ type: "string"
+ description: ""
+
+ - name: "tax_penalty_paid"
+ type: "string"
+ description: ""
+---
\ No newline at end of file
diff --git a/_integration-schemas/mambu/v2/loan_transactions.md b/archive/_integration-schemas/mambu/v2/loan_transactions.md
similarity index 100%
rename from _integration-schemas/mambu/v2/loan_transactions.md
rename to archive/_integration-schemas/mambu/v2/loan_transactions.md
diff --git a/_integration-schemas/mambu/v2/tasks.md b/archive/_integration-schemas/mambu/v2/tasks.md
similarity index 100%
rename from _integration-schemas/mambu/v2/tasks.md
rename to archive/_integration-schemas/mambu/v2/tasks.md
diff --git a/_integration-schemas/mambu/v2/users.md b/archive/_integration-schemas/mambu/v2/users.md
similarity index 100%
rename from _integration-schemas/mambu/v2/users.md
rename to archive/_integration-schemas/mambu/v2/users.md
diff --git a/_integration-schemas/mambu/v4/activities.md b/archive/_integration-schemas/mambu/v4/activities.md
similarity index 100%
rename from _integration-schemas/mambu/v4/activities.md
rename to archive/_integration-schemas/mambu/v4/activities.md
diff --git a/_integration-schemas/mambu/v4/audit_trail.md b/archive/_integration-schemas/mambu/v4/audit_trail.md
similarity index 100%
rename from _integration-schemas/mambu/v4/audit_trail.md
rename to archive/_integration-schemas/mambu/v4/audit_trail.md
diff --git a/_integration-schemas/mambu/v4/branches.md b/archive/_integration-schemas/mambu/v4/branches.md
similarity index 100%
rename from _integration-schemas/mambu/v4/branches.md
rename to archive/_integration-schemas/mambu/v4/branches.md
diff --git a/_integration-schemas/mambu/v4/cards.md b/archive/_integration-schemas/mambu/v4/cards.md
similarity index 100%
rename from _integration-schemas/mambu/v4/cards.md
rename to archive/_integration-schemas/mambu/v4/cards.md
diff --git a/_integration-schemas/mambu/v4/centres.md b/archive/_integration-schemas/mambu/v4/centres.md
similarity index 100%
rename from _integration-schemas/mambu/v4/centres.md
rename to archive/_integration-schemas/mambu/v4/centres.md
diff --git a/_integration-schemas/mambu/v4/clients.md b/archive/_integration-schemas/mambu/v4/clients.md
similarity index 100%
rename from _integration-schemas/mambu/v4/clients.md
rename to archive/_integration-schemas/mambu/v4/clients.md
diff --git a/_integration-schemas/mambu/v4/communications.md b/archive/_integration-schemas/mambu/v4/communications.md
similarity index 100%
rename from _integration-schemas/mambu/v4/communications.md
rename to archive/_integration-schemas/mambu/v4/communications.md
diff --git a/_integration-schemas/mambu/v4/credit_arrangements.md b/archive/_integration-schemas/mambu/v4/credit_arrangements.md
similarity index 100%
rename from _integration-schemas/mambu/v4/credit_arrangements.md
rename to archive/_integration-schemas/mambu/v4/credit_arrangements.md
diff --git a/_integration-schemas/mambu/v4/custom_field_sets.md b/archive/_integration-schemas/mambu/v4/custom_field_sets.md
similarity index 100%
rename from _integration-schemas/mambu/v4/custom_field_sets.md
rename to archive/_integration-schemas/mambu/v4/custom_field_sets.md
diff --git a/_integration-schemas/mambu/v4/deposit_accounts.md b/archive/_integration-schemas/mambu/v4/deposit_accounts.md
similarity index 100%
rename from _integration-schemas/mambu/v4/deposit_accounts.md
rename to archive/_integration-schemas/mambu/v4/deposit_accounts.md
diff --git a/_integration-schemas/mambu/v4/deposit_products.md b/archive/_integration-schemas/mambu/v4/deposit_products.md
similarity index 100%
rename from _integration-schemas/mambu/v4/deposit_products.md
rename to archive/_integration-schemas/mambu/v4/deposit_products.md
diff --git a/_integration-schemas/mambu/v4/deposit_transactions.md b/archive/_integration-schemas/mambu/v4/deposit_transactions.md
similarity index 100%
rename from _integration-schemas/mambu/v4/deposit_transactions.md
rename to archive/_integration-schemas/mambu/v4/deposit_transactions.md
diff --git a/_integration-schemas/mambu/v4/foreign-keys.md b/archive/_integration-schemas/mambu/v4/foreign-keys.md
similarity index 100%
rename from _integration-schemas/mambu/v4/foreign-keys.md
rename to archive/_integration-schemas/mambu/v4/foreign-keys.md
diff --git a/_integration-schemas/mambu/v4/gl_accounts.md b/archive/_integration-schemas/mambu/v4/gl_accounts.md
similarity index 100%
rename from _integration-schemas/mambu/v4/gl_accounts.md
rename to archive/_integration-schemas/mambu/v4/gl_accounts.md
diff --git a/_integration-schemas/mambu/v4/gl_journal_entries.md b/archive/_integration-schemas/mambu/v4/gl_journal_entries.md
similarity index 100%
rename from _integration-schemas/mambu/v4/gl_journal_entries.md
rename to archive/_integration-schemas/mambu/v4/gl_journal_entries.md
diff --git a/_integration-schemas/mambu/v4/groups.md b/archive/_integration-schemas/mambu/v4/groups.md
similarity index 100%
rename from _integration-schemas/mambu/v4/groups.md
rename to archive/_integration-schemas/mambu/v4/groups.md
diff --git a/_integration-schemas/mambu/v4/index_rate_sources.md b/archive/_integration-schemas/mambu/v4/index_rate_sources.md
similarity index 100%
rename from _integration-schemas/mambu/v4/index_rate_sources.md
rename to archive/_integration-schemas/mambu/v4/index_rate_sources.md
diff --git a/_integration-schemas/mambu/v4/installments.md b/archive/_integration-schemas/mambu/v4/installments.md
similarity index 100%
rename from _integration-schemas/mambu/v4/installments.md
rename to archive/_integration-schemas/mambu/v4/installments.md
diff --git a/_integration-schemas/mambu/v4/loan_accounts.md b/archive/_integration-schemas/mambu/v4/loan_accounts.md
similarity index 100%
rename from _integration-schemas/mambu/v4/loan_accounts.md
rename to archive/_integration-schemas/mambu/v4/loan_accounts.md
diff --git a/_integration-schemas/mambu/v4/loan_products.md b/archive/_integration-schemas/mambu/v4/loan_products.md
similarity index 100%
rename from _integration-schemas/mambu/v4/loan_products.md
rename to archive/_integration-schemas/mambu/v4/loan_products.md
diff --git a/_integration-schemas/mambu/v4/loan_repayments.md b/archive/_integration-schemas/mambu/v4/loan_repayments.md
similarity index 100%
rename from _integration-schemas/mambu/v4/loan_repayments.md
rename to archive/_integration-schemas/mambu/v4/loan_repayments.md
diff --git a/_integration-schemas/mambu/v4/loan_transactions.md b/archive/_integration-schemas/mambu/v4/loan_transactions.md
similarity index 100%
rename from _integration-schemas/mambu/v4/loan_transactions.md
rename to archive/_integration-schemas/mambu/v4/loan_transactions.md
diff --git a/_integration-schemas/mambu/v4/tasks.md b/archive/_integration-schemas/mambu/v4/tasks.md
similarity index 100%
rename from _integration-schemas/mambu/v4/tasks.md
rename to archive/_integration-schemas/mambu/v4/tasks.md
diff --git a/_integration-schemas/mambu/v4/users.md b/archive/_integration-schemas/mambu/v4/users.md
similarity index 100%
rename from _integration-schemas/mambu/v4/users.md
rename to archive/_integration-schemas/mambu/v4/users.md
diff --git a/_integration-schemas/marketo/activities.md b/archive/_integration-schemas/marketo/activities.md
similarity index 100%
rename from _integration-schemas/marketo/activities.md
rename to archive/_integration-schemas/marketo/activities.md
diff --git a/_integration-schemas/marketo/activity_types.md b/archive/_integration-schemas/marketo/activity_types.md
similarity index 100%
rename from _integration-schemas/marketo/activity_types.md
rename to archive/_integration-schemas/marketo/activity_types.md
diff --git a/archive/_integration-schemas/marketo/campaigns.md b/archive/_integration-schemas/marketo/campaigns.md
new file mode 100644
index 000000000..7f53d2528
--- /dev/null
+++ b/archive/_integration-schemas/marketo/campaigns.md
@@ -0,0 +1,60 @@
+---
+tap: "marketo"
+version: "2"
+
+name: "campaigns"
+
+singer-schema: https://github.com/singer-io/tap-marketo/blob/master/tap_marketo/schemas/campaigns.json
+description: |
+ The `{{ table.name }}` table contains info about the campaigns in your {{ integration.display_name }} account.
+
+replication-method: "Key-based Incremental"
+api-method:
+ name: "Get campaigns"
+ doc-link: http://developers.marketo.com/rest-api/endpoint-reference/lead-database-endpoint-reference/#!/Campaigns/getCampaignsUsingGET
+
+attributes:
+ - name: "id"
+ type: "integer"
+ primary-key: true
+ description: "The ID of the campaign."
+ # foreign-key-id: "campaign-id"
+
+ - name: "updatedAt"
+ type: "date-time"
+ replication-key: true
+ description: "The time the campaign was most recently updated."
+
+ - name: "createdAt"
+ type: "date-time"
+ description: "The time the campaign was created."
+
+ - name: "active"
+ type: "boolean"
+ description: "Indicates if the campaign is active. Applicable only to trigger campaigns."
+
+ - name: "description"
+ type: "string"
+ description: "The description of the Smart campaign."
+
+ - name: "name"
+ type: "string"
+ description: "The name of the Smart campaign."
+
+ - name: "programId"
+ type: "integer"
+ description: "The ID of the parent program, if applicable."
+ foreign-key-id: "program-id"
+
+ - name: "programName"
+ type: "string"
+ description: "The name of the parent program, if applicable."
+
+ - name: "type"
+ type: "string"
+ description: "The type of Smart campaign. Possible values are `batch` or `trigger`."
+
+ - name: "workspaceName"
+ type: "string"
+ description: "The name of the parent workspace, if applicable."
+---
\ No newline at end of file
diff --git a/_integration-schemas/marketo/foreign-keys.md b/archive/_integration-schemas/marketo/foreign-keys.md
similarity index 100%
rename from _integration-schemas/marketo/foreign-keys.md
rename to archive/_integration-schemas/marketo/foreign-keys.md
diff --git a/archive/_integration-schemas/marketo/leads.md b/archive/_integration-schemas/marketo/leads.md
new file mode 100644
index 000000000..d590dc093
--- /dev/null
+++ b/archive/_integration-schemas/marketo/leads.md
@@ -0,0 +1,64 @@
+---
+tap: "marketo"
+version: "2"
+
+name: "leads"
+doc-link: http://developers.marketo.com/rest-api/endpoint-reference/lead-database-endpoint-reference/#!/Leads/getLeadsByFilterUsingGET
+
+description: |
+ The `{{ table.name }}` table contains info about your {{ integration.display_name }} leads.
+
+ Stitch replicates leads from {{ integration.display_name }} using the Bulk API. The Replication Key for this table varies depending on your {{ integration.display_name }} account setup:
+
+ - **If updatedAt filtering is enabled**, this table will use `updatedAt` as the Replication Key
+ - **If updatedAt filtering isn't enabled,** this table will use `createdAt` as the Replication Key. Additionally, data will be loaded using [Append-Only loading]({{ link.destinations.storage.loading-behavior | prepend: site.baseurl }}).
+
+ [Read more about replicating this table](#leads-replication).
+
+replication-method: "Key-based Incremental"
+replication-key:
+ name: "updatedAt or createdAt"
+
+api-method:
+ name: "Get leads"
+ doc-link: "http://developers.marketo.com/rest-api/endpoint-reference/lead-database-endpoint-reference/#!/Leads/getLeadsByFilterUsingGET"
+
+attributes:
+ - name: "id"
+ type: "integer"
+ primary-key: true
+ description: "The ID of the lead."
+ foreign-key-id: "lead-id"
+
+ - name: "acquiredBy"
+ type: "boolean"
+ description: "Indicates if the lead was acquired by the parent program."
+
+ - name: "isExhausted"
+ type: "boolean"
+ description: "Indicates if the lead is currently exhausted in the stream, if applicable."
+
+ - name: "membershipDate"
+ type: "date"
+ description: "The date the lead first became a member of the program."
+
+ - name: "nurtureCadence"
+ type: "string"
+ description: "Cadence of the parent stream, if applicable."
+
+ - name: "progressionStatus"
+ type: "string"
+ description: "The program status of the lead in the parent program."
+
+ - name: "reachedSuccess"
+ type: "boolean"
+ description: "Indicates if the the lead is in a success-status in the parent program."
+
+ - name: "reachedSuccessDate"
+ type: "string"
+ description: "The date the lead reached success in the parent program."
+
+ - name: "stream"
+ type: "string"
+ description: "The stream that the lead is a member of, if the parent program is an engagement program."
+---
\ No newline at end of file
diff --git a/_integration-schemas/marketo/lists.md b/archive/_integration-schemas/marketo/lists.md
similarity index 100%
rename from _integration-schemas/marketo/lists.md
rename to archive/_integration-schemas/marketo/lists.md
diff --git a/_integration-schemas/marketo/programs.md b/archive/_integration-schemas/marketo/programs.md
similarity index 100%
rename from _integration-schemas/marketo/programs.md
rename to archive/_integration-schemas/marketo/programs.md
diff --git a/_integration-schemas/marketo/v1/activities.md b/archive/_integration-schemas/marketo/v1/activities.md
similarity index 100%
rename from _integration-schemas/marketo/v1/activities.md
rename to archive/_integration-schemas/marketo/v1/activities.md
diff --git a/_integration-schemas/marketo/v1/activity_types.md b/archive/_integration-schemas/marketo/v1/activity_types.md
similarity index 100%
rename from _integration-schemas/marketo/v1/activity_types.md
rename to archive/_integration-schemas/marketo/v1/activity_types.md
diff --git a/archive/_integration-schemas/marketo/v1/leads.md b/archive/_integration-schemas/marketo/v1/leads.md
new file mode 100644
index 000000000..bc68222e2
--- /dev/null
+++ b/archive/_integration-schemas/marketo/v1/leads.md
@@ -0,0 +1,53 @@
+---
+tap: "marketo"
+version: "1"
+
+name: "leads"
+doc-link: http://developers.marketo.com/rest-api/endpoint-reference/lead-database-endpoint-reference/#!/Leads/getLeadsByFilterUsingGET
+
+description: |
+ The `leads` table contains info about your {{ integration.display_name }} leads.
+
+replication-method: "Incremental"
+api-method:
+ name: "getLeads"
+ doc-link: "http://developers.marketo.com/rest-api/endpoint-reference/lead-database-endpoint-reference/#!/Leads/getLeadsByFilterUsingGET"
+
+attributes:
+ - name: "id"
+ type: "integer"
+ primary-key: true
+ description: "The ID of the lead."
+
+ - name: "acquiredBy"
+ type: "boolean"
+ description: "Indicates if the lead was acquired by the parent program."
+
+ - name: "isExhausted"
+ type: "boolean"
+ description: "Indicates if the lead is currently exhausted in the stream, if applicable."
+
+ - name: "membershipDate"
+ type: "date"
+ description: "The date the lead first became a member of the program."
+
+ - name: "nurtureCadence"
+ type: "string"
+ description: "Cadence of the parent stream, if applicable."
+
+ - name: "progressionStatus"
+ type: "string"
+ description: "The program status of the lead in the parent program."
+
+ - name: "reachedSuccess"
+ type: "boolean"
+ description: "Indicates if the the lead is in a success-status in the parent program."
+
+ - name: "reachedSuccessDate"
+ type: "string"
+ description: "The date the lead reached success in the parent program."
+
+ - name: "stream"
+ type: "string"
+ description: "The stream that the lead is a member of, if the parent program is an engagement program."
+---
\ No newline at end of file
diff --git a/_integration-schemas/marketo/v1/lists.md b/archive/_integration-schemas/marketo/v1/lists.md
similarity index 100%
rename from _integration-schemas/marketo/v1/lists.md
rename to archive/_integration-schemas/marketo/v1/lists.md
diff --git a/_integration-schemas/mixpanel/v1/annotations.md b/archive/_integration-schemas/mixpanel/v1/annotations.md
similarity index 100%
rename from _integration-schemas/mixpanel/v1/annotations.md
rename to archive/_integration-schemas/mixpanel/v1/annotations.md
diff --git a/_integration-schemas/mixpanel/v1/cohort_members.md b/archive/_integration-schemas/mixpanel/v1/cohort_members.md
similarity index 100%
rename from _integration-schemas/mixpanel/v1/cohort_members.md
rename to archive/_integration-schemas/mixpanel/v1/cohort_members.md
diff --git a/_integration-schemas/mixpanel/v1/cohorts.md b/archive/_integration-schemas/mixpanel/v1/cohorts.md
similarity index 100%
rename from _integration-schemas/mixpanel/v1/cohorts.md
rename to archive/_integration-schemas/mixpanel/v1/cohorts.md
diff --git a/_integration-schemas/mixpanel/v1/engage.md b/archive/_integration-schemas/mixpanel/v1/engage.md
similarity index 100%
rename from _integration-schemas/mixpanel/v1/engage.md
rename to archive/_integration-schemas/mixpanel/v1/engage.md
diff --git a/archive/_integration-schemas/mixpanel/v1/export.md b/archive/_integration-schemas/mixpanel/v1/export.md
new file mode 100644
index 000000000..e285dd368
--- /dev/null
+++ b/archive/_integration-schemas/mixpanel/v1/export.md
@@ -0,0 +1,91 @@
+---
+tap: "mixpanel"
+version: "1"
+key: "export"
+
+name: "export"
+doc-link: "https://developer.mixpanel.com/docs/exporting-raw-data#section-export-api-reference"
+singer-schema: "https://github.com/singer-io/tap-mixpanel/blob/master/tap_mixpanel/schemas/export.json"
+description: |
+ The `{{ table.name }}` table contains "raw data dumps" of tracked events. The API endpoint for EU region servers will return a `200 terminated early` error code.
+
+ #### Table schema {#export-events-table-schema}
+
+ The schema for this table is dynamic, meaning that the columns Stitch detects are dependent upon the properties provided upon upload in {{ integration.display_name }}. For every property available in {{ integration.display_name }} for `{{ table.name }}` records, Stitch will display a column in the integration's **Tables to Replicate** tab.
+
+ #### Replication with attribution window {#export-events-attribution-window}
+
+ This table is replicated using the **Attribution Window** value defined in the integration's settings page. Refer to the [Replication section](#attribution-windows-extraction) for more info.
+
+ #### Distinct events and loading behavior {#export-events-loading-behavior}
+
+ As Stitch doesn't use a Primary Key for this table, data will be loaded using [Append-Only loading]({{ link.destinations.storage.loading-behavior | prepend: site.baseurl }}). This means you may see duplicate records in your destination, which requires a querying strategy that selects the latest version of each record.
+
+ Stitch takes this approach because it's possible to track events without a `distinct_id`. In {{ integration.display_name }}, `distinct_id` [is used to identify a unique user](https://help.mixpanel.com/hc/en-us/articles/115004509406-Distinct-IDs-){:target="new"}:
+
+ > Mixpanel’s client-side tracking libraries automatically assign a distinct_id to a user when they first visit a website or an application that has Mixpanel installed. Distinct_id should not contain any special characters such as forward slashes, as it will break the URL.
+ > Distinct_ids can and often should be sent in server-side implementations as well.
+
+ In order for Stitch to replicate records' `distinct_id` attributes, your server-side {{ integration.display_name }} implementation must send them with tracked events. If the server-side implementation doesn't do this, this attribute will be `null`.
+
+ Previous versions of Stitch's {{ integration.display_name }} integration used `distinct_id` as part of a composite Primary Key for this table. However, due to the possibility of this attribute being `null`, Stitch no longer uses a Primary Key for this table, as `null` values in Primary Key columns will prevent successful Extraction.
+
+ When working with `exports` data in your destination, you'll need to use a querying strategy that accounts for the Append-Only loading used by this table. We recommend using the following columns to de-duplicate records, along with the approach outlined in the [Querying Append-Only tables guide]({{ link.replication.append-only-querying | prepend: site.baseurl }}):
+
+ - `distinct_id`
+ - `event`
+ - `time`
+
+replication-method: "Key-based Incremental"
+attribution-window: true
+
+loading-behavior: "Append-Only"
+
+api-method:
+ name: "Export raw data"
+ doc-link: "https://developer.mixpanel.com/docs/exporting-raw-data#section-export-api-reference"
+
+attributes:
+ - name: "time"
+ type: "date-time"
+ replication-key: true
+ description: |
+ The time the event occurred.
+
+ When analzying this table's data, we recommend using this column, `distinct_id`, and `event`, along with a [querying strategy for Append-Only tables]({{ link.replication.append-only-querying | prepend: site.baseurl }}) to de-duplicate records. Refer to the [table description](#export-events-loading-behavior) for more info.
+
+ - name: "distinct_id"
+ type: "string"
+ description: |
+ The user associated with the event.
+
+ When analzying this table's data, we recommend using this column, `event`, and `time`, along with a [querying strategy for Append-Only tables]({{ link.replication.append-only-querying | prepend: site.baseurl }}) to de-duplicate records. Refer to the [table description](#export-events-loading-behavior) for more info.
+
+ - name: "dataset"
+ type: "string"
+ description: ""
+
+ - name: "event"
+ type: "string"
+ description: |
+ The event. For example: `Viewed report`
+
+ When analzying this table's data, we recommend using this column, `distinct_id`, and `time`, along with a [querying strategy for Append-Only tables]({{ link.replication.append-only-querying | prepend: site.baseurl }}) to de-duplicate records. Refer to the [table description](#export-events-loading-behavior) for more info.
+
+ - name: "labels"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "value"
+ type: "string"
+ description: ""
+
+ - name: "sampling_factor"
+ type: "integer"
+ description: ""
+
+ - name: "OTHER_ATTRIBUTES"
+ type: "varies"
+ description: |
+ For every property available in {{ integration.display_name }} for `{{ table.name }}` records, Stitch will display a column in the integration's **Tables to Replicate** tab.
+---
\ No newline at end of file
diff --git a/_integration-schemas/mixpanel/v1/foreign-keys.md b/archive/_integration-schemas/mixpanel/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/mixpanel/v1/foreign-keys.md
rename to archive/_integration-schemas/mixpanel/v1/foreign-keys.md
diff --git a/_integration-schemas/mixpanel/v1/funnels.md b/archive/_integration-schemas/mixpanel/v1/funnels.md
similarity index 100%
rename from _integration-schemas/mixpanel/v1/funnels.md
rename to archive/_integration-schemas/mixpanel/v1/funnels.md
diff --git a/_integration-schemas/mixpanel/v1/revenue.md b/archive/_integration-schemas/mixpanel/v1/revenue.md
similarity index 100%
rename from _integration-schemas/mixpanel/v1/revenue.md
rename to archive/_integration-schemas/mixpanel/v1/revenue.md
diff --git a/_integration-schemas/ms-teams/v1/channel_members.md b/archive/_integration-schemas/ms-teams/v1/channel_members.md
similarity index 100%
rename from _integration-schemas/ms-teams/v1/channel_members.md
rename to archive/_integration-schemas/ms-teams/v1/channel_members.md
diff --git a/_integration-schemas/ms-teams/v1/channel_message_replies.md b/archive/_integration-schemas/ms-teams/v1/channel_message_replies.md
similarity index 100%
rename from _integration-schemas/ms-teams/v1/channel_message_replies.md
rename to archive/_integration-schemas/ms-teams/v1/channel_message_replies.md
diff --git a/_integration-schemas/ms-teams/v1/channel_messages.md b/archive/_integration-schemas/ms-teams/v1/channel_messages.md
similarity index 100%
rename from _integration-schemas/ms-teams/v1/channel_messages.md
rename to archive/_integration-schemas/ms-teams/v1/channel_messages.md
diff --git a/_integration-schemas/ms-teams/v1/channel_tabs.md b/archive/_integration-schemas/ms-teams/v1/channel_tabs.md
similarity index 100%
rename from _integration-schemas/ms-teams/v1/channel_tabs.md
rename to archive/_integration-schemas/ms-teams/v1/channel_tabs.md
diff --git a/_integration-schemas/ms-teams/v1/channels.md b/archive/_integration-schemas/ms-teams/v1/channels.md
similarity index 100%
rename from _integration-schemas/ms-teams/v1/channels.md
rename to archive/_integration-schemas/ms-teams/v1/channels.md
diff --git a/_integration-schemas/ms-teams/v1/conversation_posts.md b/archive/_integration-schemas/ms-teams/v1/conversation_posts.md
similarity index 100%
rename from _integration-schemas/ms-teams/v1/conversation_posts.md
rename to archive/_integration-schemas/ms-teams/v1/conversation_posts.md
diff --git a/_integration-schemas/ms-teams/v1/conversation_threads.md b/archive/_integration-schemas/ms-teams/v1/conversation_threads.md
similarity index 100%
rename from _integration-schemas/ms-teams/v1/conversation_threads.md
rename to archive/_integration-schemas/ms-teams/v1/conversation_threads.md
diff --git a/_integration-schemas/ms-teams/v1/conversations.md b/archive/_integration-schemas/ms-teams/v1/conversations.md
similarity index 100%
rename from _integration-schemas/ms-teams/v1/conversations.md
rename to archive/_integration-schemas/ms-teams/v1/conversations.md
diff --git a/_integration-schemas/ms-teams/v1/foreign-keys.md b/archive/_integration-schemas/ms-teams/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/ms-teams/v1/foreign-keys.md
rename to archive/_integration-schemas/ms-teams/v1/foreign-keys.md
diff --git a/_integration-schemas/ms-teams/v1/group_members.md b/archive/_integration-schemas/ms-teams/v1/group_members.md
similarity index 100%
rename from _integration-schemas/ms-teams/v1/group_members.md
rename to archive/_integration-schemas/ms-teams/v1/group_members.md
diff --git a/_integration-schemas/ms-teams/v1/group_owners.md b/archive/_integration-schemas/ms-teams/v1/group_owners.md
similarity index 100%
rename from _integration-schemas/ms-teams/v1/group_owners.md
rename to archive/_integration-schemas/ms-teams/v1/group_owners.md
diff --git a/_integration-schemas/ms-teams/v1/groups.md b/archive/_integration-schemas/ms-teams/v1/groups.md
similarity index 100%
rename from _integration-schemas/ms-teams/v1/groups.md
rename to archive/_integration-schemas/ms-teams/v1/groups.md
diff --git a/_integration-schemas/ms-teams/v1/team_device_usage_report.md b/archive/_integration-schemas/ms-teams/v1/team_device_usage_report.md
similarity index 100%
rename from _integration-schemas/ms-teams/v1/team_device_usage_report.md
rename to archive/_integration-schemas/ms-teams/v1/team_device_usage_report.md
diff --git a/_integration-schemas/ms-teams/v1/team_drives.md b/archive/_integration-schemas/ms-teams/v1/team_drives.md
similarity index 100%
rename from _integration-schemas/ms-teams/v1/team_drives.md
rename to archive/_integration-schemas/ms-teams/v1/team_drives.md
diff --git a/_integration-schemas/ms-teams/v1/users.md b/archive/_integration-schemas/ms-teams/v1/users.md
similarity index 100%
rename from _integration-schemas/ms-teams/v1/users.md
rename to archive/_integration-schemas/ms-teams/v1/users.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/account_activity.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/account_activity.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/account_activity.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/account_activity.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/account_period_activity.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/account_period_activity.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/account_period_activity.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/account_period_activity.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/account_period_activity_pe.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/account_period_activity_pe.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/account_period_activity_pe.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/account_period_activity_pe.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/account_subsidiary_map.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/account_subsidiary_map.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/account_subsidiary_map.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/account_subsidiary_map.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/accounting_books.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/accounting_books.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/accounting_books.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/accounting_books.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/accounting_periods.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/accounting_periods.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/accounting_periods.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/accounting_periods.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/accounts.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/accounts.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/accounts.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/accounts.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/activities.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/activities.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/activities.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/activities.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/address_book.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/address_book.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/address_book.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/address_book.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/addresses.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/addresses.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/addresses.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/addresses.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/amortization_sched_lines.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/amortization_sched_lines.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/amortization_sched_lines.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/amortization_sched_lines.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/amortization_schedules.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/amortization_schedules.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/amortization_schedules.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/amortization_schedules.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/bill_of_distributions.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/bill_of_distributions.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/bill_of_distributions.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/bill_of_distributions.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/bill_of_materials.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/bill_of_materials.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/bill_of_materials.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/bill_of_materials.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/billing_accounts.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/billing_accounts.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/billing_accounts.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/billing_accounts.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/billing_class_rates.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/billing_class_rates.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/billing_class_rates.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/billing_class_rates.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/billing_classes.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/billing_classes.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/billing_classes.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/billing_classes.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/billing_rate_cards.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/billing_rate_cards.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/billing_rate_cards.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/billing_rate_cards.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/billing_rate_cards_prices.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/billing_rate_cards_prices.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/billing_rate_cards_prices.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/billing_rate_cards_prices.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/billing_rate_cards_versions.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/billing_rate_cards_versions.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/billing_rate_cards_versions.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/billing_rate_cards_versions.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/billing_schedule.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/billing_schedule.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/billing_schedule.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/billing_schedule.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/billing_schedule_descriptions.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/billing_schedule_descriptions.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/billing_schedule_descriptions.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/billing_schedule_descriptions.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/billing_schedules.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/billing_schedules.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/billing_schedules.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/billing_schedules.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/billing_subscription_lines.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/billing_subscription_lines.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/billing_subscription_lines.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/billing_subscription_lines.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/billing_subscriptions.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/billing_subscriptions.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/billing_subscriptions.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/billing_subscriptions.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/bin_number.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/bin_number.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/bin_number.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/bin_number.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/bin_number_counts.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/bin_number_counts.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/bin_number_counts.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/bin_number_counts.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/bins.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/bins.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/bins.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/bins.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/bom_revision_components.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/bom_revision_components.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/bom_revision_components.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/bom_revision_components.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/bom_revisions.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/bom_revisions.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/bom_revisions.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/bom_revisions.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/budget.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/budget.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/budget.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/budget.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/budget_category.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/budget_category.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/budget_category.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/budget_category.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/calls.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/calls.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/calls.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/calls.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/campaign_audiences.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/campaign_audiences.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/campaign_audiences.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/campaign_audiences.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/campaign_categories.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/campaign_categories.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/campaign_categories.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/campaign_categories.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/campaign_families.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/campaign_families.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/campaign_families.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/campaign_families.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/campaign_search_engine.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/campaign_search_engine.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/campaign_search_engine.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/campaign_search_engine.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/campaign_subscription_statuses.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/campaign_subscription_statuses.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/campaign_subscription_statuses.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/campaign_subscription_statuses.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/campaign_subscriptions.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/campaign_subscriptions.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/campaign_subscriptions.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/campaign_subscriptions.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/campaign_verticals.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/campaign_verticals.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/campaign_verticals.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/campaign_verticals.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/campaignchannel.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/campaignchannel.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/campaignchannel.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/campaignchannel.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/campaignevent.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/campaignevent.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/campaignevent.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/campaignevent.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/campaignitem.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/campaignitem.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/campaignitem.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/campaignitem.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/campaignoffer.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/campaignoffer.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/campaignoffer.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/campaignoffer.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/campaignresponse.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/campaignresponse.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/campaignresponse.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/campaignresponse.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/campaignresponsehistory.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/campaignresponsehistory.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/campaignresponsehistory.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/campaignresponsehistory.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/campaigns.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/campaigns.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/campaigns.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/campaigns.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/case_origins.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/case_origins.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/case_origins.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/case_origins.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/case_stage_changes.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/case_stage_changes.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/case_stage_changes.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/case_stage_changes.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/case_types.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/case_types.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/case_types.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/case_types.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/caseescalationhistory.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/caseescalationhistory.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/caseescalationhistory.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/caseescalationhistory.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/caseissue.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/caseissue.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/caseissue.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/caseissue.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/caseorigin.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/caseorigin.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/caseorigin.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/caseorigin.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/casetype.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/casetype.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/casetype.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/casetype.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/charges.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/charges.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/charges.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/charges.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/classes.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/classes.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/classes.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/classes.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/commission_authorization_link.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/commission_authorization_link.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/commission_authorization_link.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/commission_authorization_link.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/commissionplan.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/commissionplan.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/commissionplan.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/commissionplan.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/commissionrate.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/commissionrate.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/commissionrate.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/commissionrate.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/commissionschedule.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/commissionschedule.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/commissionschedule.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/commissionschedule.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/companies.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/companies.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/companies.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/companies.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/company_status.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/company_status.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/company_status.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/company_status.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/companycontactmap.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/companycontactmap.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/companycontactmap.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/companycontactmap.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/competitor.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/competitor.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/competitor.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/competitor.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/competitoroppmap.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/competitoroppmap.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/competitoroppmap.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/competitoroppmap.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/components_per_routing_steps.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/components_per_routing_steps.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/components_per_routing_steps.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/components_per_routing_steps.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/consolidated_exchange_rates.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/consolidated_exchange_rates.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/consolidated_exchange_rates.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/consolidated_exchange_rates.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/contact_types.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/contact_types.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/contact_types.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/contact_types.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/contactrole.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/contactrole.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/contactrole.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/contactrole.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/contacts.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/contacts.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/contacts.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/contacts.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/countries.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/countries.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/countries.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/countries.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/coupon_codes.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/coupon_codes.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/coupon_codes.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/coupon_codes.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/crmgroup.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/crmgroup.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/crmgroup.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/crmgroup.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/crmgroupmap.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/crmgroupmap.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/crmgroupmap.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/crmgroupmap.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/crmtemplate.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/crmtemplate.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/crmtemplate.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/crmtemplate.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/currencies.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/currencies.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/currencies.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/currencies.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/currency_exchange_rate_types.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/currency_exchange_rate_types.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/currency_exchange_rate_types.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/currency_exchange_rate_types.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/currency_exchange_rates.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/currency_exchange_rates.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/currency_exchange_rates.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/currency_exchange_rates.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/currencyrates.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/currencyrates.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/currencyrates.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/currencyrates.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/customer_currencies.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/customer_currencies.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/customer_currencies.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/customer_currencies.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/customer_group_pricing.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/customer_group_pricing.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/customer_group_pricing.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/customer_group_pricing.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/customer_item_pricing.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/customer_item_pricing.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/customer_item_pricing.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/customer_item_pricing.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/customer_partner_sales_teams.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/customer_partner_sales_teams.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/customer_partner_sales_teams.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/customer_partner_sales_teams.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/customer_sales_teams.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/customer_sales_teams.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/customer_sales_teams.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/customer_sales_teams.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/customer_subsidiary_map.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/customer_subsidiary_map.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/customer_subsidiary_map.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/customer_subsidiary_map.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/customer_types.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/customer_types.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/customer_types.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/customer_types.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/customers.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/customers.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/customers.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/customers.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/deleted_records.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/deleted_records.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/deleted_records.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/deleted_records.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/departments.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/departments.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/departments.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/departments.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/distribution_categories.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/distribution_categories.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/distribution_categories.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/distribution_categories.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/distribution_networks.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/distribution_networks.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/distribution_networks.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/distribution_networks.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/employee_currency_map.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/employee_currency_map.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/employee_currency_map.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/employee_currency_map.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/employee_time.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/employee_time.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/employee_time.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/employee_time.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/employee_types.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/employee_types.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/employee_types.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/employee_types.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/employees.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/employees.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/employees.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/employees.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/entity.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/entity.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/entity.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/entity.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/entity_role_map.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/entity_role_map.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/entity_role_map.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/entity_role_map.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/entity_status.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/entity_status.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/entity_status.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/entity_status.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/entity_status_history.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/entity_status_history.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/entity_status_history.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/entity_status_history.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/entitycategory.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/entitycategory.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/entitycategory.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/entitycategory.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/entityeventmap.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/entityeventmap.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/entityeventmap.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/entityeventmap.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/entityterritorymap.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/entityterritorymap.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/entityterritorymap.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/entityterritorymap.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/eventattendees.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/eventattendees.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/eventattendees.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/eventattendees.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/events1.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/events1.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/events1.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/events1.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/expense_accounts.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/expense_accounts.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/expense_accounts.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/expense_accounts.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/expense_amortization_rules.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/expense_amortization_rules.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/expense_amortization_rules.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/expense_amortization_rules.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/expense_based_charge_rules.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/expense_based_charge_rules.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/expense_based_charge_rules.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/expense_based_charge_rules.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/expense_categories.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/expense_categories.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/expense_categories.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/expense_categories.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/expense_categories_rates.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/expense_categories_rates.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/expense_categories_rates.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/expense_categories_rates.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/expense_categories_subs_map.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/expense_categories_subs_map.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/expense_categories_subs_map.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/expense_categories_subs_map.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/expense_detail.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/expense_detail.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/expense_detail.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/expense_detail.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/expense_plan_lines.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/expense_plan_lines.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/expense_plan_lines.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/expense_plan_lines.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/expense_plans.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/expense_plans.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/expense_plans.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/expense_plans.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/fair_value_prices.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/fair_value_prices.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/fair_value_prices.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/fair_value_prices.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/fixed_fee_charge_rules.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/fixed_fee_charge_rules.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/fixed_fee_charge_rules.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/fixed_fee_charge_rules.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/foreign-keys.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/foreign-keys.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/foreign-keys.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/generic_resources.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/generic_resources.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/generic_resources.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/generic_resources.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/gift_certificates.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/gift_certificates.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/gift_certificates.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/gift_certificates.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/global_account_map.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/global_account_map.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/global_account_map.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/global_account_map.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/global_inventory_relationships.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/global_inventory_relationships.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/global_inventory_relationships.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/global_inventory_relationships.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/group_test_cell.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/group_test_cell.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/group_test_cell.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/group_test_cell.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/inbound_shipment_items.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/inbound_shipment_items.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/inbound_shipment_items.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/inbound_shipment_items.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/inbound_shipments.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/inbound_shipments.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/inbound_shipments.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/inbound_shipments.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/income_accounts.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/income_accounts.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/income_accounts.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/income_accounts.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/inventory_cost_template.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/inventory_cost_template.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/inventory_cost_template.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/inventory_cost_template.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/inventory_cost_template_items.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/inventory_cost_template_items.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/inventory_cost_template_items.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/inventory_cost_template_items.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/inventory_items.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/inventory_items.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/inventory_items.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/inventory_items.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/inventory_number.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/inventory_number.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/inventory_number.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/inventory_number.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/item_account_map.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/item_account_map.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/item_account_map.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/item_account_map.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/item_billing_rates.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/item_billing_rates.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/item_billing_rates.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/item_billing_rates.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/item_collection_item_map.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/item_collection_item_map.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/item_collection_item_map.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/item_collection_item_map.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/item_collections.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/item_collections.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/item_collections.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/item_collections.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/item_demand_plan_lines.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/item_demand_plan_lines.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/item_demand_plan_lines.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/item_demand_plan_lines.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/item_demand_plans.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/item_demand_plans.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/item_demand_plans.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/item_demand_plans.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/item_fulfillments.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/item_fulfillments.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/item_fulfillments.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/item_fulfillments.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/item_group.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/item_group.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/item_group.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/item_group.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/item_location_map.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/item_location_map.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/item_location_map.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/item_location_map.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/item_price_history.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/item_price_history.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/item_price_history.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/item_price_history.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/item_prices.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/item_prices.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/item_prices.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/item_prices.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/item_quantity.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/item_quantity.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/item_quantity.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/item_quantity.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/item_revisions.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/item_revisions.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/item_revisions.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/item_revisions.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/item_shipmethods.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/item_shipmethods.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/item_shipmethods.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/item_shipmethods.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/item_site_categories.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/item_site_categories.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/item_site_categories.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/item_site_categories.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/item_subsidiary_map.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/item_subsidiary_map.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/item_subsidiary_map.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/item_subsidiary_map.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/item_supply_plan_attributes.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/item_supply_plan_attributes.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/item_supply_plan_attributes.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/item_supply_plan_attributes.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/item_supply_plan_lines.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/item_supply_plan_lines.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/item_supply_plan_lines.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/item_supply_plan_lines.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/item_supply_plan_source.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/item_supply_plan_source.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/item_supply_plan_source.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/item_supply_plan_source.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/item_supply_plan_source_types.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/item_supply_plan_source_types.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/item_supply_plan_source_types.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/item_supply_plan_source_types.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/item_supply_plans.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/item_supply_plans.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/item_supply_plans.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/item_supply_plans.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/item_vendor_map.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/item_vendor_map.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/item_vendor_map.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/item_vendor_map.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/item_vendor_pricing.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/item_vendor_pricing.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/item_vendor_pricing.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/item_vendor_pricing.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/items.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/items.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/items.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/items.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/job_resource_role.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/job_resource_role.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/job_resource_role.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/job_resource_role.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/job_resources.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/job_resources.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/job_resources.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/job_resources.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/job_types.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/job_types.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/job_types.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/job_types.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/last_sales_activity_record.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/last_sales_activity_record.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/last_sales_activity_record.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/last_sales_activity_record.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/location_costing_groups.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/location_costing_groups.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/location_costing_groups.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/location_costing_groups.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/location_costing_grp_locations.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/location_costing_grp_locations.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/location_costing_grp_locations.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/location_costing_grp_locations.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/locations.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/locations.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/locations.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/locations.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/memorized_trans.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/memorized_trans.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/memorized_trans.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/memorized_trans.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/message.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/message.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/message.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/message.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/messagerecipient.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/messagerecipient.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/messagerecipient.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/messagerecipient.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/mfg_cost_template.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/mfg_cost_template.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/mfg_cost_template.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/mfg_cost_template.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/mfg_cost_template_items.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/mfg_cost_template_items.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/mfg_cost_template_items.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/mfg_cost_template_items.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/mfg_routing.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/mfg_routing.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/mfg_routing.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/mfg_routing.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/mfg_routing_steps.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/mfg_routing_steps.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/mfg_routing_steps.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/mfg_routing_steps.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/nexus.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/nexus.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/nexus.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/nexus.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/nlcompany.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/nlcompany.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/nlcompany.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/nlcompany.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/notes_system.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/notes_system.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/notes_system.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/notes_system.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/notes_system_custom.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/notes_system_custom.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/notes_system_custom.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/notes_system_custom.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/notes_user.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/notes_user.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/notes_user.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/notes_user.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/notetype.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/notetype.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/notetype.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/notetype.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/opportunities.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/opportunities.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/opportunities.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/opportunities.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/opportunity_lines.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/opportunity_lines.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/opportunity_lines.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/opportunity_lines.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/opportunitycontactmap.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/opportunitycontactmap.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/opportunitycontactmap.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/opportunitycontactmap.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/originating_leads.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/originating_leads.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/originating_leads.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/originating_leads.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/other_names.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/other_names.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/other_names.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/other_names.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/partner_sales_roles.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/partner_sales_roles.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/partner_sales_roles.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/partner_sales_roles.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/partner_types.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/partner_types.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/partner_types.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/partner_types.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/partners.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/partners.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/partners.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/partners.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/payment_methods.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/payment_methods.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/payment_methods.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/payment_methods.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/payment_terms.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/payment_terms.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/payment_terms.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/payment_terms.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/payroll_item_types.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/payroll_item_types.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/payroll_item_types.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/payroll_item_types.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/payroll_items.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/payroll_items.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/payroll_items.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/payroll_items.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/percent_complete_overrides.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/percent_complete_overrides.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/percent_complete_overrides.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/percent_complete_overrides.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/planassignmap.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/planassignmap.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/planassignmap.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/planassignmap.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/planned_standard_costs.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/planned_standard_costs.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/planned_standard_costs.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/planned_standard_costs.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/planschedulemap.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/planschedulemap.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/planschedulemap.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/planschedulemap.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/posting_account_activity.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/posting_account_activity.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/posting_account_activity.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/posting_account_activity.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/posting_account_activity_pe.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/posting_account_activity_pe.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/posting_account_activity_pe.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/posting_account_activity_pe.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/price_book_line_intervals.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/price_book_line_intervals.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/price_book_line_intervals.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/price_book_line_intervals.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/price_books.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/price_books.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/price_books.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/price_books.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/price_plans.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/price_plans.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/price_plans.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/price_plans.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/price_tiers.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/price_tiers.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/price_tiers.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/price_tiers.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/price_types.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/price_types.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/price_types.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/price_types.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/pricing_groups.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/pricing_groups.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/pricing_groups.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/pricing_groups.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/project_billing_budgets.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/project_billing_budgets.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/project_billing_budgets.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/project_billing_budgets.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/project_cost_budgets.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/project_cost_budgets.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/project_cost_budgets.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/project_cost_budgets.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/project_cost_categories.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/project_cost_categories.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/project_cost_categories.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/project_cost_categories.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/project_expense_types.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/project_expense_types.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/project_expense_types.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/project_expense_types.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/project_revenue_rl_plans.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/project_revenue_rl_plans.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/project_revenue_rl_plans.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/project_revenue_rl_plans.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/project_revenue_rls_charge_rls.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/project_revenue_rls_charge_rls.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/project_revenue_rls_charge_rls.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/project_revenue_rls_charge_rls.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/project_revenue_rules.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/project_revenue_rules.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/project_revenue_rules.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/project_revenue_rules.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/project_task_assignments.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/project_task_assignments.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/project_task_assignments.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/project_task_assignments.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/project_task_billing_budgets.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/project_task_billing_budgets.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/project_task_billing_budgets.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/project_task_billing_budgets.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/project_task_cost_budgets.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/project_task_cost_budgets.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/project_task_cost_budgets.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/project_task_cost_budgets.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/project_task_dependencies.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/project_task_dependencies.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/project_task_dependencies.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/project_task_dependencies.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/project_tasks.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/project_tasks.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/project_tasks.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/project_tasks.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/project_templates.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/project_templates.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/project_templates.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/project_templates.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/project_time_approval_types.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/project_time_approval_types.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/project_time_approval_types.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/project_time_approval_types.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/promotion_codes.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/promotion_codes.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/promotion_codes.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/promotion_codes.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/purchase_charge_rules.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/purchase_charge_rules.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/purchase_charge_rules.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/purchase_charge_rules.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/quota1.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/quota1.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/quota1.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/quota1.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/resource_allocations.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/resource_allocations.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/resource_allocations.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/resource_allocations.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/resource_group_entity_map.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/resource_group_entity_map.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/resource_group_entity_map.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/resource_group_entity_map.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/resource_groups.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/resource_groups.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/resource_groups.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/resource_groups.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/revaluation.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/revaluation.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/revaluation.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/revaluation.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/revenue_elements.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/revenue_elements.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/revenue_elements.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/revenue_elements.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/revenue_plan_lines.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/revenue_plan_lines.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/revenue_plan_lines.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/revenue_plan_lines.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/revenue_plan_version_lines.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/revenue_plan_version_lines.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/revenue_plan_version_lines.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/revenue_plan_version_lines.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/revenue_plan_versions.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/revenue_plan_versions.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/revenue_plan_versions.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/revenue_plan_versions.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/revenue_plans.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/revenue_plans.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/revenue_plans.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/revenue_plans.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/revenue_recognition_rules.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/revenue_recognition_rules.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/revenue_recognition_rules.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/revenue_recognition_rules.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/revrecschedulelines.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/revrecschedulelines.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/revrecschedulelines.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/revrecschedulelines.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/revrecschedules.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/revrecschedules.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/revrecschedules.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/revrecschedules.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/role_subsidiary_map.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/role_subsidiary_map.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/role_subsidiary_map.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/role_subsidiary_map.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/roles1.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/roles1.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/roles1.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/roles1.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/sales_reps.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/sales_reps.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/sales_reps.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/sales_reps.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/sales_roles.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/sales_roles.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/sales_roles.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/sales_roles.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/sales_territories.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/sales_territories.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/sales_territories.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/sales_territories.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/salesforecast.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/salesforecast.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/salesforecast.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/salesforecast.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/service_items.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/service_items.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/service_items.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/service_items.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/shipment_packages.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/shipment_packages.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/shipment_packages.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/shipment_packages.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/shipping_items.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/shipping_items.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/shipping_items.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/shipping_items.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/solution.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/solution.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/solution.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/solution.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/solutioncasemap.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/solutioncasemap.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/solutioncasemap.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/solutioncasemap.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/solutiontopicmap.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/solutiontopicmap.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/solutiontopicmap.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/solutiontopicmap.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/standard_cost_components.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/standard_cost_components.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/standard_cost_components.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/standard_cost_components.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/states.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/states.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/states.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/states.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/subscript_line_price_intervals.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/subscript_line_price_intervals.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/subscript_line_price_intervals.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/subscript_line_price_intervals.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/subscription_change_orders.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/subscription_change_orders.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/subscription_change_orders.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/subscription_change_orders.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/subscription_co_lines.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/subscription_co_lines.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/subscription_co_lines.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/subscription_co_lines.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/subscription_line_revisions.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/subscription_line_revisions.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/subscription_line_revisions.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/subscription_line_revisions.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/subscription_plan_lines.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/subscription_plan_lines.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/subscription_plan_lines.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/subscription_plan_lines.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/subscription_plans.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/subscription_plans.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/subscription_plans.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/subscription_plans.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/subscription_terms.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/subscription_terms.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/subscription_terms.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/subscription_terms.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/subsidiaries.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/subsidiaries.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/subsidiaries.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/subsidiaries.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/subsidiary_book_map.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/subsidiary_book_map.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/subsidiary_book_map.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/subsidiary_book_map.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/subsidiary_class_map.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/subsidiary_class_map.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/subsidiary_class_map.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/subsidiary_class_map.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/subsidiary_department_map.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/subsidiary_department_map.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/subsidiary_department_map.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/subsidiary_department_map.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/subsidiary_location_map.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/subsidiary_location_map.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/subsidiary_location_map.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/subsidiary_location_map.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/subsidiary_nexus_map.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/subsidiary_nexus_map.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/subsidiary_nexus_map.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/subsidiary_nexus_map.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/supplier_categories.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/supplier_categories.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/supplier_categories.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/supplier_categories.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/support_incidents.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/support_incidents.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/support_incidents.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/support_incidents.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/support_reps.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/support_reps.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/support_reps.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/support_reps.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/support_territories.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/support_territories.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/support_territories.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/support_territories.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/supportcasehistory.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/supportcasehistory.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/supportcasehistory.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/supportcasehistory.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/system_notes.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/system_notes.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/system_notes.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/system_notes.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/system_notes_custom.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/system_notes_custom.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/system_notes_custom.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/system_notes_custom.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/task_contacts.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/task_contacts.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/task_contacts.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/task_contacts.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/tasks.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/tasks.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/tasks.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/tasks.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/tax_items.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/tax_items.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/tax_items.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/tax_items.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/territory.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/territory.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/territory.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/territory.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/time_based_charge_rules.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/time_based_charge_rules.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/time_based_charge_rules.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/time_based_charge_rules.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/timesheet.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/timesheet.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/timesheet.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/timesheet.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/topic.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/topic.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/topic.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/topic.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/trans_partner_sales_teams.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/trans_partner_sales_teams.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/trans_partner_sales_teams.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/trans_partner_sales_teams.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/transaction_address.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/transaction_address.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/transaction_address.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/transaction_address.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/transaction_bin_numbers.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/transaction_bin_numbers.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/transaction_bin_numbers.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/transaction_bin_numbers.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/transaction_book_map.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/transaction_book_map.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/transaction_book_map.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/transaction_book_map.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/transaction_cost_components.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/transaction_cost_components.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/transaction_cost_components.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/transaction_cost_components.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/transaction_history.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/transaction_history.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/transaction_history.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/transaction_history.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/transaction_inventory_numbers.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/transaction_inventory_numbers.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/transaction_inventory_numbers.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/transaction_inventory_numbers.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/transaction_line_book_map.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/transaction_line_book_map.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/transaction_line_book_map.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/transaction_line_book_map.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/transaction_lines.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/transaction_lines.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/transaction_lines.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/transaction_lines.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/transaction_links.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/transaction_links.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/transaction_links.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/transaction_links.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/transaction_sales_teams.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/transaction_sales_teams.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/transaction_sales_teams.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/transaction_sales_teams.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/transaction_shipping_groups.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/transaction_shipping_groups.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/transaction_shipping_groups.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/transaction_shipping_groups.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/transaction_tax_detail.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/transaction_tax_detail.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/transaction_tax_detail.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/transaction_tax_detail.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/transaction_tracking_numbers.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/transaction_tracking_numbers.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/transaction_tracking_numbers.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/transaction_tracking_numbers.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/transactions.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/transactions.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/transactions.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/transactions.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/units_type.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/units_type.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/units_type.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/units_type.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/unlocked_time_periods.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/unlocked_time_periods.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/unlocked_time_periods.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/unlocked_time_periods.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/uom.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/uom.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/uom.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/uom.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/usages.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/usages.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/usages.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/usages.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/vendor_currencies.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/vendor_currencies.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/vendor_currencies.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/vendor_currencies.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/vendor_subsidiary_map.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/vendor_subsidiary_map.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/vendor_subsidiary_map.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/vendor_subsidiary_map.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/vendor_types.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/vendor_types.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/vendor_types.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/vendor_types.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/vendors.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/vendors.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/vendors.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/vendors.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/winlossreason.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/winlossreason.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/winlossreason.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/winlossreason.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/work_calendar_holidays.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/work_calendar_holidays.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/work_calendar_holidays.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/work_calendar_holidays.md
diff --git a/_integration-schemas/netsuite-suite-analytics/v1/work_calendars.md b/archive/_integration-schemas/netsuite-suite-analytics/v1/work_calendars.md
similarity index 100%
rename from _integration-schemas/netsuite-suite-analytics/v1/work_calendars.md
rename to archive/_integration-schemas/netsuite-suite-analytics/v1/work_calendars.md
diff --git a/_integration-schemas/netsuite/v1/Account.md b/archive/_integration-schemas/netsuite/v1/Account.md
similarity index 97%
rename from _integration-schemas/netsuite/v1/Account.md
rename to archive/_integration-schemas/netsuite/v1/Account.md
index 8f16156fc..2cf6c2a24 100644
--- a/_integration-schemas/netsuite/v1/Account.md
+++ b/archive/_integration-schemas/netsuite/v1/Account.md
@@ -4,7 +4,7 @@ version: "1"
name: "Account"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/account.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Account.json"
+
description: |
The `{{ table.name }}` table contains info about the accounts in the Chart of Accounts in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/AccountingPeriod.md b/archive/_integration-schemas/netsuite/v1/AccountingPeriod.md
similarity index 94%
rename from _integration-schemas/netsuite/v1/AccountingPeriod.md
rename to archive/_integration-schemas/netsuite/v1/AccountingPeriod.md
index a92c58927..1dcc89f34 100644
--- a/_integration-schemas/netsuite/v1/AccountingPeriod.md
+++ b/archive/_integration-schemas/netsuite/v1/AccountingPeriod.md
@@ -4,7 +4,7 @@ version: "1"
name: "AccountingPeriod"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/accountingperiod.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/AccountingPeriod.json"
+
description: |
The `{{ table.name }}` table contains info about the accounting periods in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/Address.md b/archive/_integration-schemas/netsuite/v1/Address.md
similarity index 94%
rename from _integration-schemas/netsuite/v1/Address.md
rename to archive/_integration-schemas/netsuite/v1/Address.md
index ed55dbd7e..151198f33 100644
--- a/_integration-schemas/netsuite/v1/Address.md
+++ b/archive/_integration-schemas/netsuite/v1/Address.md
@@ -4,7 +4,7 @@ version: "1"
name: "Address"
doc-link: ""
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Address.json"
+
description: |
The `{{ table.name }}` table contains info about the custom address forms in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/BillingAccount.md b/archive/_integration-schemas/netsuite/v1/BillingAccount.md
similarity index 95%
rename from _integration-schemas/netsuite/v1/BillingAccount.md
rename to archive/_integration-schemas/netsuite/v1/BillingAccount.md
index 855b1cd7f..c2395dbbe 100644
--- a/_integration-schemas/netsuite/v1/BillingAccount.md
+++ b/archive/_integration-schemas/netsuite/v1/BillingAccount.md
@@ -4,7 +4,7 @@ version: "1"
name: "BillingAccount"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/billingaccount.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/BillingAccount.json"
+
description: |
The `{{ table.name }}` table contains info about the billing accounts in your {{ integration.display_name }} account. A billing account is a record used to show all billing information for a customer or subcustomer. A billing account contains billing-specific information, including billing schedule, default payment terms, bill-to address, and currency.
diff --git a/_integration-schemas/netsuite/v1/BillingSchedule.md b/archive/_integration-schemas/netsuite/v1/BillingSchedule.md
similarity index 96%
rename from _integration-schemas/netsuite/v1/BillingSchedule.md
rename to archive/_integration-schemas/netsuite/v1/BillingSchedule.md
index d7177f9ae..eed01cc69 100644
--- a/_integration-schemas/netsuite/v1/BillingSchedule.md
+++ b/archive/_integration-schemas/netsuite/v1/BillingSchedule.md
@@ -4,7 +4,7 @@ version: "1"
name: "BillingSchedule"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/billingschedule.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/BillingSchedule.json"
+
description: |
The `{{ table.name }}` table contains info about the billing schedules in your {{ integration.display_name }} account. Billing schedules are used to define how bills for transactions are relayed to customers. In general, a billing schedule determines the frequency with which the customer is billed and the amount of each bill. However, the exact effect of a billing schedule varies depending on its type.
diff --git a/_integration-schemas/netsuite/v1/Bin.md b/archive/_integration-schemas/netsuite/v1/Bin.md
similarity index 91%
rename from _integration-schemas/netsuite/v1/Bin.md
rename to archive/_integration-schemas/netsuite/v1/Bin.md
index e5dda4c2f..f4d4fcfdf 100644
--- a/_integration-schemas/netsuite/v1/Bin.md
+++ b/archive/_integration-schemas/netsuite/v1/Bin.md
@@ -4,7 +4,7 @@ version: "1"
name: "Bin"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/bin.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Bin.json"
+
description: |
The `{{ table.name }}` table contains info about bins, or places in your warehouse where you store inventory items.
diff --git a/_integration-schemas/netsuite/v1/Budget.md b/archive/_integration-schemas/netsuite/v1/Budget.md
similarity index 97%
rename from _integration-schemas/netsuite/v1/Budget.md
rename to archive/_integration-schemas/netsuite/v1/Budget.md
index 0c3c6b09c..dec7a1067 100644
--- a/_integration-schemas/netsuite/v1/Budget.md
+++ b/archive/_integration-schemas/netsuite/v1/Budget.md
@@ -4,7 +4,7 @@ version: "1"
name: "Budget"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/budget.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Budget.json"
+
description: |
The `{{ table.name }}` table contains info about the budgets in your {{ integration.display_name }} account. A budget records the expected values of income and expenses for your business. Budgets can be created for specific customers, items, departments, classes, locations, or any combination of these criteria.
diff --git a/_integration-schemas/netsuite/v1/CalendarEvent.md b/archive/_integration-schemas/netsuite/v1/CalendarEvent.md
similarity index 96%
rename from _integration-schemas/netsuite/v1/CalendarEvent.md
rename to archive/_integration-schemas/netsuite/v1/CalendarEvent.md
index 8f4b1be0f..ef19ba90e 100644
--- a/_integration-schemas/netsuite/v1/CalendarEvent.md
+++ b/archive/_integration-schemas/netsuite/v1/CalendarEvent.md
@@ -4,7 +4,7 @@ version: "1"
name: "CalendarEvent"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/calendarevent.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/CalendarEvent.json"
+
description: |
The `{{ table.name }}` table contains info about the scheduled activities, or events, that are on the calendar in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/Classification.md b/archive/_integration-schemas/netsuite/v1/Classification.md
similarity index 92%
rename from _integration-schemas/netsuite/v1/Classification.md
rename to archive/_integration-schemas/netsuite/v1/Classification.md
index 391a54d96..23e80843c 100644
--- a/_integration-schemas/netsuite/v1/Classification.md
+++ b/archive/_integration-schemas/netsuite/v1/Classification.md
@@ -4,7 +4,7 @@ version: "1"
name: "Classification"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/classification.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Classification.json"
+
description: |
The `{{ table.name }}` table contains info about the classifications in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/ConsolidatedExchangeRate.md b/archive/_integration-schemas/netsuite/v1/ConsolidatedExchangeRate.md
similarity index 93%
rename from _integration-schemas/netsuite/v1/ConsolidatedExchangeRate.md
rename to archive/_integration-schemas/netsuite/v1/ConsolidatedExchangeRate.md
index 4944aa36d..1d7791753 100644
--- a/_integration-schemas/netsuite/v1/ConsolidatedExchangeRate.md
+++ b/archive/_integration-schemas/netsuite/v1/ConsolidatedExchangeRate.md
@@ -4,7 +4,7 @@ version: "1"
name: "ConsolidatedExchangeRate"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/consolidatedexchangerate.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/ConsolidatedExchangeRate.json"
+
description: |
The `{{ table.name }}` table contains info about consolidated exchange rates. This is used in {{ integration.display_name }} OneWorld for consolidation purposes, ensuring currency amounts correctly roll up from child to parent subsidiaries.
diff --git a/_integration-schemas/netsuite/v1/ContactCategory.md b/archive/_integration-schemas/netsuite/v1/ContactCategory.md
similarity index 90%
rename from _integration-schemas/netsuite/v1/ContactCategory.md
rename to archive/_integration-schemas/netsuite/v1/ContactCategory.md
index c11f4f7b1..b2dc6d58d 100644
--- a/_integration-schemas/netsuite/v1/ContactCategory.md
+++ b/archive/_integration-schemas/netsuite/v1/ContactCategory.md
@@ -4,7 +4,7 @@ version: "1"
name: "ContactCategory"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/contactcategory.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/ContactCategory.json"
+
description: |
The `{{ table.name }}` table contains info about the types of contacts in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/ContactRole.md b/archive/_integration-schemas/netsuite/v1/ContactRole.md
similarity index 89%
rename from _integration-schemas/netsuite/v1/ContactRole.md
rename to archive/_integration-schemas/netsuite/v1/ContactRole.md
index 927c62e0f..c3a71aebf 100644
--- a/_integration-schemas/netsuite/v1/ContactRole.md
+++ b/archive/_integration-schemas/netsuite/v1/ContactRole.md
@@ -4,7 +4,7 @@ version: "1"
name: "ContactRole"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/contactrole.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/ContactRole.json"
+
description: |
The `{{ table.name }}` table contains info about contact roles in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/CostCategory.md b/archive/_integration-schemas/netsuite/v1/CostCategory.md
similarity index 90%
rename from _integration-schemas/netsuite/v1/CostCategory.md
rename to archive/_integration-schemas/netsuite/v1/CostCategory.md
index 685383133..2fbe41a7a 100644
--- a/_integration-schemas/netsuite/v1/CostCategory.md
+++ b/archive/_integration-schemas/netsuite/v1/CostCategory.md
@@ -4,7 +4,7 @@ version: "1"
name: "CostCategory"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/costcategory.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/CostCategory.json"
+
description: |
The `{{ table.name }}` table contains info about cost categories, which are used to classify different types of costs associated with items.
diff --git a/_integration-schemas/netsuite/v1/CouponCode.md b/archive/_integration-schemas/netsuite/v1/CouponCode.md
similarity index 91%
rename from _integration-schemas/netsuite/v1/CouponCode.md
rename to archive/_integration-schemas/netsuite/v1/CouponCode.md
index 8203774c0..1b75f899c 100644
--- a/_integration-schemas/netsuite/v1/CouponCode.md
+++ b/archive/_integration-schemas/netsuite/v1/CouponCode.md
@@ -4,7 +4,7 @@ version: "1"
name: "CouponCode"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/couponcode.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/CouponCode.json"
+
description: |
The `{{ table.name }}` table contains info about the coupon codes in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/CurrencyRate.md b/archive/_integration-schemas/netsuite/v1/CurrencyRate.md
similarity index 90%
rename from _integration-schemas/netsuite/v1/CurrencyRate.md
rename to archive/_integration-schemas/netsuite/v1/CurrencyRate.md
index 8479d6a48..4f7f73ad3 100644
--- a/_integration-schemas/netsuite/v1/CurrencyRate.md
+++ b/archive/_integration-schemas/netsuite/v1/CurrencyRate.md
@@ -4,7 +4,7 @@ version: "1"
name: "CurrencyRate"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/currencyrate.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/CurrencyRate.json"
+
description: |
The `{{ table.name }}` table contains info about currency rate records in you {{ integration.display_name }} account. These are also known as Exchange Rate records in {{ integration.display_name }}.
diff --git a/_integration-schemas/netsuite/v1/CustomList.md b/archive/_integration-schemas/netsuite/v1/CustomList.md
similarity index 92%
rename from _integration-schemas/netsuite/v1/CustomList.md
rename to archive/_integration-schemas/netsuite/v1/CustomList.md
index c2ebff7b4..fd10796dd 100644
--- a/_integration-schemas/netsuite/v1/CustomList.md
+++ b/archive/_integration-schemas/netsuite/v1/CustomList.md
@@ -4,7 +4,7 @@ version: "1"
name: "CustomList"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/customlist.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/CustomList.json"
+
description: |
The `{{ table.name }}` table contains info about
diff --git a/_integration-schemas/netsuite/v1/Customer.md b/archive/_integration-schemas/netsuite/v1/Customer.md
similarity index 99%
rename from _integration-schemas/netsuite/v1/Customer.md
rename to archive/_integration-schemas/netsuite/v1/Customer.md
index befb8f83c..d77f1da48 100644
--- a/_integration-schemas/netsuite/v1/Customer.md
+++ b/archive/_integration-schemas/netsuite/v1/Customer.md
@@ -4,7 +4,7 @@ version: "1"
name: "Customer"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/customer.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Customer.json"
+
description: |
The `{{ table.name }}` table contains info about customers.
diff --git a/_integration-schemas/netsuite/v1/CustomerCategory.md b/archive/_integration-schemas/netsuite/v1/CustomerCategory.md
similarity index 88%
rename from _integration-schemas/netsuite/v1/CustomerCategory.md
rename to archive/_integration-schemas/netsuite/v1/CustomerCategory.md
index e142d736a..d3e6a2205 100644
--- a/_integration-schemas/netsuite/v1/CustomerCategory.md
+++ b/archive/_integration-schemas/netsuite/v1/CustomerCategory.md
@@ -4,7 +4,7 @@ version: "1"
name: "CustomerCategory"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/customercategory.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/CustomerCategory.json"
+
description: |
The `{{ table.name }}` table contains info about the types of customers in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/CustomerMessage.md b/archive/_integration-schemas/netsuite/v1/CustomerMessage.md
similarity index 90%
rename from _integration-schemas/netsuite/v1/CustomerMessage.md
rename to archive/_integration-schemas/netsuite/v1/CustomerMessage.md
index fb3344396..542032994 100644
--- a/_integration-schemas/netsuite/v1/CustomerMessage.md
+++ b/archive/_integration-schemas/netsuite/v1/CustomerMessage.md
@@ -4,7 +4,7 @@ version: "1"
name: "CustomerMessage"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/customermessage.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/CustomerMessage.json"
+
description: |
The `{{ table.name }}` table contains info about standardized customer messages in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/CustomerStatus.md b/archive/_integration-schemas/netsuite/v1/CustomerStatus.md
similarity index 91%
rename from _integration-schemas/netsuite/v1/CustomerStatus.md
rename to archive/_integration-schemas/netsuite/v1/CustomerStatus.md
index 725fbb50a..58377efe3 100644
--- a/_integration-schemas/netsuite/v1/CustomerStatus.md
+++ b/archive/_integration-schemas/netsuite/v1/CustomerStatus.md
@@ -4,7 +4,7 @@ version: "1"
name: "CustomerStatus"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/customerstatus.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/CustomerStatus.json"
+
description: |
The `{{ table.name }}` table contains info about the stages for leads, prospects, and customers in your {{ integration.display_name }} sales cycle.
diff --git a/_integration-schemas/netsuite/v1/Deleted.md b/archive/_integration-schemas/netsuite/v1/Deleted.md
similarity index 95%
rename from _integration-schemas/netsuite/v1/Deleted.md
rename to archive/_integration-schemas/netsuite/v1/Deleted.md
index 6fd928cd2..20ea14491 100644
--- a/_integration-schemas/netsuite/v1/Deleted.md
+++ b/archive/_integration-schemas/netsuite/v1/Deleted.md
@@ -4,7 +4,7 @@ version: "1"
name: "Deleted"
doc-link: "https://system.netsuite.com/app/help/helpcenter.nl?fid=section_N3497592.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Deleted.json"
+
description: |
The `{{ table.name }}` table contains info about deleted records.
diff --git a/_integration-schemas/netsuite/v1/Department.md b/archive/_integration-schemas/netsuite/v1/Department.md
similarity index 91%
rename from _integration-schemas/netsuite/v1/Department.md
rename to archive/_integration-schemas/netsuite/v1/Department.md
index acc225cea..ba24dbbb5 100644
--- a/_integration-schemas/netsuite/v1/Department.md
+++ b/archive/_integration-schemas/netsuite/v1/Department.md
@@ -4,7 +4,7 @@ version: "1"
name: "Department"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/department.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Department.json"
+
description: |
The `{{ table.name }}` table contains info about the departments in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/EntityGroup.md b/archive/_integration-schemas/netsuite/v1/EntityGroup.md
similarity index 95%
rename from _integration-schemas/netsuite/v1/EntityGroup.md
rename to archive/_integration-schemas/netsuite/v1/EntityGroup.md
index a51fa1bc6..70379d5d3 100644
--- a/_integration-schemas/netsuite/v1/EntityGroup.md
+++ b/archive/_integration-schemas/netsuite/v1/EntityGroup.md
@@ -4,7 +4,7 @@ version: "1"
name: "EntityGroup"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/entitygroup.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/EntityGroup.json"
+
description: |
The `{{ table.name }}` table contains info about the groups in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/ExpenseCategory.md b/archive/_integration-schemas/netsuite/v1/ExpenseCategory.md
similarity index 93%
rename from _integration-schemas/netsuite/v1/ExpenseCategory.md
rename to archive/_integration-schemas/netsuite/v1/ExpenseCategory.md
index cd3de0775..e7d750d4d 100644
--- a/_integration-schemas/netsuite/v1/ExpenseCategory.md
+++ b/archive/_integration-schemas/netsuite/v1/ExpenseCategory.md
@@ -4,7 +4,7 @@ version: "1"
name: "ExpenseCategory"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/expensecategory.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/ExpenseCategory.json"
+
description: |
The `{{ table.name }}` table contains info about the expense categories in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/FairValuePrice.md b/archive/_integration-schemas/netsuite/v1/FairValuePrice.md
similarity index 94%
rename from _integration-schemas/netsuite/v1/FairValuePrice.md
rename to archive/_integration-schemas/netsuite/v1/FairValuePrice.md
index a6241a90a..92a45faa7 100644
--- a/_integration-schemas/netsuite/v1/FairValuePrice.md
+++ b/archive/_integration-schemas/netsuite/v1/FairValuePrice.md
@@ -4,7 +4,7 @@ version: "1"
name: "FairValuePrice"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/fairvalueprice.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/FairValuePrice.json"
+
description: |
The `{{ table.name }}` table contains info about the fair value price list in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/Folder.md b/archive/_integration-schemas/netsuite/v1/Folder.md
similarity index 94%
rename from _integration-schemas/netsuite/v1/Folder.md
rename to archive/_integration-schemas/netsuite/v1/Folder.md
index 00265581a..387c9c675 100644
--- a/_integration-schemas/netsuite/v1/Folder.md
+++ b/archive/_integration-schemas/netsuite/v1/Folder.md
@@ -4,7 +4,7 @@ version: "1"
name: "Folder"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/folder.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Folder.json"
+
description: |
The `{{ table.name }}` table contains info about the folders in your {{ integration.display_name }} File Cabinet.
diff --git a/_integration-schemas/netsuite/v1/GiftCertificate.md b/archive/_integration-schemas/netsuite/v1/GiftCertificate.md
similarity index 92%
rename from _integration-schemas/netsuite/v1/GiftCertificate.md
rename to archive/_integration-schemas/netsuite/v1/GiftCertificate.md
index ba3dc6127..a5cb41c72 100644
--- a/_integration-schemas/netsuite/v1/GiftCertificate.md
+++ b/archive/_integration-schemas/netsuite/v1/GiftCertificate.md
@@ -4,7 +4,7 @@ version: "1"
name: "GiftCertificate"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/giftcertificate.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/GiftCertificate.json"
+
description: |
The `{{ table.name }}` table contains info about the gift certificates in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/GlobalAccountMapping.md b/archive/_integration-schemas/netsuite/v1/GlobalAccountMapping.md
similarity index 94%
rename from _integration-schemas/netsuite/v1/GlobalAccountMapping.md
rename to archive/_integration-schemas/netsuite/v1/GlobalAccountMapping.md
index 9670ec08d..2e06e08a6 100644
--- a/_integration-schemas/netsuite/v1/GlobalAccountMapping.md
+++ b/archive/_integration-schemas/netsuite/v1/GlobalAccountMapping.md
@@ -4,7 +4,7 @@ version: "1"
name: "GlobalAccountMapping"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/globalaccountmapping.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/GlobalAccountMapping.json"
+
description: |
The `{{ table.name }}` table contains the global account mapping record details in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/HcmJob.md b/archive/_integration-schemas/netsuite/v1/HcmJob.md
similarity index 90%
rename from _integration-schemas/netsuite/v1/HcmJob.md
rename to archive/_integration-schemas/netsuite/v1/HcmJob.md
index 4671ef3ec..e0d5ae4aa 100644
--- a/_integration-schemas/netsuite/v1/HcmJob.md
+++ b/archive/_integration-schemas/netsuite/v1/HcmJob.md
@@ -4,7 +4,7 @@ version: "1"
name: "HcmJob"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/hcmjob.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/HcmJob.json"
+
description: |
{{ integration.permission-for-table | flatify }}
diff --git a/_integration-schemas/netsuite/v1/InboundShipment.md b/archive/_integration-schemas/netsuite/v1/InboundShipment.md
similarity index 93%
rename from _integration-schemas/netsuite/v1/InboundShipment.md
rename to archive/_integration-schemas/netsuite/v1/InboundShipment.md
index 24a1101a7..f6ff6c0b9 100644
--- a/_integration-schemas/netsuite/v1/InboundShipment.md
+++ b/archive/_integration-schemas/netsuite/v1/InboundShipment.md
@@ -4,7 +4,7 @@ version: "1"
name: "InboundShipment"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/inboundshipment.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/InboundShipment.json"
+
description: |
The `{{ table.name }}` table contains info about inbound shipments in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/InventoryNumber.md b/archive/_integration-schemas/netsuite/v1/InventoryNumber.md
similarity index 91%
rename from _integration-schemas/netsuite/v1/InventoryNumber.md
rename to archive/_integration-schemas/netsuite/v1/InventoryNumber.md
index ecafffc6a..a70a23318 100644
--- a/_integration-schemas/netsuite/v1/InventoryNumber.md
+++ b/archive/_integration-schemas/netsuite/v1/InventoryNumber.md
@@ -4,7 +4,7 @@ version: "1"
name: "InventoryNumber"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/inventorynumber.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/InventoryNumber.json"
+
description: |
The `{{ table.name }}` table contains info about the serial or lot numbers in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/Issue.md b/archive/_integration-schemas/netsuite/v1/Issue.md
similarity index 97%
rename from _integration-schemas/netsuite/v1/Issue.md
rename to archive/_integration-schemas/netsuite/v1/Issue.md
index b0f452a7f..def818285 100644
--- a/_integration-schemas/netsuite/v1/Issue.md
+++ b/archive/_integration-schemas/netsuite/v1/Issue.md
@@ -4,7 +4,7 @@ version: "1"
name: "Issue"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/issue.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Issue.json"
+
description: |
The `{{ table.name }}` table contains info about the support cases in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/ItemAccountMapping.md b/archive/_integration-schemas/netsuite/v1/ItemAccountMapping.md
similarity index 94%
rename from _integration-schemas/netsuite/v1/ItemAccountMapping.md
rename to archive/_integration-schemas/netsuite/v1/ItemAccountMapping.md
index e01d4fd1d..1bc9726cf 100644
--- a/_integration-schemas/netsuite/v1/ItemAccountMapping.md
+++ b/archive/_integration-schemas/netsuite/v1/ItemAccountMapping.md
@@ -4,7 +4,7 @@ version: "1"
name: "ItemAccountMapping"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/itemaccountmapping.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/ItemAccountMapping.json"
+
description: |
The `{{ table.name }}` table contains details about the item account mapping record in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/ItemDemandPlan.md b/archive/_integration-schemas/netsuite/v1/ItemDemandPlan.md
similarity index 93%
rename from _integration-schemas/netsuite/v1/ItemDemandPlan.md
rename to archive/_integration-schemas/netsuite/v1/ItemDemandPlan.md
index 919c9e54d..27e233faf 100644
--- a/_integration-schemas/netsuite/v1/ItemDemandPlan.md
+++ b/archive/_integration-schemas/netsuite/v1/ItemDemandPlan.md
@@ -4,7 +4,7 @@ version: "1"
name: "ItemDemandPlan"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/itemdemandplan.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/ItemDemandPlan.json"
+
description: |
The `{{ table.name }}` table contains info about item demand plans in your {{ integration.display_name }} account. An item demand plan transaction stores the quantity expected to be needed, during specified time periods, for an item.
diff --git a/_integration-schemas/netsuite/v1/ItemRevision.md b/archive/_integration-schemas/netsuite/v1/ItemRevision.md
similarity index 91%
rename from _integration-schemas/netsuite/v1/ItemRevision.md
rename to archive/_integration-schemas/netsuite/v1/ItemRevision.md
index 916516e2d..f0486ebea 100644
--- a/_integration-schemas/netsuite/v1/ItemRevision.md
+++ b/archive/_integration-schemas/netsuite/v1/ItemRevision.md
@@ -4,7 +4,7 @@ version: "1"
name: "ItemRevision"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/itemrevision.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/ItemRevision.json"
+
description: |
The `{{ table.name }}` table contains info about item revisions in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/ItemSupplyPlan.md b/archive/_integration-schemas/netsuite/v1/ItemSupplyPlan.md
similarity index 92%
rename from _integration-schemas/netsuite/v1/ItemSupplyPlan.md
rename to archive/_integration-schemas/netsuite/v1/ItemSupplyPlan.md
index 6c365ae7b..691223f07 100644
--- a/_integration-schemas/netsuite/v1/ItemSupplyPlan.md
+++ b/archive/_integration-schemas/netsuite/v1/ItemSupplyPlan.md
@@ -4,7 +4,7 @@ version: "1"
name: "ItemSupplyPlan"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/itemsupplyplan.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/ItemSupplyPlan.json"
+
description: |
The `{{ table.name }}` table contains info about the item supply plans in your {{ integration.display_name }} account. An item supply plan lists the purchase orders or work orders required to ensure that item quantity meets expected demand.
diff --git a/_integration-schemas/netsuite/v1/Job.md b/archive/_integration-schemas/netsuite/v1/Job.md
similarity index 98%
rename from _integration-schemas/netsuite/v1/Job.md
rename to archive/_integration-schemas/netsuite/v1/Job.md
index b4ee759d2..5b6aebd90 100644
--- a/_integration-schemas/netsuite/v1/Job.md
+++ b/archive/_integration-schemas/netsuite/v1/Job.md
@@ -4,7 +4,7 @@ version: "1"
name: "Job"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/job.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Job.json"
+
description: |
The `{{ table.name }}` table contains info about the projects in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/JobStatus.md b/archive/_integration-schemas/netsuite/v1/JobStatus.md
similarity index 89%
rename from _integration-schemas/netsuite/v1/JobStatus.md
rename to archive/_integration-schemas/netsuite/v1/JobStatus.md
index c64eb693c..71f9bddb2 100644
--- a/_integration-schemas/netsuite/v1/JobStatus.md
+++ b/archive/_integration-schemas/netsuite/v1/JobStatus.md
@@ -4,7 +4,7 @@ version: "1"
name: "JobStatus"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/jobstatus.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/JobStatus.json"
+
description: |
The `{{ table.name }}` table contains info about the statuses that can be applied to projects in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/JobType.md b/archive/_integration-schemas/netsuite/v1/JobType.md
similarity index 90%
rename from _integration-schemas/netsuite/v1/JobType.md
rename to archive/_integration-schemas/netsuite/v1/JobType.md
index bc774f68f..7f95e0aae 100644
--- a/_integration-schemas/netsuite/v1/JobType.md
+++ b/archive/_integration-schemas/netsuite/v1/JobType.md
@@ -4,7 +4,7 @@ version: "1"
name: "JobType"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/jobtype.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/JobType.json"
+
description: |
The `{{ table.name }}` table contains info about the types that can be applied to projects in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/ManufacturingCostTemplate.md b/archive/_integration-schemas/netsuite/v1/ManufacturingCostTemplate.md
similarity index 92%
rename from _integration-schemas/netsuite/v1/ManufacturingCostTemplate.md
rename to archive/_integration-schemas/netsuite/v1/ManufacturingCostTemplate.md
index 81f6b127c..e32bb7e34 100644
--- a/_integration-schemas/netsuite/v1/ManufacturingCostTemplate.md
+++ b/archive/_integration-schemas/netsuite/v1/ManufacturingCostTemplate.md
@@ -4,7 +4,7 @@ version: "1"
name: "ManufacturingCostTemplate"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/manufacturingcosttemplate.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/ManufacturingCostTemplate.json"
+
description: |
The `{{ table.name }}` table contains info about the manufacturing cost templates in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/ManufacturingOperationTask.md b/archive/_integration-schemas/netsuite/v1/ManufacturingOperationTask.md
similarity index 95%
rename from _integration-schemas/netsuite/v1/ManufacturingOperationTask.md
rename to archive/_integration-schemas/netsuite/v1/ManufacturingOperationTask.md
index a9945dc4d..da10ec8b3 100644
--- a/_integration-schemas/netsuite/v1/ManufacturingOperationTask.md
+++ b/archive/_integration-schemas/netsuite/v1/ManufacturingOperationTask.md
@@ -4,7 +4,7 @@ version: "1"
name: "ManufacturingOperationTask"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/manufacturingoperationtask.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/ManufacturingOperationTask.json"
+
description: |
The `{{ table.name }}` table contains info about manufacturing operation tasks in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/ManufacturingRouting.md b/archive/_integration-schemas/netsuite/v1/ManufacturingRouting.md
similarity index 94%
rename from _integration-schemas/netsuite/v1/ManufacturingRouting.md
rename to archive/_integration-schemas/netsuite/v1/ManufacturingRouting.md
index a59717d00..e02b71203 100644
--- a/_integration-schemas/netsuite/v1/ManufacturingRouting.md
+++ b/archive/_integration-schemas/netsuite/v1/ManufacturingRouting.md
@@ -4,7 +4,7 @@ version: "1"
name: "ManufacturingRouting"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/manufacturingrouting.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/ManufacturingRouting.json"
+
description: |
The `{{ table.name }}` table contains info about the manufacturing routing templates in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/Message.md b/archive/_integration-schemas/netsuite/v1/Message.md
similarity index 94%
rename from _integration-schemas/netsuite/v1/Message.md
rename to archive/_integration-schemas/netsuite/v1/Message.md
index a265d207e..5bb076040 100644
--- a/_integration-schemas/netsuite/v1/Message.md
+++ b/archive/_integration-schemas/netsuite/v1/Message.md
@@ -4,7 +4,7 @@ version: "1"
name: "Message"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/message.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Message.json"
+
description: |
The `{{ table.name }}` table contains info about the messages in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/Note.md b/archive/_integration-schemas/netsuite/v1/Note.md
similarity index 94%
rename from _integration-schemas/netsuite/v1/Note.md
rename to archive/_integration-schemas/netsuite/v1/Note.md
index 2bb3aa176..afeb86f24 100644
--- a/_integration-schemas/netsuite/v1/Note.md
+++ b/archive/_integration-schemas/netsuite/v1/Note.md
@@ -4,7 +4,7 @@ version: "1"
name: "Note"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/note.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Note.json"
+
description: |
The `{{ table.name }}` table contains info about the notes in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/NoteType.md b/archive/_integration-schemas/netsuite/v1/NoteType.md
similarity index 90%
rename from _integration-schemas/netsuite/v1/NoteType.md
rename to archive/_integration-schemas/netsuite/v1/NoteType.md
index 3547ad90b..841c648a9 100644
--- a/_integration-schemas/netsuite/v1/NoteType.md
+++ b/archive/_integration-schemas/netsuite/v1/NoteType.md
@@ -4,7 +4,7 @@ version: "1"
name: "NoteType"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/notetype.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/NoteType.json"
+
description: |
The `{{ table.name }}` table contains info about the types that can be applied to notes in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/Opportunity.md b/archive/_integration-schemas/netsuite/v1/Opportunity.md
similarity index 98%
rename from _integration-schemas/netsuite/v1/Opportunity.md
rename to archive/_integration-schemas/netsuite/v1/Opportunity.md
index 6ed627682..f595520a7 100644
--- a/_integration-schemas/netsuite/v1/Opportunity.md
+++ b/archive/_integration-schemas/netsuite/v1/Opportunity.md
@@ -4,7 +4,7 @@ version: "1"
name: "Opportunity"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/opportunity.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Opportunity.json"
+
description: |
The `{{ table.name }}` table contains info about the opportunities in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/OtherNameCategory.md b/archive/_integration-schemas/netsuite/v1/OtherNameCategory.md
similarity index 90%
rename from _integration-schemas/netsuite/v1/OtherNameCategory.md
rename to archive/_integration-schemas/netsuite/v1/OtherNameCategory.md
index a4b3cff06..4e370a234 100644
--- a/_integration-schemas/netsuite/v1/OtherNameCategory.md
+++ b/archive/_integration-schemas/netsuite/v1/OtherNameCategory.md
@@ -4,7 +4,7 @@ version: "1"
name: "OtherNameCategory"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/othernamecategory.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/OtherNameCategory.json"
+
description: |
The `{{ table.name }}` table contains info about the other name categories in your {{ integration.display_name }} account. Other name category values are used on other name records to categorize them. The list of other name records is a collection of records for people or companies who are not vendors, customers, or employees.
diff --git a/_integration-schemas/netsuite/v1/PartnerCategory.md b/archive/_integration-schemas/netsuite/v1/PartnerCategory.md
similarity index 89%
rename from _integration-schemas/netsuite/v1/PartnerCategory.md
rename to archive/_integration-schemas/netsuite/v1/PartnerCategory.md
index f0695d180..8ee1ca79c 100644
--- a/_integration-schemas/netsuite/v1/PartnerCategory.md
+++ b/archive/_integration-schemas/netsuite/v1/PartnerCategory.md
@@ -4,7 +4,7 @@ version: "1"
name: "PartnerCategory"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/partnercategory.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/PartnerCategory.json"
+
description: |
The `{{ table.name }}` table contains info about the categories that can be applied to partners in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/Paycheck.md b/archive/_integration-schemas/netsuite/v1/Paycheck.md
similarity index 96%
rename from _integration-schemas/netsuite/v1/Paycheck.md
rename to archive/_integration-schemas/netsuite/v1/Paycheck.md
index 3f849559a..688077799 100644
--- a/_integration-schemas/netsuite/v1/Paycheck.md
+++ b/archive/_integration-schemas/netsuite/v1/Paycheck.md
@@ -4,7 +4,7 @@ version: "1"
name: "Paycheck"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/paycheck.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Paycheck.json"
+
description: |
The `{{ table.name }}` table contains info about the paycheck records in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/PaymentMethod.md b/archive/_integration-schemas/netsuite/v1/PaymentMethod.md
similarity index 93%
rename from _integration-schemas/netsuite/v1/PaymentMethod.md
rename to archive/_integration-schemas/netsuite/v1/PaymentMethod.md
index b4a01aabb..b038834ac 100644
--- a/_integration-schemas/netsuite/v1/PaymentMethod.md
+++ b/archive/_integration-schemas/netsuite/v1/PaymentMethod.md
@@ -4,7 +4,7 @@ version: "1"
name: "PaymentMethod"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/paymentmethod.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/PaymentMethod.json"
+
description: |
The `{{ table.name }}` table contains info about the customer payment methods in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/PayrollItem.md b/archive/_integration-schemas/netsuite/v1/PayrollItem.md
similarity index 92%
rename from _integration-schemas/netsuite/v1/PayrollItem.md
rename to archive/_integration-schemas/netsuite/v1/PayrollItem.md
index 156200f90..d25786f27 100644
--- a/_integration-schemas/netsuite/v1/PayrollItem.md
+++ b/archive/_integration-schemas/netsuite/v1/PayrollItem.md
@@ -4,7 +4,7 @@ version: "1"
name: "PayrollItem"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/payrollitem.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/PayrollItem.json"
+
description: |
The `{{ table.name }}` table contains info about the payroll items, or payroll transaction line items, in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/PhoneCall.md b/archive/_integration-schemas/netsuite/v1/PhoneCall.md
similarity index 95%
rename from _integration-schemas/netsuite/v1/PhoneCall.md
rename to archive/_integration-schemas/netsuite/v1/PhoneCall.md
index f0e1119f2..ee6cad188 100644
--- a/_integration-schemas/netsuite/v1/PhoneCall.md
+++ b/archive/_integration-schemas/netsuite/v1/PhoneCall.md
@@ -4,7 +4,7 @@ version: "1"
name: "PhoneCall"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/payrollitem.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/PhoneCall.json"
+
description: |
The `{{ table.name }}` table contains info about the phone call records in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/PriceLevel.md b/archive/_integration-schemas/netsuite/v1/PriceLevel.md
similarity index 91%
rename from _integration-schemas/netsuite/v1/PriceLevel.md
rename to archive/_integration-schemas/netsuite/v1/PriceLevel.md
index b81e65f52..d56fae94e 100644
--- a/_integration-schemas/netsuite/v1/PriceLevel.md
+++ b/archive/_integration-schemas/netsuite/v1/PriceLevel.md
@@ -4,7 +4,7 @@ version: "1"
name: "PriceLevel"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/pricelevel.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/PriceLevel.json"
+
description: |
The `{{ table.name }}` table contains info about the price level list in your {{ integration.display_name }} account. Price level defines a list of values that are used by opportunity and item records to set the price level for a specific item.
diff --git a/_integration-schemas/netsuite/v1/PricingGroup.md b/archive/_integration-schemas/netsuite/v1/PricingGroup.md
similarity index 89%
rename from _integration-schemas/netsuite/v1/PricingGroup.md
rename to archive/_integration-schemas/netsuite/v1/PricingGroup.md
index 37ec0e495..b31c45458 100644
--- a/_integration-schemas/netsuite/v1/PricingGroup.md
+++ b/archive/_integration-schemas/netsuite/v1/PricingGroup.md
@@ -4,7 +4,7 @@ version: "1"
name: "PricingGroup"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/pricinggroup.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/PricingGroup.json"
+
description: |
The `{{ table.name }}` table contains info about the pricing groups in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/ProjectTask.md b/archive/_integration-schemas/netsuite/v1/ProjectTask.md
similarity index 96%
rename from _integration-schemas/netsuite/v1/ProjectTask.md
rename to archive/_integration-schemas/netsuite/v1/ProjectTask.md
index b4b39e9d2..bbbc90b64 100644
--- a/_integration-schemas/netsuite/v1/ProjectTask.md
+++ b/archive/_integration-schemas/netsuite/v1/ProjectTask.md
@@ -4,7 +4,7 @@ version: "1"
name: "ProjectTask"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/projecttask.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/ProjectTask.json"
+
description: |
The `{{ table.name }}` table contains info about the project tasks in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/PromotionCode.md b/archive/_integration-schemas/netsuite/v1/PromotionCode.md
similarity index 95%
rename from _integration-schemas/netsuite/v1/PromotionCode.md
rename to archive/_integration-schemas/netsuite/v1/PromotionCode.md
index 7985a02b6..b220a1eb3 100644
--- a/_integration-schemas/netsuite/v1/PromotionCode.md
+++ b/archive/_integration-schemas/netsuite/v1/PromotionCode.md
@@ -4,7 +4,7 @@ version: "1"
name: "PromotionCode"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/promotioncode.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/PromotionCode.json"
+
description: |
The `{{ table.name }}` table contains info about the promotion codes in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/ResourceAllocation.md b/archive/_integration-schemas/netsuite/v1/ResourceAllocation.md
similarity index 93%
rename from _integration-schemas/netsuite/v1/ResourceAllocation.md
rename to archive/_integration-schemas/netsuite/v1/ResourceAllocation.md
index 047ff9006..82a844ac5 100644
--- a/_integration-schemas/netsuite/v1/ResourceAllocation.md
+++ b/archive/_integration-schemas/netsuite/v1/ResourceAllocation.md
@@ -4,7 +4,7 @@ version: "1"
name: "ResourceAllocation"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/resourceallocation.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/ResourceAllocation.json"
+
description: |
The `{{ table.name }}` table contains info about resource allocations, or employee time reservations, in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/RevRecSchedule.md b/archive/_integration-schemas/netsuite/v1/RevRecSchedule.md
similarity index 93%
rename from _integration-schemas/netsuite/v1/RevRecSchedule.md
rename to archive/_integration-schemas/netsuite/v1/RevRecSchedule.md
index db3996035..8a0e4550f 100644
--- a/_integration-schemas/netsuite/v1/RevRecSchedule.md
+++ b/archive/_integration-schemas/netsuite/v1/RevRecSchedule.md
@@ -4,7 +4,7 @@ version: "1"
name: "RevRecSchedule"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/revrecschedule.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/RevRecSchedule.json"
+
description: |
The `{{ table.name }}` table contains info about the revenue recognition schedules in your {{ integration.display_name }} account. A revenue recognition schedule indicates the posting periods in which revenue should be recognized, and the amount to be recognized in each period, for an item sale.
diff --git a/_integration-schemas/netsuite/v1/RevRecTemplate.md b/archive/_integration-schemas/netsuite/v1/RevRecTemplate.md
similarity index 93%
rename from _integration-schemas/netsuite/v1/RevRecTemplate.md
rename to archive/_integration-schemas/netsuite/v1/RevRecTemplate.md
index 28f328bc0..62bd9710f 100644
--- a/_integration-schemas/netsuite/v1/RevRecTemplate.md
+++ b/archive/_integration-schemas/netsuite/v1/RevRecTemplate.md
@@ -4,7 +4,7 @@ version: "1"
name: "RevRecTemplate"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/revrectemplate.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/RevRecTemplate.json"
+
description: |
The `{{ table.name }}` table contains info about the revenue recognition templates in your {{ integration.display_name }} account. A revenue recognition template indicates how revenue from associated items should be posted.
diff --git a/_integration-schemas/netsuite/v1/SalesRole.md b/archive/_integration-schemas/netsuite/v1/SalesRole.md
similarity index 90%
rename from _integration-schemas/netsuite/v1/SalesRole.md
rename to archive/_integration-schemas/netsuite/v1/SalesRole.md
index 7d5488a39..ec78c8623 100644
--- a/_integration-schemas/netsuite/v1/SalesRole.md
+++ b/archive/_integration-schemas/netsuite/v1/SalesRole.md
@@ -4,7 +4,7 @@ version: "1"
name: "SalesRole"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/salesrole.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/SalesRole.json"
+
description: |
The `{{ table.name }}` table contains info about the sales roles in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/SalesTaxItem.md b/archive/_integration-schemas/netsuite/v1/SalesTaxItem.md
similarity index 95%
rename from _integration-schemas/netsuite/v1/SalesTaxItem.md
rename to archive/_integration-schemas/netsuite/v1/SalesTaxItem.md
index c56f4c7bc..0f1aa4659 100644
--- a/_integration-schemas/netsuite/v1/SalesTaxItem.md
+++ b/archive/_integration-schemas/netsuite/v1/SalesTaxItem.md
@@ -4,7 +4,7 @@ version: "1"
name: "SalesTaxItem"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/salestaxitem.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/SalesTaxItem.json"
+
description: |
The `{{ table.name }}` table contains info about the sales tax items in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/SiteCategory.md b/archive/_integration-schemas/netsuite/v1/SiteCategory.md
similarity index 95%
rename from _integration-schemas/netsuite/v1/SiteCategory.md
rename to archive/_integration-schemas/netsuite/v1/SiteCategory.md
index b7fbf0057..2f409718b 100644
--- a/_integration-schemas/netsuite/v1/SiteCategory.md
+++ b/archive/_integration-schemas/netsuite/v1/SiteCategory.md
@@ -4,7 +4,7 @@ version: "1"
name: "SiteCategory"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/sitecategory.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/SiteCategory.json"
+
description: |
The `{{ table.name }}` table contains info about the categories used to organize your website.
diff --git a/_integration-schemas/netsuite/v1/Solution.md b/archive/_integration-schemas/netsuite/v1/Solution.md
similarity index 94%
rename from _integration-schemas/netsuite/v1/Solution.md
rename to archive/_integration-schemas/netsuite/v1/Solution.md
index 992769823..9d20a8e52 100644
--- a/_integration-schemas/netsuite/v1/Solution.md
+++ b/archive/_integration-schemas/netsuite/v1/Solution.md
@@ -4,7 +4,7 @@ version: "1"
name: "Solution"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/solution.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Solution.json"
+
description: |
The `{{ table.name }}` table contains info about the solutions, or answers to customer issues, in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/Subsidiary.md b/archive/_integration-schemas/netsuite/v1/Subsidiary.md
similarity index 97%
rename from _integration-schemas/netsuite/v1/Subsidiary.md
rename to archive/_integration-schemas/netsuite/v1/Subsidiary.md
index 5dd51a1e7..62ae1dd91 100644
--- a/_integration-schemas/netsuite/v1/Subsidiary.md
+++ b/archive/_integration-schemas/netsuite/v1/Subsidiary.md
@@ -4,7 +4,7 @@ version: "1"
name: "Subsidiary"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/subsidiary.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Subsidiary.json"
+
description: |
The `{{ table.name }}` table contains info about the subsidiary records in your {{ integration.display_name }} account. A subsidiary represents a separate company within your global organization.
diff --git a/_integration-schemas/netsuite/v1/SupportCase.md b/archive/_integration-schemas/netsuite/v1/SupportCase.md
similarity index 96%
rename from _integration-schemas/netsuite/v1/SupportCase.md
rename to archive/_integration-schemas/netsuite/v1/SupportCase.md
index de6946ca1..2336f23fb 100644
--- a/_integration-schemas/netsuite/v1/SupportCase.md
+++ b/archive/_integration-schemas/netsuite/v1/SupportCase.md
@@ -4,7 +4,7 @@ version: "1"
name: "SupportCase"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/supportcase.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/SupportCase.json"
+
description: |
The `{{ table.name }}` table contains info about the support cases in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/Task.md b/archive/_integration-schemas/netsuite/v1/Task.md
similarity index 96%
rename from _integration-schemas/netsuite/v1/Task.md
rename to archive/_integration-schemas/netsuite/v1/Task.md
index 6257d8969..fd5d0ed7a 100644
--- a/_integration-schemas/netsuite/v1/Task.md
+++ b/archive/_integration-schemas/netsuite/v1/Task.md
@@ -4,7 +4,7 @@ version: "1"
name: "Task"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/task.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Task.json"
+
description: |
The `{{ table.name }}` table contains info about the tasks in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/TaxGroup.md b/archive/_integration-schemas/netsuite/v1/TaxGroup.md
similarity index 94%
rename from _integration-schemas/netsuite/v1/TaxGroup.md
rename to archive/_integration-schemas/netsuite/v1/TaxGroup.md
index 2c1be624f..f7b3e5417 100644
--- a/_integration-schemas/netsuite/v1/TaxGroup.md
+++ b/archive/_integration-schemas/netsuite/v1/TaxGroup.md
@@ -4,7 +4,7 @@ version: "1"
name: "TaxGroup"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/taxgroup.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/TaxGroup.json"
+
description: |
The `{{ table.name }}` table contains info about the tax groups in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/TaxType.md b/archive/_integration-schemas/netsuite/v1/TaxType.md
similarity index 94%
rename from _integration-schemas/netsuite/v1/TaxType.md
rename to archive/_integration-schemas/netsuite/v1/TaxType.md
index f5b617823..9b7c19a74 100644
--- a/_integration-schemas/netsuite/v1/TaxType.md
+++ b/archive/_integration-schemas/netsuite/v1/TaxType.md
@@ -4,7 +4,7 @@ version: "1"
name: "TaxType"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/taxtype.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/TaxType.json"
+
description: |
The `{{ table.name }}` table contains info about the tax types in your {{ integration.display_name }} account. A tax type determines where the tax paid or collected is tracked on the balance sheet. The balance sheet account to which {{ integration.display_name }} posts the collection or payment of tax is called the tax control account.
diff --git a/_integration-schemas/netsuite/v1/Term.md b/archive/_integration-schemas/netsuite/v1/Term.md
similarity index 93%
rename from _integration-schemas/netsuite/v1/Term.md
rename to archive/_integration-schemas/netsuite/v1/Term.md
index c788ed465..e3438d40d 100644
--- a/_integration-schemas/netsuite/v1/Term.md
+++ b/archive/_integration-schemas/netsuite/v1/Term.md
@@ -4,7 +4,7 @@ version: "1"
name: "Term"
doc-link: ""
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Term.json"
+
description: |
The `{{ table.name }}` table contains info about the terms in your {{ integration.display_name }} account. Terms are used to specify when payment is due on customer invoices.
diff --git a/_integration-schemas/netsuite/v1/TimeBill.md b/archive/_integration-schemas/netsuite/v1/TimeBill.md
similarity index 96%
rename from _integration-schemas/netsuite/v1/TimeBill.md
rename to archive/_integration-schemas/netsuite/v1/TimeBill.md
index 75eb66bb0..c5bf972a1 100644
--- a/_integration-schemas/netsuite/v1/TimeBill.md
+++ b/archive/_integration-schemas/netsuite/v1/TimeBill.md
@@ -4,7 +4,7 @@ version: "1"
name: "TimeBill"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/timebill.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/TimeBill.json"
+
description: |
The `{{ table.name }}` table contains info about the time transactions in your {{ integration.display_name }} account. Also known as time bills, these transactions records the hours worked by an employee. This transaction can be used to record billable hours and invoice customers.
diff --git a/_integration-schemas/netsuite/v1/TimeEntry.md b/archive/_integration-schemas/netsuite/v1/TimeEntry.md
similarity index 95%
rename from _integration-schemas/netsuite/v1/TimeEntry.md
rename to archive/_integration-schemas/netsuite/v1/TimeEntry.md
index a2b471d4b..2ca79a16e 100644
--- a/_integration-schemas/netsuite/v1/TimeEntry.md
+++ b/archive/_integration-schemas/netsuite/v1/TimeEntry.md
@@ -4,7 +4,7 @@ version: "1"
name: "TimeEntry"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/timeentry.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/TimeEntry.json"
+
description: |
The `{{ table.name }}` table contains info about the time entries in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/TimeSheet.md b/archive/_integration-schemas/netsuite/v1/TimeSheet.md
similarity index 92%
rename from _integration-schemas/netsuite/v1/TimeSheet.md
rename to archive/_integration-schemas/netsuite/v1/TimeSheet.md
index ddaa709e6..303b94ad0 100644
--- a/_integration-schemas/netsuite/v1/TimeSheet.md
+++ b/archive/_integration-schemas/netsuite/v1/TimeSheet.md
@@ -4,7 +4,7 @@ version: "1"
name: "TimeSheet"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/timesheet.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/TimeSheet.json"
+
description: |
The `{{ table.name }}` table contains info about the time sheets in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/Transaction.md b/archive/_integration-schemas/netsuite/v1/Transaction.md
similarity index 99%
rename from _integration-schemas/netsuite/v1/Transaction.md
rename to archive/_integration-schemas/netsuite/v1/Transaction.md
index 7f84f6a0f..50a9a13df 100644
--- a/_integration-schemas/netsuite/v1/Transaction.md
+++ b/archive/_integration-schemas/netsuite/v1/Transaction.md
@@ -3,7 +3,7 @@ tap: "netsuite"
version: "1"
name: "Transaction"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Transaction.json"
+
description: |
The `{{ table.name }}` table contains info about transactions.
diff --git a/_integration-schemas/netsuite/v1/UnitsType.md b/archive/_integration-schemas/netsuite/v1/UnitsType.md
similarity index 89%
rename from _integration-schemas/netsuite/v1/UnitsType.md
rename to archive/_integration-schemas/netsuite/v1/UnitsType.md
index 9504ef424..8f658a949 100644
--- a/_integration-schemas/netsuite/v1/UnitsType.md
+++ b/archive/_integration-schemas/netsuite/v1/UnitsType.md
@@ -4,7 +4,7 @@ version: "1"
name: "UnitsType"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/unitstype.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/UnitsType.json"
+
description: |
The `{{ table.name }}` table contains info about the unit types, or Units of Measure, in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/Usage.md b/archive/_integration-schemas/netsuite/v1/Usage.md
similarity index 93%
rename from _integration-schemas/netsuite/v1/Usage.md
rename to archive/_integration-schemas/netsuite/v1/Usage.md
index ccdcc8b20..1d6dab649 100644
--- a/_integration-schemas/netsuite/v1/Usage.md
+++ b/archive/_integration-schemas/netsuite/v1/Usage.md
@@ -4,7 +4,7 @@ version: "1"
name: "Usage"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/usage.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Usage.json"
+
description: |
The `{{ table.name }}` table contains info about the subscription billing lines in your {{ integration.display_name }} account. For example: Money, time, cellular data, internet data, etc.
diff --git a/_integration-schemas/netsuite/v1/Vendor.md b/archive/_integration-schemas/netsuite/v1/Vendor.md
similarity index 98%
rename from _integration-schemas/netsuite/v1/Vendor.md
rename to archive/_integration-schemas/netsuite/v1/Vendor.md
index 31007a747..1b565e219 100644
--- a/_integration-schemas/netsuite/v1/Vendor.md
+++ b/archive/_integration-schemas/netsuite/v1/Vendor.md
@@ -4,7 +4,7 @@ version: "1"
name: "Vendor"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/vendor.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Vendor.json"
+
description: |
The `{{ table.name }}` table contains info about the vendors in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/VendorCategory.md b/archive/_integration-schemas/netsuite/v1/VendorCategory.md
similarity index 89%
rename from _integration-schemas/netsuite/v1/VendorCategory.md
rename to archive/_integration-schemas/netsuite/v1/VendorCategory.md
index d64842d9b..e88d14538 100644
--- a/_integration-schemas/netsuite/v1/VendorCategory.md
+++ b/archive/_integration-schemas/netsuite/v1/VendorCategory.md
@@ -4,7 +4,7 @@ version: "1"
name: "VendorCategory"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/vendorcategory.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/VendorCategory.json"
+
description: |
The `{{ table.name }}` table contains info about the categories that can be applied to vendors in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/WinLossReason.md b/archive/_integration-schemas/netsuite/v1/WinLossReason.md
similarity index 89%
rename from _integration-schemas/netsuite/v1/WinLossReason.md
rename to archive/_integration-schemas/netsuite/v1/WinLossReason.md
index 50691bbcd..dccabcc7f 100644
--- a/_integration-schemas/netsuite/v1/WinLossReason.md
+++ b/archive/_integration-schemas/netsuite/v1/WinLossReason.md
@@ -4,7 +4,7 @@ version: "1"
name: "WinLossReason"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/winlossreason.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/WinLossReason.json"
+
description: |
The `{{ table.name }}` table contains info about the win/loss reasons in your {{ integration.display_name }} account.
diff --git a/archive/_integration-schemas/netsuite/v1/campaign.md b/archive/_integration-schemas/netsuite/v1/campaign.md
new file mode 100644
index 000000000..124bad9c4
--- /dev/null
+++ b/archive/_integration-schemas/netsuite/v1/campaign.md
@@ -0,0 +1,172 @@
+---
+tap: "netsuite"
+version: "1"
+
+name: "Campaign"
+doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/campaign.html"
+
+description: |
+ The `{{ table.name }}` table contains info about the campaigns in your {{ integration.display_name }} account. Campaigns are used to manage marketing initiatives.
+
+ {{ integration.permission-for-table | flatify }}
+
+## Refer to _data/extraction/netsuite/netsuite-permissions.yml for permissions for this table/object.
+key: "campaign"
+
+replication-method: "Full Table"
+
+attributes:
+ - name: "internalId"
+ type: "string"
+ primary-key: true
+ description: ""
+ # foreign-key-id: "campaign-id"
+
+ - name: "audience"
+ type: "varies"
+ description: ""
+
+ - name: "baseCost"
+ type: "number, string"
+ description: ""
+
+ - name: "campaignDirectMailList"
+ type: "varies"
+ description: ""
+
+ - name: "campaignEmailList"
+ type: "varies"
+ description: ""
+
+ - name: "campaignEventList"
+ type: "varies"
+ description: ""
+
+ - name: "campaignId"
+ type: "string"
+ description: ""
+
+ - name: "category"
+ type: "varies"
+ description: ""
+
+ - name: "convCostPerCustomer"
+ type: "number, string"
+ description: ""
+
+ - name: "conversions"
+ type: "integer, string"
+ description: ""
+
+ - name: "cost"
+ type: "number, string"
+ description: ""
+
+ - name: "costPerCustomer"
+ type: "number, string"
+ description: ""
+
+ - name: "customFieldList"
+ type: "varies"
+ description: ""
+
+ - name: "customForm"
+ type: "varies"
+ description: ""
+
+ - name: "endDate"
+ type: "date-time"
+ description: ""
+
+ - name: "eventResponseList"
+ type: "varies"
+ description: ""
+
+ - name: "expectedRevenue"
+ type: "number, string"
+ description: ""
+
+ - name: "externalId"
+ type: "string"
+ description: ""
+
+ - name: "family"
+ type: "varies"
+ description: ""
+
+ - name: "isInactive"
+ type: "boolean, string"
+ description: ""
+
+ - name: "itemList"
+ type: "varies"
+ description: ""
+
+ - name: "keyword"
+ type: "string"
+ description: ""
+
+ - name: "leadsGenerated"
+ type: "integer, string"
+ description: ""
+
+ - name: "local"
+ type: "boolean, string"
+ description: ""
+
+ - name: "message"
+ type: "string"
+ description: ""
+
+ - name: "nullFieldList"
+ type: "varies"
+ description: ""
+
+ - name: "offer"
+ type: "varies"
+ description: ""
+
+ - name: "owner"
+ type: "varies"
+ description: ""
+
+ - name: "profit"
+ type: "number, string"
+ description: ""
+
+ - name: "promotionCode"
+ type: "varies"
+ description: ""
+
+ - name: "roi"
+ type: "number, string"
+ description: ""
+
+ - name: "searchEngine"
+ type: "varies"
+ description: ""
+
+ - name: "startDate"
+ type: "date-time"
+ description: ""
+
+ - name: "title"
+ type: "string"
+ description: ""
+
+ - name: "totalRevenue"
+ type: "number, string"
+ description: ""
+
+ - name: "uniqueVisitors"
+ type: "integer, string"
+ description: ""
+
+ - name: "url"
+ type: "string"
+ description: ""
+
+ - name: "vertical"
+ type: "varies"
+ description: ""
+---
\ No newline at end of file
diff --git a/_integration-schemas/netsuite/v1/charge.md b/archive/_integration-schemas/netsuite/v1/charge.md
similarity index 96%
rename from _integration-schemas/netsuite/v1/charge.md
rename to archive/_integration-schemas/netsuite/v1/charge.md
index ab2c6fdbc..e1aea2916 100644
--- a/_integration-schemas/netsuite/v1/charge.md
+++ b/archive/_integration-schemas/netsuite/v1/charge.md
@@ -4,7 +4,7 @@ version: "1"
name: "Charge"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/charge.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Charge.json"
+
description: |
The `{{ table.name }}` table contains info about the charges in your {{ integration.display_name }} account, which represent billable amounts that your clients must pay.
diff --git a/archive/_integration-schemas/netsuite/v1/contact.md b/archive/_integration-schemas/netsuite/v1/contact.md
new file mode 100644
index 000000000..7fdb472d4
--- /dev/null
+++ b/archive/_integration-schemas/netsuite/v1/contact.md
@@ -0,0 +1,179 @@
+---
+tap: "netsuite"
+version: "1"
+
+name: "Contact"
+doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/contact.html"
+
+description: |
+ The `{{ table.name }}` table contains info about contacts.
+
+ {{ integration.permission-for-table | flatify }}
+
+## Refer to _data/extraction/netsuite/netsuite-permissions.yml for permissions for this table/object.
+key: "contact"
+
+replication-method: "Key-based Incremental"
+
+attributes:
+ - name: "internalId"
+ type: "string"
+ primary-key: true
+ description: "The contact ID."
+ # foreign-key-id: "contact-id"
+
+ - name: "lastModifiedDate"
+ type: "date-time"
+ replication-key: true
+ description: "The time the contact was last modified."
+
+ - name: "addressbookList"
+ type: "varies"
+ description: ""
+
+ - name: "altEmail"
+ type: "string"
+ description: "The alternate email address for the contact."
+
+ - name: "assistant"
+ type: "varies"
+ description: "A reference to an existing contact."
+
+ - name: "assistantPhone"
+ type: "string"
+ description: ""
+
+ - name: "billPay"
+ type: "boolean, string"
+ description: "Indicates whether payments can be sent online to the contact."
+
+ - name: "categoryList"
+ type: "varies"
+ description: ""
+
+ - name: "comments"
+ type: "string"
+ description: "Additional comments about the contact."
+
+ - name: "company"
+ type: "varies"
+ description: "The company the contact works for."
+
+ - name: "contactSource"
+ type: "varies"
+ description: "Indicates how the contact came to do business with your company."
+
+ - name: "customFieldList"
+ type: "varies"
+ description: "The custom fields associated with the contact."
+
+ - name: "customForm"
+ type: "varies"
+ description: ""
+
+ - name: "dateCreated"
+ type: "date-time"
+ description: "The date the contact was created."
+
+ - name: "defaultAddress"
+ type: "string"
+ description: "The default billing address for the contact."
+
+ - name: "email"
+ type: "string"
+ description: "The contact's email address."
+
+ - name: "entityId"
+ type: "string"
+ description: "The name for the contact in lists."
+
+ - name: "externalId"
+ type: "string"
+ description: ""
+
+ - name: "fax"
+ type: "string"
+ description: "The contact's fax number."
+
+ - name: "firstName"
+ type: "string"
+ description: "The contact's first name."
+
+ - name: "globalSubscriptionStatus"
+ type: "varies"
+ description: |
+ The contact's subscription status. Possible values are:
+
+ - Confirmed Opt-In
+ - Soft Opt-In
+ - Soft Opt-Out
+ - Confirmed Opt-Out
+
+ - name: "homePhone"
+ type: "string"
+ description: "The customer's home phone number."
+
+ - name: "image"
+ type: "varies"
+ description: "A reference to a file in the file cabinet for the contact."
+
+ - name: "isInactive"
+ type: "boolean, string"
+ description: "Indicates if the contact is inactive."
+
+ - name: "isPrivate"
+ type: "boolean, string"
+ description: "Indicates if the contact is private. When a contact is private, it can only be viewed by th e user that entered the contact record."
+
+ - name: "lastName"
+ type: "string"
+ description: "The contact's last name."
+
+ - name: "middleName"
+ type: "string"
+ description: "The contact's middle name."
+
+ - name: "mobilePhone"
+ type: "string"
+ description: "The contact's mobile phone number."
+
+ - name: "nullFieldList"
+ type: "varies"
+ description: ""
+
+ - name: "officePhone"
+ type: "string"
+ description: "The contact's office phone number."
+
+ - name: "phone"
+ type: "string"
+ description: "The contact's phone number."
+
+ - name: "phoneticName"
+ type: "string"
+ description: "The furigana character used to sort the contact record in {{ integration.display_name }}."
+
+ - name: "salutation"
+ type: "string"
+ description: "The contact's salutation."
+
+ - name: "subscriptionsList"
+ type: "varies"
+ description: ""
+
+ - name: "subsidiary"
+ type: "varies"
+ description: ""
+
+ - name: "supervisor"
+ type: "varies"
+ description: "The contact's supervisor."
+
+ - name: "supervisorPhone"
+ type: "string"
+ description: "The contact supervisor's phone number."
+
+ - name: "title"
+ type: "string"
+ description: "The contact's title at their `company`."
+---
\ No newline at end of file
diff --git a/_integration-schemas/netsuite/v1/custom_record.md b/archive/_integration-schemas/netsuite/v1/custom_record.md
similarity index 95%
rename from _integration-schemas/netsuite/v1/custom_record.md
rename to archive/_integration-schemas/netsuite/v1/custom_record.md
index c7a59b432..7d131a787 100644
--- a/_integration-schemas/netsuite/v1/custom_record.md
+++ b/archive/_integration-schemas/netsuite/v1/custom_record.md
@@ -4,7 +4,7 @@ version: "1"
name: "customrecord_[custom_record_name]"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/customrecord.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Transaction.json"
+
description: |
For each custom record type in {{ integration.display_name }}, a table for that custom record type will be available for selection in Stitch.
diff --git a/_integration-schemas/netsuite/v1/employee.md b/archive/_integration-schemas/netsuite/v1/employee.md
similarity index 98%
rename from _integration-schemas/netsuite/v1/employee.md
rename to archive/_integration-schemas/netsuite/v1/employee.md
index f0e32d7cb..d2707ad6b 100644
--- a/_integration-schemas/netsuite/v1/employee.md
+++ b/archive/_integration-schemas/netsuite/v1/employee.md
@@ -4,7 +4,7 @@ version: "1"
name: "Employee"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/employee.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Employee.json"
+
description: |
The `{{ table.name }}` table contains info about the employees in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/file.md b/archive/_integration-schemas/netsuite/v1/file.md
similarity index 96%
rename from _integration-schemas/netsuite/v1/file.md
rename to archive/_integration-schemas/netsuite/v1/file.md
index 9f93a655a..5643530a6 100644
--- a/_integration-schemas/netsuite/v1/file.md
+++ b/archive/_integration-schemas/netsuite/v1/file.md
@@ -4,7 +4,7 @@ version: "1"
name: "File"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/file.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/File.json"
+
description: |
The `{{ table.name }}` table contains info about the files in your {{ integration.display_name }} File Cabinet.
diff --git a/_integration-schemas/netsuite/v1/item.md b/archive/_integration-schemas/netsuite/v1/item.md
similarity index 99%
rename from _integration-schemas/netsuite/v1/item.md
rename to archive/_integration-schemas/netsuite/v1/item.md
index 55020c920..7c5b6cb93 100644
--- a/_integration-schemas/netsuite/v1/item.md
+++ b/archive/_integration-schemas/netsuite/v1/item.md
@@ -4,7 +4,7 @@ version: "1"
name: "Item"
doc-link: ""
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Item.json"
+
description: |
The `{{ table.name }}` table contains info about items.
diff --git a/_integration-schemas/netsuite/v1/location.md b/archive/_integration-schemas/netsuite/v1/location.md
similarity index 97%
rename from _integration-schemas/netsuite/v1/location.md
rename to archive/_integration-schemas/netsuite/v1/location.md
index 0ab70daba..eda3ac9ac 100644
--- a/_integration-schemas/netsuite/v1/location.md
+++ b/archive/_integration-schemas/netsuite/v1/location.md
@@ -4,7 +4,7 @@ version: "1"
name: "Location"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/location.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Location.json"
+
description: |
The `{{ table.name }}` table contains info about locations.
diff --git a/_integration-schemas/netsuite/v1/nexus.md b/archive/_integration-schemas/netsuite/v1/nexus.md
similarity index 92%
rename from _integration-schemas/netsuite/v1/nexus.md
rename to archive/_integration-schemas/netsuite/v1/nexus.md
index 5d830e8fe..f3330f2b6 100644
--- a/_integration-schemas/netsuite/v1/nexus.md
+++ b/archive/_integration-schemas/netsuite/v1/nexus.md
@@ -4,7 +4,7 @@ version: "1"
name: "Nexus"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/nexus.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Nexus.json"
+
description: |
The `{{ table.name }}` table contains info about the tax jurisdictions - or nexus - in your {{ integration.display_name }} account. A nexus is a tax jurisdiction, usually defined at the country level.
diff --git a/_integration-schemas/netsuite/v1/partner.md b/archive/_integration-schemas/netsuite/v1/partner.md
similarity index 97%
rename from _integration-schemas/netsuite/v1/partner.md
rename to archive/_integration-schemas/netsuite/v1/partner.md
index f79f0d5b0..bb4764c8c 100644
--- a/_integration-schemas/netsuite/v1/partner.md
+++ b/archive/_integration-schemas/netsuite/v1/partner.md
@@ -4,7 +4,7 @@ version: "1"
name: "Partner"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/partner.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Partner.json"
+
description: |
The `{{ table.name }}` table contains info about the partners in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v1/topic.md b/archive/_integration-schemas/netsuite/v1/topic.md
similarity index 91%
rename from _integration-schemas/netsuite/v1/topic.md
rename to archive/_integration-schemas/netsuite/v1/topic.md
index 0ec6e6a9a..30819f464 100644
--- a/_integration-schemas/netsuite/v1/topic.md
+++ b/archive/_integration-schemas/netsuite/v1/topic.md
@@ -4,7 +4,7 @@ version: "1"
name: "Topic"
doc-link: "https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2017_2/schema/record/topic.html"
-# singer-schema: "https://github.com/singer-io/tap-netsuite/blob/master/tap_netsuite/schemas/Topic.json"
+
description: |
The `{{ table.name }}` table contains info about the topics used to organize knowledge base solutions in your {{ integration.display_name }} account.
diff --git a/_integration-schemas/netsuite/v10-15-2015/accounting_period.md b/archive/_integration-schemas/netsuite/v10-15-2015/accounting_period.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/accounting_period.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/accounting_period.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/app_definition.md b/archive/_integration-schemas/netsuite/v10-15-2015/app_definition.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/app_definition.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/app_definition.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/app_package.md b/archive/_integration-schemas/netsuite/v10-15-2015/app_package.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/app_package.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/app_package.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/billing_schedule.md b/archive/_integration-schemas/netsuite/v10-15-2015/billing_schedule.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/billing_schedule.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/billing_schedule.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/calendar_event.md b/archive/_integration-schemas/netsuite/v10-15-2015/calendar_event.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/calendar_event.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/calendar_event.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/campaign.md b/archive/_integration-schemas/netsuite/v10-15-2015/campaign.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/campaign.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/campaign.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/classification.md b/archive/_integration-schemas/netsuite/v10-15-2015/classification.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/classification.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/classification.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/contact_category.md b/archive/_integration-schemas/netsuite/v10-15-2015/contact_category.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/contact_category.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/contact_category.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/contact_role.md b/archive/_integration-schemas/netsuite/v10-15-2015/contact_role.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/contact_role.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/contact_role.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/coupon_code.md b/archive/_integration-schemas/netsuite/v10-15-2015/coupon_code.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/coupon_code.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/coupon_code.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/currency_rate.md b/archive/_integration-schemas/netsuite/v10-15-2015/currency_rate.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/currency_rate.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/currency_rate.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/custom_list.md b/archive/_integration-schemas/netsuite/v10-15-2015/custom_list.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/custom_list.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/custom_list.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/custom_records.md b/archive/_integration-schemas/netsuite/v10-15-2015/custom_records.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/custom_records.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/custom_records.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/customer.md b/archive/_integration-schemas/netsuite/v10-15-2015/customer.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/customer.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/customer.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/customer_category.md b/archive/_integration-schemas/netsuite/v10-15-2015/customer_category.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/customer_category.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/customer_category.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/customer_message.md b/archive/_integration-schemas/netsuite/v10-15-2015/customer_message.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/customer_message.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/customer_message.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/customer_status.md b/archive/_integration-schemas/netsuite/v10-15-2015/customer_status.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/customer_status.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/customer_status.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/deleted.md b/archive/_integration-schemas/netsuite/v10-15-2015/deleted.md
similarity index 98%
rename from _integration-schemas/netsuite/v10-15-2015/deleted.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/deleted.md
index 42e9b1b09..827ada4cc 100644
--- a/_integration-schemas/netsuite/v10-15-2015/deleted.md
+++ b/archive/_integration-schemas/netsuite/v10-15-2015/deleted.md
@@ -3,7 +3,7 @@ tap: "netsuite"
version: "10-15-2015"
name: "netsuite_deleted"
-doc-link:
+
description: |
The `{{ table.name }}` table contains info about deleted records.
diff --git a/_integration-schemas/netsuite/v10-15-2015/department.md b/archive/_integration-schemas/netsuite/v10-15-2015/department.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/department.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/department.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/entity_group.md b/archive/_integration-schemas/netsuite/v10-15-2015/entity_group.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/entity_group.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/entity_group.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/expense_category.md b/archive/_integration-schemas/netsuite/v10-15-2015/expense_category.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/expense_category.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/expense_category.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/folder.md b/archive/_integration-schemas/netsuite/v10-15-2015/folder.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/folder.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/folder.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/gift_certificate.md b/archive/_integration-schemas/netsuite/v10-15-2015/gift_certificate.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/gift_certificate.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/gift_certificate.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/global_account_mapping.md b/archive/_integration-schemas/netsuite/v10-15-2015/global_account_mapping.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/global_account_mapping.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/global_account_mapping.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/inventory_number.md b/archive/_integration-schemas/netsuite/v10-15-2015/inventory_number.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/inventory_number.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/inventory_number.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/item_account_mapping.md b/archive/_integration-schemas/netsuite/v10-15-2015/item_account_mapping.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/item_account_mapping.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/item_account_mapping.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/item_demand_plan.md b/archive/_integration-schemas/netsuite/v10-15-2015/item_demand_plan.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/item_demand_plan.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/item_demand_plan.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/item_revision.md b/archive/_integration-schemas/netsuite/v10-15-2015/item_revision.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/item_revision.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/item_revision.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/item_supply_plan.md b/archive/_integration-schemas/netsuite/v10-15-2015/item_supply_plan.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/item_supply_plan.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/item_supply_plan.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/job.md b/archive/_integration-schemas/netsuite/v10-15-2015/job.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/job.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/job.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/job_status.md b/archive/_integration-schemas/netsuite/v10-15-2015/job_status.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/job_status.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/job_status.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/job_type.md b/archive/_integration-schemas/netsuite/v10-15-2015/job_type.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/job_type.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/job_type.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/manufacturing_cost_template.md b/archive/_integration-schemas/netsuite/v10-15-2015/manufacturing_cost_template.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/manufacturing_cost_template.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/manufacturing_cost_template.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/manufacturing_operation_task.md b/archive/_integration-schemas/netsuite/v10-15-2015/manufacturing_operation_task.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/manufacturing_operation_task.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/manufacturing_operation_task.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/manufacturing_routing.md b/archive/_integration-schemas/netsuite/v10-15-2015/manufacturing_routing.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/manufacturing_routing.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/manufacturing_routing.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/message.md b/archive/_integration-schemas/netsuite/v10-15-2015/message.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/message.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/message.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/nexus.md b/archive/_integration-schemas/netsuite/v10-15-2015/nexus.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/nexus.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/nexus.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/note.md b/archive/_integration-schemas/netsuite/v10-15-2015/note.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/note.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/note.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/note_type.md b/archive/_integration-schemas/netsuite/v10-15-2015/note_type.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/note_type.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/note_type.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/opportunity.md b/archive/_integration-schemas/netsuite/v10-15-2015/opportunity.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/opportunity.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/opportunity.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/originating_lead.md b/archive/_integration-schemas/netsuite/v10-15-2015/originating_lead.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/originating_lead.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/originating_lead.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/other_name_category.md b/archive/_integration-schemas/netsuite/v10-15-2015/other_name_category.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/other_name_category.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/other_name_category.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/partner_category.md b/archive/_integration-schemas/netsuite/v10-15-2015/partner_category.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/partner_category.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/partner_category.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/payment_method.md b/archive/_integration-schemas/netsuite/v10-15-2015/payment_method.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/payment_method.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/payment_method.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/payroll_item.md b/archive/_integration-schemas/netsuite/v10-15-2015/payroll_item.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/payroll_item.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/payroll_item.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/phone_call.md b/archive/_integration-schemas/netsuite/v10-15-2015/phone_call.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/phone_call.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/phone_call.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/price_level.md b/archive/_integration-schemas/netsuite/v10-15-2015/price_level.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/price_level.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/price_level.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/pricing_group.md b/archive/_integration-schemas/netsuite/v10-15-2015/pricing_group.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/pricing_group.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/pricing_group.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/project_task.md b/archive/_integration-schemas/netsuite/v10-15-2015/project_task.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/project_task.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/project_task.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/promotion_code.md b/archive/_integration-schemas/netsuite/v10-15-2015/promotion_code.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/promotion_code.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/promotion_code.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/resource_allocation.md b/archive/_integration-schemas/netsuite/v10-15-2015/resource_allocation.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/resource_allocation.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/resource_allocation.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/rev_rec_schedule.md b/archive/_integration-schemas/netsuite/v10-15-2015/rev_rec_schedule.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/rev_rec_schedule.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/rev_rec_schedule.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/rev_rec_template.md b/archive/_integration-schemas/netsuite/v10-15-2015/rev_rec_template.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/rev_rec_template.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/rev_rec_template.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/sales_role.md b/archive/_integration-schemas/netsuite/v10-15-2015/sales_role.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/sales_role.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/sales_role.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/site_category.md b/archive/_integration-schemas/netsuite/v10-15-2015/site_category.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/site_category.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/site_category.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/solution.md b/archive/_integration-schemas/netsuite/v10-15-2015/solution.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/solution.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/solution.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/subsidiary.md b/archive/_integration-schemas/netsuite/v10-15-2015/subsidiary.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/subsidiary.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/subsidiary.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/support_case.md b/archive/_integration-schemas/netsuite/v10-15-2015/support_case.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/support_case.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/support_case.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/task.md b/archive/_integration-schemas/netsuite/v10-15-2015/task.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/task.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/task.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/term.md b/archive/_integration-schemas/netsuite/v10-15-2015/term.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/term.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/term.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/time_bill.md b/archive/_integration-schemas/netsuite/v10-15-2015/time_bill.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/time_bill.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/time_bill.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/time_entry.md b/archive/_integration-schemas/netsuite/v10-15-2015/time_entry.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/time_entry.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/time_entry.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/time_sheet.md b/archive/_integration-schemas/netsuite/v10-15-2015/time_sheet.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/time_sheet.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/time_sheet.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/transaction.md b/archive/_integration-schemas/netsuite/v10-15-2015/transaction.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/transaction.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/transaction.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/units_type.md b/archive/_integration-schemas/netsuite/v10-15-2015/units_type.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/units_type.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/units_type.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/vendor_category.md b/archive/_integration-schemas/netsuite/v10-15-2015/vendor_category.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/vendor_category.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/vendor_category.md
diff --git a/_integration-schemas/netsuite/v10-15-2015/win_loss_reason.md b/archive/_integration-schemas/netsuite/v10-15-2015/win_loss_reason.md
similarity index 100%
rename from _integration-schemas/netsuite/v10-15-2015/win_loss_reason.md
rename to archive/_integration-schemas/netsuite/v10-15-2015/win_loss_reason.md
diff --git a/_integration-schemas/netsuite/v2/Account.md b/archive/_integration-schemas/netsuite/v2/Account.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Account.md
rename to archive/_integration-schemas/netsuite/v2/Account.md
diff --git a/_integration-schemas/netsuite/v2/AccountingPeriod.md b/archive/_integration-schemas/netsuite/v2/AccountingPeriod.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/AccountingPeriod.md
rename to archive/_integration-schemas/netsuite/v2/AccountingPeriod.md
diff --git a/_integration-schemas/netsuite/v2/Address.md b/archive/_integration-schemas/netsuite/v2/Address.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Address.md
rename to archive/_integration-schemas/netsuite/v2/Address.md
diff --git a/_integration-schemas/netsuite/v2/BillingAccount.md b/archive/_integration-schemas/netsuite/v2/BillingAccount.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/BillingAccount.md
rename to archive/_integration-schemas/netsuite/v2/BillingAccount.md
diff --git a/_integration-schemas/netsuite/v2/BillingSchedule.md b/archive/_integration-schemas/netsuite/v2/BillingSchedule.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/BillingSchedule.md
rename to archive/_integration-schemas/netsuite/v2/BillingSchedule.md
diff --git a/_integration-schemas/netsuite/v2/Bin.md b/archive/_integration-schemas/netsuite/v2/Bin.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Bin.md
rename to archive/_integration-schemas/netsuite/v2/Bin.md
diff --git a/_integration-schemas/netsuite/v2/Bom.md b/archive/_integration-schemas/netsuite/v2/Bom.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Bom.md
rename to archive/_integration-schemas/netsuite/v2/Bom.md
diff --git a/_integration-schemas/netsuite/v2/BomRevision.md b/archive/_integration-schemas/netsuite/v2/BomRevision.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/BomRevision.md
rename to archive/_integration-schemas/netsuite/v2/BomRevision.md
diff --git a/_integration-schemas/netsuite/v2/Budget.md b/archive/_integration-schemas/netsuite/v2/Budget.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Budget.md
rename to archive/_integration-schemas/netsuite/v2/Budget.md
diff --git a/_integration-schemas/netsuite/v2/CalendarEvent.md b/archive/_integration-schemas/netsuite/v2/CalendarEvent.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/CalendarEvent.md
rename to archive/_integration-schemas/netsuite/v2/CalendarEvent.md
diff --git a/_integration-schemas/netsuite/v2/Campaign.md b/archive/_integration-schemas/netsuite/v2/Campaign.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Campaign.md
rename to archive/_integration-schemas/netsuite/v2/Campaign.md
diff --git a/_integration-schemas/netsuite/v2/Charge.md b/archive/_integration-schemas/netsuite/v2/Charge.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Charge.md
rename to archive/_integration-schemas/netsuite/v2/Charge.md
diff --git a/_integration-schemas/netsuite/v2/Classification.md b/archive/_integration-schemas/netsuite/v2/Classification.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Classification.md
rename to archive/_integration-schemas/netsuite/v2/Classification.md
diff --git a/_integration-schemas/netsuite/v2/ConsolidatedExchangeRate.md b/archive/_integration-schemas/netsuite/v2/ConsolidatedExchangeRate.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/ConsolidatedExchangeRate.md
rename to archive/_integration-schemas/netsuite/v2/ConsolidatedExchangeRate.md
diff --git a/_integration-schemas/netsuite/v2/Contact.md b/archive/_integration-schemas/netsuite/v2/Contact.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Contact.md
rename to archive/_integration-schemas/netsuite/v2/Contact.md
diff --git a/_integration-schemas/netsuite/v2/ContactCategory.md b/archive/_integration-schemas/netsuite/v2/ContactCategory.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/ContactCategory.md
rename to archive/_integration-schemas/netsuite/v2/ContactCategory.md
diff --git a/_integration-schemas/netsuite/v2/ContactRole.md b/archive/_integration-schemas/netsuite/v2/ContactRole.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/ContactRole.md
rename to archive/_integration-schemas/netsuite/v2/ContactRole.md
diff --git a/_integration-schemas/netsuite/v2/CostCategory.md b/archive/_integration-schemas/netsuite/v2/CostCategory.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/CostCategory.md
rename to archive/_integration-schemas/netsuite/v2/CostCategory.md
diff --git a/_integration-schemas/netsuite/v2/CouponCode.md b/archive/_integration-schemas/netsuite/v2/CouponCode.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/CouponCode.md
rename to archive/_integration-schemas/netsuite/v2/CouponCode.md
diff --git a/_integration-schemas/netsuite/v2/CurrencyRate.md b/archive/_integration-schemas/netsuite/v2/CurrencyRate.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/CurrencyRate.md
rename to archive/_integration-schemas/netsuite/v2/CurrencyRate.md
diff --git a/_integration-schemas/netsuite/v2/CustomList.md b/archive/_integration-schemas/netsuite/v2/CustomList.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/CustomList.md
rename to archive/_integration-schemas/netsuite/v2/CustomList.md
diff --git a/_integration-schemas/netsuite/v2/Customer.md b/archive/_integration-schemas/netsuite/v2/Customer.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Customer.md
rename to archive/_integration-schemas/netsuite/v2/Customer.md
diff --git a/_integration-schemas/netsuite/v2/CustomerCategory.md b/archive/_integration-schemas/netsuite/v2/CustomerCategory.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/CustomerCategory.md
rename to archive/_integration-schemas/netsuite/v2/CustomerCategory.md
diff --git a/_integration-schemas/netsuite/v2/CustomerMessage.md b/archive/_integration-schemas/netsuite/v2/CustomerMessage.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/CustomerMessage.md
rename to archive/_integration-schemas/netsuite/v2/CustomerMessage.md
diff --git a/_integration-schemas/netsuite/v2/CustomerStatus.md b/archive/_integration-schemas/netsuite/v2/CustomerStatus.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/CustomerStatus.md
rename to archive/_integration-schemas/netsuite/v2/CustomerStatus.md
diff --git a/_integration-schemas/netsuite/v2/CustomerSubsidiaryRelationship.md b/archive/_integration-schemas/netsuite/v2/CustomerSubsidiaryRelationship.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/CustomerSubsidiaryRelationship.md
rename to archive/_integration-schemas/netsuite/v2/CustomerSubsidiaryRelationship.md
diff --git a/_integration-schemas/netsuite/v2/Deleted.md b/archive/_integration-schemas/netsuite/v2/Deleted.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Deleted.md
rename to archive/_integration-schemas/netsuite/v2/Deleted.md
diff --git a/_integration-schemas/netsuite/v2/Department.md b/archive/_integration-schemas/netsuite/v2/Department.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Department.md
rename to archive/_integration-schemas/netsuite/v2/Department.md
diff --git a/_integration-schemas/netsuite/v2/Employee.md b/archive/_integration-schemas/netsuite/v2/Employee.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Employee.md
rename to archive/_integration-schemas/netsuite/v2/Employee.md
diff --git a/_integration-schemas/netsuite/v2/EntityGroup.md b/archive/_integration-schemas/netsuite/v2/EntityGroup.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/EntityGroup.md
rename to archive/_integration-schemas/netsuite/v2/EntityGroup.md
diff --git a/_integration-schemas/netsuite/v2/ExpenseCategory.md b/archive/_integration-schemas/netsuite/v2/ExpenseCategory.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/ExpenseCategory.md
rename to archive/_integration-schemas/netsuite/v2/ExpenseCategory.md
diff --git a/_integration-schemas/netsuite/v2/FairValuePrice.md b/archive/_integration-schemas/netsuite/v2/FairValuePrice.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/FairValuePrice.md
rename to archive/_integration-schemas/netsuite/v2/FairValuePrice.md
diff --git a/_integration-schemas/netsuite/v2/File.md b/archive/_integration-schemas/netsuite/v2/File.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/File.md
rename to archive/_integration-schemas/netsuite/v2/File.md
diff --git a/_integration-schemas/netsuite/v2/Folder.md b/archive/_integration-schemas/netsuite/v2/Folder.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Folder.md
rename to archive/_integration-schemas/netsuite/v2/Folder.md
diff --git a/_integration-schemas/netsuite/v2/GiftCertificate.md b/archive/_integration-schemas/netsuite/v2/GiftCertificate.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/GiftCertificate.md
rename to archive/_integration-schemas/netsuite/v2/GiftCertificate.md
diff --git a/_integration-schemas/netsuite/v2/GlobalAccountMapping.md b/archive/_integration-schemas/netsuite/v2/GlobalAccountMapping.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/GlobalAccountMapping.md
rename to archive/_integration-schemas/netsuite/v2/GlobalAccountMapping.md
diff --git a/_integration-schemas/netsuite/v2/HcmJob.md b/archive/_integration-schemas/netsuite/v2/HcmJob.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/HcmJob.md
rename to archive/_integration-schemas/netsuite/v2/HcmJob.md
diff --git a/_integration-schemas/netsuite/v2/InboundShipment.md b/archive/_integration-schemas/netsuite/v2/InboundShipment.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/InboundShipment.md
rename to archive/_integration-schemas/netsuite/v2/InboundShipment.md
diff --git a/_integration-schemas/netsuite/v2/InventoryNumber.md b/archive/_integration-schemas/netsuite/v2/InventoryNumber.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/InventoryNumber.md
rename to archive/_integration-schemas/netsuite/v2/InventoryNumber.md
diff --git a/_integration-schemas/netsuite/v2/Issue.md b/archive/_integration-schemas/netsuite/v2/Issue.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Issue.md
rename to archive/_integration-schemas/netsuite/v2/Issue.md
diff --git a/_integration-schemas/netsuite/v2/Item.md b/archive/_integration-schemas/netsuite/v2/Item.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Item.md
rename to archive/_integration-schemas/netsuite/v2/Item.md
diff --git a/_integration-schemas/netsuite/v2/ItemAccountMapping.md b/archive/_integration-schemas/netsuite/v2/ItemAccountMapping.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/ItemAccountMapping.md
rename to archive/_integration-schemas/netsuite/v2/ItemAccountMapping.md
diff --git a/_integration-schemas/netsuite/v2/ItemDemandPlan.md b/archive/_integration-schemas/netsuite/v2/ItemDemandPlan.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/ItemDemandPlan.md
rename to archive/_integration-schemas/netsuite/v2/ItemDemandPlan.md
diff --git a/_integration-schemas/netsuite/v2/ItemRevision.md b/archive/_integration-schemas/netsuite/v2/ItemRevision.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/ItemRevision.md
rename to archive/_integration-schemas/netsuite/v2/ItemRevision.md
diff --git a/_integration-schemas/netsuite/v2/ItemSupplyPlan.md b/archive/_integration-schemas/netsuite/v2/ItemSupplyPlan.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/ItemSupplyPlan.md
rename to archive/_integration-schemas/netsuite/v2/ItemSupplyPlan.md
diff --git a/_integration-schemas/netsuite/v2/Job.md b/archive/_integration-schemas/netsuite/v2/Job.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Job.md
rename to archive/_integration-schemas/netsuite/v2/Job.md
diff --git a/_integration-schemas/netsuite/v2/JobStatus.md b/archive/_integration-schemas/netsuite/v2/JobStatus.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/JobStatus.md
rename to archive/_integration-schemas/netsuite/v2/JobStatus.md
diff --git a/_integration-schemas/netsuite/v2/JobType.md b/archive/_integration-schemas/netsuite/v2/JobType.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/JobType.md
rename to archive/_integration-schemas/netsuite/v2/JobType.md
diff --git a/_integration-schemas/netsuite/v2/Location.md b/archive/_integration-schemas/netsuite/v2/Location.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Location.md
rename to archive/_integration-schemas/netsuite/v2/Location.md
diff --git a/_integration-schemas/netsuite/v2/ManufacturingCostTemplate.md b/archive/_integration-schemas/netsuite/v2/ManufacturingCostTemplate.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/ManufacturingCostTemplate.md
rename to archive/_integration-schemas/netsuite/v2/ManufacturingCostTemplate.md
diff --git a/_integration-schemas/netsuite/v2/ManufacturingOperationTask.md b/archive/_integration-schemas/netsuite/v2/ManufacturingOperationTask.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/ManufacturingOperationTask.md
rename to archive/_integration-schemas/netsuite/v2/ManufacturingOperationTask.md
diff --git a/_integration-schemas/netsuite/v2/ManufacturingRouting.md b/archive/_integration-schemas/netsuite/v2/ManufacturingRouting.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/ManufacturingRouting.md
rename to archive/_integration-schemas/netsuite/v2/ManufacturingRouting.md
diff --git a/_integration-schemas/netsuite/v2/MerchandiseHierarchyNode.md b/archive/_integration-schemas/netsuite/v2/MerchandiseHierarchyNode.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/MerchandiseHierarchyNode.md
rename to archive/_integration-schemas/netsuite/v2/MerchandiseHierarchyNode.md
diff --git a/_integration-schemas/netsuite/v2/Message.md b/archive/_integration-schemas/netsuite/v2/Message.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Message.md
rename to archive/_integration-schemas/netsuite/v2/Message.md
diff --git a/_integration-schemas/netsuite/v2/Nexus.md b/archive/_integration-schemas/netsuite/v2/Nexus.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Nexus.md
rename to archive/_integration-schemas/netsuite/v2/Nexus.md
diff --git a/_integration-schemas/netsuite/v2/Note.md b/archive/_integration-schemas/netsuite/v2/Note.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Note.md
rename to archive/_integration-schemas/netsuite/v2/Note.md
diff --git a/_integration-schemas/netsuite/v2/NoteType.md b/archive/_integration-schemas/netsuite/v2/NoteType.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/NoteType.md
rename to archive/_integration-schemas/netsuite/v2/NoteType.md
diff --git a/_integration-schemas/netsuite/v2/Opportunity.md b/archive/_integration-schemas/netsuite/v2/Opportunity.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Opportunity.md
rename to archive/_integration-schemas/netsuite/v2/Opportunity.md
diff --git a/_integration-schemas/netsuite/v2/OtherNameCategory.md b/archive/_integration-schemas/netsuite/v2/OtherNameCategory.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/OtherNameCategory.md
rename to archive/_integration-schemas/netsuite/v2/OtherNameCategory.md
diff --git a/_integration-schemas/netsuite/v2/Partner.md b/archive/_integration-schemas/netsuite/v2/Partner.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Partner.md
rename to archive/_integration-schemas/netsuite/v2/Partner.md
diff --git a/_integration-schemas/netsuite/v2/PartnerCategory.md b/archive/_integration-schemas/netsuite/v2/PartnerCategory.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/PartnerCategory.md
rename to archive/_integration-schemas/netsuite/v2/PartnerCategory.md
diff --git a/_integration-schemas/netsuite/v2/Paycheck.md b/archive/_integration-schemas/netsuite/v2/Paycheck.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Paycheck.md
rename to archive/_integration-schemas/netsuite/v2/Paycheck.md
diff --git a/_integration-schemas/netsuite/v2/PaymentMethod.md b/archive/_integration-schemas/netsuite/v2/PaymentMethod.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/PaymentMethod.md
rename to archive/_integration-schemas/netsuite/v2/PaymentMethod.md
diff --git a/_integration-schemas/netsuite/v2/PayrollItem.md b/archive/_integration-schemas/netsuite/v2/PayrollItem.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/PayrollItem.md
rename to archive/_integration-schemas/netsuite/v2/PayrollItem.md
diff --git a/_integration-schemas/netsuite/v2/PhoneCall.md b/archive/_integration-schemas/netsuite/v2/PhoneCall.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/PhoneCall.md
rename to archive/_integration-schemas/netsuite/v2/PhoneCall.md
diff --git a/_integration-schemas/netsuite/v2/PriceLevel.md b/archive/_integration-schemas/netsuite/v2/PriceLevel.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/PriceLevel.md
rename to archive/_integration-schemas/netsuite/v2/PriceLevel.md
diff --git a/_integration-schemas/netsuite/v2/PricingGroup.md b/archive/_integration-schemas/netsuite/v2/PricingGroup.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/PricingGroup.md
rename to archive/_integration-schemas/netsuite/v2/PricingGroup.md
diff --git a/_integration-schemas/netsuite/v2/ProjectTask.md b/archive/_integration-schemas/netsuite/v2/ProjectTask.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/ProjectTask.md
rename to archive/_integration-schemas/netsuite/v2/ProjectTask.md
diff --git a/_integration-schemas/netsuite/v2/PromotionCode.md b/archive/_integration-schemas/netsuite/v2/PromotionCode.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/PromotionCode.md
rename to archive/_integration-schemas/netsuite/v2/PromotionCode.md
diff --git a/_integration-schemas/netsuite/v2/ResourceAllocation.md b/archive/_integration-schemas/netsuite/v2/ResourceAllocation.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/ResourceAllocation.md
rename to archive/_integration-schemas/netsuite/v2/ResourceAllocation.md
diff --git a/_integration-schemas/netsuite/v2/RevRecSchedule.md b/archive/_integration-schemas/netsuite/v2/RevRecSchedule.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/RevRecSchedule.md
rename to archive/_integration-schemas/netsuite/v2/RevRecSchedule.md
diff --git a/_integration-schemas/netsuite/v2/RevRecTemplate.md b/archive/_integration-schemas/netsuite/v2/RevRecTemplate.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/RevRecTemplate.md
rename to archive/_integration-schemas/netsuite/v2/RevRecTemplate.md
diff --git a/_integration-schemas/netsuite/v2/SalesRole.md b/archive/_integration-schemas/netsuite/v2/SalesRole.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/SalesRole.md
rename to archive/_integration-schemas/netsuite/v2/SalesRole.md
diff --git a/_integration-schemas/netsuite/v2/SalesTaxItem.md b/archive/_integration-schemas/netsuite/v2/SalesTaxItem.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/SalesTaxItem.md
rename to archive/_integration-schemas/netsuite/v2/SalesTaxItem.md
diff --git a/_integration-schemas/netsuite/v2/SiteCategory.md b/archive/_integration-schemas/netsuite/v2/SiteCategory.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/SiteCategory.md
rename to archive/_integration-schemas/netsuite/v2/SiteCategory.md
diff --git a/_integration-schemas/netsuite/v2/Solution.md b/archive/_integration-schemas/netsuite/v2/Solution.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Solution.md
rename to archive/_integration-schemas/netsuite/v2/Solution.md
diff --git a/_integration-schemas/netsuite/v2/Subsidiary.md b/archive/_integration-schemas/netsuite/v2/Subsidiary.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Subsidiary.md
rename to archive/_integration-schemas/netsuite/v2/Subsidiary.md
diff --git a/_integration-schemas/netsuite/v2/SupportCase.md b/archive/_integration-schemas/netsuite/v2/SupportCase.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/SupportCase.md
rename to archive/_integration-schemas/netsuite/v2/SupportCase.md
diff --git a/_integration-schemas/netsuite/v2/Task.md b/archive/_integration-schemas/netsuite/v2/Task.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Task.md
rename to archive/_integration-schemas/netsuite/v2/Task.md
diff --git a/_integration-schemas/netsuite/v2/TaxGroup.md b/archive/_integration-schemas/netsuite/v2/TaxGroup.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/TaxGroup.md
rename to archive/_integration-schemas/netsuite/v2/TaxGroup.md
diff --git a/_integration-schemas/netsuite/v2/TaxType.md b/archive/_integration-schemas/netsuite/v2/TaxType.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/TaxType.md
rename to archive/_integration-schemas/netsuite/v2/TaxType.md
diff --git a/_integration-schemas/netsuite/v2/Term.md b/archive/_integration-schemas/netsuite/v2/Term.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Term.md
rename to archive/_integration-schemas/netsuite/v2/Term.md
diff --git a/_integration-schemas/netsuite/v2/TimeBill.md b/archive/_integration-schemas/netsuite/v2/TimeBill.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/TimeBill.md
rename to archive/_integration-schemas/netsuite/v2/TimeBill.md
diff --git a/_integration-schemas/netsuite/v2/TimeEntry.md b/archive/_integration-schemas/netsuite/v2/TimeEntry.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/TimeEntry.md
rename to archive/_integration-schemas/netsuite/v2/TimeEntry.md
diff --git a/_integration-schemas/netsuite/v2/TimeSheet.md b/archive/_integration-schemas/netsuite/v2/TimeSheet.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/TimeSheet.md
rename to archive/_integration-schemas/netsuite/v2/TimeSheet.md
diff --git a/_integration-schemas/netsuite/v2/Topic.md b/archive/_integration-schemas/netsuite/v2/Topic.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Topic.md
rename to archive/_integration-schemas/netsuite/v2/Topic.md
diff --git a/_integration-schemas/netsuite/v2/Transaction.md b/archive/_integration-schemas/netsuite/v2/Transaction.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Transaction.md
rename to archive/_integration-schemas/netsuite/v2/Transaction.md
diff --git a/_integration-schemas/netsuite/v2/UnitsType.md b/archive/_integration-schemas/netsuite/v2/UnitsType.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/UnitsType.md
rename to archive/_integration-schemas/netsuite/v2/UnitsType.md
diff --git a/_integration-schemas/netsuite/v2/Usage.md b/archive/_integration-schemas/netsuite/v2/Usage.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Usage.md
rename to archive/_integration-schemas/netsuite/v2/Usage.md
diff --git a/_integration-schemas/netsuite/v2/Vendor.md b/archive/_integration-schemas/netsuite/v2/Vendor.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/Vendor.md
rename to archive/_integration-schemas/netsuite/v2/Vendor.md
diff --git a/_integration-schemas/netsuite/v2/VendorCategory.md b/archive/_integration-schemas/netsuite/v2/VendorCategory.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/VendorCategory.md
rename to archive/_integration-schemas/netsuite/v2/VendorCategory.md
diff --git a/_integration-schemas/netsuite/v2/VendorSubsidiaryRelationship.md b/archive/_integration-schemas/netsuite/v2/VendorSubsidiaryRelationship.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/VendorSubsidiaryRelationship.md
rename to archive/_integration-schemas/netsuite/v2/VendorSubsidiaryRelationship.md
diff --git a/_integration-schemas/netsuite/v2/WinLossReason.md b/archive/_integration-schemas/netsuite/v2/WinLossReason.md
similarity index 100%
rename from _integration-schemas/netsuite/v2/WinLossReason.md
rename to archive/_integration-schemas/netsuite/v2/WinLossReason.md
diff --git a/_integration-schemas/onfleet/v1/administrators.md b/archive/_integration-schemas/onfleet/v1/administrators.md
similarity index 100%
rename from _integration-schemas/onfleet/v1/administrators.md
rename to archive/_integration-schemas/onfleet/v1/administrators.md
diff --git a/_integration-schemas/onfleet/v1/foreign-keys.md b/archive/_integration-schemas/onfleet/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/onfleet/v1/foreign-keys.md
rename to archive/_integration-schemas/onfleet/v1/foreign-keys.md
diff --git a/_integration-schemas/onfleet/v1/hubs.md b/archive/_integration-schemas/onfleet/v1/hubs.md
similarity index 100%
rename from _integration-schemas/onfleet/v1/hubs.md
rename to archive/_integration-schemas/onfleet/v1/hubs.md
diff --git a/_integration-schemas/onfleet/v1/organizations.md b/archive/_integration-schemas/onfleet/v1/organizations.md
similarity index 100%
rename from _integration-schemas/onfleet/v1/organizations.md
rename to archive/_integration-schemas/onfleet/v1/organizations.md
diff --git a/_integration-schemas/onfleet/v1/tasks.md b/archive/_integration-schemas/onfleet/v1/tasks.md
similarity index 100%
rename from _integration-schemas/onfleet/v1/tasks.md
rename to archive/_integration-schemas/onfleet/v1/tasks.md
diff --git a/_integration-schemas/onfleet/v1/teams.md b/archive/_integration-schemas/onfleet/v1/teams.md
similarity index 100%
rename from _integration-schemas/onfleet/v1/teams.md
rename to archive/_integration-schemas/onfleet/v1/teams.md
diff --git a/_integration-schemas/onfleet/v1/workers.md b/archive/_integration-schemas/onfleet/v1/workers.md
similarity index 100%
rename from _integration-schemas/onfleet/v1/workers.md
rename to archive/_integration-schemas/onfleet/v1/workers.md
diff --git a/_integration-schemas/outbrain/campaign_performance.md b/archive/_integration-schemas/outbrain/campaign_performance.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/outbrain/campaign_performance.md
rename to archive/_integration-schemas/outbrain/campaign_performance.md
diff --git a/_integration-schemas/outbrain/campaigns.md b/archive/_integration-schemas/outbrain/campaigns.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/outbrain/campaigns.md
rename to archive/_integration-schemas/outbrain/campaigns.md
diff --git a/_integration-schemas/outbrain/link_performance.md b/archive/_integration-schemas/outbrain/link_performance.md
old mode 100755
new mode 100644
similarity index 98%
rename from _integration-schemas/outbrain/link_performance.md
rename to archive/_integration-schemas/outbrain/link_performance.md
index 4230dea75..ee5ecda7c
--- a/_integration-schemas/outbrain/link_performance.md
+++ b/archive/_integration-schemas/outbrain/link_performance.md
@@ -9,7 +9,7 @@
# name: "link_performance"
# doc-link:
-# singer-schema:
+#
# description: |
# The `link_performance` table contains performance metrics for links in your Outbrain campaigns.
diff --git a/_integration-schemas/outbrain/links.md b/archive/_integration-schemas/outbrain/links.md
old mode 100755
new mode 100644
similarity index 98%
rename from _integration-schemas/outbrain/links.md
rename to archive/_integration-schemas/outbrain/links.md
index 1d2c142b5..e08aa134f
--- a/_integration-schemas/outbrain/links.md
+++ b/archive/_integration-schemas/outbrain/links.md
@@ -5,7 +5,7 @@
# Not currently persisted as endpoint is too slow
name: "links"
-doc-link:
+
description: "info about links in your Outbrain campaigns."
notes:
replication-method: "Key-based Incremental"
diff --git a/_integration-schemas/outreach/v1/accounts.md b/archive/_integration-schemas/outreach/v1/accounts.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/outreach/v1/accounts.md
rename to archive/_integration-schemas/outreach/v1/accounts.md
diff --git a/_integration-schemas/outreach/v1/call_dispositions.md b/archive/_integration-schemas/outreach/v1/call_dispositions.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/outreach/v1/call_dispositions.md
rename to archive/_integration-schemas/outreach/v1/call_dispositions.md
diff --git a/_integration-schemas/outreach/v1/call_purposes.md b/archive/_integration-schemas/outreach/v1/call_purposes.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/outreach/v1/call_purposes.md
rename to archive/_integration-schemas/outreach/v1/call_purposes.md
diff --git a/_integration-schemas/outreach/v1/calls.md b/archive/_integration-schemas/outreach/v1/calls.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/outreach/v1/calls.md
rename to archive/_integration-schemas/outreach/v1/calls.md
diff --git a/_integration-schemas/outreach/v1/content_categories.md b/archive/_integration-schemas/outreach/v1/content_categories.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/outreach/v1/content_categories.md
rename to archive/_integration-schemas/outreach/v1/content_categories.md
diff --git a/_integration-schemas/outreach/v1/duties.md b/archive/_integration-schemas/outreach/v1/duties.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/outreach/v1/duties.md
rename to archive/_integration-schemas/outreach/v1/duties.md
diff --git a/_integration-schemas/outreach/v1/events.md b/archive/_integration-schemas/outreach/v1/events.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/outreach/v1/events.md
rename to archive/_integration-schemas/outreach/v1/events.md
diff --git a/_integration-schemas/outreach/v1/foreign-keys.md b/archive/_integration-schemas/outreach/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/outreach/v1/foreign-keys.md
rename to archive/_integration-schemas/outreach/v1/foreign-keys.md
diff --git a/_integration-schemas/outreach/v1/mailboxes.md b/archive/_integration-schemas/outreach/v1/mailboxes.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/outreach/v1/mailboxes.md
rename to archive/_integration-schemas/outreach/v1/mailboxes.md
diff --git a/_integration-schemas/outreach/v1/mailings.md b/archive/_integration-schemas/outreach/v1/mailings.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/outreach/v1/mailings.md
rename to archive/_integration-schemas/outreach/v1/mailings.md
diff --git a/_integration-schemas/outreach/v1/opportunities.md b/archive/_integration-schemas/outreach/v1/opportunities.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/outreach/v1/opportunities.md
rename to archive/_integration-schemas/outreach/v1/opportunities.md
diff --git a/_integration-schemas/outreach/v1/personas.md b/archive/_integration-schemas/outreach/v1/personas.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/outreach/v1/personas.md
rename to archive/_integration-schemas/outreach/v1/personas.md
diff --git a/_integration-schemas/outreach/v1/prospects.md b/archive/_integration-schemas/outreach/v1/prospects.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/outreach/v1/prospects.md
rename to archive/_integration-schemas/outreach/v1/prospects.md
diff --git a/_integration-schemas/outreach/v1/sequence_states.md b/archive/_integration-schemas/outreach/v1/sequence_states.md
similarity index 100%
rename from _integration-schemas/outreach/v1/sequence_states.md
rename to archive/_integration-schemas/outreach/v1/sequence_states.md
diff --git a/_integration-schemas/outreach/v1/sequence_steps.md b/archive/_integration-schemas/outreach/v1/sequence_steps.md
similarity index 100%
rename from _integration-schemas/outreach/v1/sequence_steps.md
rename to archive/_integration-schemas/outreach/v1/sequence_steps.md
diff --git a/_integration-schemas/outreach/v1/sequence_templates.md b/archive/_integration-schemas/outreach/v1/sequence_templates.md
similarity index 100%
rename from _integration-schemas/outreach/v1/sequence_templates.md
rename to archive/_integration-schemas/outreach/v1/sequence_templates.md
diff --git a/_integration-schemas/outreach/v1/sequences.md b/archive/_integration-schemas/outreach/v1/sequences.md
similarity index 100%
rename from _integration-schemas/outreach/v1/sequences.md
rename to archive/_integration-schemas/outreach/v1/sequences.md
diff --git a/_integration-schemas/outreach/v1/stages.md b/archive/_integration-schemas/outreach/v1/stages.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/outreach/v1/stages.md
rename to archive/_integration-schemas/outreach/v1/stages.md
diff --git a/_integration-schemas/outreach/v1/tasks.md b/archive/_integration-schemas/outreach/v1/tasks.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/outreach/v1/tasks.md
rename to archive/_integration-schemas/outreach/v1/tasks.md
diff --git a/_integration-schemas/outreach/v1/teams.md b/archive/_integration-schemas/outreach/v1/teams.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/outreach/v1/teams.md
rename to archive/_integration-schemas/outreach/v1/teams.md
diff --git a/_integration-schemas/outreach/v1/users.md b/archive/_integration-schemas/outreach/v1/users.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/outreach/v1/users.md
rename to archive/_integration-schemas/outreach/v1/users.md
diff --git a/_integration-schemas/pardot/v1/campaigns.md b/archive/_integration-schemas/pardot/v1/campaigns.md
similarity index 100%
rename from _integration-schemas/pardot/v1/campaigns.md
rename to archive/_integration-schemas/pardot/v1/campaigns.md
diff --git a/_integration-schemas/pardot/v1/email_clicks.md b/archive/_integration-schemas/pardot/v1/email_clicks.md
similarity index 100%
rename from _integration-schemas/pardot/v1/email_clicks.md
rename to archive/_integration-schemas/pardot/v1/email_clicks.md
diff --git a/_integration-schemas/pardot/v1/foreign-keys.md b/archive/_integration-schemas/pardot/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/pardot/v1/foreign-keys.md
rename to archive/_integration-schemas/pardot/v1/foreign-keys.md
diff --git a/_integration-schemas/pardot/v1/list_memberships.md b/archive/_integration-schemas/pardot/v1/list_memberships.md
similarity index 100%
rename from _integration-schemas/pardot/v1/list_memberships.md
rename to archive/_integration-schemas/pardot/v1/list_memberships.md
diff --git a/_integration-schemas/pardot/v1/lists.md b/archive/_integration-schemas/pardot/v1/lists.md
similarity index 100%
rename from _integration-schemas/pardot/v1/lists.md
rename to archive/_integration-schemas/pardot/v1/lists.md
diff --git a/_integration-schemas/pardot/v1/opportunities.md b/archive/_integration-schemas/pardot/v1/opportunities.md
similarity index 100%
rename from _integration-schemas/pardot/v1/opportunities.md
rename to archive/_integration-schemas/pardot/v1/opportunities.md
diff --git a/_integration-schemas/pardot/v1/prospect_accounts.md b/archive/_integration-schemas/pardot/v1/prospect_accounts.md
similarity index 100%
rename from _integration-schemas/pardot/v1/prospect_accounts.md
rename to archive/_integration-schemas/pardot/v1/prospect_accounts.md
diff --git a/_integration-schemas/pardot/v1/prospects.md b/archive/_integration-schemas/pardot/v1/prospects.md
similarity index 100%
rename from _integration-schemas/pardot/v1/prospects.md
rename to archive/_integration-schemas/pardot/v1/prospects.md
diff --git a/_integration-schemas/pardot/v1/users.md b/archive/_integration-schemas/pardot/v1/users.md
similarity index 100%
rename from _integration-schemas/pardot/v1/users.md
rename to archive/_integration-schemas/pardot/v1/users.md
diff --git a/_integration-schemas/pardot/v1/visitor_activities.md b/archive/_integration-schemas/pardot/v1/visitor_activities.md
similarity index 100%
rename from _integration-schemas/pardot/v1/visitor_activities.md
rename to archive/_integration-schemas/pardot/v1/visitor_activities.md
diff --git a/_integration-schemas/pardot/v1/visitors.md b/archive/_integration-schemas/pardot/v1/visitors.md
similarity index 100%
rename from _integration-schemas/pardot/v1/visitors.md
rename to archive/_integration-schemas/pardot/v1/visitors.md
diff --git a/_integration-schemas/pardot/v1/visits.md b/archive/_integration-schemas/pardot/v1/visits.md
similarity index 100%
rename from _integration-schemas/pardot/v1/visits.md
rename to archive/_integration-schemas/pardot/v1/visits.md
diff --git a/_integration-schemas/pendo/v1/accounts.md b/archive/_integration-schemas/pendo/v1/accounts.md
similarity index 100%
rename from _integration-schemas/pendo/v1/accounts.md
rename to archive/_integration-schemas/pendo/v1/accounts.md
diff --git a/_integration-schemas/pendo/v1/events.md b/archive/_integration-schemas/pendo/v1/events.md
similarity index 100%
rename from _integration-schemas/pendo/v1/events.md
rename to archive/_integration-schemas/pendo/v1/events.md
diff --git a/_integration-schemas/pendo/v1/feature_events.md b/archive/_integration-schemas/pendo/v1/feature_events.md
similarity index 100%
rename from _integration-schemas/pendo/v1/feature_events.md
rename to archive/_integration-schemas/pendo/v1/feature_events.md
diff --git a/_integration-schemas/pendo/v1/features.md b/archive/_integration-schemas/pendo/v1/features.md
similarity index 100%
rename from _integration-schemas/pendo/v1/features.md
rename to archive/_integration-schemas/pendo/v1/features.md
diff --git a/_integration-schemas/pendo/v1/foreign-keys.md b/archive/_integration-schemas/pendo/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/pendo/v1/foreign-keys.md
rename to archive/_integration-schemas/pendo/v1/foreign-keys.md
diff --git a/_integration-schemas/pendo/v1/guide_events.md b/archive/_integration-schemas/pendo/v1/guide_events.md
similarity index 100%
rename from _integration-schemas/pendo/v1/guide_events.md
rename to archive/_integration-schemas/pendo/v1/guide_events.md
diff --git a/_integration-schemas/pendo/v1/guides.md b/archive/_integration-schemas/pendo/v1/guides.md
similarity index 100%
rename from _integration-schemas/pendo/v1/guides.md
rename to archive/_integration-schemas/pendo/v1/guides.md
diff --git a/_integration-schemas/pendo/v1/metadata_accounts.md b/archive/_integration-schemas/pendo/v1/metadata_accounts.md
similarity index 100%
rename from _integration-schemas/pendo/v1/metadata_accounts.md
rename to archive/_integration-schemas/pendo/v1/metadata_accounts.md
diff --git a/_integration-schemas/pendo/v1/metadata_visitors.md b/archive/_integration-schemas/pendo/v1/metadata_visitors.md
similarity index 100%
rename from _integration-schemas/pendo/v1/metadata_visitors.md
rename to archive/_integration-schemas/pendo/v1/metadata_visitors.md
diff --git a/_integration-schemas/pendo/v1/page_events.md b/archive/_integration-schemas/pendo/v1/page_events.md
similarity index 100%
rename from _integration-schemas/pendo/v1/page_events.md
rename to archive/_integration-schemas/pendo/v1/page_events.md
diff --git a/_integration-schemas/pendo/v1/pages.md b/archive/_integration-schemas/pendo/v1/pages.md
similarity index 100%
rename from _integration-schemas/pendo/v1/pages.md
rename to archive/_integration-schemas/pendo/v1/pages.md
diff --git a/_integration-schemas/pendo/v1/poll_events.md b/archive/_integration-schemas/pendo/v1/poll_events.md
similarity index 100%
rename from _integration-schemas/pendo/v1/poll_events.md
rename to archive/_integration-schemas/pendo/v1/poll_events.md
diff --git a/_integration-schemas/pendo/v1/track_events.md b/archive/_integration-schemas/pendo/v1/track_events.md
similarity index 100%
rename from _integration-schemas/pendo/v1/track_events.md
rename to archive/_integration-schemas/pendo/v1/track_events.md
diff --git a/_integration-schemas/pendo/v1/track_types.md b/archive/_integration-schemas/pendo/v1/track_types.md
similarity index 100%
rename from _integration-schemas/pendo/v1/track_types.md
rename to archive/_integration-schemas/pendo/v1/track_types.md
diff --git a/_integration-schemas/pendo/v1/visitor_history.md b/archive/_integration-schemas/pendo/v1/visitor_history.md
similarity index 100%
rename from _integration-schemas/pendo/v1/visitor_history.md
rename to archive/_integration-schemas/pendo/v1/visitor_history.md
diff --git a/_integration-schemas/pendo/v1/visitors.md b/archive/_integration-schemas/pendo/v1/visitors.md
similarity index 100%
rename from _integration-schemas/pendo/v1/visitors.md
rename to archive/_integration-schemas/pendo/v1/visitors.md
diff --git a/_integration-schemas/pepperjam/v1/creative_advanced.md b/archive/_integration-schemas/pepperjam/v1/creative_advanced.md
similarity index 100%
rename from _integration-schemas/pepperjam/v1/creative_advanced.md
rename to archive/_integration-schemas/pepperjam/v1/creative_advanced.md
diff --git a/_integration-schemas/pepperjam/v1/creative_banner.md b/archive/_integration-schemas/pepperjam/v1/creative_banner.md
similarity index 100%
rename from _integration-schemas/pepperjam/v1/creative_banner.md
rename to archive/_integration-schemas/pepperjam/v1/creative_banner.md
diff --git a/_integration-schemas/pepperjam/v1/creative_coupon.md b/archive/_integration-schemas/pepperjam/v1/creative_coupon.md
similarity index 100%
rename from _integration-schemas/pepperjam/v1/creative_coupon.md
rename to archive/_integration-schemas/pepperjam/v1/creative_coupon.md
diff --git a/_integration-schemas/pepperjam/v1/creative_generic.md b/archive/_integration-schemas/pepperjam/v1/creative_generic.md
similarity index 100%
rename from _integration-schemas/pepperjam/v1/creative_generic.md
rename to archive/_integration-schemas/pepperjam/v1/creative_generic.md
diff --git a/_integration-schemas/pepperjam/v1/creative_performance.md b/archive/_integration-schemas/pepperjam/v1/creative_performance.md
similarity index 100%
rename from _integration-schemas/pepperjam/v1/creative_performance.md
rename to archive/_integration-schemas/pepperjam/v1/creative_performance.md
diff --git a/_integration-schemas/pepperjam/v1/creative_performance_by_publisher.md b/archive/_integration-schemas/pepperjam/v1/creative_performance_by_publisher.md
similarity index 100%
rename from _integration-schemas/pepperjam/v1/creative_performance_by_publisher.md
rename to archive/_integration-schemas/pepperjam/v1/creative_performance_by_publisher.md
diff --git a/_integration-schemas/pepperjam/v1/creative_product.md b/archive/_integration-schemas/pepperjam/v1/creative_product.md
similarity index 100%
rename from _integration-schemas/pepperjam/v1/creative_product.md
rename to archive/_integration-schemas/pepperjam/v1/creative_product.md
diff --git a/_integration-schemas/pepperjam/v1/creative_promotion.md b/archive/_integration-schemas/pepperjam/v1/creative_promotion.md
similarity index 100%
rename from _integration-schemas/pepperjam/v1/creative_promotion.md
rename to archive/_integration-schemas/pepperjam/v1/creative_promotion.md
diff --git a/_integration-schemas/pepperjam/v1/creative_text.md b/archive/_integration-schemas/pepperjam/v1/creative_text.md
similarity index 100%
rename from _integration-schemas/pepperjam/v1/creative_text.md
rename to archive/_integration-schemas/pepperjam/v1/creative_text.md
diff --git a/_integration-schemas/pepperjam/v1/foreign-keys.md b/archive/_integration-schemas/pepperjam/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/pepperjam/v1/foreign-keys.md
rename to archive/_integration-schemas/pepperjam/v1/foreign-keys.md
diff --git a/_integration-schemas/pepperjam/v1/group.md b/archive/_integration-schemas/pepperjam/v1/group.md
similarity index 100%
rename from _integration-schemas/pepperjam/v1/group.md
rename to archive/_integration-schemas/pepperjam/v1/group.md
diff --git a/_integration-schemas/pepperjam/v1/group_member.md b/archive/_integration-schemas/pepperjam/v1/group_member.md
similarity index 100%
rename from _integration-schemas/pepperjam/v1/group_member.md
rename to archive/_integration-schemas/pepperjam/v1/group_member.md
diff --git a/_integration-schemas/pepperjam/v1/itemized_list.md b/archive/_integration-schemas/pepperjam/v1/itemized_list.md
similarity index 100%
rename from _integration-schemas/pepperjam/v1/itemized_list.md
rename to archive/_integration-schemas/pepperjam/v1/itemized_list.md
diff --git a/_integration-schemas/pepperjam/v1/itemized_list_product.md b/archive/_integration-schemas/pepperjam/v1/itemized_list_product.md
similarity index 100%
rename from _integration-schemas/pepperjam/v1/itemized_list_product.md
rename to archive/_integration-schemas/pepperjam/v1/itemized_list_product.md
diff --git a/_integration-schemas/pepperjam/v1/publisher.md b/archive/_integration-schemas/pepperjam/v1/publisher.md
similarity index 100%
rename from _integration-schemas/pepperjam/v1/publisher.md
rename to archive/_integration-schemas/pepperjam/v1/publisher.md
diff --git a/_integration-schemas/pepperjam/v1/publisher_performance.md b/archive/_integration-schemas/pepperjam/v1/publisher_performance.md
similarity index 100%
rename from _integration-schemas/pepperjam/v1/publisher_performance.md
rename to archive/_integration-schemas/pepperjam/v1/publisher_performance.md
diff --git a/_integration-schemas/pepperjam/v1/term.md b/archive/_integration-schemas/pepperjam/v1/term.md
similarity index 100%
rename from _integration-schemas/pepperjam/v1/term.md
rename to archive/_integration-schemas/pepperjam/v1/term.md
diff --git a/_integration-schemas/pepperjam/v1/transaction_details.md b/archive/_integration-schemas/pepperjam/v1/transaction_details.md
similarity index 100%
rename from _integration-schemas/pepperjam/v1/transaction_details.md
rename to archive/_integration-schemas/pepperjam/v1/transaction_details.md
diff --git a/_integration-schemas/pepperjam/v1/transaction_history.md b/archive/_integration-schemas/pepperjam/v1/transaction_history.md
similarity index 100%
rename from _integration-schemas/pepperjam/v1/transaction_history.md
rename to archive/_integration-schemas/pepperjam/v1/transaction_history.md
diff --git a/_integration-schemas/pipedrive/v1/activities.md b/archive/_integration-schemas/pipedrive/v1/activities.md
similarity index 100%
rename from _integration-schemas/pipedrive/v1/activities.md
rename to archive/_integration-schemas/pipedrive/v1/activities.md
diff --git a/_integration-schemas/pipedrive/v1/activity_types.md b/archive/_integration-schemas/pipedrive/v1/activity_types.md
similarity index 100%
rename from _integration-schemas/pipedrive/v1/activity_types.md
rename to archive/_integration-schemas/pipedrive/v1/activity_types.md
diff --git a/_integration-schemas/pipedrive/v1/currency.md b/archive/_integration-schemas/pipedrive/v1/currency.md
similarity index 100%
rename from _integration-schemas/pipedrive/v1/currency.md
rename to archive/_integration-schemas/pipedrive/v1/currency.md
diff --git a/_integration-schemas/pipedrive/v1/deal_fields.md b/archive/_integration-schemas/pipedrive/v1/deal_fields.md
similarity index 100%
rename from _integration-schemas/pipedrive/v1/deal_fields.md
rename to archive/_integration-schemas/pipedrive/v1/deal_fields.md
diff --git a/_integration-schemas/pipedrive/v1/deal_products.md b/archive/_integration-schemas/pipedrive/v1/deal_products.md
similarity index 100%
rename from _integration-schemas/pipedrive/v1/deal_products.md
rename to archive/_integration-schemas/pipedrive/v1/deal_products.md
diff --git a/_integration-schemas/pipedrive/v1/dealflow.md b/archive/_integration-schemas/pipedrive/v1/dealflow.md
similarity index 100%
rename from _integration-schemas/pipedrive/v1/dealflow.md
rename to archive/_integration-schemas/pipedrive/v1/dealflow.md
diff --git a/_integration-schemas/pipedrive/v1/deals.md b/archive/_integration-schemas/pipedrive/v1/deals.md
similarity index 100%
rename from _integration-schemas/pipedrive/v1/deals.md
rename to archive/_integration-schemas/pipedrive/v1/deals.md
diff --git a/_integration-schemas/pipedrive/v1/files.md b/archive/_integration-schemas/pipedrive/v1/files.md
similarity index 100%
rename from _integration-schemas/pipedrive/v1/files.md
rename to archive/_integration-schemas/pipedrive/v1/files.md
diff --git a/_integration-schemas/pipedrive/v1/filters.md b/archive/_integration-schemas/pipedrive/v1/filters.md
similarity index 100%
rename from _integration-schemas/pipedrive/v1/filters.md
rename to archive/_integration-schemas/pipedrive/v1/filters.md
diff --git a/_integration-schemas/pipedrive/v1/foreign-keys.md b/archive/_integration-schemas/pipedrive/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/pipedrive/v1/foreign-keys.md
rename to archive/_integration-schemas/pipedrive/v1/foreign-keys.md
diff --git a/_integration-schemas/pipedrive/v1/notes.md b/archive/_integration-schemas/pipedrive/v1/notes.md
similarity index 100%
rename from _integration-schemas/pipedrive/v1/notes.md
rename to archive/_integration-schemas/pipedrive/v1/notes.md
diff --git a/_integration-schemas/pipedrive/v1/organizations.md b/archive/_integration-schemas/pipedrive/v1/organizations.md
similarity index 100%
rename from _integration-schemas/pipedrive/v1/organizations.md
rename to archive/_integration-schemas/pipedrive/v1/organizations.md
diff --git a/_integration-schemas/pipedrive/v1/persons.md b/archive/_integration-schemas/pipedrive/v1/persons.md
similarity index 100%
rename from _integration-schemas/pipedrive/v1/persons.md
rename to archive/_integration-schemas/pipedrive/v1/persons.md
diff --git a/_integration-schemas/pipedrive/v1/pipelines.md b/archive/_integration-schemas/pipedrive/v1/pipelines.md
similarity index 100%
rename from _integration-schemas/pipedrive/v1/pipelines.md
rename to archive/_integration-schemas/pipedrive/v1/pipelines.md
diff --git a/_integration-schemas/pipedrive/v1/products.md b/archive/_integration-schemas/pipedrive/v1/products.md
similarity index 100%
rename from _integration-schemas/pipedrive/v1/products.md
rename to archive/_integration-schemas/pipedrive/v1/products.md
diff --git a/_integration-schemas/pipedrive/v1/stages.md b/archive/_integration-schemas/pipedrive/v1/stages.md
similarity index 100%
rename from _integration-schemas/pipedrive/v1/stages.md
rename to archive/_integration-schemas/pipedrive/v1/stages.md
diff --git a/_integration-schemas/pipedrive/v1/users.md b/archive/_integration-schemas/pipedrive/v1/users.md
similarity index 100%
rename from _integration-schemas/pipedrive/v1/users.md
rename to archive/_integration-schemas/pipedrive/v1/users.md
diff --git a/_integration-schemas/quickbooks/v1/accounts.md b/archive/_integration-schemas/quickbooks/v1/accounts.md
similarity index 100%
rename from _integration-schemas/quickbooks/v1/accounts.md
rename to archive/_integration-schemas/quickbooks/v1/accounts.md
diff --git a/_integration-schemas/quickbooks/v1/bill_payments.md b/archive/_integration-schemas/quickbooks/v1/bill_payments.md
similarity index 100%
rename from _integration-schemas/quickbooks/v1/bill_payments.md
rename to archive/_integration-schemas/quickbooks/v1/bill_payments.md
diff --git a/_integration-schemas/quickbooks/v1/bills.md b/archive/_integration-schemas/quickbooks/v1/bills.md
similarity index 100%
rename from _integration-schemas/quickbooks/v1/bills.md
rename to archive/_integration-schemas/quickbooks/v1/bills.md
diff --git a/_integration-schemas/quickbooks/v1/budgets.md b/archive/_integration-schemas/quickbooks/v1/budgets.md
similarity index 100%
rename from _integration-schemas/quickbooks/v1/budgets.md
rename to archive/_integration-schemas/quickbooks/v1/budgets.md
diff --git a/_integration-schemas/quickbooks/v1/classes.md b/archive/_integration-schemas/quickbooks/v1/classes.md
similarity index 100%
rename from _integration-schemas/quickbooks/v1/classes.md
rename to archive/_integration-schemas/quickbooks/v1/classes.md
diff --git a/_integration-schemas/quickbooks/v1/credit_memos.md b/archive/_integration-schemas/quickbooks/v1/credit_memos.md
similarity index 100%
rename from _integration-schemas/quickbooks/v1/credit_memos.md
rename to archive/_integration-schemas/quickbooks/v1/credit_memos.md
diff --git a/_integration-schemas/quickbooks/v1/customers.md b/archive/_integration-schemas/quickbooks/v1/customers.md
similarity index 100%
rename from _integration-schemas/quickbooks/v1/customers.md
rename to archive/_integration-schemas/quickbooks/v1/customers.md
diff --git a/_integration-schemas/quickbooks/v1/departments.md b/archive/_integration-schemas/quickbooks/v1/departments.md
similarity index 100%
rename from _integration-schemas/quickbooks/v1/departments.md
rename to archive/_integration-schemas/quickbooks/v1/departments.md
diff --git a/_integration-schemas/quickbooks/v1/deposits.md b/archive/_integration-schemas/quickbooks/v1/deposits.md
similarity index 100%
rename from _integration-schemas/quickbooks/v1/deposits.md
rename to archive/_integration-schemas/quickbooks/v1/deposits.md
diff --git a/_integration-schemas/quickbooks/v1/employees.md b/archive/_integration-schemas/quickbooks/v1/employees.md
similarity index 100%
rename from _integration-schemas/quickbooks/v1/employees.md
rename to archive/_integration-schemas/quickbooks/v1/employees.md
diff --git a/_integration-schemas/quickbooks/v1/estimates.md b/archive/_integration-schemas/quickbooks/v1/estimates.md
similarity index 100%
rename from _integration-schemas/quickbooks/v1/estimates.md
rename to archive/_integration-schemas/quickbooks/v1/estimates.md
diff --git a/_integration-schemas/quickbooks/v1/foreign-keys.md b/archive/_integration-schemas/quickbooks/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/quickbooks/v1/foreign-keys.md
rename to archive/_integration-schemas/quickbooks/v1/foreign-keys.md
diff --git a/_integration-schemas/quickbooks/v1/invoices.md b/archive/_integration-schemas/quickbooks/v1/invoices.md
similarity index 100%
rename from _integration-schemas/quickbooks/v1/invoices.md
rename to archive/_integration-schemas/quickbooks/v1/invoices.md
diff --git a/_integration-schemas/quickbooks/v1/items.md b/archive/_integration-schemas/quickbooks/v1/items.md
similarity index 100%
rename from _integration-schemas/quickbooks/v1/items.md
rename to archive/_integration-schemas/quickbooks/v1/items.md
diff --git a/_integration-schemas/quickbooks/v1/journal_entries.md b/archive/_integration-schemas/quickbooks/v1/journal_entries.md
similarity index 100%
rename from _integration-schemas/quickbooks/v1/journal_entries.md
rename to archive/_integration-schemas/quickbooks/v1/journal_entries.md
diff --git a/_integration-schemas/quickbooks/v1/payment_methods.md b/archive/_integration-schemas/quickbooks/v1/payment_methods.md
similarity index 100%
rename from _integration-schemas/quickbooks/v1/payment_methods.md
rename to archive/_integration-schemas/quickbooks/v1/payment_methods.md
diff --git a/_integration-schemas/quickbooks/v1/payments.md b/archive/_integration-schemas/quickbooks/v1/payments.md
similarity index 100%
rename from _integration-schemas/quickbooks/v1/payments.md
rename to archive/_integration-schemas/quickbooks/v1/payments.md
diff --git a/_integration-schemas/quickbooks/v1/profit_loss_report.md b/archive/_integration-schemas/quickbooks/v1/profit_loss_report.md
similarity index 100%
rename from _integration-schemas/quickbooks/v1/profit_loss_report.md
rename to archive/_integration-schemas/quickbooks/v1/profit_loss_report.md
diff --git a/_integration-schemas/quickbooks/v1/purchase_orders.md b/archive/_integration-schemas/quickbooks/v1/purchase_orders.md
similarity index 100%
rename from _integration-schemas/quickbooks/v1/purchase_orders.md
rename to archive/_integration-schemas/quickbooks/v1/purchase_orders.md
diff --git a/_integration-schemas/quickbooks/v1/purchases.md b/archive/_integration-schemas/quickbooks/v1/purchases.md
similarity index 100%
rename from _integration-schemas/quickbooks/v1/purchases.md
rename to archive/_integration-schemas/quickbooks/v1/purchases.md
diff --git a/_integration-schemas/quickbooks/v1/refund_receipts.md b/archive/_integration-schemas/quickbooks/v1/refund_receipts.md
similarity index 99%
rename from _integration-schemas/quickbooks/v1/refund_receipts.md
rename to archive/_integration-schemas/quickbooks/v1/refund_receipts.md
index 44576a38c..5b056f86a 100644
--- a/_integration-schemas/quickbooks/v1/refund_receipts.md
+++ b/archive/_integration-schemas/quickbooks/v1/refund_receipts.md
@@ -360,7 +360,7 @@ attributes:
- name: "ShipAddr"
type: "object"
description: ""
- subattributes: &address-attributes
+ subattributes: *address-attributes
- name: "SyncToken"
type: "string"
diff --git a/_integration-schemas/quickbooks/v1/sales_receipts.md b/archive/_integration-schemas/quickbooks/v1/sales_receipts.md
similarity index 100%
rename from _integration-schemas/quickbooks/v1/sales_receipts.md
rename to archive/_integration-schemas/quickbooks/v1/sales_receipts.md
diff --git a/_integration-schemas/quickbooks/v1/tax_agencies.md b/archive/_integration-schemas/quickbooks/v1/tax_agencies.md
similarity index 100%
rename from _integration-schemas/quickbooks/v1/tax_agencies.md
rename to archive/_integration-schemas/quickbooks/v1/tax_agencies.md
diff --git a/_integration-schemas/quickbooks/v1/tax_codes.md b/archive/_integration-schemas/quickbooks/v1/tax_codes.md
similarity index 100%
rename from _integration-schemas/quickbooks/v1/tax_codes.md
rename to archive/_integration-schemas/quickbooks/v1/tax_codes.md
diff --git a/_integration-schemas/quickbooks/v1/tax_rates.md b/archive/_integration-schemas/quickbooks/v1/tax_rates.md
similarity index 100%
rename from _integration-schemas/quickbooks/v1/tax_rates.md
rename to archive/_integration-schemas/quickbooks/v1/tax_rates.md
diff --git a/_integration-schemas/quickbooks/v1/terms.md b/archive/_integration-schemas/quickbooks/v1/terms.md
similarity index 100%
rename from _integration-schemas/quickbooks/v1/terms.md
rename to archive/_integration-schemas/quickbooks/v1/terms.md
diff --git a/_integration-schemas/quickbooks/v1/time_activities.md b/archive/_integration-schemas/quickbooks/v1/time_activities.md
similarity index 100%
rename from _integration-schemas/quickbooks/v1/time_activities.md
rename to archive/_integration-schemas/quickbooks/v1/time_activities.md
diff --git a/_integration-schemas/quickbooks/v1/transfers.md b/archive/_integration-schemas/quickbooks/v1/transfers.md
similarity index 100%
rename from _integration-schemas/quickbooks/v1/transfers.md
rename to archive/_integration-schemas/quickbooks/v1/transfers.md
diff --git a/_integration-schemas/quickbooks/v1/vendor_credits.md b/archive/_integration-schemas/quickbooks/v1/vendor_credits.md
similarity index 100%
rename from _integration-schemas/quickbooks/v1/vendor_credits.md
rename to archive/_integration-schemas/quickbooks/v1/vendor_credits.md
diff --git a/_integration-schemas/quickbooks/v1/vendors.md b/archive/_integration-schemas/quickbooks/v1/vendors.md
similarity index 100%
rename from _integration-schemas/quickbooks/v1/vendors.md
rename to archive/_integration-schemas/quickbooks/v1/vendors.md
diff --git a/_integration-schemas/quickbooks/v2/accounts.md b/archive/_integration-schemas/quickbooks/v2/accounts.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/accounts.md
rename to archive/_integration-schemas/quickbooks/v2/accounts.md
diff --git a/_integration-schemas/quickbooks/v2/bill_payments.md b/archive/_integration-schemas/quickbooks/v2/bill_payments.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/bill_payments.md
rename to archive/_integration-schemas/quickbooks/v2/bill_payments.md
diff --git a/_integration-schemas/quickbooks/v2/bills.md b/archive/_integration-schemas/quickbooks/v2/bills.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/bills.md
rename to archive/_integration-schemas/quickbooks/v2/bills.md
diff --git a/_integration-schemas/quickbooks/v2/budgets.md b/archive/_integration-schemas/quickbooks/v2/budgets.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/budgets.md
rename to archive/_integration-schemas/quickbooks/v2/budgets.md
diff --git a/_integration-schemas/quickbooks/v2/classes.md b/archive/_integration-schemas/quickbooks/v2/classes.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/classes.md
rename to archive/_integration-schemas/quickbooks/v2/classes.md
diff --git a/_integration-schemas/quickbooks/v2/credit_memos.md b/archive/_integration-schemas/quickbooks/v2/credit_memos.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/credit_memos.md
rename to archive/_integration-schemas/quickbooks/v2/credit_memos.md
diff --git a/_integration-schemas/quickbooks/v2/customer_types.md b/archive/_integration-schemas/quickbooks/v2/customer_types.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/customer_types.md
rename to archive/_integration-schemas/quickbooks/v2/customer_types.md
diff --git a/_integration-schemas/quickbooks/v2/customers.md b/archive/_integration-schemas/quickbooks/v2/customers.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/customers.md
rename to archive/_integration-schemas/quickbooks/v2/customers.md
diff --git a/_integration-schemas/quickbooks/v2/deleted_objects.md b/archive/_integration-schemas/quickbooks/v2/deleted_objects.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/deleted_objects.md
rename to archive/_integration-schemas/quickbooks/v2/deleted_objects.md
diff --git a/_integration-schemas/quickbooks/v2/departments.md b/archive/_integration-schemas/quickbooks/v2/departments.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/departments.md
rename to archive/_integration-schemas/quickbooks/v2/departments.md
diff --git a/_integration-schemas/quickbooks/v2/deposits.md b/archive/_integration-schemas/quickbooks/v2/deposits.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/deposits.md
rename to archive/_integration-schemas/quickbooks/v2/deposits.md
diff --git a/_integration-schemas/quickbooks/v2/employees.md b/archive/_integration-schemas/quickbooks/v2/employees.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/employees.md
rename to archive/_integration-schemas/quickbooks/v2/employees.md
diff --git a/_integration-schemas/quickbooks/v2/estimates.md b/archive/_integration-schemas/quickbooks/v2/estimates.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/estimates.md
rename to archive/_integration-schemas/quickbooks/v2/estimates.md
diff --git a/_integration-schemas/quickbooks/v2/foreign-keys.md b/archive/_integration-schemas/quickbooks/v2/foreign-keys.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/foreign-keys.md
rename to archive/_integration-schemas/quickbooks/v2/foreign-keys.md
diff --git a/_integration-schemas/quickbooks/v2/invoices.md b/archive/_integration-schemas/quickbooks/v2/invoices.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/invoices.md
rename to archive/_integration-schemas/quickbooks/v2/invoices.md
diff --git a/_integration-schemas/quickbooks/v2/items.md b/archive/_integration-schemas/quickbooks/v2/items.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/items.md
rename to archive/_integration-schemas/quickbooks/v2/items.md
diff --git a/_integration-schemas/quickbooks/v2/journal_entries.md b/archive/_integration-schemas/quickbooks/v2/journal_entries.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/journal_entries.md
rename to archive/_integration-schemas/quickbooks/v2/journal_entries.md
diff --git a/_integration-schemas/quickbooks/v2/payment_methods.md b/archive/_integration-schemas/quickbooks/v2/payment_methods.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/payment_methods.md
rename to archive/_integration-schemas/quickbooks/v2/payment_methods.md
diff --git a/_integration-schemas/quickbooks/v2/payments.md b/archive/_integration-schemas/quickbooks/v2/payments.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/payments.md
rename to archive/_integration-schemas/quickbooks/v2/payments.md
diff --git a/_integration-schemas/quickbooks/v2/profit_loss_report.md b/archive/_integration-schemas/quickbooks/v2/profit_loss_report.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/profit_loss_report.md
rename to archive/_integration-schemas/quickbooks/v2/profit_loss_report.md
diff --git a/_integration-schemas/quickbooks/v2/purchase_orders.md b/archive/_integration-schemas/quickbooks/v2/purchase_orders.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/purchase_orders.md
rename to archive/_integration-schemas/quickbooks/v2/purchase_orders.md
diff --git a/_integration-schemas/quickbooks/v2/purchases.md b/archive/_integration-schemas/quickbooks/v2/purchases.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/purchases.md
rename to archive/_integration-schemas/quickbooks/v2/purchases.md
diff --git a/_integration-schemas/quickbooks/v2/refund_receipts.md b/archive/_integration-schemas/quickbooks/v2/refund_receipts.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/refund_receipts.md
rename to archive/_integration-schemas/quickbooks/v2/refund_receipts.md
diff --git a/_integration-schemas/quickbooks/v2/sales_receipts.md b/archive/_integration-schemas/quickbooks/v2/sales_receipts.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/sales_receipts.md
rename to archive/_integration-schemas/quickbooks/v2/sales_receipts.md
diff --git a/_integration-schemas/quickbooks/v2/tax_agencies.md b/archive/_integration-schemas/quickbooks/v2/tax_agencies.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/tax_agencies.md
rename to archive/_integration-schemas/quickbooks/v2/tax_agencies.md
diff --git a/_integration-schemas/quickbooks/v2/tax_codes.md b/archive/_integration-schemas/quickbooks/v2/tax_codes.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/tax_codes.md
rename to archive/_integration-schemas/quickbooks/v2/tax_codes.md
diff --git a/_integration-schemas/quickbooks/v2/tax_rates.md b/archive/_integration-schemas/quickbooks/v2/tax_rates.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/tax_rates.md
rename to archive/_integration-schemas/quickbooks/v2/tax_rates.md
diff --git a/_integration-schemas/quickbooks/v2/terms.md b/archive/_integration-schemas/quickbooks/v2/terms.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/terms.md
rename to archive/_integration-schemas/quickbooks/v2/terms.md
diff --git a/_integration-schemas/quickbooks/v2/time_activities.md b/archive/_integration-schemas/quickbooks/v2/time_activities.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/time_activities.md
rename to archive/_integration-schemas/quickbooks/v2/time_activities.md
diff --git a/_integration-schemas/quickbooks/v2/transfers.md b/archive/_integration-schemas/quickbooks/v2/transfers.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/transfers.md
rename to archive/_integration-schemas/quickbooks/v2/transfers.md
diff --git a/_integration-schemas/quickbooks/v2/vendor_credits.md b/archive/_integration-schemas/quickbooks/v2/vendor_credits.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/vendor_credits.md
rename to archive/_integration-schemas/quickbooks/v2/vendor_credits.md
diff --git a/_integration-schemas/quickbooks/v2/vendors.md b/archive/_integration-schemas/quickbooks/v2/vendors.md
similarity index 100%
rename from _integration-schemas/quickbooks/v2/vendors.md
rename to archive/_integration-schemas/quickbooks/v2/vendors.md
diff --git a/_integration-schemas/recharge/v1/addresses.md b/archive/_integration-schemas/recharge/v1/addresses.md
similarity index 100%
rename from _integration-schemas/recharge/v1/addresses.md
rename to archive/_integration-schemas/recharge/v1/addresses.md
diff --git a/_integration-schemas/recharge/v1/charges.md b/archive/_integration-schemas/recharge/v1/charges.md
similarity index 100%
rename from _integration-schemas/recharge/v1/charges.md
rename to archive/_integration-schemas/recharge/v1/charges.md
diff --git a/_integration-schemas/recharge/v1/collections.md b/archive/_integration-schemas/recharge/v1/collections.md
similarity index 100%
rename from _integration-schemas/recharge/v1/collections.md
rename to archive/_integration-schemas/recharge/v1/collections.md
diff --git a/_integration-schemas/recharge/v1/customers.md b/archive/_integration-schemas/recharge/v1/customers.md
similarity index 100%
rename from _integration-schemas/recharge/v1/customers.md
rename to archive/_integration-schemas/recharge/v1/customers.md
diff --git a/_integration-schemas/recharge/v1/discounts.md b/archive/_integration-schemas/recharge/v1/discounts.md
similarity index 100%
rename from _integration-schemas/recharge/v1/discounts.md
rename to archive/_integration-schemas/recharge/v1/discounts.md
diff --git a/_integration-schemas/recharge/v1/foreign-keys.md b/archive/_integration-schemas/recharge/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/recharge/v1/foreign-keys.md
rename to archive/_integration-schemas/recharge/v1/foreign-keys.md
diff --git a/_integration-schemas/recharge/v1/metafields_customer.md b/archive/_integration-schemas/recharge/v1/metafields_customer.md
similarity index 100%
rename from _integration-schemas/recharge/v1/metafields_customer.md
rename to archive/_integration-schemas/recharge/v1/metafields_customer.md
diff --git a/_integration-schemas/recharge/v1/metafields_store.md b/archive/_integration-schemas/recharge/v1/metafields_store.md
similarity index 100%
rename from _integration-schemas/recharge/v1/metafields_store.md
rename to archive/_integration-schemas/recharge/v1/metafields_store.md
diff --git a/_integration-schemas/recharge/v1/metafields_subscription.md b/archive/_integration-schemas/recharge/v1/metafields_subscription.md
similarity index 100%
rename from _integration-schemas/recharge/v1/metafields_subscription.md
rename to archive/_integration-schemas/recharge/v1/metafields_subscription.md
diff --git a/_integration-schemas/recharge/v1/onetimes.md b/archive/_integration-schemas/recharge/v1/onetimes.md
similarity index 100%
rename from _integration-schemas/recharge/v1/onetimes.md
rename to archive/_integration-schemas/recharge/v1/onetimes.md
diff --git a/_integration-schemas/recharge/v1/orders.md b/archive/_integration-schemas/recharge/v1/orders.md
similarity index 100%
rename from _integration-schemas/recharge/v1/orders.md
rename to archive/_integration-schemas/recharge/v1/orders.md
diff --git a/_integration-schemas/recharge/v1/products.md b/archive/_integration-schemas/recharge/v1/products.md
similarity index 100%
rename from _integration-schemas/recharge/v1/products.md
rename to archive/_integration-schemas/recharge/v1/products.md
diff --git a/_integration-schemas/recharge/v1/shop.md b/archive/_integration-schemas/recharge/v1/shop.md
similarity index 100%
rename from _integration-schemas/recharge/v1/shop.md
rename to archive/_integration-schemas/recharge/v1/shop.md
diff --git a/_integration-schemas/recharge/v1/subscriptions.md b/archive/_integration-schemas/recharge/v1/subscriptions.md
similarity index 100%
rename from _integration-schemas/recharge/v1/subscriptions.md
rename to archive/_integration-schemas/recharge/v1/subscriptions.md
diff --git a/_integration-schemas/recharge/v2/addresses.md b/archive/_integration-schemas/recharge/v2/addresses.md
similarity index 100%
rename from _integration-schemas/recharge/v2/addresses.md
rename to archive/_integration-schemas/recharge/v2/addresses.md
diff --git a/_integration-schemas/recharge/v2/charges.md b/archive/_integration-schemas/recharge/v2/charges.md
similarity index 100%
rename from _integration-schemas/recharge/v2/charges.md
rename to archive/_integration-schemas/recharge/v2/charges.md
diff --git a/_integration-schemas/recharge/v2/collections.md b/archive/_integration-schemas/recharge/v2/collections.md
similarity index 100%
rename from _integration-schemas/recharge/v2/collections.md
rename to archive/_integration-schemas/recharge/v2/collections.md
diff --git a/_integration-schemas/recharge/v2/customers.md b/archive/_integration-schemas/recharge/v2/customers.md
similarity index 100%
rename from _integration-schemas/recharge/v2/customers.md
rename to archive/_integration-schemas/recharge/v2/customers.md
diff --git a/_integration-schemas/recharge/v2/discounts.md b/archive/_integration-schemas/recharge/v2/discounts.md
similarity index 100%
rename from _integration-schemas/recharge/v2/discounts.md
rename to archive/_integration-schemas/recharge/v2/discounts.md
diff --git a/_integration-schemas/recharge/v2/foreign-keys.md b/archive/_integration-schemas/recharge/v2/foreign-keys.md
similarity index 100%
rename from _integration-schemas/recharge/v2/foreign-keys.md
rename to archive/_integration-schemas/recharge/v2/foreign-keys.md
diff --git a/_integration-schemas/recharge/v2/metafields_customer.md b/archive/_integration-schemas/recharge/v2/metafields_customer.md
similarity index 100%
rename from _integration-schemas/recharge/v2/metafields_customer.md
rename to archive/_integration-schemas/recharge/v2/metafields_customer.md
diff --git a/_integration-schemas/recharge/v2/metafields_store.md b/archive/_integration-schemas/recharge/v2/metafields_store.md
similarity index 100%
rename from _integration-schemas/recharge/v2/metafields_store.md
rename to archive/_integration-schemas/recharge/v2/metafields_store.md
diff --git a/_integration-schemas/recharge/v2/metafields_subscription.md b/archive/_integration-schemas/recharge/v2/metafields_subscription.md
similarity index 100%
rename from _integration-schemas/recharge/v2/metafields_subscription.md
rename to archive/_integration-schemas/recharge/v2/metafields_subscription.md
diff --git a/_integration-schemas/recharge/v2/onetimes.md b/archive/_integration-schemas/recharge/v2/onetimes.md
similarity index 100%
rename from _integration-schemas/recharge/v2/onetimes.md
rename to archive/_integration-schemas/recharge/v2/onetimes.md
diff --git a/_integration-schemas/recharge/v2/orders.md b/archive/_integration-schemas/recharge/v2/orders.md
similarity index 100%
rename from _integration-schemas/recharge/v2/orders.md
rename to archive/_integration-schemas/recharge/v2/orders.md
diff --git a/_integration-schemas/recharge/v2/products.md b/archive/_integration-schemas/recharge/v2/products.md
similarity index 100%
rename from _integration-schemas/recharge/v2/products.md
rename to archive/_integration-schemas/recharge/v2/products.md
diff --git a/_integration-schemas/recharge/v2/store.md b/archive/_integration-schemas/recharge/v2/store.md
similarity index 100%
rename from _integration-schemas/recharge/v2/store.md
rename to archive/_integration-schemas/recharge/v2/store.md
diff --git a/_integration-schemas/recharge/v2/subscriptions.md b/archive/_integration-schemas/recharge/v2/subscriptions.md
similarity index 100%
rename from _integration-schemas/recharge/v2/subscriptions.md
rename to archive/_integration-schemas/recharge/v2/subscriptions.md
diff --git a/_integration-schemas/recurly/v1/accounts.md b/archive/_integration-schemas/recurly/v1/accounts.md
similarity index 100%
rename from _integration-schemas/recurly/v1/accounts.md
rename to archive/_integration-schemas/recurly/v1/accounts.md
diff --git a/_integration-schemas/recurly/v1/adjustments.md b/archive/_integration-schemas/recurly/v1/adjustments.md
similarity index 100%
rename from _integration-schemas/recurly/v1/adjustments.md
rename to archive/_integration-schemas/recurly/v1/adjustments.md
diff --git a/_integration-schemas/recurly/v1/billing_info.md b/archive/_integration-schemas/recurly/v1/billing_info.md
similarity index 100%
rename from _integration-schemas/recurly/v1/billing_info.md
rename to archive/_integration-schemas/recurly/v1/billing_info.md
diff --git a/_integration-schemas/recurly/v1/coupon_redemptions.md b/archive/_integration-schemas/recurly/v1/coupon_redemptions.md
similarity index 100%
rename from _integration-schemas/recurly/v1/coupon_redemptions.md
rename to archive/_integration-schemas/recurly/v1/coupon_redemptions.md
diff --git a/_integration-schemas/recurly/v1/coupons.md b/archive/_integration-schemas/recurly/v1/coupons.md
similarity index 100%
rename from _integration-schemas/recurly/v1/coupons.md
rename to archive/_integration-schemas/recurly/v1/coupons.md
diff --git a/archive/_integration-schemas/recurly/v1/foreign-keys.md b/archive/_integration-schemas/recurly/v1/foreign-keys.md
new file mode 100644
index 000000000..d70539abe
--- /dev/null
+++ b/archive/_integration-schemas/recurly/v1/foreign-keys.md
@@ -0,0 +1,170 @@
+---
+tap-reference: "recurly"
+
+version: "1"
+
+foreign-keys:
+ - id: "account-id"
+ attribute: "account_id"
+ table: "accounts"
+ all-foreign-keys:
+ - table: "accounts"
+ join-on: "id"
+ - table: "accounts"
+ join-on: "parent_account_id"
+ - table: "accounts"
+ subtable: "shipping_addresses"
+ - table: "adjustments"
+ subattribute: "account"
+ join-on: "id"
+ - table: "adjustments"
+ subattribute: "account"
+ join-on: "parent_account_id"
+ - table: "billing_info"
+ - table: "coupon_redemptions"
+ - table: "invoices"
+ subattribute: "account"
+ join-on: "id"
+ - table: "invoices"
+ subattribute: "account"
+ join-on: "parent_account_id"
+ - table: "invoices"
+ subtable: "credit_payments.refund_transaction.account"
+ join-on: "id"
+ - table: "invoices"
+ subtable: "line_items.shipping_addresses"
+ - table: "subscriptions"
+ subtable: "shipping_addresses"
+ - table: "transactions"
+ subtable: "account"
+ join-on: "id"
+ - table: "transactions"
+ subtable: "account"
+ join-on: "parent_account_id"
+
+ - id: "adjustment-id"
+ attribute: "adjustment_id"
+ table: "adjustments"
+ all-foreign-keys:
+ - table: "adjustments"
+ join-on: "id"
+
+ - id: "coupon-id"
+ attribute: "coupon_id"
+ table: "coupons"
+ all-foreign-keys:
+ - table: "coupon_redemptions"
+ subattribute: "coupon"
+ join-on: "id"
+ - table: "coupons"
+ join-on: "id"
+ - table: "subscriptions"
+ subtable: "coupon_redemptions__coupon"
+ join-on: "id"
+
+ - id: "coupon-redemption-id"
+ attribute: ""
+ table: "coupon_redemptions"
+ all-foreign-keys:
+ - table: "coupon_redemptions"
+ join-on: "id"
+ - table: "subscriptions"
+ subtable: "coupon_redemptions"
+ join-on: "id"
+
+ - id: "invoice-id"
+ attribute: "invoice_id"
+ table: "invoices"
+ all-foreign-keys:
+ - table: "adjustments"
+ - table: "invoices"
+ join-on: "id"
+ - table: "invoices"
+ subtable: "credit_payments.applied_to_invoice"
+ join-on: "id"
+ - table: "invoices"
+ subtable: "credit_payments.original_invoice"
+ join-on: "id"
+ - table: "invoices"
+ subtable: "credit_payments.refund_transaction.invoice"
+ join-on: "id"
+ - table: "invoices"
+ subtable: "credit_payments.refund_transaction.voided_by_invoice"
+ join-on: "id"
+ - table: "invoices"
+ subtable: "line_items"
+ - table: "invoices"
+ subtable: "subscription_ids"
+ join-on: "value"
+ - table: "transactions"
+ subattribute: "invoice"
+ join-on: "id"
+ - table: "transactions"
+ subattribute: "voided_by_invoice"
+ join-on: "id"
+
+ - id: "plan-id"
+ attribute: "plan_id"
+ table: "plans"
+ all-foreign-keys:
+ - table: "adjustments"
+ - table: "invoices"
+ subtable: "line_items"
+ - table: "plans"
+ join-on: "id"
+ - table: "plan_add_ons"
+ - table: "subscriptions"
+ subtable: "pending_change__plan"
+ join-on: "id"
+
+ - id: "plan-add-on-id"
+ attribute: "add_on_id"
+ table: "plan_add_ons"
+ all-foreign-keys:
+ - table: "adjustments"
+ - table: "invoices"
+ subtable: "line_items"
+ - table: "plan_add_ons"
+ join-on: "id"
+ - table: "subscriptions"
+ subtable: "add_ons__ad_on"
+ join-on: "id"
+
+ - id: "subscription-id"
+ attribute: "subscription_id"
+ table: "subscriptions"
+ all-foreign-keys:
+ - table: "invoices"
+ subtable: "credit_payments.refund_transaction.subscription_ids"
+ - table: "invoices"
+ subtable: "line_items"
+ - table: "subscriptions"
+ join-on: "id"
+ - table: "subscriptions"
+ subtable: "add_ons"
+ - table: "subscriptions"
+ subtable: "pending_change__add_ons"
+ - table: "subscriptions"
+ subtable: "pending_change"
+ - table: "transactions"
+ subtable: "subscription_ids"
+ join-on: "value"
+
+ - id: "transaction-id"
+ attribute: ""
+ table: "transactions"
+ all-foreign-keys:
+ - table: "invoices"
+ subtable: "credit_payments.refund_transaction"
+ join-on: "id"
+ - table: "invoices"
+ subtable: "credit_payments.refund_transaction"
+ join-on: "original_transaction_id"
+ - table: "invoices"
+ subtable: "transactions"
+ join-on: "id"
+ - table: "transactions"
+ join-on: "id"
+ - table: "transactions"
+ join-on: "original_transaction_id"
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/recurly/v1/invoices.md b/archive/_integration-schemas/recurly/v1/invoices.md
new file mode 100644
index 000000000..cde677906
--- /dev/null
+++ b/archive/_integration-schemas/recurly/v1/invoices.md
@@ -0,0 +1,1130 @@
+---
+tap: "recurly"
+version: "1"
+
+name: "invoices"
+key: "invoice"
+
+doc-link: ""
+singer-schema: "https://github.com/singer-io/tap-recurly/blob/master/tap_recurly/schemas/invoices.json"
+description: |
+ The `{{ table.name }}` table contains info about the invoices for a {{ integration.display_name }} site. An invoice relates charges, credits, and payments together. When a subscription is created or renewed or a charge is created on the account, {{ integration.display_name }} will sum the charges, discount or tax as appropriate, and send the invoice out for collection.
+
+replication-method: "Key-based Incremental"
+api-method:
+ name: "List a site's invoices"
+ doc-link: "https://partner-docs.recurly.com/v2018-08-09#operation/list_invoices"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: &id "The invoice ID."
+ foreign-key-id: "invoice-id"
+
+ - name: "updated_at"
+ type: "date-time"
+ replication-key: true
+ description: "The date and time the invoice was last updated."
+
+ - name: "account"
+ type: "object"
+ description: "Details about the account associated with the invoice."
+ subattributes: &account
+ - name: "bill_to"
+ type: "string"
+ description: |
+ Indicates whether charges on the account are billed using the parent's billing info or the account itself. Possible values are:
+
+ - `self` - The account itself.
+ - `parent` - All invoices resulting in charges and credits originating from a child will be created on the parent account.
+
+ - name: "code"
+ type: "string"
+ description: "The unique identifier for the account."
+
+ - name: "company"
+ type: "string"
+ description: "The company."
+
+ - name: "email"
+ type: "string"
+ description: "The email."
+
+ - name: "first_name"
+ type: "string"
+ description: "The first name of the account."
+
+ - name: "id"
+ type: "string"
+ description: "The account ID."
+ foreign-key-id: "account-id"
+
+ - name: "last_name"
+ type: "string"
+ description: "The last name of the account."
+
+ - name: "object"
+ type: "string"
+ description: "This will be `account`."
+
+ - name: "parent_account_id"
+ type: "string"
+ description: "If this is a child account, this field will contain the ID of the parent account."
+ foreign-key-id: "account-id"
+
+ - name: "address"
+ type: "object"
+ description: "Details about the address associated with the invoice."
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: "The city."
+
+ - name: "country"
+ type: "string"
+ description: "The country."
+
+ - name: "first_name"
+ type: "string"
+ description: "The first name on the address."
+
+ - name: "last_name"
+ type: "string"
+ description: "The last name on the address."
+
+ - name: "name_on_account"
+ type: "string"
+ description: "The name on the account."
+
+ - name: "phone"
+ type: "string"
+ description: "The phone number."
+
+ - name: "postal_code"
+ type: "string"
+ description: "The postal code."
+
+ - name: "region"
+ type: "string"
+ description: "The region."
+
+ - name: "street1"
+ type: "string"
+ description: "The first street line."
+
+ - name: "street2"
+ type: "string"
+ description: "The second street line."
+
+ - name: "balance"
+ type: "number"
+ description: "The outstanding balance remaining on this invoice."
+
+ - name: "closed_at"
+ type: "date-time"
+ description: "The date the invoice was marked paid or failed."
+
+ - name: "collection_method"
+ type: "string"
+ description: |
+ The collection method for the invoice. Possible values are:
+
+ - `automatic` - A corresponding transaction is run using the account's billing info at the same time the invoice is created.
+ - `manual` - A corresponding transaction is not created, and the merchant must enter a manual payment transaction or have the customer pay with an automatic method.
+
+ - name: "created_at"
+ type: "date-time"
+ description: "The date and time the invoice was created."
+
+ - name: "credit_payments"
+ type: "array"
+ description: "Details about the credit payments associated with the invoice."
+ subattributes:
+ - name: "account"
+ type: "object"
+ description: "Details about the account associated with the credit payment."
+ subattributes: &mini-account
+ - name: "code"
+ type: "string"
+ description: "The unique identifier for the account."
+
+ - name: "company"
+ type: "string"
+ description: "The company."
+
+ - name: "email"
+ type: "string"
+ description: "The email."
+
+ - name: "first_name"
+ type: "string"
+ description: "The first name of the account."
+
+ - name: "id"
+ type: "string"
+ description: "The account ID."
+ foreign-key-id: "account-id"
+
+ - name: "last_name"
+ type: "string"
+ description: "The last name of the account."
+
+ - name: "object"
+ type: "string"
+ description: "This will be `account`."
+
+ - name: "action"
+ type: "string"
+ description: |
+ The action for which the credit was created. Possible values are:
+
+ - `payment`
+ - `refund`
+ - `reduction`
+ - `write_off`
+
+ - name: "amount"
+ type: "number"
+ description: "The total credit payment applied to the charge invoice."
+
+ - name: "applied_to_invoice"
+ type: "object"
+ description: "Details about the invoice the credit payment was applied to."
+ subattributes: &mini-invoice
+ - name: "id"
+ type: "string"
+ description: *id
+ foreign-key-id: "invoice-id"
+
+ - name: "number"
+ type: "string"
+ description: &number "The invoice number."
+
+ - name: "object"
+ type: "string"
+ description: &object "This will be `invoice`."
+
+ - name: "state"
+ type: "string"
+ description: &state |
+ The state of the invoice. Possible values are:
+
+ - `pending`
+ - `processing`
+ - `past_due`
+ - `paid`
+ - `failed`
+
+ - name: "type"
+ type: "string"
+ description: |
+ The type of the invoice. Possible values are:
+
+ - `charge`
+ - `credit`
+ - `legacy`
+
+ - name: "created_at"
+ type: "date-time"
+ description: "The date and time the credit payment was created."
+
+ - name: "currency"
+ type: "string"
+ description: ¤cy "The three-letter ISO 4217 currency code."
+
+ - name: "id"
+ type: "string"
+ description: "The credit payment ID."
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "original_credit_payment_id"
+ type: "string"
+ description: "For credit payments with `action: refund`, this is the credit payment that was refunded."
+
+ - name: "original_invoice"
+ type: "object"
+ description: "Details about the original invoice associated with the credit payment."
+ subattributes: *mini-invoice
+
+ - name: "refund_transaction"
+ type: "object"
+ description: "Details about the refund transaction the credit payment is associated with."
+ subattributes:
+ - name: "amount"
+ type: "number"
+ description: &amount "The amount of the transaction."
+
+ - name: "account"
+ type: "object"
+ description: "Details about the account associated with the refund transaction."
+ subattributes: *mini-account
+
+ - name: "avs_check"
+ type: "string"
+ description: &avs-check "The result from checking the overall AVS on the processed transaction."
+
+ - name: "billing_address"
+ type: "object"
+ description: "The billing address detail for the account."
+ subattributes: &billing-address
+ - name: "city"
+ type: "string"
+ description: "The city."
+
+ - name: "country"
+ type: "string"
+ description: "The country."
+
+ - name: "first_name"
+ type: "string"
+ description: "The first name on the address."
+
+ - name: "last_name"
+ type: "string"
+ description: "The last name on the address."
+
+ - name: "name_on_account"
+ type: "string"
+ description: "The name on the account."
+
+ - name: "phone"
+ type: "string"
+ description: "The phone number."
+
+ - name: "postal_code"
+ type: "string"
+ description: "The postal code."
+
+ - name: "region"
+ type: "string"
+ description: "The region."
+
+ - name: "street1"
+ type: "string"
+ description: "The first street line."
+
+ - name: "street2"
+ type: "string"
+ description: "The second street line."
+
+ - name: "collected_at"
+ type: "date-time"
+ description: &collected-at "If collected, the date and time the transaction was collected. Otherwise, the time the transaction was created."
+
+ - name: "collection_method"
+ type: "string"
+ description: &collection-method |
+ The method by which payment for the transaction was collected. Possible values are:
+
+ - `automatic`
+ - `manual`
+
+ - name: "created_at"
+ type: "date-time"
+ description: &created-at "The date and time the transaction was created."
+
+ - name: "currency"
+ type: "string"
+ description: *currency
+
+ - name: "customer_message"
+ type: "string"
+ description: &customer_message "For declined transactions, the message displayed to the customer."
+
+ - name: "customer_message_locale"
+ type: "string"
+ description: &customer_message_locale "The language code used to display the `customer_message`."
+
+ - name: "cvv_check"
+ type: "string"
+ description: &cvv_check "When processed, the result from checking the CVV/CVC value on the transaction."
+
+ - name: "gateway_approval_code"
+ type: "string"
+ description: &gateway_approval_code "The transaction approval code from the payment gateway."
+
+ - name: "gateway_message"
+ type: "string"
+ description: &gateway_message "The transaction message from the payment gateway."
+
+ - name: "gateway_reference"
+ type: "string"
+ description: &gateway_reference "The transaction reference number from the payment gateway."
+
+ - name: "gateway_response_code"
+ type: "string"
+ description: &gateway_response_code "The gateway error code for declined transactions (`success: false`)."
+
+ - name: "gateway_response_time"
+ type: "number"
+ description: &gateway_response_time "The time, in seconds, for the gateway to process the transaction."
+
+ - name: "gateway_response_values"
+ type: "object"
+ description: &gateway_response_values "The response values from the payment gateway."
+
+ - name: "id"
+ type: "string"
+ description: &transaction-id "The transaction ID."
+ foreign-key-id: "transaction-id"
+
+ - name: "invoice"
+ type: "object"
+ description: &invoice-details "Details about the invoice associated with the transaction."
+ subattributes: *mini-invoice
+
+ - name: "ip_address_country"
+ type: "string"
+ description: &ip_address_country "The country, based on `ip_address_v4`."
+
+ - name: "ip_address_v4"
+ type: "string"
+ description: &ip_address_v4 |
+ The IP address provided when the billing information was collected:
+
+ - When a customer entered billing info into Recurly.JS or a hosted payment page.
+ - When the merchant enters billing info using the API.
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "origin"
+ type: "string"
+ description: &origin |
+ The origin of the transaction. Possible values are:
+
+ - `api`
+ - `hpp`
+ - `merchant`
+ - `recurly_admin`
+ - `recurlyjs`
+ - `recurring`
+ - `transparent`
+ - `force_collect`
+ - `refunded_externally`
+ - `chargeback`
+
+ - name: "original_transaction_id"
+ type: "string"
+ description: &original_transaction_id "If the transaction is a refund, this will be the ID of the original transaction."
+ foreign-key-id: "transaction-id"
+
+ - name: "payment_gateway"
+ type: "object"
+ description: &payment_gateway_desc "Details about the payment gateway used to process the transaction."
+ subattributes: &payment_gateway
+ - name: "id"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+ - name: "payment_method"
+ type: "object"
+ description: &payment_method_desc "The payment method used in the transaction."
+ subattributes: &payment_method
+ - name: "card_type"
+ type: "string"
+ description: |
+ If the payment method is a credit card, this field will contain the type of the credit card. Possible values include:
+
+ - `American Express`
+ - `Dankort`
+ - `Diners Club`
+ - `Discover`
+ - `Forbrugsforeningen`
+ - `JCB`
+ - `Laser`
+ - `Maestro`
+ - `MasterCard`
+ - `Test Card`
+ - `Unknown`
+ - `Visa`
+
+ - name: "exp_month"
+ type: "integer"
+ description: "If the payment method is a credit card, this field will contain the expiration month for the credit card."
+
+ - name: "exp_year"
+ type: "integer"
+ description: "If the payment method is a credit card, this field will contain the expiration year for the credit card."
+
+ - name: "first_six"
+ type: "string"
+ description: "If the payment method is a credit card, this field will contain the first six digits of the credit card number."
+
+ - name: "last_four"
+ type: "string"
+ description: "If the payment method is a credit card, this field will contain the last four digits of the credit card number."
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "refunded"
+ type: "boolean"
+ description: &refunded "Indicates if part or all of the transaction was refunded."
+
+ - name: "status"
+ type: "string"
+ description: &status |
+ The current transaction status. Possible values are:
+
+ - `pending`
+ - `scheduled`
+ - `processing`
+ - `success`
+ - `void`
+ - `declined`
+ - `error`
+ - `chargeback`
+
+ - name: "status_code"
+ type: "string"
+ description: ""
+
+ - name: "status_message"
+ type: "string"
+ description: &status_message "For declined transactions (`success: false`), the message displayed to the merchant."
+
+ - name: "subscription_ids"
+ type: "array"
+ description: &subscription_ids_desc "If the transaction refunds one or more subscriptions, this will be a list of the subscription IDs that were refunded."
+ subattributes: &subscription_ids
+ - name: "value"
+ type: "string"
+ description: "The subscription ID."
+ foreign-key-id: "subscription-id"
+
+ - name: "success"
+ type: "boolean"
+ description: &success "Indicates if the transaction completed successfully."
+
+ - name: "type"
+ type: "string"
+ description: &type |
+ The type of the transaction. Possible values include:
+
+ - `authorization` – Verifies billing information and places a hold on money in the customer's account.
+ - `capture` – Captures funds held by an authorization and completes a purchase.
+ - `purchase` – Combines the authorization and capture in one transaction.
+ - `refund` – Returns all or a portion of the money collected in a previous transaction to the customer.
+ - `verify` – A $0 or $1 transaction used to verify billing information which is immediately voided.
+
+ - name: "uuid"
+ type: "string"
+ description: &uuid "The UUID is useful for matching data with the CSV exports and building URLs into {{ integration.display_name }}'s UI."
+
+ - name: "voided_at"
+ type: "date-time"
+ description: &voided_at "The date and time the transaction was voided."
+
+ - name: "voided_by_invoice"
+ type: "object"
+ description: &voided_by_invoice "Details about the invoice that voided the transaction."
+ subattributes: *mini-invoice
+
+ - name: "updated_at"
+ type: "date-time"
+ description: "The date and time the credit payment was last updated."
+
+ - name: "uuid"
+ type: "string"
+ description: *uuid
+
+ - name: "voided_at"
+ type: "date-time"
+ description: "The date and time the credit payment was voided."
+
+ - name: "currency"
+ type: "string"
+ description: *currency
+
+ - name: "customer_notes"
+ type: "string"
+ description: "The customer notes text specified in Invoice Settings."
+
+ - name: "discount"
+ type: "number"
+ description: "The total amount of discounts applied on the invoice."
+
+ - name: "due_at"
+ type: "date-time"
+ description: "The date and time the invoice is due."
+
+ - name: "line_items"
+ type: "object"
+ description: &line-items "Details about the line items in the invoice."
+ subattributes:
+ - name: "data"
+ type: "array"
+ description: *line-items
+ subattributes:
+ - name: "accounting_code"
+ type: "string"
+ description: "The internal accounting code for the line item."
+
+ - name: "account"
+ type: "object"
+ description: "Details about the account associated with the line item."
+ subattributes: *account
+
+ - name: "add_on_code"
+ type: "string"
+ description: "If the line item is a charge or credit for an add-on, this is its code."
+
+ - name: "add_on_id"
+ type: "string"
+ description: "If the line item is a charge or credit for an add-on this is its ID."
+ foreign-key-id: "plan-add-on-id"
+
+ - name: "amount"
+ type: "number"
+ description: "The total amount of the line item, calculated as `(quantity * unit_amount) - (discount + tax)`."
+
+ - name: "created_at"
+ type: "date-time"
+ description: "The date and time the line item was created."
+
+ - name: "credit_applied"
+ type: "number"
+ description: "The amount of credit from this line item that was applied to the invoice."
+
+ - name: "credit_reason_code"
+ type: "string"
+ description: |
+ When `type: credit`, this will be the reason the credit was given. Possible values include:
+
+ - `general`
+ - `service`
+ - `promotional`
+ - `refund`
+ - `gift_card`
+ - `write_off`
+
+ - name: "currency"
+ type: "string"
+ description: *currency
+
+ - name: "description"
+ type: "string"
+ description: "The description of the line item."
+
+ - name: "discount"
+ type: "number"
+ description: "The discount applied to the line item."
+
+ - name: "end_date"
+ type: "date-time"
+ description: "If this date is provided, it indicates the end of a time range."
+
+ - name: "id"
+ type: "string"
+ description: "The line item ID."
+
+ - name: "invoice_id"
+ type: "string"
+ description: "Once the line item has been invoiced this will be the invoice's ID."
+ foreign-key-id: "invoice-id"
+
+ - name: "invoice_number"
+ type: "string"
+ description: "Once the line item has been invoiced this will be the invoice's number. If VAT taxation and the Country Invoice Sequencing feature are enabled, invoices will have country-specific invoice numbers for invoices billed to EU countries (ex: FR1001). Non-EU invoices will continue to use the site-level invoice number sequence."
+
+ - name: "legacy_category"
+ type: "string"
+ description: |
+ The category to describe the role of a line item on a legacy invoice. Possible values include:
+
+ - `charges` - Refers to charges being billed for on this invoice.
+ - `credits` - Refers to refund or proration credits. This portion of the invoice can be considered a credit memo.
+ - `applied_credits` - Refers to previous credits applied to this invoice. See their original_line_item_id to determine where the credit first originated.
+ - `carryforwards` - Can be ignored. They exist to consume any remaining credit balance. A new credit with the same amount will be created and placed back on the account.
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "origin"
+ type: "string"
+ description: |
+ The origin of the invoice to return. Possible values are:
+
+ - `plan`
+ - `plan_trial`
+ - `setup_fee`
+ - `add_on`
+ - `add_on_trial`
+ - `one_time`
+ - `debit`
+ - `credit`
+ - `coupon`
+ - `carryforward`
+
+ - name: "original_line_item_invoice_id"
+ type: "string"
+ description: "The invoice where the credit originated. This field will only have a value if the line item is a credit created from a previous credit, or if the credit was created from a charge refund."
+
+ - name: "plan_code"
+ type: "string"
+ description: "If the line item is a charge or credit for a plan or add-on, this is the plan's code."
+
+ - name: "plan_id"
+ type: "string"
+ description: "If the line item is a charge or credit for a plan or add-on, this is the plan's ID."
+ foreign-key-id: "plan-id"
+
+ - name: "previous_line_item_id"
+ type: "string"
+ description: "This field will only have a value if the line item is a credit created from a previous credit, or if the credit was created from a charge refund."
+
+ - name: "product_code"
+ type: "string"
+ description: "For plan related line items this will be the plan's code, for add-on related line items it will be the add-on's code."
+
+ - name: "proration_rate"
+ type: "number"
+ description: |
+ When a line item has been prorated, this is the rate of the proration. Proration rates were made available for line items created after March 30, 2017. For line items created prior to that date, the proration rate will be `null`, even if the line item was prorated.
+
+ - name: "quantity"
+ type: "integer"
+ description: "This number will be multiplied by the unit amount to compute the subtotal before any discounts or taxes."
+
+ - name: "refund"
+ type: "boolean"
+ description: "Indicates if the line item has been refunded."
+
+ - name: "refunded_quantity"
+ type: "integer"
+ description: "For refund charges, the quantity being refunded. For non-refund charges, the total quantity refunded (possibly over multiple refunds)."
+
+ - name: "shipping_addresses"
+ type: "array"
+ description: "The shipping address info for the line item."
+ subattributes: &shipping-addresses
+ - name: "account_id"
+ type: "string"
+ description: "The ID of the account associated with the shipping address info."
+ foreign-key-id: "account-id"
+
+ - name: "city"
+ type: "string"
+ description: "The shipping city."
+
+ - name: "company"
+ type: "string"
+ description: "The shipping company."
+
+ - name: "country"
+ type: "string"
+ description: "The two-letter ISO country code."
+
+ - name: "created_at"
+ type: "date-time"
+ description: "The timestamp when the shipping address was created."
+
+ - name: "email"
+ type: "string"
+ description: "The email associated with the shipping address."
+
+ - name: "first_name"
+ type: "string"
+ description: "The first name."
+
+ - name: "id"
+ type: "string"
+ description: "The shipping address ID."
+
+ - name: "last_name"
+ type: "string"
+ description: "The last name."
+
+ - name: "nickname"
+ type: "string"
+ description: "The nickname."
+
+ - name: "phone"
+ type: "string"
+ description: "The phone number."
+
+ - name: "postal_code"
+ type: "string"
+ description: "The postal code."
+
+ - name: "region"
+ type: "string"
+ description: "The state or province."
+
+ - name: "street1"
+ type: "string"
+ description: "The first street line of the address."
+
+ - name: "street2"
+ type: "string"
+ description: "The second street line of the address."
+
+ - name: "updated_at"
+ type: "date-time"
+ description: "The timestamp when the shipping address was last updated."
+
+ - name: "vat_number"
+ type: "string"
+ description: "The VAT number associated with the shipping address."
+
+ - name: "start_date"
+ type: "date-time"
+ description: "If an end date is present, this is value indicates the beginning of a billing time range. If no end date is present it indicates billing for a specific date."
+
+ - name: "state"
+ type: "string"
+ description: |
+ The state of the line item. Possible values are:
+
+ - `pending` - Pending line items are charges or credits on an account that have not been applied to an invoice yet.
+ - `invoiced` - Invoiced line items will always have an `invoice_id` value.
+
+ - name: "subscription_id"
+ type: "string"
+ description: "The subscription ID associated with the line item."
+ foreign-key-id: "subscription-id"
+
+ - name: "subtotal"
+ type: "number"
+ description: "The subtotal for the line item, calculated as `quantity * unit_amount`."
+
+ - name: "tax"
+ type: "number"
+ description: "The tax amount for the line item."
+
+ - name: "tax_code"
+ type: "string"
+ description: |
+ Used by Avalara, Vertex, and Recurly’s EU VAT tax feature. The tax code values are specific to each tax system. If you are using Recurly’s EU VAT feature:
+
+ - `P0000000` - Indicates physical
+ - `D0000000` - Indicates digital
+ - Empty string - Indicates unknown
+
+ - name: "tax_exempt"
+ type: "boolean"
+ description: "Indicates if the line item is tax exempt."
+
+ - name: "tax_info"
+ type: "object"
+ description: "Details about the tax applied to the line item."
+ subattributes: &tax-info
+ - name: "rate"
+ type: "number"
+ description: "The tax rate."
+
+ - name: "region"
+ type: "string"
+ description: "Provides the tax region applied on an invoice. For U.S. Sales Tax, this will be the two-letter state code. For EU VAT this will be the two-letter country code. For all country level tax types, this will display the regional tax, like VAT, GST, or PST."
+
+ - name: "type"
+ type: "string"
+ description: "Provides the tax type as `vat` for EU VAT, `usst` for U.S. Sales Tax, or the two-letter country code for country level tax types like Canada, Australia, New Zealand, Israel, and all non-EU European countries."
+
+ - name: "taxable"
+ type: "boolean"
+ description: "Indicates if the line item is taxable."
+
+ - name: "type"
+ type: "string"
+ description: |
+ The type of the line item. Possible values include:
+
+ - `charge` - A positive line item that debits the account.
+ - `credit` - A negative line item that credits the account.
+
+ - name: "unit_amount"
+ type: "number"
+ description: "The unit amount. This value will be positive for a charge and negative for a credit."
+
+ - name: "updated_at"
+ type: "date-time"
+ description: "The date and time the line item was last updated."
+
+ - name: "uuid"
+ type: "string"
+ description: *uuid
+
+ - name: "has_more"
+ type: "boolean"
+ description: ""
+
+ - name: "next"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "net_terms"
+ type: "number"
+ description: |
+ An integer representing the number of days after an invoice's creation that the invoice will become past due. If set to `0`, the invoice is due on receipt and will become due 24 hours after its creation. If set to `30`, it will become past due at exactly 31 days.
+
+ - name: "number"
+ type: "string"
+ description: "If VAT taxation and the Country Invoice Sequencing feature are enabled, invoices will have country-specific invoice numbers for invoices billed to EU countries (ex: FR1001). Non-EU invoices will continue to use the site-level invoice number sequence."
+
+ - name: "object"
+ type: "string"
+ description: "This will be `invoice`."
+
+ - name: "origin"
+ type: "string"
+ description: |
+ The event that created the invoice. Possible values are:
+
+ - `purchase`
+ - `line_item_refund`
+ - `open_amount_refund`
+ - `renewal`
+ - `immediate_change`
+ - `termination`
+ - `credit`
+ - `gift_card`
+ - `write_off`
+
+ - name: "paid"
+ type: "number"
+ description: ""
+
+ - name: "po_number"
+ type: "string"
+ description: "For manual invoicing, the PO number associated with the subscription."
+
+ - name: "previous_invoice_id"
+ type: "string"
+ description: ""
+
+ - name: "refundable_amount"
+ type: "number"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: *state
+
+ - name: "subscription_ids"
+ type: "array"
+ description: "If the invoice is charging or refunding one or more subscriptions, this will be a list of the associated subscription IDs."
+ subattributes:
+ - name: "value"
+ type: "string"
+ description: "The subscription ID."
+ foreign-key-id: "subscription-id"
+
+ - name: "subtotal"
+ type: "number"
+ description: "The summation of charges, discounts, and credits, before tax."
+
+ - name: "tax"
+ type: "number"
+ description: "The total tax on the invoice."
+
+ - name: "tax_info"
+ type: "object"
+ description: "Details about the tax applied to the invoice."
+ subattributes: *tax-info
+
+ - name: "terms_and_conditions"
+ type: "string"
+ description: "This will default to the Terms and Conditions text specified on the Invoice Settings page in your {{ integration.display_name }} admin. This specifies custom notes to add or override Terms and Conditions."
+
+ - name: "total"
+ type: "number"
+ description: "The final total on this invoice. The summation of invoice charges, discounts, credits, and tax."
+
+ - name: "transactions"
+ type: "array"
+ description: "Details about the transactions associated with the invoice."
+ subattributes:
+ - name: "amount"
+ type: "number"
+ description: ""
+
+ - name: "avs_check"
+ type: "string"
+ description: *avs-check
+
+ - name: "account"
+ type: "object"
+ description: "Details about the account associated with the transaction."
+ subattributes: *account
+
+ - name: "billing_address"
+ type: "object"
+ description: "The billing address associated with the transaction."
+ subattributes: *billing-address
+
+ - name: "collected_at"
+ type: "date-time"
+ description: *collected-at
+
+ - name: "collection_method"
+ type: "string"
+ description: *collection-method
+
+ - name: "created_at"
+ type: "date-time"
+ description: *created-at
+
+ - name: "currency"
+ type: "string"
+ description: *currency
+
+ - name: "customer_message"
+ type: "string"
+ description: *customer_message
+
+ - name: "customer_message_locale"
+ type: "string"
+ description: *customer_message_locale
+
+ - name: "cvv_check"
+ type: "string"
+ description: *cvv_check
+
+ - name: "gateway_approval_code"
+ type: "string"
+ description: *gateway_approval_code
+
+ - name: "gateway_message"
+ type: "string"
+ description: *gateway_message
+
+ - name: "gateway_reference"
+ type: "string"
+ description: *gateway_reference
+
+ - name: "gateway_response_code"
+ type: "string"
+ description: *gateway_response_code
+
+ - name: "gateway_response_time"
+ type: "number"
+ description: *gateway_response_time
+
+ - name: "gateway_response_values"
+ type: "object"
+ description: *gateway_response_values
+
+ - name: "id"
+ type: "string"
+ description: "The transaction ID."
+ foreign-key-id: "transaction-id"
+
+ - name: "invoice"
+ type: "object"
+ description: "Details about the invoice associated with the transaction."
+ subattributes: *mini-invoice
+
+ - name: "ip_address_country"
+ type: "string"
+ description: *ip_address_country
+
+ - name: "ip_address_v4"
+ type: "string"
+ description: *ip_address_v4
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "origin"
+ type: "string"
+ description: *origin
+
+ - name: "original_transaction_id"
+ type: "string"
+ description: *original_transaction_id
+
+ - name: "payment_gateway"
+ type: "object"
+ description: *payment_gateway_desc
+ subattributes: *payment_gateway
+
+ - name: "payment_method"
+ type: "object"
+ description: *payment_method_desc
+ subattributes: *payment_method
+
+ - name: "refunded"
+ type: "boolean"
+ description: *refunded
+
+ - name: "status"
+ type: "string"
+ description: *status
+
+ - name: "status_code"
+ type: "string"
+ description: ""
+
+ - name: "status_message"
+ type: "string"
+ description: ""
+
+ - name: "subscription_ids"
+ type: "array"
+ description: *subscription_ids_desc
+ subattributes: *subscription_ids
+
+ - name: "success"
+ type: "boolean"
+ description: *success
+
+ - name: "type"
+ type: "string"
+ description: *type
+
+ - name: "uuid"
+ type: "string"
+ description: *uuid
+
+ - name: "voided_at"
+ type: "date-time"
+ description: *voided_at
+
+ - name: "voided_by_invoice"
+ type: "object"
+ description: *voided_by_invoice
+ subattributes: *mini-invoice
+
+ - name: "type"
+ type: "string"
+ description: |
+ The type of the invoice. Possible values are:
+
+ - `charge`
+ - `credit`
+ - `legacy`
+
+ - name: "vat_number"
+ type: "string"
+ description: "The VAT registration number for the customer on this invoice. This will come from the VAT Number field in the Billing Info or the Account Info depending on your tax settings and the invoice collection method."
+
+ - name: "vat_reverse_charge_notes"
+ type: "string"
+ description: "VAT Reverse Charge Notes only appear if you have EU VAT enabled or are using your own Avalara AvaTax account and the customer is in the EU, has a VAT number, and is in a different country than your own. This will default to the VAT Reverse Charge Notes text specified on the Tax Settings page in your Recurly admin, unless custom notes were created with the original subscription."
+---
\ No newline at end of file
diff --git a/_integration-schemas/recurly/v1/plans.md b/archive/_integration-schemas/recurly/v1/plans.md
similarity index 100%
rename from _integration-schemas/recurly/v1/plans.md
rename to archive/_integration-schemas/recurly/v1/plans.md
diff --git a/_integration-schemas/recurly/v1/plans_add_ons.md b/archive/_integration-schemas/recurly/v1/plans_add_ons.md
similarity index 100%
rename from _integration-schemas/recurly/v1/plans_add_ons.md
rename to archive/_integration-schemas/recurly/v1/plans_add_ons.md
diff --git a/_integration-schemas/recurly/v1/subscriptions.md b/archive/_integration-schemas/recurly/v1/subscriptions.md
similarity index 100%
rename from _integration-schemas/recurly/v1/subscriptions.md
rename to archive/_integration-schemas/recurly/v1/subscriptions.md
diff --git a/_integration-schemas/recurly/v1/transactions.md b/archive/_integration-schemas/recurly/v1/transactions.md
similarity index 100%
rename from _integration-schemas/recurly/v1/transactions.md
rename to archive/_integration-schemas/recurly/v1/transactions.md
diff --git a/_integration-schemas/referral-saasquatch/foreign-keys.md b/archive/_integration-schemas/referral-saasquatch/foreign-keys.md
similarity index 100%
rename from _integration-schemas/referral-saasquatch/foreign-keys.md
rename to archive/_integration-schemas/referral-saasquatch/foreign-keys.md
diff --git a/_integration-schemas/referral-saasquatch/referrals.md b/archive/_integration-schemas/referral-saasquatch/referrals.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/referral-saasquatch/referrals.md
rename to archive/_integration-schemas/referral-saasquatch/referrals.md
diff --git a/_integration-schemas/referral-saasquatch/reward_balance.md b/archive/_integration-schemas/referral-saasquatch/reward_balance.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/referral-saasquatch/reward_balance.md
rename to archive/_integration-schemas/referral-saasquatch/reward_balance.md
diff --git a/_integration-schemas/referral-saasquatch/users.md b/archive/_integration-schemas/referral-saasquatch/users.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/referral-saasquatch/users.md
rename to archive/_integration-schemas/referral-saasquatch/users.md
diff --git a/_integration-schemas/revinate/v1/foreign-keys.md b/archive/_integration-schemas/revinate/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/revinate/v1/foreign-keys.md
rename to archive/_integration-schemas/revinate/v1/foreign-keys.md
diff --git a/_integration-schemas/revinate/v1/hotel_reviews_snapshot.md b/archive/_integration-schemas/revinate/v1/hotel_reviews_snapshot.md
similarity index 100%
rename from _integration-schemas/revinate/v1/hotel_reviews_snapshot.md
rename to archive/_integration-schemas/revinate/v1/hotel_reviews_snapshot.md
diff --git a/_integration-schemas/revinate/v1/hotel_reviews_snapshot_by_site.md b/archive/_integration-schemas/revinate/v1/hotel_reviews_snapshot_by_site.md
similarity index 100%
rename from _integration-schemas/revinate/v1/hotel_reviews_snapshot_by_site.md
rename to archive/_integration-schemas/revinate/v1/hotel_reviews_snapshot_by_site.md
diff --git a/_integration-schemas/revinate/v1/hotel_reviews_snapshot_by_time.md b/archive/_integration-schemas/revinate/v1/hotel_reviews_snapshot_by_time.md
similarity index 100%
rename from _integration-schemas/revinate/v1/hotel_reviews_snapshot_by_time.md
rename to archive/_integration-schemas/revinate/v1/hotel_reviews_snapshot_by_time.md
diff --git a/_integration-schemas/revinate/v1/hotels.md b/archive/_integration-schemas/revinate/v1/hotels.md
similarity index 100%
rename from _integration-schemas/revinate/v1/hotels.md
rename to archive/_integration-schemas/revinate/v1/hotels.md
diff --git a/archive/_integration-schemas/revinate/v1/reviews.md b/archive/_integration-schemas/revinate/v1/reviews.md
new file mode 100644
index 000000000..fc4ecf704
--- /dev/null
+++ b/archive/_integration-schemas/revinate/v1/reviews.md
@@ -0,0 +1,172 @@
+---
+tap: "revinate"
+version: "1"
+
+name: "reviews"
+doc-link: https://porter.revinate.com/documentation#reviews
+
+description: |
+ The `table_name` table contains a subset of the latest reviews for the hotels in your {{ integration.display_name }} account.
+
+ **Note**: Stitch will only replicate review data for the hotels that the user whose API key is used to [authenticate the integration](#add-stitch-data-source) has access to. If you're missing records, verify that the authenticating user has access to those hotels in {{ integration.display_name }}.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: Get reviews
+ doc-link: https://porter.revinate.com/documentation#reviews
+
+attributes:
+ - name: "review_id"
+ type: "integer"
+ primary-key: true
+ description: "The review ID."
+ # foreign-key-id: "review-id"
+
+ - name: "updated_at"
+ type: "integer"
+ replication-key: true
+ description: "The time the review was last updated."
+
+ - name: "author"
+ type: "string"
+ description: "The review author."
+
+ - name: "author_location"
+ type: "string"
+ description: "The review author's location."
+
+ - name: "body"
+ type: "string"
+ description: "The body of the review."
+
+ - name: "crawled_url"
+ type: "string"
+ description: ""
+
+ - name: "date_collected"
+ type: "integer"
+ description: "The date the review was collected."
+
+ - name: "date_review"
+ type: "integer"
+ description: "The date of the review."
+
+ - name: "guest_stay_json"
+ type: "string"
+ description: ""
+
+ - name: "hotel_id"
+ type: "integer"
+ description: "The hotel ID."
+ foreign-key-id: "hotel-id"
+
+ - name: "hotel_url"
+ type: "string"
+ description: ""
+
+ - name: "language_english_name"
+ type: "string"
+ description: ""
+
+ - name: "language_id"
+ type: "integer"
+ description: ""
+
+ - name: "language_json"
+ type: "string"
+ description: ""
+
+ - name: "language_name"
+ type: "string"
+ description: ""
+
+ - name: "language_slug"
+ type: "string"
+ description: ""
+
+ - name: "language_url"
+ type: "string"
+ description: ""
+
+ - name: "links_json"
+ type: "string"
+ description: ""
+
+ - name: "nps"
+ type: "integer"
+ description: ""
+
+ - name: "rating"
+ type: "number"
+ description: "The rating."
+
+ - name: "response_json"
+ type: "string"
+ description: ""
+
+ - name: "review_json"
+ type: "string"
+ description: ""
+
+ - name: "review_site_id"
+ type: "integer"
+ description: ""
+ foreign-key-id: "review-site-id"
+
+ - name: "review_site_json"
+ type: "string"
+ description: ""
+
+ - name: "review_site_main_url"
+ type: "string"
+ description: ""
+
+ - name: "review_site_name"
+ type: "string"
+ description: "The name of the review site the review is on."
+
+ - name: "review_site_url"
+ type: "string"
+ description: ""
+
+ - name: "review_site_slug"
+ type: "string"
+ description: ""
+
+ - name: "review_url"
+ type: "string"
+ description: ""
+
+ - name: "subratings_json"
+ type: "string"
+ description: ""
+
+ - name: "subratings_cleanliness"
+ type: "number"
+ description: "The cleanliness subrating associated with the review."
+
+ - name: "subratings_hotel_condition"
+ type: "number"
+ description: "The hotel condition subrating associated with the review."
+
+ - name: "subratings_rooms"
+ type: "number"
+ description: "The room subrating associated with the review."
+
+ - name: "subratings_service"
+ type: "number"
+ description: "The service subrating associated with the review."
+
+ - name: "survey_topics_json"
+ type: "string"
+ description: ""
+
+ - name: "title"
+ type: "string"
+ description: "The title of the review."
+
+ - name: "trip_type"
+ type: "string"
+ description: "The trip type included in the review."
+---
\ No newline at end of file
diff --git a/_integration-schemas/ringcentral/v1/call_log.md b/archive/_integration-schemas/ringcentral/v1/call_log.md
similarity index 100%
rename from _integration-schemas/ringcentral/v1/call_log.md
rename to archive/_integration-schemas/ringcentral/v1/call_log.md
diff --git a/_integration-schemas/ringcentral/v1/company_call_log.md b/archive/_integration-schemas/ringcentral/v1/company_call_log.md
similarity index 100%
rename from _integration-schemas/ringcentral/v1/company_call_log.md
rename to archive/_integration-schemas/ringcentral/v1/company_call_log.md
diff --git a/_integration-schemas/ringcentral/v1/contacts.md b/archive/_integration-schemas/ringcentral/v1/contacts.md
similarity index 100%
rename from _integration-schemas/ringcentral/v1/contacts.md
rename to archive/_integration-schemas/ringcentral/v1/contacts.md
diff --git a/_integration-schemas/ringcentral/v1/foreign-keys.yml b/archive/_integration-schemas/ringcentral/v1/foreign-keys.yml
similarity index 100%
rename from _integration-schemas/ringcentral/v1/foreign-keys.yml
rename to archive/_integration-schemas/ringcentral/v1/foreign-keys.yml
diff --git a/_integration-schemas/ringcentral/v1/messages.md b/archive/_integration-schemas/ringcentral/v1/messages.md
similarity index 100%
rename from _integration-schemas/ringcentral/v1/messages.md
rename to archive/_integration-schemas/ringcentral/v1/messages.md
diff --git a/_integration-schemas/saasoptics/v1/accounts.md b/archive/_integration-schemas/saasoptics/v1/accounts.md
similarity index 100%
rename from _integration-schemas/saasoptics/v1/accounts.md
rename to archive/_integration-schemas/saasoptics/v1/accounts.md
diff --git a/_integration-schemas/saasoptics/v1/auto_renewal_profiles.md b/archive/_integration-schemas/saasoptics/v1/auto_renewal_profiles.md
similarity index 100%
rename from _integration-schemas/saasoptics/v1/auto_renewal_profiles.md
rename to archive/_integration-schemas/saasoptics/v1/auto_renewal_profiles.md
diff --git a/_integration-schemas/saasoptics/v1/billing_descriptions.md b/archive/_integration-schemas/saasoptics/v1/billing_descriptions.md
similarity index 100%
rename from _integration-schemas/saasoptics/v1/billing_descriptions.md
rename to archive/_integration-schemas/saasoptics/v1/billing_descriptions.md
diff --git a/_integration-schemas/saasoptics/v1/billing_methods.md b/archive/_integration-schemas/saasoptics/v1/billing_methods.md
similarity index 100%
rename from _integration-schemas/saasoptics/v1/billing_methods.md
rename to archive/_integration-schemas/saasoptics/v1/billing_methods.md
diff --git a/_integration-schemas/saasoptics/v1/contracts.md b/archive/_integration-schemas/saasoptics/v1/contracts.md
similarity index 100%
rename from _integration-schemas/saasoptics/v1/contracts.md
rename to archive/_integration-schemas/saasoptics/v1/contracts.md
diff --git a/_integration-schemas/saasoptics/v1/country_codes.md b/archive/_integration-schemas/saasoptics/v1/country_codes.md
similarity index 100%
rename from _integration-schemas/saasoptics/v1/country_codes.md
rename to archive/_integration-schemas/saasoptics/v1/country_codes.md
diff --git a/_integration-schemas/saasoptics/v1/currency_codes.md b/archive/_integration-schemas/saasoptics/v1/currency_codes.md
similarity index 100%
rename from _integration-schemas/saasoptics/v1/currency_codes.md
rename to archive/_integration-schemas/saasoptics/v1/currency_codes.md
diff --git a/_integration-schemas/saasoptics/v1/customers.md b/archive/_integration-schemas/saasoptics/v1/customers.md
similarity index 100%
rename from _integration-schemas/saasoptics/v1/customers.md
rename to archive/_integration-schemas/saasoptics/v1/customers.md
diff --git a/_integration-schemas/saasoptics/v1/deleted_contracts.md b/archive/_integration-schemas/saasoptics/v1/deleted_contracts.md
similarity index 100%
rename from _integration-schemas/saasoptics/v1/deleted_contracts.md
rename to archive/_integration-schemas/saasoptics/v1/deleted_contracts.md
diff --git a/_integration-schemas/saasoptics/v1/deleted_invoices.md b/archive/_integration-schemas/saasoptics/v1/deleted_invoices.md
similarity index 100%
rename from _integration-schemas/saasoptics/v1/deleted_invoices.md
rename to archive/_integration-schemas/saasoptics/v1/deleted_invoices.md
diff --git a/_integration-schemas/saasoptics/v1/deleted_revenue_entries.md b/archive/_integration-schemas/saasoptics/v1/deleted_revenue_entries.md
similarity index 100%
rename from _integration-schemas/saasoptics/v1/deleted_revenue_entries.md
rename to archive/_integration-schemas/saasoptics/v1/deleted_revenue_entries.md
diff --git a/_integration-schemas/saasoptics/v1/deleted_transactions.md b/archive/_integration-schemas/saasoptics/v1/deleted_transactions.md
similarity index 100%
rename from _integration-schemas/saasoptics/v1/deleted_transactions.md
rename to archive/_integration-schemas/saasoptics/v1/deleted_transactions.md
diff --git a/_integration-schemas/saasoptics/v1/foreign-keys.yml b/archive/_integration-schemas/saasoptics/v1/foreign-keys.yml
similarity index 100%
rename from _integration-schemas/saasoptics/v1/foreign-keys.yml
rename to archive/_integration-schemas/saasoptics/v1/foreign-keys.yml
diff --git a/_integration-schemas/saasoptics/v1/invoices.md b/archive/_integration-schemas/saasoptics/v1/invoices.md
similarity index 100%
rename from _integration-schemas/saasoptics/v1/invoices.md
rename to archive/_integration-schemas/saasoptics/v1/invoices.md
diff --git a/_integration-schemas/saasoptics/v1/items.md b/archive/_integration-schemas/saasoptics/v1/items.md
similarity index 100%
rename from _integration-schemas/saasoptics/v1/items.md
rename to archive/_integration-schemas/saasoptics/v1/items.md
diff --git a/_integration-schemas/saasoptics/v1/payment_terms.md b/archive/_integration-schemas/saasoptics/v1/payment_terms.md
similarity index 100%
rename from _integration-schemas/saasoptics/v1/payment_terms.md
rename to archive/_integration-schemas/saasoptics/v1/payment_terms.md
diff --git a/_integration-schemas/saasoptics/v1/registers.md b/archive/_integration-schemas/saasoptics/v1/registers.md
similarity index 100%
rename from _integration-schemas/saasoptics/v1/registers.md
rename to archive/_integration-schemas/saasoptics/v1/registers.md
diff --git a/_integration-schemas/saasoptics/v1/revenue_entries.md b/archive/_integration-schemas/saasoptics/v1/revenue_entries.md
similarity index 100%
rename from _integration-schemas/saasoptics/v1/revenue_entries.md
rename to archive/_integration-schemas/saasoptics/v1/revenue_entries.md
diff --git a/_integration-schemas/saasoptics/v1/revenue_recognition_methods.md b/archive/_integration-schemas/saasoptics/v1/revenue_recognition_methods.md
similarity index 100%
rename from _integration-schemas/saasoptics/v1/revenue_recognition_methods.md
rename to archive/_integration-schemas/saasoptics/v1/revenue_recognition_methods.md
diff --git a/_integration-schemas/saasoptics/v1/sales_orders.md b/archive/_integration-schemas/saasoptics/v1/sales_orders.md
similarity index 100%
rename from _integration-schemas/saasoptics/v1/sales_orders.md
rename to archive/_integration-schemas/saasoptics/v1/sales_orders.md
diff --git a/_integration-schemas/saasoptics/v1/transactions.md b/archive/_integration-schemas/saasoptics/v1/transactions.md
similarity index 100%
rename from _integration-schemas/saasoptics/v1/transactions.md
rename to archive/_integration-schemas/saasoptics/v1/transactions.md
diff --git a/_integration-schemas/sailthru/blast_query.md b/archive/_integration-schemas/sailthru/blast_query.md
similarity index 100%
rename from _integration-schemas/sailthru/blast_query.md
rename to archive/_integration-schemas/sailthru/blast_query.md
diff --git a/_integration-schemas/sailthru/v1/ad_targeter_plans.md b/archive/_integration-schemas/sailthru/v1/ad_targeter_plans.md
similarity index 100%
rename from _integration-schemas/sailthru/v1/ad_targeter_plans.md
rename to archive/_integration-schemas/sailthru/v1/ad_targeter_plans.md
diff --git a/_integration-schemas/sailthru/v1/blast_query.md b/archive/_integration-schemas/sailthru/v1/blast_query.md
similarity index 100%
rename from _integration-schemas/sailthru/v1/blast_query.md
rename to archive/_integration-schemas/sailthru/v1/blast_query.md
diff --git a/_integration-schemas/sailthru/v1/blast_repeats.md b/archive/_integration-schemas/sailthru/v1/blast_repeats.md
similarity index 100%
rename from _integration-schemas/sailthru/v1/blast_repeats.md
rename to archive/_integration-schemas/sailthru/v1/blast_repeats.md
diff --git a/_integration-schemas/sailthru/v1/blast_save_list.md b/archive/_integration-schemas/sailthru/v1/blast_save_list.md
similarity index 100%
rename from _integration-schemas/sailthru/v1/blast_save_list.md
rename to archive/_integration-schemas/sailthru/v1/blast_save_list.md
diff --git a/_integration-schemas/sailthru/v1/blasts.md b/archive/_integration-schemas/sailthru/v1/blasts.md
similarity index 100%
rename from _integration-schemas/sailthru/v1/blasts.md
rename to archive/_integration-schemas/sailthru/v1/blasts.md
diff --git a/archive/_integration-schemas/sailthru/v1/foreign-keys.md b/archive/_integration-schemas/sailthru/v1/foreign-keys.md
new file mode 100644
index 000000000..e19afb5cb
--- /dev/null
+++ b/archive/_integration-schemas/sailthru/v1/foreign-keys.md
@@ -0,0 +1,68 @@
+---
+# -------------------------- #
+# USING THIS TEMPLATE #
+# -------------------------- #
+
+## NEED HELP USING THIS TEMPLATE? SEE:
+## https://docs-about-stitch-docs.netlify.com/reference/integration-templates/saas-foreign-keys/
+## FOR INSTRUCTIONS & REFERENCE INFO
+
+tap-reference: "sailthru"
+
+version: "1"
+
+foreign-keys:
+ - id: "list-id"
+ table: "lists"
+ attribute: "list_id"
+ all-foreign-keys:
+ - table: "lists"
+ join-on: "list_id"
+ - table: "ad_targeter_plans"
+ join-on: "list"
+ - table: "blast_save_list"
+ join-on: "lists"
+ - table: "users"
+ subattribute: "users.lists"
+ join-on: "value"
+ - table: "blasts"
+ join-on: "list"
+ - table: "blast_repeats"
+
+ - id: "blast-id"
+ table: "blasts"
+ attribute: "blast_id"
+ all-foreign-keys:
+ - table: "blasts"
+ join-on: "blast_id"
+ - table: "blast_query"
+ join-on: "blast_id"
+
+ - id: ""
+ table: ""
+ attribute: ""
+ all-foreign-keys:
+ - table: ""
+ join-on: ""
+
+ - id: ""
+ table: ""
+ attribute: ""
+ all-foreign-keys:
+ - table: ""
+ join-on: ""
+
+ - id: ""
+ table: ""
+ attribute: ""
+ all-foreign-keys:
+ - table: ""
+ join-on: ""
+
+ - id: ""
+ table: ""
+ attribute: ""
+ all-foreign-keys:
+ - table: ""
+ join-on: ""
+---
\ No newline at end of file
diff --git a/_integration-schemas/sailthru/v1/lists.md b/archive/_integration-schemas/sailthru/v1/lists.md
similarity index 100%
rename from _integration-schemas/sailthru/v1/lists.md
rename to archive/_integration-schemas/sailthru/v1/lists.md
diff --git a/_integration-schemas/sailthru/v1/purchase_log.md b/archive/_integration-schemas/sailthru/v1/purchase_log.md
similarity index 100%
rename from _integration-schemas/sailthru/v1/purchase_log.md
rename to archive/_integration-schemas/sailthru/v1/purchase_log.md
diff --git a/_integration-schemas/sailthru/v1/users.md b/archive/_integration-schemas/sailthru/v1/users.md
similarity index 100%
rename from _integration-schemas/sailthru/v1/users.md
rename to archive/_integration-schemas/sailthru/v1/users.md
diff --git a/_integration-schemas/salesforce-marketing-cloud/v1/campaign.md b/archive/_integration-schemas/salesforce-marketing-cloud/v1/campaign.md
similarity index 100%
rename from _integration-schemas/salesforce-marketing-cloud/v1/campaign.md
rename to archive/_integration-schemas/salesforce-marketing-cloud/v1/campaign.md
diff --git a/_integration-schemas/salesforce-marketing-cloud/v1/content_area.md b/archive/_integration-schemas/salesforce-marketing-cloud/v1/content_area.md
similarity index 100%
rename from _integration-schemas/salesforce-marketing-cloud/v1/content_area.md
rename to archive/_integration-schemas/salesforce-marketing-cloud/v1/content_area.md
diff --git a/_integration-schemas/salesforce-marketing-cloud/v1/data_extension.md b/archive/_integration-schemas/salesforce-marketing-cloud/v1/data_extension.md
similarity index 100%
rename from _integration-schemas/salesforce-marketing-cloud/v1/data_extension.md
rename to archive/_integration-schemas/salesforce-marketing-cloud/v1/data_extension.md
diff --git a/_integration-schemas/salesforce-marketing-cloud/v1/email.md b/archive/_integration-schemas/salesforce-marketing-cloud/v1/email.md
similarity index 100%
rename from _integration-schemas/salesforce-marketing-cloud/v1/email.md
rename to archive/_integration-schemas/salesforce-marketing-cloud/v1/email.md
diff --git a/_integration-schemas/salesforce-marketing-cloud/v1/event.md b/archive/_integration-schemas/salesforce-marketing-cloud/v1/event.md
similarity index 99%
rename from _integration-schemas/salesforce-marketing-cloud/v1/event.md
rename to archive/_integration-schemas/salesforce-marketing-cloud/v1/event.md
index 1ac7ea0e2..0a9d6d730 100644
--- a/_integration-schemas/salesforce-marketing-cloud/v1/event.md
+++ b/archive/_integration-schemas/salesforce-marketing-cloud/v1/event.md
@@ -12,7 +12,7 @@ tap: "salesforce-marketing-cloud"
version: "1"
name: "event"
-doc-link:
+
singer-schema: https://github.com/singer-io/tap-exacttarget/blob/master/tap_exacttarget/endpoints/events.py
description: |
The `{{ table.name }}` table contains info about the following event types:
diff --git a/_integration-schemas/salesforce-marketing-cloud/v1/folder.md b/archive/_integration-schemas/salesforce-marketing-cloud/v1/folder.md
similarity index 100%
rename from _integration-schemas/salesforce-marketing-cloud/v1/folder.md
rename to archive/_integration-schemas/salesforce-marketing-cloud/v1/folder.md
diff --git a/_integration-schemas/salesforce-marketing-cloud/v1/foreign-keys.md b/archive/_integration-schemas/salesforce-marketing-cloud/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/salesforce-marketing-cloud/v1/foreign-keys.md
rename to archive/_integration-schemas/salesforce-marketing-cloud/v1/foreign-keys.md
diff --git a/_integration-schemas/salesforce-marketing-cloud/v1/list.md b/archive/_integration-schemas/salesforce-marketing-cloud/v1/list.md
similarity index 100%
rename from _integration-schemas/salesforce-marketing-cloud/v1/list.md
rename to archive/_integration-schemas/salesforce-marketing-cloud/v1/list.md
diff --git a/_integration-schemas/salesforce-marketing-cloud/v1/list_send.md b/archive/_integration-schemas/salesforce-marketing-cloud/v1/list_send.md
similarity index 100%
rename from _integration-schemas/salesforce-marketing-cloud/v1/list_send.md
rename to archive/_integration-schemas/salesforce-marketing-cloud/v1/list_send.md
diff --git a/_integration-schemas/salesforce-marketing-cloud/v1/list_subscriber.md b/archive/_integration-schemas/salesforce-marketing-cloud/v1/list_subscriber.md
similarity index 100%
rename from _integration-schemas/salesforce-marketing-cloud/v1/list_subscriber.md
rename to archive/_integration-schemas/salesforce-marketing-cloud/v1/list_subscriber.md
diff --git a/_integration-schemas/salesforce-marketing-cloud/v1/send.md b/archive/_integration-schemas/salesforce-marketing-cloud/v1/send.md
similarity index 100%
rename from _integration-schemas/salesforce-marketing-cloud/v1/send.md
rename to archive/_integration-schemas/salesforce-marketing-cloud/v1/send.md
diff --git a/_integration-schemas/salesforce-marketing-cloud/v1/subscriber.md b/archive/_integration-schemas/salesforce-marketing-cloud/v1/subscriber.md
similarity index 100%
rename from _integration-schemas/salesforce-marketing-cloud/v1/subscriber.md
rename to archive/_integration-schemas/salesforce-marketing-cloud/v1/subscriber.md
diff --git a/archive/_integration-schemas/salesforce/v1/account.md b/archive/_integration-schemas/salesforce/v1/account.md
new file mode 100644
index 000000000..62128de8d
--- /dev/null
+++ b/archive/_integration-schemas/salesforce/v1/account.md
@@ -0,0 +1,320 @@
+---
+tap: "salesforce"
+version: "1"
+
+name: "account"
+doc-link: https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_account.htm#!
+
+description: |
+ The `{{ table.name }}` table contains info about the individual accounts (organizations and persons) involved with your business. This could be a customer, a competitor, a partner, and so on.
+
+replication-method: "Key-based Incremental"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The account ID."
+ foreign-key-id: "account-id"
+
+ - name: "systemModStamp"
+ type: "date-time"
+ replication-key: true
+ description: "The time when a user or automated process (ex: a trigger) last modified the account."
+
+ - name: "accountNumber"
+ type: "string"
+ description: "The account number assigned to this account."
+
+ - name: "accountSource"
+ type: "string"
+ description: "The source of the account record. For example: `Trade Show`"
+
+ - name: "annualRevenue"
+ type: "number"
+ description: "The estimated annual revenue of the account."
+
+ - name: "billingAddress"
+ type: "string"
+ doc-link: https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/compound_fields_address.htm
+ description: |
+ The compound form of the account's billing address. **Only available if using the REST API.**
+
+ **If using the Bulk API**, track the following fields to replicate the same data:
+
+ - `billingStreet`
+ - `billingCity`
+ - `billingState`
+ - `billingStateCode`
+ - `billingCountry`
+ - `billingCountryCode`
+ - `billingPostalCode`
+ - `billingLatitude`
+ - `billingLongitude`
+ - `billingGeocodeAccuracy`
+
+ - name: "billingCity"
+ type: "string"
+ description: "The account's billing city."
+
+ - name: "billingCountry"
+ type: "string"
+ description: "The account's billing country."
+
+ - name: "billingCountryCode"
+ type: "string"
+ description: "The ISO country code for the account's billing address."
+
+ - name: "billingGeocodeAccuracy"
+ type: "string"
+ description: |
+ The compound form of the accuracy level of the geocode for the account's billing address.
+
+ - name: "billingLatitude"
+ type: "integer"
+ description: "Used with `billingLongitude` to specify the precise geolocation of a billing address."
+
+ - name: "billingLongitude"
+ type: "integer"
+ description: "Used with `billingLatitude` to specify the precise geolocation of a billing address."
+
+ - name: "billingPostalCode"
+ type: "string"
+ description: "The postal code for the account's billing address."
+
+ - name: "billingState"
+ type: "string"
+ description: "The state for the account's billing address."
+
+ - name: "billingStateCode"
+ type: "string"
+ description: "The ISO state code for the account's billing address."
+
+ - name: "billingStreet"
+ type: "string"
+ description: "The street address for the account's billing address."
+
+ - name: "cleanStatus"
+ type: "string"
+ description: |
+ The account's clean status as compared with Data.com. Possible values are:
+
+ - `Matched`
+ - `Different`
+ - `Acknowledged`
+ - `NotFound`
+ - `Inactive`
+ - `Pending`
+ - `SelectMatch`
+ - `Skipped`
+
+ - name: "connectionReceivedId"
+ type: "string"
+ description: "The ID of the `PartnerNetworkConnection` that shared the account record with your organization. **Only available if Salesforce to Salesforce is enabled.**"
+
+ - name: "description"
+ type: "string"
+ description: "The description of the account."
+
+ - name: "dunsNumber"
+ type: "string"
+ description: "The Data Universal Numbering System (DUNS) number associated with the account. **Only available if using Data.com Prospector or Data.com Clean.**"
+
+ - name: "fax"
+ type: "string"
+ description: "The fax number associated with the account."
+
+ - name: "industry"
+ type: "string"
+ description: "The industry associated with the account."
+
+ - name: "isCustomerPortal"
+ type: "boolean"
+ description: "Indicates whether the account has at least one contact enabled to use the organization's Customer Portal. This field will be `true` if at least one contact is enabled to use the portal. **Only available if Customer Portal or Communities is enabled and there are Customer Portal licenses.**"
+
+ - name: "isDeleted"
+ type: "boolean"
+ description: "Indicates if the account has been moved to the Recycle Bin (`true`) or not (`false`)."
+
+ - name: "isPartner"
+ type: "boolean"
+ description: "Indicates whether the account has at least one contact enabled to use the organization's partner portal (`true`) or not (`false`). **Only available if Partner Portal or Communities is enabled and there are partner portal licenses.**"
+
+ - name: "isPersonAccount"
+ type: "boolean"
+ description: "Indicates if the account has a record type of Person Account (`true`) or not (`false`). Refer to [Salesforce's documentation](https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_account.htm#i1438505) for info on the additional fields associated with this record type."
+
+ - name: "jigsaw"
+ type: "string"
+ description: "The account's ID from Data.com. If an account has a value in this field, it means that the account was imported from Data.com."
+
+ - name: "lastActivityDate"
+ type: "date-time"
+ description: "The due date of the most recently logged event OR the most recently closed task associated with the account, whichever is more recent."
+
+ - name: "lastReferenceDate"
+ type: "date-time"
+ description: "The date a record associated with the account was last viewed."
+
+ - name: "lastViewedDate"
+ type: "date-time"
+ description: "The date the account was last viewed."
+
+ - name: "masterRecordId"
+ type: "string"
+ description: |
+ If the account was deleted as the result of a merge, this field will contain the ID of the record that was kept.
+
+ If this account was deleted for any other reason (or hasn't been deleted), the value will be `NULL`.
+
+ - name: "naicsCode"
+ type: "string"
+ description: "The North American Industry Classification System (NAICS) code associated with the account. **Only available if using Data.com Prospector or Data.com Clean.**"
+
+ - name: "naicsDescription"
+ type: "string"
+ description: "The description associated with the account's NAICS code. **Only available if using Data.com Prospector or Data.com Clean.**"
+
+ - name: "name"
+ type: "string"
+ description: |
+ The name of the account.
+
+ If the account's record type is `PersonAccount`, the value of this field will be a concatenation of the `firstName`, `middleName`, `lastName`, and `suffix` fields of the associated person contact. **Only available if using the REST API.**
+
+ - name: "numberOfEmployees"
+ type: "number"
+ description: "The number of employees working at the company represented by the account."
+
+ - name: "operatingHoursId"
+ type: "string"
+ description: "The operating hours associated with the account. **Only available if Field Service Lightning is enabled.**"
+
+ - name: "ownerId"
+ type: "string"
+ description: "The ID of the user who currently owns the account."
+ foreign-key-id: "user-id"
+
+ - name: "ownership"
+ type: "string"
+ description: "The ownership type for the account. For example: `Private`"
+
+ - name: "parentId"
+ type: "string"
+ description: "The ID of the account's parent object, if applicable."
+
+ - name: "phone"
+ type: "string"
+ description: "The phone number associated with the account."
+
+ - name: "photoUrl"
+ type: "string"
+ description: |
+ The path to be combined with the URL of a Salesforce instance to generate a URL to request the social network profile image associated with the account.
+
+ This field will be blank if Social Accounts and Contacts aren't enabled for the organization or requesting user.
+
+ - name: "rating"
+ type: "string"
+ description: "The account's prospect rating. For example: `Cold`"
+
+ - name: "recordTypeId"
+ type: "string"
+ description: "The ID of the record type assigned to the account."
+
+ - name: "salutation"
+ type: "string"
+ description: "The honorific added to the name for use in letters, etc."
+
+ - name: "shippingAddress"
+ type: "string"
+ doc-link: https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/compound_fields_address.htm
+ description: |
+ The compound form of the account's shipping address. **Only available if using the REST API.**
+
+ **If using the Bulk API**, track the following fields to replicate the same data:
+
+ - `shippingStreet`
+ - `shippingCity`
+ - `shippingState`
+ - `shippingStateCode`
+ - `shippingCountry`
+ - `shippingCountryCode`
+ - `shippingPostalCode`
+ - `shippingLatitude`
+ - `shippingLongitude`
+ - `shippingGeocodeAccuracy`
+
+ - name: "shippingCity"
+ type: "string"
+ description: "The account's shipping city."
+
+ - name: "shippingCountry"
+ type: "string"
+ description: "The account's shipping country."
+
+ - name: "shippingCountryCode"
+ type: "string"
+ description: "The ISO country code for the account's shipping address."
+
+ - name: "shippingGeocodeAccuracy"
+ type: "string"
+ description: |
+ The compound form of the accuracy level of the geocode for the account's shipping address.
+
+ - name: "shippingLatitude"
+ type: "integer"
+ description: "Used with `shippingLongitude` to specify the precise geolocation of a shipping address."
+
+ - name: "shippingLongitude"
+ type: "integer"
+ description: "Used with `shippingLatitude` to specify the precise geolocation of a shipping address."
+
+ - name: "shippingPostalCode"
+ type: "string"
+ description: "The postal code for the account's shipping address."
+
+ - name: "shippingState"
+ type: "string"
+ description: "The state for the account's shipping address."
+
+ - name: "shippingStateCode"
+ type: "string"
+ description: "The ISO state code for the account's shipping address."
+
+ - name: "shippingStreet"
+ type: "string"
+ description: "The street address for the account's shipping address."
+
+ - name: "sic"
+ type: "string"
+ description: "The Standard Industrial Classification code of the company's main business organization."
+
+ - name: "sicDesc"
+ type: "string"
+ description: "The description associated with the account's SIC code."
+
+ - name: "site"
+ type: "string"
+ description: "The name of the account's location. For example: `Philadelphia` or `Main Office`"
+
+ - name: "tickerSymbol"
+ type: "string"
+ description: "The stock market symbol associated with the account."
+
+ - name: "tradeStyle"
+ type: "string"
+ description: "Similar to `doing business as`, this is the name (different from its legal name), that the organization may use for conducting business. **Only available if using Data.com Prospector or Data.com Clean.**"
+
+ - name: "type"
+ type: "string"
+ description: "The type of the account. For example: `Customer`"
+
+ - name: "website"
+ type: "string"
+ description: "The website associated with the account."
+
+ - name: "yearStarted"
+ type: "string"
+ description: "The date when the account (organization) was legally established. **Only available if using Data.com Prospector or Data.com Clean.**"
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/salesforce/v1/contact.md b/archive/_integration-schemas/salesforce/v1/contact.md
new file mode 100644
index 000000000..92a45a912
--- /dev/null
+++ b/archive/_integration-schemas/salesforce/v1/contact.md
@@ -0,0 +1,334 @@
+---
+tap: "salesforce"
+version: "1"
+
+name: "contact"
+doc-link: https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_contact.htm
+
+description: |
+ The `{{ table.name }}` table contains info about your contacts, who are individuals associated with accounts in your {{ integration.display_name }} instance.
+
+replication-method: "Key-based Incremental"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The contact ID."
+ foreign-key-id: "contact-id"
+
+ - name: "systemModStamp"
+ type: "date-time"
+ replication-key: true
+ description: "The time when a user or automated process (ex: a trigger) last modified the contact."
+
+ - name: "accountId"
+ type: "string"
+ description: "The ID of the account that is the parent of the contact."
+ foreign-key-id: "account-id"
+
+ - name: "assistantName"
+ type: "string"
+ description: "The name of the assistant."
+
+ - name: "assistantPhone"
+ type: "string"
+ description: "The phone number associated with the contact."
+
+ - name: "birthdate"
+ type: "date"
+ description: "The birthdate of the contact."
+
+ - name: "canAllowPortalSelfReg"
+ type: "boolean"
+ description: "Indicates if the contact can self-register for your organization's Customer Portal (`true`) or not (`false`)."
+
+ - name: "cleanStatus"
+ type: "string"
+ description: |
+ The contact's clean status as compared with Data.com. Possible values are:
+
+ - `Matched`
+ - `Different`
+ - `Acknowledged`
+ - `NotFound`
+ - `Inactive`
+ - `Pending`
+ - `SelectMatch`
+ - `Skipped`
+
+ - name: "connectionReceivedId"
+ type: "string"
+ description: "The ID of the `PartnerNetworkConnection` that shared the contact record with your organization. **Only available if Salesforce to Salesforce is enabled.**"
+
+ - name: "connectionSentId"
+ type: "string"
+ description: "The ID of the `PartnerNetworkConnection` that you shared the contact record with. **Deprecated by Salesforce.**"
+
+ - name: "department"
+ type: "string"
+ description: "The department of the contact."
+
+ - name: "description"
+ type: "string"
+ description: "The description of the contact."
+
+ - name: "doNotCall"
+ type: "boolean"
+ description: "Indicates if the contact does not want to be called (`true`)."
+
+ - name: "email"
+ type: "string"
+ description: "The email address associated with the contact."
+
+ - name: "emailBouncedDate"
+ type: "date-time"
+ description: "If bounce management is activated and an email sent to the contact bounces, the date and time the bounce occurred."
+
+ - name: "emailBouncedReason"
+ type: "string"
+ description: "If bounce management is activated and an email sent to the contact bounces, the reason the bounce occurred."
+
+ - name: "fax"
+ type: "string"
+ description: "The fax number associated with the contact."
+
+ - name: "firstName"
+ type: "string"
+ description: "The first name of the contact."
+
+ - name: "hasOptedOutOfEmail"
+ type: "boolean"
+ description: "Indicates if the contact would prefer not to receive email from Salesforce (`true`) or not (`false`)."
+
+ - name: "hasOptedOutOfFax"
+ type: "boolean"
+ description: "Indicates if the contact would prefer not to receive faxes (`true`) or not (`false`)."
+
+ - name: "homePhone"
+ type: "string"
+ description: "The home phone number associated with the contact."
+
+ - name: "isDeleted"
+ type: "boolean"
+ description: "Indicates if the contact has been moved to the Recycle Bin (`true`) or not (`false`)."
+
+ - name: "isEmailBounced"
+ type: "boolean"
+ description: "If bounce management is activated and an email is sent to a contact, indicates if the email bounced (`true`) or not (`false`)."
+
+ - name: "isPersonAccount"
+ type: "boolean"
+ description: "Indicates if the contact has a record type of Person Account (`true`) or not (`false`). Refer to [Salesforce's documentation](https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_account.htm#i1438505) for info on the additional fields associated with this record type."
+
+ - name: "jigsaw"
+ type: "string"
+ description: "The contact's ID from Data.com. If a contact has a value in this field, it means that the contact was imported from Data.com."
+
+ - name: "lastActivityDate"
+ type: "date-time"
+ description: "The due date of the most recently logged event OR the most recently closed task associated with the contact, whichever is more recent."
+
+ - name: "lastName"
+ type: "string"
+ description: "The last name of the contact."
+
+ - name: "lastReferenceDate"
+ type: "date-time"
+ description: "The date a record associated with the contact was last viewed."
+
+ - name: "lastViewedDate"
+ type: "date-time"
+ description: "The date the contact was last viewed."
+
+ - name: "leadSource"
+ type: "string"
+ description: "The source of the lead."
+
+ - name: "mailingAddress"
+ type: "string"
+ doc-link: https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/compound_fields_address.htm
+ description: |
+ The compound form of the contact's mailing address. **Only available if using the REST API.**
+
+ **If using the Bulk API**, track the following fields to replicate the same data:
+
+ - `mailingStreet`
+ - `mailingCity`
+ - `mailingState`
+ - `mailingStateCode`
+ - `mailingCountry`
+ - `mailingCountryCode`
+ - `mailingPostalCode`
+ - `mailingLatitude`
+ - `mailingLongitude`
+ - `mailingGeocodeAccuracy`
+
+ - name: "mailingCity"
+ type: "string"
+ description: "The contact's mailing city."
+
+ - name: "mailingCountry"
+ type: "string"
+ description: "The contact's mailing country."
+
+ - name: "mailingCountryCode"
+ type: "string"
+ description: "The ISO country code for the contact's mailing address."
+
+ - name: "mailingGeocodeAccuracy"
+ type: "string"
+ description: |
+ The compound form of the accuracy level of the geocode for the contact's mailing address.
+
+ - name: "mailingLatitude"
+ type: "integer"
+ description: "Used with `mailingLongitude` to specify the precise geolocation of a mailing address."
+
+ - name: "mailingLongitude"
+ type: "integer"
+ description: "Used with `mailingLatitude` to specify the precise geolocation of a mailing address."
+
+ - name: "mailingPostalCode"
+ type: "string"
+ description: "The postal code for the contact's mailing address."
+
+ - name: "mailingState"
+ type: "string"
+ description: "The state for the contact's mailing address."
+
+ - name: "mailingStateCode"
+ type: "string"
+ description: "The ISO state code for the contact's mailing address."
+
+ - name: "mailingStreet"
+ type: "string"
+ description: "The street address for the contact's mailing address."
+
+ - name: "masterRecordId"
+ type: "string"
+ description: |
+ If the contact was deleted as the result of a merge, this field will contain the ID of the record that was kept.
+
+ If this contact was deleted for any other reason (or hasn't been deleted), the value will be `NULL`.
+
+ - name: "middleName"
+ type: "string"
+ description: "The middle name of the contact."
+
+ - name: "mobilePhone"
+ type: "string"
+ description: "The mobile phone number associated with the contact."
+
+ - name: "name"
+ type: "string"
+ description: |
+ The concatenation of `firstName`, `middleName`, `lastName`, and `suffix`. **Only available if using the REST API.**
+
+ **If using the Bulk API**, track the following fields to replicate the same data:
+
+ - `firstName`
+ - `middleName`
+ - `lastName`
+ - `suffix`
+
+ - name: "otherAddress"
+ type: "string"
+ doc-link: https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/compound_fields_address.htm
+ description: |
+ The compound form of the contact's alternate address. **Only available if using the REST API.**
+
+ **If using the Bulk API**, track the following fields to replicate the same data:
+
+ - `otherStreet`
+ - `otherCity`
+ - `otherState`
+ - `otherStateCode`
+ - `otherCountry`
+ - `otherCountryCode`
+ - `otherPostalCode`
+ - `otherLatitude`
+ - `otherLongitude`
+ - `otherGeocodeAccuracy`
+
+ - name: "otherCity"
+ type: "string"
+ description: "The contact's alternate city."
+
+ - name: "otherCountry"
+ type: "string"
+ description: "The contact's alternate country."
+
+ - name: "otherCountryCode"
+ type: "string"
+ description: "The ISO country code for the contact's alternate address."
+
+ - name: "otherGeocodeAccuracy"
+ type: "string"
+ description: |
+ The compound form of the accuracy level of the geocode for the contact's alternate address.
+
+ - name: "otherLatitude"
+ type: "integer"
+ description: "Used with `otherLongitude` to specify the precise geolocation of the contact's alternate address."
+
+ - name: "otherLongitude"
+ type: "integer"
+ description: "Used with `otherLatitude` to specify the precise geolocation of the contact's alternate address."
+
+ - name: "otherPostalCode"
+ type: "string"
+ description: "The postal code for the contact's alternate address."
+
+ - name: "otherState"
+ type: "string"
+ description: "The state for the contact's alternate address."
+
+ - name: "otherStateCode"
+ type: "string"
+ description: "The ISO state code for the contact's alternate address."
+
+ - name: "otherStreet"
+ type: "string"
+ description: "The street address for the contact's alternate address."
+
+ - name: "otherPhone"
+ type: "string"
+ description: "The phone number associated with the contact's alternate address."
+
+ - name: "ownerId"
+ type: "string"
+ description: "The ID of the owner of the account associated with the contact."
+ foreign-key-id: "user-id"
+
+ - name: "phone"
+ type: "string"
+ description: "The phone number associated with the contact."
+
+ - name: "photoUrl"
+ type: "string"
+ description: |
+ The path to be combined with the URL of a Salesforce instance to generate a URL to request the social network profile image associated with the contact.
+
+ This field will be blank if Social Accounts and Contacts aren't enabled for the organization or requesting user.
+
+ - name: "recordTypeId"
+ type: "string"
+ description: "The ID of the record type assigned to the contact."
+
+ - name: "reportsToId"
+ type: "string"
+ description: "If `isPersonAccount` is `true`, this field will be `NULL`."
+
+ - name: "salutation"
+ type: "string"
+ description: "The honorific added to the contact's name for use in letters, etc."
+
+ - name: "suffix"
+ type: "string"
+ description: "The name suffix of the contact."
+
+ - name: "title"
+ type: "string"
+ description: "The title of the contact. For example: `CEO`, `Director of Product`, etc."
+---
\ No newline at end of file
diff --git a/_integration-schemas/salesforce/v1/foreign-keys.md b/archive/_integration-schemas/salesforce/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/salesforce/v1/foreign-keys.md
rename to archive/_integration-schemas/salesforce/v1/foreign-keys.md
diff --git a/_integration-schemas/salesforce/v1/lead.md b/archive/_integration-schemas/salesforce/v1/lead.md
similarity index 99%
rename from _integration-schemas/salesforce/v1/lead.md
rename to archive/_integration-schemas/salesforce/v1/lead.md
index 70342d9b8..37d10097a 100644
--- a/_integration-schemas/salesforce/v1/lead.md
+++ b/archive/_integration-schemas/salesforce/v1/lead.md
@@ -4,7 +4,7 @@ version: "1"
name: "lead"
doc-link: https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_lead.htm
-singer-schema:
+
description: |
The `{{ table.name }}` table contains info about your leads, who are prospects or potential Opportunities.
diff --git a/_integration-schemas/salesforce/v1/opportunity.md b/archive/_integration-schemas/salesforce/v1/opportunity.md
old mode 100755
new mode 100644
similarity index 99%
rename from _integration-schemas/salesforce/v1/opportunity.md
rename to archive/_integration-schemas/salesforce/v1/opportunity.md
index 35fd16e9c..6bee9094c
--- a/_integration-schemas/salesforce/v1/opportunity.md
+++ b/archive/_integration-schemas/salesforce/v1/opportunity.md
@@ -4,7 +4,7 @@ version: "1"
name: "opportunity"
doc-link: https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_opportunity.htm
-singer-schema:
+
description: |
The `{{ table.name }}` table contains info about your opportunities, which are sales or pending deals.
diff --git a/_integration-schemas/salesforce/v1/user.md b/archive/_integration-schemas/salesforce/v1/user.md
old mode 100755
new mode 100644
similarity index 99%
rename from _integration-schemas/salesforce/v1/user.md
rename to archive/_integration-schemas/salesforce/v1/user.md
index 3d277504d..8eba64271
--- a/_integration-schemas/salesforce/v1/user.md
+++ b/archive/_integration-schemas/salesforce/v1/user.md
@@ -4,7 +4,7 @@ version: "1"
name: "user"
doc-link: https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_user.htm
-singer-schema:
+
description: |
The `user` table contains info about the users in your organization.
diff --git a/_integration-schemas/salesforce/v2/account.md b/archive/_integration-schemas/salesforce/v2/account.md
similarity index 100%
rename from _integration-schemas/salesforce/v2/account.md
rename to archive/_integration-schemas/salesforce/v2/account.md
diff --git a/_integration-schemas/salesforce/v2/contact.md b/archive/_integration-schemas/salesforce/v2/contact.md
similarity index 100%
rename from _integration-schemas/salesforce/v2/contact.md
rename to archive/_integration-schemas/salesforce/v2/contact.md
diff --git a/_integration-schemas/salesforce/v2/foreign-keys.md b/archive/_integration-schemas/salesforce/v2/foreign-keys.md
similarity index 100%
rename from _integration-schemas/salesforce/v2/foreign-keys.md
rename to archive/_integration-schemas/salesforce/v2/foreign-keys.md
diff --git a/_integration-schemas/salesforce/v2/lead.md b/archive/_integration-schemas/salesforce/v2/lead.md
similarity index 100%
rename from _integration-schemas/salesforce/v2/lead.md
rename to archive/_integration-schemas/salesforce/v2/lead.md
diff --git a/_integration-schemas/salesforce/v2/opportunity.md b/archive/_integration-schemas/salesforce/v2/opportunity.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/salesforce/v2/opportunity.md
rename to archive/_integration-schemas/salesforce/v2/opportunity.md
diff --git a/_integration-schemas/salesforce/v2/user.md b/archive/_integration-schemas/salesforce/v2/user.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/salesforce/v2/user.md
rename to archive/_integration-schemas/salesforce/v2/user.md
diff --git a/archive/_integration-schemas/selligent/campaign.md b/archive/_integration-schemas/selligent/campaign.md
new file mode 100644
index 000000000..67c4361b4
--- /dev/null
+++ b/archive/_integration-schemas/selligent/campaign.md
@@ -0,0 +1,31 @@
+---
+tap: "selligent"
+version: "1"
+key: ""
+
+name: "campaign"
+
+singer-schema: https://github.com/singer-io/tap-selligent/blob/master/tap_selligent/schemas.py
+description: "This table contains campaign data."
+
+replication-method: "Full Table"
+
+attributes:
+ - name: "asset_id"
+ type: "integer"
+ primary-key: true
+ description: ""
+# foreign-key-id: "campaign-id"
+
+ - name: "modified_time"
+ type: "string"
+ description: ""
+
+ - name: "asset_name"
+ type: "string"
+ description: ""
+
+ - name: "version_number"
+ type: "string"
+ description: ""
+---
\ No newline at end of file
diff --git a/_integration-schemas/selligent/foreign-keys.md b/archive/_integration-schemas/selligent/foreign-keys.md
similarity index 100%
rename from _integration-schemas/selligent/foreign-keys.md
rename to archive/_integration-schemas/selligent/foreign-keys.md
diff --git a/_integration-schemas/selligent/internal_datasource.md b/archive/_integration-schemas/selligent/internal_datasource.md
similarity index 98%
rename from _integration-schemas/selligent/internal_datasource.md
rename to archive/_integration-schemas/selligent/internal_datasource.md
index 1318d7c8c..39b1006fa 100644
--- a/_integration-schemas/selligent/internal_datasource.md
+++ b/archive/_integration-schemas/selligent/internal_datasource.md
@@ -4,7 +4,7 @@ version: "1"
key: ""
name: "internal_datasource"
-doc-link:
+
singer-schema: https://github.com/singer-io/tap-selligent/blob/master/tap_selligent/schemas.py
description: "This table contains internal data source data."
diff --git a/_integration-schemas/selligent/owner.md b/archive/_integration-schemas/selligent/owner.md
similarity index 98%
rename from _integration-schemas/selligent/owner.md
rename to archive/_integration-schemas/selligent/owner.md
index cfa960ba3..a41087085 100644
--- a/_integration-schemas/selligent/owner.md
+++ b/archive/_integration-schemas/selligent/owner.md
@@ -4,7 +4,7 @@ version: "1"
key: ""
name: "owner"
-doc-link:
+
singer-schema: https://github.com/singer-io/tap-selligent/blob/master/tap_selligent/schemas.py
description: "This table contains owner data."
diff --git a/_integration-schemas/selligent/program.md b/archive/_integration-schemas/selligent/program.md
similarity index 98%
rename from _integration-schemas/selligent/program.md
rename to archive/_integration-schemas/selligent/program.md
index ca4519ebe..7d872013d 100644
--- a/_integration-schemas/selligent/program.md
+++ b/archive/_integration-schemas/selligent/program.md
@@ -4,7 +4,7 @@ version: "1"
key: ""
name: "program"
-doc-link:
+
singer-schema: https://github.com/singer-io/tap-selligent/blob/master/tap_selligent/schemas.py
description: "This table contains program data."
diff --git a/_integration-schemas/selligent/source.md b/archive/_integration-schemas/selligent/source.md
similarity index 98%
rename from _integration-schemas/selligent/source.md
rename to archive/_integration-schemas/selligent/source.md
index d0f327e71..3d1838c62 100644
--- a/_integration-schemas/selligent/source.md
+++ b/archive/_integration-schemas/selligent/source.md
@@ -4,7 +4,7 @@ version: "1"
key: ""
name: "source"
-doc-link:
+
singer-schema: https://github.com/singer-io/tap-selligent/blob/master/tap_selligent/schemas.py
description: "This table contains source data."
diff --git a/_integration-schemas/selligent/transactional_mailing.md b/archive/_integration-schemas/selligent/transactional_mailing.md
similarity index 99%
rename from _integration-schemas/selligent/transactional_mailing.md
rename to archive/_integration-schemas/selligent/transactional_mailing.md
index 8ee9ced67..73908cf65 100644
--- a/_integration-schemas/selligent/transactional_mailing.md
+++ b/archive/_integration-schemas/selligent/transactional_mailing.md
@@ -4,7 +4,7 @@ version: "1"
key: ""
name: "transactional_mailing"
-doc-link:
+
singer-schema: https://github.com/singer-io/tap-selligent/blob/master/tap_selligent/schemas.py
description: "This table contains transactional mailing data."
diff --git a/_integration-schemas/sendgrid-core/blocks.md b/archive/_integration-schemas/sendgrid-core/blocks.md
similarity index 100%
rename from _integration-schemas/sendgrid-core/blocks.md
rename to archive/_integration-schemas/sendgrid-core/blocks.md
diff --git a/_integration-schemas/sendgrid-core/bounces.md b/archive/_integration-schemas/sendgrid-core/bounces.md
similarity index 100%
rename from _integration-schemas/sendgrid-core/bounces.md
rename to archive/_integration-schemas/sendgrid-core/bounces.md
diff --git a/archive/_integration-schemas/sendgrid-core/campaigns.md b/archive/_integration-schemas/sendgrid-core/campaigns.md
new file mode 100644
index 000000000..01c552ab5
--- /dev/null
+++ b/archive/_integration-schemas/sendgrid-core/campaigns.md
@@ -0,0 +1,90 @@
+---
+tap: "sendgrid-core"
+version: "1"
+
+name: "campaigns"
+
+singer-schema: https://github.com/singer-io/tap-sendgrid/blob/master/tap_sendgrid/schemas/campaigns.json
+description: |
+ The `{{ table.name }}` table contains info about all your campaigns.
+
+replication-method: "Key-based Incremental"
+
+replication-key:
+ name: "timestamp"
+
+api-method:
+ name: "List all campaigns"
+ doc-link: "https://sendgrid.com/docs/API_Reference/Web_API_v3/Marketing_Campaigns/campaigns.html#Get-all-Campaigns-GET"
+
+attributes:
+ - name: "id"
+ type: "integer"
+ primary-key: true
+ description: "The campaign ID."
+ # foreign-key-id: "campaign-id"
+
+ - name: "title"
+ type: "string"
+ description: "The display title of the campaign in the SendGrid Marketing Campaigns UI."
+
+ - name: "subject"
+ type: "string"
+ description: "The subject of the campaign that recipients will see."
+
+ - name: "sender_id"
+ type: "integer"
+ description: |
+ The ID of the 'sender' identity. Recipients will see this as the "From" on your marketing emails.
+
+ - name: "list_ids"
+ type: "array"
+ description: "The IDs of the lists the campaign is being sent to."
+ subattributes:
+ - name: "value"
+ type: "integer"
+ description: "The list ID."
+ foreign-key-id: "list-id"
+
+ - name: "segment_ids"
+ type: "array"
+ description: "The segment IDs the campaign is being sent to."
+ subattributes:
+ - name: "value"
+ type: "integer"
+ description: "The segment ID."
+ foreign-key-id: "segment-id"
+
+ - name: "categories"
+ type: "array"
+ description: "The categories associated with the campaigns."
+ subattributes:
+ - name: "value"
+ type: "string"
+ description: "The name of the category."
+
+ - name: "suppression_group_id"
+ type: "integer"
+ description: "The ID of the suppression group that the marketing email belongs to, allowing recipients to opt-out of emails of this type."
+ foreign-key-id: "suppression-group-id"
+
+ - name: "custom_unsubscribe_url"
+ type: "string"
+ description: "The URL of the custom unsubscribe page provided for customers to unsubscribe from suppression groups."
+
+ - name: "ip_pool"
+ type: "string"
+ description: "The pool of IPs that the email should be sent from."
+
+ - name: "html_content"
+ type: "string"
+ description: "The HTML content of the marketing email."
+
+ - name: "plain_content"
+ type: "string"
+ description: "The plain text content of the marketing email."
+
+ - name: "status"
+ type: "string"
+ description: "The status of the campaign. For example: `Draft`"
+---
\ No newline at end of file
diff --git a/_integration-schemas/sendgrid-core/contacts.md b/archive/_integration-schemas/sendgrid-core/contacts.md
similarity index 100%
rename from _integration-schemas/sendgrid-core/contacts.md
rename to archive/_integration-schemas/sendgrid-core/contacts.md
diff --git a/_integration-schemas/sendgrid-core/foreign-keys.md b/archive/_integration-schemas/sendgrid-core/foreign-keys.md
similarity index 100%
rename from _integration-schemas/sendgrid-core/foreign-keys.md
rename to archive/_integration-schemas/sendgrid-core/foreign-keys.md
diff --git a/_integration-schemas/sendgrid-core/global_suppressions.md b/archive/_integration-schemas/sendgrid-core/global_suppressions.md
similarity index 100%
rename from _integration-schemas/sendgrid-core/global_suppressions.md
rename to archive/_integration-schemas/sendgrid-core/global_suppressions.md
diff --git a/_integration-schemas/sendgrid-core/groups_all.md b/archive/_integration-schemas/sendgrid-core/groups_all.md
similarity index 100%
rename from _integration-schemas/sendgrid-core/groups_all.md
rename to archive/_integration-schemas/sendgrid-core/groups_all.md
diff --git a/_integration-schemas/sendgrid-core/groups_members.md b/archive/_integration-schemas/sendgrid-core/groups_members.md
similarity index 100%
rename from _integration-schemas/sendgrid-core/groups_members.md
rename to archive/_integration-schemas/sendgrid-core/groups_members.md
diff --git a/_integration-schemas/sendgrid-core/invalids.md b/archive/_integration-schemas/sendgrid-core/invalids.md
similarity index 99%
rename from _integration-schemas/sendgrid-core/invalids.md
rename to archive/_integration-schemas/sendgrid-core/invalids.md
index e1fe27c08..ee50739d3 100644
--- a/_integration-schemas/sendgrid-core/invalids.md
+++ b/archive/_integration-schemas/sendgrid-core/invalids.md
@@ -3,7 +3,7 @@ tap: "sendgrid-core"
version: "1"
name: "invalids"
-doc-link:
+
singer-schema: https://github.com/singer-io/tap-sendgrid/blob/master/tap_sendgrid/schemas/invalids.json
description: |
The `{{ table.name }}` table contains info about invalid email addresses. An invalid email occurs when you attempt to send an email to an address that is formatted in a manner that doesn't meet internet email format standards, or the email doesn't exist at the recipient's email server.
diff --git a/_integration-schemas/sendgrid-core/lists_all.md b/archive/_integration-schemas/sendgrid-core/lists_all.md
similarity index 98%
rename from _integration-schemas/sendgrid-core/lists_all.md
rename to archive/_integration-schemas/sendgrid-core/lists_all.md
index 6c6b3c3bd..15a3b5150 100644
--- a/_integration-schemas/sendgrid-core/lists_all.md
+++ b/archive/_integration-schemas/sendgrid-core/lists_all.md
@@ -3,7 +3,7 @@ tap: "sendgrid-core"
version: "1"
name: "lists_all"
-doc-link:
+
singer-schema: https://github.com/singer-io/tap-sendgrid/blob/master/tap_sendgrid/schemas/lists_all.json
description: |
The `{{ table.name }}` table contains info about your recipient lists.
diff --git a/_integration-schemas/sendgrid-core/lists_members.md b/archive/_integration-schemas/sendgrid-core/lists_members.md
similarity index 99%
rename from _integration-schemas/sendgrid-core/lists_members.md
rename to archive/_integration-schemas/sendgrid-core/lists_members.md
index c0ec7fbdf..6b50da52a 100644
--- a/_integration-schemas/sendgrid-core/lists_members.md
+++ b/archive/_integration-schemas/sendgrid-core/lists_members.md
@@ -3,7 +3,7 @@ tap: "sendgrid-core"
version: "1"
name: "lists_members"
-doc-link:
+
singer-schema: https://github.com/singer-io/tap-sendgrid/blob/master/tap_sendgrid/schemas/lists_members.json
description: |
The `{{ table.name }}` table contains info about members of your lists.
diff --git a/_integration-schemas/sendgrid-core/segments_all.md b/archive/_integration-schemas/sendgrid-core/segments_all.md
similarity index 99%
rename from _integration-schemas/sendgrid-core/segments_all.md
rename to archive/_integration-schemas/sendgrid-core/segments_all.md
index 126eb915f..5ff433acb 100644
--- a/_integration-schemas/sendgrid-core/segments_all.md
+++ b/archive/_integration-schemas/sendgrid-core/segments_all.md
@@ -3,7 +3,7 @@ tap: "sendgrid-core"
version: "1"
name: "segments_all"
-doc-link:
+
singer-schema: https://github.com/singer-io/tap-sendgrid/blob/master/tap_sendgrid/schemas/segments_all.json
description: |
The `{{ table.name }}` table contains info about the segments in your SendGrid account, and the conditions required for recipients to be added to the segment.
diff --git a/_integration-schemas/sendgrid-core/segments_members.md b/archive/_integration-schemas/sendgrid-core/segments_members.md
similarity index 99%
rename from _integration-schemas/sendgrid-core/segments_members.md
rename to archive/_integration-schemas/sendgrid-core/segments_members.md
index de8d6294b..590f0390d 100644
--- a/_integration-schemas/sendgrid-core/segments_members.md
+++ b/archive/_integration-schemas/sendgrid-core/segments_members.md
@@ -3,7 +3,7 @@ tap: "sendgrid-core"
version: "1"
name: "segments_members"
-doc-link:
+
singer-schema: https://github.com/singer-io/tap-sendgrid/blob/master/tap_sendgrid/schemas/segments_members.json
description: |
The `{{ table.name }}` table contains info about the members of your segments.
diff --git a/_integration-schemas/sendgrid-core/spam_reports.md b/archive/_integration-schemas/sendgrid-core/spam_reports.md
similarity index 98%
rename from _integration-schemas/sendgrid-core/spam_reports.md
rename to archive/_integration-schemas/sendgrid-core/spam_reports.md
index 3ddde3095..bd017b066 100644
--- a/_integration-schemas/sendgrid-core/spam_reports.md
+++ b/archive/_integration-schemas/sendgrid-core/spam_reports.md
@@ -3,7 +3,7 @@ tap: "sendgrid-core"
version: "1"
name: "spam_reports"
-doc-link:
+
singer-schema: https://github.com/singer-io/tap-sendgrid/blob/master/tap_sendgrid/schemas/spam_reports.json
description: |
The `{{ table.name }}` table contains info about spam reports made against your messages. Spam reports occur when a recipient indicates they think your message is spam, which their email provider then reports to SendGrid.
diff --git a/_integration-schemas/sendgrid-core/templates_all.md b/archive/_integration-schemas/sendgrid-core/templates_all.md
similarity index 99%
rename from _integration-schemas/sendgrid-core/templates_all.md
rename to archive/_integration-schemas/sendgrid-core/templates_all.md
index 1ba231f8e..27d83ca5b 100644
--- a/_integration-schemas/sendgrid-core/templates_all.md
+++ b/archive/_integration-schemas/sendgrid-core/templates_all.md
@@ -3,7 +3,7 @@ tap: "sendgrid-core"
version: "1"
name: "templates_all"
-doc-link:
+
singer-schema: https://github.com/singer-io/tap-sendgrid/blob/master/tap_sendgrid/schemas/templates_all.json
description: |
The `{{ table.name }}` table contains info about the transactional templates in your SendGrid account. Transactional templates are templates specifically created for transactional email and are different than Marketing Campaign templates.
diff --git a/_integration-schemas/shiphero/v1/foreign-keys.md b/archive/_integration-schemas/shiphero/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/shiphero/v1/foreign-keys.md
rename to archive/_integration-schemas/shiphero/v1/foreign-keys.md
diff --git a/_integration-schemas/shiphero/v1/orders.md b/archive/_integration-schemas/shiphero/v1/orders.md
similarity index 100%
rename from _integration-schemas/shiphero/v1/orders.md
rename to archive/_integration-schemas/shiphero/v1/orders.md
diff --git a/_integration-schemas/shiphero/v1/products.md b/archive/_integration-schemas/shiphero/v1/products.md
similarity index 100%
rename from _integration-schemas/shiphero/v1/products.md
rename to archive/_integration-schemas/shiphero/v1/products.md
diff --git a/_integration-schemas/shiphero/v1/shipments.md b/archive/_integration-schemas/shiphero/v1/shipments.md
similarity index 100%
rename from _integration-schemas/shiphero/v1/shipments.md
rename to archive/_integration-schemas/shiphero/v1/shipments.md
diff --git a/_integration-schemas/shiphero/v1/vendors.md b/archive/_integration-schemas/shiphero/v1/vendors.md
similarity index 100%
rename from _integration-schemas/shiphero/v1/vendors.md
rename to archive/_integration-schemas/shiphero/v1/vendors.md
diff --git a/_integration-schemas/shippo/addresses.md b/archive/_integration-schemas/shippo/addresses.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/shippo/addresses.md
rename to archive/_integration-schemas/shippo/addresses.md
diff --git a/_integration-schemas/shippo/foreign-keys.md b/archive/_integration-schemas/shippo/foreign-keys.md
similarity index 100%
rename from _integration-schemas/shippo/foreign-keys.md
rename to archive/_integration-schemas/shippo/foreign-keys.md
diff --git a/_integration-schemas/shippo/parcels.md b/archive/_integration-schemas/shippo/parcels.md
old mode 100755
new mode 100644
similarity index 99%
rename from _integration-schemas/shippo/parcels.md
rename to archive/_integration-schemas/shippo/parcels.md
index a0dbaa451..b20a09920
--- a/_integration-schemas/shippo/parcels.md
+++ b/archive/_integration-schemas/shippo/parcels.md
@@ -4,7 +4,7 @@ version: "1"
name: "parcels"
doc-link: https://goshippo.com/docs/reference#parcels
-singer-schema:
+
description: |
The `{{ table.name }}` table contains info about parcel objects. Parcels are used to create shipments, obtain rates, and print labels.
diff --git a/_integration-schemas/shippo/refunds.md b/archive/_integration-schemas/shippo/refunds.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/shippo/refunds.md
rename to archive/_integration-schemas/shippo/refunds.md
diff --git a/_integration-schemas/shippo/shipments.md b/archive/_integration-schemas/shippo/shipments.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/shippo/shipments.md
rename to archive/_integration-schemas/shippo/shipments.md
diff --git a/_integration-schemas/shippo/transactions.md b/archive/_integration-schemas/shippo/transactions.md
old mode 100755
new mode 100644
similarity index 99%
rename from _integration-schemas/shippo/transactions.md
rename to archive/_integration-schemas/shippo/transactions.md
index 806f94ea9..9757c053d
--- a/_integration-schemas/shippo/transactions.md
+++ b/archive/_integration-schemas/shippo/transactions.md
@@ -79,7 +79,6 @@ attributes:
- name: "tracking_history"
type: "array"
description: "A list of tracking events for the shipment the transaction is associated with."
- subattributes:
- name: "tracking_url_provider"
type: "string"
diff --git a/_integration-schemas/shopify/abandoned_checkouts.md b/archive/_integration-schemas/shopify/abandoned_checkouts.md
similarity index 100%
rename from _integration-schemas/shopify/abandoned_checkouts.md
rename to archive/_integration-schemas/shopify/abandoned_checkouts.md
diff --git a/_integration-schemas/shopify/collects.md b/archive/_integration-schemas/shopify/collects.md
similarity index 100%
rename from _integration-schemas/shopify/collects.md
rename to archive/_integration-schemas/shopify/collects.md
diff --git a/_integration-schemas/shopify/custom_collections.md b/archive/_integration-schemas/shopify/custom_collections.md
similarity index 100%
rename from _integration-schemas/shopify/custom_collections.md
rename to archive/_integration-schemas/shopify/custom_collections.md
diff --git a/_integration-schemas/shopify/customers.md b/archive/_integration-schemas/shopify/customers.md
similarity index 100%
rename from _integration-schemas/shopify/customers.md
rename to archive/_integration-schemas/shopify/customers.md
diff --git a/_integration-schemas/shopify/events.md b/archive/_integration-schemas/shopify/events.md
similarity index 100%
rename from _integration-schemas/shopify/events.md
rename to archive/_integration-schemas/shopify/events.md
diff --git a/_integration-schemas/shopify/foreign-keys.md b/archive/_integration-schemas/shopify/foreign-keys.md
similarity index 100%
rename from _integration-schemas/shopify/foreign-keys.md
rename to archive/_integration-schemas/shopify/foreign-keys.md
diff --git a/_integration-schemas/shopify/inventory_items.md b/archive/_integration-schemas/shopify/inventory_items.md
similarity index 100%
rename from _integration-schemas/shopify/inventory_items.md
rename to archive/_integration-schemas/shopify/inventory_items.md
diff --git a/_integration-schemas/shopify/inventory_levels.md b/archive/_integration-schemas/shopify/inventory_levels.md
similarity index 100%
rename from _integration-schemas/shopify/inventory_levels.md
rename to archive/_integration-schemas/shopify/inventory_levels.md
diff --git a/_integration-schemas/shopify/locations.md b/archive/_integration-schemas/shopify/locations.md
similarity index 100%
rename from _integration-schemas/shopify/locations.md
rename to archive/_integration-schemas/shopify/locations.md
diff --git a/_integration-schemas/shopify/metafields.md b/archive/_integration-schemas/shopify/metafields.md
similarity index 100%
rename from _integration-schemas/shopify/metafields.md
rename to archive/_integration-schemas/shopify/metafields.md
diff --git a/_integration-schemas/shopify/order_refunds.md b/archive/_integration-schemas/shopify/order_refunds.md
similarity index 100%
rename from _integration-schemas/shopify/order_refunds.md
rename to archive/_integration-schemas/shopify/order_refunds.md
diff --git a/_integration-schemas/shopify/orders.md b/archive/_integration-schemas/shopify/orders.md
similarity index 100%
rename from _integration-schemas/shopify/orders.md
rename to archive/_integration-schemas/shopify/orders.md
diff --git a/_integration-schemas/shopify/products.md b/archive/_integration-schemas/shopify/products.md
similarity index 100%
rename from _integration-schemas/shopify/products.md
rename to archive/_integration-schemas/shopify/products.md
diff --git a/_integration-schemas/shopify/transactions.md b/archive/_integration-schemas/shopify/transactions.md
similarity index 100%
rename from _integration-schemas/shopify/transactions.md
rename to archive/_integration-schemas/shopify/transactions.md
diff --git a/_integration-schemas/slack/v1/channel_members.md b/archive/_integration-schemas/slack/v1/channel_members.md
similarity index 100%
rename from _integration-schemas/slack/v1/channel_members.md
rename to archive/_integration-schemas/slack/v1/channel_members.md
diff --git a/_integration-schemas/slack/v1/channels.md b/archive/_integration-schemas/slack/v1/channels.md
similarity index 100%
rename from _integration-schemas/slack/v1/channels.md
rename to archive/_integration-schemas/slack/v1/channels.md
diff --git a/_integration-schemas/slack/v1/files.md b/archive/_integration-schemas/slack/v1/files.md
similarity index 100%
rename from _integration-schemas/slack/v1/files.md
rename to archive/_integration-schemas/slack/v1/files.md
diff --git a/_integration-schemas/slack/v1/foreign-keys.md b/archive/_integration-schemas/slack/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/slack/v1/foreign-keys.md
rename to archive/_integration-schemas/slack/v1/foreign-keys.md
diff --git a/_integration-schemas/slack/v1/messages.md b/archive/_integration-schemas/slack/v1/messages.md
similarity index 100%
rename from _integration-schemas/slack/v1/messages.md
rename to archive/_integration-schemas/slack/v1/messages.md
diff --git a/_integration-schemas/slack/v1/remote_files.md b/archive/_integration-schemas/slack/v1/remote_files.md
similarity index 100%
rename from _integration-schemas/slack/v1/remote_files.md
rename to archive/_integration-schemas/slack/v1/remote_files.md
diff --git a/_integration-schemas/slack/v1/teams.md b/archive/_integration-schemas/slack/v1/teams.md
similarity index 100%
rename from _integration-schemas/slack/v1/teams.md
rename to archive/_integration-schemas/slack/v1/teams.md
diff --git a/_integration-schemas/slack/v1/threads.md b/archive/_integration-schemas/slack/v1/threads.md
similarity index 100%
rename from _integration-schemas/slack/v1/threads.md
rename to archive/_integration-schemas/slack/v1/threads.md
diff --git a/_integration-schemas/slack/v1/user_groups.md b/archive/_integration-schemas/slack/v1/user_groups.md
similarity index 100%
rename from _integration-schemas/slack/v1/user_groups.md
rename to archive/_integration-schemas/slack/v1/user_groups.md
diff --git a/_integration-schemas/slack/v1/users.md b/archive/_integration-schemas/slack/v1/users.md
similarity index 100%
rename from _integration-schemas/slack/v1/users.md
rename to archive/_integration-schemas/slack/v1/users.md
diff --git a/_integration-schemas/snapchat-ads/v1/ad_account_stats_daily.md b/archive/_integration-schemas/snapchat-ads/v1/ad_account_stats_daily.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/ad_account_stats_daily.md
rename to archive/_integration-schemas/snapchat-ads/v1/ad_account_stats_daily.md
diff --git a/_integration-schemas/snapchat-ads/v1/ad_account_stats_hourly.md b/archive/_integration-schemas/snapchat-ads/v1/ad_account_stats_hourly.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/ad_account_stats_hourly.md
rename to archive/_integration-schemas/snapchat-ads/v1/ad_account_stats_hourly.md
diff --git a/_integration-schemas/snapchat-ads/v1/ad_accounts.md b/archive/_integration-schemas/snapchat-ads/v1/ad_accounts.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/ad_accounts.md
rename to archive/_integration-schemas/snapchat-ads/v1/ad_accounts.md
diff --git a/_integration-schemas/snapchat-ads/v1/ad_squad_stats_daily.md b/archive/_integration-schemas/snapchat-ads/v1/ad_squad_stats_daily.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/ad_squad_stats_daily.md
rename to archive/_integration-schemas/snapchat-ads/v1/ad_squad_stats_daily.md
diff --git a/_integration-schemas/snapchat-ads/v1/ad_squad_stats_hourly.md b/archive/_integration-schemas/snapchat-ads/v1/ad_squad_stats_hourly.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/ad_squad_stats_hourly.md
rename to archive/_integration-schemas/snapchat-ads/v1/ad_squad_stats_hourly.md
diff --git a/_integration-schemas/snapchat-ads/v1/ad_squads.md b/archive/_integration-schemas/snapchat-ads/v1/ad_squads.md
similarity index 99%
rename from _integration-schemas/snapchat-ads/v1/ad_squads.md
rename to archive/_integration-schemas/snapchat-ads/v1/ad_squads.md
index 7d7153d39..6b9d099af 100644
--- a/_integration-schemas/snapchat-ads/v1/ad_squads.md
+++ b/archive/_integration-schemas/snapchat-ads/v1/ad_squads.md
@@ -41,7 +41,6 @@ attributes:
- name: "cap_and_exclusion_config"
type: "object"
description: "The frequency cap and exclusion spec"
- subattributes:
- name: "created_at"
type: "date-time"
diff --git a/_integration-schemas/snapchat-ads/v1/ad_stats_daily.md b/archive/_integration-schemas/snapchat-ads/v1/ad_stats_daily.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/ad_stats_daily.md
rename to archive/_integration-schemas/snapchat-ads/v1/ad_stats_daily.md
diff --git a/_integration-schemas/snapchat-ads/v1/ad_stats_hourly.md b/archive/_integration-schemas/snapchat-ads/v1/ad_stats_hourly.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/ad_stats_hourly.md
rename to archive/_integration-schemas/snapchat-ads/v1/ad_stats_hourly.md
diff --git a/archive/_integration-schemas/snapchat-ads/v1/ads.md b/archive/_integration-schemas/snapchat-ads/v1/ads.md
new file mode 100644
index 000000000..18fa7e2d8
--- /dev/null
+++ b/archive/_integration-schemas/snapchat-ads/v1/ads.md
@@ -0,0 +1,109 @@
+---
+tap: "snapchat-ads"
+version: "1"
+key: ""
+
+name: "ads"
+doc-link: https://developers.snapchat.com/api/docs/#get-all-ads-under-an-ad-account
+singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/ads.json
+description: "This stream retrieves all Ads under a specified Ad account"
+
+replication-method: "Key-based Incremental"
+
+table-key-properties: "id"
+valid-replication-keys: "updated_at"
+
+attributes:
+ - name: "ad_account_id"
+ type: "string"
+ description: "AD Account ID"
+
+ - name: "ad_squad_id"
+ type: "string"
+ description: "AD Squad ID"
+
+ - name: "created_at"
+ type: "date-time"
+ description: "Date of creation for AD"
+
+ - name: "creative_id"
+ type: "string"
+ description: "Creative ID"
+
+ - name: "id"
+ primary-key: true
+ type: "string"
+ description: "AD ID"
+
+ - name: "name"
+ type: "string"
+ description: "AD name"
+
+ - name: "paying_advertiser_name"
+ type: "string"
+ description: "Name of the paying advertiser/political entity"
+
+ - name: "render_type"
+ type: "string"
+ description: ""
+
+ - name: "review_status"
+ type: "string"
+ description: "Ad Review Status. Example: PENDING, APPROVED, REJECTED"
+
+ - name: "review_status_reasons"
+ type: "array"
+ description: "List of Ad Review Rejection Reasons"
+ subattributes:
+ - name: "items"
+ type: "string"
+ description: ""
+
+
+ - name: "status"
+ type: "string"
+ description: "Ad status. Example: ACTIVE, PAUSED"
+
+ - name: "third_party_paid_impression_tracking_urls"
+ type: "array"
+ description: "Third-party impression tags, executed on ad impression"
+ subattributes:
+ - name: "tracking_url_metadata"
+ type: "object"
+ description: ""
+
+ - name: "expanded_tracking_url"
+ type: "string"
+ description: ""
+
+ - name: "tracking_url"
+ type: "string"
+ description: ""
+
+
+ - name: "third_party_swipe_tracking_urls"
+ type: "array"
+ description: "Third-party swipe tags, executed on swipe of attachment"
+ subattributes:
+ - name: "tracking_url_metadata"
+ type: "object"
+ description: ""
+
+ - name: "expanded_tracking_url"
+ type: "string"
+ description: ""
+
+ - name: "tracking_url"
+ type: "string"
+ description: ""
+
+
+ - name: "type"
+ type: "string"
+ description: "Ad type. Example: SNAP_AD, LONGFORM_VIDEO, APP_INSTALL"
+
+ - name: "updated_at"
+ type: "date-time"
+ description: "Date of last update"
+ replication-key: true
+---
\ No newline at end of file
diff --git a/_integration-schemas/snapchat-ads/v1/audience_segments.md b/archive/_integration-schemas/snapchat-ads/v1/audience_segments.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/audience_segments.md
rename to archive/_integration-schemas/snapchat-ads/v1/audience_segments.md
diff --git a/_integration-schemas/snapchat-ads/v1/billing_centers.md b/archive/_integration-schemas/snapchat-ads/v1/billing_centers.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/billing_centers.md
rename to archive/_integration-schemas/snapchat-ads/v1/billing_centers.md
diff --git a/_integration-schemas/snapchat-ads/v1/campaign_stats_daily.md b/archive/_integration-schemas/snapchat-ads/v1/campaign_stats_daily.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/campaign_stats_daily.md
rename to archive/_integration-schemas/snapchat-ads/v1/campaign_stats_daily.md
diff --git a/_integration-schemas/snapchat-ads/v1/campaign_stats_hourly.md b/archive/_integration-schemas/snapchat-ads/v1/campaign_stats_hourly.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/campaign_stats_hourly.md
rename to archive/_integration-schemas/snapchat-ads/v1/campaign_stats_hourly.md
diff --git a/archive/_integration-schemas/snapchat-ads/v1/campaigns.md b/archive/_integration-schemas/snapchat-ads/v1/campaigns.md
new file mode 100644
index 000000000..0eaf6da7b
--- /dev/null
+++ b/archive/_integration-schemas/snapchat-ads/v1/campaigns.md
@@ -0,0 +1,74 @@
+---
+tap: "snapchat-ads"
+version: "1"
+key: ""
+
+name: "campaigns"
+doc-link: https://developers.snapchat.com/api/docs/#get-all-campaigns
+singer-schema: https://github.com/singer-io/tap-snapchat-ads/tree/master/tap_snapchat_ads/schemas/campaigns.json
+description: "This stream retrieves all campaigns within a specified ad account"
+
+replication-method: "Key-based Incremental"
+
+table-key-properties: "id"
+valid-replication-keys: "updated_at"
+
+attributes:
+ - name: "ad_account_id"
+ type: "string"
+ description: "Ad Account ID"
+
+ - name: "buy_model"
+ type: "string"
+ description: "Buy Model. Example: AUCTION(default), RESERVED"
+
+ - name: "created_at"
+ type: "date-time"
+ description: "Date of creation"
+
+ - name: "daily_budget_micro"
+ type: "integer"
+ description: "Daily Spend Cap (micro-currency)"
+
+ - name: "end_time"
+ type: "date-time"
+ description: "End time of the Campaign"
+
+ - name: "id"
+ primary-key: true
+ type: "string"
+ description: "Campaign ID"
+
+ - name: "lifetime_spend_cap_micro"
+ type: "integer"
+ description: "Lifetime spend cap for the campaign (microcurrency)"
+
+ - name: "measurement_spec"
+ type: "object"
+ description: "The apps to be tracked for this campaign"
+
+ - name: "name"
+ type: "string"
+ description: "Campaign name"
+
+ - name: "objective"
+ type: "string"
+ description: "Objective of the Campaign. Default: BRAND_AWARENESS"
+
+ - name: "regulations"
+ type: "object"
+ description: "Required for Campaigns that run Ads for Credit, Housing, Employment (CHE)"
+
+ - name: "start_time"
+ type: "date-time"
+ description: "Start Time of Campaign"
+
+ - name: "status"
+ type: "string"
+ description: "Campaign status"
+
+ - name: "updated_at"
+ type: "date-time"
+ description: "Date of last updated"
+ replication-key: true
+---
\ No newline at end of file
diff --git a/_integration-schemas/snapchat-ads/v1/creatives.md b/archive/_integration-schemas/snapchat-ads/v1/creatives.md
similarity index 94%
rename from _integration-schemas/snapchat-ads/v1/creatives.md
rename to archive/_integration-schemas/snapchat-ads/v1/creatives.md
index d9a5ea2a8..bd9dcde6b 100644
--- a/_integration-schemas/snapchat-ads/v1/creatives.md
+++ b/archive/_integration-schemas/snapchat-ads/v1/creatives.md
@@ -25,17 +25,14 @@ attributes:
- name: "ad_to_lens_properties"
type: "object"
description: ""
- subattributes:
- name: "ad_to_message_properties"
type: "object"
description: ""
- subattributes:
- name: "app_install_properties"
type: "object"
description: ""
- subattributes:
- name: "brand_name"
type: "string"
@@ -48,12 +45,10 @@ attributes:
- name: "collection_properties"
type: "object"
description: ""
- subattributes:
- name: "composite_properties"
type: "object"
description: ""
- subattributes:
- name: "created_at"
type: "date-time"
@@ -62,12 +57,10 @@ attributes:
- name: "deep_link_properties"
type: "object"
description: "Deep Link properties"
- subattributes:
- name: "dynamic_render_properties"
type: "object"
description: "Dynamic Render Properties"
- subattributes:
- name: "forced_view_eligibility"
type: "string"
@@ -85,7 +78,6 @@ attributes:
- name: "longform_video_properties"
type: "object"
description: "specifies the attributes for the Long Form Video Attachment"
- subattributes:
- name: "name"
type: "string"
@@ -106,7 +98,6 @@ attributes:
- name: "preview_properties"
type: "object"
description: "Preview properties for the campaign"
- subattributes:
- name: "render_type"
type: "string"
@@ -140,5 +131,4 @@ attributes:
- name: "web_view_properties"
type: "object"
description: "Defines the url for `Shop Now` button Required when interaction_type == WEB_VIEW. Only url in web_view_properties can be used"
- subattributes:
---
\ No newline at end of file
diff --git a/_integration-schemas/snapchat-ads/v1/funding_sources.md b/archive/_integration-schemas/snapchat-ads/v1/funding_sources.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/funding_sources.md
rename to archive/_integration-schemas/snapchat-ads/v1/funding_sources.md
diff --git a/_integration-schemas/snapchat-ads/v1/media.md b/archive/_integration-schemas/snapchat-ads/v1/media.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/media.md
rename to archive/_integration-schemas/snapchat-ads/v1/media.md
diff --git a/_integration-schemas/snapchat-ads/v1/members.md b/archive/_integration-schemas/snapchat-ads/v1/members.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/members.md
rename to archive/_integration-schemas/snapchat-ads/v1/members.md
diff --git a/_integration-schemas/snapchat-ads/v1/organizations.md b/archive/_integration-schemas/snapchat-ads/v1/organizations.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/organizations.md
rename to archive/_integration-schemas/snapchat-ads/v1/organizations.md
diff --git a/_integration-schemas/snapchat-ads/v1/phone_numbers.md b/archive/_integration-schemas/snapchat-ads/v1/phone_numbers.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/phone_numbers.md
rename to archive/_integration-schemas/snapchat-ads/v1/phone_numbers.md
diff --git a/_integration-schemas/snapchat-ads/v1/pixel_domain_stats.md b/archive/_integration-schemas/snapchat-ads/v1/pixel_domain_stats.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/pixel_domain_stats.md
rename to archive/_integration-schemas/snapchat-ads/v1/pixel_domain_stats.md
diff --git a/_integration-schemas/snapchat-ads/v1/pixels.md b/archive/_integration-schemas/snapchat-ads/v1/pixels.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/pixels.md
rename to archive/_integration-schemas/snapchat-ads/v1/pixels.md
diff --git a/_integration-schemas/snapchat-ads/v1/product_catalogs.md b/archive/_integration-schemas/snapchat-ads/v1/product_catalogs.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/product_catalogs.md
rename to archive/_integration-schemas/snapchat-ads/v1/product_catalogs.md
diff --git a/_integration-schemas/snapchat-ads/v1/product_sets.md b/archive/_integration-schemas/snapchat-ads/v1/product_sets.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/product_sets.md
rename to archive/_integration-schemas/snapchat-ads/v1/product_sets.md
diff --git a/_integration-schemas/snapchat-ads/v1/roles.md b/archive/_integration-schemas/snapchat-ads/v1/roles.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/roles.md
rename to archive/_integration-schemas/snapchat-ads/v1/roles.md
diff --git a/_integration-schemas/snapchat-ads/v1/targeting_advanced_demographics.md b/archive/_integration-schemas/snapchat-ads/v1/targeting_advanced_demographics.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/targeting_advanced_demographics.md
rename to archive/_integration-schemas/snapchat-ads/v1/targeting_advanced_demographics.md
diff --git a/_integration-schemas/snapchat-ads/v1/targeting_age_groups.md b/archive/_integration-schemas/snapchat-ads/v1/targeting_age_groups.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/targeting_age_groups.md
rename to archive/_integration-schemas/snapchat-ads/v1/targeting_age_groups.md
diff --git a/_integration-schemas/snapchat-ads/v1/targeting_android_versions.md b/archive/_integration-schemas/snapchat-ads/v1/targeting_android_versions.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/targeting_android_versions.md
rename to archive/_integration-schemas/snapchat-ads/v1/targeting_android_versions.md
diff --git a/_integration-schemas/snapchat-ads/v1/targeting_carriers.md b/archive/_integration-schemas/snapchat-ads/v1/targeting_carriers.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/targeting_carriers.md
rename to archive/_integration-schemas/snapchat-ads/v1/targeting_carriers.md
diff --git a/_integration-schemas/snapchat-ads/v1/targeting_connection_types.md b/archive/_integration-schemas/snapchat-ads/v1/targeting_connection_types.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/targeting_connection_types.md
rename to archive/_integration-schemas/snapchat-ads/v1/targeting_connection_types.md
diff --git a/_integration-schemas/snapchat-ads/v1/targeting_countries.md b/archive/_integration-schemas/snapchat-ads/v1/targeting_countries.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/targeting_countries.md
rename to archive/_integration-schemas/snapchat-ads/v1/targeting_countries.md
diff --git a/_integration-schemas/snapchat-ads/v1/targeting_device_makes.md b/archive/_integration-schemas/snapchat-ads/v1/targeting_device_makes.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/targeting_device_makes.md
rename to archive/_integration-schemas/snapchat-ads/v1/targeting_device_makes.md
diff --git a/_integration-schemas/snapchat-ads/v1/targeting_genders.md b/archive/_integration-schemas/snapchat-ads/v1/targeting_genders.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/targeting_genders.md
rename to archive/_integration-schemas/snapchat-ads/v1/targeting_genders.md
diff --git a/_integration-schemas/snapchat-ads/v1/targeting_interests_dlxc.md b/archive/_integration-schemas/snapchat-ads/v1/targeting_interests_dlxc.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/targeting_interests_dlxc.md
rename to archive/_integration-schemas/snapchat-ads/v1/targeting_interests_dlxc.md
diff --git a/_integration-schemas/snapchat-ads/v1/targeting_interests_dlxp.md b/archive/_integration-schemas/snapchat-ads/v1/targeting_interests_dlxp.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/targeting_interests_dlxp.md
rename to archive/_integration-schemas/snapchat-ads/v1/targeting_interests_dlxp.md
diff --git a/_integration-schemas/snapchat-ads/v1/targeting_interests_dlxs.md b/archive/_integration-schemas/snapchat-ads/v1/targeting_interests_dlxs.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/targeting_interests_dlxs.md
rename to archive/_integration-schemas/snapchat-ads/v1/targeting_interests_dlxs.md
diff --git a/_integration-schemas/snapchat-ads/v1/targeting_interests_nln.md b/archive/_integration-schemas/snapchat-ads/v1/targeting_interests_nln.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/targeting_interests_nln.md
rename to archive/_integration-schemas/snapchat-ads/v1/targeting_interests_nln.md
diff --git a/_integration-schemas/snapchat-ads/v1/targeting_interests_plc.md b/archive/_integration-schemas/snapchat-ads/v1/targeting_interests_plc.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/targeting_interests_plc.md
rename to archive/_integration-schemas/snapchat-ads/v1/targeting_interests_plc.md
diff --git a/_integration-schemas/snapchat-ads/v1/targeting_interests_scls.md b/archive/_integration-schemas/snapchat-ads/v1/targeting_interests_scls.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/targeting_interests_scls.md
rename to archive/_integration-schemas/snapchat-ads/v1/targeting_interests_scls.md
diff --git a/_integration-schemas/snapchat-ads/v1/targeting_ios_versions.md b/archive/_integration-schemas/snapchat-ads/v1/targeting_ios_versions.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/targeting_ios_versions.md
rename to archive/_integration-schemas/snapchat-ads/v1/targeting_ios_versions.md
diff --git a/_integration-schemas/snapchat-ads/v1/targeting_languages.md b/archive/_integration-schemas/snapchat-ads/v1/targeting_languages.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/targeting_languages.md
rename to archive/_integration-schemas/snapchat-ads/v1/targeting_languages.md
diff --git a/_integration-schemas/snapchat-ads/v1/targeting_location_categories.md b/archive/_integration-schemas/snapchat-ads/v1/targeting_location_categories.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/targeting_location_categories.md
rename to archive/_integration-schemas/snapchat-ads/v1/targeting_location_categories.md
diff --git a/_integration-schemas/snapchat-ads/v1/targeting_metros.md b/archive/_integration-schemas/snapchat-ads/v1/targeting_metros.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/targeting_metros.md
rename to archive/_integration-schemas/snapchat-ads/v1/targeting_metros.md
diff --git a/_integration-schemas/snapchat-ads/v1/targeting_os_types.md b/archive/_integration-schemas/snapchat-ads/v1/targeting_os_types.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/targeting_os_types.md
rename to archive/_integration-schemas/snapchat-ads/v1/targeting_os_types.md
diff --git a/_integration-schemas/snapchat-ads/v1/targeting_postal_codes.md b/archive/_integration-schemas/snapchat-ads/v1/targeting_postal_codes.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/targeting_postal_codes.md
rename to archive/_integration-schemas/snapchat-ads/v1/targeting_postal_codes.md
diff --git a/_integration-schemas/snapchat-ads/v1/targeting_regions.md b/archive/_integration-schemas/snapchat-ads/v1/targeting_regions.md
similarity index 100%
rename from _integration-schemas/snapchat-ads/v1/targeting_regions.md
rename to archive/_integration-schemas/snapchat-ads/v1/targeting_regions.md
diff --git a/_integration-schemas/square/v1/bank_accounts.md b/archive/_integration-schemas/square/v1/bank_accounts.md
similarity index 100%
rename from _integration-schemas/square/v1/bank_accounts.md
rename to archive/_integration-schemas/square/v1/bank_accounts.md
diff --git a/_integration-schemas/square/v1/cash_drawer_shifts.md b/archive/_integration-schemas/square/v1/cash_drawer_shifts.md
similarity index 100%
rename from _integration-schemas/square/v1/cash_drawer_shifts.md
rename to archive/_integration-schemas/square/v1/cash_drawer_shifts.md
diff --git a/_integration-schemas/square/v1/categories.md b/archive/_integration-schemas/square/v1/categories.md
similarity index 100%
rename from _integration-schemas/square/v1/categories.md
rename to archive/_integration-schemas/square/v1/categories.md
diff --git a/_integration-schemas/square/v1/customers.md b/archive/_integration-schemas/square/v1/customers.md
similarity index 100%
rename from _integration-schemas/square/v1/customers.md
rename to archive/_integration-schemas/square/v1/customers.md
diff --git a/_integration-schemas/square/v1/discounts.md b/archive/_integration-schemas/square/v1/discounts.md
similarity index 100%
rename from _integration-schemas/square/v1/discounts.md
rename to archive/_integration-schemas/square/v1/discounts.md
diff --git a/_integration-schemas/square/v1/employees.md b/archive/_integration-schemas/square/v1/employees.md
similarity index 100%
rename from _integration-schemas/square/v1/employees.md
rename to archive/_integration-schemas/square/v1/employees.md
diff --git a/_integration-schemas/square/v1/foreign-keys.md b/archive/_integration-schemas/square/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/square/v1/foreign-keys.md
rename to archive/_integration-schemas/square/v1/foreign-keys.md
diff --git a/_integration-schemas/square/v1/inventories.md b/archive/_integration-schemas/square/v1/inventories.md
similarity index 100%
rename from _integration-schemas/square/v1/inventories.md
rename to archive/_integration-schemas/square/v1/inventories.md
diff --git a/_integration-schemas/square/v1/items.md b/archive/_integration-schemas/square/v1/items.md
similarity index 100%
rename from _integration-schemas/square/v1/items.md
rename to archive/_integration-schemas/square/v1/items.md
diff --git a/_integration-schemas/square/v1/locations.md b/archive/_integration-schemas/square/v1/locations.md
similarity index 100%
rename from _integration-schemas/square/v1/locations.md
rename to archive/_integration-schemas/square/v1/locations.md
diff --git a/_integration-schemas/square/v1/modifier_lists.md b/archive/_integration-schemas/square/v1/modifier_lists.md
similarity index 100%
rename from _integration-schemas/square/v1/modifier_lists.md
rename to archive/_integration-schemas/square/v1/modifier_lists.md
diff --git a/_integration-schemas/square/v1/orders.md b/archive/_integration-schemas/square/v1/orders.md
similarity index 100%
rename from _integration-schemas/square/v1/orders.md
rename to archive/_integration-schemas/square/v1/orders.md
diff --git a/_integration-schemas/square/v1/payments.md b/archive/_integration-schemas/square/v1/payments.md
similarity index 100%
rename from _integration-schemas/square/v1/payments.md
rename to archive/_integration-schemas/square/v1/payments.md
diff --git a/_integration-schemas/square/v1/refunds.md b/archive/_integration-schemas/square/v1/refunds.md
similarity index 100%
rename from _integration-schemas/square/v1/refunds.md
rename to archive/_integration-schemas/square/v1/refunds.md
diff --git a/_integration-schemas/square/v1/roles.md b/archive/_integration-schemas/square/v1/roles.md
similarity index 100%
rename from _integration-schemas/square/v1/roles.md
rename to archive/_integration-schemas/square/v1/roles.md
diff --git a/_integration-schemas/square/v1/settlements.md b/archive/_integration-schemas/square/v1/settlements.md
similarity index 100%
rename from _integration-schemas/square/v1/settlements.md
rename to archive/_integration-schemas/square/v1/settlements.md
diff --git a/_integration-schemas/square/v1/shifts.md b/archive/_integration-schemas/square/v1/shifts.md
similarity index 100%
rename from _integration-schemas/square/v1/shifts.md
rename to archive/_integration-schemas/square/v1/shifts.md
diff --git a/_integration-schemas/square/v1/taxes.md b/archive/_integration-schemas/square/v1/taxes.md
similarity index 100%
rename from _integration-schemas/square/v1/taxes.md
rename to archive/_integration-schemas/square/v1/taxes.md
diff --git a/_integration-schemas/square/v2/bank_accounts.md b/archive/_integration-schemas/square/v2/bank_accounts.md
similarity index 100%
rename from _integration-schemas/square/v2/bank_accounts.md
rename to archive/_integration-schemas/square/v2/bank_accounts.md
diff --git a/_integration-schemas/square/v2/cash_drawer_shifts.md b/archive/_integration-schemas/square/v2/cash_drawer_shifts.md
similarity index 100%
rename from _integration-schemas/square/v2/cash_drawer_shifts.md
rename to archive/_integration-schemas/square/v2/cash_drawer_shifts.md
diff --git a/_integration-schemas/square/v2/categories.md b/archive/_integration-schemas/square/v2/categories.md
similarity index 100%
rename from _integration-schemas/square/v2/categories.md
rename to archive/_integration-schemas/square/v2/categories.md
diff --git a/_integration-schemas/square/v2/customers.md b/archive/_integration-schemas/square/v2/customers.md
similarity index 100%
rename from _integration-schemas/square/v2/customers.md
rename to archive/_integration-schemas/square/v2/customers.md
diff --git a/_integration-schemas/square/v2/discounts.md b/archive/_integration-schemas/square/v2/discounts.md
similarity index 100%
rename from _integration-schemas/square/v2/discounts.md
rename to archive/_integration-schemas/square/v2/discounts.md
diff --git a/_integration-schemas/square/v2/foreign-keys.md b/archive/_integration-schemas/square/v2/foreign-keys.md
similarity index 100%
rename from _integration-schemas/square/v2/foreign-keys.md
rename to archive/_integration-schemas/square/v2/foreign-keys.md
diff --git a/_integration-schemas/square/v2/inventories.md b/archive/_integration-schemas/square/v2/inventories.md
similarity index 100%
rename from _integration-schemas/square/v2/inventories.md
rename to archive/_integration-schemas/square/v2/inventories.md
diff --git a/_integration-schemas/square/v2/items.md b/archive/_integration-schemas/square/v2/items.md
similarity index 100%
rename from _integration-schemas/square/v2/items.md
rename to archive/_integration-schemas/square/v2/items.md
diff --git a/_integration-schemas/square/v2/locations.md b/archive/_integration-schemas/square/v2/locations.md
similarity index 100%
rename from _integration-schemas/square/v2/locations.md
rename to archive/_integration-schemas/square/v2/locations.md
diff --git a/_integration-schemas/square/v2/modifier_lists.md b/archive/_integration-schemas/square/v2/modifier_lists.md
similarity index 100%
rename from _integration-schemas/square/v2/modifier_lists.md
rename to archive/_integration-schemas/square/v2/modifier_lists.md
diff --git a/_integration-schemas/square/v2/orders.md b/archive/_integration-schemas/square/v2/orders.md
similarity index 100%
rename from _integration-schemas/square/v2/orders.md
rename to archive/_integration-schemas/square/v2/orders.md
diff --git a/_integration-schemas/square/v2/payments.md b/archive/_integration-schemas/square/v2/payments.md
similarity index 100%
rename from _integration-schemas/square/v2/payments.md
rename to archive/_integration-schemas/square/v2/payments.md
diff --git a/_integration-schemas/square/v2/payouts.md b/archive/_integration-schemas/square/v2/payouts.md
similarity index 100%
rename from _integration-schemas/square/v2/payouts.md
rename to archive/_integration-schemas/square/v2/payouts.md
diff --git a/_integration-schemas/square/v2/refunds.md b/archive/_integration-schemas/square/v2/refunds.md
similarity index 100%
rename from _integration-schemas/square/v2/refunds.md
rename to archive/_integration-schemas/square/v2/refunds.md
diff --git a/_integration-schemas/square/v2/roles.md b/archive/_integration-schemas/square/v2/roles.md
similarity index 100%
rename from _integration-schemas/square/v2/roles.md
rename to archive/_integration-schemas/square/v2/roles.md
diff --git a/_integration-schemas/square/v2/shifts.md b/archive/_integration-schemas/square/v2/shifts.md
similarity index 100%
rename from _integration-schemas/square/v2/shifts.md
rename to archive/_integration-schemas/square/v2/shifts.md
diff --git a/_integration-schemas/square/v2/taxes.md b/archive/_integration-schemas/square/v2/taxes.md
similarity index 100%
rename from _integration-schemas/square/v2/taxes.md
rename to archive/_integration-schemas/square/v2/taxes.md
diff --git a/_integration-schemas/square/v2/team_members.md b/archive/_integration-schemas/square/v2/team_members.md
similarity index 100%
rename from _integration-schemas/square/v2/team_members.md
rename to archive/_integration-schemas/square/v2/team_members.md
diff --git a/_integration-schemas/stripe/v1/balance_transactions.md b/archive/_integration-schemas/stripe/v1/balance_transactions.md
similarity index 100%
rename from _integration-schemas/stripe/v1/balance_transactions.md
rename to archive/_integration-schemas/stripe/v1/balance_transactions.md
diff --git a/archive/_integration-schemas/stripe/v1/charges.md b/archive/_integration-schemas/stripe/v1/charges.md
new file mode 100644
index 000000000..d3a821ac4
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v1/charges.md
@@ -0,0 +1,1153 @@
+---
+tap: "stripe"
+version: "1"
+
+name: "charges"
+doc-link: "https://stripe.com/docs/api/charges/object"
+singer-schema: "https://github.com/singer-io/tap-stripe/blob/master/tap_stripe/schemas/charges.json"
+description: |
+ The `{{ table.name }}` table contains info about charges to credit and debit cards.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all charges"
+ doc-link: "https://stripe.com/docs/api/charges/list"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The charge ID."
+ foreign-key-id: "charge-id"
+
+ - name: "created"
+ type: "date-time"
+ replication-key: true
+ description: "Time at which the object was created. Measured in seconds since the Unix epoch."
+
+ - name: "amount"
+ type: "integer"
+ description: |
+ A positive integer in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal){:target="new"} (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency) representing how much to charge. The minimum amount is $0.50 USD or [equivalent in charge currency](https://support.stripe.com/questions/what-is-the-minimum-amount-i-can-charge-with-stripe){:target="new"}.
+
+ - name: "amount_captured"
+ type: "integer"
+ description: ""
+
+ - name: "amount_refunded"
+ type: "integer"
+ description: "Amount in cents refunded (can be less than `amount` if a partial refund was issued)."
+
+ - name: "application"
+ type: "string"
+ description: "The ID of the Connect application that created the charge."
+
+ - name: "application_fee"
+ type: "string"
+ description: "The application fee (if any) for the charge."
+
+ - name: "application_fee_amount"
+ type: "integer"
+ description: ""
+
+ - name: "balance_transaction"
+ type: "string"
+ description: "The ID of the balance transaction that describes the impact of this charge on the {{ integration.display_name }} account."
+ foreign-key-id: "balance-transaction-id"
+
+ - name: "billing_details"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "line1"
+ type: "string"
+ description: ""
+ - name: "line2"
+ type: "string"
+ description: ""
+ - name: "postal_code"
+ type: "string"
+ description: ""
+ - name: "state"
+ type: "string"
+ description: ""
+ - name: "email"
+ type: "string"
+ description: ""
+ - name: "name"
+ type: "string"
+ description: ""
+ - name: "phone"
+ type: "string"
+ description: ""
+
+ - name: "calculated_statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "captured"
+ type: "boolean"
+ description: "If the charge was created without capturing, this attribute will indicate whether it's still uncaptured or has since been captured."
+
+ - name: "card"
+ type: "object"
+ description: &source-description "Details about the credit or debit card that is the source of the charge."
+ subattributes:
+ - name: "id"
+ type: "string"
+ description: "The card ID."
+ foreign-key-id: "card-id"
+
+ - name: "address_city"
+ type: "string"
+ description: "The city associated with the card's billing address."
+
+ - name: "address_country"
+ type: "string"
+ description: "The billing address country."
+
+ - name: "address_line1"
+ type: "string"
+ description: "The first line of the billing address."
+
+ - name: "address_line1_check"
+ type: "string"
+ description: |
+ If `address_line1` was provided, the results of the check. Possible values are:
+
+ - `pass`
+ - `fail`
+ - `unavailable`
+ - `unchecked`
+
+ - name: "address_line2"
+ type: "string"
+ description: "The second line of the billing address."
+
+ - name: "address_state"
+ type: "string"
+ description: "The state/county/province/region of the billing address."
+
+ - name: "address_zip"
+ type: "string"
+ description: "The zip or postal code of the billing address."
+
+ - name: "address_zip_check"
+ type: "string"
+ description: |
+ If `address_zip` was provided, the results of the check. Possible values are:
+
+ - `pass`
+ - `fail`
+ - `unavailable`
+ - `unchecked`
+
+ - name: "brand"
+ type: "string"
+ description: |
+ The brand of the card. Possible values are:
+
+ - `American Express`
+ - `Diners Club`
+ - `Discover`
+ - `JCB`
+ - `MasterCard`
+ - `UnionPay`
+ - `Visa`
+ - `Unknown`
+
+ - name: "country"
+ type: "string"
+ description: "The two-letter ISO code representing the country of the card."
+
+ - name: "customer"
+ type: "string"
+ description: "The ID of the customer that the card belongs to."
+ foreign-key-id: "customer-id"
+
+ - name: "cvc_check"
+ type: "string"
+ description: |
+ If a CVC was provided, this will be the result of the check. Possible values are:
+
+ - `pass`
+ - `fail`
+ - `unavailable`
+ - `unchecked`
+
+ - name: "dynamic_last4"
+ type: "string"
+ description: "**For tokenized numbers only.** The last four digits of the device account number."
+
+ - name: "exp_month"
+ type: "integer"
+ description: "The two-digit number representing the card's expiration month."
+
+ - name: "exp_year"
+ type: "integer"
+ description: "The four-digit number representing the card's expiration year."
+
+ - name: "fingerprint"
+ type: "string"
+ description: "A unique ID for the card number."
+
+ - name: "funding"
+ type: "string"
+ description: |
+ The card's funding type. Possible values are:
+
+ - `credit`
+ - `debit`
+ - `prepaid`
+ - `unknown`
+
+ - name: "last4"
+ type: "string"
+ description: "The last four digits of the card."
+
+ - name: "metadata"
+ type: "object"
+ description: "Additional information attached to the card."
+ subattributes:
+ - name: "ANYTHING"
+ type: "ANYTHING"
+ description: "This info will vary."
+
+ - name: "name"
+ type: "string"
+ description: "The name of the cardholder."
+
+ - name: "object"
+ type: "string"
+ description: "The type of {{ integration.display_name }} object. This will be `card`."
+
+ - name: "tokenization_method"
+ type: "string"
+ description: |
+ If the card number is tokenized, this is the method that was used. Possible values are:
+
+ - `apple_pay`
+ - `android_pay`
+
+ - name: "currency"
+ type: "string"
+ description: |
+ The three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html){:target="new"}.
+
+ - name: "customer"
+ type: "string"
+ description: "The ID of the customer associated with the charge."
+ foreign-key-id: "customer-id"
+
+ - name: "description"
+ type: "string"
+ description: "An arbitrary string attached to the object. Often useful for displaying to users."
+
+ - name: "destination"
+ type: "string"
+ description: "The account (if any) the charge was made on behalf of, with an automatic transfer."
+
+ - name: "dispute"
+ type: "string"
+ description: "Details about the dispute, if the charge has been disputed."
+
+ - name: "disputed"
+ type: "boolean"
+ description: ""
+
+ - name: "failure_code"
+ type: "string"
+ description: |
+ The error code explaining the reason for a charge failure, if available. Refer to [{{ integration.display_name }}'s documentation](https://stripe.com/docs/api#errors){:target="new"} for a list of possible error codes.
+
+ - name: "failure_message"
+ type: "string"
+ description: "The message that displays to the user that further explains the reason for the charge failure."
+
+ - name: "fraud_details"
+ type: "object"
+ description: |
+ Details about fraud assessments for the charge.
+ subattributes:
+ - name: "stripe_report"
+ type: "string"
+ description: |
+ If not `null`, this indicates that a {{ integration.display_name }} fraud assessment exists for the charge. This field may have a value of `fraudulent`.
+
+ - name: "user_report"
+ type: "string"
+ description: |
+ If not `null`, this indicates that a fraud assessment reported by you exists for the charge. Possible values are:
+
+ - `safe`
+ - `fraudulent`
+
+ - name: "invoice"
+ type: "string"
+ description: "The ID of the invoice the charge is for."
+ foreign-key-id: "invoice-id"
+
+ - name: "livemode"
+ type: "boolean"
+ description: "Indicates if the object exists in live mode (`true`) or in test mode (`false`)."
+
+ - name: "metadata"
+ type: "object"
+ description: "Additional information attached to the charge."
+
+ - name: "object"
+ type: "string"
+ description: "The type of {{ integration.display_name }} object. This will be `charge`."
+
+ - name: "on_behalf_of"
+ type: "string"
+ description: "The account the charge was made on behalf of without triggering an automatic transfer."
+
+ - name: "order"
+ type: "string"
+ description: "The ID of the order this charge is for."
+
+ - name: "outcome"
+ type: "object"
+ description: "Details about whether the payment was accepted and why."
+ subattributes:
+ - name: "network_status"
+ type: "string"
+ description: |
+ The network status of the outcome. Possible values are:
+
+ - `approved_by_network`
+ - `declined_by_network`
+ - `not_sent_to_network`
+ - `reversed_after_approval` - This value indicates that [{{ integration.display_name }} blocked the payment](https://stripe.com/docs/declines#blocked-payments){:target="new"} after bank authorization, and may temporarily appear as "pending" on a cardholder's statement.
+
+ - name: "reason"
+ type: "string"
+ description: |
+ A detailed explanation of the outcome's `type`. Possible values are:
+
+ - `highest_risk_level` - Indicates the charge was blocked by Radar's default block rule.
+ - `elevated_risk_level` - Indicates the charge was placed in review by Radar's default review rule.
+ - `rule` - Indicates the charge was authorized, blocked, or placed in review by a custom rule.
+
+ Refer to [{{ integration.display_name }}'s documentation](https://stripe.com/docs/declines){:target="new"} for more info about this attribute.
+
+ - name: "risk_level"
+ type: "string"
+ description: |
+ Indicates {{ integration.display_name }}'s evaluation of the riskiness of the payment. Possible values are:
+
+ - `normal`, `elevated`, `highest` - Evaluated payments
+ - `not_assessed` - Non-card payments, and card-based payments predating the public assignment of risk levels
+ - `unknown` - Indicates an error in the risk evaluation
+
+ - name: "risk_score"
+ type: "integer"
+ description: |
+ Indicates {{ integration.display_name }}'s evaluation of the riskiness of the payment.
+
+ - For evaluated payments, this attribute will contain a value between `0` and `100`.
+
+ - For non-card payments, and card-based payments predating the public assignment of risk levels, this field will be `null`.
+
+ - name: "seller_message"
+ type: "string"
+ description: "A description of the outcome type and reason designed for you, the recipient of the payment."
+
+ - name: "type"
+ type: "string"
+ description: |
+ The type of the outcome. Possible values are:
+
+ - `authorized`
+ - `manual_review`
+ - `issuer_declined`
+ - `blocked`
+ - `invalid`
+
+ - name: "paid"
+ type: "boolean"
+ description: "Indicates if the charge succeeded (`true`) or was successfully authorzed for later capture (`false`)."
+
+ - name: "payment_intent"
+ type: "string"
+ description: "The ID of the payment intent associated with the charge."
+ # foreign-key-id: "payment-intent-id"
+
+ - name: "payment_method"
+ type: "string"
+ description: ""
+
+ - name: "payment_method_details"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "ach_credit_transfer"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "account_number"
+ type: "string"
+ description: ""
+ - name: "bank_name"
+ type: "string"
+ description: ""
+ - name: "routing_number"
+ type: "string"
+ description: ""
+ - name: "swift_code"
+ type: "string"
+ description: ""
+ - name: "ach_debit"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "account_holder_type"
+ type: "string"
+ description: ""
+ - name: "bank_name"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+ - name: "last4"
+ type: "string"
+ description: ""
+ - name: "routing_number"
+ type: "string"
+ description: ""
+ - name: "alipay"
+ type: "object"
+ description: ""
+ - name: "bancontact"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank_code"
+ type: "string"
+ description: ""
+ - name: "bank_name"
+ type: "string"
+ description: ""
+ - name: "bic"
+ type: "string"
+ description: ""
+ - name: "iban_last4"
+ type: "string"
+ description: ""
+ - name: "preferred_language"
+ type: "string"
+ description: ""
+ - name: "verified_name"
+ type: "string"
+ description: ""
+ - name: "card"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "address_city"
+ type: "string"
+ description: ""
+ - name: "address_country"
+ type: "string"
+ description: ""
+ - name: "address_line1"
+ type: "string"
+ description: ""
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+ - name: "address_line2"
+ type: "string"
+ description: ""
+ - name: "address_state"
+ type: "string"
+ description: ""
+ - name: "address_zip"
+ type: "string"
+ description: ""
+ - name: "address_zip_check"
+ type: "string"
+ description: ""
+ - name: "brand"
+ type: "string"
+ description: ""
+ - name: "card_present"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "brand"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "emv_auth_data"
+ type: "string"
+ description: ""
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+ - name: "funding"
+ type: "string"
+ description: ""
+ - name: "generated_card"
+ type: "string"
+ description: ""
+ - name: "last4"
+ type: "string"
+ description: ""
+ - name: "network"
+ type: "string"
+ description: ""
+ - name: "read_method"
+ type: "string"
+ description: ""
+ - name: "receipt"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "application_cryptogram"
+ type: "string"
+ description: ""
+ - name: "application_preferred_name"
+ type: "string"
+ description: ""
+ - name: "authorization_code"
+ type: "string"
+ description: ""
+ - name: "authorization_response_code"
+ type: "string"
+ description: ""
+ - name: "cardholder_verification_method"
+ type: "string"
+ description: ""
+ - name: "dedicated_file_name"
+ type: "string"
+ description: ""
+ - name: "terminal_verification_results"
+ type: "string"
+ description: ""
+ - name: "transaction_status_information"
+ type: "string"
+ description: ""
+ - name: "checks"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+ - name: "address_postal_code_check"
+ type: "string"
+ description: ""
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "customer"
+ type: "string"
+ description: ""
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+ - name: "eps"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "verified_name"
+ type: "string"
+ description: ""
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+ - name: "funding"
+ type: "string"
+ description: ""
+ - name: "giropay"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank_code"
+ type: "string"
+ description: ""
+ - name: "bank_name"
+ type: "string"
+ description: ""
+ - name: "bic"
+ type: "string"
+ description: ""
+ - name: "verified_name"
+ type: "string"
+ description: ""
+ - name: "id"
+ type: "string"
+ description: ""
+ - name: "ideal"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank"
+ type: "string"
+ description: ""
+ - name: "bic"
+ type: "string"
+ description: ""
+ - name: "iban_last4"
+ type: "string"
+ description: ""
+ - name: "verified_name"
+ type: "string"
+ description: ""
+ - name: "installments"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "plan"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "count"
+ type: "integer"
+ description: ""
+ - name: "interval"
+ type: "string"
+ description: ""
+ - name: "type"
+ type: "string"
+ description: ""
+ - name: "klarna"
+ type: "object"
+ description: ""
+ - name: "last4"
+ type: "string"
+ description: ""
+ - name: "metadata"
+ type: "object"
+ description: ""
+ - name: "multibanco"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "entity"
+ type: "string"
+ description: ""
+ - name: "reference"
+ type: "string"
+ description: ""
+ - name: "name"
+ type: "string"
+ description: ""
+ - name: "network"
+ type: "string"
+ description: ""
+ - name: "object"
+ type: "string"
+ description: ""
+ - name: "p24"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "reference"
+ type: "string"
+ description: ""
+ - name: "verified_name"
+ type: "string"
+ description: ""
+ - name: "sepa_debit"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank_code"
+ type: "string"
+ description: ""
+ - name: "branch_code"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+ - name: "last4"
+ type: "string"
+ description: ""
+ - name: "mandate"
+ type: "string"
+ description: ""
+ - name: "sofort"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank_code"
+ type: "string"
+ description: ""
+ - name: "bank_name"
+ type: "string"
+ description: ""
+ - name: "bic"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "iban_last4"
+ type: "string"
+ description: ""
+ - name: "verified_name"
+ type: "string"
+ description: ""
+ - name: "stripe_account"
+ type: "object"
+ description: ""
+ - name: "three_d_secure"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "authenticated"
+ type: "boolean"
+ description: ""
+ - name: "succeeded"
+ type: "boolean"
+ description: ""
+ - name: "version"
+ type: "string"
+ description: ""
+ - name: "tokenization_method"
+ type: "string"
+ description: ""
+ - name: "type"
+ type: "string"
+ description: ""
+ - name: "wallet"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "amex_express_checkout"
+ type: "object"
+ description: ""
+ - name: "apple_pay"
+ type: "object"
+ description: ""
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+ - name: "google_pay"
+ type: "object"
+ description: ""
+ - name: "masterpass"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "billing_address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "line1"
+ type: "string"
+ description: ""
+ - name: "line2"
+ type: "string"
+ description: ""
+ - name: "postal_code"
+ type: "string"
+ description: ""
+ - name: "state"
+ type: "string"
+ description: ""
+ - name: "email"
+ type: "string"
+ description: ""
+ - name: "name"
+ type: "string"
+ description: ""
+ - name: "shipping_address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "line1"
+ type: "string"
+ description: ""
+ - name: "line2"
+ type: "string"
+ description: ""
+ - name: "postal_code"
+ type: "string"
+ description: ""
+ - name: "state"
+ type: "string"
+ description: ""
+ - name: "samsung_pay"
+ type: "object"
+ description: ""
+ - name: "type"
+ type: "string"
+ description: ""
+ - name: "visa_checkout"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "billing_address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "line1"
+ type: "string"
+ description: ""
+ - name: "line2"
+ type: "string"
+ description: ""
+ - name: "postal_code"
+ type: "string"
+ description: ""
+ - name: "state"
+ type: "string"
+ description: ""
+ - name: "email"
+ type: "string"
+ description: ""
+ - name: "name"
+ type: "string"
+ description: ""
+ - name: "shipping_address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "line1"
+ type: "string"
+ description: ""
+ - name: "line2"
+ type: "string"
+ description: ""
+ - name: "postal_code"
+ type: "string"
+ description: ""
+ - name: "state"
+ type: "string"
+ description: ""
+ - name: "wechat"
+ type: "object"
+ description: ""
+ - name: "type"
+ type: "string"
+ description: ""
+
+ - name: "receipt_email"
+ type: "string"
+ description: "The email address that the receipt for the charge was sent to."
+
+ - name: "receipt_number"
+ type: "string"
+ description: "The transaction number that appears on email receipts for the charge. This will be `null` until a receipt is sent."
+
+ - name: "receipt_url"
+ type: "string"
+ description: ""
+
+ - name: "refunded"
+ type: "boolean"
+ description: "Indicates if the charge has been fully refunded. If the charge is only partially refunded, this attribute will be `false`."
+
+ - name: "refunds"
+ type: "array"
+ description: "A list of refunds that have been applied to the charge."
+ subattributes:
+ - name: "value"
+ type: "string"
+ primary-key: true
+ description: "The ID of the refund."
+
+ - name: "review"
+ type: "string"
+ description: "The ID of the review associated with the charge."
+
+ - name: "shipping"
+ type: "object"
+ description: "The shipping information for the charge."
+ subattributes:
+ - name: "address"
+ type: "object"
+ description: "The shipping address."
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: "The city of the shipping address."
+
+ - name: "country"
+ type: "string"
+ description: "The two-letter country code of the shipping address. For example: `us`"
+
+ - name: "line1"
+ type: "string"
+ description: "The first address line of the shipping address."
+
+ - name: "line2"
+ type: "string"
+ description: "The second address line of the shipping address."
+
+ - name: "postal_code"
+ type: "string"
+ description: "The zip or postal code of the shipping address."
+
+ - name: "state"
+ type: "string"
+ description: "The state, county, province, region, etc. of the shipping address"
+
+ - name: "carrier"
+ type: "string"
+ description: "The delivery service that shipped a physical product. For example: `FedEx`"
+
+ - name: "name"
+ type: "string"
+ description: "The recipient's name."
+
+ - name: "phone"
+ type: "string"
+ description: "The recipient's phone number, including extension."
+
+ - name: "tracking_number"
+ type: "string"
+ description: "The tracking number for a physical product, obtained from the delivery service (`carrier`)."
+
+ - name: "source"
+ type: "object"
+ description: *source-description
+ subattributes:
+ - name: "id"
+ type: "string"
+ description: "The card ID."
+ foreign-key-id: "card-id"
+
+ - name: "address_city"
+ type: "string"
+ description: "The city associated with the card's billing address."
+
+ - name: "address_country"
+ type: "string"
+ description: "The billing address country."
+
+ - name: "address_line1"
+ type: "string"
+ description: "The first line of the billing address."
+
+ - name: "address_line1_check"
+ type: "string"
+ description: |
+ If `address_line1` was provided, the results of the check. Possible values are:
+
+ - `pass`
+ - `fail`
+ - `unavailable`
+ - `unchecked`
+
+ - name: "address_line2"
+ type: "string"
+ description: "The second line of the billing address."
+
+ - name: "address_state"
+ type: "string"
+ description: "The state/county/province/region of the billing address."
+
+ - name: "address_zip"
+ type: "string"
+ description: "The zip or postal code of the billing address."
+
+ - name: "address_zip_check"
+ type: "string"
+ description: |
+ If `address_zip` was provided, the results of the check. Possible values are:
+
+ - `pass`
+ - `fail`
+ - `unavailable`
+ - `unchecked`
+
+ - name: "brand"
+ type: "string"
+ description: |
+ The brand of the card. Possible values are:
+
+ - `American Express`
+ - `Diners Club`
+ - `Discover`
+ - `JCB`
+ - `MasterCard`
+ - `UnionPay`
+ - `Visa`
+ - `Unknown`
+
+ - name: "country"
+ type: "string"
+ description: "The two-letter ISO code representing the country of the card."
+
+ - name: "customer"
+ type: "string"
+ description: "The ID of the customer that the card belongs to."
+ foreign-key-id: "customer-id"
+
+ - name: "cvc_check"
+ type: "string"
+ description: |
+ If a CVC was provided, this will be the result of the check. Possible values are:
+
+ - `pass`
+ - `fail`
+ - `unavailable`
+ - `unchecked`
+
+ - name: "dynamic_last4"
+ type: "string"
+ description: "**For tokenized numbers only.** The last four digits of the device account number."
+
+ - name: "exp_month"
+ type: "integer"
+ description: "The two-digit number representing the card's expiration month."
+
+ - name: "exp_year"
+ type: "integer"
+ description: "The four-digit number representing the card's expiration year."
+
+ - name: "fingerprint"
+ type: "string"
+ description: "A unique ID for the card number."
+
+ - name: "funding"
+ type: "string"
+ description: |
+ The card's funding type. Possible values are:
+
+ - `credit`
+ - `debit`
+ - `prepaid`
+ - `unknown`
+
+ - name: "last4"
+ type: "string"
+ description: "The last four digits of the card."
+
+ - name: "metadata"
+ type: "object"
+ description: "Additional information attached to the card."
+ subattributes:
+ - name: "ANYTHING"
+ type: "ANYTHING"
+ description: "This info will vary."
+
+ - name: "name"
+ type: "string"
+ description: "The name of the cardholder."
+
+ - name: "object"
+ type: "string"
+ description: "The type of {{ integration.display_name }} object. This will be `card`."
+
+ - name: "tokenization_method"
+ type: "string"
+ description: |
+ If the card number is tokenized, this is the method that was used. Possible values are:
+
+ - `apple_pay`
+ - `android_pay`
+
+ - name: "source_transfer"
+ type: "string"
+ description: "The transfer ID that created the charge. Only present if the charge came from another {{ integration.display_name }} account."
+ foreign-key-id: "transfer-id"
+
+ - name: "statement_description"
+ type: "string"
+ description: "**Deprecated by {{ integration.display_name }}**."
+
+ - name: "statement_descriptor"
+ type: "string"
+ description: "Additional information about the charge. This appears on the customer's credit card statement."
+
+ - name: "statement_descriptor_suffix"
+ type: "string"
+ description: ""
+
+ - name: "status"
+ type: "string"
+ description: |
+ The status of the payment. Possible values are:
+
+ - `succeeded`
+ - `pending`
+ - `failed`
+
+ - name: "transfer_data"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "amount"
+ type: "integer"
+ description: ""
+ - name: "destination"
+ type: "string"
+ description: ""
+
+ - name: "transfer_group"
+ type: "string"
+ description: "A string that identifies this transaction as part of a group."
+
+ - name: "updated"
+ type: "date-time"
+ description: "The time at which the charge was last updated."
+---
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v1/coupons.md b/archive/_integration-schemas/stripe/v1/coupons.md
similarity index 100%
rename from _integration-schemas/stripe/v1/coupons.md
rename to archive/_integration-schemas/stripe/v1/coupons.md
diff --git a/archive/_integration-schemas/stripe/v1/customers.md b/archive/_integration-schemas/stripe/v1/customers.md
new file mode 100644
index 000000000..d2d3605ca
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v1/customers.md
@@ -0,0 +1,959 @@
+---
+tap: "stripe"
+version: "1"
+
+name: "customers"
+doc-link: "https://stripe.com/docs/api/customers/object"
+singer-schema: "https://github.com/singer-io/tap-stripe/blob/master/tap_stripe/schemas/customers.json"
+description: |
+ The `{{ table.name }}` table contains info about your customers.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all customers"
+ doc-link: "https://stripe.com/docs/api/customers/list"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The customer ID."
+ foreign-key-id: "customer-id"
+
+ - name: "address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "line1"
+ type: "string"
+ description: ""
+ - name: "line2"
+ type: "string"
+ description: ""
+ - name: "postal_code"
+ type: "string"
+ description: ""
+ - name: "state"
+ type: "string"
+ description: ""
+
+ - name: "balance"
+ type: "integer"
+ description: ""
+
+ - name: "created"
+ type: "date-time"
+ replication-key: true
+ description: "Time at which the object was created. Measured in seconds since the Unix epoch."
+
+ - name: "account_balance"
+ type: "integer"
+ description: "The current balance, if any, being stored on the customer's account."
+
+ - name: "cards"
+ type: "array"
+ description: "Details about the customer's cards."
+ subattributes: &card-attributes
+ - name: "id"
+ type: "string"
+ description: "The card ID."
+ foreign-key-id: "card-id"
+
+ - name: "address_city"
+ type: "string"
+ description: &address-city "The city associated with the card's billing address."
+
+ - name: "address_country"
+ type: "string"
+ description: &address-country "The billing address country."
+
+ - name: "address_line1"
+ type: "string"
+ description: &address-line1 "The first line of the billing address."
+
+ - name: "address_line1_check"
+ type: "string"
+ description: &address-line1-check |
+ If `address_line1` was provided, the results of the check. Possible values are:
+
+ - `pass`
+ - `fail`
+ - `unavailable`
+ - `unchecked`
+
+ - name: "address_line2"
+ type: "string"
+ description: &address-line2 "The second line of the billing address."
+
+ - name: "address_state"
+ type: "string"
+ description: &address-state "The state/county/province/region of the billing address."
+
+ - name: "address_zip"
+ type: "string"
+ description: &address-zip "The zip or postal code of the billing address."
+
+ - name: "address_zip_check"
+ type: "string"
+ description: &address-zip-check |
+ If `address_zip` was provided, the results of the check. Possible values are:
+
+ - `pass`
+ - `fail`
+ - `unavailable`
+ - `unchecked`
+
+ - name: "brand"
+ type: "string"
+ description: &brand |
+ The brand of the card. Possible values are:
+
+ - `American Express`
+ - `Diners Club`
+ - `Discover`
+ - `JCB`
+ - `MasterCard`
+ - `UnionPay`
+ - `Visa`
+ - `Unknown`
+
+ - name: "country"
+ type: "string"
+ description: &country "The two-letter ISO code representing the country of the card."
+
+ - name: "customer"
+ type: "string"
+ description: "The ID of the customer that the card belongs to."
+ foreign-key-id: "customer-id"
+
+ - name: "cvc_check"
+ type: "string"
+ description: &cvc-check |
+ If a CVC was provided, this will be the result of the check. Possible values are:
+
+ - `pass`
+ - `fail`
+ - `unavailable`
+ - `unchecked`
+
+ - name: "dynamic_last4"
+ type: "string"
+ description: &dynamic-last4 "**For tokenized numbers only.** The last four digits of the device account number."
+
+ - name: "exp_month"
+ type: "integer"
+ description: &exp-month "The two-digit number representing the card's expiration month."
+
+ - name: "exp_year"
+ type: "integer"
+ description: &exp-year "The four-digit number representing the card's expiration year."
+
+ - name: "fingerprint"
+ type: "string"
+ description: &fingerprint "A unique ID for the card number."
+
+ - name: "funding"
+ type: "string"
+ description: &funding |
+ The card's funding type. Possible values are:
+
+ - `credit`
+ - `debit`
+ - `prepaid`
+ - `unknown`
+
+ - name: "last4"
+ type: "string"
+ description: &last4 "The last four digits of the card."
+
+ - name: "metadata"
+ type: "object"
+ description: "Additional information attached to the card."
+ subattributes: &metadata
+ - name: "ANYTHING"
+ type: "ANYTHING"
+ description: "This info will vary."
+
+ - name: "name"
+ type: "string"
+ description: &card-name "The name of the cardholder."
+
+ - name: "object"
+ type: "string"
+ description: "The type of {{ integration.display_name }} object. This will be `card`."
+
+ - name: "tokenization_method"
+ type: "string"
+ description: &tokenization-method |
+ If the card number is tokenized, this is the method that was used. Possible values are:
+
+ - `apple_pay`
+ - `android_pay`
+
+ - name: "currency"
+ type: "string"
+ description: |
+ The three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html){:target="new"} the customer can be charged in for recurring billing purposes.
+
+ - name: "default_card"
+ type: "string"
+ description: ""
+
+ - name: "default_source"
+ type: "string"
+ description: "The ID of the default source attached to this customer."
+
+ - name: "delinquent"
+ type: "boolean"
+ description: |
+ When the customer's latest invoice is billed by charging automatically, this will be `true` if the invoice's latest charge failed.
+
+ When the customer's latest invoice is billed by sending an invoice, this will be `true` if the invoice is not paid by its due date.
+
+ - name: "description"
+ type: "string"
+ description: "The description of the customer."
+
+ - name: "discount"
+ type: "object"
+ description: "Describes the current discount active on the customer."
+ subattributes:
+ - name: "coupon"
+ type: "object"
+ description: "Details about the coupon applied to the customer."
+ subattributes:
+ - name: "id"
+ type: "string"
+ description: "The coupon ID."
+ foreign-key-id: "coupon-id"
+
+ - name: "amount_off"
+ type: "integer"
+ description: "The amount (in the `currency` specified) that will be taken off the subtotal of any invoices for this customer."
+
+ - name: "created"
+ type: "date-time"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: |
+ The three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html){:target="new"} of the amount to take off (`amount_off`).
+
+ - name: "duration"
+ type: "string"
+ description: |
+ Indicates how long a customer who applies this coupon will get the discount. Possible values are:
+
+ - `forever`
+ - `once`
+ - `repeating`
+
+ - name: "duration_in_months"
+ type: "integer"
+ description: "Indicates the number of months the coupon applies if `duration: repeating`."
+
+ - name: "livemode"
+ type: "boolean"
+ description: "Indicates if the coupon exists in live mode (`true`) or in test mode (`false`)."
+
+ - name: "max_redemptions"
+ type: "integer"
+ description: "The maximum number of times this coupon can be redeemed in total across all customers before it is no longer valid."
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+ subattributes: *metadata
+
+ - name: "name"
+ type: "string"
+ description: "The name of the coupon as it is displayed to customers."
+
+ - name: "object"
+ type: "string"
+ description: "The type of {{ integration.display_name }} object. This will be `coupon`."
+
+ - name: "percent_off"
+ type: "integer"
+ description: "The percent that will be taken off the subtotal of any invoices for this customer for the duration of the coupon."
+
+ - name: "percent_off_precise"
+ type: "number"
+ description: ""
+
+ - name: "redeem_by"
+ type: "date-time"
+ description: "The date afer which the coupon can no longer be redeemed."
+
+ - name: "times_redeemed"
+ type: "integer"
+ description: "The number of times this coupon has been applied to a customer."
+
+ - name: "valid"
+ type: "boolean"
+ description: "Taking into account all of the other coupon properties, indicates whether this coupon can still be applied to a customer."
+
+ - name: "customer"
+ type: "string"
+ description: "The ID of the customer the discount applies to."
+ foreign-key-id: "customer-id"
+
+ - name: "end"
+ type: "date-time"
+ description: "If the coupon has a `duration` of `repeating`, the date that this discount will end. If the coupon has a `duration` of `once` or `forever`, this attribute will be null."
+
+ - name: "object"
+ type: "string"
+ description: "The type of {{ integration.display_name }} object. This will be `discount`."
+
+ - name: "start"
+ type: "date-time"
+ description: "Date that the coupon was applied."
+
+ - name: "subscription"
+ type: "string"
+ description: "The subscription that this coupon is applied to, if it is applied to a particular subscription."
+ foreign-key-id: "subscription-id"
+
+ - name: "discounts"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "value"
+ type: "string"
+ description: ""
+
+ - name: "email"
+ type: "string"
+ description: "The customer's email address."
+
+ - name: "invoice_prefix"
+ type: "string"
+ description: "The prefix used to generate unique invoice numbers for the customer."
+
+ - name: "invoice_settings"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "custom_fields"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "value"
+ type: "string"
+ description: ""
+ - name: "default_payment_method"
+ type: "string"
+ description: ""
+ - name: "footer"
+ type: "string"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: "Indicates if the customer exists in live mode (`true`) or in test mode (`false`)."
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+ subattributes: *metadata
+
+ - name: "next_invoice_sequence"
+ type: "integer"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: "The type of {{ integration.display_name }} object. This will be `customer`."
+
+ - name: "phone"
+ type: "string"
+ description: ""
+
+ - name: "preferred_locales"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "value"
+ type: "string"
+ description: ""
+
+ - name: "shipping"
+ type: "object"
+ description: "Mailing and shipping addresses for the customer. Appears on invoices emailed to this customer."
+ subattributes:
+ - name: "address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: "The city of the shipping address."
+
+ - name: "country"
+ type: "string"
+ description: "The two-letter country code of the shipping address. For example: `us`"
+
+ - name: "line1"
+ type: "string"
+ description: "The first address line of the shipping address."
+
+ - name: "line2"
+ type: "string"
+ description: "The second address line of the shipping address."
+
+ - name: "postal_code"
+ type: "string"
+ description: "The zip or postal code of the shipping address."
+
+ - name: "state"
+ type: "string"
+ description: "The state, county, province, region, etc. of the shipping address"
+
+ - name: "name"
+ type: "string"
+ description: "The recipient's name."
+
+ - name: "phone"
+ type: "string"
+ description: "The recipient's phone number, including extension."
+
+ - name: "sources"
+ type: "array"
+ description: "The customer's payment sources."
+ doc-link: "https://stripe.com/docs/api/sources/object"
+ subattributes:
+ - name: "ach_credit_transfer"
+ type: "object"
+ description: "If the source is an ACH credit transfer, this will contain the details about the ACH credit transfer source."
+ doc-link: "https://stripe.com/docs/sources/ach-credit-transfer"
+ subattributes:
+ - name: "account_number"
+ type: "string"
+ description: "A positive integer in the smallest currency unit (that is, `100` cents for `$1.00`, or `1 for `Â¥1`, Japanese Yen being a zero-decimal currency) representing the total amount associated with the source. This is the amount for which the source will be chargeable once ready."
+
+ - name: "bank_name"
+ type: "string"
+ description: "The name of the bank the credit transfer should be sent to."
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "refund_account_holder_name"
+ type: "string"
+ description: ""
+
+ - name: "refund_account_holder_type"
+ type: "string"
+ description: ""
+
+ - name: "refund_account_number"
+ type: "string"
+ description: ""
+
+ - name: "refund_routing_number"
+ type: "string"
+ description: ""
+
+ - name: "routing_number"
+ type: "string"
+ description: "The routing number of the bank receiving the credit transfer."
+
+ - name: "swift_code"
+ type: "string"
+ description: ""
+
+ - name: "address_city"
+ type: "string"
+ description: *address-city
+
+ - name: "address_country"
+ type: "string"
+ description: *address-country
+
+ - name: "address_line1"
+ type: "string"
+ description: *address-line1
+
+ - name: "address_line1_check"
+ type: "string"
+ description: *address-line1-check
+
+ - name: "address_line2"
+ type: "string"
+ description: *address-line2
+
+ - name: "address_state"
+ type: "string"
+ description: *address-state
+
+ - name: "address_zip"
+ type: "string"
+ description: *address-zip
+
+ - name: "address_zip_check"
+ type: "string"
+ description: *address-zip-check
+
+ - name: "alipay"
+ type: ""
+ description: "If the source is an Alipay source, this will contain the details about the Alipay source."
+ doc-link: "https://stripe.com/docs/sources/alipay"
+
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "bancontact"
+ type: ""
+ description: "If the source is a Bancontact source, this will contain the details about the Bancontact source."
+ doc-link: "https://stripe.com/docs/sources/bancontact"
+
+ - name: "brand"
+ type: "string"
+ description: *brand
+
+ - name: "card"
+ type: "object"
+ description: "If the source is a card source, this will contain the details about the card source."
+ subattributes:
+ - name: "id"
+ type: "string"
+ description: "The card ID."
+
+ - name: "address_city"
+ type: "string"
+ description: *address-city
+
+ - name: "address_country"
+ type: "string"
+ description: *address-country
+
+ - name: "address_line1"
+ type: "string"
+ description: *address-line1
+
+ - name: "address_line1_check"
+ type: "string"
+ description: *address-line1-check
+
+ - name: "address_line2"
+ type: "string"
+ description: *address-line2
+
+ - name: "address_state"
+ type: "string"
+ description: *address-state
+
+ - name: "address_zip"
+ type: "string"
+ description: *address-zip
+
+ - name: "address_zip_check"
+ type: "string"
+ description: *address-zip-check
+
+ - name: "brand"
+ type: "string"
+ description: *brand
+
+ - name: "country"
+ type: "string"
+ description: *country
+
+ - name: "customer"
+ type: "string"
+ description: "The ID of the customer that the card belongs to."
+ foreign-key-id: "customer-id"
+
+ - name: "cvc_check"
+ type: "string"
+ description: *cvc-check
+
+ - name: "dynamic_last4"
+ type: "string"
+ description: *dynamic-last4
+
+ - name: "exp_month"
+ type: "integer"
+ description: *exp-month
+
+ - name: "exp_year"
+ type: "integer"
+ description: *exp-year
+
+ - name: "fingerprint"
+ type: "string"
+ description: *fingerprint
+
+ - name: "funding"
+ type: "string"
+ description: *funding
+
+ - name: "last4"
+ type: "string"
+ description: *last4
+
+ - name: "metadata"
+ type: "object"
+ description: "Additional information attached to the card."
+ subattributes: *metadata
+
+ - name: "name"
+ type: "string"
+ description: *card-name
+
+ - name: "object"
+ type: "string"
+ description: "The type of {{ integration.display_name }} object. This will be `card`."
+
+ - name: "tokenization_method"
+ type: "string"
+ description: *tokenization-method
+
+ - name: "client_secret"
+ type: "string"
+ description: "The client secret of the source. Used for client-side retrieval using a publishable key."
+
+ - name: "country"
+ type: "string"
+ description: *country
+
+ - name: "created"
+ type: "date-time"
+ description: "The time the source was created."
+
+ - name: "currency"
+ type: "string"
+ description: |
+ The three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html){:target="new"} associated with the source.
+
+ - name: "customer"
+ type: "string"
+ description: "The ID of the customer to which the source is attached."
+
+ - name: "cvc_check"
+ type: "string"
+ description: *cvc-check
+
+ - name: "dynamic_last4"
+ type: "string"
+ description: *dynamic-last4
+
+ - name: "eps"
+ type: ""
+ description: "If the source is an EPS source, this will contain the details about the EPS source."
+ doc-link: "https://stripe.com/docs/sources/eps"
+
+ - name: "exp_month"
+ type: "integer"
+ description: *exp-month
+
+ - name: "exp_year"
+ type: "integer"
+ description: *exp-year
+
+ - name: "fingerprint"
+ type: "string"
+ description: *fingerprint
+
+ - name: "flow"
+ type: "string"
+ description: |
+ The authentication flow of the source. Possible values are:
+
+ - `redirect`
+ - `receiver`
+ - `code_verification`
+ - `none`
+
+ - name: "funding"
+ type: "string"
+ description: *funding
+
+ - name: "id"
+ type: "string"
+ description: "The source ID."
+
+ - name: "ideal"
+ type: "object"
+ description: "If the source is an iDEAL source, this will contain the details about the iDEAL source."
+ doc-link: "https://stripe.com/docs/sources/ideal"
+
+ - name: "last4"
+ type: "string"
+ description: *last4
+
+ - name: "livemode"
+ type: "boolean"
+ description: "Indicates if the source exists in live mode (`true`) or in test mode (`false`)."
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+ subattributes: *metadata
+
+ - name: "multibanco"
+ type: "object"
+ description: ""
+ doc-link: "https://stripe.com/docs/sources/multibanco"
+
+ - name: "name"
+ type: "string"
+ description: *card-name
+
+ - name: "object"
+ type: "string"
+ description: "The type of {{ integration.display_name }} object. This will be `source`."
+
+ - name: "owner"
+ type: "object"
+ description: "Details about the owner of the payment instrument that may be used or required by particular source types."
+ subattributes:
+ - name: "address"
+ type: "object"
+ description: "The owner's address."
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: "The city of the owner's address."
+
+ - name: "country"
+ type: "string"
+ description: "The country of the owner's address."
+
+ - name: "line1"
+ type: "string"
+ description: "The first line of the owner's address."
+
+ - name: "line2"
+ type: "string"
+ description: "The second line of the owner's address."
+
+ - name: "postal_code"
+ type: "string"
+ description: "The postal code of the owner's address."
+
+ - name: "state"
+ type: "string"
+ description: "The state of the owner's address."
+
+ - name: "email"
+ type: "string"
+ description: "The owner's email address."
+
+ - name: "name"
+ type: "string"
+ description: "The owner's full name."
+
+ - name: "phone"
+ type: "string"
+ description: "The owner's phone number."
+
+ - name: "verified_address"
+ type: "string"
+ description: "The verified owner's address. Verified values are verified or provided by the payment directly at the time of authorization or settlement."
+
+ - name: "verified_email"
+ type: "string"
+ description: "The verified owner's email address. Verified values are verified or provided by the payment directly at the time of authorization or settlement."
+
+ - name: "verified_name"
+ type: "string"
+ description: "The verified owner's full name. Verified values are verified or provided by the payment directly at the time of authorization or settlement."
+
+ - name: "verified_phone"
+ type: "string"
+ description: "The verified owner's phone number. Verified values are verified or provided by the payment directly at the time of authorization or settlement."
+
+ - name: "receiver"
+ type: "object"
+ description: "Information related to the receiver flow. These attributes will be present if `flow: receiver`."
+ subattributes:
+ - name: "address"
+ type: "string"
+ description: "The address of the receiver source. This is the value that should be communicated to the customer to send their funds to."
+
+ - name: "amount_charged"
+ type: "integer"
+ description: "The total amount charged by you, expressed in the source's currency."
+
+ - name: "amount_received"
+ type: "integer"
+ description: "The total amount received by the receiver source, expressed in the source's currency."
+
+ - name: "amount_returned"
+ type: "integer"
+ description: "The total amount returned to the customer, expressed in the source's currency."
+
+ - name: "refund_attributes_method"
+ type: "string"
+ description: ""
+
+ - name: "refund_attributes_status"
+ type: "string"
+ description: ""
+
+ - name: "redirect"
+ type: "object"
+ description: "Information related to the redirect flow. These attributes will be present if `flow: redirect`."
+ subattributes:
+ - name: "failure_reason"
+ type: "string"
+ description: |
+ The failure reason for the redirect. Possible values are:
+
+ - `user_abort` - The customer aborted or dropped out of the redirect flow
+ - `declined` - The authentication failed or the transaction was declined
+ - `processing_error` - The redirect failed due to a technical error; only present if the redirect status is `failed`.
+
+ - name: "return_url"
+ type: "string"
+ description: "The URL you provide to redirect the customer to after they authenticate their payment."
+
+ - name: "status"
+ type: "string"
+ description: |
+ The status of the redirect. Possible values are:
+
+ - `pending` - Ready to be used by your customer to authenticate the transaction
+ - `succeeded` - Successful authentication; cannot be reused
+ - `not_required` - Redirect should not be used
+ - `failed` - Failed authentication; cannot be reused
+
+ - name: "url"
+ type: "string"
+ description: "The URL provided to you to redirect a customer as part of a redirect authentication flow."
+
+ - name: "statement_descriptor"
+ type: "string"
+ description: "Extra information about a source. This will appear on your customer’s statement every time you charge the source."
+
+ - name: "status"
+ type: "string"
+ description: |
+ The status of the source. Possible values are:
+
+ - `canceled`
+ - `chargeable`
+ - `consumed`
+ - `failed`
+ - `pending`
+
+ - name: "tokenization_method"
+ type: "string"
+ description: *tokenization-method
+
+ - name: "type"
+ type: "string"
+ description: |
+ The type of the source. Possible values are:
+
+ - `ach_credit_transfer`
+ - `ach_debit`
+ - `alipay`
+ - `bancontact`
+ - `card`
+ - `card_present`
+ - `eps`
+ - `giropay`
+ - `ideal`
+ - `multibanco`
+ - `p24`
+ - `paper_check`
+ - `sepa_credit_transfer`
+ - `sepa_debit`
+ - `sofort`
+ - `three_d_secure`
+
+ - name: "usage"
+ type: "string"
+ description: |
+ Indicates if the source should be reusable or not. Some source types may or may not be reusable by construction, while others may leave the option at creation. Possible values are:
+
+ - `reusable`
+ - `single_use`
+
+ - name: "subscriptions"
+ type: "array"
+ description: "The customer's current subscriptions."
+ subattributes:
+ - name: "value"
+ type: "string"
+ description: "The subscription ID."
+ foreign-key-id: "subscription-id"
+
+ - name: "tax_info"
+ type: "string"
+ description: ""
+
+ - name: "tax_info_verification"
+ type: "string"
+ description: ""
+
+ - name: "tax_exempt"
+ type: "string"
+ description: ""
+
+ - name: "tax_rates"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "active"
+ type: "boolean"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "created"
+ type: "date-time"
+ description: ""
+ - name: "description"
+ type: "string"
+ description: ""
+ - name: "display_name"
+ type: "string"
+ description: ""
+ - name: "id"
+ type: "string"
+ description: ""
+ - name: "inclusive"
+ type: "boolean"
+ description: ""
+ - name: "jurisdiction"
+ type: "string"
+ description: ""
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+ - name: "object"
+ type: "string"
+ description: ""
+ - name: "percentage"
+ type: "decimal"
+ description: ""
+ - name: "state"
+ type: "string"
+ description: ""
+
+ - name: "unit_amount_decimal"
+ type: "decimal"
+ description: ""
+
+ - name: "updated"
+ type: "date-time"
+ description: "The time at which the customer was last updated."
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/stripe/v1/disputes.md b/archive/_integration-schemas/stripe/v1/disputes.md
new file mode 100644
index 000000000..89e174e8f
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v1/disputes.md
@@ -0,0 +1,206 @@
+---
+tap: "stripe"
+version: "1"
+
+name: "disputes"
+doc-link: "https://stripe.com/docs/api/disputes/object"
+singer-schema: "https://github.com/singer-io/tap-stripe/blob/master/tap_stripe/schemas/disputes.json"
+description: "This table contains information about customer disputes related to charges on their credit card."
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all disputes"
+ doc-link: "https://stripe.com/docs/api/disputes/list"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The dispute ID."
+ foreign-key-id: "dispute-id"
+
+ - name: "created"
+ type: "date-time"
+ description: "Time at which the dispute was created. Measured in seconds since the Unix epoch."
+ replication-key: true
+
+ - name: "amount"
+ type: "integer"
+ description: "The disputed amount of money."
+
+ - name: "balance_transactions"
+ type: "array"
+ description: "A list of zero, one, or two balance transactions that show funds withdrawn and reinstated to a Stripe account as a result of the dispute."
+ subattributes:
+ - name: "id"
+ type: "string"
+ description: "The balance transaction ID."
+ foreign-key-id: "balance-transaction-id"
+
+ - name: "charge"
+ type: "string"
+ description: "The ID of the disputed charge."
+ foreign-key-id: "charge-id"
+
+ - name: "currency"
+ type: "string"
+ description: "The three-letter ISO currency code of the disputed charge."
+
+ - name: "evidence"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "access_activity_log"
+ type: "string"
+ description: "Any server or activity logs showing proof that the customer accessed or downloaded the purchased digital product."
+ - name: "billing_address"
+ type: "string"
+ description: "The billing address provided by the customer."
+ - name: "cancellation_policy"
+ type: "string"
+ description: "The subscription cancellation policy, as shown to the customer."
+ - name: "cancellation_policy_disclosure"
+ type: "string"
+ description: "The explanation of how and when the customer was shown the refund policy prior to purchase."
+ - name: "cancellation_rebuttal"
+ type: "string"
+ description: "The justification for why the customer’s subscription was not canceled."
+ - name: "customer_communication"
+ type: "string"
+ description: "Any communication with the customer that is relevant to your case."
+ - name: "customer_email_address"
+ type: "string"
+ description: "The email address of the customer."
+ - name: "customer_name"
+ type: "string"
+ description: "The name of the customer."
+ - name: "customer_purchase_ip"
+ type: "string"
+ description: "The IP address that the customer used when making the purchase."
+ - name: "customer_signature"
+ type: "string"
+ description: "A relevant document or contract showing the customer’s signature."
+ - name: "duplicate_charge_documentation"
+ type: "string"
+ description: "Documentation for the prior charge that can uniquely identify the charge."
+ - name: "duplicate_charge_explanation"
+ type: "string"
+ description: "The explanation of the difference between the disputed charge versus the prior charge that appears to be a duplicate."
+ - name: "duplicate_charge_id"
+ type: "string"
+ description: "The Stripe ID for the prior charge which appears to be a duplicate of the disputed charge."
+ - name: "product_description"
+ type: "string"
+ description: "The description of the product or service that was sold."
+ - name: "receipt"
+ type: "string"
+ description: "The receipt or message sent to the customer notifying them of the charge."
+ - name: "refund_policy"
+ type: "string"
+ description: "The refund policy, as shown to the customer."
+ - name: "refund_policy_disclosure"
+ type: "string"
+ description: "Documentation demonstrating that the customer was shown your refund policy prior to purchase."
+ - name: "refund_refusal_explanation"
+ type: "string"
+ description: "The justification for why the customer is not entitled to a refund."
+ - name: "service_date"
+ type: "string"
+ description: "The date on which the customer received or began receiving the purchased service."
+ - name: "service_documentation"
+ type: "string"
+ description: "Documentation showing proof that a service was provided to the customer."
+ - name: "shipping_address"
+ type: "string"
+ description: "The address to which a physical product was shipped."
+ - name: "shipping_carrier"
+ type: "string"
+ description: "The delivery service that shipped a physical product, such as `Fedex`, `UPS`, `USPS`, etc."
+ - name: "shipping_date"
+ type: "string"
+ description: "The date on which a physical product began its route to the shipping address."
+ - name: "shipping_documentation"
+ type: "string"
+ description: "Documentation showing proof that a product was shipped to the customer at the same address the customer provided."
+ - name: "shipping_tracking_number"
+ type: "string"
+ description: "The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated, these will be comma-delineated."
+ - name: "uncategorized_file"
+ type: "string"
+ description: "Any additional evidence or statements."
+ - name: "uncategorized_text"
+ type: "string"
+ description: "Any additional evidence or statements."
+
+ - name: "evidence_details"
+ type: "object"
+ description: "Information about the evidence submitted."
+ subattributes:
+ - name: "due_by"
+ type: "date-time"
+ description: "The date by which evidence must be submitted in order to successfully challenge dispute."
+ - name: "has_evidence"
+ type: "boolean"
+ description: "Whether or not evidence has been staged for the dispute."
+ - name: "past_due"
+ type: "boolean"
+ description: "Whether the last evidence submission was submitted past the due date."
+ - name: "submission_count"
+ type: "integer"
+ description: "The number of times evidence has been submitted."
+
+ - name: "is_charge_refundable"
+ type: "boolean"
+ description: "Whether or not the disputed charge is refundable."
+
+ - name: "livemode"
+ type: "boolean"
+ description: "Has the value `TRUE` if the object exists in live mode or the value `FALSE` if the object exists in test mode."
+
+ - name: "metadata"
+ type: "object"
+ description: "A set of key-value pairs that you can attach to an object."
+
+ - name: "object"
+ type: "string"
+ description: "The object type. In this table, the value is `dispute`."
+
+ - name: "reason"
+ type: "string"
+ description: |
+ The reason given by the cardholder for the dispute. Possible values are:
+
+ - `bank_cannot_process`
+ - `check_returned`
+ - `credit_not_processed`
+ - `customer_initiated`
+ - `debit_not_authorized`
+ - `duplicate`
+ - `fraudulent`
+ - `general`
+ - `incorrect_account_details`
+ - `insufficient_funds`
+ - `product_not_received`
+ - `product_unacceptable`
+ - `subscription_canceled`
+ - `unrecognized`
+
+ - name: "status"
+ type: "string"
+ description: |
+ The current status of the dispute. Possible values are:
+
+ - `warning_needs_response`
+ - `warning_under_review`
+ - `warning_closed`
+ - `needs_response`
+ - `under_review`
+ - `charge_refunded`
+ - `won`
+ - `lost`
+
+ - name: "updated"
+ type: "date-time"
+ description: "The time at which the dispute was last updated."
+---
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v1/events.md b/archive/_integration-schemas/stripe/v1/events.md
similarity index 100%
rename from _integration-schemas/stripe/v1/events.md
rename to archive/_integration-schemas/stripe/v1/events.md
diff --git a/_integration-schemas/stripe/v1/foreign-keys.md b/archive/_integration-schemas/stripe/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/stripe/v1/foreign-keys.md
rename to archive/_integration-schemas/stripe/v1/foreign-keys.md
diff --git a/_integration-schemas/stripe/v1/invoice_items.md b/archive/_integration-schemas/stripe/v1/invoice_items.md
similarity index 100%
rename from _integration-schemas/stripe/v1/invoice_items.md
rename to archive/_integration-schemas/stripe/v1/invoice_items.md
diff --git a/_integration-schemas/stripe/v1/invoice_line_items.md b/archive/_integration-schemas/stripe/v1/invoice_line_items.md
similarity index 100%
rename from _integration-schemas/stripe/v1/invoice_line_items.md
rename to archive/_integration-schemas/stripe/v1/invoice_line_items.md
diff --git a/_integration-schemas/stripe/v1/invoices.md b/archive/_integration-schemas/stripe/v1/invoices.md
similarity index 100%
rename from _integration-schemas/stripe/v1/invoices.md
rename to archive/_integration-schemas/stripe/v1/invoices.md
diff --git a/_integration-schemas/stripe/v1/payout_transactions.md b/archive/_integration-schemas/stripe/v1/payout_transactions.md
similarity index 100%
rename from _integration-schemas/stripe/v1/payout_transactions.md
rename to archive/_integration-schemas/stripe/v1/payout_transactions.md
diff --git a/archive/_integration-schemas/stripe/v1/payouts.md b/archive/_integration-schemas/stripe/v1/payouts.md
new file mode 100644
index 000000000..5c71e06d6
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v1/payouts.md
@@ -0,0 +1,226 @@
+---
+tap: "stripe"
+version: "1"
+
+name: "payouts"
+doc-link: "https://stripe.com/docs/api/payouts"
+singer-schema: "https://github.com/singer-io/tap-stripe/blob/master/tap_stripe/schemas/payouts.json"
+description: |
+ The `{{ table.name }}` table contains info about payouts, which occur when you receive funds from {{ integration.display_name }} or initiate a payout to a bank account of the debit card of a connected {{ integration.display_name }} account.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all payouts"
+ doc-link: "https://stripe.com/docs/api/payouts/list"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The payout ID."
+ foreign-key-id: "payout-id"
+
+ - name: "created"
+ type: "date-time"
+ replication-key: true
+ description: "The time at which the payout was created. Measured in seconds since the Unix epoch."
+
+ - name: "amount"
+ type: "integer"
+ description: "The amount (in cents) to be transferred to your bank account or debit card."
+
+ - name: "amount_reversed"
+ type: "integer"
+ description: ""
+
+ - name: "arrival_date"
+ type: "date-time"
+ description: "The date the payout is expected to arrive in the bank."
+
+ - name: "automatic"
+ type: "boolean"
+ description: "Indicates if the payout was created by an automated payout schedule (`true`) or if it was requested manually (`false`)."
+
+ - name: "balance_transaction"
+ type: "string"
+ description: "The ID of the balance transaction that describes the impact of this payout on your account balance."
+ foreign-key-id: "balance-transaction-id"
+
+ - name: "bank_account"
+ type: "object"
+ description: "Details about the bank account the payout is being sent to."
+ doc-link: "https://stripe.com/docs/api/customer_bank_accounts/object"
+ subattributes:
+ - name: "account_holder_name"
+ type: "string"
+ description: "The name of the person or business that owns the bank account."
+
+ - name: "account_holder_type"
+ type: "string"
+ description: "The type of entity that holds the account. Possible values are `individual` or `company`."
+
+ - name: "bank_name"
+ type: "string"
+ description: "The name of the bank associated with the routing number. For example: `WELLS FARGO`"
+
+ - name: "country"
+ type: "string"
+ description: "The two-letter ISO code representing the country the bank account is located in."
+
+ - name: "currency"
+ type: "string"
+ description: |
+ The three-letter [ISO code](https://www.iso.org/iso-4217-currency-codes.html){:target="new"} for the currency paid out to the bank account.
+
+ - name: "fingerprint"
+ type: "string"
+ description: "Uniquely identifies the bank account."
+
+ - name: "id"
+ type: "string"
+ description: "The bank account ID in {{ integration.display_name }}."
+ # foreign-key-id: "bank-account-id"
+
+ - name: "last4"
+ type: "string"
+ description: "The last four digits associated with the bank account."
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: "**Deprecated by {{ integration.display_name }}.**"
+
+ - name: "object"
+ type: "string"
+ description: "The type of {{ integration.display_name }} object. This will be `bank_account`."
+
+ - name: "routing_number"
+ type: "string"
+ description: "The routing transit number for the bank account."
+
+ - name: "status"
+ type: "string"
+ description: |
+ The status of the bank account. Possible values are:
+
+ - `new` - Indicates the bank account hasn't been validated or had any activity.
+ - `validated` - Indicates that {{ integration.display_name }} has determined the bank account exists.
+ - `verified` - Indicates that bank account verification has succeeded.
+ - `verification_failed` - Indicates that verfication failed.
+ - `errored` - Indicates that a transfer sent to the bank account failed. Transfers will not be sent to the account until its details are updated.
+
+ - name: "currency"
+ type: "string"
+ description: |
+ The three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html){:target="new"}.
+
+ - name: "date"
+ type: "date-time"
+ description: ""
+
+ - name: "description"
+ type: "string"
+ description: "The description of the payout."
+
+ - name: "destination"
+ type: "string"
+ description: "The ID of the bank account of card the payout was sent to."
+
+ - name: "failure_balance_transaction"
+ type: "string"
+ description: "If the payout failed or was canceled, this will be the ID of the balance transaction that reversed the initial balance transaction, and puts the funds from the failed payout back in your balance."
+ foreign-key-id: "balance-transaction-id"
+
+ - name: "failure_code"
+ type: "string"
+ description: |
+ The error code explaining the reason for payout failure. Refer to [{{ integration.display_name }}'s documentation](https://stripe.com/docs/api#payout_failures){:target="new"} for a list of possible codes.
+
+ - name: "failure_message"
+ type: "string"
+ description: "The message displaying to the user that further explains the reason for payout failure."
+
+ - name: "livemode"
+ type: "boolean"
+ description: "Indicates if the object exists in live mode (`true`) or in test mode (`false`)."
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "ANYTHING"
+ type: "ANYTHING"
+ description: "This info will vary."
+
+ - name: "method"
+ type: "string"
+ description: |
+ The method used to send the payout. Possible values are:
+
+ - `standard`
+ - `instant`
+
+ - name: "object"
+ type: "string"
+ description: "The type of {{ integration.display_name }} object. This will be `payout`."
+
+ - name: "original_payout"
+ type: "string"
+ description: ""
+
+ - name: "recipient"
+ type: "string"
+ description: ""
+
+ - name: "reversed_by"
+ type: "string"
+ description: ""
+
+ - name: "source_transaction"
+ type: "string"
+ description: "The ID of the charge or payment used to fund the payout."
+
+ - name: "source_type"
+ type: "string"
+ description: |
+ The source balance the payout came from. Possible values are:
+
+ - `card`
+ - `bank_account`
+ - `alipay_account`
+
+ - name: "statement_description"
+ type: "string"
+ description: "**Deprecated by {{ integration.display_name }}**."
+
+ - name: "statement_descriptor"
+ type: "string"
+ description: "Additional info about a payout to be displayed on the user's bank statement."
+
+ - name: "status"
+ type: "string"
+ description: |
+ The status of the payout. Possible values are:
+
+ - `paid`
+ - `pending`
+ - `in_transit`
+ - `canceled`
+ - `failed`
+
+ - name: "transfer_group"
+ type: "string"
+ description: "A string that identifies the payout as part of a group."
+
+ - name: "type"
+ type: "string"
+ description: "The type of the payout. Possible values are `bank_account` or `card`."
+
+ - name: "updated"
+ type: "date-time"
+ description: "The time the payout was last updated."
+---
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v1/plans.md b/archive/_integration-schemas/stripe/v1/plans.md
similarity index 100%
rename from _integration-schemas/stripe/v1/plans.md
rename to archive/_integration-schemas/stripe/v1/plans.md
diff --git a/_integration-schemas/stripe/v1/products.md b/archive/_integration-schemas/stripe/v1/products.md
similarity index 100%
rename from _integration-schemas/stripe/v1/products.md
rename to archive/_integration-schemas/stripe/v1/products.md
diff --git a/_integration-schemas/stripe/v1/subscription_items.md b/archive/_integration-schemas/stripe/v1/subscription_items.md
similarity index 100%
rename from _integration-schemas/stripe/v1/subscription_items.md
rename to archive/_integration-schemas/stripe/v1/subscription_items.md
diff --git a/_integration-schemas/stripe/v1/subscriptions.md b/archive/_integration-schemas/stripe/v1/subscriptions.md
similarity index 100%
rename from _integration-schemas/stripe/v1/subscriptions.md
rename to archive/_integration-schemas/stripe/v1/subscriptions.md
diff --git a/_integration-schemas/stripe/v1/transfers.md b/archive/_integration-schemas/stripe/v1/transfers.md
similarity index 100%
rename from _integration-schemas/stripe/v1/transfers.md
rename to archive/_integration-schemas/stripe/v1/transfers.md
diff --git a/_integration-schemas/stripe/v2/balance_transactions.md b/archive/_integration-schemas/stripe/v2/balance_transactions.md
similarity index 100%
rename from _integration-schemas/stripe/v2/balance_transactions.md
rename to archive/_integration-schemas/stripe/v2/balance_transactions.md
diff --git a/archive/_integration-schemas/stripe/v2/charges.md b/archive/_integration-schemas/stripe/v2/charges.md
new file mode 100644
index 000000000..15110e6fe
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v2/charges.md
@@ -0,0 +1,1263 @@
+---
+tap: "stripe"
+version: "2"
+key: ""
+
+name: "charges"
+doc-link: "https://stripe.com/docs/api/charges/object"
+singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/charges.json
+description: |
+ The `{{ table.name }}` table contains info about charges to credit and debit cards.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all charges"
+ doc-link: "https://stripe.com/docs/api/charges/list"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The charge ID."
+ foreign-key-id: "charge-id"
+
+ - name: "created"
+ type: "string"
+ replication-key: true
+ description: "Time at which the object was created. Measured in seconds since the Unix epoch."
+
+ - name: "amount"
+ type: "integer"
+ description: |
+ A positive integer in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal){:target="new"} (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency) representing how much to charge. The minimum amount is $0.50 USD or [equivalent in charge currency](https://support.stripe.com/questions/what-is-the-minimum-amount-i-can-charge-with-stripe){:target="new"}.
+
+ - name: "amount_captured"
+ type: "integer"
+ description: ""
+
+ - name: "amount_refunded"
+ type: "integer"
+ description: "Amount in cents refunded (can be less than `amount` if a partial refund was issued)."
+
+ - name: "application"
+ type: "string"
+ description: "The ID of the Connect application that created the charge."
+
+ - name: "application_fee"
+ type: "string"
+ description: ""
+
+ - name: "application_fee_amount"
+ type: "integer"
+ description: ""
+
+ - name: "balance_transaction"
+ type: "string"
+ description: ""
+
+ - name: "billing_details"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "line1"
+ type: "string"
+ description: ""
+ - name: "line2"
+ type: "string"
+ description: ""
+ - name: "postal_code"
+ type: "string"
+ description: ""
+ - name: "state"
+ type: "string"
+ description: ""
+ - name: "email"
+ type: "string"
+ description: ""
+ - name: "name"
+ type: "string"
+ description: ""
+ - name: "phone"
+ type: "string"
+ description: ""
+
+
+ - name: "calculated_statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "captured"
+ type: "boolean"
+ description: ""
+
+ - name: "card"
+ type: "object"
+ description: &source-description "Details about the credit or debit card that is the source of the charge."
+ subattributes:
+ - name: "metadata"
+ type: "object"
+ description: ""
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+ - name: "address_state"
+ type: "string"
+ description: ""
+ - name: "id"
+ type: "string"
+ description: "The card ID."
+ foreign-key-id: "card-id"
+ - name: "object"
+ type: "string"
+ description: ""
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+ - name: "address_line1"
+ type: "string"
+ description: ""
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+ - name: "tokenization_method"
+ type: "string"
+ description: ""
+ - name: "address_country"
+ type: "string"
+ description: ""
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+ - name: "address_city"
+ type: "string"
+ description: ""
+ - name: "last4"
+ type: "string"
+ description: ""
+ - name: "address_line2"
+ type: "string"
+ description: ""
+ - name: "customer"
+ type: "string"
+ description: ""
+ - name: "brand"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+ - name: "name"
+ type: "string"
+ description: ""
+ - name: "funding"
+ type: "string"
+ description: ""
+ - name: "address_zip"
+ type: "string"
+ description: ""
+ - name: "address_zip_check"
+ type: "string"
+ description: ""
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+ - name: "type"
+ type: "string"
+ description: ""
+
+
+
+
+ - name: "currency"
+ type: "string"
+ description: |
+ The three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html){:target="new"}.
+
+ - name: "customer"
+ type: "string"
+ description: "The ID of the customer associated with the charge."
+ foreign-key-id: "customer-id"
+
+ - name: "description"
+ type: "string"
+ description: "An arbitrary string attached to the object. Often useful for displaying to users."
+
+ - name: "destination"
+ type: "string"
+ description: "The account (if any) the charge was made on behalf of, with an automatic transfer."
+
+ - name: "dispute"
+ type: "string"
+ description: "Details about the dispute, if the charge has been disputed."
+
+ - name: "disputed"
+ type: "boolean"
+ description: ""
+
+ - name: "failure_code"
+ type: "string"
+ description: |
+ The error code explaining the reason for a charge failure, if available. Refer to [{{ integration.display_name }}'s documentation](https://stripe.com/docs/api#errors){:target="new"} for a list of possible error codes.
+
+ - name: "failure_message"
+ type: "string"
+ description: "The message that displays to the user that further explains the reason for the charge failure."
+
+ - name: "fraud_details"
+ type: "object"
+ description: |
+ Details about fraud assessments for the charge.
+ subattributes:
+ - name: "stripe_report"
+ type: "string"
+ description: |
+ If not `null`, this indicates that a {{ integration.display_name }} fraud assessment exists for the charge. This field may have a value of `fraudulent`.
+
+ - `safe`
+ - `fraudulent`
+
+ - name: "invoice"
+ type: "string"
+ description: "The ID of the invoice the charge is for."
+ foreign-key-id: "invoice-id"
+
+ - name: "livemode"
+ type: "boolean"
+ description: "Indicates if the object exists in live mode (`true`) or in test mode (`false`)."
+
+ - name: "metadata"
+ type: "object"
+ description: "Additional information attached to the charge."
+
+ - name: "object"
+ type: "string"
+ description: "The type of {{ integration.display_name }} object. This will be `charge`."
+
+ - name: "on_behalf_of"
+ type: "string"
+ description: "The account the charge was made on behalf of without triggering an automatic transfer"
+
+ - name: "order"
+ type: "string"
+ description: "The ID of the order this charge is for."
+
+ - name: "outcome"
+ type: "object"
+ description: "Details about whether the payment was accepted and why."
+ subattributes:
+ - name: "type"
+ type: "string"
+ description: |
+ The type of the outcome. Possible values are:
+
+ - `authorized`
+ - `manual_review`
+ - `issuer_declined`
+ - `blocked`
+ - `invalid`
+
+ - name: "seller_message"
+ type: "string"
+ description: "A description of the outcome type and reason designed for you, the recipient of the payment."
+
+ - name: "reason"
+ type: "string"
+ description: |
+ A detailed explanation of the outcome's `type`. Possible values are:
+
+ - `highest_risk_level` - Indicates the charge was blocked by Radar's default block rule.
+ - `elevated_risk_level` - Indicates the charge was placed in review by Radar's default review rule.
+ - `rule` - Indicates the charge was authorized, blocked, or placed in review by a custom rule.
+
+ Refer to [{{ integration.display_name }}'s documentation](https://stripe.com/docs/declines){:target="new"} for more info about this attribute.
+
+ - name: "risk_level"
+ type: "string"
+ description: |
+ Indicates {{ integration.display_name }}'s evaluation of the riskiness of the payment. Possible values are:
+
+ - `normal`, `elevated`, `highest` - Evaluated payments
+ - `not_assessed` - Non-card payments, and card-based payments predating the public assignment of risk levels
+ - `unknown` - Indicates an error in the risk evaluation
+
+ - name: "network_status"
+ type: "string"
+ description: |
+ The network status of the outcome. Possible values are:
+
+ - `approved_by_network`
+ - `declined_by_network`
+ - `not_sent_to_network`
+ - `reversed_after_approval` - This value indicates that [{{ integration.display_name }} blocked the payment](https://stripe.com/docs/declines#blocked-payments){:target="new"} after bank authorization, and may temporarily appear as "pending" on a cardholder's statement.
+
+ - name: "risk_score"
+ type: "integer"
+ description: |
+ Indicates {{ integration.display_name }}'s evaluation of the riskiness of the payment.
+
+ - For evaluated payments, this attribute will contain a value between `0` and `100`.
+
+ - For non-card payments, and card-based payments predating the public assignment of risk levels, this field will be `null`.
+
+ - name: "paid"
+ type: "boolean"
+ description: "Indicates if the charge succeeded (`true`) or was successfully authorzed for later capture (`false`)."
+
+ - name: "payment_intent"
+ type: "string"
+ description: "The ID of the payment intent associated with the charge."
+ # foreign-key-id: "payment-intent-id"
+
+ - name: "payment_method"
+ type: "string"
+ description: ""
+
+ - name: "payment_method_details"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "card_present"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "amount_authorized"
+ type: "integer"
+ description: ""
+ - name: "brand"
+ type: "string"
+ description: ""
+ - name: "cardholder_name"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "emv_auth_data"
+ type: "string"
+ description: ""
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+ - name: "funding"
+ type: "string"
+ description: ""
+ - name: "generated_card"
+ type: "string"
+ description: ""
+ - name: "last4"
+ type: "string"
+ description: ""
+ - name: "network"
+ type: "string"
+ description: ""
+ - name: "overcapture_supported"
+ type: "boolean"
+ description: ""
+ - name: "read_method"
+ type: "string"
+ description: ""
+ - name: "receipt"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "account_type"
+ type: "string"
+ description: ""
+ - name: "application_cryptogram"
+ type: "string"
+ description: ""
+ - name: "application_preferred_name"
+ type: "string"
+ description: ""
+ - name: "authorization_code"
+ type: "string"
+ description: ""
+ - name: "authorization_response_code"
+ type: "string"
+ description: ""
+ - name: "cardholder_verification_method"
+ type: "string"
+ description: ""
+ - name: "dedicated_file_name"
+ type: "string"
+ description: ""
+ - name: "terminal_verification_results"
+ type: "string"
+ description: ""
+ - name: "transaction_status_information"
+ type: "string"
+ description: ""
+ - name: "ach_credit_transfer"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "account_number"
+ type: "string"
+ description: ""
+ - name: "bank_name"
+ type: "string"
+ description: ""
+ - name: "routing_number"
+ type: "string"
+ description: ""
+ - name: "swift_code"
+ type: "string"
+ description: ""
+ - name: "ach_debit"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "account_holder_type"
+ type: "string"
+ description: ""
+ - name: "bank_name"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+ - name: "last4"
+ type: "string"
+ description: ""
+ - name: "routing_number"
+ type: "string"
+ description: ""
+ - name: "alipay"
+ type: "object"
+ description: ""
+ - name: "bancontact"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank_code"
+ type: "string"
+ description: ""
+ - name: "bank_name"
+ type: "string"
+ description: ""
+ - name: "bic"
+ type: "string"
+ description: ""
+ - name: "iban_last4"
+ type: "string"
+ description: ""
+ - name: "preferred_language"
+ type: "string"
+ description: ""
+ - name: "verified_name"
+ type: "string"
+ description: ""
+ - name: "card"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "brand"
+ type: "string"
+ description: ""
+ - name: "checks"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+ - name: "address_postal_code_check"
+ type: "string"
+ description: ""
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+ - name: "funding"
+ type: "string"
+ description: ""
+ - name: "installments"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "plan"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "count"
+ type: "integer"
+ description: ""
+ - name: "interval"
+ type: "string"
+ description: ""
+ - name: "type"
+ type: "string"
+ description: ""
+ - name: "last4"
+ type: "string"
+ description: ""
+ - name: "network"
+ type: "string"
+ description: ""
+ - name: "three_d_secure"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "authenticated"
+ type: "boolean"
+ description: ""
+ - name: "succeeded"
+ type: "boolean"
+ description: ""
+ - name: "version"
+ type: "string"
+ description: ""
+ - name: "wallet"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "amex_express_checkout"
+ type: "object"
+ description: ""
+ - name: "apple_pay"
+ type: "object"
+ description: ""
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+ - name: "google_pay"
+ type: "object"
+ description: ""
+ - name: "masterpass"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "billing_address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "line1"
+ type: "string"
+ description: ""
+ - name: "line2"
+ type: "string"
+ description: ""
+ - name: "postal_code"
+ type: "string"
+ description: ""
+ - name: "state"
+ type: "string"
+ description: ""
+ - name: "email"
+ type: "string"
+ description: ""
+ - name: "name"
+ type: "string"
+ description: ""
+ - name: "shipping_address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "line1"
+ type: "string"
+ description: ""
+ - name: "line2"
+ type: "string"
+ description: ""
+ - name: "postal_code"
+ type: "string"
+ description: ""
+ - name: "state"
+ type: "string"
+ description: ""
+ - name: "samsung_pay"
+ type: "object"
+ description: ""
+ - name: "type"
+ type: "string"
+ description: ""
+ - name: "visa_checkout"
+ type: "object"
+ description: ""
+ - name: "billing_address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "line1"
+ type: "string"
+ description: ""
+ - name: "line2"
+ type: "string"
+ description: ""
+ - name: "postal_code"
+ type: "string"
+ description: ""
+ - name: "state"
+ type: "string"
+ description: ""
+ - name: "email"
+ type: "string"
+ description: ""
+ - name: "name"
+ type: "string"
+ description: ""
+ - name: "shipping_address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "line1"
+ type: "string"
+ description: ""
+ - name: "line2"
+ type: "string"
+ description: ""
+ - name: "postal_code"
+ type: "string"
+ description: ""
+ - name: "state"
+ type: "string"
+ description: ""
+ - name: "card_present"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "brand"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "emv_auth_data"
+ type: "string"
+ description: ""
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+ - name: "funding"
+ type: "string"
+ description: ""
+ - name: "generated_card"
+ type: "string"
+ description: ""
+ - name: "last4"
+ type: "string"
+ description: ""
+ - name: "network"
+ type: "string"
+ description: ""
+ - name: "read_method"
+ type: "string"
+ description: ""
+ - name: "receipt"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "application_cryptogram"
+ type: "string"
+ description: ""
+ - name: "application_preferred_name"
+ type: "string"
+ description: ""
+ - name: "authorization_code"
+ type: "string"
+ description: ""
+ - name: "authorization_response_code"
+ type: "string"
+ description: ""
+ - name: "cardholder_verification_method"
+ type: "string"
+ description: ""
+ - name: "dedicated_file_name"
+ type: "string"
+ description: ""
+ - name: "terminal_verification_results"
+ type: "string"
+ description: ""
+ - name: "transaction_status_information"
+ type: "string"
+ description: ""
+ - name: "eps"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "verified_name"
+ type: "string"
+ description: ""
+ - name: "giropay"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank_code"
+ type: "string"
+ description: ""
+ - name: "bank_name"
+ type: "string"
+ description: ""
+ - name: "bic"
+ type: "string"
+ description: ""
+ - name: "verified_name"
+ type: "string"
+ description: ""
+ - name: "ideal"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank"
+ type: "string"
+ description: ""
+ - name: "bic"
+ type: "string"
+ description: ""
+ - name: "iban_last4"
+ type: "string"
+ description: ""
+ - name: "verified_name"
+ type: "string"
+ description: ""
+ - name: "klarna"
+ type: "object"
+ description: ""
+ - name: "multibanco"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "entity"
+ type: "string"
+ description: ""
+ - name: "reference"
+ type: "string"
+ description: ""
+ - name: "p24"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "reference"
+ type: "string"
+ description: ""
+ - name: "verified_name"
+ type: "string"
+ description: ""
+ - name: "sepa_debit"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank_code"
+ type: "string"
+ description: ""
+ - name: "branch_code"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+ - name: "last4"
+ type: "string"
+ description: ""
+ - name: "mandate"
+ type: "string"
+ description: ""
+ - name: "sofort"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank_code"
+ type: "string"
+ description: ""
+ - name: "bank_name"
+ type: "string"
+ description: ""
+ - name: "bic"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "iban_last4"
+ type: "string"
+ description: ""
+ - name: "verified_name"
+ type: "string"
+ description: ""
+ - name: "stripe_account"
+ type: "object"
+ description: ""
+ - name: "type"
+ type: "string"
+ description: ""
+ - name: "wechat"
+ type: "object"
+ description: ""
+ - name: "metadata"
+ type: "object"
+ description: ""
+ - name: "address_state"
+ type: "string"
+ description: ""
+ - name: "id"
+ type: "string"
+ description: ""
+ - name: "object"
+ type: "string"
+ description: ""
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+ - name: "address_line1"
+ type: "string"
+ description: ""
+ - name: "tokenization_method"
+ type: "string"
+ description: ""
+ - name: "address_country"
+ type: "string"
+ description: ""
+ - name: "address_city"
+ type: "string"
+ description: ""
+ - name: "address_line2"
+ type: "string"
+ description: ""
+ - name: "customer"
+ type: "string"
+ description: ""
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+ - name: "name"
+ type: "string"
+ description: ""
+ - name: "address_zip"
+ type: "string"
+ description: ""
+ - name: "address_zip_check"
+ type: "string"
+ description: ""
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+ - name: "type"
+ type: "string"
+ description: ""
+
+ - name: "receipt_email"
+ type: "string"
+ description: ""
+
+ - name: "receipt_number"
+ type: "string"
+ description: ""
+
+ - name: "receipt_url"
+ type: "string"
+ description: ""
+
+ - name: "refunded"
+ type: "boolean"
+ description: ""
+
+ - name: "refunds"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "items"
+ type: ""
+ description: ""
+
+ - name: "review"
+ type: "string"
+ description: ""
+
+ - name: "shipping"
+ type: "object"
+ description: ""
+
+ - name: "source"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "metadata"
+ type: "object"
+ description: ""
+ - name: "type"
+ type: "string"
+ description: ""
+ - name: "address_zip"
+ type: "string"
+ description: ""
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+ - name: "card"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+ - name: "last4"
+ type: "string"
+ description: ""
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+ - name: "tokenization_method"
+ type: "string"
+ description: ""
+ - name: "name"
+ type: "string"
+ description: ""
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+ - name: "three_d_secure"
+ type: "string"
+ description: ""
+ - name: "funding"
+ type: "string"
+ description: ""
+ - name: "brand"
+ type: "string"
+ description: ""
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "address_zip_check"
+ type: "string"
+ description: ""
+ - name: "type"
+ type: "string"
+ description: ""
+ - name: "statement_descriptor"
+ type: "string"
+ description: ""
+ - name: "id"
+ type: "string"
+ description: ""
+ - name: "address_country"
+ type: "string"
+ description: ""
+ - name: "funding"
+ type: "string"
+ description: ""
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+ - name: "last4"
+ type: "string"
+ description: ""
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+ - name: "brand"
+ type: "string"
+ description: ""
+ - name: "address_line2"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "object"
+ type: "string"
+ description: ""
+ - name: "amount"
+ type: "integer"
+ description: ""
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+ - name: "usage"
+ type: "string"
+ description: ""
+ - name: "address_line1"
+ type: "string"
+ description: ""
+ - name: "owner"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "verified_address"
+ type: "string"
+ description: ""
+ - name: "email"
+ type: "string"
+ description: ""
+ - name: "address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "line2"
+ type: "string"
+ description: ""
+ - name: "state"
+ type: "string"
+ description: ""
+ - name: "city"
+ type: "string"
+ description: ""
+ - name: "postal_code"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "line1"
+ type: "string"
+ description: ""
+ - name: "verified_email"
+ type: "string"
+ description: ""
+ - name: "name"
+ type: "string"
+ description: ""
+ - name: "phone"
+ type: "string"
+ description: ""
+ - name: "verified_name"
+ type: "string"
+ description: ""
+ - name: "verified_phone"
+ type: "string"
+ description: ""
+ - name: "tokenization_method"
+ type: "string"
+ description: ""
+ - name: "client_secret"
+ type: "string"
+ description: ""
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+ - name: "address_city"
+ type: "string"
+ description: ""
+ - name: "currency"
+ type: "string"
+ description: ""
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+ - name: "receiver"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "refund_attributes_method"
+ type: "string"
+ description: ""
+ - name: "amount_returned"
+ type: "integer"
+ description: ""
+ - name: "amount_received"
+ type: "integer"
+ description: ""
+ - name: "refund_attributes_status"
+ type: "string"
+ description: ""
+ - name: "address"
+ type: "string"
+ description: ""
+ - name: "amount_charged"
+ type: "integer"
+ description: ""
+ - name: "flow"
+ type: "string"
+ description: ""
+ - name: "name"
+ type: "string"
+ description: ""
+ - name: "ach_credit_transfer"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank_name"
+ type: "string"
+ description: ""
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+ - name: "routing_number"
+ type: "string"
+ description: ""
+ - name: "swift_code"
+ type: "string"
+ description: ""
+ - name: "refund_account_holder_type"
+ type: "string"
+ description: ""
+ - name: "refund_account_holder_name"
+ type: "string"
+ description: ""
+ - name: "refund_account_number"
+ type: "string"
+ description: ""
+ - name: "refund_routing_number"
+ type: "string"
+ description: ""
+ - name: "account_number"
+ type: "string"
+ description: ""
+ - name: "customer"
+ type: "string"
+ description: ""
+ - name: "address_zip_check"
+ type: "string"
+ description: ""
+ - name: "status"
+ type: "string"
+ description: ""
+ - name: "created"
+ type: "string"
+ description: ""
+ - name: "address_state"
+ type: "string"
+ description: ""
+ - name: "alipay"
+ type: "object"
+ description: ""
+ - name: "bancontact"
+ type: "object"
+ description: ""
+ - name: "eps"
+ type: "object"
+ description: ""
+ - name: "ideal"
+ type: "object"
+ description: ""
+ - name: "multibanco"
+ type: "object"
+ description: ""
+ - name: "redirect"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "failure_reason"
+ type: "string"
+ description: ""
+ - name: "return_url"
+ type: "string"
+ description: ""
+ - name: "status"
+ type: "string"
+ description: ""
+ - name: "url"
+ type: "string"
+ description: ""
+
+ - name: "source_transfer"
+ type: "string"
+ description: ""
+
+ - name: "statement_description"
+ type: "string"
+ description: ""
+
+ - name: "statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "statement_descriptor_suffix"
+ type: "string"
+ description: ""
+
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "transfer_data"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "amount"
+ type: "integer"
+ description: ""
+ - name: "destination"
+ type: "string"
+ description: ""
+
+ - name: "transfer_group"
+ type: "string"
+ description: ""
+
+ - name: "updated"
+ type: "string"
+ description: ""
+
+ - name: "updated_by_event_type"
+ type: "string"
+ description: "Description of the event"
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/stripe/v2/coupons.md b/archive/_integration-schemas/stripe/v2/coupons.md
new file mode 100644
index 000000000..05791b8a0
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v2/coupons.md
@@ -0,0 +1,93 @@
+---
+tap: "stripe"
+version: "2"
+key: ""
+
+name: "coupons"
+doc-link: "https://stripe.com/docs/api/coupons"
+singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/coupons.json
+description: |
+ The `{{ table.name }}` table contains info about percent or amount-off discounts that may be applied to a customer. **Note:** Coupons only apply to invoices; they don't apply to one-off charges.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all coupons"
+ doc-link: "https://stripe.com/docs/api/coupons/list"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The coupon ID."
+ foreign-key-id: "coupon-id"
+
+ - name: "created"
+ type: "string"
+ replication-key: true
+ description: "Time at which the object was created. Measured in seconds since the Unix epoch."
+
+ - name: "amount_off"
+ type: "integer"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "duration"
+ type: "string"
+ description: ""
+
+ - name: "duration_in_months"
+ type: "integer"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "max_redemptions"
+ type: "integer"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "percent_off"
+ type: "number"
+ description: ""
+
+ - name: "percent_off_precise"
+ type: "number"
+ description: ""
+
+ - name: "redeem_by"
+ type: "string"
+ description: ""
+
+ - name: "times_redeemed"
+ type: "integer"
+ description: ""
+
+ - name: "updated"
+ type: "string"
+ description: ""
+
+ - name: "updated_by_event_type"
+ type: "string"
+ description: "Description of the event"
+
+ - name: "valid"
+ type: "boolean"
+ description: ""
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/stripe/v2/customers.md b/archive/_integration-schemas/stripe/v2/customers.md
new file mode 100644
index 000000000..60aa23465
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v2/customers.md
@@ -0,0 +1,1293 @@
+---
+tap: "stripe"
+version: "2"
+key: ""
+
+name: "customers"
+doc-link: "https://stripe.com/docs/api/customers/object"
+singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/customers.json
+description: |
+ The `{{ table.name }}` table contains info about your customers.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all customers"
+ doc-link: "https://stripe.com/docs/api/customers/list"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The customer ID."
+ foreign-key-id: "customer-id"
+
+ - name: "created"
+ type: "string"
+ replication-key: true
+ description: "Time at which the object was created. Measured in seconds since the Unix epoch."
+
+ - name: "account_balance"
+ type: "integer"
+ description: ""
+
+ - name: "address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "line1"
+ type: "string"
+ description: ""
+
+ - name: "line2"
+ type: "string"
+ description: ""
+
+ - name: "postal_code"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+
+ - name: "balance"
+ type: "integer"
+ description: ""
+
+ - name: "cards"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "id"
+ type: "string"
+ description: ""
+
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+
+ - name: "last4"
+ type: "string"
+ description: ""
+
+ - name: "funding"
+ type: "string"
+ description: ""
+
+ - name: "brand"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "customer"
+ type: "string"
+ description: ""
+
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+
+ - name: "address_line2"
+ type: "string"
+ description: ""
+
+ - name: "address_line1"
+ type: "string"
+ description: ""
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "address_zip"
+ type: "string"
+ description: ""
+
+ - name: "address_city"
+ type: "string"
+ description: ""
+
+ - name: "address_country"
+ type: "string"
+ description: ""
+
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+
+ - name: "tokenization_method"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "address_state"
+ type: "string"
+ description: ""
+
+ - name: "address_zip_check"
+ type: "string"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "default_card"
+ type: "string"
+ description: ""
+
+ - name: "default_source"
+ type: "string"
+ description: ""
+
+ - name: "delinquent"
+ type: "boolean"
+ description: ""
+
+ - name: "description"
+ type: "string"
+ description: ""
+
+ - name: "discount"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "end"
+ type: "string"
+ description: ""
+
+ - name: "coupon"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "valid"
+ type: "boolean"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "amount_off"
+ type: "integer"
+ description: ""
+
+ - name: "redeem_by"
+ type: "string"
+ description: ""
+
+ - name: "duration_in_months"
+ type: "integer"
+ description: ""
+
+ - name: "percent_off_precise"
+ type: "number"
+ description: ""
+
+ - name: "max_redemptions"
+ type: "integer"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "times_redeemed"
+ type: "integer"
+ description: ""
+
+ - name: "id"
+ type: "string"
+ description: "The ID of the discount object. "
+
+ - name: "duration"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "percent_off"
+ type: "number"
+ description: ""
+
+ - name: "created"
+ type: "string"
+ description: ""
+
+
+ - name: "customer"
+ type: "string"
+ description: ""
+
+ - name: "start"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "subscription"
+ type: "string"
+ description: ""
+
+ - name: "checkout_session"
+ type: "string"
+ description: ""
+
+ - name: "id"
+ type: "string"
+ description: "The ID of the discount object. "
+
+ - name: "invoice"
+ type: "string"
+ description: "The invoice that the discount’s coupon was applied to, if it was applied directly to a particular invoice."
+
+ - name: "invoice_item"
+ type: "string"
+ description: "The invoice item id (or invoice line item id for invoice line items of type=‘subscription’) that the discount’s coupon was applied to, if it was applied directly to a particular invoice item or invoice line item."
+
+ - name: "promotion_code"
+ type: "string"
+ description: "The promotion code applied to create this discount."
+
+
+ - name: "email"
+ type: "string"
+ description: ""
+
+ - name: "invoice_prefix"
+ type: "string"
+ description: ""
+
+ - name: "invoice_settings"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "custom_fields"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "items"
+ type: "string"
+ description: ""
+
+ - name: "default_payment_method"
+ type: "string"
+ description: ""
+
+ - name: "footer"
+ type: "string"
+ description: ""
+
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "next_invoice_sequence"
+ type: "integer"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "phone"
+ type: "string"
+ description: ""
+
+ - name: "preferred_locales"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "items"
+ type: "string"
+ description: ""
+
+ - name: "shipping"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "line2"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+ - name: "city"
+ type: "string"
+ description: ""
+
+ - name: "postal_code"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "line1"
+ type: "string"
+ description: ""
+
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "phone"
+ type: "string"
+ description: ""
+
+
+ - name: "sources"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+ - name: "address_zip"
+ type: "string"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "card"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "last4"
+ type: "string"
+ description: ""
+
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+
+ - name: "tokenization_method"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+
+ - name: "three_d_secure"
+ type: "string"
+ description: ""
+
+ - name: "funding"
+ type: "string"
+ description: ""
+
+ - name: "brand"
+ type: "string"
+ description: ""
+
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "address_zip_check"
+ type: "string"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+
+ - name: "statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "id"
+ type: "string"
+ description: ""
+
+ - name: "address_country"
+ type: "string"
+ description: ""
+
+ - name: "funding"
+ type: "string"
+ description: ""
+
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+
+ - name: "last4"
+ type: "string"
+ description: ""
+
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+
+ - name: "brand"
+ type: "string"
+ description: ""
+
+ - name: "address_line2"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+
+ - name: "usage"
+ type: "string"
+ description: ""
+
+ - name: "address_line1"
+ type: "string"
+ description: ""
+
+ - name: "owner"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "verified_address"
+ type: "string"
+ description: ""
+
+ - name: "email"
+ type: "string"
+ description: ""
+
+ - name: "address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "line2"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+ - name: "city"
+ type: "string"
+ description: ""
+
+ - name: "postal_code"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "line1"
+ type: "string"
+ description: ""
+
+
+ - name: "verified_email"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "phone"
+ type: "string"
+ description: ""
+
+ - name: "verified_name"
+ type: "string"
+ description: ""
+
+ - name: "verified_phone"
+ type: "string"
+ description: ""
+
+
+ - name: "tokenization_method"
+ type: "string"
+ description: ""
+
+ - name: "client_secret"
+ type: "string"
+ description: ""
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "address_city"
+ type: "string"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+
+ - name: "receiver"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "refund_attributes_method"
+ type: "string"
+ description: ""
+
+ - name: "amount_returned"
+ type: "integer"
+ description: ""
+
+ - name: "amount_received"
+ type: "integer"
+ description: ""
+
+ - name: "refund_attributes_status"
+ type: "string"
+ description: ""
+
+ - name: "address"
+ type: "string"
+ description: ""
+
+ - name: "amount_charged"
+ type: "integer"
+ description: ""
+
+
+ - name: "flow"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "ach_credit_transfer"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank_name"
+ type: "string"
+ description: ""
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "routing_number"
+ type: "string"
+ description: ""
+
+ - name: "swift_code"
+ type: "string"
+ description: ""
+
+ - name: "refund_account_holder_type"
+ type: "string"
+ description: ""
+
+ - name: "refund_account_holder_name"
+ type: "string"
+ description: ""
+
+ - name: "refund_account_number"
+ type: "string"
+ description: ""
+
+ - name: "refund_routing_number"
+ type: "string"
+ description: ""
+
+ - name: "account_number"
+ type: "string"
+ description: ""
+
+
+ - name: "customer"
+ type: "string"
+ description: ""
+
+ - name: "address_zip_check"
+ type: "string"
+ description: ""
+
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "created"
+ type: "string"
+ description: ""
+
+ - name: "address_state"
+ type: "string"
+ description: ""
+
+ - name: "alipay"
+ type: "object"
+ description: ""
+
+ - name: "bancontact"
+ type: "object"
+ description: ""
+
+ - name: "eps"
+ type: "object"
+ description: ""
+
+ - name: "ideal"
+ type: "object"
+ description: ""
+
+ - name: "multibanco"
+ type: "object"
+ description: ""
+
+ - name: "redirect"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "failure_reason"
+ type: "string"
+ description: ""
+
+ - name: "return_url"
+ type: "string"
+ description: ""
+
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "url"
+ type: "string"
+ description: ""
+
+
+
+
+ - name: "sources"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+ - name: "address_zip"
+ type: "string"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "card"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "last4"
+ type: "string"
+ description: ""
+
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+
+ - name: "tokenization_method"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+
+ - name: "three_d_secure"
+ type: "string"
+ description: ""
+
+ - name: "funding"
+ type: "string"
+ description: ""
+
+ - name: "brand"
+ type: "string"
+ description: ""
+
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "address_zip_check"
+ type: "string"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+
+ - name: "statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "id"
+ type: "string"
+ description: ""
+
+ - name: "address_country"
+ type: "string"
+ description: ""
+
+ - name: "funding"
+ type: "string"
+ description: ""
+
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+
+ - name: "last4"
+ type: "string"
+ description: ""
+
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+
+ - name: "brand"
+ type: "string"
+ description: ""
+
+ - name: "address_line2"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+
+ - name: "usage"
+ type: "string"
+ description: ""
+
+ - name: "address_line1"
+ type: "string"
+ description: ""
+
+ - name: "owner"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "verified_address"
+ type: "string"
+ description: ""
+
+ - name: "email"
+ type: "string"
+ description: ""
+
+ - name: "address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "line2"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+ - name: "city"
+ type: "string"
+ description: ""
+
+ - name: "postal_code"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "line1"
+ type: "string"
+ description: ""
+
+
+ - name: "verified_email"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "phone"
+ type: "string"
+ description: ""
+
+ - name: "verified_name"
+ type: "string"
+ description: ""
+
+ - name: "verified_phone"
+ type: "string"
+ description: ""
+
+
+ - name: "tokenization_method"
+ type: "string"
+ description: ""
+
+ - name: "client_secret"
+ type: "string"
+ description: ""
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "address_city"
+ type: "string"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+
+ - name: "receiver"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "refund_attributes_method"
+ type: "string"
+ description: ""
+
+ - name: "amount_returned"
+ type: "integer"
+ description: ""
+
+ - name: "amount_received"
+ type: "integer"
+ description: ""
+
+ - name: "refund_attributes_status"
+ type: "string"
+ description: ""
+
+ - name: "address"
+ type: "string"
+ description: ""
+
+ - name: "amount_charged"
+ type: "integer"
+ description: ""
+
+
+ - name: "flow"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "ach_credit_transfer"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank_name"
+ type: "string"
+ description: ""
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "routing_number"
+ type: "string"
+ description: ""
+
+ - name: "swift_code"
+ type: "string"
+ description: ""
+
+ - name: "refund_account_holder_type"
+ type: "string"
+ description: ""
+
+ - name: "refund_account_holder_name"
+ type: "string"
+ description: ""
+
+ - name: "refund_account_number"
+ type: "string"
+ description: ""
+
+ - name: "refund_routing_number"
+ type: "string"
+ description: ""
+
+ - name: "account_number"
+ type: "string"
+ description: ""
+
+
+ - name: "customer"
+ type: "string"
+ description: ""
+
+ - name: "address_zip_check"
+ type: "string"
+ description: ""
+
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "created"
+ type: "string"
+ description: ""
+
+ - name: "address_state"
+ type: "string"
+ description: ""
+
+ - name: "alipay"
+ type: "object"
+ description: ""
+
+ - name: "bancontact"
+ type: "object"
+ description: ""
+
+ - name: "eps"
+ type: "object"
+ description: ""
+
+ - name: "ideal"
+ type: "object"
+ description: ""
+
+ - name: "multibanco"
+ type: "object"
+ description: ""
+
+ - name: "redirect"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "failure_reason"
+ type: "string"
+ description: ""
+
+ - name: "return_url"
+ type: "string"
+ description: ""
+
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "url"
+ type: "string"
+ description: ""
+
+
+
+
+ - name: "subscriptions"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "items"
+ type: "string"
+ description: ""
+
+ - name: "tax_exempt"
+ type: "string"
+ description: ""
+
+ - name: "tax_ids"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "id"
+ type: "string"
+ description: "Unique identifier for the object."
+
+ - name: "object"
+ type: "string"
+ description: "String representing the object’s type. Objects of the same type share the same value."
+
+ - name: "country"
+ type: "string"
+ description: "Two-letter ISO code representing the country of the tax ID."
+
+ - name: "created"
+ type: "string"
+ description: "Time at which the object was created. Measured in seconds since the Unix epoch."
+
+ - name: "customer"
+ type: "string"
+ description: "ID of the customer."
+
+ - name: "livemode"
+ type: "boolean"
+ description: "Has the value true if the object exists in live mode or the value false if the object exists in test mode"
+
+ - name: "type"
+ type: "string"
+ description: "Type of the tax ID."
+
+ - name: "value"
+ type: "string"
+ description: "Value of the tax ID"
+
+ - name: "verification"
+ type: "object"
+ description: "Tax ID verification information."
+ subattributes:
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "verified_address"
+ type: "string"
+ description: ""
+
+ - name: "verified_name"
+ type: "string"
+ description: ""
+
+
+
+
+ - name: "tax_ids"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "id"
+ type: "string"
+ description: "Unique identifier for the object."
+
+ - name: "object"
+ type: "string"
+ description: "String representing the object’s type. Objects of the same type share the same value."
+
+ - name: "country"
+ type: "string"
+ description: "Two-letter ISO code representing the country of the tax ID."
+
+ - name: "created"
+ type: "string"
+ description: "Time at which the object was created. Measured in seconds since the Unix epoch."
+
+ - name: "customer"
+ type: "string"
+ description: "ID of the customer."
+
+ - name: "livemode"
+ type: "boolean"
+ description: "Has the value true if the object exists in live mode or the value false if the object exists in test mode"
+
+ - name: "type"
+ type: "string"
+ description: "Type of the tax ID."
+
+ - name: "value"
+ type: "string"
+ description: "Value of the tax ID"
+
+ - name: "verification"
+ type: "object"
+ description: "Tax ID verification information."
+ subattributes:
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "verified_address"
+ type: "string"
+ description: ""
+
+ - name: "verified_name"
+ type: "string"
+ description: ""
+
+
+
+
+ - name: "tax_info"
+ type: "string"
+ description: ""
+
+ - name: "tax_info_verification"
+ type: "string"
+ description: ""
+
+ - name: "updated"
+ type: "string"
+ description: ""
+
+ - name: "updated_by_event_type"
+ type: "string"
+ description: "Description of the event"
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/stripe/v2/disputes.md b/archive/_integration-schemas/stripe/v2/disputes.md
new file mode 100644
index 000000000..29771f3a5
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v2/disputes.md
@@ -0,0 +1,216 @@
+---
+tap: "stripe"
+version: "2"
+key: ""
+
+name: "disputes"
+doc-link: "https://stripe.com/docs/api/disputes/object"
+singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/disputes.json
+description: "This table contains information about customer disputes related to charges on their credit card."
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all disputes"
+ doc-link: "https://stripe.com/docs/api/disputes/list"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The dispute ID."
+ foreign-key-id: "dispute-id"
+
+ - name: "created"
+ type: "string"
+ description: "Time at which the dispute was created. Measured in seconds since the Unix epoch."
+ replication-key: true
+
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "balance_transactions"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "id"
+ type: "string"
+ description: "The balance transaction ID."
+ foreign-key-id: "balance-transaction-id"
+
+
+ - name: "charge"
+ type: "string"
+ description: "The ID of the disputed charge."
+ foreign-key-id: "charge-id"
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "evidence"
+ type: "string, object"
+ description: ""
+ subattributes:
+ - name: "refund_policy"
+ type: "string"
+ description: ""
+
+ - name: "shipping_address"
+ type: "string"
+ description: ""
+
+ - name: "duplicate_charge_explanation"
+ type: "string"
+ description: ""
+
+ - name: "shipping_tracking_number"
+ type: "string"
+ description: ""
+
+ - name: "customer_signature"
+ type: "string"
+ description: ""
+
+ - name: "uncategorized_text"
+ type: "string"
+ description: ""
+
+ - name: "cancellation_policy_disclosure"
+ type: "string"
+ description: ""
+
+ - name: "refund_policy_disclosure"
+ type: "string"
+ description: ""
+
+ - name: "receipt"
+ type: "string"
+ description: ""
+
+ - name: "customer_name"
+ type: "string"
+ description: ""
+
+ - name: "refund_refusal_explanation"
+ type: "string"
+ description: ""
+
+ - name: "cancellation_rebuttal"
+ type: "string"
+ description: ""
+
+ - name: "product_description"
+ type: "string"
+ description: ""
+
+ - name: "shipping_date"
+ type: "string"
+ description: ""
+
+ - name: "customer_email_address"
+ type: "string"
+ description: ""
+
+ - name: "duplicate_charge_id"
+ type: "string"
+ description: ""
+
+ - name: "shipping_documentation"
+ type: "string"
+ description: ""
+
+ - name: "access_activity_log"
+ type: "string"
+ description: ""
+
+ - name: "customer_purchase_ip"
+ type: "string"
+ description: ""
+
+ - name: "service_date"
+ type: "string"
+ description: ""
+
+ - name: "shipping_carrier"
+ type: "string"
+ description: ""
+
+ - name: "service_documentation"
+ type: "string"
+ description: ""
+
+ - name: "duplicate_charge_documentation"
+ type: "string"
+ description: ""
+
+ - name: "cancellation_policy"
+ type: "string"
+ description: ""
+
+ - name: "customer_communication"
+ type: "string"
+ description: ""
+
+ - name: "uncategorized_file"
+ type: "string"
+ description: ""
+
+ - name: "billing_address"
+ type: "string"
+ description: ""
+
+
+ - name: "evidence_details"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "due_by"
+ type: "string"
+ description: ""
+
+ - name: "has_evidence"
+ type: "boolean"
+ description: ""
+
+ - name: "past_due"
+ type: "boolean"
+ description: ""
+
+ - name: "submission_count"
+ type: "integer"
+ description: ""
+
+ - name: "is_charge_refundable"
+ type: "boolean"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "reason"
+ type: "string"
+ description: ""
+
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "updated"
+ type: "string"
+ description: ""
+
+ - name: "updated_by_event_type"
+ type: "string"
+ description: "Description of the event"
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/stripe/v2/events.md b/archive/_integration-schemas/stripe/v2/events.md
new file mode 100644
index 000000000..0a27edb4b
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v2/events.md
@@ -0,0 +1,65 @@
+---
+tap: "stripe"
+version: "2"
+key: ""
+
+name: "events"
+doc-link: "https://stripe.com/docs/api/events"
+singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/events.json
+description: |
+ The `{{ table.name }}` table contains info about [events](https://stripe.com/docs/api/events){:target="new"}. When an event occurs, a new event object is created. This table acts as the history of an object, allowing you to see how it has changed over time.
+
+ For example: When an invoice is created, an `invoice.created` event is created. When the draft invoice is finalized and updated to be open, an `invoice.finalized` event is created. When the invoice is sent to the customer, an `invoice.sent` event is created.
+
+ For more info about this table and how data is replicated, refer to the [Replication](#replication) section. Additionally, refer to [{{ integration.display_name }}'s documentation](https://stripe.com/docs/api/events/types){:target="new"} for info about event types and the objects they describe.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all events"
+ doc-link: "https://stripe.com/docs/api/events/list"
+
+attributes:
+ - name: "id"
+ type: "string"
+ description: "The event ID."
+ primary-key: true
+ foreign-key-id: "event-id"
+
+ - name: "created"
+ type: "string"
+ replication-key: true
+ description: "The time at which the object was created. Measured in seconds since the Unix epoch."
+
+ - name: "api_version"
+ type: "string"
+ description: ""
+
+ - name: "data"
+ type: "object"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "pending_webhooks"
+ type: "integer"
+ description: ""
+
+ - name: "request"
+ type: "string"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+ - name: "updated"
+ type: "string"
+ description: ""
+---
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v2/foreign-keys.md b/archive/_integration-schemas/stripe/v2/foreign-keys.md
similarity index 100%
rename from _integration-schemas/stripe/v2/foreign-keys.md
rename to archive/_integration-schemas/stripe/v2/foreign-keys.md
diff --git a/archive/_integration-schemas/stripe/v2/invoice_items.md b/archive/_integration-schemas/stripe/v2/invoice_items.md
new file mode 100644
index 000000000..646596884
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v2/invoice_items.md
@@ -0,0 +1,293 @@
+---
+tap: "stripe"
+version: "2"
+key: ""
+
+name: "invoice_items"
+
+singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/invoice_items.json
+description: |
+ The `{{ table.name }}` table contains info about items contained in customer invoices.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all invoice items"
+ doc-link: "https://stripe.com/docs/api/invoiceitems/list"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The invoice item ID."
+ foreign-key-id: "invoice-item-id"
+
+ - name: "date"
+ type: "string"
+ replication-key: true
+ description: "The date the invoice item was added to the invoice."
+
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "customer"
+ type: "string"
+ description: "The ID of the customer who will be billed for the invoice item."
+ foreign-key-id: "customer-id"
+
+ - name: "description"
+ type: "string"
+ description: ""
+
+ - name: "discountable"
+ type: "boolean"
+ description: ""
+
+ - name: "discounts"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "items"
+ type: "string"
+ description: ""
+
+ - name: "invoice"
+ type: "string"
+ description: "The ID of the invoice associated with the invoice item."
+ foreign-key-id: "invoice-id"
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "period"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "end"
+ type: "string"
+ description: ""
+
+ - name: "start"
+ type: "string"
+ description: ""
+
+
+ - name: "plan"
+ type: "object, string"
+ description: ""
+ subattributes:
+ - name: "nickname"
+ type: "string"
+ description: ""
+
+ - name: "updated_by_event_type"
+ type: "string"
+ description: "Description of the event"
+
+ - name: "amount_decimal"
+ type: "string"
+ description: ""
+
+ - name: "tiers"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "flat_amount"
+ type: "integer"
+ description: ""
+
+ - name: "unit_amount"
+ type: "integer"
+ description: ""
+
+ - name: "up_to"
+ type: "integer"
+ description: ""
+
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "aggregate_usage"
+ type: "string"
+ description: ""
+
+ - name: "created"
+ type: "string"
+ description: ""
+
+ - name: "statement_description"
+ type: "string"
+ description: ""
+
+ - name: "product"
+ type: "string"
+ description: "The product whose pricing this plan determines."
+ foreign-key-id: "product-id"
+
+ - name: "statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "interval_count"
+ type: "integer"
+ description: ""
+
+ - name: "transform_usage"
+ type: "object"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "interval"
+ type: "string"
+ description: ""
+
+ - name: "id"
+ type: "string"
+ description: "The plan ID."
+ foreign-key-id: "plan-id"
+
+ - name: "trial_period_days"
+ type: "integer"
+ description: ""
+
+ - name: "usage_type"
+ type: "string"
+ description: ""
+
+ - name: "active"
+ type: "boolean"
+ description: ""
+
+ - name: "tiers_mode"
+ type: "string"
+ description: ""
+
+ - name: "billing_scheme"
+ type: "string"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "updated"
+ type: "string"
+ description: ""
+
+
+ - name: "proration"
+ type: "boolean"
+ description: ""
+
+ - name: "quantity"
+ type: "integer"
+ description: ""
+
+ - name: "subscription"
+ type: "string"
+ description: ""
+
+ - name: "subscription_item"
+ type: "string"
+ description: ""
+
+ - name: "tax_rates"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "id"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "active"
+ type: "boolean"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "created"
+ type: "string"
+ description: ""
+
+ - name: "description"
+ type: "string"
+ description: ""
+
+ - name: "display_name"
+ type: "string"
+ description: ""
+
+ - name: "inclusive"
+ type: "boolean"
+ description: ""
+
+ - name: "jurisdiction"
+ type: "string"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "percentage"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+
+ - name: "unit_amount"
+ type: "integer"
+ description: ""
+
+ - name: "unit_amount_decimal"
+ type: "string"
+ description: ""
+
+ - name: "updated"
+ type: "string"
+ description: ""
+
+ - name: "updated_by_event_type"
+ type: "string"
+ description: "Description of the event"
+---
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v2/invoice_line_items.md b/archive/_integration-schemas/stripe/v2/invoice_line_items.md
similarity index 100%
rename from _integration-schemas/stripe/v2/invoice_line_items.md
rename to archive/_integration-schemas/stripe/v2/invoice_line_items.md
diff --git a/archive/_integration-schemas/stripe/v2/invoices.md b/archive/_integration-schemas/stripe/v2/invoices.md
new file mode 100644
index 000000000..f43bd1e4a
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v2/invoices.md
@@ -0,0 +1,731 @@
+---
+tap: "stripe"
+version: "2"
+key: ""
+
+name: "invoices"
+doc-link: "https://stripe.com/docs/api/invoices"
+singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/invoices.json
+description: |
+ The `{{ table.name }}` table contains info about invoices. Invoices are statements of amounts owed by customers, which can be one-off charges or generated periodically from a subscription.
+
+ #### Invoice line items
+
+ Full records for the line items associated with an invoice can be found in the [`invoice_line_items`](#invoice_line_items) table. To replicate these records, you must set this table and the `invoice_line_items` table to replicate.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all invoices"
+ doc-link: "https://stripe.com/docs/api/invoices/list"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The invoice ID."
+ foreign-key-id: "invoice-id"
+
+ - name: "created"
+ type: "string"
+ replication-key: true
+ description: "The time at which the invoice was created. Measured in seconds since the Unix epoch."
+
+ - name: "account_country"
+ type: "string"
+ description: ""
+
+ - name: "account_name"
+ type: "string"
+ description: ""
+
+ - name: "account_tax_ids"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "items"
+ type: "string"
+ description: ""
+
+ - name: "amount_due"
+ type: "integer"
+ description: ""
+
+ - name: "amount_paid"
+ type: "integer"
+ description: ""
+
+ - name: "amount_remaining"
+ type: "integer"
+ description: ""
+
+ - name: "application_fee"
+ type: "integer"
+ description: ""
+
+ - name: "application_fee_amount"
+ type: "integer"
+ description: "The fee in cents that will be applied to the invoice and transferred to the application owner’s Stripe account when the invoice is paid."
+
+ - name: "attempt_count"
+ type: "integer"
+ description: ""
+
+ - name: "attempted"
+ type: "boolean"
+ description: ""
+
+ - name: "auto_advance"
+ type: "boolean"
+ description: ""
+
+ - name: "automatic_tax"
+ type: "object"
+ description: "Settings and latest results for automatic tax lookup for this invoice."
+ subattributes:
+ - name: "enabled"
+ type: "boolean"
+ description: "Whether Stripe automatically computes tax on this invoice."
+
+ - name: "status"
+ type: "string"
+ description: "The status of the most recent automated tax calculation for this invoice."
+
+
+ - name: "billing"
+ type: "string"
+ description: ""
+
+ - name: "billing_reason"
+ type: "string"
+ description: ""
+
+ - name: "charge"
+ type: "string"
+ description: "The ID of the latest charge generated for this invoice."
+ foreign-key-id: "charge-id"
+
+ - name: "closed"
+ type: "boolean"
+ description: ""
+
+ - name: "collection_method"
+ type: "string"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "custom_fields"
+ type: "array"
+ description: "Custom fields displayed on the invoice."
+ subattributes:
+ - name: "name"
+ type: "string"
+ description: "The name of the custom field."
+
+ - name: "value"
+ type: "string"
+ description: "The value of the custom field."
+
+
+ - name: "customer"
+ type: "string"
+ description: "The ID of the customer associated with the invoice."
+ foreign-key-id: "customer-id"
+
+ - name: "customer_address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "line1"
+ type: "string"
+ description: ""
+
+ - name: "line2"
+ type: "string"
+ description: ""
+
+ - name: "postal_code"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+
+ - name: "customer_email"
+ type: "string"
+ description: ""
+
+ - name: "customer_name"
+ type: "string"
+ description: ""
+
+ - name: "customer_phone"
+ type: "string"
+ description: ""
+
+ - name: "customer_shipping"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "line1"
+ type: "string"
+ description: ""
+
+ - name: "line2"
+ type: "string"
+ description: ""
+
+ - name: "postal_code"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "phone"
+ type: "string"
+ description: ""
+
+
+ - name: "customer_tax_exempt"
+ type: "string"
+ description: ""
+
+ - name: "customer_tax_ids"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "type"
+ type: "string"
+ description: ""
+
+ - name: "value"
+ type: "string"
+ description: ""
+
+
+ - name: "date"
+ type: "string"
+ description: ""
+
+ - name: "default_payment_method"
+ type: "string"
+ description: ""
+
+ - name: "default_source"
+ type: "string"
+ description: ""
+
+ - name: "default_tax_rates"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "id"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "active"
+ type: "boolean"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "created"
+ type: "string"
+ description: ""
+
+ - name: "description"
+ type: "string"
+ description: ""
+
+ - name: "display_name"
+ type: "string"
+ description: ""
+
+ - name: "inclusive"
+ type: "boolean"
+ description: ""
+
+ - name: "jurisdiction"
+ type: "string"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "percentage"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+
+ - name: "description"
+ type: "string"
+ description: ""
+
+ - name: "discount"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "end"
+ type: "string"
+ description: ""
+
+ - name: "coupon"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "valid"
+ type: "boolean"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "amount_off"
+ type: "integer"
+ description: ""
+
+ - name: "redeem_by"
+ type: "string"
+ description: ""
+
+ - name: "duration_in_months"
+ type: "integer"
+ description: ""
+
+ - name: "percent_off_precise"
+ type: "number"
+ description: ""
+
+ - name: "max_redemptions"
+ type: "integer"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "times_redeemed"
+ type: "integer"
+ description: ""
+
+ - name: "id"
+ type: "string"
+ description: "The coupon ID."
+ foreign-key-id: "coupon-id"
+
+ - name: "duration"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "percent_off"
+ type: "number"
+ description: ""
+
+ - name: "created"
+ type: "string"
+ description: ""
+
+
+ - name: "customer"
+ type: "string"
+ description: "The ID of the customer the discount applies to."
+ foreign-key-id: "customer-id"
+
+ - name: "start"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "subscription"
+ type: "string"
+ description: "The subscription that this coupon is applied to, if it is applied to a particular subscription."
+ foreign-key-id: "subscription-id"
+
+ - name: "checkout_session"
+ type: "string"
+ description: "The Checkout session that this coupon is applied to, if it is applied to a particular session in payment mode. Will not be present for subscription mode."
+
+ - name: "id"
+ type: "string"
+ description: "The ID of the discount object."
+
+ - name: "invoice"
+ type: "string"
+ description: "The invoice that the discount’s coupon was applied to, if it was applied directly to a particular invoice."
+
+ - name: "invoice_item"
+ type: "string"
+ description: "The invoice item id (or invoice line item id for invoice line items of type=‘subscription’) that the discount’s coupon was applied to, if it was applied directly to a particular invoice item or invoice line item."
+
+ - name: "promotion_code"
+ type: "string"
+ description: "The promotion code applied to create this discount."
+
+
+ - name: "discounts"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "items"
+ type: "string"
+ description: ""
+
+ - name: "due_date"
+ type: "string"
+ description: ""
+
+ - name: "ending_balance"
+ type: "integer"
+ description: ""
+
+ - name: "finalized_at"
+ type: "string"
+ description: ""
+
+ - name: "footer"
+ type: "string"
+ description: ""
+
+ - name: "forgiven"
+ type: "boolean"
+ description: ""
+
+ - name: "hosted_invoice_url"
+ type: "string"
+ description: ""
+
+ - name: "invoice_pdf"
+ type: "string"
+ description: ""
+
+ - name: "last_finalization_error"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "code"
+ type: "string"
+ description: ""
+
+ - name: "doc_url"
+ type: "string"
+ description: ""
+
+ - name: "message"
+ type: "string"
+ description: ""
+
+ - name: "param"
+ type: "string"
+ description: ""
+
+ - name: "payment_method_type"
+ type: "string"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+
+ - name: "lines"
+ type: "array, object"
+ description: ""
+ subattributes:
+ - name: "items"
+ type: "string"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "next_payment_attempt"
+ type: "string"
+ description: ""
+
+ - name: "number"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "on_behalf_of"
+ type: "string, object"
+ description: "The account (if any) for which the funds of the invoice payment are intended. If set, the invoice will be presented with the branding and support information of the specified account."
+
+ - name: "paid"
+ type: "boolean"
+ description: ""
+
+ - name: "paid_out_of_band"
+ type: "boolean"
+ description: "Returns true if the invoice was manually marked paid, returns false if the invoice hasn’t been paid yet or was paid on Stripe."
+
+ - name: "payment"
+ type: "string"
+ description: ""
+
+ - name: "payment_intent"
+ type: "string"
+ description: ""
+
+ - name: "payment_settings"
+ type: "object"
+ description: "Configuration settings for the PaymentIntent that is generated when the invoice is finalized."
+ subattributes:
+ - name: "payment_method_options"
+ type: "object"
+ description: "Payment-method-specific configuration to provide to the invoice’s PaymentIntent."
+ subattributes:
+ - name: "acss_debit"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "mandate_options"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "transaction_type"
+ type: "string"
+ description: ""
+
+
+ - name: "verification_method"
+ type: "string"
+ description: ""
+
+
+ - name: "bancontact"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "preferred_language"
+ type: "string"
+ description: ""
+
+
+ - name: "card"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "request_three_d_secure"
+ type: "string"
+ description: ""
+
+
+
+ - name: "payment_method_types"
+ type: "array"
+ description: "The list of payment method types (e.g. card) to provide to the invoice’s PaymentIntent"
+ subattributes:
+ - name: "items"
+ type: "string"
+ description: ""
+
+
+ - name: "period_end"
+ type: "string"
+ description: ""
+
+ - name: "period_start"
+ type: "string"
+ description: ""
+
+ - name: "post_payment_credit_notes_amount"
+ type: "integer"
+ description: ""
+
+ - name: "pre_payment_credit_notes_amount"
+ type: "integer"
+ description: ""
+
+ - name: "quote"
+ type: "object, string"
+ description: "The quote this invoice was generated from."
+
+ - name: "receipt_number"
+ type: "string"
+ description: ""
+
+ - name: "starting_balance"
+ type: "integer"
+ description: ""
+
+ - name: "statement_description"
+ type: "string"
+ description: ""
+
+ - name: "statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "status_transitions"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "finalized_at"
+ type: "string"
+ description: ""
+
+ - name: "marked_uncollectible_at"
+ type: "string"
+ description: ""
+
+ - name: "paid_at"
+ type: "string"
+ description: ""
+
+ - name: "voided_at"
+ type: "string"
+ description: ""
+
+
+ - name: "subscription"
+ type: "string"
+ description: "The ID that the invoice was prepared for."
+ foreign-key-id: "subscription-id"
+
+ - name: "subtotal"
+ type: "integer"
+ description: ""
+
+ - name: "tax"
+ type: "integer"
+ description: ""
+
+ - name: "tax_percent"
+ type: "number"
+ description: ""
+
+ - name: "total"
+ type: "integer"
+ description: ""
+
+ - name: "total_discount_amounts"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "discount"
+ type: "string"
+ description: ""
+
+
+ - name: "total_tax_amounts"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "inclusive"
+ type: "boolean"
+ description: ""
+
+ - name: "tax_rate"
+ type: "string"
+ description: ""
+
+
+ - name: "transfer_data"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "destination"
+ type: "string"
+ description: ""
+
+
+ - name: "updated"
+ type: "string"
+ description: ""
+
+ - name: "updated_by_event_type"
+ type: "string"
+ description: "Description of the event"
+
+ - name: "webhooks_delivered_at"
+ type: "string"
+ description: ""
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/stripe/v2/payment_intents.md b/archive/_integration-schemas/stripe/v2/payment_intents.md
new file mode 100644
index 000000000..d797a0c6e
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v2/payment_intents.md
@@ -0,0 +1,3743 @@
+---
+tap: "stripe"
+version: "2"
+key: ""
+
+name: "payment_intents"
+doc-link: "https://stripe.com/docs/payments/payment-intents"
+singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/payment_intents.json
+description: |
+ This table contains information about payments, from creation through checkout, in your {{ integration.display_name }} account.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all payment intents"
+ doc-link: "https://stripe.com/docs/api/payment_intents/list"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The payment intent ID."
+ foreign-key-id: "payment-intent-id"
+
+ - name: "created"
+ type: "string"
+ description: "Time at which the dispute was created. Measured in seconds since the Unix epoch."
+ replication-key: true
+
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "amount_capturable"
+ type: "integer"
+ description: ""
+
+ - name: "amount_received"
+ type: "integer"
+ description: ""
+
+ - name: "application"
+ type: "string"
+ description: ""
+
+ - name: "application_fee_amount"
+ type: "integer"
+ description: ""
+
+ - name: "automatic_payment_methods"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "enabled"
+ type: "boolean"
+ description: ""
+
+
+ - name: "canceled_at"
+ type: "string"
+ description: ""
+
+ - name: "cancellation_reason"
+ type: "string"
+ description: ""
+
+ - name: "capture_method"
+ type: "string"
+ description: ""
+
+ - name: "charges"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "fraud_details"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "stripe_report"
+ type: "string"
+ description: ""
+
+
+ - name: "transfer_group"
+ type: "string"
+ description: ""
+
+ - name: "on_behalf_of"
+ type: "string"
+ description: ""
+
+ - name: "review"
+ type: "string"
+ description: ""
+
+ - name: "failure_message"
+ type: "string"
+ description: ""
+
+ - name: "receipt_email"
+ type: "string"
+ description: ""
+
+ - name: "application_fee_amount"
+ type: "integer"
+ description: ""
+
+ - name: "disputed"
+ type: "boolean"
+ description: ""
+
+ - name: "payment_method"
+ type: "string"
+ description: ""
+
+ - name: "billing_details"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "line1"
+ type: "string"
+ description: ""
+
+ - name: "line2"
+ type: "string"
+ description: ""
+
+ - name: "postal_code"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+
+ - name: "email"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "phone"
+ type: "string"
+ description: ""
+
+
+ - name: "statement_descriptor_suffix"
+ type: "string"
+ description: ""
+
+ - name: "transfer_data"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "destination"
+ type: "string"
+ description: ""
+
+
+ - name: "receipt_url"
+ type: "string"
+ description: ""
+
+ - name: "statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "source"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+ - name: "address_zip"
+ type: "string"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "card"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "last4"
+ type: "string"
+ description: ""
+
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+
+ - name: "tokenization_method"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+
+ - name: "three_d_secure"
+ type: "string"
+ description: ""
+
+ - name: "funding"
+ type: "string"
+ description: ""
+
+ - name: "brand"
+ type: "string"
+ description: ""
+
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "address_zip_check"
+ type: "string"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+
+ - name: "statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "id"
+ type: "string"
+ description: ""
+
+ - name: "address_country"
+ type: "string"
+ description: ""
+
+ - name: "funding"
+ type: "string"
+ description: ""
+
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+
+ - name: "last4"
+ type: "string"
+ description: ""
+
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+
+ - name: "brand"
+ type: "string"
+ description: ""
+
+ - name: "address_line2"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+
+ - name: "usage"
+ type: "string"
+ description: ""
+
+ - name: "address_line1"
+ type: "string"
+ description: ""
+
+ - name: "owner"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "verified_address"
+ type: "string"
+ description: ""
+
+ - name: "email"
+ type: "string"
+ description: ""
+
+ - name: "address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "line2"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+ - name: "city"
+ type: "string"
+ description: ""
+
+ - name: "postal_code"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "line1"
+ type: "string"
+ description: ""
+
+
+ - name: "verified_email"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "phone"
+ type: "string"
+ description: ""
+
+ - name: "verified_name"
+ type: "string"
+ description: ""
+
+ - name: "verified_phone"
+ type: "string"
+ description: ""
+
+
+ - name: "tokenization_method"
+ type: "string"
+ description: ""
+
+ - name: "client_secret"
+ type: "string"
+ description: ""
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "address_city"
+ type: "string"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+
+ - name: "receiver"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "refund_attributes_method"
+ type: "string"
+ description: ""
+
+ - name: "amount_returned"
+ type: "integer"
+ description: ""
+
+ - name: "amount_received"
+ type: "integer"
+ description: ""
+
+ - name: "refund_attributes_status"
+ type: "string"
+ description: ""
+
+ - name: "address"
+ type: "string"
+ description: ""
+
+ - name: "amount_charged"
+ type: "integer"
+ description: ""
+
+
+ - name: "flow"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "ach_credit_transfer"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank_name"
+ type: "string"
+ description: ""
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "routing_number"
+ type: "string"
+ description: ""
+
+ - name: "swift_code"
+ type: "string"
+ description: ""
+
+ - name: "refund_account_holder_type"
+ type: "string"
+ description: ""
+
+ - name: "refund_account_holder_name"
+ type: "string"
+ description: ""
+
+ - name: "refund_account_number"
+ type: "string"
+ description: ""
+
+ - name: "refund_routing_number"
+ type: "string"
+ description: ""
+
+ - name: "account_number"
+ type: "string"
+ description: ""
+
+
+ - name: "customer"
+ type: "string"
+ description: ""
+
+ - name: "address_zip_check"
+ type: "string"
+ description: ""
+
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "created"
+ type: "string"
+ description: ""
+
+ - name: "address_state"
+ type: "string"
+ description: ""
+
+ - name: "alipay"
+ type: "object"
+ description: ""
+
+ - name: "bancontact"
+ type: "object"
+ description: ""
+
+ - name: "eps"
+ type: "object"
+ description: ""
+
+ - name: "ideal"
+ type: "object"
+ description: ""
+
+ - name: "multibanco"
+ type: "object"
+ description: ""
+
+ - name: "redirect"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "failure_reason"
+ type: "string"
+ description: ""
+
+ - name: "return_url"
+ type: "string"
+ description: ""
+
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "url"
+ type: "string"
+ description: ""
+
+
+
+ - name: "destination"
+ type: "string"
+ description: ""
+
+ - name: "id"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "outcome"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "type"
+ type: "string"
+ description: ""
+
+ - name: "seller_message"
+ type: "string"
+ description: ""
+
+ - name: "reason"
+ type: "string"
+ description: ""
+
+ - name: "risk_level"
+ type: "string"
+ description: ""
+
+ - name: "network_status"
+ type: "string"
+ description: ""
+
+ - name: "risk_score"
+ type: "integer"
+ description: ""
+
+
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "created"
+ type: "string"
+ description: ""
+
+ - name: "order"
+ type: "string"
+ description: ""
+
+ - name: "application"
+ type: "string"
+ description: ""
+
+ - name: "refunded"
+ type: "boolean"
+ description: ""
+
+ - name: "receipt_number"
+ type: "string"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "captured"
+ type: "boolean"
+ description: ""
+
+ - name: "paid"
+ type: "boolean"
+ description: ""
+
+ - name: "shipping"
+ type: "object"
+ description: ""
+
+ - name: "calculated_statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "invoice"
+ type: "string"
+ description: ""
+
+ - name: "amount_captured"
+ type: "integer"
+ description: ""
+
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "customer"
+ type: "string"
+ description: ""
+
+ - name: "payment_intent"
+ type: "string"
+ description: ""
+
+ - name: "source_transfer"
+ type: "string"
+ description: ""
+
+ - name: "statement_description"
+ type: "string"
+ description: ""
+
+ - name: "refunds"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "items"
+ type: ""
+ description: ""
+
+ - name: "application_fee"
+ type: "string"
+ description: ""
+
+ - name: "card"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+
+ - name: "address_state"
+ type: "string"
+ description: ""
+
+ - name: "id"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+
+ - name: "address_line1"
+ type: "string"
+ description: ""
+
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+
+ - name: "tokenization_method"
+ type: "string"
+ description: ""
+
+ - name: "address_country"
+ type: "string"
+ description: ""
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "address_city"
+ type: "string"
+ description: ""
+
+ - name: "last4"
+ type: "string"
+ description: ""
+
+ - name: "address_line2"
+ type: "string"
+ description: ""
+
+ - name: "customer"
+ type: "string"
+ description: ""
+
+ - name: "brand"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "funding"
+ type: "string"
+ description: ""
+
+ - name: "address_zip"
+ type: "string"
+ description: ""
+
+ - name: "address_zip_check"
+ type: "string"
+ description: ""
+
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+
+ - name: "payment_method_details"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "card_present"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "amount_authorized"
+ type: "integer"
+ description: ""
+
+ - name: "brand"
+ type: "string"
+ description: ""
+
+ - name: "cardholder_name"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "emv_auth_data"
+ type: "string"
+ description: ""
+
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "funding"
+ type: "string"
+ description: ""
+
+ - name: "generated_card"
+ type: "string"
+ description: ""
+
+ - name: "last4"
+ type: "string"
+ description: ""
+
+ - name: "network"
+ type: "string"
+ description: ""
+
+ - name: "overcapture_supported"
+ type: "boolean"
+ description: ""
+
+ - name: "read_method"
+ type: "string"
+ description: ""
+
+ - name: "receipt"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "account_type"
+ type: "string"
+ description: ""
+
+ - name: "application_cryptogram"
+ type: "string"
+ description: ""
+
+ - name: "application_preferred_name"
+ type: "string"
+ description: ""
+
+ - name: "authorization_code"
+ type: "string"
+ description: ""
+
+ - name: "authorization_response_code"
+ type: "string"
+ description: ""
+
+ - name: "cardholder_verification_method"
+ type: "string"
+ description: ""
+
+ - name: "dedicated_file_name"
+ type: "string"
+ description: ""
+
+ - name: "terminal_verification_results"
+ type: "string"
+ description: ""
+
+ - name: "transaction_status_information"
+ type: "string"
+ description: ""
+
+
+
+ - name: "ach_credit_transfer"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "account_number"
+ type: "string"
+ description: ""
+
+ - name: "bank_name"
+ type: "string"
+ description: ""
+
+ - name: "routing_number"
+ type: "string"
+ description: ""
+
+ - name: "swift_code"
+ type: "string"
+ description: ""
+
+
+ - name: "ach_debit"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "account_holder_type"
+ type: "string"
+ description: ""
+
+ - name: "bank_name"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "last4"
+ type: "string"
+ description: ""
+
+ - name: "routing_number"
+ type: "string"
+ description: ""
+
+
+ - name: "alipay"
+ type: "object"
+ description: ""
+
+ - name: "bancontact"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank_code"
+ type: "string"
+ description: ""
+
+ - name: "bank_name"
+ type: "string"
+ description: ""
+
+ - name: "bic"
+ type: "string"
+ description: ""
+
+ - name: "iban_last4"
+ type: "string"
+ description: ""
+
+ - name: "preferred_language"
+ type: "string"
+ description: ""
+
+ - name: "verified_name"
+ type: "string"
+ description: ""
+
+
+ - name: "card"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "brand"
+ type: "string"
+ description: ""
+
+ - name: "checks"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+
+ - name: "address_postal_code_check"
+ type: "string"
+ description: ""
+
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "funding"
+ type: "string"
+ description: ""
+
+ - name: "installments"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "plan"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "count"
+ type: "integer"
+ description: ""
+
+ - name: "interval"
+ type: "string"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+
+
+ - name: "last4"
+ type: "string"
+ description: ""
+
+ - name: "network"
+ type: "string"
+ description: ""
+
+ - name: "three_d_secure"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "authenticated"
+ type: "boolean"
+ description: ""
+
+ - name: "succeeded"
+ type: "boolean"
+ description: ""
+
+ - name: "version"
+ type: "string"
+ description: ""
+
+
+ - name: "wallet"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "amex_express_checkout"
+ type: "object"
+ description: ""
+
+ - name: "apple_pay"
+ type: "object"
+ description: ""
+
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+
+ - name: "google_pay"
+ type: "object"
+ description: ""
+
+ - name: "masterpass"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "billing_address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "line1"
+ type: "string"
+ description: ""
+
+ - name: "line2"
+ type: "string"
+ description: ""
+
+ - name: "postal_code"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+
+ - name: "email"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "shipping_address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "line1"
+ type: "string"
+ description: ""
+
+ - name: "line2"
+ type: "string"
+ description: ""
+
+ - name: "postal_code"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+
+
+ - name: "samsung_pay"
+ type: "object"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+ - name: "visa_checkout"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "billing_address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "line1"
+ type: "string"
+ description: ""
+
+ - name: "line2"
+ type: "string"
+ description: ""
+
+ - name: "postal_code"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+
+ - name: "email"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "shipping_address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "line1"
+ type: "string"
+ description: ""
+
+ - name: "line2"
+ type: "string"
+ description: ""
+
+ - name: "postal_code"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+
+
+
+ - name: "card_present"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "brand"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "emv_auth_data"
+ type: "string"
+ description: ""
+
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "funding"
+ type: "string"
+ description: ""
+
+ - name: "generated_card"
+ type: "string"
+ description: ""
+
+ - name: "last4"
+ type: "string"
+ description: ""
+
+ - name: "network"
+ type: "string"
+ description: ""
+
+ - name: "read_method"
+ type: "string"
+ description: ""
+
+ - name: "receipt"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "application_cryptogram"
+ type: "string"
+ description: ""
+
+ - name: "application_preferred_name"
+ type: "string"
+ description: ""
+
+ - name: "authorization_code"
+ type: "string"
+ description: ""
+
+ - name: "authorization_response_code"
+ type: "string"
+ description: ""
+
+ - name: "cardholder_verification_method"
+ type: "string"
+ description: ""
+
+ - name: "dedicated_file_name"
+ type: "string"
+ description: ""
+
+ - name: "terminal_verification_results"
+ type: "string"
+ description: ""
+
+ - name: "transaction_status_information"
+ type: "string"
+ description: ""
+
+
+
+ - name: "eps"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "verified_name"
+ type: "string"
+ description: ""
+
+
+ - name: "giropay"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank_code"
+ type: "string"
+ description: ""
+
+ - name: "bank_name"
+ type: "string"
+ description: ""
+
+ - name: "bic"
+ type: "string"
+ description: ""
+
+ - name: "verified_name"
+ type: "string"
+ description: ""
+
+
+ - name: "ideal"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank"
+ type: "string"
+ description: ""
+
+ - name: "bic"
+ type: "string"
+ description: ""
+
+ - name: "iban_last4"
+ type: "string"
+ description: ""
+
+ - name: "verified_name"
+ type: "string"
+ description: ""
+
+
+ - name: "klarna"
+ type: "object"
+ description: ""
+
+ - name: "multibanco"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "entity"
+ type: "string"
+ description: ""
+
+ - name: "reference"
+ type: "string"
+ description: ""
+
+
+ - name: "p24"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "reference"
+ type: "string"
+ description: ""
+
+ - name: "verified_name"
+ type: "string"
+ description: ""
+
+
+ - name: "sepa_debit"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank_code"
+ type: "string"
+ description: ""
+
+ - name: "branch_code"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "last4"
+ type: "string"
+ description: ""
+
+ - name: "mandate"
+ type: "string"
+ description: ""
+
+
+ - name: "sofort"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank_code"
+ type: "string"
+ description: ""
+
+ - name: "bank_name"
+ type: "string"
+ description: ""
+
+ - name: "bic"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "iban_last4"
+ type: "string"
+ description: ""
+
+ - name: "verified_name"
+ type: "string"
+ description: ""
+
+
+ - name: "stripe_account"
+ type: "object"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+ - name: "wechat"
+ type: "object"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "address_state"
+ type: "string"
+ description: ""
+
+ - name: "id"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+
+ - name: "address_line1"
+ type: "string"
+ description: ""
+
+ - name: "tokenization_method"
+ type: "string"
+ description: ""
+
+ - name: "address_country"
+ type: "string"
+ description: ""
+
+ - name: "address_city"
+ type: "string"
+ description: ""
+
+ - name: "address_line2"
+ type: "string"
+ description: ""
+
+ - name: "customer"
+ type: "string"
+ description: ""
+
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "address_zip"
+ type: "string"
+ description: ""
+
+ - name: "address_zip_check"
+ type: "string"
+ description: ""
+
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+
+ - name: "balance_transaction"
+ type: "string"
+ description: ""
+
+ - name: "amount_refunded"
+ type: "integer"
+ description: ""
+
+ - name: "failure_code"
+ type: "string"
+ description: ""
+
+ - name: "dispute"
+ type: "string"
+ description: ""
+
+ - name: "description"
+ type: "string"
+ description: ""
+
+ - name: "updated"
+ type: "string"
+ description: ""
+
+ - name: "updated_by_event_type"
+ type: "string"
+ description: "Description of the event"
+
+
+
+ - name: "charges"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "fraud_details"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "stripe_report"
+ type: "string"
+ description: ""
+
+
+ - name: "transfer_group"
+ type: "string"
+ description: ""
+
+ - name: "on_behalf_of"
+ type: "string"
+ description: ""
+
+ - name: "review"
+ type: "string"
+ description: ""
+
+ - name: "failure_message"
+ type: "string"
+ description: ""
+
+ - name: "receipt_email"
+ type: "string"
+ description: ""
+
+ - name: "application_fee_amount"
+ type: "integer"
+ description: ""
+
+ - name: "disputed"
+ type: "boolean"
+ description: ""
+
+ - name: "payment_method"
+ type: "string"
+ description: ""
+
+ - name: "billing_details"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "line1"
+ type: "string"
+ description: ""
+
+ - name: "line2"
+ type: "string"
+ description: ""
+
+ - name: "postal_code"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+
+ - name: "email"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "phone"
+ type: "string"
+ description: ""
+
+
+ - name: "statement_descriptor_suffix"
+ type: "string"
+ description: ""
+
+ - name: "transfer_data"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "destination"
+ type: "string"
+ description: ""
+
+
+ - name: "receipt_url"
+ type: "string"
+ description: ""
+
+ - name: "statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "source"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+ - name: "address_zip"
+ type: "string"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "card"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "last4"
+ type: "string"
+ description: ""
+
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+
+ - name: "tokenization_method"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+
+ - name: "three_d_secure"
+ type: "string"
+ description: ""
+
+ - name: "funding"
+ type: "string"
+ description: ""
+
+ - name: "brand"
+ type: "string"
+ description: ""
+
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "address_zip_check"
+ type: "string"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+
+ - name: "statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "id"
+ type: "string"
+ description: ""
+
+ - name: "address_country"
+ type: "string"
+ description: ""
+
+ - name: "funding"
+ type: "string"
+ description: ""
+
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+
+ - name: "last4"
+ type: "string"
+ description: ""
+
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+
+ - name: "brand"
+ type: "string"
+ description: ""
+
+ - name: "address_line2"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+
+ - name: "usage"
+ type: "string"
+ description: ""
+
+ - name: "address_line1"
+ type: "string"
+ description: ""
+
+ - name: "owner"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "verified_address"
+ type: "string"
+ description: ""
+
+ - name: "email"
+ type: "string"
+ description: ""
+
+ - name: "address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "line2"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+ - name: "city"
+ type: "string"
+ description: ""
+
+ - name: "postal_code"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "line1"
+ type: "string"
+ description: ""
+
+
+ - name: "verified_email"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "phone"
+ type: "string"
+ description: ""
+
+ - name: "verified_name"
+ type: "string"
+ description: ""
+
+ - name: "verified_phone"
+ type: "string"
+ description: ""
+
+
+ - name: "tokenization_method"
+ type: "string"
+ description: ""
+
+ - name: "client_secret"
+ type: "string"
+ description: ""
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "address_city"
+ type: "string"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+
+ - name: "receiver"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "refund_attributes_method"
+ type: "string"
+ description: ""
+
+ - name: "amount_returned"
+ type: "integer"
+ description: ""
+
+ - name: "amount_received"
+ type: "integer"
+ description: ""
+
+ - name: "refund_attributes_status"
+ type: "string"
+ description: ""
+
+ - name: "address"
+ type: "string"
+ description: ""
+
+ - name: "amount_charged"
+ type: "integer"
+ description: ""
+
+
+ - name: "flow"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "ach_credit_transfer"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank_name"
+ type: "string"
+ description: ""
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "routing_number"
+ type: "string"
+ description: ""
+
+ - name: "swift_code"
+ type: "string"
+ description: ""
+
+ - name: "refund_account_holder_type"
+ type: "string"
+ description: ""
+
+ - name: "refund_account_holder_name"
+ type: "string"
+ description: ""
+
+ - name: "refund_account_number"
+ type: "string"
+ description: ""
+
+ - name: "refund_routing_number"
+ type: "string"
+ description: ""
+
+ - name: "account_number"
+ type: "string"
+ description: ""
+
+
+ - name: "customer"
+ type: "string"
+ description: ""
+
+ - name: "address_zip_check"
+ type: "string"
+ description: ""
+
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "created"
+ type: "string"
+ description: ""
+
+ - name: "address_state"
+ type: "string"
+ description: ""
+
+ - name: "alipay"
+ type: "object"
+ description: ""
+
+ - name: "bancontact"
+ type: "object"
+ description: ""
+
+ - name: "eps"
+ type: "object"
+ description: ""
+
+ - name: "ideal"
+ type: "object"
+ description: ""
+
+ - name: "multibanco"
+ type: "object"
+ description: ""
+
+ - name: "redirect"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "failure_reason"
+ type: "string"
+ description: ""
+
+ - name: "return_url"
+ type: "string"
+ description: ""
+
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "url"
+ type: "string"
+ description: ""
+
+
+
+ - name: "destination"
+ type: "string"
+ description: ""
+
+ - name: "id"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "outcome"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "type"
+ type: "string"
+ description: ""
+
+ - name: "seller_message"
+ type: "string"
+ description: ""
+
+ - name: "reason"
+ type: "string"
+ description: ""
+
+ - name: "risk_level"
+ type: "string"
+ description: ""
+
+ - name: "network_status"
+ type: "string"
+ description: ""
+
+ - name: "risk_score"
+ type: "integer"
+ description: ""
+
+
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "created"
+ type: "string"
+ description: ""
+
+ - name: "order"
+ type: "string"
+ description: ""
+
+ - name: "application"
+ type: "string"
+ description: ""
+
+ - name: "refunded"
+ type: "boolean"
+ description: ""
+
+ - name: "receipt_number"
+ type: "string"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "captured"
+ type: "boolean"
+ description: ""
+
+ - name: "paid"
+ type: "boolean"
+ description: ""
+
+ - name: "shipping"
+ type: "object"
+ description: ""
+
+ - name: "calculated_statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "invoice"
+ type: "string"
+ description: ""
+
+ - name: "amount_captured"
+ type: "integer"
+ description: ""
+
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "customer"
+ type: "string"
+ description: ""
+
+ - name: "payment_intent"
+ type: "string"
+ description: ""
+
+ - name: "source_transfer"
+ type: "string"
+ description: ""
+
+ - name: "statement_description"
+ type: "string"
+ description: ""
+
+ - name: "refunds"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "items"
+ type: ""
+ description: ""
+
+ - name: "application_fee"
+ type: "string"
+ description: ""
+
+ - name: "card"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+
+ - name: "address_state"
+ type: "string"
+ description: ""
+
+ - name: "id"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+
+ - name: "address_line1"
+ type: "string"
+ description: ""
+
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+
+ - name: "tokenization_method"
+ type: "string"
+ description: ""
+
+ - name: "address_country"
+ type: "string"
+ description: ""
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "address_city"
+ type: "string"
+ description: ""
+
+ - name: "last4"
+ type: "string"
+ description: ""
+
+ - name: "address_line2"
+ type: "string"
+ description: ""
+
+ - name: "customer"
+ type: "string"
+ description: ""
+
+ - name: "brand"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "funding"
+ type: "string"
+ description: ""
+
+ - name: "address_zip"
+ type: "string"
+ description: ""
+
+ - name: "address_zip_check"
+ type: "string"
+ description: ""
+
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+
+ - name: "payment_method_details"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "card_present"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "amount_authorized"
+ type: "integer"
+ description: ""
+
+ - name: "brand"
+ type: "string"
+ description: ""
+
+ - name: "cardholder_name"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "emv_auth_data"
+ type: "string"
+ description: ""
+
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "funding"
+ type: "string"
+ description: ""
+
+ - name: "generated_card"
+ type: "string"
+ description: ""
+
+ - name: "last4"
+ type: "string"
+ description: ""
+
+ - name: "network"
+ type: "string"
+ description: ""
+
+ - name: "overcapture_supported"
+ type: "boolean"
+ description: ""
+
+ - name: "read_method"
+ type: "string"
+ description: ""
+
+ - name: "receipt"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "account_type"
+ type: "string"
+ description: ""
+
+ - name: "application_cryptogram"
+ type: "string"
+ description: ""
+
+ - name: "application_preferred_name"
+ type: "string"
+ description: ""
+
+ - name: "authorization_code"
+ type: "string"
+ description: ""
+
+ - name: "authorization_response_code"
+ type: "string"
+ description: ""
+
+ - name: "cardholder_verification_method"
+ type: "string"
+ description: ""
+
+ - name: "dedicated_file_name"
+ type: "string"
+ description: ""
+
+ - name: "terminal_verification_results"
+ type: "string"
+ description: ""
+
+ - name: "transaction_status_information"
+ type: "string"
+ description: ""
+
+
+
+ - name: "ach_credit_transfer"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "account_number"
+ type: "string"
+ description: ""
+
+ - name: "bank_name"
+ type: "string"
+ description: ""
+
+ - name: "routing_number"
+ type: "string"
+ description: ""
+
+ - name: "swift_code"
+ type: "string"
+ description: ""
+
+
+ - name: "ach_debit"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "account_holder_type"
+ type: "string"
+ description: ""
+
+ - name: "bank_name"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "last4"
+ type: "string"
+ description: ""
+
+ - name: "routing_number"
+ type: "string"
+ description: ""
+
+
+ - name: "alipay"
+ type: "object"
+ description: ""
+
+ - name: "bancontact"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank_code"
+ type: "string"
+ description: ""
+
+ - name: "bank_name"
+ type: "string"
+ description: ""
+
+ - name: "bic"
+ type: "string"
+ description: ""
+
+ - name: "iban_last4"
+ type: "string"
+ description: ""
+
+ - name: "preferred_language"
+ type: "string"
+ description: ""
+
+ - name: "verified_name"
+ type: "string"
+ description: ""
+
+
+ - name: "card"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "brand"
+ type: "string"
+ description: ""
+
+ - name: "checks"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+
+ - name: "address_postal_code_check"
+ type: "string"
+ description: ""
+
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "funding"
+ type: "string"
+ description: ""
+
+ - name: "installments"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "plan"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "count"
+ type: "integer"
+ description: ""
+
+ - name: "interval"
+ type: "string"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+
+
+ - name: "last4"
+ type: "string"
+ description: ""
+
+ - name: "network"
+ type: "string"
+ description: ""
+
+ - name: "three_d_secure"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "authenticated"
+ type: "boolean"
+ description: ""
+
+ - name: "succeeded"
+ type: "boolean"
+ description: ""
+
+ - name: "version"
+ type: "string"
+ description: ""
+
+
+ - name: "wallet"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "amex_express_checkout"
+ type: "object"
+ description: ""
+
+ - name: "apple_pay"
+ type: "object"
+ description: ""
+
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+
+ - name: "google_pay"
+ type: "object"
+ description: ""
+
+ - name: "masterpass"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "billing_address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "line1"
+ type: "string"
+ description: ""
+
+ - name: "line2"
+ type: "string"
+ description: ""
+
+ - name: "postal_code"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+
+ - name: "email"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "shipping_address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "line1"
+ type: "string"
+ description: ""
+
+ - name: "line2"
+ type: "string"
+ description: ""
+
+ - name: "postal_code"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+
+
+ - name: "samsung_pay"
+ type: "object"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+ - name: "visa_checkout"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "billing_address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "line1"
+ type: "string"
+ description: ""
+
+ - name: "line2"
+ type: "string"
+ description: ""
+
+ - name: "postal_code"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+
+ - name: "email"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "shipping_address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "line1"
+ type: "string"
+ description: ""
+
+ - name: "line2"
+ type: "string"
+ description: ""
+
+ - name: "postal_code"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+
+
+
+ - name: "card_present"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "brand"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "emv_auth_data"
+ type: "string"
+ description: ""
+
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "funding"
+ type: "string"
+ description: ""
+
+ - name: "generated_card"
+ type: "string"
+ description: ""
+
+ - name: "last4"
+ type: "string"
+ description: ""
+
+ - name: "network"
+ type: "string"
+ description: ""
+
+ - name: "read_method"
+ type: "string"
+ description: ""
+
+ - name: "receipt"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "application_cryptogram"
+ type: "string"
+ description: ""
+
+ - name: "application_preferred_name"
+ type: "string"
+ description: ""
+
+ - name: "authorization_code"
+ type: "string"
+ description: ""
+
+ - name: "authorization_response_code"
+ type: "string"
+ description: ""
+
+ - name: "cardholder_verification_method"
+ type: "string"
+ description: ""
+
+ - name: "dedicated_file_name"
+ type: "string"
+ description: ""
+
+ - name: "terminal_verification_results"
+ type: "string"
+ description: ""
+
+ - name: "transaction_status_information"
+ type: "string"
+ description: ""
+
+
+
+ - name: "eps"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "verified_name"
+ type: "string"
+ description: ""
+
+
+ - name: "giropay"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank_code"
+ type: "string"
+ description: ""
+
+ - name: "bank_name"
+ type: "string"
+ description: ""
+
+ - name: "bic"
+ type: "string"
+ description: ""
+
+ - name: "verified_name"
+ type: "string"
+ description: ""
+
+
+ - name: "ideal"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank"
+ type: "string"
+ description: ""
+
+ - name: "bic"
+ type: "string"
+ description: ""
+
+ - name: "iban_last4"
+ type: "string"
+ description: ""
+
+ - name: "verified_name"
+ type: "string"
+ description: ""
+
+
+ - name: "klarna"
+ type: "object"
+ description: ""
+
+ - name: "multibanco"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "entity"
+ type: "string"
+ description: ""
+
+ - name: "reference"
+ type: "string"
+ description: ""
+
+
+ - name: "p24"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "reference"
+ type: "string"
+ description: ""
+
+ - name: "verified_name"
+ type: "string"
+ description: ""
+
+
+ - name: "sepa_debit"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank_code"
+ type: "string"
+ description: ""
+
+ - name: "branch_code"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "last4"
+ type: "string"
+ description: ""
+
+ - name: "mandate"
+ type: "string"
+ description: ""
+
+
+ - name: "sofort"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank_code"
+ type: "string"
+ description: ""
+
+ - name: "bank_name"
+ type: "string"
+ description: ""
+
+ - name: "bic"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "iban_last4"
+ type: "string"
+ description: ""
+
+ - name: "verified_name"
+ type: "string"
+ description: ""
+
+
+ - name: "stripe_account"
+ type: "object"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+ - name: "wechat"
+ type: "object"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "address_state"
+ type: "string"
+ description: ""
+
+ - name: "id"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+
+ - name: "address_line1"
+ type: "string"
+ description: ""
+
+ - name: "tokenization_method"
+ type: "string"
+ description: ""
+
+ - name: "address_country"
+ type: "string"
+ description: ""
+
+ - name: "address_city"
+ type: "string"
+ description: ""
+
+ - name: "address_line2"
+ type: "string"
+ description: ""
+
+ - name: "customer"
+ type: "string"
+ description: ""
+
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "address_zip"
+ type: "string"
+ description: ""
+
+ - name: "address_zip_check"
+ type: "string"
+ description: ""
+
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+
+ - name: "balance_transaction"
+ type: "string"
+ description: ""
+
+ - name: "amount_refunded"
+ type: "integer"
+ description: ""
+
+ - name: "failure_code"
+ type: "string"
+ description: ""
+
+ - name: "dispute"
+ type: "string"
+ description: ""
+
+ - name: "description"
+ type: "string"
+ description: ""
+
+ - name: "updated"
+ type: "string"
+ description: ""
+
+ - name: "updated_by_event_type"
+ type: "string"
+ description: "Description of the event"
+
+
+
+ - name: "client_secret"
+ type: "string"
+ description: ""
+
+ - name: "confirmation_method"
+ type: "string"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "customer"
+ type: "string"
+ description: ""
+
+ - name: "description"
+ type: "string"
+ description: ""
+
+ - name: "invoice"
+ type: "string"
+ description: ""
+
+ - name: "last_payment_error"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "charge"
+ type: "string"
+ description: ""
+
+ - name: "code"
+ type: "string"
+ description: ""
+
+ - name: "decline_code"
+ type: "string"
+ description: ""
+
+ - name: "doc_url"
+ type: "string"
+ description: ""
+
+ - name: "message"
+ type: "string"
+ description: ""
+
+ - name: "param"
+ type: "string"
+ description: ""
+
+ - name: "payment_method_type"
+ type: "string"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "next_action"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "alipay_handle_redirect"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "native_data"
+ type: "string"
+ description: ""
+
+ - name: "native_url"
+ type: "string"
+ description: ""
+
+ - name: "return_url"
+ type: "string"
+ description: ""
+
+ - name: "url"
+ type: "string"
+ description: ""
+
+
+ - name: "boleto_display_details"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "expires_at"
+ type: "string"
+ description: ""
+
+ - name: "hosted_voucher_url"
+ type: "string"
+ description: ""
+
+ - name: "number"
+ type: "string"
+ description: ""
+
+ - name: "pdf"
+ type: "string"
+ description: ""
+
+
+ - name: "oxxo_display_details"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "expires_after"
+ type: "string"
+ description: ""
+
+ - name: "hosted_voucher_url"
+ type: "string"
+ description: ""
+
+ - name: "number"
+ type: "string"
+ description: ""
+
+
+ - name: "redirect_to_url"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "return_url"
+ type: "string"
+ description: ""
+
+ - name: "url"
+ type: "string"
+ description: ""
+
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+ - name: "use_stripe_sdk"
+ type: "object"
+ description: ""
+
+ - name: "verify_with_microdeposits"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "arrival_date"
+ type: "string"
+ description: ""
+
+ - name: "hosted_verification_url"
+ type: "string"
+ description: ""
+
+
+ - name: "wechat_pay_display_qr_code"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "data"
+ type: "string"
+ description: ""
+
+ - name: "image_data_url"
+ type: "string"
+ description: ""
+
+ - name: "image_url_png"
+ type: "string"
+ description: ""
+
+ - name: "image_url_svg"
+ type: "string"
+ description: ""
+
+
+ - name: "wechat_pay_redirect_to_android_app"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "app_id"
+ type: "string"
+ description: ""
+
+ - name: "nonce_str"
+ type: "string"
+ description: ""
+
+ - name: "package"
+ type: "string"
+ description: ""
+
+ - name: "partner_id"
+ type: "string"
+ description: ""
+
+ - name: "prepay_id"
+ type: "string"
+ description: ""
+
+ - name: "sign"
+ type: "string"
+ description: ""
+
+ - name: "timestamp"
+ type: "string"
+ description: ""
+
+
+ - name: "wechat_pay_redirect_to_ios_app"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "native_url"
+ type: "string"
+ description: ""
+
+
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "on_behalf_of"
+ type: "string"
+ description: ""
+
+ - name: "payment_method"
+ type: "string"
+ description: ""
+
+ - name: "payment_method_options"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "acss_debit"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "mandate_options"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "custom_mandate_url"
+ type: "string"
+ description: ""
+
+ - name: "interval_description"
+ type: "string"
+ description: ""
+
+ - name: "payment_schedule"
+ type: "string"
+ description: ""
+
+ - name: "transaction_type"
+ type: "string"
+ description: ""
+
+
+
+ - name: "afterpay_clearpay"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "reference"
+ type: "string"
+ description: ""
+
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "alipay"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "au_becs_debit"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "bacs_debit"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "bancontact"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+ - name: "preferred_language"
+ type: "string"
+ description: ""
+
+
+ - name: "boleto"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+ - name: "expires_after_days"
+ type: "integer"
+ description: ""
+
+
+ - name: "card"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "installments"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "available_plans"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "count"
+ type: "integer"
+ description: ""
+
+ - name: "interval"
+ type: "string"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+
+ - name: "enabled"
+ type: "boolean"
+ description: ""
+
+ - name: "plan"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "count"
+ type: "integer"
+ description: ""
+
+ - name: "interval"
+ type: "string"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+
+
+ - name: "network"
+ type: "string"
+ description: ""
+
+ - name: "request_three_d_secure"
+ type: "string"
+ description: ""
+
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "card_present"
+ type: "object"
+ description: ""
+
+ - name: "eps"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "fps"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "giropay"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "grabpay"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "ideal"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "interac_present"
+ type: "object"
+ description: ""
+
+ - name: "klarna"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "preferred_locale"
+ type: "string"
+ description: ""
+
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "oxxo"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "expires_after_days"
+ type: "integer"
+ description: ""
+
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "p24"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "sepa_debit"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "mandate_options"
+ type: "object"
+ description: ""
+
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "sofort"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "preferred_language"
+ type: "string"
+ description: ""
+
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "wechat_pay"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "app_id"
+ type: "string"
+ description: ""
+
+ - name: "client"
+ type: "string"
+ description: ""
+
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+
+ - name: "payment_method_types"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "items"
+ type: ""
+ description: ""
+
+ - name: "processing"
+ type: "object"
+ description: ""
+
+ - name: "receipt_email"
+ type: "string"
+ description: ""
+
+ - name: "review"
+ type: "string"
+ description: ""
+
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+ - name: "shipping"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "line2"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+ - name: "city"
+ type: "string"
+ description: ""
+
+ - name: "postal_code"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "line1"
+ type: "string"
+ description: ""
+
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "phone"
+ type: "string"
+ description: ""
+
+ - name: "carrier"
+ type: "string"
+ description: ""
+
+ - name: "tracking_number"
+ type: "string"
+ description: ""
+
+
+ - name: "source"
+ type: "string"
+ description: ""
+
+ - name: "statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "statement_descriptor_suffix"
+ type: "string"
+ description: ""
+
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "transfer_data"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "destination"
+ type: "string"
+ description: ""
+
+
+ - name: "transfer_group"
+ type: "string"
+ description: ""
+
+ - name: "updated"
+ type: "string"
+ description: ""
+
+ - name: "updated_by_event_type"
+ type: "string"
+ description: "Description of the event"
+---
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v2/payout_transactions.md b/archive/_integration-schemas/stripe/v2/payout_transactions.md
similarity index 100%
rename from _integration-schemas/stripe/v2/payout_transactions.md
rename to archive/_integration-schemas/stripe/v2/payout_transactions.md
diff --git a/archive/_integration-schemas/stripe/v2/payouts.md b/archive/_integration-schemas/stripe/v2/payouts.md
new file mode 100644
index 000000000..c66c0ae4c
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v2/payouts.md
@@ -0,0 +1,200 @@
+---
+tap: "stripe"
+version: "2"
+key: ""
+
+name: "payouts"
+doc-link: "https://stripe.com/docs/api/payouts"
+singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/payouts.json
+description: |
+ The `{{ table.name }}` table contains info about payouts, which occur when you receive funds from {{ integration.display_name }} or initiate a payout to a bank account of the debit card of a connected {{ integration.display_name }} account.
+
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all payouts"
+ doc-link: "https://stripe.com/docs/api/payouts/list"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The payout ID."
+ foreign-key-id: "payout-id"
+
+ - name: "created"
+ type: "string"
+ replication-key: true
+ description: "The time at which the payout was created. Measured in seconds since the Unix epoch."
+
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "amount_reversed"
+ type: "integer"
+ description: ""
+
+ - name: "arrival_date"
+ type: "string"
+ description: ""
+
+ - name: "automatic"
+ type: "boolean"
+ description: ""
+
+ - name: "balance_transaction"
+ type: "string"
+ description: "The ID of the balance transaction that describes the impact of this payout on your account balance."
+ foreign-key-id: "balance-transaction-id"
+
+ - name: "bank_account"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "routing_number"
+ type: "string"
+ description: ""
+
+ - name: "account_holder_type"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "id"
+ type: "string"
+ description: ""
+
+ - name: "bank_name"
+ type: "string"
+ description: ""
+
+ - name: "last4"
+ type: "string"
+ description: ""
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "account_holder_name"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "date"
+ type: "string"
+ description: ""
+
+ - name: "description"
+ type: "string"
+ description: ""
+
+ - name: "destination"
+ type: "string"
+ description: ""
+
+ - name: "failure_balance_transaction"
+ type: "string"
+ description: "If the payout failed or was canceled, this will be the ID of the balance transaction that reversed the initial balance transaction, and puts the funds from the failed payout back in your balance."
+ foreign-key-id: "balance-transaction-id"
+
+ - name: "failure_code"
+ type: "string"
+ description: ""
+
+ - name: "failure_message"
+ type: "string"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "method"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "original_payout"
+ type: "string"
+ description: ""
+
+ - name: "recipient"
+ type: "string"
+ description: ""
+
+ - name: "reversed_by"
+ type: "string"
+ description: ""
+
+ - name: "source_transaction"
+ type: "string"
+ description: ""
+
+ - name: "source_type"
+ type: "string"
+ description: ""
+
+ - name: "statement_description"
+ type: "string"
+ description: ""
+
+ - name: "statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "transfer_group"
+ type: "string"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+ - name: "updated"
+ type: "string"
+ description: ""
+
+ - name: "updated_by_event_type"
+ type: "string"
+ description: "Description of the event"
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/stripe/v2/plans.md b/archive/_integration-schemas/stripe/v2/plans.md
new file mode 100644
index 000000000..79fe7fccc
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v2/plans.md
@@ -0,0 +1,135 @@
+---
+tap: "stripe"
+version: "2"
+key: ""
+
+name: "plans"
+doc-link: "https://stripe.com/docs/api/plans"
+singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/plans.json
+description: |
+ The `{{ table.name }}` table contains info about the plans in your {{ integration.display_name }} account. A plan defines the base price, currency, and billing cycle for subscriptions.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all plans"
+ doc-link: "https://stripe.com/docs/api/plans/list"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The plan ID."
+ foreign-key-id: "plan-id"
+
+ - name: "created"
+ type: "string"
+ replication-key: true
+ description: "Time at which the plan was created. Measured in seconds since the Unix epoch."
+
+ - name: "active"
+ type: "boolean"
+ description: ""
+
+ - name: "aggregate_usage"
+ type: "string"
+ description: ""
+
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "amount_decimal"
+ type: "string"
+ description: ""
+
+ - name: "billing_scheme"
+ type: "string"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "interval"
+ type: "string"
+ description: ""
+
+ - name: "interval_count"
+ type: "integer"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "nickname"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "product"
+ type: "string"
+ description: "The product whose pricing this plan determines."
+ foreign-key-id: "product-id"
+
+ - name: "statement_description"
+ type: "string"
+ description: ""
+
+ - name: "statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "tiers"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "flat_amount"
+ type: "integer"
+ description: ""
+
+ - name: "unit_amount"
+ type: "integer"
+ description: ""
+
+ - name: "up_to"
+ type: "integer"
+ description: ""
+
+
+ - name: "tiers_mode"
+ type: "string"
+ description: ""
+
+ - name: "transform_usage"
+ type: "object"
+ description: ""
+
+ - name: "trial_period_days"
+ type: "integer"
+ description: ""
+
+ - name: "updated"
+ type: "string"
+ description: ""
+
+ - name: "updated_by_event_type"
+ type: "string"
+ description: "Description of the event"
+
+ - name: "usage_type"
+ type: "string"
+ description: ""
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/stripe/v2/products.md b/archive/_integration-schemas/stripe/v2/products.md
new file mode 100644
index 000000000..b916a64ca
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v2/products.md
@@ -0,0 +1,134 @@
+---
+tap: "stripe"
+version: "2"
+key: ""
+
+name: "products"
+doc-link: "https://stripe.com/docs/api/products"
+singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/products.json
+description: |
+ The `{{ table.name }}` table contains info about the products in your {{ integration.display_name }} account.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all products"
+ doc-link: "https://stripe.com/docs/api/products/list"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The product ID."
+ foreign-key-id: "product-id"
+
+ - name: "created"
+ type: "string"
+ replication-key: true
+ description: "Time at which the product was created. Measured in seconds since the Unix epoch."
+
+ - name: "active"
+ type: "boolean"
+ description: ""
+
+ - name: "attributes"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "items"
+ type: "string"
+ description: ""
+
+ - name: "caption"
+ type: "string"
+ description: ""
+
+ - name: "deactivate_on"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "items"
+ type: "string"
+ description: ""
+
+ - name: "description"
+ type: "string"
+ description: ""
+
+ - name: "images"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "items"
+ type: "string"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "package_dimensions"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "width"
+ type: "number"
+ description: ""
+
+ - name: "length"
+ type: "number"
+ description: ""
+
+ - name: "weight"
+ type: "number"
+ description: ""
+
+ - name: "height"
+ type: "number"
+ description: ""
+
+
+ - name: "shippable"
+ type: "boolean"
+ description: ""
+
+ - name: "statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "tax_code"
+ type: "string"
+ description: "A tax code ID."
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+ - name: "unit_label"
+ type: "string"
+ description: ""
+
+ - name: "updated"
+ type: "string"
+ description: ""
+
+ - name: "updated_by_event_type"
+ type: "string"
+ description: "Description of the event"
+
+ - name: "url"
+ type: "string"
+ description: ""
+---
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v2/subscription_items.md b/archive/_integration-schemas/stripe/v2/subscription_items.md
similarity index 100%
rename from _integration-schemas/stripe/v2/subscription_items.md
rename to archive/_integration-schemas/stripe/v2/subscription_items.md
diff --git a/archive/_integration-schemas/stripe/v2/subscriptions.md b/archive/_integration-schemas/stripe/v2/subscriptions.md
new file mode 100644
index 000000000..edae87dba
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v2/subscriptions.md
@@ -0,0 +1,442 @@
+---
+tap: "stripe"
+version: "2"
+key: ""
+
+name: "subscriptions"
+doc-link: "https://stripe.com/docs/api/subscriptions"
+singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/subscriptions.json
+description: |
+ The `{{ table.name }}` table contains info about subscriptions, which allow you to charge a customer on a recurring basis. A subscription ties a customer to a particular [plan](#plans).
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List subscriptions"
+ doc-link: "https://stripe.com/docs/api/subscriptions/list"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The subscription ID."
+ foreign-key-id: "subscription-id"
+
+ - name: "created"
+ type: "string"
+ replication-key: true
+ description: "The time the subscription was created. Measured in second since the Unix epoch."
+
+ - name: "application_fee_percent"
+ type: "number"
+ description: ""
+
+ - name: "billing"
+ type: "string"
+ description: ""
+
+ - name: "billing_cycle_anchor"
+ type: "string"
+ description: ""
+
+ - name: "billing_thresholds"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "amount_gte"
+ type: "integer"
+ description: ""
+
+ - name: "reset_billing_cycle_anchor"
+ type: "boolean"
+ description: ""
+
+
+ - name: "cancel_at"
+ type: "string"
+ description: ""
+
+ - name: "cancel_at_period_end"
+ type: "boolean"
+ description: ""
+
+ - name: "canceled_at"
+ type: "string"
+ description: ""
+
+ - name: "collection_method"
+ type: "string"
+ description: ""
+
+ - name: "current_period_end"
+ type: "string"
+ description: ""
+
+ - name: "current_period_start"
+ type: "string"
+ description: ""
+
+ - name: "customer"
+ type: "string"
+ description: "The ID of the customer who owns the subscription."
+ foreign-key-id: "customer-id"
+
+ - name: "days_until_due"
+ type: "integer"
+ description: ""
+
+ - name: "default_payment_method"
+ type: "string"
+ description: ""
+
+ - name: "default_source"
+ type: "string"
+ description: ""
+
+ - name: "discount"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "end"
+ type: "string"
+ description: ""
+
+ - name: "coupon"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "valid"
+ type: "boolean"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "amount_off"
+ type: "integer"
+ description: ""
+
+ - name: "redeem_by"
+ type: "string"
+ description: ""
+
+ - name: "duration_in_months"
+ type: "integer"
+ description: ""
+
+ - name: "percent_off_precise"
+ type: "number"
+ description: ""
+
+ - name: "max_redemptions"
+ type: "integer"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "times_redeemed"
+ type: "integer"
+ description: ""
+
+ - name: "id"
+ type: "string"
+ description: "The coupon ID."
+ foreign-key-id: "coupon-id"
+
+ - name: "duration"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "percent_off"
+ type: "number"
+ description: ""
+
+ - name: "created"
+ type: "string"
+ description: ""
+
+
+ - name: "customer"
+ type: "string"
+ description: ""
+
+ - name: "start"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "subscription"
+ type: "string"
+ description: ""
+
+ - name: "checkout_session"
+ type: "string"
+ description: "The Checkout session that this coupon is applied to, if it is applied to a particular session in payment mode. Will not be present for subscription mode."
+
+ - name: "id"
+ type: "string"
+ description: "The ID of the discount object. "
+
+ - name: "invoice"
+ type: "string"
+ description: "The invoice that the discount’s coupon was applied to, if it was applied directly to a particular invoice."
+
+ - name: "invoice_item"
+ type: "string"
+ description: "The invoice item id (or invoice line item id for invoice line items of type=‘subscription’) that the discount’s coupon was applied to, if it was applied directly to a particular invoice item or invoice line item."
+
+ - name: "promotion_code"
+ type: "string"
+ description: "The promotion code applied to create this discount."
+
+
+ - name: "ended_at"
+ type: "string"
+ description: ""
+
+ - name: "invoice_customer_balance_settings"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "consume_applied_balance_on_void"
+ type: "boolean"
+ description: ""
+
+
+ - name: "items"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "items"
+ type: "string"
+ description: ""
+
+ - name: "latest_invoice"
+ type: "string"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "next_pending_invoice_item_invoice"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "pause_collection"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "behavior"
+ type: "string"
+ description: ""
+
+ - name: "resumes_at"
+ type: "string"
+ description: ""
+
+
+ - name: "pending_invoice_item_interval"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "interval"
+ type: "string"
+ description: ""
+
+ - name: "interval_count"
+ type: "integer"
+ description: ""
+
+
+ - name: "pending_setup_intent"
+ type: "string"
+ description: ""
+
+ - name: "plan"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "product"
+ type: "string"
+ description: "The product whose pricing this plan determines."
+ foreign-key-id: "product-id"
+
+ - name: "statement_description"
+ type: "string"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "tiers_mode"
+ type: "string"
+ description: ""
+
+ - name: "active"
+ type: "boolean"
+ description: ""
+
+ - name: "id"
+ type: "string"
+ description: "The plan ID."
+ foreign-key-id: "plan-id"
+
+ - name: "tiers"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "flat_amount"
+ type: "integer"
+ description: ""
+
+ - name: "unit_amount"
+ type: "integer"
+ description: ""
+
+ - name: "up_to"
+ type: "integer"
+ description: ""
+
+
+ - name: "created"
+ type: "string"
+ description: ""
+
+ - name: "nickname"
+ type: "string"
+ description: ""
+
+ - name: "transform_usage"
+ type: "object"
+ description: ""
+
+ - name: "interval_count"
+ type: "integer"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "interval"
+ type: "string"
+ description: ""
+
+ - name: "aggregate_usage"
+ type: "string"
+ description: ""
+
+ - name: "trial_period_days"
+ type: "integer"
+ description: ""
+
+ - name: "billing_scheme"
+ type: "string"
+ description: ""
+
+ - name: "statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "usage_type"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+
+ - name: "quantity"
+ type: "integer"
+ description: ""
+
+ - name: "schedule"
+ type: "string"
+ description: ""
+
+ - name: "start"
+ type: "string"
+ description: ""
+
+ - name: "start_date"
+ type: "string"
+ description: ""
+
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "tax_percent"
+ type: "number"
+ description: ""
+
+ - name: "transfer_data"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "amount_percent"
+ type: "string"
+ description: ""
+
+ - name: "destination"
+ type: "string"
+ description: ""
+
+
+ - name: "trial_end"
+ type: "string"
+ description: ""
+
+ - name: "trial_start"
+ type: "string"
+ description: ""
+
+ - name: "updated"
+ type: "string"
+ description: ""
+
+ - name: "updated_by_event_type"
+ type: "string"
+ description: "Description of the event"
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/stripe/v2/transfers.md b/archive/_integration-schemas/stripe/v2/transfers.md
new file mode 100644
index 000000000..94b45d21f
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v2/transfers.md
@@ -0,0 +1,127 @@
+---
+tap: "stripe"
+version: "2"
+key: ""
+
+name: "transfers"
+
+singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/transfers.json
+description: |
+ The `{{ table.name }}` table contains info about transfers sent to connected accounts.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all transfers"
+ doc-link: "https://stripe.com/docs/api/transfers/list"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The transfer ID."
+ foreign-key-id: "transfer-id"
+
+ - name: "created"
+ type: "string"
+ replication-key: true
+ description: "The time the transfer was created. Measured in seconds since the Unix epoch."
+
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "amount_reversed"
+ type: "integer"
+ description: ""
+
+ - name: "arrival_date"
+ type: "string"
+ description: ""
+
+ - name: "automatic"
+ type: "boolean"
+ description: ""
+
+ - name: "balance_transaction"
+ type: "string"
+ description: "The ID of the balance transaction that describes the impact of the transfer on your account balance."
+ foreign-key-id: "balance-transaction-id"
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "date"
+ type: "string"
+ description: ""
+
+ - name: "description"
+ type: "string"
+ description: ""
+
+ - name: "destination"
+ type: "string"
+ description: ""
+
+ - name: "failure_balance_transaction"
+ type: "string"
+ description: "If the transfer failed or was canceled, this will be the ID of the balance transaction that reversed the initial balance transaction, and puts the funds from the failed payout back in your balance."
+ foreign-key-id: "balance-transaction-id"
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "recipient"
+ type: "string"
+ description: ""
+
+ - name: "reversals"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "items"
+ type: "object"
+ description: ""
+
+ - name: "reversed"
+ type: "boolean"
+ description: ""
+
+ - name: "source_transaction"
+ type: "string"
+ description: ""
+
+ - name: "source_type"
+ type: "string"
+ description: ""
+
+ - name: "statement_description"
+ type: "string"
+ description: ""
+
+ - name: "statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "transfer_group"
+ type: "string"
+ description: ""
+
+ - name: "updated"
+ type: "string"
+ description: ""
+
+ - name: "updated_by_event_type"
+ type: "string"
+ description: "Description of the event"
+---
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v3/balance_transactions.md b/archive/_integration-schemas/stripe/v3/balance_transactions.md
similarity index 100%
rename from _integration-schemas/stripe/v3/balance_transactions.md
rename to archive/_integration-schemas/stripe/v3/balance_transactions.md
diff --git a/archive/_integration-schemas/stripe/v3/charges.md b/archive/_integration-schemas/stripe/v3/charges.md
new file mode 100644
index 000000000..7bfac967c
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v3/charges.md
@@ -0,0 +1,1400 @@
+---
+tap: "stripe"
+version: "3"
+key: ""
+
+name: "charges"
+doc-link: "https://stripe.com/docs/api/charges/object"
+singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/charges.json
+description: |
+ The `{{ table.name }}` table contains info about charges to credit and debit cards.
+
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all charges"
+ doc-link: "https://stripe.com/docs/api/charges/list"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The charge ID."
+ foreign-key-id: "charge-id"
+
+ - name: "created"
+ type: "date-time"
+ replication-key: true
+ description: "Time at which the object was created. Measured in seconds since the Unix epoch."
+
+ - name: "amount"
+ type: "integer"
+ description: |
+ A positive integer in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal){:target="new"} (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency) representing how much to charge. The minimum amount is $0.50 USD or [equivalent in charge currency](https://support.stripe.com/questions/what-is-the-minimum-amount-i-can-charge-with-stripe){:target="new"}.
+
+ - name: "amount_captured"
+ type: "integer"
+ description: ""
+
+ - name: "amount_refunded"
+ type: "integer"
+ description: "Amount in cents refunded (can be less than `amount` if a partial refund was issued)"
+
+ - name: "application"
+ type: "string"
+ description: "The ID of the Connect application that created the charge."
+
+ - name: "application_fee"
+ type: "string"
+ description: ""
+
+ - name: "application_fee_amount"
+ type: "integer"
+ description: ""
+
+ - name: "balance_transaction"
+ type: "string"
+ description: ""
+
+ - name: "billing_details"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "line1"
+ type: "string"
+ description: ""
+
+ - name: "line2"
+ type: "string"
+ description: ""
+
+ - name: "postal_code"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+
+ - name: "email"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "phone"
+ type: "string"
+ description: ""
+
+
+ - name: "calculated_statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "captured"
+ type: "boolean"
+ description: ""
+
+ - name: "card"
+ type: "object"
+ description: &source-description "Details about the credit or debit card that is the source of the charge."
+ subattributes:
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+
+ - name: "address_state"
+ type: "string"
+ description: ""
+
+ - name: "id"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+
+ - name: "address_line1"
+ type: "string"
+ description: ""
+
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+
+ - name: "tokenization_method"
+ type: "string"
+ description: ""
+
+ - name: "address_country"
+ type: "string"
+ description: ""
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "address_city"
+ type: "string"
+ description: ""
+
+ - name: "last4"
+ type: "string"
+ description: ""
+
+ - name: "address_line2"
+ type: "string"
+ description: ""
+
+ - name: "customer"
+ type: "string"
+ description: ""
+
+ - name: "brand"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "funding"
+ type: "string"
+ description: ""
+
+ - name: "address_zip"
+ type: "string"
+ description: ""
+
+ - name: "address_zip_check"
+ type: "string"
+ description: ""
+
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+
+ - name: "currency"
+ type: "string"
+ description: |
+ The three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html){:target="new"}.
+
+ - name: "customer"
+ type: "string"
+ description: "The ID of the customer associated with the charge."
+ foreign-key-id: "customer-id"
+
+ - name: "description"
+ type: "string"
+ description: "An arbitrary string attached to the object. Often useful for displaying to users."
+
+ - name: "destination"
+ type: "string"
+ description: "The account (if any) the charge was made on behalf of, with an automatic transfer."
+
+ - name: "dispute"
+ type: "string"
+ description: "Details about the dispute, if the charge has been disputed."
+
+ - name: "disputed"
+ type: "boolean"
+ description: ""
+
+ - name: "failure_code"
+ type: "string"
+ description: |
+ The error code explaining the reason for a charge failure, if available. Refer to [{{ integration.display_name }}'s documentation](https://stripe.com/docs/api#errors){:target="new"} for a list of possible error codes.
+
+ - name: "failure_message"
+ type: "string"
+ description: "The message that displays to the user that further explains the reason for the charge failure."
+
+ - name: "fraud_details"
+ type: "object"
+ description: |
+ Details about fraud assessments for the charge.
+ subattributes:
+ - name: "stripe_report"
+ type: "string"
+ description: |
+ If not `null`, this indicates that a {{ integration.display_name }} fraud assessment exists for the charge. This field may have a value of `fraudulent`.
+
+ - `safe`
+ - `fraudulent`
+
+
+ - name: "invoice"
+ type: "string"
+ description: "The ID of the invoice the charge is for."
+ foreign-key-id: "invoice-id"
+
+ - name: "livemode"
+ type: "boolean"
+ description: "Indicates if the object exists in live mode (`true`) or in test mode (`false`)."
+
+ - name: "metadata"
+ type: "object"
+ description: "Additional information attached to the charge."
+
+ - name: "object"
+ type: "string"
+ description: "The type of {{ integration.display_name }} object. This will be `charge`."
+
+ - name: "on_behalf_of"
+ type: "string"
+ description: "The account the charge was made on behalf of without triggering an automatic transfer."
+
+ - name: "order"
+ type: "string"
+ description: "The ID of the order this charge is for."
+
+ - name: "outcome"
+ type: "object"
+ description: "Details about whether the payment was accepted and why."
+ subattributes:
+ - name: "type"
+ type: "string"
+ description: |
+ The type of the outcome. Possible values are:
+
+ - `authorized`
+ - `manual_review`
+ - `issuer_declined`
+ - `blocked`
+ - `invalid`
+
+ - name: "seller_message"
+ type: "string"
+ description: "A description of the outcome type and reason designed for you, the recipient of the payment."
+
+ - name: "reason"
+ type: "string"
+ description: |
+ A detailed explanation of the outcome's `type`. Possible values are:
+
+ - `highest_risk_level` - Indicates the charge was blocked by Radar's default block rule.
+ - `elevated_risk_level` - Indicates the charge was placed in review by Radar's default review rule.
+ - `rule` - Indicates the charge was authorized, blocked, or placed in review by a custom rule.
+
+ Refer to [{{ integration.display_name }}'s documentation](https://stripe.com/docs/declines){:target="new"} for more info about this attribute.
+
+ - name: "risk_level"
+ type: "string"
+ description: |
+ Indicates {{ integration.display_name }}'s evaluation of the riskiness of the payment. Possible values are:
+
+ - `normal`, `elevated`, `highest` - Evaluated payments
+ - `not_assessed` - Non-card payments, and card-based payments predating the public assignment of risk levels
+ - `unknown` - Indicates an error in the risk evaluation
+
+ - name: "network_status"
+ type: "string"
+ description: |
+ The network status of the outcome. Possible values are:
+
+ - `approved_by_network`
+ - `declined_by_network`
+ - `not_sent_to_network`
+ - `reversed_after_approval` - This value indicates that [{{ integration.display_name }} blocked the payment](https://stripe.com/docs/declines#blocked-payments){:target="new"} after bank authorization, and may temporarily appear as "pending" on a cardholder's statement.
+
+ - name: "risk_score"
+ type: "integer"
+ description: |
+ Indicates {{ integration.display_name }}'s evaluation of the riskiness of the payment.
+
+ - For evaluated payments, this attribute will contain a value between `0` and `100`.
+
+ - For non-card payments, and card-based payments predating the public assignment of risk levels, this field will be `null`.
+
+
+ - name: "paid"
+ type: "boolean"
+ description: "Indicates if the charge succeeded (`true`) or was successfully authorzed for later capture (`false`)."
+
+ - name: "payment_intent"
+ type: "string"
+ description: "The ID of the payment intent associated with the charge."
+ # foreign-key-id: "payment-intent-id"
+
+ - name: "payment_method"
+ type: "string"
+ description: ""
+
+ - name: "payment_method_details"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "card_present"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "amount_authorized"
+ type: "integer"
+ description: ""
+ - name: "brand"
+ type: "string"
+ description: ""
+ - name: "cardholder_name"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "emv_auth_data"
+ type: "string"
+ description: ""
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+ - name: "funding"
+ type: "string"
+ description: ""
+ - name: "generated_card"
+ type: "string"
+ description: ""
+ - name: "last4"
+ type: "string"
+ description: ""
+ - name: "network"
+ type: "string"
+ description: ""
+ - name: "overcapture_supported"
+ type: "boolean"
+ description: ""
+ - name: "read_method"
+ type: "string"
+ description: ""
+ - name: "receipt"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "account_type"
+ type: "string"
+ description: ""
+ - name: "application_cryptogram"
+ type: "string"
+ description: ""
+ - name: "application_preferred_name"
+ type: "string"
+ description: ""
+ - name: "authorization_code"
+ type: "string"
+ description: ""
+ - name: "authorization_response_code"
+ type: "string"
+ description: ""
+ - name: "cardholder_verification_method"
+ type: "string"
+ description: ""
+ - name: "dedicated_file_name"
+ type: "string"
+ description: ""
+ - name: "terminal_verification_results"
+ type: "string"
+ description: ""
+ - name: "transaction_status_information"
+ type: "string"
+ description: ""
+ - name: "ach_credit_transfer"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "account_number"
+ type: "string"
+ description: ""
+ - name: "bank_name"
+ type: "string"
+ description: ""
+ - name: "routing_number"
+ type: "string"
+ description: ""
+ - name: "swift_code"
+ type: "string"
+ description: ""
+ - name: "ach_debit"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "account_holder_type"
+ type: "string"
+ description: ""
+ - name: "bank_name"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+ - name: "last4"
+ type: "string"
+ description: ""
+ - name: "routing_number"
+ type: "string"
+ description: ""
+ - name: "alipay"
+ type: "object"
+ description: ""
+ - name: "bancontact"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank_code"
+ type: "string"
+ description: ""
+ - name: "bank_name"
+ type: "string"
+ description: ""
+ - name: "bic"
+ type: "string"
+ description: ""
+ - name: "iban_last4"
+ type: "string"
+ description: ""
+ - name: "preferred_language"
+ type: "string"
+ description: ""
+ - name: "verified_name"
+ type: "string"
+ description: ""
+ - name: "card"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "brand"
+ type: "string"
+ description: ""
+ - name: "checks"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+ - name: "address_postal_code_check"
+ type: "string"
+ description: ""
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+ - name: "funding"
+ type: "string"
+ description: ""
+ - name: "installments"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "plan"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "count"
+ type: "integer"
+ description: ""
+ - name: "interval"
+ type: "string"
+ description: ""
+ - name: "type"
+ type: "string"
+ description: ""
+ - name: "last4"
+ type: "string"
+ description: ""
+ - name: "network"
+ type: "string"
+ description: ""
+ - name: "three_d_secure"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "authenticated"
+ type: "boolean"
+ description: ""
+ - name: "succeeded"
+ type: "boolean"
+ description: ""
+ - name: "version"
+ type: "string"
+ description: ""
+ - name: "wallet"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "amex_express_checkout"
+ type: "object"
+ description: ""
+ - name: "apple_pay"
+ type: "object"
+ description: ""
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+ - name: "google_pay"
+ type: "object"
+ description: ""
+ - name: "masterpass"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "billing_address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "line1"
+ type: "string"
+ description: ""
+ - name: "line2"
+ type: "string"
+ description: ""
+ - name: "postal_code"
+ type: "string"
+ description: ""
+ - name: "state"
+ type: "string"
+ description: ""
+ - name: "email"
+ type: "string"
+ description: ""
+ - name: "name"
+ type: "string"
+ description: ""
+ - name: "shipping_address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "line1"
+ type: "string"
+ description: ""
+ - name: "line2"
+ type: "string"
+ description: ""
+ - name: "postal_code"
+ type: "string"
+ description: ""
+ - name: "state"
+ type: "string"
+ description: ""
+ - name: "samsung_pay"
+ type: "object"
+ description: ""
+ - name: "type"
+ type: "string"
+ description: ""
+ - name: "visa_checkout"
+ type: "object"
+ description: ""
+ - name: "billing_address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "line1"
+ type: "string"
+ description: ""
+ - name: "line2"
+ type: "string"
+ description: ""
+ - name: "postal_code"
+ type: "string"
+ description: ""
+ - name: "state"
+ type: "string"
+ description: ""
+ - name: "email"
+ type: "string"
+ description: ""
+ - name: "name"
+ type: "string"
+ description: ""
+ - name: "shipping_address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "line1"
+ type: "string"
+ description: ""
+ - name: "line2"
+ type: "string"
+ description: ""
+ - name: "postal_code"
+ type: "string"
+ description: ""
+ - name: "state"
+ type: "string"
+ description: ""
+ - name: "card_present"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "brand"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "emv_auth_data"
+ type: "string"
+ description: ""
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+ - name: "funding"
+ type: "string"
+ description: ""
+ - name: "generated_card"
+ type: "string"
+ description: ""
+ - name: "last4"
+ type: "string"
+ description: ""
+ - name: "network"
+ type: "string"
+ description: ""
+ - name: "read_method"
+ type: "string"
+ description: ""
+ - name: "receipt"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "application_cryptogram"
+ type: "string"
+ description: ""
+ - name: "application_preferred_name"
+ type: "string"
+ description: ""
+ - name: "authorization_code"
+ type: "string"
+ description: ""
+ - name: "authorization_response_code"
+ type: "string"
+ description: ""
+ - name: "cardholder_verification_method"
+ type: "string"
+ description: ""
+ - name: "dedicated_file_name"
+ type: "string"
+ description: ""
+ - name: "terminal_verification_results"
+ type: "string"
+ description: ""
+ - name: "transaction_status_information"
+ type: "string"
+ description: ""
+ - name: "eps"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "verified_name"
+ type: "string"
+ description: ""
+ - name: "giropay"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank_code"
+ type: "string"
+ description: ""
+ - name: "bank_name"
+ type: "string"
+ description: ""
+ - name: "bic"
+ type: "string"
+ description: ""
+ - name: "verified_name"
+ type: "string"
+ description: ""
+ - name: "ideal"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank"
+ type: "string"
+ description: ""
+ - name: "bic"
+ type: "string"
+ description: ""
+ - name: "iban_last4"
+ type: "string"
+ description: ""
+ - name: "verified_name"
+ type: "string"
+ description: ""
+ - name: "klarna"
+ type: "object"
+ description: ""
+ - name: "multibanco"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "entity"
+ type: "string"
+ description: ""
+ - name: "reference"
+ type: "string"
+ description: ""
+ - name: "p24"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "reference"
+ type: "string"
+ description: ""
+ - name: "verified_name"
+ type: "string"
+ description: ""
+ - name: "sepa_debit"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank_code"
+ type: "string"
+ description: ""
+ - name: "branch_code"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+ - name: "last4"
+ type: "string"
+ description: ""
+ - name: "mandate"
+ type: "string"
+ description: ""
+ - name: "sofort"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank_code"
+ type: "string"
+ description: ""
+ - name: "bank_name"
+ type: "string"
+ description: ""
+ - name: "bic"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "iban_last4"
+ type: "string"
+ description: ""
+ - name: "verified_name"
+ type: "string"
+ description: ""
+ - name: "stripe_account"
+ type: "object"
+ description: ""
+ - name: "type"
+ type: "string"
+ description: ""
+ - name: "wechat"
+ type: "object"
+ description: ""
+ - name: "metadata"
+ type: "object"
+ description: ""
+ - name: "address_state"
+ type: "string"
+ description: ""
+ - name: "id"
+ type: "string"
+ description: ""
+ - name: "object"
+ type: "string"
+ description: ""
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+ - name: "address_line1"
+ type: "string"
+ description: ""
+ - name: "tokenization_method"
+ type: "string"
+ description: ""
+ - name: "address_country"
+ type: "string"
+ description: ""
+ - name: "address_city"
+ type: "string"
+ description: ""
+ - name: "address_line2"
+ type: "string"
+ description: ""
+ - name: "customer"
+ type: "string"
+ description: ""
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+ - name: "name"
+ type: "string"
+ description: ""
+ - name: "address_zip"
+ type: "string"
+ description: ""
+ - name: "address_zip_check"
+ type: "string"
+ description: ""
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+ - name: "type"
+ type: "string"
+ description: ""
+
+
+ - name: "receipt_email"
+ type: "string"
+ description: ""
+
+ - name: "receipt_number"
+ type: "string"
+ description: ""
+
+ - name: "receipt_url"
+ type: "string"
+ description: ""
+
+ - name: "refunded"
+ type: "boolean"
+ description: ""
+
+ - name: "refunds"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "id"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "balance_transaction"
+ type: "string"
+ description: ""
+
+ - name: "charge"
+ type: "string"
+ description: ""
+
+ - name: "created"
+ type: "string"
+ format: "date-time"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "description"
+ type: "string"
+ description: ""
+
+ - name: "failure_reason"
+ type: "string"
+ description: ""
+
+ - name: "instructions_email"
+ type: "string"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "next_action"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "display_details"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "email_sent"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "email_sent_at"
+ type: "string"
+ format: "date-time"
+ description: ""
+
+ - name: "email_sent_to"
+ type: "string"
+ description: ""
+
+
+ - name: "expires_at"
+ type: "string"
+ format: "date-time"
+ description: ""
+
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+
+ - name: "payment_intent"
+ type: "string"
+ description: ""
+
+ - name: "reason"
+ type: "string"
+ description: ""
+
+ - name: "receipt_number"
+ type: "string"
+ description: ""
+
+ - name: "source_transfer_reversal"
+ type: "string"
+ description: ""
+
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "transfer_reversal"
+ type: "string"
+ description: ""
+
+
+ - name: "review"
+ type: "string"
+ description: ""
+
+ - name: "shipping"
+ type: "object"
+ description: ""
+
+ - name: "source"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "metadata"
+ type: "object"
+ description: ""
+ - name: "type"
+ type: "string"
+ description: ""
+ - name: "address_zip"
+ type: "string"
+ description: ""
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+ - name: "card"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+ - name: "last4"
+ type: "string"
+ description: ""
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+ - name: "tokenization_method"
+ type: "string"
+ description: ""
+ - name: "name"
+ type: "string"
+ description: ""
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+ - name: "three_d_secure"
+ type: "string"
+ description: ""
+ - name: "funding"
+ type: "string"
+ description: ""
+ - name: "brand"
+ type: "string"
+ description: ""
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "address_zip_check"
+ type: "string"
+ description: ""
+ - name: "type"
+ type: "string"
+ description: ""
+ - name: "statement_descriptor"
+ type: "string"
+ description: ""
+ - name: "id"
+ type: "string"
+ description: ""
+ - name: "address_country"
+ type: "string"
+ description: ""
+ - name: "funding"
+ type: "string"
+ description: ""
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+ - name: "last4"
+ type: "string"
+ description: ""
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+ - name: "brand"
+ type: "string"
+ description: ""
+ - name: "address_line2"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "object"
+ type: "string"
+ description: ""
+ - name: "amount"
+ type: "integer"
+ description: ""
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+ - name: "usage"
+ type: "string"
+ description: ""
+ - name: "address_line1"
+ type: "string"
+ description: ""
+ - name: "owner"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "verified_address"
+ type: "string"
+ description: ""
+ - name: "email"
+ type: "string"
+ description: ""
+ - name: "address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "line2"
+ type: "string"
+ description: ""
+ - name: "state"
+ type: "string"
+ description: ""
+ - name: "city"
+ type: "string"
+ description: ""
+ - name: "postal_code"
+ type: "string"
+ description: ""
+ - name: "country"
+ type: "string"
+ description: ""
+ - name: "line1"
+ type: "string"
+ description: ""
+ - name: "verified_email"
+ type: "string"
+ description: ""
+ - name: "name"
+ type: "string"
+ description: ""
+ - name: "phone"
+ type: "string"
+ description: ""
+ - name: "verified_name"
+ type: "string"
+ description: ""
+ - name: "verified_phone"
+ type: "string"
+ description: ""
+ - name: "tokenization_method"
+ type: "string"
+ description: ""
+ - name: "client_secret"
+ type: "string"
+ description: ""
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+ - name: "address_city"
+ type: "string"
+ description: ""
+ - name: "currency"
+ type: "string"
+ description: ""
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+ - name: "receiver"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "refund_attributes_method"
+ type: "string"
+ description: ""
+ - name: "amount_returned"
+ type: "integer"
+ description: ""
+ - name: "amount_received"
+ type: "integer"
+ description: ""
+ - name: "refund_attributes_status"
+ type: "string"
+ description: ""
+ - name: "address"
+ type: "string"
+ description: ""
+ - name: "amount_charged"
+ type: "integer"
+ description: ""
+ - name: "flow"
+ type: "string"
+ description: ""
+ - name: "name"
+ type: "string"
+ description: ""
+ - name: "ach_credit_transfer"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank_name"
+ type: "string"
+ description: ""
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+ - name: "routing_number"
+ type: "string"
+ description: ""
+ - name: "swift_code"
+ type: "string"
+ description: ""
+ - name: "refund_account_holder_type"
+ type: "string"
+ description: ""
+ - name: "refund_account_holder_name"
+ type: "string"
+ description: ""
+ - name: "refund_account_number"
+ type: "string"
+ description: ""
+ - name: "refund_routing_number"
+ type: "string"
+ description: ""
+ - name: "account_number"
+ type: "string"
+ description: ""
+ - name: "customer"
+ type: "string"
+ description: ""
+ - name: "address_zip_check"
+ type: "string"
+ description: ""
+ - name: "status"
+ type: "string"
+ description: ""
+ - name: "created"
+ type: "string"
+ description: ""
+ - name: "address_state"
+ type: "string"
+ description: ""
+ - name: "alipay"
+ type: "object"
+ description: ""
+ - name: "bancontact"
+ type: "object"
+ description: ""
+ - name: "eps"
+ type: "object"
+ description: ""
+ - name: "ideal"
+ type: "object"
+ description: ""
+ - name: "multibanco"
+ type: "object"
+ description: ""
+ - name: "redirect"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "failure_reason"
+ type: "string"
+ description: ""
+ - name: "return_url"
+ type: "string"
+ description: ""
+ - name: "status"
+ type: "string"
+ description: ""
+ - name: "url"
+ type: "string"
+ description: ""
+
+
+
+ - name: "source_transfer"
+ type: "string"
+ description: ""
+
+ - name: "statement_description"
+ type: "string"
+ description: ""
+
+ - name: "statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "statement_descriptor_suffix"
+ type: "string"
+ description: ""
+
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "transfer_data"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "destination"
+ type: "string"
+ description: ""
+
+
+ - name: "transfer_group"
+ type: "string"
+ description: ""
+
+ - name: "updated"
+ type: "string"
+ format: "date-time"
+ description: ""
+
+ - name: "updated_by_event_type"
+ type: "string"
+ description: ""
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/stripe/v3/coupons.md b/archive/_integration-schemas/stripe/v3/coupons.md
new file mode 100644
index 000000000..8ea93af74
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v3/coupons.md
@@ -0,0 +1,93 @@
+---
+tap: "stripe"
+version: "3"
+key: ""
+
+name: "coupons"
+doc-link: "https://stripe.com/docs/api/coupons"
+singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/coupons.json
+description: |
+ The `{{ table.name }}` table contains info about percent or amount-off discounts that may be applied to a customer. **Note:** Coupons only apply to invoices; they don't apply to one-off charges.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all coupons"
+ doc-link: "https://stripe.com/docs/api/coupons/list"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The coupon ID."
+ foreign-key-id: "coupon-id"
+
+ - name: "created"
+ type: "string"
+ replication-key: true
+ description: "Time at which the object was created. Measured in seconds since the Unix epoch."
+
+ - name: "amount_off"
+ type: "integer"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "duration"
+ type: "string"
+ description: ""
+
+ - name: "duration_in_months"
+ type: "integer"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "max_redemptions"
+ type: "integer"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "percent_off"
+ type: "number"
+ description: ""
+
+ - name: "percent_off_precise"
+ type: "number"
+ description: ""
+
+ - name: "redeem_by"
+ type: "string"
+ description: ""
+
+ - name: "times_redeemed"
+ type: "integer"
+ description: ""
+
+ - name: "updated"
+ type: "string"
+ description: ""
+
+ - name: "updated_by_event_type"
+ type: "string"
+ description: "Description of the event"
+
+ - name: "valid"
+ type: "boolean"
+ description: ""
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/stripe/v3/customers.md b/archive/_integration-schemas/stripe/v3/customers.md
new file mode 100644
index 000000000..e8c35779a
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v3/customers.md
@@ -0,0 +1,1293 @@
+---
+tap: "stripe"
+version: "3"
+key: ""
+
+name: "customers"
+doc-link: "https://stripe.com/docs/api/customers/object"
+singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/customers.json
+description: |
+ The `{{ table.name }}` table contains info about your customers.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all customers"
+ doc-link: "https://stripe.com/docs/api/customers/list"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The customer ID."
+ foreign-key-id: "customer-id"
+
+ - name: "created"
+ type: "string"
+ replication-key: true
+ description: "Time at which the object was created. Measured in seconds since the Unix epoch."
+
+ - name: "account_balance"
+ type: "integer"
+ description: ""
+
+ - name: "address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "line1"
+ type: "string"
+ description: ""
+
+ - name: "line2"
+ type: "string"
+ description: ""
+
+ - name: "postal_code"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+
+ - name: "balance"
+ type: "integer"
+ description: ""
+
+ - name: "cards"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "id"
+ type: "string"
+ description: ""
+
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+
+ - name: "last4"
+ type: "string"
+ description: ""
+
+ - name: "funding"
+ type: "string"
+ description: ""
+
+ - name: "brand"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "customer"
+ type: "string"
+ description: ""
+
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+
+ - name: "address_line2"
+ type: "string"
+ description: ""
+
+ - name: "address_line1"
+ type: "string"
+ description: ""
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "address_zip"
+ type: "string"
+ description: ""
+
+ - name: "address_city"
+ type: "string"
+ description: ""
+
+ - name: "address_country"
+ type: "string"
+ description: ""
+
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+
+ - name: "tokenization_method"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "address_state"
+ type: "string"
+ description: ""
+
+ - name: "address_zip_check"
+ type: "string"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "default_card"
+ type: "string"
+ description: ""
+
+ - name: "default_source"
+ type: "string"
+ description: ""
+
+ - name: "delinquent"
+ type: "boolean"
+ description: ""
+
+ - name: "description"
+ type: "string"
+ description: ""
+
+ - name: "discount"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "end"
+ type: "string"
+ description: ""
+
+ - name: "coupon"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "valid"
+ type: "boolean"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "amount_off"
+ type: "integer"
+ description: ""
+
+ - name: "redeem_by"
+ type: "string"
+ description: ""
+
+ - name: "duration_in_months"
+ type: "integer"
+ description: ""
+
+ - name: "percent_off_precise"
+ type: "number"
+ description: ""
+
+ - name: "max_redemptions"
+ type: "integer"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "times_redeemed"
+ type: "integer"
+ description: ""
+
+ - name: "id"
+ type: "string"
+ description: "The ID of the discount object. "
+
+ - name: "duration"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "percent_off"
+ type: "number"
+ description: ""
+
+ - name: "created"
+ type: "string"
+ description: ""
+
+
+ - name: "customer"
+ type: "string"
+ description: ""
+
+ - name: "start"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "subscription"
+ type: "string"
+ description: ""
+
+ - name: "checkout_session"
+ type: "string"
+ description: ""
+
+ - name: "id"
+ type: "string"
+ description: "The ID of the discount object. "
+
+ - name: "invoice"
+ type: "string"
+ description: "The invoice that the discount’s coupon was applied to, if it was applied directly to a particular invoice."
+
+ - name: "invoice_item"
+ type: "string"
+ description: "The invoice item id (or invoice line item id for invoice line items of type=‘subscription’) that the discount’s coupon was applied to, if it was applied directly to a particular invoice item or invoice line item."
+
+ - name: "promotion_code"
+ type: "string"
+ description: "The promotion code applied to create this discount."
+
+
+ - name: "email"
+ type: "string"
+ description: ""
+
+ - name: "invoice_prefix"
+ type: "string"
+ description: ""
+
+ - name: "invoice_settings"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "custom_fields"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "items"
+ type: "string"
+ description: ""
+
+ - name: "default_payment_method"
+ type: "string"
+ description: ""
+
+ - name: "footer"
+ type: "string"
+ description: ""
+
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "next_invoice_sequence"
+ type: "integer"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "phone"
+ type: "string"
+ description: ""
+
+ - name: "preferred_locales"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "items"
+ type: "string"
+ description: ""
+
+ - name: "shipping"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "line2"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+ - name: "city"
+ type: "string"
+ description: ""
+
+ - name: "postal_code"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "line1"
+ type: "string"
+ description: ""
+
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "phone"
+ type: "string"
+ description: ""
+
+
+ - name: "sources"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+ - name: "address_zip"
+ type: "string"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "card"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "last4"
+ type: "string"
+ description: ""
+
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+
+ - name: "tokenization_method"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+
+ - name: "three_d_secure"
+ type: "string"
+ description: ""
+
+ - name: "funding"
+ type: "string"
+ description: ""
+
+ - name: "brand"
+ type: "string"
+ description: ""
+
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "address_zip_check"
+ type: "string"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+
+ - name: "statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "id"
+ type: "string"
+ description: ""
+
+ - name: "address_country"
+ type: "string"
+ description: ""
+
+ - name: "funding"
+ type: "string"
+ description: ""
+
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+
+ - name: "last4"
+ type: "string"
+ description: ""
+
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+
+ - name: "brand"
+ type: "string"
+ description: ""
+
+ - name: "address_line2"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+
+ - name: "usage"
+ type: "string"
+ description: ""
+
+ - name: "address_line1"
+ type: "string"
+ description: ""
+
+ - name: "owner"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "verified_address"
+ type: "string"
+ description: ""
+
+ - name: "email"
+ type: "string"
+ description: ""
+
+ - name: "address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "line2"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+ - name: "city"
+ type: "string"
+ description: ""
+
+ - name: "postal_code"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "line1"
+ type: "string"
+ description: ""
+
+
+ - name: "verified_email"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "phone"
+ type: "string"
+ description: ""
+
+ - name: "verified_name"
+ type: "string"
+ description: ""
+
+ - name: "verified_phone"
+ type: "string"
+ description: ""
+
+
+ - name: "tokenization_method"
+ type: "string"
+ description: ""
+
+ - name: "client_secret"
+ type: "string"
+ description: ""
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "address_city"
+ type: "string"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+
+ - name: "receiver"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "refund_attributes_method"
+ type: "string"
+ description: ""
+
+ - name: "amount_returned"
+ type: "integer"
+ description: ""
+
+ - name: "amount_received"
+ type: "integer"
+ description: ""
+
+ - name: "refund_attributes_status"
+ type: "string"
+ description: ""
+
+ - name: "address"
+ type: "string"
+ description: ""
+
+ - name: "amount_charged"
+ type: "integer"
+ description: ""
+
+
+ - name: "flow"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "ach_credit_transfer"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank_name"
+ type: "string"
+ description: ""
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "routing_number"
+ type: "string"
+ description: ""
+
+ - name: "swift_code"
+ type: "string"
+ description: ""
+
+ - name: "refund_account_holder_type"
+ type: "string"
+ description: ""
+
+ - name: "refund_account_holder_name"
+ type: "string"
+ description: ""
+
+ - name: "refund_account_number"
+ type: "string"
+ description: ""
+
+ - name: "refund_routing_number"
+ type: "string"
+ description: ""
+
+ - name: "account_number"
+ type: "string"
+ description: ""
+
+
+ - name: "customer"
+ type: "string"
+ description: ""
+
+ - name: "address_zip_check"
+ type: "string"
+ description: ""
+
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "created"
+ type: "string"
+ description: ""
+
+ - name: "address_state"
+ type: "string"
+ description: ""
+
+ - name: "alipay"
+ type: "object"
+ description: ""
+
+ - name: "bancontact"
+ type: "object"
+ description: ""
+
+ - name: "eps"
+ type: "object"
+ description: ""
+
+ - name: "ideal"
+ type: "object"
+ description: ""
+
+ - name: "multibanco"
+ type: "object"
+ description: ""
+
+ - name: "redirect"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "failure_reason"
+ type: "string"
+ description: ""
+
+ - name: "return_url"
+ type: "string"
+ description: ""
+
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "url"
+ type: "string"
+ description: ""
+
+
+
+
+ - name: "sources"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+ - name: "address_zip"
+ type: "string"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "card"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "last4"
+ type: "string"
+ description: ""
+
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+
+ - name: "tokenization_method"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+
+ - name: "three_d_secure"
+ type: "string"
+ description: ""
+
+ - name: "funding"
+ type: "string"
+ description: ""
+
+ - name: "brand"
+ type: "string"
+ description: ""
+
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "address_zip_check"
+ type: "string"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+
+ - name: "statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "id"
+ type: "string"
+ description: ""
+
+ - name: "address_country"
+ type: "string"
+ description: ""
+
+ - name: "funding"
+ type: "string"
+ description: ""
+
+ - name: "dynamic_last4"
+ type: "string"
+ description: ""
+
+ - name: "exp_year"
+ type: "integer"
+ description: ""
+
+ - name: "last4"
+ type: "string"
+ description: ""
+
+ - name: "exp_month"
+ type: "integer"
+ description: ""
+
+ - name: "brand"
+ type: "string"
+ description: ""
+
+ - name: "address_line2"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "cvc_check"
+ type: "string"
+ description: ""
+
+ - name: "usage"
+ type: "string"
+ description: ""
+
+ - name: "address_line1"
+ type: "string"
+ description: ""
+
+ - name: "owner"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "verified_address"
+ type: "string"
+ description: ""
+
+ - name: "email"
+ type: "string"
+ description: ""
+
+ - name: "address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "line2"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+ - name: "city"
+ type: "string"
+ description: ""
+
+ - name: "postal_code"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "line1"
+ type: "string"
+ description: ""
+
+
+ - name: "verified_email"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "phone"
+ type: "string"
+ description: ""
+
+ - name: "verified_name"
+ type: "string"
+ description: ""
+
+ - name: "verified_phone"
+ type: "string"
+ description: ""
+
+
+ - name: "tokenization_method"
+ type: "string"
+ description: ""
+
+ - name: "client_secret"
+ type: "string"
+ description: ""
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "address_city"
+ type: "string"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "address_line1_check"
+ type: "string"
+ description: ""
+
+ - name: "receiver"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "refund_attributes_method"
+ type: "string"
+ description: ""
+
+ - name: "amount_returned"
+ type: "integer"
+ description: ""
+
+ - name: "amount_received"
+ type: "integer"
+ description: ""
+
+ - name: "refund_attributes_status"
+ type: "string"
+ description: ""
+
+ - name: "address"
+ type: "string"
+ description: ""
+
+ - name: "amount_charged"
+ type: "integer"
+ description: ""
+
+
+ - name: "flow"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "ach_credit_transfer"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "bank_name"
+ type: "string"
+ description: ""
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "routing_number"
+ type: "string"
+ description: ""
+
+ - name: "swift_code"
+ type: "string"
+ description: ""
+
+ - name: "refund_account_holder_type"
+ type: "string"
+ description: ""
+
+ - name: "refund_account_holder_name"
+ type: "string"
+ description: ""
+
+ - name: "refund_account_number"
+ type: "string"
+ description: ""
+
+ - name: "refund_routing_number"
+ type: "string"
+ description: ""
+
+ - name: "account_number"
+ type: "string"
+ description: ""
+
+
+ - name: "customer"
+ type: "string"
+ description: ""
+
+ - name: "address_zip_check"
+ type: "string"
+ description: ""
+
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "created"
+ type: "string"
+ description: ""
+
+ - name: "address_state"
+ type: "string"
+ description: ""
+
+ - name: "alipay"
+ type: "object"
+ description: ""
+
+ - name: "bancontact"
+ type: "object"
+ description: ""
+
+ - name: "eps"
+ type: "object"
+ description: ""
+
+ - name: "ideal"
+ type: "object"
+ description: ""
+
+ - name: "multibanco"
+ type: "object"
+ description: ""
+
+ - name: "redirect"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "failure_reason"
+ type: "string"
+ description: ""
+
+ - name: "return_url"
+ type: "string"
+ description: ""
+
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "url"
+ type: "string"
+ description: ""
+
+
+
+
+ - name: "subscriptions"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "items"
+ type: "string"
+ description: ""
+
+ - name: "tax_exempt"
+ type: "string"
+ description: ""
+
+ - name: "tax_ids"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "id"
+ type: "string"
+ description: "Unique identifier for the object."
+
+ - name: "object"
+ type: "string"
+ description: "String representing the object’s type. Objects of the same type share the same value."
+
+ - name: "country"
+ type: "string"
+ description: "Two-letter ISO code representing the country of the tax ID."
+
+ - name: "created"
+ type: "string"
+ description: "Time at which the object was created. Measured in seconds since the Unix epoch."
+
+ - name: "customer"
+ type: "string"
+ description: "ID of the customer."
+
+ - name: "livemode"
+ type: "boolean"
+ description: "Has the value true if the object exists in live mode or the value false if the object exists in test mode"
+
+ - name: "type"
+ type: "string"
+ description: "Type of the tax ID."
+
+ - name: "value"
+ type: "string"
+ description: "Value of the tax ID"
+
+ - name: "verification"
+ type: "object"
+ description: "Tax ID verification information."
+ subattributes:
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "verified_address"
+ type: "string"
+ description: ""
+
+ - name: "verified_name"
+ type: "string"
+ description: ""
+
+
+
+
+ - name: "tax_ids"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "id"
+ type: "string"
+ description: "Unique identifier for the object."
+
+ - name: "object"
+ type: "string"
+ description: "String representing the object’s type. Objects of the same type share the same value."
+
+ - name: "country"
+ type: "string"
+ description: "Two-letter ISO code representing the country of the tax ID."
+
+ - name: "created"
+ type: "string"
+ description: "Time at which the object was created. Measured in seconds since the Unix epoch."
+
+ - name: "customer"
+ type: "string"
+ description: "ID of the customer."
+
+ - name: "livemode"
+ type: "boolean"
+ description: "Has the value true if the object exists in live mode or the value false if the object exists in test mode"
+
+ - name: "type"
+ type: "string"
+ description: "Type of the tax ID."
+
+ - name: "value"
+ type: "string"
+ description: "Value of the tax ID"
+
+ - name: "verification"
+ type: "object"
+ description: "Tax ID verification information."
+ subattributes:
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "verified_address"
+ type: "string"
+ description: ""
+
+ - name: "verified_name"
+ type: "string"
+ description: ""
+
+
+
+
+ - name: "tax_info"
+ type: "string"
+ description: ""
+
+ - name: "tax_info_verification"
+ type: "string"
+ description: ""
+
+ - name: "updated"
+ type: "string"
+ description: ""
+
+ - name: "updated_by_event_type"
+ type: "string"
+ description: "Description of the event"
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/stripe/v3/disputes.md b/archive/_integration-schemas/stripe/v3/disputes.md
new file mode 100644
index 000000000..a3a1af982
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v3/disputes.md
@@ -0,0 +1,216 @@
+---
+tap: "stripe"
+version: "3"
+key: ""
+
+name: "disputes"
+doc-link: "https://stripe.com/docs/api/disputes/object"
+singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/disputes.json
+description: "This table contains information about customer disputes related to charges on their credit card."
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all disputes"
+ doc-link: "https://stripe.com/docs/api/disputes/list"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The dispute ID."
+ foreign-key-id: "dispute-id"
+
+ - name: "created"
+ type: "string"
+ description: "Time at which the dispute was created. Measured in seconds since the Unix epoch."
+ replication-key: true
+
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "balance_transactions"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "id"
+ type: "string"
+ description: "The balance transaction ID."
+ foreign-key-id: "balance-transaction-id"
+
+
+ - name: "charge"
+ type: "string"
+ description: "The ID of the disputed charge."
+ foreign-key-id: "charge-id"
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "evidence"
+ type: "string, object"
+ description: ""
+ subattributes:
+ - name: "refund_policy"
+ type: "string"
+ description: ""
+
+ - name: "shipping_address"
+ type: "string"
+ description: ""
+
+ - name: "duplicate_charge_explanation"
+ type: "string"
+ description: ""
+
+ - name: "shipping_tracking_number"
+ type: "string"
+ description: ""
+
+ - name: "customer_signature"
+ type: "string"
+ description: ""
+
+ - name: "uncategorized_text"
+ type: "string"
+ description: ""
+
+ - name: "cancellation_policy_disclosure"
+ type: "string"
+ description: ""
+
+ - name: "refund_policy_disclosure"
+ type: "string"
+ description: ""
+
+ - name: "receipt"
+ type: "string"
+ description: ""
+
+ - name: "customer_name"
+ type: "string"
+ description: ""
+
+ - name: "refund_refusal_explanation"
+ type: "string"
+ description: ""
+
+ - name: "cancellation_rebuttal"
+ type: "string"
+ description: ""
+
+ - name: "product_description"
+ type: "string"
+ description: ""
+
+ - name: "shipping_date"
+ type: "string"
+ description: ""
+
+ - name: "customer_email_address"
+ type: "string"
+ description: ""
+
+ - name: "duplicate_charge_id"
+ type: "string"
+ description: ""
+
+ - name: "shipping_documentation"
+ type: "string"
+ description: ""
+
+ - name: "access_activity_log"
+ type: "string"
+ description: ""
+
+ - name: "customer_purchase_ip"
+ type: "string"
+ description: ""
+
+ - name: "service_date"
+ type: "string"
+ description: ""
+
+ - name: "shipping_carrier"
+ type: "string"
+ description: ""
+
+ - name: "service_documentation"
+ type: "string"
+ description: ""
+
+ - name: "duplicate_charge_documentation"
+ type: "string"
+ description: ""
+
+ - name: "cancellation_policy"
+ type: "string"
+ description: ""
+
+ - name: "customer_communication"
+ type: "string"
+ description: ""
+
+ - name: "uncategorized_file"
+ type: "string"
+ description: ""
+
+ - name: "billing_address"
+ type: "string"
+ description: ""
+
+
+ - name: "evidence_details"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "due_by"
+ type: "string"
+ description: ""
+
+ - name: "has_evidence"
+ type: "boolean"
+ description: ""
+
+ - name: "past_due"
+ type: "boolean"
+ description: ""
+
+ - name: "submission_count"
+ type: "integer"
+ description: ""
+
+ - name: "is_charge_refundable"
+ type: "boolean"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "reason"
+ type: "string"
+ description: ""
+
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "updated"
+ type: "string"
+ description: ""
+
+ - name: "updated_by_event_type"
+ type: "string"
+ description: "Description of the event"
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/stripe/v3/events.md b/archive/_integration-schemas/stripe/v3/events.md
new file mode 100644
index 000000000..103593447
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v3/events.md
@@ -0,0 +1,65 @@
+---
+tap: "stripe"
+version: "3"
+key: ""
+
+name: "events"
+doc-link: "https://stripe.com/docs/api/events"
+singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/events.json
+description: |
+ The `{{ table.name }}` table contains info about [events](https://stripe.com/docs/api/events){:target="new"}. When an event occurs, a new event object is created. This table acts as the history of an object, allowing you to see how it has changed over time.
+
+ For example: When an invoice is created, an `invoice.created` event is created. When the draft invoice is finalized and updated to be open, an `invoice.finalized` event is created. When the invoice is sent to the customer, an `invoice.sent` event is created.
+
+ For more info about this table and how data is replicated, refer to the [Replication](#replication) section. Additionally, refer to [{{ integration.display_name }}'s documentation](https://stripe.com/docs/api/events/types){:target="new"} for info about event types and the objects they describe.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all events"
+ doc-link: "https://stripe.com/docs/api/events/list"
+
+attributes:
+ - name: "id"
+ type: "string"
+ description: "The event ID."
+ primary-key: true
+ foreign-key-id: "event-id"
+
+ - name: "created"
+ type: "string"
+ replication-key: true
+ description: "The time at which the object was created. Measured in seconds since the Unix epoch."
+
+ - name: "api_version"
+ type: "string"
+ description: ""
+
+ - name: "data"
+ type: "object"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "pending_webhooks"
+ type: "integer"
+ description: ""
+
+ - name: "request"
+ type: "string"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+ - name: "updated"
+ type: "string"
+ description: ""
+---
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v3/foreign-keys.md b/archive/_integration-schemas/stripe/v3/foreign-keys.md
similarity index 100%
rename from _integration-schemas/stripe/v3/foreign-keys.md
rename to archive/_integration-schemas/stripe/v3/foreign-keys.md
diff --git a/archive/_integration-schemas/stripe/v3/invoice_items.md b/archive/_integration-schemas/stripe/v3/invoice_items.md
new file mode 100644
index 000000000..500797fae
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v3/invoice_items.md
@@ -0,0 +1,293 @@
+---
+tap: "stripe"
+version: "3"
+key: ""
+
+name: "invoice_items"
+doc-link:
+singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/invoice_items.json
+description: |
+ The `{{ table.name }}` table contains info about items contained in customer invoices.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all invoice items"
+ doc-link: "https://stripe.com/docs/api/invoiceitems/list"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The invoice item ID."
+ foreign-key-id: "invoice-item-id"
+
+ - name: "date"
+ type: "string"
+ replication-key: true
+ description: "The date the invoice item was added to the invoice."
+
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "customer"
+ type: "string"
+ description: "The ID of the customer who will be billed for the invoice item."
+ foreign-key-id: "customer-id"
+
+ - name: "description"
+ type: "string"
+ description: ""
+
+ - name: "discountable"
+ type: "boolean"
+ description: ""
+
+ - name: "discounts"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "items"
+ type: "string"
+ description: ""
+
+ - name: "invoice"
+ type: "string"
+ description: "The ID of the invoice associated with the invoice item."
+ foreign-key-id: "invoice-id"
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "period"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "end"
+ type: "string"
+ description: ""
+
+ - name: "start"
+ type: "string"
+ description: ""
+
+
+ - name: "plan"
+ type: "object, string"
+ description: ""
+ subattributes:
+ - name: "nickname"
+ type: "string"
+ description: ""
+
+ - name: "updated_by_event_type"
+ type: "string"
+ description: "Description of the event"
+
+ - name: "amount_decimal"
+ type: "string"
+ description: ""
+
+ - name: "tiers"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "flat_amount"
+ type: "integer"
+ description: ""
+
+ - name: "unit_amount"
+ type: "integer"
+ description: ""
+
+ - name: "up_to"
+ type: "integer"
+ description: ""
+
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "aggregate_usage"
+ type: "string"
+ description: ""
+
+ - name: "created"
+ type: "string"
+ description: ""
+
+ - name: "statement_description"
+ type: "string"
+ description: ""
+
+ - name: "product"
+ type: "string"
+ description: "The product whose pricing this plan determines."
+ foreign-key-id: "product-id"
+
+ - name: "statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "interval_count"
+ type: "integer"
+ description: ""
+
+ - name: "transform_usage"
+ type: "object"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "interval"
+ type: "string"
+ description: ""
+
+ - name: "id"
+ type: "string"
+ description: "The plan ID."
+ foreign-key-id: "plan-id"
+
+ - name: "trial_period_days"
+ type: "integer"
+ description: ""
+
+ - name: "usage_type"
+ type: "string"
+ description: ""
+
+ - name: "active"
+ type: "boolean"
+ description: ""
+
+ - name: "tiers_mode"
+ type: "string"
+ description: ""
+
+ - name: "billing_scheme"
+ type: "string"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "updated"
+ type: "string"
+ description: ""
+
+
+ - name: "proration"
+ type: "boolean"
+ description: ""
+
+ - name: "quantity"
+ type: "integer"
+ description: ""
+
+ - name: "subscription"
+ type: "string"
+ description: ""
+
+ - name: "subscription_item"
+ type: "string"
+ description: ""
+
+ - name: "tax_rates"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "id"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "active"
+ type: "boolean"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "created"
+ type: "string"
+ description: ""
+
+ - name: "description"
+ type: "string"
+ description: ""
+
+ - name: "display_name"
+ type: "string"
+ description: ""
+
+ - name: "inclusive"
+ type: "boolean"
+ description: ""
+
+ - name: "jurisdiction"
+ type: "string"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "percentage"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+
+ - name: "unit_amount"
+ type: "integer"
+ description: ""
+
+ - name: "unit_amount_decimal"
+ type: "string"
+ description: ""
+
+ - name: "updated"
+ type: "string"
+ description: ""
+
+ - name: "updated_by_event_type"
+ type: "string"
+ description: "Description of the event"
+---
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v3/invoice_line_items.md b/archive/_integration-schemas/stripe/v3/invoice_line_items.md
similarity index 100%
rename from _integration-schemas/stripe/v3/invoice_line_items.md
rename to archive/_integration-schemas/stripe/v3/invoice_line_items.md
diff --git a/archive/_integration-schemas/stripe/v3/invoices.md b/archive/_integration-schemas/stripe/v3/invoices.md
new file mode 100644
index 000000000..227f5b28e
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v3/invoices.md
@@ -0,0 +1,746 @@
+---
+tap: "stripe"
+version: "3"
+key: ""
+
+name: "invoices"
+doc-link: "https://stripe.com/docs/api/invoices"
+singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/invoices.json
+description: |
+ The `{{ table.name }}` table contains info about invoices. Invoices are statements of amounts owed by customers, which can be one-off charges or generated periodically from a subscription.
+
+ #### Invoice line items
+
+ Full records for the line items associated with an invoice can be found in the [`invoice_line_items`](#invoice_line_items) table. To replicate these records, you must set this table and the `invoice_line_items` table to replicate.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all invoices"
+ doc-link: "https://stripe.com/docs/api/invoices/list"
+
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The invoice ID."
+ foreign-key-id: "invoice-id"
+
+ - name: "created"
+ type: "date-time"
+ replication-key: true
+ description: "The time at which the invoice was created. Measured in seconds since the Unix epoch."
+
+ - name: "account_country"
+ type: "string"
+ description: ""
+
+ - name: "account_name"
+ type: "string"
+ description: ""
+
+ - name: "account_tax_ids"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "items"
+ type: "string"
+ description: ""
+
+ - name: "amount_due"
+ type: "integer"
+ description: ""
+
+ - name: "amount_paid"
+ type: "integer"
+ description: ""
+
+ - name: "amount_remaining"
+ type: "integer"
+ description: ""
+
+ - name: "application_fee"
+ type: "integer"
+ description: ""
+
+ - name: "application_fee_amount"
+ type: "integer"
+ description: "The fee in cents that will be applied to the invoice and transferred to the application owner’s Stripe account when the invoice is paid."
+
+ - name: "attempt_count"
+ type: "integer"
+ description: ""
+
+ - name: "attempted"
+ type: "boolean"
+ description: ""
+
+ - name: "auto_advance"
+ type: "boolean"
+ description: ""
+
+ - name: "automatic_tax"
+ type: "object"
+ description: "Settings and latest results for automatic tax lookup for this invoice."
+ subattributes:
+ - name: "enabled"
+ type: "boolean"
+ description: "Whether Stripe automatically computes tax on this invoice."
+
+ - name: "status"
+ type: "string"
+ description: "The status of the most recent automated tax calculation for this invoice."
+
+
+ - name: "billing"
+ type: "string"
+ description: ""
+
+ - name: "billing_reason"
+ type: "string"
+ description: ""
+
+ - name: "charge"
+ type: "string"
+ description: "The ID of the latest charge generated for this invoice."
+ foreign-key-id: "charge-id"
+
+ - name: "closed"
+ type: "boolean"
+ description: ""
+
+ - name: "collection_method"
+ type: "string"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "custom_fields"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "name"
+ type: "string"
+ description: "The name of the custom field."
+
+ - name: "value"
+ type: "string"
+ description: "The value of the custom field."
+
+
+ - name: "customer"
+ type: "string"
+ description: "The ID of the customer associated with the invoice."
+ foreign-key-id: "customer-id"
+
+ - name: "customer_address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "line1"
+ type: "string"
+ description: ""
+
+ - name: "line2"
+ type: "string"
+ description: ""
+
+ - name: "postal_code"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+
+ - name: "customer_email"
+ type: "string"
+ description: ""
+
+ - name: "customer_name"
+ type: "string"
+ description: ""
+
+ - name: "customer_phone"
+ type: "string"
+ description: ""
+
+ - name: "customer_shipping"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "city"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "line1"
+ type: "string"
+ description: ""
+
+ - name: "line2"
+ type: "string"
+ description: ""
+
+ - name: "postal_code"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "phone"
+ type: "string"
+ description: ""
+
+
+ - name: "customer_tax_exempt"
+ type: "string"
+ description: ""
+
+ - name: "customer_tax_ids"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "type"
+ type: "string"
+ description: ""
+
+ - name: "value"
+ type: "string"
+ description: ""
+
+
+ - name: "date"
+ type: "date-time"
+ description: ""
+
+ - name: "default_payment_method"
+ type: "string"
+ description: ""
+
+ - name: "default_source"
+ type: "string"
+ description: ""
+
+ - name: "default_tax_rates"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "id"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "active"
+ type: "boolean"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "created"
+ type: "date-time"
+ description: ""
+
+ - name: "description"
+ type: "string"
+ description: ""
+
+ - name: "display_name"
+ type: "string"
+ description: ""
+
+ - name: "inclusive"
+ type: "boolean"
+ description: ""
+
+ - name: "jurisdiction"
+ type: "string"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "percentage"
+ type: "string"
+ format: "singer.decimal"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+
+ - name: "description"
+ type: "string"
+ description: ""
+
+ - name: "discount"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "end"
+ type: "date-time"
+ description: ""
+
+ - name: "coupon"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "valid"
+ type: "boolean"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "amount_off"
+ type: "integer"
+ description: ""
+
+ - name: "redeem_by"
+ type: "date-time"
+ description: ""
+
+ - name: "duration_in_months"
+ type: "integer"
+ description: ""
+
+ - name: "percent_off_precise"
+ type: "number"
+ description: ""
+
+ - name: "max_redemptions"
+ type: "integer"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "times_redeemed"
+ type: "integer"
+ description: ""
+
+ - name: "id"
+ type: "string"
+ description: "The coupon ID."
+ foreign-key-id: "coupon-id"
+
+ - name: "duration"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "percent_off"
+ type: "number"
+ description: ""
+
+ - name: "created"
+ type: "string"
+ format: "date-time"
+ description: ""
+
+
+ - name: "customer"
+ type: "string"
+ description: "The ID of the customer the discount applies to."
+ foreign-key-id: "customer-id"
+
+ - name: "start"
+ type: "string"
+ format: "date-time"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "subscription"
+ type: "string"
+ description: "The subscription that this coupon is applied to, if it is applied to a particular subscription."
+ foreign-key-id: "subscription-id"
+
+ - name: "checkout_session"
+ type: "string"
+ description: "The Checkout session that this coupon is applied to, if it is applied to a particular session in payment mode. Will not be present for subscription mode."
+
+ - name: "id"
+ type: "string"
+ description: "The ID of the discount object."
+
+ - name: "invoice"
+ type: "string"
+ description: "The invoice that the discount’s coupon was applied to, if it was applied directly to a particular invoice."
+
+ - name: "invoice_item"
+ type: "string"
+ description: "The invoice item id (or invoice line item id for invoice line items of type=‘subscription’) that the discount’s coupon was applied to, if it was applied directly to a particular invoice item or invoice line item."
+
+ - name: "promotion_code"
+ type: "string"
+ description: "The promotion code applied to create this discount."
+
+
+ - name: "discounts"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "items"
+ type: "string"
+ description: ""
+
+ - name: "due_date"
+ type: "string"
+ format: "date-time"
+ description: ""
+
+ - name: "ending_balance"
+ type: "integer"
+ description: ""
+
+ - name: "finalized_at"
+ type: "string"
+ format: "date-time"
+ description: ""
+
+ - name: "footer"
+ type: "string"
+ description: ""
+
+ - name: "forgiven"
+ type: "boolean"
+ description: ""
+
+ - name: "hosted_invoice_url"
+ type: "string"
+ description: ""
+
+ - name: "invoice_pdf"
+ type: "string"
+ description: ""
+
+ - name: "last_finalization_error"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "code"
+ type: "string"
+ description: ""
+
+ - name: "doc_url"
+ type: "string"
+ description: ""
+
+ - name: "message"
+ type: "string"
+ description: ""
+
+ - name: "param"
+ type: "string"
+ description: ""
+
+ - name: "payment_method_type"
+ type: "string"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+
+ - name: "lines"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "items"
+ type: "string"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "next_payment_attempt"
+ type: "date-time"
+ description: ""
+
+ - name: "number"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "on_behalf_of"
+ type: "string, object"
+ description: "The account (if any) for which the funds of the invoice payment are intended. If set, the invoice will be presented with the branding and support information of the specified account."
+
+ - name: "paid"
+ type: "boolean"
+ description: ""
+
+ - name: "paid_out_of_band"
+ type: "boolean"
+ description: "Returns true if the invoice was manually marked paid, returns false if the invoice hasn’t been paid yet or was paid on Stripe."
+
+ - name: "payment"
+ type: "string"
+ description: ""
+
+ - name: "payment_intent"
+ type: "string"
+ description: ""
+
+ - name: "payment_settings"
+ type: "object"
+ description: "Configuration settings for the PaymentIntent that is generated when the invoice is finalized."
+ subattributes:
+ - name: "payment_method_options"
+ type: "object"
+ description: "Payment-method-specific configuration to provide to the invoice’s PaymentIntent."
+ subattributes:
+ - name: "acss_debit"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "mandate_options"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "transaction_type"
+ type: "string"
+ description: ""
+
+
+ - name: "verification_method"
+ type: "string"
+ description: ""
+
+
+ - name: "bancontact"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "preferred_language"
+ type: "string"
+ description: ""
+
+
+ - name: "card"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "request_three_d_secure"
+ type: "string"
+ description: ""
+
+
+
+ - name: "payment_method_types"
+ type: "array"
+ description: "The list of payment method types (e.g. card) to provide to the invoice’s PaymentIntent"
+ subattributes:
+ - name: "items"
+ type: "string"
+ description: ""
+
+
+ - name: "period_end"
+ type: "date-time"
+ description: ""
+
+ - name: "period_start"
+ type: "date-time"
+ description: ""
+
+ - name: "post_payment_credit_notes_amount"
+ type: "integer"
+ description: ""
+
+ - name: "pre_payment_credit_notes_amount"
+ type: "integer"
+ description: ""
+
+ - name: "quote"
+ type: "object, string"
+ description: ""
+
+ - name: "receipt_number"
+ type: "string"
+ description: ""
+
+ - name: "starting_balance"
+ type: "integer"
+ description: ""
+
+ - name: "statement_description"
+ type: "string"
+ description: ""
+
+ - name: "statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "status_transitions"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "finalized_at"
+ type: "date-time"
+ description: ""
+
+ - name: "marked_uncollectible_at"
+ type: "date-time"
+ description: ""
+
+ - name: "paid_at"
+ type: "date-time"
+ description: ""
+
+ - name: "voided_at"
+ type: "date-time"
+ description: ""
+
+
+ - name: "subscription"
+ type: "string"
+ description: "The ID that the invoice was prepared for."
+ foreign-key-id: "subscription-id"
+
+ - name: "subscription_details"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "metadata"
+ type: "string"
+ description: ""
+
+
+ - name: "subtotal"
+ type: "integer"
+ description: ""
+
+ - name: "tax"
+ type: "integer"
+ description: ""
+
+ - name: "tax_percent"
+ type: "number"
+ description: ""
+
+ - name: "total"
+ type: "integer"
+ description: ""
+
+ - name: "total_discount_amounts"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "discount"
+ type: "string"
+ description: ""
+
+
+ - name: "total_tax_amounts"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "inclusive"
+ type: "boolean"
+ description: ""
+
+ - name: "tax_rate"
+ type: "string"
+ description: ""
+
+
+ - name: "transfer_data"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "destination"
+ type: "string"
+ description: ""
+
+
+ - name: "updated"
+ type: "date-time"
+ description: ""
+
+ - name: "updated_by_event_type"
+ type: "string"
+ description: ""
+
+ - name: "webhooks_delivered_at"
+ type: "date-time"
+ description: ""
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/stripe/v3/payment_intents.md b/archive/_integration-schemas/stripe/v3/payment_intents.md
new file mode 100644
index 000000000..5397870ee
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v3/payment_intents.md
@@ -0,0 +1,719 @@
+---
+tap: "stripe"
+version: "3"
+key: ""
+
+name: "payment_intents"
+doc-link: "https://stripe.com/docs/payments/payment-intents"
+singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/payment_intents.json
+description: |
+ This table contains information about payments, from creation through checkout, in your {{ integration.display_name }} account.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all payment intents"
+ doc-link: "https://stripe.com/docs/api/payment_intents/list"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The payment intent ID."
+ foreign-key-id: "payment-intent-id"
+
+ - name: "created"
+ type: "date-time"
+ description: "Time at which the dispute was created. Measured in seconds since the Unix epoch."
+ replication-key: true
+
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "amount_capturable"
+ type: "integer"
+ description: ""
+
+ - name: "amount_received"
+ type: "integer"
+ description: ""
+
+ - name: "application"
+ type: "string"
+ description: ""
+
+ - name: "application_fee_amount"
+ type: "integer"
+ description: ""
+
+ - name: "automatic_payment_methods"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "enabled"
+ type: "boolean"
+ description: ""
+
+
+ - name: "canceled_at"
+ type: "date-time"
+ description: ""
+
+ - name: "cancellation_reason"
+ type: "string"
+ description: ""
+
+ - name: "capture_method"
+ type: "string"
+ description: ""
+
+ - name: "client_secret"
+ type: "string"
+ description: ""
+
+ - name: "confirmation_method"
+ type: "string"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "customer"
+ type: "string"
+ description: ""
+
+ - name: "description"
+ type: "string"
+ description: ""
+
+ - name: "invoice"
+ type: "string"
+ description: ""
+
+ - name: "last_payment_error"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "charge"
+ type: "string"
+ description: ""
+
+ - name: "code"
+ type: "string"
+ description: ""
+
+ - name: "decline_code"
+ type: "string"
+ description: ""
+
+ - name: "doc_url"
+ type: "string"
+ description: ""
+
+ - name: "message"
+ type: "string"
+ description: ""
+
+ - name: "param"
+ type: "string"
+ description: ""
+
+ - name: "payment_method_type"
+ type: "string"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+
+ - name: "latest_charge"
+ type: "string"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "next_action"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "alipay_handle_redirect"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "native_data"
+ type: "string"
+ description: ""
+
+ - name: "native_url"
+ type: "string"
+ description: ""
+
+ - name: "return_url"
+ type: "string"
+ description: ""
+
+ - name: "url"
+ type: "string"
+ description: ""
+
+
+ - name: "boleto_display_details"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "expires_at"
+ type: "date-time"
+ description: ""
+
+ - name: "hosted_voucher_url"
+ type: "string"
+ description: ""
+
+ - name: "number"
+ type: "string"
+ description: ""
+
+ - name: "pdf"
+ type: "string"
+ description: ""
+
+
+ - name: "oxxo_display_details"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "expires_after"
+ type: "date-time"
+ description: ""
+
+ - name: "hosted_voucher_url"
+ type: "string"
+ description: ""
+
+ - name: "number"
+ type: "string"
+ description: ""
+
+
+ - name: "redirect_to_url"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "return_url"
+ type: "string"
+ description: ""
+
+ - name: "url"
+ type: "string"
+ description: ""
+
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+ - name: "use_stripe_sdk"
+ type: "object"
+ description: ""
+
+ - name: "verify_with_microdeposits"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "arrival_date"
+ type: "date-time"
+ description: ""
+
+ - name: "hosted_verification_url"
+ type: "string"
+ description: ""
+
+
+ - name: "wechat_pay_display_qr_code"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "data"
+ type: "string"
+ description: ""
+
+ - name: "image_data_url"
+ type: "string"
+ description: ""
+
+ - name: "image_url_png"
+ type: "string"
+ description: ""
+
+ - name: "image_url_svg"
+ type: "string"
+ description: ""
+
+
+ - name: "wechat_pay_redirect_to_android_app"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "app_id"
+ type: "string"
+ description: ""
+
+ - name: "nonce_str"
+ type: "string"
+ description: ""
+
+ - name: "package"
+ type: "string"
+ description: ""
+
+ - name: "partner_id"
+ type: "string"
+ description: ""
+
+ - name: "prepay_id"
+ type: "string"
+ description: ""
+
+ - name: "sign"
+ type: "string"
+ description: ""
+
+ - name: "timestamp"
+ type: "string"
+ description: ""
+
+
+ - name: "wechat_pay_redirect_to_ios_app"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "native_url"
+ type: "string"
+ description: ""
+
+
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "on_behalf_of"
+ type: "string"
+ description: ""
+
+ - name: "payment_method"
+ type: "string"
+ description: ""
+
+ - name: "payment_method_options"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "acss_debit"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "mandate_options"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "custom_mandate_url"
+ type: "string"
+ description: ""
+
+ - name: "interval_description"
+ type: "string"
+ description: ""
+
+ - name: "payment_schedule"
+ type: "string"
+ description: ""
+
+ - name: "transaction_type"
+ type: "string"
+ description: ""
+
+
+
+ - name: "afterpay_clearpay"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "reference"
+ type: "string"
+ description: ""
+
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "alipay"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "au_becs_debit"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "bacs_debit"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "bancontact"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+ - name: "preferred_language"
+ type: "string"
+ description: ""
+
+
+ - name: "boleto"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+ - name: "expires_after_days"
+ type: "integer"
+ description: ""
+
+
+ - name: "card"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "installments"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "available_plans"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "count"
+ type: "integer"
+ description: ""
+
+ - name: "interval"
+ type: "string"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+
+ - name: "enabled"
+ type: "boolean"
+ description: ""
+
+ - name: "plan"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "count"
+ type: "integer"
+ description: ""
+
+ - name: "interval"
+ type: "string"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+
+
+ - name: "network"
+ type: "string"
+ description: ""
+
+ - name: "request_three_d_secure"
+ type: "string"
+ description: ""
+
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "card_present"
+ type: "object"
+ description: ""
+
+ - name: "eps"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "fps"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "giropay"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "grabpay"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "ideal"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "interac_present"
+ type: "object"
+ description: ""
+
+ - name: "klarna"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "preferred_locale"
+ type: "string"
+ description: ""
+
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "oxxo"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "expires_after_days"
+ type: "integer"
+ description: ""
+
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "p24"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "sepa_debit"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "mandate_options"
+ type: "object"
+ description: ""
+
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "sofort"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "preferred_language"
+ type: "string"
+ description: ""
+
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+ - name: "wechat_pay"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "app_id"
+ type: "string"
+ description: ""
+
+ - name: "client"
+ type: "string"
+ description: ""
+
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+
+
+ - name: "payment_method_types"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "items"
+ type: ""
+ description: ""
+
+ - name: "processing"
+ type: "object"
+ description: ""
+
+ - name: "receipt_email"
+ type: "string"
+ description: ""
+
+ - name: "review"
+ type: "string"
+ description: ""
+
+ - name: "setup_future_usage"
+ type: "string"
+ description: ""
+
+ - name: "shipping"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "address"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "line2"
+ type: "string"
+ description: ""
+
+ - name: "state"
+ type: "string"
+ description: ""
+
+ - name: "city"
+ type: "string"
+ description: ""
+
+ - name: "postal_code"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "line1"
+ type: "string"
+ description: ""
+
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "phone"
+ type: "string"
+ description: ""
+
+ - name: "carrier"
+ type: "string"
+ description: ""
+
+ - name: "tracking_number"
+ type: "string"
+ description: ""
+
+
+ - name: "source"
+ type: "string"
+ description: ""
+
+ - name: "statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "statement_descriptor_suffix"
+ type: "string"
+ description: ""
+
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "transfer_data"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "destination"
+ type: "string"
+ description: ""
+
+
+ - name: "transfer_group"
+ type: "string"
+ description: ""
+
+ - name: "updated"
+ type: "date-time"
+ description: ""
+
+ - name: "updated_by_event_type"
+ type: "string"
+ description: ""
+---
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v3/payout_transactions.md b/archive/_integration-schemas/stripe/v3/payout_transactions.md
similarity index 100%
rename from _integration-schemas/stripe/v3/payout_transactions.md
rename to archive/_integration-schemas/stripe/v3/payout_transactions.md
diff --git a/archive/_integration-schemas/stripe/v3/payouts.md b/archive/_integration-schemas/stripe/v3/payouts.md
new file mode 100644
index 000000000..60db01d78
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v3/payouts.md
@@ -0,0 +1,200 @@
+---
+tap: "stripe"
+version: "3"
+key: ""
+
+name: "payouts"
+doc-link: "https://stripe.com/docs/api/payouts"
+singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/payouts.json
+description: |
+ The `{{ table.name }}` table contains info about payouts, which occur when you receive funds from {{ integration.display_name }} or initiate a payout to a bank account of the debit card of a connected {{ integration.display_name }} account.
+
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all payouts"
+ doc-link: "https://stripe.com/docs/api/payouts/list"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The payout ID."
+ foreign-key-id: "payout-id"
+
+ - name: "created"
+ type: "string"
+ replication-key: true
+ description: "The time at which the payout was created. Measured in seconds since the Unix epoch."
+
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "amount_reversed"
+ type: "integer"
+ description: ""
+
+ - name: "arrival_date"
+ type: "string"
+ description: ""
+
+ - name: "automatic"
+ type: "boolean"
+ description: ""
+
+ - name: "balance_transaction"
+ type: "string"
+ description: "The ID of the balance transaction that describes the impact of this payout on your account balance."
+ foreign-key-id: "balance-transaction-id"
+
+ - name: "bank_account"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "routing_number"
+ type: "string"
+ description: ""
+
+ - name: "account_holder_type"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "id"
+ type: "string"
+ description: ""
+
+ - name: "bank_name"
+ type: "string"
+ description: ""
+
+ - name: "last4"
+ type: "string"
+ description: ""
+
+ - name: "fingerprint"
+ type: "string"
+ description: ""
+
+ - name: "account_holder_name"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "country"
+ type: "string"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "date"
+ type: "string"
+ description: ""
+
+ - name: "description"
+ type: "string"
+ description: ""
+
+ - name: "destination"
+ type: "string"
+ description: ""
+
+ - name: "failure_balance_transaction"
+ type: "string"
+ description: "If the payout failed or was canceled, this will be the ID of the balance transaction that reversed the initial balance transaction, and puts the funds from the failed payout back in your balance."
+ foreign-key-id: "balance-transaction-id"
+
+ - name: "failure_code"
+ type: "string"
+ description: ""
+
+ - name: "failure_message"
+ type: "string"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "method"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "original_payout"
+ type: "string"
+ description: ""
+
+ - name: "recipient"
+ type: "string"
+ description: ""
+
+ - name: "reversed_by"
+ type: "string"
+ description: ""
+
+ - name: "source_transaction"
+ type: "string"
+ description: ""
+
+ - name: "source_type"
+ type: "string"
+ description: ""
+
+ - name: "statement_description"
+ type: "string"
+ description: ""
+
+ - name: "statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "transfer_group"
+ type: "string"
+ description: ""
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+ - name: "updated"
+ type: "string"
+ description: ""
+
+ - name: "updated_by_event_type"
+ type: "string"
+ description: "Description of the event"
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/stripe/v3/plans.md b/archive/_integration-schemas/stripe/v3/plans.md
new file mode 100644
index 000000000..7c8c4549d
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v3/plans.md
@@ -0,0 +1,135 @@
+---
+tap: "stripe"
+version: "3"
+key: ""
+
+name: "plans"
+doc-link: "https://stripe.com/docs/api/plans"
+singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/plans.json
+description: |
+ The `{{ table.name }}` table contains info about the plans in your {{ integration.display_name }} account. A plan defines the base price, currency, and billing cycle for subscriptions.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all plans"
+ doc-link: "https://stripe.com/docs/api/plans/list"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The plan ID."
+ foreign-key-id: "plan-id"
+
+ - name: "created"
+ type: "string"
+ replication-key: true
+ description: "Time at which the plan was created. Measured in seconds since the Unix epoch."
+
+ - name: "active"
+ type: "boolean"
+ description: ""
+
+ - name: "aggregate_usage"
+ type: "string"
+ description: ""
+
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "amount_decimal"
+ type: "string"
+ description: ""
+
+ - name: "billing_scheme"
+ type: "string"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "interval"
+ type: "string"
+ description: ""
+
+ - name: "interval_count"
+ type: "integer"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "nickname"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "product"
+ type: "string"
+ description: "The product whose pricing this plan determines."
+ foreign-key-id: "product-id"
+
+ - name: "statement_description"
+ type: "string"
+ description: ""
+
+ - name: "statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "tiers"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "flat_amount"
+ type: "integer"
+ description: ""
+
+ - name: "unit_amount"
+ type: "integer"
+ description: ""
+
+ - name: "up_to"
+ type: "integer"
+ description: ""
+
+
+ - name: "tiers_mode"
+ type: "string"
+ description: ""
+
+ - name: "transform_usage"
+ type: "object"
+ description: ""
+
+ - name: "trial_period_days"
+ type: "integer"
+ description: ""
+
+ - name: "updated"
+ type: "string"
+ description: ""
+
+ - name: "updated_by_event_type"
+ type: "string"
+ description: "Description of the event"
+
+ - name: "usage_type"
+ type: "string"
+ description: ""
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/stripe/v3/products.md b/archive/_integration-schemas/stripe/v3/products.md
new file mode 100644
index 000000000..b292f522f
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v3/products.md
@@ -0,0 +1,134 @@
+---
+tap: "stripe"
+version: "3"
+key: ""
+
+name: "products"
+doc-link: "https://stripe.com/docs/api/products"
+singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/products.json
+description: |
+ The `{{ table.name }}` table contains info about the products in your {{ integration.display_name }} account.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all products"
+ doc-link: "https://stripe.com/docs/api/products/list"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The product ID."
+ foreign-key-id: "product-id"
+
+ - name: "created"
+ type: "string"
+ replication-key: true
+ description: "Time at which the product was created. Measured in seconds since the Unix epoch."
+
+ - name: "active"
+ type: "boolean"
+ description: ""
+
+ - name: "attributes"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "items"
+ type: "string"
+ description: ""
+
+ - name: "caption"
+ type: "string"
+ description: ""
+
+ - name: "deactivate_on"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "items"
+ type: "string"
+ description: ""
+
+ - name: "description"
+ type: "string"
+ description: ""
+
+ - name: "images"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "items"
+ type: "string"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "package_dimensions"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "width"
+ type: "number"
+ description: ""
+
+ - name: "length"
+ type: "number"
+ description: ""
+
+ - name: "weight"
+ type: "number"
+ description: ""
+
+ - name: "height"
+ type: "number"
+ description: ""
+
+
+ - name: "shippable"
+ type: "boolean"
+ description: ""
+
+ - name: "statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "tax_code"
+ type: "string"
+ description: "A tax code ID."
+
+ - name: "type"
+ type: "string"
+ description: ""
+
+ - name: "unit_label"
+ type: "string"
+ description: ""
+
+ - name: "updated"
+ type: "string"
+ description: ""
+
+ - name: "updated_by_event_type"
+ type: "string"
+ description: "Description of the event"
+
+ - name: "url"
+ type: "string"
+ description: ""
+---
\ No newline at end of file
diff --git a/_integration-schemas/stripe/v3/subscription_items.md b/archive/_integration-schemas/stripe/v3/subscription_items.md
similarity index 100%
rename from _integration-schemas/stripe/v3/subscription_items.md
rename to archive/_integration-schemas/stripe/v3/subscription_items.md
diff --git a/archive/_integration-schemas/stripe/v3/subscriptions.md b/archive/_integration-schemas/stripe/v3/subscriptions.md
new file mode 100644
index 000000000..4423b3b71
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v3/subscriptions.md
@@ -0,0 +1,442 @@
+---
+tap: "stripe"
+version: "3"
+key: ""
+
+name: "subscriptions"
+doc-link: "https://stripe.com/docs/api/subscriptions"
+singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/subscriptions.json
+description: |
+ The `{{ table.name }}` table contains info about subscriptions, which allow you to charge a customer on a recurring basis. A subscription ties a customer to a particular [plan](#plans).
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List subscriptions"
+ doc-link: "https://stripe.com/docs/api/subscriptions/list"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The subscription ID."
+ foreign-key-id: "subscription-id"
+
+ - name: "created"
+ type: "string"
+ replication-key: true
+ description: "The time the subscription was created. Measured in second since the Unix epoch."
+
+ - name: "application_fee_percent"
+ type: "number"
+ description: ""
+
+ - name: "billing"
+ type: "string"
+ description: ""
+
+ - name: "billing_cycle_anchor"
+ type: "string"
+ description: ""
+
+ - name: "billing_thresholds"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "amount_gte"
+ type: "integer"
+ description: ""
+
+ - name: "reset_billing_cycle_anchor"
+ type: "boolean"
+ description: ""
+
+
+ - name: "cancel_at"
+ type: "string"
+ description: ""
+
+ - name: "cancel_at_period_end"
+ type: "boolean"
+ description: ""
+
+ - name: "canceled_at"
+ type: "string"
+ description: ""
+
+ - name: "collection_method"
+ type: "string"
+ description: ""
+
+ - name: "current_period_end"
+ type: "string"
+ description: ""
+
+ - name: "current_period_start"
+ type: "string"
+ description: ""
+
+ - name: "customer"
+ type: "string"
+ description: "The ID of the customer who owns the subscription."
+ foreign-key-id: "customer-id"
+
+ - name: "days_until_due"
+ type: "integer"
+ description: ""
+
+ - name: "default_payment_method"
+ type: "string"
+ description: ""
+
+ - name: "default_source"
+ type: "string"
+ description: ""
+
+ - name: "discount"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "end"
+ type: "string"
+ description: ""
+
+ - name: "coupon"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "valid"
+ type: "boolean"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "amount_off"
+ type: "integer"
+ description: ""
+
+ - name: "redeem_by"
+ type: "string"
+ description: ""
+
+ - name: "duration_in_months"
+ type: "integer"
+ description: ""
+
+ - name: "percent_off_precise"
+ type: "number"
+ description: ""
+
+ - name: "max_redemptions"
+ type: "integer"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "times_redeemed"
+ type: "integer"
+ description: ""
+
+ - name: "id"
+ type: "string"
+ description: "The coupon ID."
+ foreign-key-id: "coupon-id"
+
+ - name: "duration"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "percent_off"
+ type: "number"
+ description: ""
+
+ - name: "created"
+ type: "string"
+ description: ""
+
+
+ - name: "customer"
+ type: "string"
+ description: ""
+
+ - name: "start"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "subscription"
+ type: "string"
+ description: ""
+
+ - name: "checkout_session"
+ type: "string"
+ description: "The Checkout session that this coupon is applied to, if it is applied to a particular session in payment mode. Will not be present for subscription mode."
+
+ - name: "id"
+ type: "string"
+ description: "The ID of the discount object. "
+
+ - name: "invoice"
+ type: "string"
+ description: "The invoice that the discount’s coupon was applied to, if it was applied directly to a particular invoice."
+
+ - name: "invoice_item"
+ type: "string"
+ description: "The invoice item id (or invoice line item id for invoice line items of type=‘subscription’) that the discount’s coupon was applied to, if it was applied directly to a particular invoice item or invoice line item."
+
+ - name: "promotion_code"
+ type: "string"
+ description: "The promotion code applied to create this discount."
+
+
+ - name: "ended_at"
+ type: "string"
+ description: ""
+
+ - name: "invoice_customer_balance_settings"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "consume_applied_balance_on_void"
+ type: "boolean"
+ description: ""
+
+
+ - name: "items"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "items"
+ type: "string"
+ description: ""
+
+ - name: "latest_invoice"
+ type: "string"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "next_pending_invoice_item_invoice"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "pause_collection"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "behavior"
+ type: "string"
+ description: ""
+
+ - name: "resumes_at"
+ type: "string"
+ description: ""
+
+
+ - name: "pending_invoice_item_interval"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "interval"
+ type: "string"
+ description: ""
+
+ - name: "interval_count"
+ type: "integer"
+ description: ""
+
+
+ - name: "pending_setup_intent"
+ type: "string"
+ description: ""
+
+ - name: "plan"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "product"
+ type: "string"
+ description: "The product whose pricing this plan determines."
+ foreign-key-id: "product-id"
+
+ - name: "statement_description"
+ type: "string"
+ description: ""
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "tiers_mode"
+ type: "string"
+ description: ""
+
+ - name: "active"
+ type: "boolean"
+ description: ""
+
+ - name: "id"
+ type: "string"
+ description: "The plan ID."
+ foreign-key-id: "plan-id"
+
+ - name: "tiers"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "flat_amount"
+ type: "integer"
+ description: ""
+
+ - name: "unit_amount"
+ type: "integer"
+ description: ""
+
+ - name: "up_to"
+ type: "integer"
+ description: ""
+
+
+ - name: "created"
+ type: "string"
+ description: ""
+
+ - name: "nickname"
+ type: "string"
+ description: ""
+
+ - name: "transform_usage"
+ type: "object"
+ description: ""
+
+ - name: "interval_count"
+ type: "integer"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description: ""
+
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "interval"
+ type: "string"
+ description: ""
+
+ - name: "aggregate_usage"
+ type: "string"
+ description: ""
+
+ - name: "trial_period_days"
+ type: "integer"
+ description: ""
+
+ - name: "billing_scheme"
+ type: "string"
+ description: ""
+
+ - name: "statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "usage_type"
+ type: "string"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+
+ - name: "quantity"
+ type: "integer"
+ description: ""
+
+ - name: "schedule"
+ type: "string"
+ description: ""
+
+ - name: "start"
+ type: "string"
+ description: ""
+
+ - name: "start_date"
+ type: "string"
+ description: ""
+
+ - name: "status"
+ type: "string"
+ description: ""
+
+ - name: "tax_percent"
+ type: "number"
+ description: ""
+
+ - name: "transfer_data"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "amount_percent"
+ type: "string"
+ description: ""
+
+ - name: "destination"
+ type: "string"
+ description: ""
+
+
+ - name: "trial_end"
+ type: "string"
+ description: ""
+
+ - name: "trial_start"
+ type: "string"
+ description: ""
+
+ - name: "updated"
+ type: "string"
+ description: ""
+
+ - name: "updated_by_event_type"
+ type: "string"
+ description: "Description of the event"
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/stripe/v3/transfers.md b/archive/_integration-schemas/stripe/v3/transfers.md
new file mode 100644
index 000000000..8da05f7fa
--- /dev/null
+++ b/archive/_integration-schemas/stripe/v3/transfers.md
@@ -0,0 +1,127 @@
+---
+tap: "stripe"
+version: "3"
+key: ""
+
+name: "transfers"
+doc-link:
+singer-schema: https://github.com/singer-io/tap-stripe/tree/master/tap_stripe/schemas/transfers.json
+description: |
+ The `{{ table.name }}` table contains info about transfers sent to connected accounts.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "List all transfers"
+ doc-link: "https://stripe.com/docs/api/transfers/list"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The transfer ID."
+ foreign-key-id: "transfer-id"
+
+ - name: "created"
+ type: "string"
+ replication-key: true
+ description: "The time the transfer was created. Measured in seconds since the Unix epoch."
+
+ - name: "amount"
+ type: "integer"
+ description: ""
+
+ - name: "amount_reversed"
+ type: "integer"
+ description: ""
+
+ - name: "arrival_date"
+ type: "string"
+ description: ""
+
+ - name: "automatic"
+ type: "boolean"
+ description: ""
+
+ - name: "balance_transaction"
+ type: "string"
+ description: "The ID of the balance transaction that describes the impact of the transfer on your account balance."
+ foreign-key-id: "balance-transaction-id"
+
+ - name: "currency"
+ type: "string"
+ description: ""
+
+ - name: "date"
+ type: "string"
+ description: ""
+
+ - name: "description"
+ type: "string"
+ description: ""
+
+ - name: "destination"
+ type: "string"
+ description: ""
+
+ - name: "failure_balance_transaction"
+ type: "string"
+ description: "If the transfer failed or was canceled, this will be the ID of the balance transaction that reversed the initial balance transaction, and puts the funds from the failed payout back in your balance."
+ foreign-key-id: "balance-transaction-id"
+
+ - name: "livemode"
+ type: "boolean"
+ description: ""
+
+ - name: "metadata"
+ type: "object"
+ description: ""
+
+ - name: "object"
+ type: "string"
+ description: ""
+
+ - name: "recipient"
+ type: "string"
+ description: ""
+
+ - name: "reversals"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "items"
+ type: "object"
+ description: ""
+
+ - name: "reversed"
+ type: "boolean"
+ description: ""
+
+ - name: "source_transaction"
+ type: "string"
+ description: ""
+
+ - name: "source_type"
+ type: "string"
+ description: ""
+
+ - name: "statement_description"
+ type: "string"
+ description: ""
+
+ - name: "statement_descriptor"
+ type: "string"
+ description: ""
+
+ - name: "transfer_group"
+ type: "string"
+ description: ""
+
+ - name: "updated"
+ type: "string"
+ description: ""
+
+ - name: "updated_by_event_type"
+ type: "string"
+ description: "Description of the event"
+---
\ No newline at end of file
diff --git a/_integration-schemas/surveymonkey/v1/foreign-keys.md b/archive/_integration-schemas/surveymonkey/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/surveymonkey/v1/foreign-keys.md
rename to archive/_integration-schemas/surveymonkey/v1/foreign-keys.md
diff --git a/archive/_integration-schemas/surveymonkey/v1/responses.md b/archive/_integration-schemas/surveymonkey/v1/responses.md
new file mode 100644
index 000000000..3e7951e60
--- /dev/null
+++ b/archive/_integration-schemas/surveymonkey/v1/responses.md
@@ -0,0 +1,151 @@
+---
+tap: "surveymonkey"
+version: "1"
+key: ""
+
+name: "responses"
+doc-link: "https://developer.surveymonkey.com/api/v3/"
+singer-schema: "https://github.com/singer-io/tap-surveymonkey/blob/master/tap_surveymonkey/schemas/responses.json"
+description: "This table contains information about your survey responses."
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "GET Survey Responses"
+ doc-link: "https://developer.surveymonkey.com/api/v3/#collectors-id-responses-id-details"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The response ID."
+ foreign-key-id: "response-id"
+
+ - name: "date_modified"
+ type: "date-time"
+ description: "The date the response was last modified."
+ replication-key: true
+
+ - name: "analyze_url"
+ type: "string"
+ description: "The weblink to the analyze page to view the response."
+
+ - name: "collection_mode"
+ type: "string"
+ description: |
+ The collection mode of the response: `default`, `preview`, `data_entry`, `survey_preview`, or `edit`.
+
+ - name: "collector_id"
+ type: "string"
+ description: "The ID of the collector the response was taken for."
+
+ - name: "custom_value"
+ type: "string"
+ description: "The custom value associated with a response."
+
+ - name: "custom_variables"
+ type: "object"
+ description: "The values to any available custom variables in the survey."
+
+ - name: "date_created"
+ type: "date-time"
+ description: "The date the response was created."
+
+ - name: "edit_url"
+ type: "string"
+ description: "The weblink to the survey taking page to edit the response."
+
+ - name: "email_address"
+ type: "string"
+ description: "The email address of the responder."
+
+ - name: "first_name"
+ type: "string"
+ description: "The first name of the responder."
+
+ - name: "href"
+ type: "string"
+ description: "The **Resource API** URL."
+
+ - name: "ip_address"
+ type: "string"
+ description: "The IP Address the response was taken from."
+
+ - name: "last_name"
+ type: "string"
+ description: "The last name of the responder."
+
+ - name: "logic_path"
+ type: "object"
+ description: "The logic path taken during the survey."
+
+ - name: "metadata"
+ type: "object"
+ description: "Other associated metadata or custom values."
+
+ - name: "page_path"
+ type: "array"
+ description: "The order in which the pages were responded to."
+ subattributes:
+ - name: "value"
+ type: "string"
+ description: ""
+
+ - name: "pages"
+ type: "array"
+ description: "Pages from the survey and their associated responses."
+ subattributes:
+ - name: "id"
+ type: "string"
+ description: "The ID of the page with responses."
+ - name: "questions"
+ type: "array"
+ description: "The questions on that page with responses."
+ subattributes:
+ - name: "answers"
+ type: "array"
+ description: "The answers for the question with responses."
+ subattributes:
+ - name: "choice_id"
+ type: "string"
+ description: "The choice selected."
+ - name: "col_id"
+ type: "string"
+ description: "The column selected."
+ - name: "image"
+ type: "string"
+ description: ""
+ - name: "other_id"
+ type: "string"
+ description: "The other text choice selected."
+ - name: "row_id"
+ type: "string"
+ description: "The row selected."
+ - name: "text"
+ type: "string"
+ description: "Any open ended text."
+ - name: "id"
+ type: "string"
+ description: "ID of the question with responses."
+ - name: "variable_id"
+ type: "string"
+ description: "ID of the random assignment variable for the question."
+
+ - name: "recipient_id"
+ type: "string"
+ description: "The ID of the recipient."
+
+ - name: "response_status"
+ type: "string"
+ description: |
+ The status of the response: `completed`, `partial`, `overquota`, or `disqualified`.
+
+ - name: "survey_id"
+ type: "string"
+ description: "ID of the survey the response was taken for."
+ foreign-key-id: "survey-id"
+
+ - name: "total_time"
+ type: "integer"
+ description: "Total time in seconds spent on the survey."
+---
diff --git a/archive/_integration-schemas/surveymonkey/v1/simplified_responses.md b/archive/_integration-schemas/surveymonkey/v1/simplified_responses.md
new file mode 100644
index 000000000..ed71b9f39
--- /dev/null
+++ b/archive/_integration-schemas/surveymonkey/v1/simplified_responses.md
@@ -0,0 +1,158 @@
+---
+tap: "surveymonkey"
+version: "1"
+key: ""
+
+name: "simplified_responses"
+doc-link: "https://developer.surveymonkey.com/api/v3/"
+singer-schema: "https://github.com/singer-io/tap-surveymonkey/blob/master/tap_surveymonkey/schemas/simplified_responses.json"
+description: "This table contains a simplified version of information about your survey responses."
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "GET Response"
+ doc-link: "https://developer.surveymonkey.com/api/v3/#collectors-id-responses-id-details"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The response ID."
+ foreign-key-id: "response-id"
+
+ - name: "date_modified"
+ type: "date-time"
+ description: "The date the response was last modified."
+ replication-key: true
+
+ - name: "analyze_url"
+ type: "string"
+ description: "The weblink to the analyze page to view the response."
+
+ - name: "collection_mode"
+ type: "string"
+ description: |
+ The collection mode of the response: `default`, `preview`, `data_entry`, `survey_preview`, or `edit`.
+
+ - name: "collector_id"
+ type: "string"
+ description: "The ID of the collector the response was taken for."
+
+ - name: "custom_value"
+ type: "string"
+ description: "The custom value associated with a response."
+
+ - name: "custom_variables"
+ type: "object"
+ description: "The values to any available custom variables in the survey."
+
+ - name: "date_created"
+ type: "date-time"
+ description: "The date the response was created."
+
+ - name: "edit_url"
+ type: "string"
+ description: "The weblink to the survey taking page to edit the response."
+
+ - name: "href"
+ type: "string"
+ description: "The **Resource API** URL."
+
+ - name: "ip_address"
+ type: "string"
+ description: "The IP Address the response was taken from."
+
+ - name: "logic_path"
+ type: "object"
+ description: "The logic path taken during the survey."
+
+ - name: "metadata"
+ type: "object"
+ description: "Other associated metadata or custom values."
+
+ - name: "page_path"
+ type: "array"
+ description: "The order in which the pages were responded to."
+ subattributes:
+ - name: "value"
+ type: "string"
+ description: ""
+
+ - name: "pages"
+ type: "array"
+ description: "Pages from the survey and their associated responses."
+ subattributes:
+ - name: "id"
+ type: "string"
+ description: "The ID of the page with responses."
+ - name: "questions"
+ type: "array"
+ description: "The questions on that page with responses."
+ subattributes:
+ - name: "answers"
+ type: "array"
+ description: "The answers for the question with responses."
+ subattributes:
+ - name: "choice_id"
+ type: "string"
+ description: "The choice selected."
+ - name: "col_id"
+ type: "string"
+ description: "The column selected."
+ - name: "image"
+ type: "string"
+ description: ""
+ - name: "other_id"
+ type: "string"
+ description: "The other text choice selected."
+ - name: "row_id"
+ type: "string"
+ description: "The row selected."
+ - name: "simple_text"
+ type: "string"
+ description: ""
+ - name: "tag_data"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "value"
+ type: "string"
+ description: ""
+ - name: "text"
+ type: "string"
+ description: "Any open ended text."
+ - name: "family"
+ type: "string"
+ description: "The question family."
+ - name: "heading"
+ type: "string"
+ description: "The question heading."
+ - name: "id"
+ type: "string"
+ description: "ID of the question with responses."
+ - name: "subtype"
+ type: "string"
+ description: "The question family's subtype."
+ - name: "variable_id"
+ type: "string"
+ description: "ID of the random assignment variable for the question."
+
+ - name: "recipient_id"
+ type: "string"
+ description: "The ID of the recipient."
+
+ - name: "response_status"
+ type: "string"
+ description: |
+ The status of the response: `completed`, `partial`, `overquota`, or `disqualified`.
+
+ - name: "survey_id"
+ type: "string"
+ description: "ID of the survey the response was taken for."
+ foreign-key-id: "survey-id"
+
+ - name: "total_time"
+ type: "integer"
+ description: "Total time in seconds spent on the survey."
+---
diff --git a/archive/_integration-schemas/surveymonkey/v1/survey_details.md b/archive/_integration-schemas/surveymonkey/v1/survey_details.md
new file mode 100644
index 000000000..e7fd569ee
--- /dev/null
+++ b/archive/_integration-schemas/surveymonkey/v1/survey_details.md
@@ -0,0 +1,449 @@
+---
+tap: "surveymonkey"
+version: "1"
+key: ""
+
+name: "survey_details"
+doc-link: "https://developer.surveymonkey.com/api/v3/"
+singer-schema: "https://github.com/singer-io/tap-surveymonkey/blob/master/tap_surveymonkey/schemas/survey_details.json"
+description: "This table contains information about your survey details."
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "GET Surveys"
+ doc-link: "https://developer.surveymonkey.com/api/v3/#surveys"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The survey ID."
+ foreign-key-id: "survey-id"
+
+ - name: "date_modified"
+ type: "date-time"
+ description: "The date and time when survey was last modified."
+ replication-key: true
+
+ - name: "analyze_url"
+ type: "string"
+ description: "The survey's **Analyze** URL."
+
+ - name: "buttons_text"
+ type: "object"
+ description: "The survey buttons text container."
+ subattributes:
+ - name: "done_button"
+ type: "string"
+ description: "The **Done** button text."
+ - name: "exit_button"
+ type: "string"
+ description: "The **Exit** button text."
+ - name: "next_button"
+ type: "string"
+ description: "The **Next** button text."
+ - name: "prev_button"
+ type: "string"
+ description: "The **Previous** button text."
+
+ - name: "category"
+ type: "string"
+ description: "The survey category chosen when creating the survey."
+
+ - name: "collect_url"
+ type: "string"
+ description: "The survey's **Collect** URL."
+
+ - name: "custom_variables"
+ type: "object"
+ description: "The dictionary of survey variables."
+
+ - name: "date_created"
+ type: "date-time"
+ description: "The date and time when survey was created"
+
+ - name: "edit_url"
+ type: "string"
+ description: "The survey's **Edit** URL."
+
+ - name: "folder_id"
+ type: "string"
+ description: "If applicable, the id of the folder the survey is in."
+
+ - name: "footer"
+ type: "boolean"
+ description: "Whether or not SurveyMonkey’s footer is **not** displayed."
+
+ - name: "href"
+ type: "string"
+ description: "The **Resource API** URL."
+
+ - name: "is_owner"
+ type: "boolean"
+ description: ""
+
+ - name: "language"
+ type: "string"
+ description: "The survey language."
+
+ - name: "nickname"
+ type: "string"
+ description: "The survey nickname."
+
+ - name: "page_count"
+ type: "integer"
+ description: "The number of pages in the survey."
+
+ - name: "pages"
+ type: "array"
+ description: "Pages from the surveys."
+ subattributes:
+ - name: "description"
+ type: "string"
+ description: "The page description."
+ - name: "href"
+ type: "string"
+ description: ""
+ - name: "id"
+ type: "string"
+ description: "The page ID."
+ - name: "position"
+ type: "integer"
+ description: "The page position."
+ - name: "question_count"
+ type: "integer"
+ description: "The number of questions on the page."
+ - name: "questions"
+ type: "array"
+ description: "The questions on the page."
+ subattributes:
+ - name: "answers"
+ type: "object"
+ description: "The answer to the question."
+ subattributes:
+ - name: "choices"
+ type: "array"
+ description: "The list of available choices for the user."
+ subattributes:
+ - name: "description"
+ type: "string"
+ description: "Valid values: , Extremely likely, Not at all likely."
+ - name: "id"
+ type: "string"
+ description: "The ID of the choice"
+ - name: "image"
+ type: "object"
+ description: "The image choice."
+ subattributes:
+ - name: "s3_key"
+ type: "string"
+ description: ""
+ - name: "url"
+ type: "string"
+ description: "The URL of image choice."
+ - name: "is_na"
+ type: "boolean"
+ description: ""
+ - name: "position"
+ type: "integer"
+ description: "The position of the current choice"
+ - name: "quiz_options"
+ type: "object"
+ description: "The object containing the quiz properties of this question, if quiz-mode is enabled."
+ subattributes:
+ - name: "score"
+ type: "integer"
+ description: "The quiz score."
+ - name: "text"
+ type: "string"
+ description: "The choice for user selection."
+ - name: "visible"
+ type: "boolean"
+ description: "Whether the question is visible."
+ - name: "weight"
+ type: "integer"
+ description: "The weight value of the choice."
+ - name: "cols"
+ type: "array"
+ description: "The list of columns in the matrix."
+ subattributes:
+ - name: "choices"
+ type: "array"
+ description: "The list of available choices for the user in dropdown menu."
+ subattributes:
+ - name: "id"
+ type: "string"
+ description: ""
+ - name: "is_na"
+ type: "boolean"
+ description: ""
+ - name: "position"
+ type: "integer"
+ description: "The position of choice."
+ - name: "text"
+ type: "string"
+ description: "The choice for user selection."
+ - name: "visible"
+ type: "boolean"
+ description: ""
+ - name: "id"
+ type: "string"
+ description: ""
+ - name: "is_na"
+ type: "boolean"
+ description: ""
+ - name: "position"
+ type: "integer"
+ description: ""
+ - name: "text"
+ type: "string"
+ description: ""
+ - name: "visible"
+ type: "boolean"
+ description: ""
+ - name: "other"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "apply_all_rows"
+ type: "boolean"
+ description: ""
+ - name: "error_text"
+ type: "string"
+ description: ""
+ - name: "id"
+ type: "string"
+ description: ""
+ - name: "is_answer_choice"
+ type: "boolean"
+ description: ""
+ - name: "num_chars"
+ type: "integer"
+ description: ""
+ - name: "num_lines"
+ type: "integer"
+ description: ""
+ - name: "position"
+ type: "integer"
+ description: ""
+ - name: "text"
+ type: "string"
+ description: ""
+ - name: "visible"
+ type: "boolean"
+ description: ""
+ - name: "rows"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "id"
+ type: "string"
+ description: ""
+ - name: "position"
+ type: "integer"
+ description: ""
+ - name: "required"
+ type: "boolean"
+ description: ""
+ - name: "text"
+ type: "string"
+ description: ""
+ - name: "type"
+ type: "string"
+ description: ""
+ - name: "visible"
+ type: "boolean"
+ description: ""
+ - name: "display_options"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "show_display_number"
+ type: "boolean"
+ description: ""
+ - name: "family"
+ type: "string"
+ description: ""
+ - name: "forced_ranking"
+ type: "boolean"
+ description: ""
+ - name: "headings"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "description"
+ type: "string"
+ description: ""
+ - name: "heading"
+ type: "string"
+ description: ""
+ - name: "image"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "s3_key"
+ type: "string"
+ description: ""
+ - name: "url"
+ type: "string"
+ description: ""
+ - name: "random_assignment"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "description"
+ type: "string"
+ description: ""
+ - name: "id"
+ type: "string"
+ description: ""
+ - name: "percent"
+ type: "number"
+ description: ""
+ - name: "position"
+ type: "integer"
+ description: ""
+ - name: "variable_name"
+ type: "string"
+ description: ""
+ - name: "href"
+ type: "string"
+ description: ""
+ - name: "id"
+ type: "string"
+ description: ""
+ - name: "nickname"
+ type: "string"
+ description: ""
+ - name: "position"
+ type: "integer"
+ description: ""
+ - name: "quiz_options"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "feedback"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "correct_text"
+ type: "string"
+ description: ""
+ - name: "incorrect_text"
+ type: "string"
+ description: ""
+ - name: "partial_text"
+ type: "string"
+ description: ""
+ - name: "scoring_enabled"
+ type: "boolean"
+ description: ""
+ - name: "required"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "amount"
+ type: "string"
+ description: ""
+ - name: "text"
+ type: "string"
+ description: ""
+ - name: "type"
+ type: "string"
+ description: ""
+ - name: "sorting"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "ignore_last"
+ type: "boolean"
+ description: ""
+ - name: "type"
+ type: "string"
+ description: ""
+ - name: "subtype"
+ type: "string"
+ description: ""
+ - name: "validation"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "max"
+ type: "string"
+ description: ""
+ - name: "min"
+ type: "string"
+ description: ""
+ - name: "sum"
+ type: "integer"
+ description: ""
+ - name: "sum_text"
+ type: "string"
+ description: ""
+ - name: "text"
+ type: "string"
+ description: ""
+ - name: "type"
+ type: "string"
+ description: ""
+ - name: "visible"
+ type: "boolean"
+ description: ""
+ - name: "title"
+ type: "string"
+ description: ""
+
+ - name: "preview"
+ type: "string"
+ description: "The survey **Preview** URL."
+
+ - name: "question_count"
+ type: "integer"
+ description: "Number of questions in survey."
+
+ - name: "quiz_options"
+ type: "object"
+ description: "An object describing the quiz settings, if this survey is a quiz."
+ subattributes:
+ - name: "feedback"
+ type: "object"
+ description: "Text to show the user when they complete the quiz."
+ subattributes:
+ - name: "ranges"
+ type: "array"
+ description: "The ranges at which to show users certain feedback."
+ subattributes:
+ - name: "max"
+ type: "string"
+ description: "Maximum score for this feedback."
+ - name: "message"
+ type: "string"
+ description: "Feedback message."
+ - name: "min"
+ type: "string"
+ description: "Minimum score for this feedback."
+ - name: "ranges_type"
+ type: "string"
+ description: |
+ The type of parameters used: `percentage` or `points`.
+ - name: "is_quiz_mode"
+ type: "boolean"
+ description: "The on/off toggle for setting this survey as a quiz."
+ - name: "show_results_type"
+ type: "string"
+ description: |
+ What to reveal to the user when they complete the quiz: `disabled`, `results_only` or `results_and_answers`."
+
+ - name: "response_count"
+ type: "integer"
+ description: "The number of responses survey has received."
+
+ - name: "summary_url"
+ type: "string"
+ description: "The survey's **Summary** URL."
+
+ - name: "title"
+ type: "string"
+ description: "The survey title."
+---
diff --git a/_integration-schemas/surveymonkey/v2/foreign-keys.md b/archive/_integration-schemas/surveymonkey/v2/foreign-keys.md
similarity index 100%
rename from _integration-schemas/surveymonkey/v2/foreign-keys.md
rename to archive/_integration-schemas/surveymonkey/v2/foreign-keys.md
diff --git a/archive/_integration-schemas/surveymonkey/v2/responses.md b/archive/_integration-schemas/surveymonkey/v2/responses.md
new file mode 100644
index 000000000..46c889cf4
--- /dev/null
+++ b/archive/_integration-schemas/surveymonkey/v2/responses.md
@@ -0,0 +1,151 @@
+---
+tap: "surveymonkey"
+version: "2"
+key: ""
+
+name: "responses"
+doc-link: "https://developer.surveymonkey.com/api/v3/"
+singer-schema: "https://github.com/singer-io/tap-surveymonkey/blob/master/tap_surveymonkey/schemas/responses.json"
+description: "This table contains information about your survey responses."
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "GET Survey Responses"
+ doc-link: "https://developer.surveymonkey.com/api/v3/#collectors-id-responses-id-details"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The response ID."
+ foreign-key-id: "response-id"
+
+ - name: "date_modified"
+ type: "date-time"
+ description: "The date the response was last modified."
+ replication-key: true
+
+ - name: "analyze_url"
+ type: "string"
+ description: "The weblink to the analyze page to view the response."
+
+ - name: "collection_mode"
+ type: "string"
+ description: |
+ The collection mode of the response: `default`, `preview`, `data_entry`, `survey_preview`, or `edit`.
+
+ - name: "collector_id"
+ type: "string"
+ description: "The ID of the collector the response was taken for."
+
+ - name: "custom_value"
+ type: "string"
+ description: "The custom value associated with a response."
+
+ - name: "custom_variables"
+ type: "object"
+ description: "The values to any available custom variables in the survey."
+
+ - name: "date_created"
+ type: "date-time"
+ description: "The date the response was created."
+
+ - name: "edit_url"
+ type: "string"
+ description: "The weblink to the survey taking page to edit the response."
+
+ - name: "email_address"
+ type: "string"
+ description: "The email address of the responder."
+
+ - name: "first_name"
+ type: "string"
+ description: "The first name of the responder."
+
+ - name: "href"
+ type: "string"
+ description: "The **Resource API** URL."
+
+ - name: "ip_address"
+ type: "string"
+ description: "The IP Address the response was taken from."
+
+ - name: "last_name"
+ type: "string"
+ description: "The last name of the responder."
+
+ - name: "logic_path"
+ type: "object"
+ description: "The logic path taken during the survey."
+
+ - name: "metadata"
+ type: "object"
+ description: "Other associated metadata or custom values."
+
+ - name: "page_path"
+ type: "array"
+ description: "The order in which the pages were responded to."
+ subattributes:
+ - name: "value"
+ type: "string"
+ description: ""
+
+ - name: "pages"
+ type: "array"
+ description: "Pages from the survey and their associated responses."
+ subattributes:
+ - name: "id"
+ type: "string"
+ description: "The ID of the page with responses."
+ - name: "questions"
+ type: "array"
+ description: "The questions on that page with responses."
+ subattributes:
+ - name: "answers"
+ type: "array"
+ description: "The answers for the question with responses."
+ subattributes:
+ - name: "choice_id"
+ type: "string"
+ description: "The choice selected."
+ - name: "col_id"
+ type: "string"
+ description: "The column selected."
+ - name: "image"
+ type: "string"
+ description: ""
+ - name: "other_id"
+ type: "string"
+ description: "The other text choice selected."
+ - name: "row_id"
+ type: "string"
+ description: "The row selected."
+ - name: "text"
+ type: "string"
+ description: "Any open ended text."
+ - name: "id"
+ type: "string"
+ description: "ID of the question with responses."
+ - name: "variable_id"
+ type: "string"
+ description: "ID of the random assignment variable for the question."
+
+ - name: "recipient_id"
+ type: "string"
+ description: "The ID of the recipient."
+
+ - name: "response_status"
+ type: "string"
+ description: |
+ The status of the response: `completed`, `partial`, `overquota`, or `disqualified`.
+
+ - name: "survey_id"
+ type: "string"
+ description: "ID of the survey the response was taken for."
+ foreign-key-id: "survey-id"
+
+ - name: "total_time"
+ type: "integer"
+ description: "Total time in seconds spent on the survey."
+---
diff --git a/archive/_integration-schemas/surveymonkey/v2/simplified_responses.md b/archive/_integration-schemas/surveymonkey/v2/simplified_responses.md
new file mode 100644
index 000000000..1f656ac02
--- /dev/null
+++ b/archive/_integration-schemas/surveymonkey/v2/simplified_responses.md
@@ -0,0 +1,158 @@
+---
+tap: "surveymonkey"
+version: "2"
+key: ""
+
+name: "simplified_responses"
+doc-link: "https://developer.surveymonkey.com/api/v3/"
+singer-schema: "https://github.com/singer-io/tap-surveymonkey/blob/master/tap_surveymonkey/schemas/simplified_responses.json"
+description: "This table contains a simplified version of information about your survey responses."
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "GET Response"
+ doc-link: "https://developer.surveymonkey.com/api/v3/#collectors-id-responses-id-details"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The response ID."
+ foreign-key-id: "response-id"
+
+ - name: "date_modified"
+ type: "date-time"
+ description: "The date the response was last modified."
+ replication-key: true
+
+ - name: "analyze_url"
+ type: "string"
+ description: "The weblink to the analyze page to view the response."
+
+ - name: "collection_mode"
+ type: "string"
+ description: |
+ The collection mode of the response: `default`, `preview`, `data_entry`, `survey_preview`, or `edit`.
+
+ - name: "collector_id"
+ type: "string"
+ description: "The ID of the collector the response was taken for."
+
+ - name: "custom_value"
+ type: "string"
+ description: "The custom value associated with a response."
+
+ - name: "custom_variables"
+ type: "object"
+ description: "The values to any available custom variables in the survey."
+
+ - name: "date_created"
+ type: "date-time"
+ description: "The date the response was created."
+
+ - name: "edit_url"
+ type: "string"
+ description: "The weblink to the survey taking page to edit the response."
+
+ - name: "href"
+ type: "string"
+ description: "The **Resource API** URL."
+
+ - name: "ip_address"
+ type: "string"
+ description: "The IP Address the response was taken from."
+
+ - name: "logic_path"
+ type: "object"
+ description: "The logic path taken during the survey."
+
+ - name: "metadata"
+ type: "object"
+ description: "Other associated metadata or custom values."
+
+ - name: "page_path"
+ type: "array"
+ description: "The order in which the pages were responded to."
+ subattributes:
+ - name: "value"
+ type: "string"
+ description: ""
+
+ - name: "pages"
+ type: "array"
+ description: "Pages from the survey and their associated responses."
+ subattributes:
+ - name: "id"
+ type: "string"
+ description: "The ID of the page with responses."
+ - name: "questions"
+ type: "array"
+ description: "The questions on that page with responses."
+ subattributes:
+ - name: "answers"
+ type: "array"
+ description: "The answers for the question with responses."
+ subattributes:
+ - name: "choice_id"
+ type: "string"
+ description: "The choice selected."
+ - name: "col_id"
+ type: "string"
+ description: "The column selected."
+ - name: "image"
+ type: "string"
+ description: ""
+ - name: "other_id"
+ type: "string"
+ description: "The other text choice selected."
+ - name: "row_id"
+ type: "string"
+ description: "The row selected."
+ - name: "simple_text"
+ type: "string"
+ description: ""
+ - name: "tag_data"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "value"
+ type: "string"
+ description: ""
+ - name: "text"
+ type: "string"
+ description: "Any open ended text."
+ - name: "family"
+ type: "string"
+ description: "The question family."
+ - name: "heading"
+ type: "string"
+ description: "The question heading."
+ - name: "id"
+ type: "string"
+ description: "ID of the question with responses."
+ - name: "subtype"
+ type: "string"
+ description: "The question family's subtype."
+ - name: "variable_id"
+ type: "string"
+ description: "ID of the random assignment variable for the question."
+
+ - name: "recipient_id"
+ type: "string"
+ description: "The ID of the recipient."
+
+ - name: "response_status"
+ type: "string"
+ description: |
+ The status of the response: `completed`, `partial`, `overquota`, or `disqualified`.
+
+ - name: "survey_id"
+ type: "string"
+ description: "ID of the survey the response was taken for."
+ foreign-key-id: "survey-id"
+
+ - name: "total_time"
+ type: "integer"
+ description: "Total time in seconds spent on the survey."
+---
diff --git a/archive/_integration-schemas/surveymonkey/v2/survey_details.md b/archive/_integration-schemas/surveymonkey/v2/survey_details.md
new file mode 100644
index 000000000..106949e0a
--- /dev/null
+++ b/archive/_integration-schemas/surveymonkey/v2/survey_details.md
@@ -0,0 +1,449 @@
+---
+tap: "surveymonkey"
+version: "2"
+key: ""
+
+name: "survey_details"
+doc-link: "https://developer.surveymonkey.com/api/v3/"
+singer-schema: "https://github.com/singer-io/tap-surveymonkey/blob/master/tap_surveymonkey/schemas/survey_details.json"
+description: "This table contains information about your survey details."
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: "GET Surveys"
+ doc-link: "https://developer.surveymonkey.com/api/v3/#surveys"
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The survey ID."
+ foreign-key-id: "survey-id"
+
+ - name: "date_modified"
+ type: "date-time"
+ description: "The date and time when survey was last modified."
+ replication-key: true
+
+ - name: "analyze_url"
+ type: "string"
+ description: "The survey's **Analyze** URL."
+
+ - name: "buttons_text"
+ type: "object"
+ description: "The survey buttons text container."
+ subattributes:
+ - name: "done_button"
+ type: "string"
+ description: "The **Done** button text."
+ - name: "exit_button"
+ type: "string"
+ description: "The **Exit** button text."
+ - name: "next_button"
+ type: "string"
+ description: "The **Next** button text."
+ - name: "prev_button"
+ type: "string"
+ description: "The **Previous** button text."
+
+ - name: "category"
+ type: "string"
+ description: "The survey category chosen when creating the survey."
+
+ - name: "collect_url"
+ type: "string"
+ description: "The survey's **Collect** URL."
+
+ - name: "custom_variables"
+ type: "object"
+ description: "The dictionary of survey variables."
+
+ - name: "date_created"
+ type: "date-time"
+ description: "The date and time when survey was created"
+
+ - name: "edit_url"
+ type: "string"
+ description: "The survey's **Edit** URL."
+
+ - name: "folder_id"
+ type: "string"
+ description: "If applicable, the id of the folder the survey is in."
+
+ - name: "footer"
+ type: "boolean"
+ description: "Whether or not SurveyMonkey’s footer is **not** displayed."
+
+ - name: "href"
+ type: "string"
+ description: "The **Resource API** URL."
+
+ - name: "is_owner"
+ type: "boolean"
+ description: ""
+
+ - name: "language"
+ type: "string"
+ description: "The survey language."
+
+ - name: "nickname"
+ type: "string"
+ description: "The survey nickname."
+
+ - name: "page_count"
+ type: "integer"
+ description: "The number of pages in the survey."
+
+ - name: "pages"
+ type: "array"
+ description: "Pages from the surveys."
+ subattributes:
+ - name: "description"
+ type: "string"
+ description: "The page description."
+ - name: "href"
+ type: "string"
+ description: ""
+ - name: "id"
+ type: "string"
+ description: "The page ID."
+ - name: "position"
+ type: "integer"
+ description: "The page position."
+ - name: "question_count"
+ type: "integer"
+ description: "The number of questions on the page."
+ - name: "questions"
+ type: "array"
+ description: "The questions on the page."
+ subattributes:
+ - name: "answers"
+ type: "object"
+ description: "The answer to the question."
+ subattributes:
+ - name: "choices"
+ type: "array"
+ description: "The list of available choices for the user."
+ subattributes:
+ - name: "description"
+ type: "string"
+ description: "Valid values: , Extremely likely, Not at all likely."
+ - name: "id"
+ type: "string"
+ description: "The ID of the choice"
+ - name: "image"
+ type: "object"
+ description: "The image choice."
+ subattributes:
+ - name: "s3_key"
+ type: "string"
+ description: ""
+ - name: "url"
+ type: "string"
+ description: "The URL of image choice."
+ - name: "is_na"
+ type: "boolean"
+ description: ""
+ - name: "position"
+ type: "integer"
+ description: "The position of the current choice"
+ - name: "quiz_options"
+ type: "object"
+ description: "The object containing the quiz properties of this question, if quiz-mode is enabled."
+ subattributes:
+ - name: "score"
+ type: "integer"
+ description: "The quiz score."
+ - name: "text"
+ type: "string"
+ description: "The choice for user selection."
+ - name: "visible"
+ type: "boolean"
+ description: "Whether the question is visible."
+ - name: "weight"
+ type: "integer"
+ description: "The weight value of the choice."
+ - name: "cols"
+ type: "array"
+ description: "The list of columns in the matrix."
+ subattributes:
+ - name: "choices"
+ type: "array"
+ description: "The list of available choices for the user in dropdown menu."
+ subattributes:
+ - name: "id"
+ type: "string"
+ description: ""
+ - name: "is_na"
+ type: "boolean"
+ description: ""
+ - name: "position"
+ type: "integer"
+ description: "The position of choice."
+ - name: "text"
+ type: "string"
+ description: "The choice for user selection."
+ - name: "visible"
+ type: "boolean"
+ description: ""
+ - name: "id"
+ type: "string"
+ description: ""
+ - name: "is_na"
+ type: "boolean"
+ description: ""
+ - name: "position"
+ type: "integer"
+ description: ""
+ - name: "text"
+ type: "string"
+ description: ""
+ - name: "visible"
+ type: "boolean"
+ description: ""
+ - name: "other"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "apply_all_rows"
+ type: "boolean"
+ description: ""
+ - name: "error_text"
+ type: "string"
+ description: ""
+ - name: "id"
+ type: "string"
+ description: ""
+ - name: "is_answer_choice"
+ type: "boolean"
+ description: ""
+ - name: "num_chars"
+ type: "integer"
+ description: ""
+ - name: "num_lines"
+ type: "integer"
+ description: ""
+ - name: "position"
+ type: "integer"
+ description: ""
+ - name: "text"
+ type: "string"
+ description: ""
+ - name: "visible"
+ type: "boolean"
+ description: ""
+ - name: "rows"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "id"
+ type: "string"
+ description: ""
+ - name: "position"
+ type: "integer"
+ description: ""
+ - name: "required"
+ type: "boolean"
+ description: ""
+ - name: "text"
+ type: "string"
+ description: ""
+ - name: "type"
+ type: "string"
+ description: ""
+ - name: "visible"
+ type: "boolean"
+ description: ""
+ - name: "display_options"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "show_display_number"
+ type: "boolean"
+ description: ""
+ - name: "family"
+ type: "string"
+ description: ""
+ - name: "forced_ranking"
+ type: "boolean"
+ description: ""
+ - name: "headings"
+ type: "array"
+ description: ""
+ subattributes:
+ - name: "description"
+ type: "string"
+ description: ""
+ - name: "heading"
+ type: "string"
+ description: ""
+ - name: "image"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "s3_key"
+ type: "string"
+ description: ""
+ - name: "url"
+ type: "string"
+ description: ""
+ - name: "random_assignment"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "description"
+ type: "string"
+ description: ""
+ - name: "id"
+ type: "string"
+ description: ""
+ - name: "percent"
+ type: "number"
+ description: ""
+ - name: "position"
+ type: "integer"
+ description: ""
+ - name: "variable_name"
+ type: "string"
+ description: ""
+ - name: "href"
+ type: "string"
+ description: ""
+ - name: "id"
+ type: "string"
+ description: ""
+ - name: "nickname"
+ type: "string"
+ description: ""
+ - name: "position"
+ type: "integer"
+ description: ""
+ - name: "quiz_options"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "feedback"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "correct_text"
+ type: "string"
+ description: ""
+ - name: "incorrect_text"
+ type: "string"
+ description: ""
+ - name: "partial_text"
+ type: "string"
+ description: ""
+ - name: "scoring_enabled"
+ type: "boolean"
+ description: ""
+ - name: "required"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "amount"
+ type: "string"
+ description: ""
+ - name: "text"
+ type: "string"
+ description: ""
+ - name: "type"
+ type: "string"
+ description: ""
+ - name: "sorting"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "ignore_last"
+ type: "boolean"
+ description: ""
+ - name: "type"
+ type: "string"
+ description: ""
+ - name: "subtype"
+ type: "string"
+ description: ""
+ - name: "validation"
+ type: "object"
+ description: ""
+ subattributes:
+ - name: "max"
+ type: "string"
+ description: ""
+ - name: "min"
+ type: "string"
+ description: ""
+ - name: "sum"
+ type: "integer"
+ description: ""
+ - name: "sum_text"
+ type: "string"
+ description: ""
+ - name: "text"
+ type: "string"
+ description: ""
+ - name: "type"
+ type: "string"
+ description: ""
+ - name: "visible"
+ type: "boolean"
+ description: ""
+ - name: "title"
+ type: "string"
+ description: ""
+
+ - name: "preview"
+ type: "string"
+ description: "The survey **Preview** URL."
+
+ - name: "question_count"
+ type: "integer"
+ description: "Number of questions in survey."
+
+ - name: "quiz_options"
+ type: "object"
+ description: "An object describing the quiz settings, if this survey is a quiz."
+ subattributes:
+ - name: "feedback"
+ type: "object"
+ description: "Text to show the user when they complete the quiz."
+ subattributes:
+ - name: "ranges"
+ type: "array"
+ description: "The ranges at which to show users certain feedback."
+ subattributes:
+ - name: "max"
+ type: "string"
+ description: "Maximum score for this feedback."
+ - name: "message"
+ type: "string"
+ description: "Feedback message."
+ - name: "min"
+ type: "string"
+ description: "Minimum score for this feedback."
+ - name: "ranges_type"
+ type: "string"
+ description: |
+ The type of parameters used: `percentage` or `points`.
+ - name: "is_quiz_mode"
+ type: "boolean"
+ description: "The on/off toggle for setting this survey as a quiz."
+ - name: "show_results_type"
+ type: "string"
+ description: |
+ What to reveal to the user when they complete the quiz: `disabled`, `results_only` or `results_and_answers`."
+
+ - name: "response_count"
+ type: "integer"
+ description: "The number of responses survey has received."
+
+ - name: "summary_url"
+ type: "string"
+ description: "The survey's **Summary** URL."
+
+ - name: "title"
+ type: "string"
+ description: "The survey title."
+---
diff --git a/_integration-schemas/surveymonkey/v2/surveys.md b/archive/_integration-schemas/surveymonkey/v2/surveys.md
similarity index 100%
rename from _integration-schemas/surveymonkey/v2/surveys.md
rename to archive/_integration-schemas/surveymonkey/v2/surveys.md
diff --git a/_integration-schemas/taboola/campaign.md b/archive/_integration-schemas/taboola/campaign.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/taboola/campaign.md
rename to archive/_integration-schemas/taboola/campaign.md
diff --git a/_integration-schemas/taboola/campaign_performance.md b/archive/_integration-schemas/taboola/campaign_performance.md
old mode 100755
new mode 100644
similarity index 98%
rename from _integration-schemas/taboola/campaign_performance.md
rename to archive/_integration-schemas/taboola/campaign_performance.md
index 393e3a854..d6a71e491
--- a/_integration-schemas/taboola/campaign_performance.md
+++ b/archive/_integration-schemas/taboola/campaign_performance.md
@@ -10,9 +10,7 @@ description: |
replication-method: "Key-based Incremental"
-api-method:
- name:
- doc-link:
+
attributes:
- name: "campaign_id"
diff --git a/_integration-schemas/taboola/foreign-keys.md b/archive/_integration-schemas/taboola/foreign-keys.md
similarity index 100%
rename from _integration-schemas/taboola/foreign-keys.md
rename to archive/_integration-schemas/taboola/foreign-keys.md
diff --git a/_integration-schemas/tiktok-ads/ad_insights.md b/archive/_integration-schemas/tiktok-ads/ad_insights.md
similarity index 100%
rename from _integration-schemas/tiktok-ads/ad_insights.md
rename to archive/_integration-schemas/tiktok-ads/ad_insights.md
diff --git a/_integration-schemas/tiktok-ads/ad_insights_by_age_and_gender.md b/archive/_integration-schemas/tiktok-ads/ad_insights_by_age_and_gender.md
similarity index 100%
rename from _integration-schemas/tiktok-ads/ad_insights_by_age_and_gender.md
rename to archive/_integration-schemas/tiktok-ads/ad_insights_by_age_and_gender.md
diff --git a/_integration-schemas/tiktok-ads/ad_insights_by_country.md b/archive/_integration-schemas/tiktok-ads/ad_insights_by_country.md
similarity index 100%
rename from _integration-schemas/tiktok-ads/ad_insights_by_country.md
rename to archive/_integration-schemas/tiktok-ads/ad_insights_by_country.md
diff --git a/_integration-schemas/tiktok-ads/ad_insights_by_platform.md b/archive/_integration-schemas/tiktok-ads/ad_insights_by_platform.md
similarity index 100%
rename from _integration-schemas/tiktok-ads/ad_insights_by_platform.md
rename to archive/_integration-schemas/tiktok-ads/ad_insights_by_platform.md
diff --git a/_integration-schemas/tiktok-ads/adgroups.md b/archive/_integration-schemas/tiktok-ads/adgroups.md
similarity index 100%
rename from _integration-schemas/tiktok-ads/adgroups.md
rename to archive/_integration-schemas/tiktok-ads/adgroups.md
diff --git a/_integration-schemas/tiktok-ads/ads.md b/archive/_integration-schemas/tiktok-ads/ads.md
similarity index 100%
rename from _integration-schemas/tiktok-ads/ads.md
rename to archive/_integration-schemas/tiktok-ads/ads.md
diff --git a/_integration-schemas/tiktok-ads/advertisers.md b/archive/_integration-schemas/tiktok-ads/advertisers.md
similarity index 100%
rename from _integration-schemas/tiktok-ads/advertisers.md
rename to archive/_integration-schemas/tiktok-ads/advertisers.md
diff --git a/_integration-schemas/tiktok-ads/campaigns.md b/archive/_integration-schemas/tiktok-ads/campaigns.md
similarity index 100%
rename from _integration-schemas/tiktok-ads/campaigns.md
rename to archive/_integration-schemas/tiktok-ads/campaigns.md
diff --git a/_integration-schemas/tiktok-ads/v1/ad_insights.md b/archive/_integration-schemas/tiktok-ads/v1/ad_insights.md
similarity index 100%
rename from _integration-schemas/tiktok-ads/v1/ad_insights.md
rename to archive/_integration-schemas/tiktok-ads/v1/ad_insights.md
diff --git a/_integration-schemas/tiktok-ads/v1/ad_insights_by_age_and_gender.md b/archive/_integration-schemas/tiktok-ads/v1/ad_insights_by_age_and_gender.md
similarity index 100%
rename from _integration-schemas/tiktok-ads/v1/ad_insights_by_age_and_gender.md
rename to archive/_integration-schemas/tiktok-ads/v1/ad_insights_by_age_and_gender.md
diff --git a/_integration-schemas/tiktok-ads/v1/ad_insights_by_country.md b/archive/_integration-schemas/tiktok-ads/v1/ad_insights_by_country.md
similarity index 100%
rename from _integration-schemas/tiktok-ads/v1/ad_insights_by_country.md
rename to archive/_integration-schemas/tiktok-ads/v1/ad_insights_by_country.md
diff --git a/_integration-schemas/tiktok-ads/v1/ad_insights_by_platform.md b/archive/_integration-schemas/tiktok-ads/v1/ad_insights_by_platform.md
similarity index 100%
rename from _integration-schemas/tiktok-ads/v1/ad_insights_by_platform.md
rename to archive/_integration-schemas/tiktok-ads/v1/ad_insights_by_platform.md
diff --git a/_integration-schemas/tiktok-ads/v1/adgroups.md b/archive/_integration-schemas/tiktok-ads/v1/adgroups.md
similarity index 100%
rename from _integration-schemas/tiktok-ads/v1/adgroups.md
rename to archive/_integration-schemas/tiktok-ads/v1/adgroups.md
diff --git a/_integration-schemas/tiktok-ads/v1/ads.md b/archive/_integration-schemas/tiktok-ads/v1/ads.md
similarity index 100%
rename from _integration-schemas/tiktok-ads/v1/ads.md
rename to archive/_integration-schemas/tiktok-ads/v1/ads.md
diff --git a/_integration-schemas/tiktok-ads/v1/advertisers.md b/archive/_integration-schemas/tiktok-ads/v1/advertisers.md
similarity index 100%
rename from _integration-schemas/tiktok-ads/v1/advertisers.md
rename to archive/_integration-schemas/tiktok-ads/v1/advertisers.md
diff --git a/_integration-schemas/tiktok-ads/v1/campaign_insights_by_province.md b/archive/_integration-schemas/tiktok-ads/v1/campaign_insights_by_province.md
similarity index 100%
rename from _integration-schemas/tiktok-ads/v1/campaign_insights_by_province.md
rename to archive/_integration-schemas/tiktok-ads/v1/campaign_insights_by_province.md
diff --git a/_integration-schemas/tiktok-ads/v1/campaigns.md b/archive/_integration-schemas/tiktok-ads/v1/campaigns.md
similarity index 100%
rename from _integration-schemas/tiktok-ads/v1/campaigns.md
rename to archive/_integration-schemas/tiktok-ads/v1/campaigns.md
diff --git a/_integration-schemas/toggl/v1/clients.md b/archive/_integration-schemas/toggl/v1/clients.md
similarity index 100%
rename from _integration-schemas/toggl/v1/clients.md
rename to archive/_integration-schemas/toggl/v1/clients.md
diff --git a/_integration-schemas/toggl/v1/foreign-keys.md b/archive/_integration-schemas/toggl/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/toggl/v1/foreign-keys.md
rename to archive/_integration-schemas/toggl/v1/foreign-keys.md
diff --git a/_integration-schemas/toggl/v1/groups.md b/archive/_integration-schemas/toggl/v1/groups.md
similarity index 100%
rename from _integration-schemas/toggl/v1/groups.md
rename to archive/_integration-schemas/toggl/v1/groups.md
diff --git a/_integration-schemas/toggl/v1/projects.md b/archive/_integration-schemas/toggl/v1/projects.md
similarity index 100%
rename from _integration-schemas/toggl/v1/projects.md
rename to archive/_integration-schemas/toggl/v1/projects.md
diff --git a/_integration-schemas/toggl/v1/tags.md b/archive/_integration-schemas/toggl/v1/tags.md
similarity index 100%
rename from _integration-schemas/toggl/v1/tags.md
rename to archive/_integration-schemas/toggl/v1/tags.md
diff --git a/_integration-schemas/toggl/v1/tasks.md b/archive/_integration-schemas/toggl/v1/tasks.md
similarity index 100%
rename from _integration-schemas/toggl/v1/tasks.md
rename to archive/_integration-schemas/toggl/v1/tasks.md
diff --git a/_integration-schemas/toggl/v1/time_entries.md b/archive/_integration-schemas/toggl/v1/time_entries.md
similarity index 100%
rename from _integration-schemas/toggl/v1/time_entries.md
rename to archive/_integration-schemas/toggl/v1/time_entries.md
diff --git a/_integration-schemas/toggl/v1/users.md b/archive/_integration-schemas/toggl/v1/users.md
similarity index 100%
rename from _integration-schemas/toggl/v1/users.md
rename to archive/_integration-schemas/toggl/v1/users.md
diff --git a/_integration-schemas/toggl/v1/workspace_users.md b/archive/_integration-schemas/toggl/v1/workspace_users.md
similarity index 100%
rename from _integration-schemas/toggl/v1/workspace_users.md
rename to archive/_integration-schemas/toggl/v1/workspace_users.md
diff --git a/_integration-schemas/toggl/v1/workspaces.md b/archive/_integration-schemas/toggl/v1/workspaces.md
similarity index 100%
rename from _integration-schemas/toggl/v1/workspaces.md
rename to archive/_integration-schemas/toggl/v1/workspaces.md
diff --git a/_integration-schemas/trello/v1/actions.md b/archive/_integration-schemas/trello/v1/actions.md
similarity index 100%
rename from _integration-schemas/trello/v1/actions.md
rename to archive/_integration-schemas/trello/v1/actions.md
diff --git a/_integration-schemas/trello/v1/boards.md b/archive/_integration-schemas/trello/v1/boards.md
similarity index 100%
rename from _integration-schemas/trello/v1/boards.md
rename to archive/_integration-schemas/trello/v1/boards.md
diff --git a/_integration-schemas/trello/v1/cards.md b/archive/_integration-schemas/trello/v1/cards.md
similarity index 100%
rename from _integration-schemas/trello/v1/cards.md
rename to archive/_integration-schemas/trello/v1/cards.md
diff --git a/_integration-schemas/trello/v1/checklists.md b/archive/_integration-schemas/trello/v1/checklists.md
similarity index 100%
rename from _integration-schemas/trello/v1/checklists.md
rename to archive/_integration-schemas/trello/v1/checklists.md
diff --git a/_integration-schemas/trello/v1/foreign-keys.md b/archive/_integration-schemas/trello/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/trello/v1/foreign-keys.md
rename to archive/_integration-schemas/trello/v1/foreign-keys.md
diff --git a/_integration-schemas/trello/v1/lists.md b/archive/_integration-schemas/trello/v1/lists.md
similarity index 100%
rename from _integration-schemas/trello/v1/lists.md
rename to archive/_integration-schemas/trello/v1/lists.md
diff --git a/_integration-schemas/trello/v1/users.md b/archive/_integration-schemas/trello/v1/users.md
similarity index 100%
rename from _integration-schemas/trello/v1/users.md
rename to archive/_integration-schemas/trello/v1/users.md
diff --git a/_integration-schemas/twilio/v1/account_balance.md b/archive/_integration-schemas/twilio/v1/account_balance.md
similarity index 100%
rename from _integration-schemas/twilio/v1/account_balance.md
rename to archive/_integration-schemas/twilio/v1/account_balance.md
diff --git a/_integration-schemas/twilio/v1/accounts.md b/archive/_integration-schemas/twilio/v1/accounts.md
similarity index 100%
rename from _integration-schemas/twilio/v1/accounts.md
rename to archive/_integration-schemas/twilio/v1/accounts.md
diff --git a/_integration-schemas/twilio/v1/addresses.md b/archive/_integration-schemas/twilio/v1/addresses.md
similarity index 100%
rename from _integration-schemas/twilio/v1/addresses.md
rename to archive/_integration-schemas/twilio/v1/addresses.md
diff --git a/_integration-schemas/twilio/v1/alerts.md b/archive/_integration-schemas/twilio/v1/alerts.md
similarity index 100%
rename from _integration-schemas/twilio/v1/alerts.md
rename to archive/_integration-schemas/twilio/v1/alerts.md
diff --git a/_integration-schemas/twilio/v1/applications.md b/archive/_integration-schemas/twilio/v1/applications.md
similarity index 100%
rename from _integration-schemas/twilio/v1/applications.md
rename to archive/_integration-schemas/twilio/v1/applications.md
diff --git a/_integration-schemas/twilio/v1/available_phone_number_countries.md b/archive/_integration-schemas/twilio/v1/available_phone_number_countries.md
similarity index 100%
rename from _integration-schemas/twilio/v1/available_phone_number_countries.md
rename to archive/_integration-schemas/twilio/v1/available_phone_number_countries.md
diff --git a/_integration-schemas/twilio/v1/available_phone_numbers_local.md b/archive/_integration-schemas/twilio/v1/available_phone_numbers_local.md
similarity index 100%
rename from _integration-schemas/twilio/v1/available_phone_numbers_local.md
rename to archive/_integration-schemas/twilio/v1/available_phone_numbers_local.md
diff --git a/_integration-schemas/twilio/v1/available_phone_numbers_mobile.md b/archive/_integration-schemas/twilio/v1/available_phone_numbers_mobile.md
similarity index 100%
rename from _integration-schemas/twilio/v1/available_phone_numbers_mobile.md
rename to archive/_integration-schemas/twilio/v1/available_phone_numbers_mobile.md
diff --git a/_integration-schemas/twilio/v1/available_phone_numbers_toll_free.md b/archive/_integration-schemas/twilio/v1/available_phone_numbers_toll_free.md
similarity index 100%
rename from _integration-schemas/twilio/v1/available_phone_numbers_toll_free.md
rename to archive/_integration-schemas/twilio/v1/available_phone_numbers_toll_free.md
diff --git a/_integration-schemas/twilio/v1/calls.md b/archive/_integration-schemas/twilio/v1/calls.md
similarity index 100%
rename from _integration-schemas/twilio/v1/calls.md
rename to archive/_integration-schemas/twilio/v1/calls.md
diff --git a/_integration-schemas/twilio/v1/conference_participants.md b/archive/_integration-schemas/twilio/v1/conference_participants.md
similarity index 100%
rename from _integration-schemas/twilio/v1/conference_participants.md
rename to archive/_integration-schemas/twilio/v1/conference_participants.md
diff --git a/_integration-schemas/twilio/v1/conferences.md b/archive/_integration-schemas/twilio/v1/conferences.md
similarity index 100%
rename from _integration-schemas/twilio/v1/conferences.md
rename to archive/_integration-schemas/twilio/v1/conferences.md
diff --git a/_integration-schemas/twilio/v1/dependent_phone_numbers.md b/archive/_integration-schemas/twilio/v1/dependent_phone_numbers.md
similarity index 100%
rename from _integration-schemas/twilio/v1/dependent_phone_numbers.md
rename to archive/_integration-schemas/twilio/v1/dependent_phone_numbers.md
diff --git a/_integration-schemas/twilio/v1/incoming_phone_numbers.md b/archive/_integration-schemas/twilio/v1/incoming_phone_numbers.md
similarity index 100%
rename from _integration-schemas/twilio/v1/incoming_phone_numbers.md
rename to archive/_integration-schemas/twilio/v1/incoming_phone_numbers.md
diff --git a/_integration-schemas/twilio/v1/keys.md b/archive/_integration-schemas/twilio/v1/keys.md
similarity index 100%
rename from _integration-schemas/twilio/v1/keys.md
rename to archive/_integration-schemas/twilio/v1/keys.md
diff --git a/_integration-schemas/twilio/v1/message_media.md b/archive/_integration-schemas/twilio/v1/message_media.md
similarity index 100%
rename from _integration-schemas/twilio/v1/message_media.md
rename to archive/_integration-schemas/twilio/v1/message_media.md
diff --git a/_integration-schemas/twilio/v1/messages.md b/archive/_integration-schemas/twilio/v1/messages.md
similarity index 100%
rename from _integration-schemas/twilio/v1/messages.md
rename to archive/_integration-schemas/twilio/v1/messages.md
diff --git a/_integration-schemas/twilio/v1/outgoing_caller_ids.md b/archive/_integration-schemas/twilio/v1/outgoing_caller_ids.md
similarity index 100%
rename from _integration-schemas/twilio/v1/outgoing_caller_ids.md
rename to archive/_integration-schemas/twilio/v1/outgoing_caller_ids.md
diff --git a/_integration-schemas/twilio/v1/queues.md b/archive/_integration-schemas/twilio/v1/queues.md
similarity index 100%
rename from _integration-schemas/twilio/v1/queues.md
rename to archive/_integration-schemas/twilio/v1/queues.md
diff --git a/_integration-schemas/twilio/v1/recordings.md b/archive/_integration-schemas/twilio/v1/recordings.md
similarity index 100%
rename from _integration-schemas/twilio/v1/recordings.md
rename to archive/_integration-schemas/twilio/v1/recordings.md
diff --git a/_integration-schemas/twilio/v1/transcriptions.md b/archive/_integration-schemas/twilio/v1/transcriptions.md
similarity index 100%
rename from _integration-schemas/twilio/v1/transcriptions.md
rename to archive/_integration-schemas/twilio/v1/transcriptions.md
diff --git a/_integration-schemas/twilio/v1/usage_records.md b/archive/_integration-schemas/twilio/v1/usage_records.md
similarity index 100%
rename from _integration-schemas/twilio/v1/usage_records.md
rename to archive/_integration-schemas/twilio/v1/usage_records.md
diff --git a/_integration-schemas/twilio/v1/usage_triggers.md b/archive/_integration-schemas/twilio/v1/usage_triggers.md
similarity index 100%
rename from _integration-schemas/twilio/v1/usage_triggers.md
rename to archive/_integration-schemas/twilio/v1/usage_triggers.md
diff --git a/_integration-schemas/twitter-ads/v1/account_media.md b/archive/_integration-schemas/twitter-ads/v1/account_media.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/account_media.md
rename to archive/_integration-schemas/twitter-ads/v1/account_media.md
diff --git a/_integration-schemas/twitter-ads/v1/accounts.md b/archive/_integration-schemas/twitter-ads/v1/accounts.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/accounts.md
rename to archive/_integration-schemas/twitter-ads/v1/accounts.md
diff --git a/_integration-schemas/twitter-ads/v1/advertiser_business_categories.md b/archive/_integration-schemas/twitter-ads/v1/advertiser_business_categories.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/advertiser_business_categories.md
rename to archive/_integration-schemas/twitter-ads/v1/advertiser_business_categories.md
diff --git a/_integration-schemas/twitter-ads/v1/bidding_rules.md b/archive/_integration-schemas/twitter-ads/v1/bidding_rules.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/bidding_rules.md
rename to archive/_integration-schemas/twitter-ads/v1/bidding_rules.md
diff --git a/_integration-schemas/twitter-ads/v1/campaigns.md b/archive/_integration-schemas/twitter-ads/v1/campaigns.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/campaigns.md
rename to archive/_integration-schemas/twitter-ads/v1/campaigns.md
diff --git a/_integration-schemas/twitter-ads/v1/cards_image_app_download.md b/archive/_integration-schemas/twitter-ads/v1/cards_image_app_download.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/cards_image_app_download.md
rename to archive/_integration-schemas/twitter-ads/v1/cards_image_app_download.md
diff --git a/_integration-schemas/twitter-ads/v1/cards_image_conversation.md b/archive/_integration-schemas/twitter-ads/v1/cards_image_conversation.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/cards_image_conversation.md
rename to archive/_integration-schemas/twitter-ads/v1/cards_image_conversation.md
diff --git a/_integration-schemas/twitter-ads/v1/cards_image_direct_message.md b/archive/_integration-schemas/twitter-ads/v1/cards_image_direct_message.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/cards_image_direct_message.md
rename to archive/_integration-schemas/twitter-ads/v1/cards_image_direct_message.md
diff --git a/_integration-schemas/twitter-ads/v1/cards_poll.md b/archive/_integration-schemas/twitter-ads/v1/cards_poll.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/cards_poll.md
rename to archive/_integration-schemas/twitter-ads/v1/cards_poll.md
diff --git a/_integration-schemas/twitter-ads/v1/cards_video_app_download.md b/archive/_integration-schemas/twitter-ads/v1/cards_video_app_download.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/cards_video_app_download.md
rename to archive/_integration-schemas/twitter-ads/v1/cards_video_app_download.md
diff --git a/_integration-schemas/twitter-ads/v1/cards_video_conversation.md b/archive/_integration-schemas/twitter-ads/v1/cards_video_conversation.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/cards_video_conversation.md
rename to archive/_integration-schemas/twitter-ads/v1/cards_video_conversation.md
diff --git a/_integration-schemas/twitter-ads/v1/cards_video_direct_message.md b/archive/_integration-schemas/twitter-ads/v1/cards_video_direct_message.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/cards_video_direct_message.md
rename to archive/_integration-schemas/twitter-ads/v1/cards_video_direct_message.md
diff --git a/_integration-schemas/twitter-ads/v1/cards_video_website.md b/archive/_integration-schemas/twitter-ads/v1/cards_video_website.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/cards_video_website.md
rename to archive/_integration-schemas/twitter-ads/v1/cards_video_website.md
diff --git a/_integration-schemas/twitter-ads/v1/cards_website.md b/archive/_integration-schemas/twitter-ads/v1/cards_website.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/cards_website.md
rename to archive/_integration-schemas/twitter-ads/v1/cards_website.md
diff --git a/_integration-schemas/twitter-ads/v1/content_categories.md b/archive/_integration-schemas/twitter-ads/v1/content_categories.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/content_categories.md
rename to archive/_integration-schemas/twitter-ads/v1/content_categories.md
diff --git a/_integration-schemas/twitter-ads/v1/example-custom-report.md b/archive/_integration-schemas/twitter-ads/v1/example-custom-report.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/example-custom-report.md
rename to archive/_integration-schemas/twitter-ads/v1/example-custom-report.md
diff --git a/_integration-schemas/twitter-ads/v1/foreign-keys.md b/archive/_integration-schemas/twitter-ads/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/foreign-keys.md
rename to archive/_integration-schemas/twitter-ads/v1/foreign-keys.md
diff --git a/_integration-schemas/twitter-ads/v1/funding_instruments.md b/archive/_integration-schemas/twitter-ads/v1/funding_instruments.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/funding_instruments.md
rename to archive/_integration-schemas/twitter-ads/v1/funding_instruments.md
diff --git a/_integration-schemas/twitter-ads/v1/iab_categories.md b/archive/_integration-schemas/twitter-ads/v1/iab_categories.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/iab_categories.md
rename to archive/_integration-schemas/twitter-ads/v1/iab_categories.md
diff --git a/_integration-schemas/twitter-ads/v1/line_item_apps.md b/archive/_integration-schemas/twitter-ads/v1/line_item_apps.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/line_item_apps.md
rename to archive/_integration-schemas/twitter-ads/v1/line_item_apps.md
diff --git a/_integration-schemas/twitter-ads/v1/line_items.md b/archive/_integration-schemas/twitter-ads/v1/line_items.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/line_items.md
rename to archive/_integration-schemas/twitter-ads/v1/line_items.md
diff --git a/_integration-schemas/twitter-ads/v1/media_creatives.md b/archive/_integration-schemas/twitter-ads/v1/media_creatives.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/media_creatives.md
rename to archive/_integration-schemas/twitter-ads/v1/media_creatives.md
diff --git a/_integration-schemas/twitter-ads/v1/preroll_call_to_actions.md b/archive/_integration-schemas/twitter-ads/v1/preroll_call_to_actions.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/preroll_call_to_actions.md
rename to archive/_integration-schemas/twitter-ads/v1/preroll_call_to_actions.md
diff --git a/_integration-schemas/twitter-ads/v1/promotable_users.md b/archive/_integration-schemas/twitter-ads/v1/promotable_users.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/promotable_users.md
rename to archive/_integration-schemas/twitter-ads/v1/promotable_users.md
diff --git a/_integration-schemas/twitter-ads/v1/promoted_accounts.md b/archive/_integration-schemas/twitter-ads/v1/promoted_accounts.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/promoted_accounts.md
rename to archive/_integration-schemas/twitter-ads/v1/promoted_accounts.md
diff --git a/_integration-schemas/twitter-ads/v1/promoted_tweets.md b/archive/_integration-schemas/twitter-ads/v1/promoted_tweets.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/promoted_tweets.md
rename to archive/_integration-schemas/twitter-ads/v1/promoted_tweets.md
diff --git a/_integration-schemas/twitter-ads/v1/scheduled_promoted_tweets.md b/archive/_integration-schemas/twitter-ads/v1/scheduled_promoted_tweets.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/scheduled_promoted_tweets.md
rename to archive/_integration-schemas/twitter-ads/v1/scheduled_promoted_tweets.md
diff --git a/_integration-schemas/twitter-ads/v1/tailored_audiences.md b/archive/_integration-schemas/twitter-ads/v1/tailored_audiences.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/tailored_audiences.md
rename to archive/_integration-schemas/twitter-ads/v1/tailored_audiences.md
diff --git a/_integration-schemas/twitter-ads/v1/targeting_app_store_categories.md b/archive/_integration-schemas/twitter-ads/v1/targeting_app_store_categories.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/targeting_app_store_categories.md
rename to archive/_integration-schemas/twitter-ads/v1/targeting_app_store_categories.md
diff --git a/_integration-schemas/twitter-ads/v1/targeting_conversations.md b/archive/_integration-schemas/twitter-ads/v1/targeting_conversations.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/targeting_conversations.md
rename to archive/_integration-schemas/twitter-ads/v1/targeting_conversations.md
diff --git a/_integration-schemas/twitter-ads/v1/targeting_criteria.md b/archive/_integration-schemas/twitter-ads/v1/targeting_criteria.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/targeting_criteria.md
rename to archive/_integration-schemas/twitter-ads/v1/targeting_criteria.md
diff --git a/_integration-schemas/twitter-ads/v1/targeting_devices.md b/archive/_integration-schemas/twitter-ads/v1/targeting_devices.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/targeting_devices.md
rename to archive/_integration-schemas/twitter-ads/v1/targeting_devices.md
diff --git a/_integration-schemas/twitter-ads/v1/targeting_interests.md b/archive/_integration-schemas/twitter-ads/v1/targeting_interests.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/targeting_interests.md
rename to archive/_integration-schemas/twitter-ads/v1/targeting_interests.md
diff --git a/_integration-schemas/twitter-ads/v1/targeting_languages.md b/archive/_integration-schemas/twitter-ads/v1/targeting_languages.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/targeting_languages.md
rename to archive/_integration-schemas/twitter-ads/v1/targeting_languages.md
diff --git a/_integration-schemas/twitter-ads/v1/targeting_locations.md b/archive/_integration-schemas/twitter-ads/v1/targeting_locations.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/targeting_locations.md
rename to archive/_integration-schemas/twitter-ads/v1/targeting_locations.md
diff --git a/_integration-schemas/twitter-ads/v1/targeting_network_operators.md b/archive/_integration-schemas/twitter-ads/v1/targeting_network_operators.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/targeting_network_operators.md
rename to archive/_integration-schemas/twitter-ads/v1/targeting_network_operators.md
diff --git a/_integration-schemas/twitter-ads/v1/targeting_platform_versions.md b/archive/_integration-schemas/twitter-ads/v1/targeting_platform_versions.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/targeting_platform_versions.md
rename to archive/_integration-schemas/twitter-ads/v1/targeting_platform_versions.md
diff --git a/_integration-schemas/twitter-ads/v1/targeting_platforms.md b/archive/_integration-schemas/twitter-ads/v1/targeting_platforms.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/targeting_platforms.md
rename to archive/_integration-schemas/twitter-ads/v1/targeting_platforms.md
diff --git a/_integration-schemas/twitter-ads/v1/targeting_tv_markets.md b/archive/_integration-schemas/twitter-ads/v1/targeting_tv_markets.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/targeting_tv_markets.md
rename to archive/_integration-schemas/twitter-ads/v1/targeting_tv_markets.md
diff --git a/_integration-schemas/twitter-ads/v1/targeting_tv_shows.md b/archive/_integration-schemas/twitter-ads/v1/targeting_tv_shows.md
similarity index 100%
rename from _integration-schemas/twitter-ads/v1/targeting_tv_shows.md
rename to archive/_integration-schemas/twitter-ads/v1/targeting_tv_shows.md
diff --git a/_integration-schemas/twitter-ads/v1/tweets.md b/archive/_integration-schemas/twitter-ads/v1/tweets.md
similarity index 99%
rename from _integration-schemas/twitter-ads/v1/tweets.md
rename to archive/_integration-schemas/twitter-ads/v1/tweets.md
index 24b45d8f0..46f46f575 100644
--- a/_integration-schemas/twitter-ads/v1/tweets.md
+++ b/archive/_integration-schemas/twitter-ads/v1/tweets.md
@@ -721,7 +721,6 @@ attributes:
- name: "id"
type: "integer"
description: ""
- subattributes: "user-id"
- name: "id_str"
type: "string"
diff --git a/_integration-schemas/typeform/v1/answers.md b/archive/_integration-schemas/typeform/v1/answers.md
similarity index 100%
rename from _integration-schemas/typeform/v1/answers.md
rename to archive/_integration-schemas/typeform/v1/answers.md
diff --git a/_integration-schemas/typeform/v1/foreign-keys.md b/archive/_integration-schemas/typeform/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/typeform/v1/foreign-keys.md
rename to archive/_integration-schemas/typeform/v1/foreign-keys.md
diff --git a/_integration-schemas/typeform/v1/forms.md b/archive/_integration-schemas/typeform/v1/forms.md
similarity index 100%
rename from _integration-schemas/typeform/v1/forms.md
rename to archive/_integration-schemas/typeform/v1/forms.md
diff --git a/_integration-schemas/typeform/v1/landings.md b/archive/_integration-schemas/typeform/v1/landings.md
similarity index 100%
rename from _integration-schemas/typeform/v1/landings.md
rename to archive/_integration-schemas/typeform/v1/landings.md
diff --git a/_integration-schemas/typeform/v1/questions.md b/archive/_integration-schemas/typeform/v1/questions.md
similarity index 100%
rename from _integration-schemas/typeform/v1/questions.md
rename to archive/_integration-schemas/typeform/v1/questions.md
diff --git a/_integration-schemas/typeform/v2/answers.md b/archive/_integration-schemas/typeform/v2/answers.md
similarity index 100%
rename from _integration-schemas/typeform/v2/answers.md
rename to archive/_integration-schemas/typeform/v2/answers.md
diff --git a/_integration-schemas/typeform/v2/foreign-keys.md b/archive/_integration-schemas/typeform/v2/foreign-keys.md
similarity index 100%
rename from _integration-schemas/typeform/v2/foreign-keys.md
rename to archive/_integration-schemas/typeform/v2/foreign-keys.md
diff --git a/_integration-schemas/typeform/v2/forms.md b/archive/_integration-schemas/typeform/v2/forms.md
similarity index 100%
rename from _integration-schemas/typeform/v2/forms.md
rename to archive/_integration-schemas/typeform/v2/forms.md
diff --git a/_integration-schemas/typeform/v2/questions.md b/archive/_integration-schemas/typeform/v2/questions.md
similarity index 100%
rename from _integration-schemas/typeform/v2/questions.md
rename to archive/_integration-schemas/typeform/v2/questions.md
diff --git a/_integration-schemas/typeform/v2/submitted_landings.md b/archive/_integration-schemas/typeform/v2/submitted_landings.md
similarity index 100%
rename from _integration-schemas/typeform/v2/submitted_landings.md
rename to archive/_integration-schemas/typeform/v2/submitted_landings.md
diff --git a/_integration-schemas/typeform/v2/unsubmitted_landings.md b/archive/_integration-schemas/typeform/v2/unsubmitted_landings.md
similarity index 100%
rename from _integration-schemas/typeform/v2/unsubmitted_landings.md
rename to archive/_integration-schemas/typeform/v2/unsubmitted_landings.md
diff --git a/_integration-schemas/ujet/v1/agent_activity_logs.md b/archive/_integration-schemas/ujet/v1/agent_activity_logs.md
similarity index 100%
rename from _integration-schemas/ujet/v1/agent_activity_logs.md
rename to archive/_integration-schemas/ujet/v1/agent_activity_logs.md
diff --git a/_integration-schemas/ujet/v1/agents.md b/archive/_integration-schemas/ujet/v1/agents.md
similarity index 100%
rename from _integration-schemas/ujet/v1/agents.md
rename to archive/_integration-schemas/ujet/v1/agents.md
diff --git a/_integration-schemas/ujet/v1/calls.md b/archive/_integration-schemas/ujet/v1/calls.md
similarity index 100%
rename from _integration-schemas/ujet/v1/calls.md
rename to archive/_integration-schemas/ujet/v1/calls.md
diff --git a/_integration-schemas/ujet/v1/chats.md b/archive/_integration-schemas/ujet/v1/chats.md
similarity index 99%
rename from _integration-schemas/ujet/v1/chats.md
rename to archive/_integration-schemas/ujet/v1/chats.md
index 9a1bdc927..44528d9d8 100644
--- a/_integration-schemas/ujet/v1/chats.md
+++ b/archive/_integration-schemas/ujet/v1/chats.md
@@ -98,7 +98,7 @@ attributes:
- name: "menu_path"
type: "object"
description: ""
- subattributes:
+ subattributes: &menu-path
- name: "items_count"
type: "integer"
description: ""
diff --git a/_integration-schemas/ujet/v1/foreign-keys.md b/archive/_integration-schemas/ujet/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/ujet/v1/foreign-keys.md
rename to archive/_integration-schemas/ujet/v1/foreign-keys.md
diff --git a/_integration-schemas/ujet/v1/menu_tree.md b/archive/_integration-schemas/ujet/v1/menu_tree.md
similarity index 100%
rename from _integration-schemas/ujet/v1/menu_tree.md
rename to archive/_integration-schemas/ujet/v1/menu_tree.md
diff --git a/_integration-schemas/ujet/v1/menus.md b/archive/_integration-schemas/ujet/v1/menus.md
similarity index 100%
rename from _integration-schemas/ujet/v1/menus.md
rename to archive/_integration-schemas/ujet/v1/menus.md
diff --git a/_integration-schemas/ujet/v1/team_tree.md b/archive/_integration-schemas/ujet/v1/team_tree.md
similarity index 100%
rename from _integration-schemas/ujet/v1/team_tree.md
rename to archive/_integration-schemas/ujet/v1/team_tree.md
diff --git a/_integration-schemas/ujet/v1/teams.md b/archive/_integration-schemas/ujet/v1/teams.md
similarity index 100%
rename from _integration-schemas/ujet/v1/teams.md
rename to archive/_integration-schemas/ujet/v1/teams.md
diff --git a/_integration-schemas/ujet/v1/user_statuses.md b/archive/_integration-schemas/ujet/v1/user_statuses.md
similarity index 100%
rename from _integration-schemas/ujet/v1/user_statuses.md
rename to archive/_integration-schemas/ujet/v1/user_statuses.md
diff --git a/_integration-schemas/urban-airship/channels.md b/archive/_integration-schemas/urban-airship/channels.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/urban-airship/channels.md
rename to archive/_integration-schemas/urban-airship/channels.md
diff --git a/_integration-schemas/urban-airship/foreign-keys.md b/archive/_integration-schemas/urban-airship/foreign-keys.md
similarity index 100%
rename from _integration-schemas/urban-airship/foreign-keys.md
rename to archive/_integration-schemas/urban-airship/foreign-keys.md
diff --git a/_integration-schemas/urban-airship/lists.md b/archive/_integration-schemas/urban-airship/lists.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/urban-airship/lists.md
rename to archive/_integration-schemas/urban-airship/lists.md
diff --git a/_integration-schemas/urban-airship/named_users.md b/archive/_integration-schemas/urban-airship/named_users.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/urban-airship/named_users.md
rename to archive/_integration-schemas/urban-airship/named_users.md
diff --git a/_integration-schemas/urban-airship/segments.md b/archive/_integration-schemas/urban-airship/segments.md
old mode 100755
new mode 100644
similarity index 98%
rename from _integration-schemas/urban-airship/segments.md
rename to archive/_integration-schemas/urban-airship/segments.md
index e0f65fa11..22ff6e490
--- a/_integration-schemas/urban-airship/segments.md
+++ b/archive/_integration-schemas/urban-airship/segments.md
@@ -4,7 +4,7 @@ version: "1"
name: "segments"
doc-link: http://docs.urbanairship.com/api/ua.html#segments
-singer-schema:
+
description: |
The `{{ table.name }}` table contains info about segments, or portions of your audience that have arbitrary metadata attached.
diff --git a/_integration-schemas/uservoice/v1/categories.md b/archive/_integration-schemas/uservoice/v1/categories.md
similarity index 100%
rename from _integration-schemas/uservoice/v1/categories.md
rename to archive/_integration-schemas/uservoice/v1/categories.md
diff --git a/_integration-schemas/uservoice/v1/comments.md b/archive/_integration-schemas/uservoice/v1/comments.md
similarity index 100%
rename from _integration-schemas/uservoice/v1/comments.md
rename to archive/_integration-schemas/uservoice/v1/comments.md
diff --git a/_integration-schemas/uservoice/v1/external_accounts.md b/archive/_integration-schemas/uservoice/v1/external_accounts.md
similarity index 100%
rename from _integration-schemas/uservoice/v1/external_accounts.md
rename to archive/_integration-schemas/uservoice/v1/external_accounts.md
diff --git a/_integration-schemas/uservoice/v1/external_users.md b/archive/_integration-schemas/uservoice/v1/external_users.md
similarity index 100%
rename from _integration-schemas/uservoice/v1/external_users.md
rename to archive/_integration-schemas/uservoice/v1/external_users.md
diff --git a/_integration-schemas/uservoice/v1/feature_statuses.md b/archive/_integration-schemas/uservoice/v1/feature_statuses.md
similarity index 100%
rename from _integration-schemas/uservoice/v1/feature_statuses.md
rename to archive/_integration-schemas/uservoice/v1/feature_statuses.md
diff --git a/_integration-schemas/uservoice/v1/features.md b/archive/_integration-schemas/uservoice/v1/features.md
similarity index 100%
rename from _integration-schemas/uservoice/v1/features.md
rename to archive/_integration-schemas/uservoice/v1/features.md
diff --git a/_integration-schemas/uservoice/v1/foreign-keys.md b/archive/_integration-schemas/uservoice/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/uservoice/v1/foreign-keys.md
rename to archive/_integration-schemas/uservoice/v1/foreign-keys.md
diff --git a/_integration-schemas/uservoice/v1/forums.md b/archive/_integration-schemas/uservoice/v1/forums.md
similarity index 100%
rename from _integration-schemas/uservoice/v1/forums.md
rename to archive/_integration-schemas/uservoice/v1/forums.md
diff --git a/_integration-schemas/uservoice/v1/labels.md b/archive/_integration-schemas/uservoice/v1/labels.md
similarity index 100%
rename from _integration-schemas/uservoice/v1/labels.md
rename to archive/_integration-schemas/uservoice/v1/labels.md
diff --git a/_integration-schemas/uservoice/v1/nps_ratings.md b/archive/_integration-schemas/uservoice/v1/nps_ratings.md
similarity index 100%
rename from _integration-schemas/uservoice/v1/nps_ratings.md
rename to archive/_integration-schemas/uservoice/v1/nps_ratings.md
diff --git a/_integration-schemas/uservoice/v1/product_areas.md b/archive/_integration-schemas/uservoice/v1/product_areas.md
similarity index 100%
rename from _integration-schemas/uservoice/v1/product_areas.md
rename to archive/_integration-schemas/uservoice/v1/product_areas.md
diff --git a/_integration-schemas/uservoice/v1/requests.md b/archive/_integration-schemas/uservoice/v1/requests.md
similarity index 100%
rename from _integration-schemas/uservoice/v1/requests.md
rename to archive/_integration-schemas/uservoice/v1/requests.md
diff --git a/_integration-schemas/uservoice/v1/segmented_values.md b/archive/_integration-schemas/uservoice/v1/segmented_values.md
similarity index 100%
rename from _integration-schemas/uservoice/v1/segmented_values.md
rename to archive/_integration-schemas/uservoice/v1/segmented_values.md
diff --git a/_integration-schemas/uservoice/v1/segments.md b/archive/_integration-schemas/uservoice/v1/segments.md
similarity index 100%
rename from _integration-schemas/uservoice/v1/segments.md
rename to archive/_integration-schemas/uservoice/v1/segments.md
diff --git a/_integration-schemas/uservoice/v1/status_updates.md b/archive/_integration-schemas/uservoice/v1/status_updates.md
similarity index 100%
rename from _integration-schemas/uservoice/v1/status_updates.md
rename to archive/_integration-schemas/uservoice/v1/status_updates.md
diff --git a/_integration-schemas/uservoice/v1/statuses.md b/archive/_integration-schemas/uservoice/v1/statuses.md
similarity index 100%
rename from _integration-schemas/uservoice/v1/statuses.md
rename to archive/_integration-schemas/uservoice/v1/statuses.md
diff --git a/_integration-schemas/uservoice/v1/suggestions.md b/archive/_integration-schemas/uservoice/v1/suggestions.md
similarity index 100%
rename from _integration-schemas/uservoice/v1/suggestions.md
rename to archive/_integration-schemas/uservoice/v1/suggestions.md
diff --git a/_integration-schemas/uservoice/v1/supporters.md b/archive/_integration-schemas/uservoice/v1/supporters.md
similarity index 100%
rename from _integration-schemas/uservoice/v1/supporters.md
rename to archive/_integration-schemas/uservoice/v1/supporters.md
diff --git a/_integration-schemas/uservoice/v1/teams.md b/archive/_integration-schemas/uservoice/v1/teams.md
similarity index 100%
rename from _integration-schemas/uservoice/v1/teams.md
rename to archive/_integration-schemas/uservoice/v1/teams.md
diff --git a/_integration-schemas/uservoice/v1/users.md b/archive/_integration-schemas/uservoice/v1/users.md
similarity index 100%
rename from _integration-schemas/uservoice/v1/users.md
rename to archive/_integration-schemas/uservoice/v1/users.md
diff --git a/_integration-schemas/wootric/declines.md b/archive/_integration-schemas/wootric/declines.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/wootric/declines.md
rename to archive/_integration-schemas/wootric/declines.md
diff --git a/_integration-schemas/wootric/end_users.md b/archive/_integration-schemas/wootric/end_users.md
old mode 100755
new mode 100644
similarity index 99%
rename from _integration-schemas/wootric/end_users.md
rename to archive/_integration-schemas/wootric/end_users.md
index 0d36a7431..d3d8e92ca
--- a/_integration-schemas/wootric/end_users.md
+++ b/archive/_integration-schemas/wootric/end_users.md
@@ -3,7 +3,7 @@ tap: "wootric"
version: "1"
name: "end_users"
-doc-link:
+
singer-schema: https://github.com/singer-io/tap-wootric/blob/master/tap_wootric/schemas/end_users.json
description: |
The `{{ table.name }}` table contains info about the end users associated with survey opportunities.
diff --git a/_integration-schemas/wootric/foreign-keys.md b/archive/_integration-schemas/wootric/foreign-keys.md
similarity index 100%
rename from _integration-schemas/wootric/foreign-keys.md
rename to archive/_integration-schemas/wootric/foreign-keys.md
diff --git a/_integration-schemas/wootric/responses.md b/archive/_integration-schemas/wootric/responses.md
old mode 100755
new mode 100644
similarity index 100%
rename from _integration-schemas/wootric/responses.md
rename to archive/_integration-schemas/wootric/responses.md
diff --git a/_integration-schemas/xero/accounts.md b/archive/_integration-schemas/xero/accounts.md
similarity index 100%
rename from _integration-schemas/xero/accounts.md
rename to archive/_integration-schemas/xero/accounts.md
diff --git a/_integration-schemas/xero/bank_transactions.md b/archive/_integration-schemas/xero/bank_transactions.md
similarity index 92%
rename from _integration-schemas/xero/bank_transactions.md
rename to archive/_integration-schemas/xero/bank_transactions.md
index b44b16eae..6431e82fe 100644
--- a/_integration-schemas/xero/bank_transactions.md
+++ b/archive/_integration-schemas/xero/bank_transactions.md
@@ -84,17 +84,11 @@ attributes:
type: "array"
description: |
Details about the tracking categories applied to the line item, if applicable.
- subattributes:
- - description: |
- This will contain the same attributes as the `tracking_categories` table. Refer to the [`tracking_categories`](#tracking_categories) table schema for details.
- name: "BankAccount"
type: "array"
description: |
Details about the bank account used in the bank transaction.
- subattributes:
- - description: |
- This will contain the same attributes as the `accounts` table. Refer to the [`accounts`](#accounts) table schema for details.
- name: "IsReconciled"
type: "boolean"
diff --git a/_integration-schemas/xero/bank_transfers.md b/archive/_integration-schemas/xero/bank_transfers.md
similarity index 88%
rename from _integration-schemas/xero/bank_transfers.md
rename to archive/_integration-schemas/xero/bank_transfers.md
index 212ec1792..f2529d464 100644
--- a/_integration-schemas/xero/bank_transfers.md
+++ b/archive/_integration-schemas/xero/bank_transfers.md
@@ -30,16 +30,11 @@ attributes:
type: "object"
description: |
Details about the source bank account.
- subattributes:
- - description: &accounts-table |
- This will contain the same attributes as the `accounts` table. Refer to the [`accounts`](#accounts) table schema for details.
- name: "ToBankAccount"
type: "object"
description: |
Details about the destination bank account.
- subattributes:
- - description: *accounts-table
- name: "Amount"
type: "number"
diff --git a/_integration-schemas/xero/branding_themes.md b/archive/_integration-schemas/xero/branding_themes.md
similarity index 100%
rename from _integration-schemas/xero/branding_themes.md
rename to archive/_integration-schemas/xero/branding_themes.md
diff --git a/_integration-schemas/xero/contact_groups.md b/archive/_integration-schemas/xero/contact_groups.md
similarity index 100%
rename from _integration-schemas/xero/contact_groups.md
rename to archive/_integration-schemas/xero/contact_groups.md
diff --git a/archive/_integration-schemas/xero/contacts.md b/archive/_integration-schemas/xero/contacts.md
new file mode 100644
index 000000000..80346b361
--- /dev/null
+++ b/archive/_integration-schemas/xero/contacts.md
@@ -0,0 +1,414 @@
+---
+tap: "xero"
+version: "1"
+
+name: "contacts"
+doc-link: &api-doc https://developer.xero.com/documentation/api/contacts
+singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/contacts.json
+description: |
+ The `{{ table.name }}` table contains info about the customers and suppliers you do business with.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: getContacts
+ doc-link: *api-doc
+
+attributes:
+ - name: "ContactID"
+ type: "string"
+ primary-key: true
+ description: "The contact ID."
+ foreign-key-id: "contact-id"
+
+ - name: "UpdatedDateUTC"
+ type: "date-time"
+ replication-key: true
+ description: "The date the contact was last updated, in UTC."
+
+ - name: "ContactNumber"
+ type: "string"
+ description: "An identifier for the contact used in an external system. In {{ integration.display_name }}, this is the **Contact Code** field in the Contacts UI."
+
+ - name: "AccountNumber"
+ type: "string"
+ description: "The account number associated with the contact."
+
+ - name: "ContactStatus"
+ type: "string"
+ description: |
+ The current status of the contact. Possible values are:
+
+ - `ACTIVE`
+ - `ARCHIVED`
+
+ - name: "Name"
+ type: "string"
+ description: "The full name of the contact/organisation."
+
+ - name: "FirstName"
+ type: "string"
+ description: "The first name of the contact."
+
+ - name: "LastName"
+ type: "string"
+ description: "The last name of the contact."
+
+ - name: "EmailAddress"
+ type: "string"
+ description: "The email address of the contact."
+
+ - name: "SkypeUserName"
+ type: "string"
+ description: "The Skype username of the contact."
+
+ - name: "BankAccountDetails"
+ type: "string"
+ description: "The bank account number of the contact."
+
+ - name: "TaxNumber"
+ type: "string"
+ description: |
+ The tax number of the contact. Depending on the version of {{ integration.display_name }} you're using, this could be one of the following in the {{ integration.display_name }} UI:
+
+ - Australia - ABN
+ - New Zealand - GST Number
+ - UK - VAT Number
+ - US and global - Tax ID Number
+
+ - name: "AccountsReceivableTaxType"
+ type: "string"
+ description: "The default tax type used on AR invoices for the contact."
+
+ - name: "AccountsPayableTaxType"
+ type: "string"
+ description: "The default tax type used on AP invoices for the contact."
+
+ - name: "Addresses"
+ type: "array"
+ description: "Details about the contact's addresses."
+ subattributes:
+ - name: "Region"
+ type: "string"
+ description: "The region associated with the address."
+
+ - name: "AddressType"
+ type: "string"
+ description: |
+ The address type. Possible values are:
+
+ - `POBOX`
+ - `STREET`
+ - `DELIVERY` - **Note**: This address type is not valid for `contacts`.
+
+ - name: "AddressLine1"
+ type: "string"
+ description: "The first line of the address."
+
+ - name: "AddressLine2"
+ type: "string"
+ description: "The second line of the address."
+
+ - name: "AddressLine3"
+ type: "string"
+ description: "The third line of the address."
+
+ - name: "AddressLine4"
+ type: "string"
+ description: "The fourth line of the address."
+
+ - name: "AttentionTo"
+ type: "string"
+ description: "The name of the addressee."
+
+ - name: "City"
+ type: "string"
+ description: "The city associated with the address."
+
+ - name: "PostalCode"
+ type: "string"
+ description: "The postal code associated with the address."
+
+ - name: "Country"
+ type: "string"
+ description: "The country associated with the address."
+
+ - name: "Phones"
+ type: "array"
+ description: "Details about the contact's phone numbers."
+ subattributes:
+ - name: "PhoneNumber"
+ type: "string"
+ description: "The phone number."
+
+ - name: "PhoneAreaCode"
+ type: "string"
+ description: "The area code associated with the phone number."
+
+ - name: "PhoneCountryCode"
+ type: "string"
+ description: "The country code associated with the phone number."
+
+ - name: "PhoneType"
+ type: "string"
+ description: |
+ The type of phone number. Possible values are:
+
+ - `DEFAULT`
+ - `DDI`
+ - `MOBILE`
+ - `FAX`
+
+ - name: "IsSupplier"
+ type: "boolean"
+ description: "If `true`, the contact has AP invoices entered against them."
+
+ - name: "IsCustomer"
+ type: "boolean"
+ description: "If `true`, the contact has AR invoices entered against them."
+
+ - name: "DefaultCurrency"
+ type: "string"
+ description: "The default currency for raising invoices against the contact."
+
+ - name: "ContactPersons"
+ type: "array"
+ description: "Details about the contact persons associated with the contact."
+ subattributes:
+ - name: "FirstName"
+ type: "string"
+ description: "The first name of the contact person."
+
+ - name: "LastName"
+ type: "string"
+ description: "The last name of the contact person."
+
+ - name: "EmailAddress"
+ type: "string"
+ description: "The email address of the contact person."
+
+ - name: "IncludeInEmails"
+ type: "string"
+ description: "If `true`, the contact person should be included on emails with invoices, etc."
+
+ - name: "SalesDefaultAccountCode"
+ type: "string"
+ description: "The default sales account code for the contact."
+
+ - name: "PurchasesDefaultAccountCode"
+ type: "string"
+ description: "The default purchases account code for the contact."
+
+ - name: "SalesTrackingCategories"
+ type: "array"
+ description: "Details about the default sales tracking categories for the contact."
+ subattributes:
+ - name: "TrackingCategoryID"
+ type: "string"
+ description: "The tracking category ID."
+ foreign-key-id: "tracking-category-id"
+
+ - name: "Status"
+ type: "string"
+ description: "The status of the tracking category."
+
+ - name: "TrackingCategoryName"
+ type: "string"
+ description: "The name of the tracking category."
+
+ - name: "Name"
+ type: "string"
+ description: "The name of the tracking option."
+
+ - name: "Option"
+ type: "string"
+ description: "The value of the tracking option."
+
+ - name: "Options"
+ type: "array"
+ description: "Details about the tracking option."
+ subattributes: &options
+ - name: "IsActive"
+ type: "boolean"
+ description: "If `true`, the tracking option is active."
+
+ - name: "IsDeleted"
+ type: "boolean"
+ description: "If `true`, the tracking option has been deleted."
+
+ - name: "TrackingOptionID"
+ type: "string"
+ description: "The ID of the tracking option."
+
+ - name: "IsArchived"
+ type: "boolean"
+ description: "If `true`, the tracking option has been archived."
+
+ - name: "Status"
+ type: "string"
+ description: "The status of the tracking option."
+
+ - name: "Name"
+ type: "string"
+ description: "The name of the tracking option."
+
+ - name: "PurchasesTrackingCategories"
+ type: "array"
+ description: "Details about the default purchases tracking categories for the contact."
+ subattributes:
+ - name: "TrackingCategoryID"
+ type: "string"
+ description: "The tracking category ID."
+ foreign-key-id: "tracking-category-id"
+
+ - name: "Status"
+ type: "string"
+ description: "The status of the tracking category."
+
+ - name: "TrackingCategoryName"
+ type: "string"
+ description: "The name of the tracking category."
+
+ - name: "Name"
+ type: "string"
+ description: "The name of the tracking option."
+
+ - name: "Option"
+ type: "string"
+ description: "The value of the tracking option."
+
+ - name: "Options"
+ type: "array"
+ description: "Details about the tracking option."
+ subattributes: *options
+
+ - name: "TrackingCategoryName"
+ type: "string"
+ description: "The name of the Tracking Category assigned to the contact."
+
+ - name: "TrackingCategoryOption"
+ type: "string"
+ description: "The name of the Tracking Option assigned to the contact."
+
+ - name: "PaymentTerms"
+ type: "array"
+ description: "Details about the contact's payment terms."
+ subattributes:
+ - name: "Sales"
+ type: "object"
+ description: "Details about the payment terms used for sales transactions."
+ subattributes:
+ - name: "Day"
+ type: "integer"
+ description: "An integer used with the payment term type to indicate the calendar date of the payment term used for sales transactions."
+
+ - name: "Type"
+ type: "integer"
+ description: |
+ The payment term type used for sales transactions. Possible values are:
+
+ - `DAYSAFTERBILLDATE` - _n_ day(s) after the bill date
+ - `DAYSAFTERBILLMONTH`- _n_ day(s) after the bill month
+ - `OFCURRENTMONTH` - Of the current month
+ - `OFFOLLOWINGMONTH` - Of the following month
+
+ - name: "Bills"
+ type: "object"
+ description: "Details about the payment terms used for bills (invoices)."
+ subattributes:
+ - name: "Day"
+ type: "integer"
+ description: "An integer used with the payment term type to indicate the calendar date of the payment term used for bills."
+
+ - name: "Type"
+ type: "integer"
+ description: |
+ The payment term type used for bills (invoices). Possible values are:
+
+ - `DAYSAFTERBILLDATE` - _n_ day(s) after the bill date
+ - `DAYSAFTERBILLMONTH`- _n_ day(s) after the bill month
+ - `OFCURRENTMONTH` - Of the current month
+ - `OFFOLLOWINGMONTH` - Of the following month
+
+ - name: "ContactGroups"
+ type: "array"
+ description: |
+ Details about the contact groups the contact is included in.
+
+ - name: "Website"
+ type: "string"
+ description: "The website address of the contact."
+
+ - name: "BrandingTheme"
+ type: "object"
+ description: |
+ Details about the branding theme applied to documents sent to the contact.
+
+ - name: "BatchPayments"
+ type: "object"
+ description: "Details about the batch payment details for the contact."
+ subattributes:
+ - name: "Details"
+ type: "string"
+ description: "Details about the batch payment."
+
+ - name: "Reference"
+ type: "string"
+ description: "The reference number for the batch payment."
+
+ - name: "Code"
+ type: "string"
+ description: "The code associated with the batch payment."
+
+ - name: "BankAccountNumber"
+ type: "string"
+ description: "The bank account number associated with the batch payment."
+
+ - name: "BankAccountName"
+ type: "string"
+ description: "The name of the bank account associated with the batch payment."
+
+ - name: "Discount"
+ type: "number"
+ description: "The default discount rate for the contact."
+
+ - name: "Balances"
+ type: "object"
+ description: "Details about the raw AR (sales invoices) and AP (bills) outstanding and overdue amounts associated with the contact."
+ subattributes:
+ - name: "AccountsReceivable"
+ type: "object"
+ description: "Details about the outstanding and/or overdue sales invoices associated with the contact, not converted to base currency."
+ subattributes:
+ - name: "Outstanding"
+ type: "number"
+ description: "The total amount of outstanding sales invoices associated with the contact."
+
+ - name: "Overdue"
+ type: "number"
+ description: "The total amount of overdue sales invoices associated with the contact."
+
+ - name: "AccountsPayable"
+ type: "object"
+ description: "Details about the outstanding and/or overdue bills associated with the contact, not converted to base currency."
+ subattributes:
+ - name: "Outstanding"
+ type: "number"
+ description: "The total amount of outstanding bills associated with the contact."
+
+ - name: "Overdue"
+ type: "number"
+ description: "The total amount of overdue bills associated with the contact."
+
+ - name: "HasAttachments"
+ type: "boolean"
+ description: "If `true`, the contact has an attachment."
+
+ - name: "HasValidationErrors"
+ type: "array"
+ description: "Details about any validation errors associated with the contact."
+ subattributes:
+ - name: "Message"
+ type: "string"
+ description: "The validation error message."
+---
\ No newline at end of file
diff --git a/_integration-schemas/xero/credit_notes.md b/archive/_integration-schemas/xero/credit_notes.md
similarity index 91%
rename from _integration-schemas/xero/credit_notes.md
rename to archive/_integration-schemas/xero/credit_notes.md
index 068c75795..e9168cf3f 100644
--- a/_integration-schemas/xero/credit_notes.md
+++ b/archive/_integration-schemas/xero/credit_notes.md
@@ -38,9 +38,6 @@ attributes:
type: "object"
description: |
Details about the contact associated with the credit note.
- subattributes:
- - description: |
- This will contain the same attributes as the `contacts` table. Refer to the [`contacts`](#contacts) table schema for details.
- name: "Date"
type: "date-time"
@@ -123,9 +120,6 @@ attributes:
type: "array"
description: |
Details about the tracking categories applied to the line item, if applicable.
- subattributes:
- - description: |
- This will contain the same attributes as the `tracking_categories` table. Refer to the [`tracking_categories`](#tracking_categories) table schema for details.
- name: "SubTotal"
type: "number"
@@ -183,9 +177,6 @@ attributes:
- name: "Invoice"
type: "object"
description: "Details about the invoice associated with the credit note."
- subattributes:
- - description: |
- This will contain the same attributes as the `invoices` table. Refer to the [`invoices`](#invoices) table schema for details.
- name: "Date"
type: "date-time"
diff --git a/_integration-schemas/xero/currencies.md b/archive/_integration-schemas/xero/currencies.md
similarity index 100%
rename from _integration-schemas/xero/currencies.md
rename to archive/_integration-schemas/xero/currencies.md
diff --git a/_integration-schemas/xero/employees.md b/archive/_integration-schemas/xero/employees.md
similarity index 100%
rename from _integration-schemas/xero/employees.md
rename to archive/_integration-schemas/xero/employees.md
diff --git a/_integration-schemas/xero/expense_claims.md b/archive/_integration-schemas/xero/expense_claims.md
similarity index 78%
rename from _integration-schemas/xero/expense_claims.md
rename to archive/_integration-schemas/xero/expense_claims.md
index f9c0da575..bf95a2af5 100644
--- a/_integration-schemas/xero/expense_claims.md
+++ b/archive/_integration-schemas/xero/expense_claims.md
@@ -30,25 +30,16 @@ attributes:
type: "array"
description: |
Details about the user(s) who submitted the expense claim.
- subattributes:
- - description: |
- This will contain the same attributes as the `users` table. Refer to the [`users`](#users) table schema for details.
- name: "Receipts"
type: "array"
description: |
Details about the receipt(s) associated with the expense claim.
- subattributes:
- - description: |
- This will contain the same attributes as the `receipts` table. Refer to the [`receipts`](#receipts) table schema for details.
- name: "Payments"
type: "array"
description: |
Details about the payment(s) associated with the expense claim.
- subattributes:
- - description: |
- This will contain the same attributes as the `payments` table. Refer to the [`payments`](#payments) table schema for details.
- name: "Status"
type: "string"
diff --git a/_integration-schemas/xero/foreign-keys.md b/archive/_integration-schemas/xero/foreign-keys.md
similarity index 100%
rename from _integration-schemas/xero/foreign-keys.md
rename to archive/_integration-schemas/xero/foreign-keys.md
diff --git a/archive/_integration-schemas/xero/invoices.md b/archive/_integration-schemas/xero/invoices.md
new file mode 100644
index 000000000..40c69d1c6
--- /dev/null
+++ b/archive/_integration-schemas/xero/invoices.md
@@ -0,0 +1,242 @@
+---
+tap: "xero"
+version: "1"
+
+name: "invoices"
+doc-link: &api-doc https://developer.xero.com/documentation/api/invoices
+singer-schema: https://github.com/singer-io/tap-xero/blob/master/tap_xero/schemas/invoices.json
+description: |
+ The `{{ table.name }}` table contains info about sales invoices, which are requests for payment for goods and services.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: getInvoices
+ doc-link: *api-doc
+
+attributes:
+ - name: "InvoiceID"
+ type: "string"
+ primary-key: true
+ description: "The invoice ID."
+ foreign-key-id: "invoice-id"
+
+ - name: "UpdatedDateUTC"
+ type: "date-time"
+ replication-key: true
+ description: "The date the invoice was last updated, in UTC."
+
+ - name: "Type"
+ type: "string"
+ description: |
+ The type of the invoice. Possible values are:
+
+ - `ACCPAY` - A bill, or an Accounts Payable or supplier invoice
+ - `ACCREC` - A sales invoice, or an Accounts Receivable or customer invoice
+
+ - name: "Contact"
+ type: "array"
+ description: |
+ Details about the contact(s) associated with the invoice.
+
+ - name: "Date"
+ type: "date-time"
+ description: "The date the invoice was issued."
+
+ - name: "DueDate"
+ type: "date-time"
+ description: "The date the invoice is due."
+
+ - name: "Status"
+ type: "string"
+ description: |
+ The status of the invoice. Possible values are:
+
+ - `DRAFT`
+ - `SUBMITTED`
+ - `AUTHORISED`
+ - `DELETED`
+ - `VOIDED`
+ - `PAID`
+
+ - name: "LineAmountTypes"
+ type: "string"
+ description: |
+ The type of amounts that the line items in the invoice contain. Possible values are:
+
+ - `Exclusive` - Line items are exclusive of tax
+ - `Inclusive` - Line items are inclusive tax
+ - `NoTax` - Line items have no tax
+ doc-link: https://developer.xero.com/documentation/api/types#LineAmountTypes
+
+ - name: "LineItems"
+ type: "array"
+ description: "Details about the line items contained in the invoice."
+ subattributes:
+ - name: "LineItemID"
+ type: "string"
+ description: "The ID of the line item."
+
+ - name: "Description"
+ type: "string"
+ description: "The description of the line item."
+
+ - name: "Quantity"
+ type: "number"
+ description: "The quantity of the line item."
+
+ - name: "UnitAmount"
+ type: "number"
+ description: "The amount of the line item."
+
+ - name: "AccountCode"
+ type: "string"
+ description: "The account code associated with the line item."
+
+ - name: "ItemCode"
+ type: "string"
+ description: "The code associated with the line item."
+
+ - name: "TaxType"
+ type: "string"
+ description: "The tax type associated with the line item."
+
+ - name: "LineAmount"
+ type: "number"
+ description: "The total of the line item, calculated as `UnitAmount x Quantity`."
+
+ - name: "TaxAmount"
+ type: "number"
+ description: "The total tax of the line item."
+
+ - name: "DiscountRate"
+ type: "number"
+ description: "The discount rate of the line item, if applicable."
+
+ - name: "Tracking"
+ type: "array"
+ description: |
+ Details about the tracking categories applied to the line item, if applicable.
+
+ - name: "SubTotal"
+ type: "number"
+ description: "The total of the invoice, excluding taxes."
+
+ - name: "TotalTax"
+ type: "number"
+ description: "The total tax on the invoice."
+
+ - name: "Total"
+ type: "number"
+ description: "The total of the invoice, calculated as `SubTotal + TotalTax`."
+
+ - name: "TotalDiscount"
+ type: "number"
+ description: "The total of discounts applied to invoice line items."
+
+ - name: "CurrencyCode"
+ type: "string"
+ description: "The currency that the invoice has been raised in."
+ foreign-key-id: "currency-code"
+
+ - name: "CurrencyRate"
+ type: "number"
+ description: "The currency rate, if the invoice is a multicurrency invoice."
+
+ - name: "InvoiceNumber"
+ type: "string"
+ description: |
+ An identifier for the invoice. The value this field contains varies depending on the invoice `Type`:
+
+ - `ACCPAY` - A non-unique alpha-numeric code identifying the invoice. In the {{ integration.display_name }} UI, this displays as **Reference**.
+ - `ACCREC` - A unique alpha-numeric code identifying the invoice.
+
+ - name: "Reference"
+ type: "string"
+ description: "**Applicable only to `Type: ACCREC` invoices**. An additional reference number."
+
+ - name: "BrandingThemeID"
+ type: "string"
+ description: "The ID of the branding theme applied to the invoice."
+ foreign-key-id: "branding-theme-id"
+
+ - name: "Url"
+ type: "string"
+ description: "The URL link to a source document."
+
+ - name: "SentToContact"
+ type: "boolean"
+ description: "IF `true`, the invoice will display in the {{ integration.display_name }} app as 'Sent'."
+
+ - name: "ExpectedPaymentDate"
+ type: "date-time"
+ description: "For sales invoices (`Type: ACCREC`), the expected payment date."
+
+ - name: "ExpectedPaymentDateString"
+ type: "date-time"
+ description: "For sales invoices, the expected payment date."
+
+ - name: "PlannedPaymentDate"
+ type: "date-time"
+ description: "For bills (`Type: ACCPAY`), the planned payment date."
+
+ - name: "PlannedPaymentDateString"
+ type: "date-time"
+ description: "For bills, the planned payment date."
+
+ - name: "HasAttachments"
+ type: "boolean"
+ description: "If `true`, the invoice has an attachment."
+
+ - name: "Payments"
+ type: "array"
+ description: |
+ Details about the payments associated with the invoice.
+
+ - name: "CreditNotes"
+ type: "array"
+ description: |
+ Details about the credit notes associated with the invoice.
+
+ - name: "Prepayments"
+ type: "array"
+ description: |
+ Details about the prepayments associated with the invoice.
+
+ - name: "Overpayments"
+ type: "array"
+ description: |
+ Details about the overpayments associated with the invoice.
+
+ - name: "AmountDue"
+ type: "number"
+ description: "The amount remaining to be paid on the invoice."
+
+ - name: "AmountPaid"
+ type: "number"
+ description: "The sum of payments received for the invoice."
+
+ - name: "FullyPaidOnDate"
+ type: "date-time"
+ description: "The date the invoice was fully paid."
+
+ - name: "AmountCredited"
+ type: "number"
+ description: "The sum of all credit notes, overpayments, and prepayments applied to the invoice."
+
+ - name: "DueDateString"
+ type: "date-time"
+ description: "The date the invoice is due."
+
+ # - name: "IsDiscounted"
+ # type: "boolean"
+ # description: ""
+
+ # - name: "HasErrors"
+ # type: "boolean"
+ # description: ""
+
+ - name: "DateString"
+ type: "date-time"
+ description: "The date the invoice was issued."
+---
\ No newline at end of file
diff --git a/_integration-schemas/xero/items.md b/archive/_integration-schemas/xero/items.md
similarity index 100%
rename from _integration-schemas/xero/items.md
rename to archive/_integration-schemas/xero/items.md
diff --git a/_integration-schemas/xero/journals.md b/archive/_integration-schemas/xero/journals.md
similarity index 93%
rename from _integration-schemas/xero/journals.md
rename to archive/_integration-schemas/xero/journals.md
index 7b9c8553e..a41f71855 100644
--- a/_integration-schemas/xero/journals.md
+++ b/archive/_integration-schemas/xero/journals.md
@@ -102,7 +102,4 @@ attributes:
type: "array"
description: |
Details about the tracking categories associated with the journal line.
- subattributes:
- - description: |
- This will contain the same attributes as the `tracking_categories` table. Refer to the [`tracking_categories`](#tracking_categories) table schema for details.
---
\ No newline at end of file
diff --git a/_integration-schemas/xero/linked_transactions.md b/archive/_integration-schemas/xero/linked_transactions.md
similarity index 100%
rename from _integration-schemas/xero/linked_transactions.md
rename to archive/_integration-schemas/xero/linked_transactions.md
diff --git a/_integration-schemas/xero/manual_journals.md b/archive/_integration-schemas/xero/manual_journals.md
similarity index 93%
rename from _integration-schemas/xero/manual_journals.md
rename to archive/_integration-schemas/xero/manual_journals.md
index ee6619471..0a09f20ba 100644
--- a/_integration-schemas/xero/manual_journals.md
+++ b/archive/_integration-schemas/xero/manual_journals.md
@@ -87,9 +87,6 @@ attributes:
type: "array"
description: |
Details about the tracking details associated with the journal line.
- subattributes:
- - description: |
- This will contain the same attributes as the `tracking_categories` table. Refer to the [`tracking_categories`](#tracking_categories) table schema for details.
- name: "Url"
type: "string"
diff --git a/_integration-schemas/xero/organisations.md b/archive/_integration-schemas/xero/organisations.md
similarity index 100%
rename from _integration-schemas/xero/organisations.md
rename to archive/_integration-schemas/xero/organisations.md
diff --git a/_integration-schemas/xero/overpayments.md b/archive/_integration-schemas/xero/overpayments.md
similarity index 89%
rename from _integration-schemas/xero/overpayments.md
rename to archive/_integration-schemas/xero/overpayments.md
index eb5f1c9d7..586968e25 100644
--- a/_integration-schemas/xero/overpayments.md
+++ b/archive/_integration-schemas/xero/overpayments.md
@@ -38,9 +38,6 @@ attributes:
type: "array"
description: |
Details about the contact(s) associated with the overpayment.
- subattributes:
- - description: |
- This will contain the same attributes as the `contacts` table. Refer to the [`contacts`](#contacts) table schema for details.
- name: "Date"
type: "date-time"
@@ -116,9 +113,6 @@ attributes:
type: "array"
description: |
Details about the tracking categories applied to the line item, if applicable.
- subattributes:
- - description: |
- This will contain the same attributes as the `tracking_categories` table. Refer to the [`tracking_categories`](#tracking_categories) table schema for details.
- name: "SubTotal"
type: "number"
@@ -173,9 +167,6 @@ attributes:
type: "array"
description: |
Details about the payments associated with the overpayment.
- subattributes:
- - description: |
- This will contain the same attributes as the `payments` table. Refer to the [`payments`](#payments) table schema for details.
- name: "Reference"
type: "string"
diff --git a/_integration-schemas/xero/payments.md b/archive/_integration-schemas/xero/payments.md
similarity index 100%
rename from _integration-schemas/xero/payments.md
rename to archive/_integration-schemas/xero/payments.md
diff --git a/_integration-schemas/xero/prepayments.md b/archive/_integration-schemas/xero/prepayments.md
similarity index 92%
rename from _integration-schemas/xero/prepayments.md
rename to archive/_integration-schemas/xero/prepayments.md
index f368a34fd..b6c57a37b 100644
--- a/_integration-schemas/xero/prepayments.md
+++ b/archive/_integration-schemas/xero/prepayments.md
@@ -38,9 +38,6 @@ attributes:
type: "array"
description: |
Details about the contact(s) associated with the prepayment.
- subattributes:
- - description: |
- This will contain the same attributes as the `contacts` table. Refer to the [`contacts`](#contacts) table schema for details.
- name: "Date"
type: "date-time"
@@ -112,9 +109,6 @@ attributes:
type: "array"
description: |
Details about the tracking categories applied to the line item, if applicable.
- subattributes:
- - description: |
- This will contain the same attributes as the `tracking_categories` table. Refer to the [`tracking_categories`](#tracking_categories) table schema for details.
- name: "SubTotal"
type: "number"
diff --git a/_integration-schemas/xero/purchase_orders.md b/archive/_integration-schemas/xero/purchase_orders.md
similarity index 96%
rename from _integration-schemas/xero/purchase_orders.md
rename to archive/_integration-schemas/xero/purchase_orders.md
index a8d389b49..fd4a1b7a1 100644
--- a/_integration-schemas/xero/purchase_orders.md
+++ b/archive/_integration-schemas/xero/purchase_orders.md
@@ -99,9 +99,6 @@ attributes:
type: "array"
description: |
Details about the tracking categories applied to the line item, if applicable.
- subattributes:
- - description: |
- This will contain the same attributes as the `tracking_categories` table. Refer to the [`tracking_categories`](#tracking_categories) table schema for details.
- name: "BrandingThemeID"
type: "string"
diff --git a/_integration-schemas/xero/quotes.md b/archive/_integration-schemas/xero/quotes.md
similarity index 84%
rename from _integration-schemas/xero/quotes.md
rename to archive/_integration-schemas/xero/quotes.md
index d988967b1..0baa05957 100644
--- a/_integration-schemas/xero/quotes.md
+++ b/archive/_integration-schemas/xero/quotes.md
@@ -30,9 +30,6 @@ attributes:
- name: "Contact"
type: "array"
description: ""
- subattributes:
- - description: |
- This will contain the same attributes as the `contacts` table. Refer to the [`contacts`](#contacts) table schema for details.
- name: "Date"
type: "date-time"
@@ -98,9 +95,6 @@ attributes:
type: "array"
description: |
Details about the tracking categories applied to the line item, if applicable.
- subattributes:
- - description: |
- This will contain the same attributes as the `tracking_categories` table. Refer to the [`tracking_categories`](#tracking_categories) table schema for details.
- name: "SubTotal"
type: "number"
@@ -154,7 +148,4 @@ attributes:
- name: "TrackingCategory"
type: "array"
description: ""
- subattributes:
- - description: |
- This will contain the same attributes as the `tracking_categories` table. Refer to the [`tracking_categories`](#tracking_categories) table schema for details.
---
\ No newline at end of file
diff --git a/_integration-schemas/xero/receipts.md b/archive/_integration-schemas/xero/receipts.md
similarity index 88%
rename from _integration-schemas/xero/receipts.md
rename to archive/_integration-schemas/xero/receipts.md
index 06f48194b..0bcf9ec84 100644
--- a/_integration-schemas/xero/receipts.md
+++ b/archive/_integration-schemas/xero/receipts.md
@@ -34,9 +34,6 @@ attributes:
type: "array"
description: |
Details about the contact(s) associated with the receipt.
- subattributes:
- - description: |
- This will contain the same attributes as the `contacts` table. Refer to the [`contacts`](#contacts) table schema for details.
- name: "LineItems"
type: "array"
@@ -86,17 +83,11 @@ attributes:
type: "array"
description: |
Details about the tracking categories applied to the line item, if applicable.
- subattributes:
- - description: |
- This will contain the same attributes as the `tracking_categories` table. Refer to the [`tracking_categories`](#tracking_categories) table schema for details.
- name: "User"
type: "array"
description: |
Details about the user(s) associated with the receipt.
- subattributes:
- - description: |
- This will contain the same attributes as the `users` table. Refer to the [`users`](#users) table schema for details.
- name: "Reference"
type: "string"
diff --git a/_integration-schemas/xero/repeating_invoices.md b/archive/_integration-schemas/xero/repeating_invoices.md
similarity index 96%
rename from _integration-schemas/xero/repeating_invoices.md
rename to archive/_integration-schemas/xero/repeating_invoices.md
index eb324520c..e02babd06 100644
--- a/_integration-schemas/xero/repeating_invoices.md
+++ b/archive/_integration-schemas/xero/repeating_invoices.md
@@ -122,9 +122,6 @@ attributes:
type: "array"
description: |
Details about the tracking categories applied to the line item, if applicable.
- subattributes:
- - description: |
- This will contain the same attributes as the `tracking_categories` table. Refer to the [`tracking_categories`](#tracking_categories) table schema for details.
- name: "LineAmountTypes"
type: "string"
diff --git a/_integration-schemas/xero/shared/addresses.md b/archive/_integration-schemas/xero/shared/addresses.md
similarity index 100%
rename from _integration-schemas/xero/shared/addresses.md
rename to archive/_integration-schemas/xero/shared/addresses.md
diff --git a/_integration-schemas/xero/shared/allocations.md b/archive/_integration-schemas/xero/shared/allocations.md
similarity index 100%
rename from _integration-schemas/xero/shared/allocations.md
rename to archive/_integration-schemas/xero/shared/allocations.md
diff --git a/_integration-schemas/xero/shared/attachments.md b/archive/_integration-schemas/xero/shared/attachments.md
similarity index 79%
rename from _integration-schemas/xero/shared/attachments.md
rename to archive/_integration-schemas/xero/shared/attachments.md
index 804469d46..bdcb482eb 100644
--- a/_integration-schemas/xero/shared/attachments.md
+++ b/archive/_integration-schemas/xero/shared/attachments.md
@@ -3,11 +3,10 @@ tap-reference: "xero"
version: "1"
name: "attachments"
-singer-schema:
+
attributes:
- name: "items"
type: "object"
description: ""
- subattributes:
---
\ No newline at end of file
diff --git a/_integration-schemas/xero/shared/line_items.md b/archive/_integration-schemas/xero/shared/line_items.md
similarity index 100%
rename from _integration-schemas/xero/shared/line_items.md
rename to archive/_integration-schemas/xero/shared/line_items.md
diff --git a/_integration-schemas/xero/shared/nested_invoice.md b/archive/_integration-schemas/xero/shared/nested_invoice.md
similarity index 100%
rename from _integration-schemas/xero/shared/nested_invoice.md
rename to archive/_integration-schemas/xero/shared/nested_invoice.md
diff --git a/_integration-schemas/xero/shared/payment_terms.md b/archive/_integration-schemas/xero/shared/payment_terms.md
similarity index 100%
rename from _integration-schemas/xero/shared/payment_terms.md
rename to archive/_integration-schemas/xero/shared/payment_terms.md
diff --git a/_integration-schemas/xero/shared/phones.md b/archive/_integration-schemas/xero/shared/phones.md
similarity index 100%
rename from _integration-schemas/xero/shared/phones.md
rename to archive/_integration-schemas/xero/shared/phones.md
diff --git a/_integration-schemas/xero/shared/tracking_categories.md b/archive/_integration-schemas/xero/shared/tracking_categories.md
similarity index 100%
rename from _integration-schemas/xero/shared/tracking_categories.md
rename to archive/_integration-schemas/xero/shared/tracking_categories.md
diff --git a/_integration-schemas/xero/shared/validation_errors.md b/archive/_integration-schemas/xero/shared/validation_errors.md
similarity index 100%
rename from _integration-schemas/xero/shared/validation_errors.md
rename to archive/_integration-schemas/xero/shared/validation_errors.md
diff --git a/_integration-schemas/xero/tax_rates.md b/archive/_integration-schemas/xero/tax_rates.md
similarity index 100%
rename from _integration-schemas/xero/tax_rates.md
rename to archive/_integration-schemas/xero/tax_rates.md
diff --git a/_integration-schemas/xero/tracking_categories.md b/archive/_integration-schemas/xero/tracking_categories.md
similarity index 100%
rename from _integration-schemas/xero/tracking_categories.md
rename to archive/_integration-schemas/xero/tracking_categories.md
diff --git a/_integration-schemas/xero/users.md b/archive/_integration-schemas/xero/users.md
similarity index 100%
rename from _integration-schemas/xero/users.md
rename to archive/_integration-schemas/xero/users.md
diff --git a/_integration-schemas/yotpo/v1/emails.md b/archive/_integration-schemas/yotpo/v1/emails.md
similarity index 100%
rename from _integration-schemas/yotpo/v1/emails.md
rename to archive/_integration-schemas/yotpo/v1/emails.md
diff --git a/_integration-schemas/yotpo/v1/foreign-keys.md b/archive/_integration-schemas/yotpo/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/yotpo/v1/foreign-keys.md
rename to archive/_integration-schemas/yotpo/v1/foreign-keys.md
diff --git a/_integration-schemas/yotpo/v1/product_reviews.md b/archive/_integration-schemas/yotpo/v1/product_reviews.md
similarity index 100%
rename from _integration-schemas/yotpo/v1/product_reviews.md
rename to archive/_integration-schemas/yotpo/v1/product_reviews.md
diff --git a/_integration-schemas/yotpo/v1/products.md b/archive/_integration-schemas/yotpo/v1/products.md
similarity index 100%
rename from _integration-schemas/yotpo/v1/products.md
rename to archive/_integration-schemas/yotpo/v1/products.md
diff --git a/_integration-schemas/yotpo/v1/reviews.md b/archive/_integration-schemas/yotpo/v1/reviews.md
similarity index 100%
rename from _integration-schemas/yotpo/v1/reviews.md
rename to archive/_integration-schemas/yotpo/v1/reviews.md
diff --git a/_integration-schemas/yotpo/v1/unsubscribers.md b/archive/_integration-schemas/yotpo/v1/unsubscribers.md
similarity index 100%
rename from _integration-schemas/yotpo/v1/unsubscribers.md
rename to archive/_integration-schemas/yotpo/v1/unsubscribers.md
diff --git a/_integration-schemas/yotpo/v2/collections.md b/archive/_integration-schemas/yotpo/v2/collections.md
similarity index 100%
rename from _integration-schemas/yotpo/v2/collections.md
rename to archive/_integration-schemas/yotpo/v2/collections.md
diff --git a/_integration-schemas/yotpo/v2/emails.md b/archive/_integration-schemas/yotpo/v2/emails.md
similarity index 100%
rename from _integration-schemas/yotpo/v2/emails.md
rename to archive/_integration-schemas/yotpo/v2/emails.md
diff --git a/_integration-schemas/yotpo/v2/foreign-keys.md b/archive/_integration-schemas/yotpo/v2/foreign-keys.md
similarity index 100%
rename from _integration-schemas/yotpo/v2/foreign-keys.md
rename to archive/_integration-schemas/yotpo/v2/foreign-keys.md
diff --git a/_integration-schemas/yotpo/v2/order_fulfillments.md b/archive/_integration-schemas/yotpo/v2/order_fulfillments.md
similarity index 100%
rename from _integration-schemas/yotpo/v2/order_fulfillments.md
rename to archive/_integration-schemas/yotpo/v2/order_fulfillments.md
diff --git a/_integration-schemas/yotpo/v2/orders.md b/archive/_integration-schemas/yotpo/v2/orders.md
similarity index 100%
rename from _integration-schemas/yotpo/v2/orders.md
rename to archive/_integration-schemas/yotpo/v2/orders.md
diff --git a/_integration-schemas/yotpo/v2/product_reviews.md b/archive/_integration-schemas/yotpo/v2/product_reviews.md
similarity index 100%
rename from _integration-schemas/yotpo/v2/product_reviews.md
rename to archive/_integration-schemas/yotpo/v2/product_reviews.md
diff --git a/_integration-schemas/yotpo/v2/product_variants.md b/archive/_integration-schemas/yotpo/v2/product_variants.md
similarity index 100%
rename from _integration-schemas/yotpo/v2/product_variants.md
rename to archive/_integration-schemas/yotpo/v2/product_variants.md
diff --git a/_integration-schemas/yotpo/v2/products.md b/archive/_integration-schemas/yotpo/v2/products.md
similarity index 100%
rename from _integration-schemas/yotpo/v2/products.md
rename to archive/_integration-schemas/yotpo/v2/products.md
diff --git a/_integration-schemas/yotpo/v2/reviews.md b/archive/_integration-schemas/yotpo/v2/reviews.md
similarity index 100%
rename from _integration-schemas/yotpo/v2/reviews.md
rename to archive/_integration-schemas/yotpo/v2/reviews.md
diff --git a/_integration-schemas/yotpo/v2/unsubscribers.md b/archive/_integration-schemas/yotpo/v2/unsubscribers.md
similarity index 100%
rename from _integration-schemas/yotpo/v2/unsubscribers.md
rename to archive/_integration-schemas/yotpo/v2/unsubscribers.md
diff --git a/_integration-schemas/zendesk-chat/v1/account.md b/archive/_integration-schemas/zendesk-chat/v1/account.md
similarity index 100%
rename from _integration-schemas/zendesk-chat/v1/account.md
rename to archive/_integration-schemas/zendesk-chat/v1/account.md
diff --git a/_integration-schemas/zendesk-chat/v1/agents.md b/archive/_integration-schemas/zendesk-chat/v1/agents.md
similarity index 100%
rename from _integration-schemas/zendesk-chat/v1/agents.md
rename to archive/_integration-schemas/zendesk-chat/v1/agents.md
diff --git a/_integration-schemas/zendesk-chat/v1/bans.md b/archive/_integration-schemas/zendesk-chat/v1/bans.md
similarity index 100%
rename from _integration-schemas/zendesk-chat/v1/bans.md
rename to archive/_integration-schemas/zendesk-chat/v1/bans.md
diff --git a/_integration-schemas/zendesk-chat/v1/chats.md b/archive/_integration-schemas/zendesk-chat/v1/chats.md
similarity index 100%
rename from _integration-schemas/zendesk-chat/v1/chats.md
rename to archive/_integration-schemas/zendesk-chat/v1/chats.md
diff --git a/_integration-schemas/zendesk-chat/v1/departments.md b/archive/_integration-schemas/zendesk-chat/v1/departments.md
similarity index 100%
rename from _integration-schemas/zendesk-chat/v1/departments.md
rename to archive/_integration-schemas/zendesk-chat/v1/departments.md
diff --git a/_integration-schemas/zendesk-chat/v1/foreign-keys.md b/archive/_integration-schemas/zendesk-chat/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/zendesk-chat/v1/foreign-keys.md
rename to archive/_integration-schemas/zendesk-chat/v1/foreign-keys.md
diff --git a/_integration-schemas/zendesk-chat/v1/goals.md b/archive/_integration-schemas/zendesk-chat/v1/goals.md
similarity index 100%
rename from _integration-schemas/zendesk-chat/v1/goals.md
rename to archive/_integration-schemas/zendesk-chat/v1/goals.md
diff --git a/_integration-schemas/zendesk-chat/v1/shortcuts.md b/archive/_integration-schemas/zendesk-chat/v1/shortcuts.md
similarity index 100%
rename from _integration-schemas/zendesk-chat/v1/shortcuts.md
rename to archive/_integration-schemas/zendesk-chat/v1/shortcuts.md
diff --git a/_integration-schemas/zendesk-chat/v1/triggers.md b/archive/_integration-schemas/zendesk-chat/v1/triggers.md
similarity index 100%
rename from _integration-schemas/zendesk-chat/v1/triggers.md
rename to archive/_integration-schemas/zendesk-chat/v1/triggers.md
diff --git a/_integration-schemas/zendesk/v1/foreign-keys.md b/archive/_integration-schemas/zendesk/v1/foreign-keys.md
similarity index 100%
rename from _integration-schemas/zendesk/v1/foreign-keys.md
rename to archive/_integration-schemas/zendesk/v1/foreign-keys.md
diff --git a/_integration-schemas/zendesk/v1/group_memberships.md b/archive/_integration-schemas/zendesk/v1/group_memberships.md
similarity index 100%
rename from _integration-schemas/zendesk/v1/group_memberships.md
rename to archive/_integration-schemas/zendesk/v1/group_memberships.md
diff --git a/_integration-schemas/zendesk/v1/groups.md b/archive/_integration-schemas/zendesk/v1/groups.md
similarity index 100%
rename from _integration-schemas/zendesk/v1/groups.md
rename to archive/_integration-schemas/zendesk/v1/groups.md
diff --git a/_integration-schemas/zendesk/v1/macros.md b/archive/_integration-schemas/zendesk/v1/macros.md
similarity index 100%
rename from _integration-schemas/zendesk/v1/macros.md
rename to archive/_integration-schemas/zendesk/v1/macros.md
diff --git a/_integration-schemas/zendesk/v1/organizations.md b/archive/_integration-schemas/zendesk/v1/organizations.md
similarity index 100%
rename from _integration-schemas/zendesk/v1/organizations.md
rename to archive/_integration-schemas/zendesk/v1/organizations.md
diff --git a/_integration-schemas/zendesk/v1/satisfaction_ratings.md b/archive/_integration-schemas/zendesk/v1/satisfaction_ratings.md
similarity index 100%
rename from _integration-schemas/zendesk/v1/satisfaction_ratings.md
rename to archive/_integration-schemas/zendesk/v1/satisfaction_ratings.md
diff --git a/_integration-schemas/zendesk/v1/sla_policies.md b/archive/_integration-schemas/zendesk/v1/sla_policies.md
similarity index 100%
rename from _integration-schemas/zendesk/v1/sla_policies.md
rename to archive/_integration-schemas/zendesk/v1/sla_policies.md
diff --git a/_integration-schemas/zendesk/v1/tags.md b/archive/_integration-schemas/zendesk/v1/tags.md
similarity index 100%
rename from _integration-schemas/zendesk/v1/tags.md
rename to archive/_integration-schemas/zendesk/v1/tags.md
diff --git a/archive/_integration-schemas/zendesk/v1/ticket_audits.md b/archive/_integration-schemas/zendesk/v1/ticket_audits.md
new file mode 100644
index 000000000..79d7e1758
--- /dev/null
+++ b/archive/_integration-schemas/zendesk/v1/ticket_audits.md
@@ -0,0 +1,488 @@
+---
+tap: "zendesk"
+version: "1"
+
+name: "ticket_audits"
+doc-link: https://developer.zendesk.com/rest_api/docs/support/ticket_audits
+singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/ticket_audits.json
+description: |
+ The `{{ table.name }}` table contains info about the activity associated with a ticket. An audit is a history of all updates to a given ticket. When a ticket is updated in {{ integration.display_name }}, an audit record is created. Each audit represents a single update to a ticket.
+
+ A single audit record may include multiple event types. For example: A ticket comment, satisfaction rating, and a change event. For a full list of {{ integration.display_name }} audit event types, [refer to {{ integration.display_name }}'s documentation](https://developer.zendesk.com/rest_api/docs/support/ticket_audits#audit-events){:target="new"}.
+
+ #### Replication {#ticket-audit-replication}
+
+ This table uses Append-Only Incremental Replication. This means that new audit records, or updates made to existing audits, are appended as new rows to the end of the table.
+
+replication-method: "Append-Only Incremental"
+
+api-method:
+ name: List all ticket audits
+ doc-link: https://developer.zendesk.com/rest_api/support/core/ticket_audits#list-all-ticket-audits
+
+attributes:
+ - name: "id"
+ type: "integer"
+ primary-key: true
+ description: "The ticket audit ID."
+ foreign-key-id: "ticket-audit-id"
+
+ - name: "created_at"
+ type: "date-time"
+ replication-key: true
+ description: "The time the audit was created."
+
+ - name: "author_id"
+ type: "integer"
+ description: "The ID of the user who created the audit."
+ foreign-key-id: "user-id"
+
+ - name: "ticket_id"
+ type: "integer"
+ description: "The ID of the ticket associated with the audit."
+ foreign-key-id: "ticket-id"
+
+# START METADATA OBJECT
+ - name: "metadata"
+ type: "object"
+ description: "Metadata for the audit, custom, and system data."
+ subattributes:
+
+ - name: "flags"
+ type: "array"
+ description: "For `Comment` and `VoiceComment` events, the comment flags applied to the comment."
+ subattributes:
+ - name: "value"
+ type: "integer"
+ description: |
+ The value of the flag applied to the comment. [Refer to {{ integration.display_name }}'s documentation for more info](https://developer.zendesk.com/rest_api/docs/support/ticket_comments#comment-flags){:target="new"}.
+
+ Possible values are:
+
+ - `0` - {{ integration.display_name }} is unsure the comment should be trusted.
+ - `2` - The comment author was not part of the conversation.
+ - `3` - The comment author wasn't signed in when the comment was submitted.
+ - `4` - The comment was automatically generated.
+ - `5` - The attached file was rejected because it's too big.
+ - `11` - The comment was submitted by the user on behalf of the author.
+
+ - name: "flags_options"
+ type: "object"
+ description: "For `Comment` and `VoiceComment` events, additional information about the comment flags."
+
+ # START METADATA > SYSTEM OBJECT
+ - name: "system"
+ type: "object"
+ description: "Metadata about the system of the user who created the audit."
+ subattributes:
+ - name: "location"
+ type: "string"
+ description: "The user's location. For example: `Philadelphia, PA, United States`"
+
+ - name: "longitude"
+ type: "number"
+ description: "The user's longitude."
+
+ # Commenting out these fields - they're not documented by Zendesk.
+
+ # - name: "message_id"
+ # type: "string"
+ # description:
+
+ # - name: "raw_email_identifier"
+ # type: "string"
+ # description:
+
+ # - name: "json_email_identifier"
+ # type: "string"
+ # description:
+
+ - name: "ip_address"
+ type: "string"
+ description: "The user's IP address."
+
+ - name: "client"
+ type: "string"
+ description: "The user's client, or web browser."
+
+ - name: "latitude"
+ type: "number"
+ description: "The user's latitude."
+ # END METADATA > SYSTEM OBJECT
+
+# END METADATA OBJECT
+
+# START EVENTS ARRAY
+ - name: "events"
+ type: "array"
+ description: "The events that happened in the audit."
+ subattributes:
+ - name: "id"
+ type: "integer"
+ description: "The audit event ID."
+
+ - name: "audit_id"
+ type: "integer"
+ description: "The ticket audit ID."
+ foreign-key-id: "ticket-audit-id"
+
+ - name: "type"
+ type: "string"
+ description: |
+ The event type. Refer to [{{ integration.display_name }}'s documentation](https://developer.zendesk.com/rest_api/docs/support/ticket_audits#audit-events){:target="new"} for a full list of event types.
+ doc-link: "https://developer.zendesk.com/rest_api/docs/support/ticket_audits#audit-events"
+
+ # Same here.
+ # - name: "macro_id"
+ # type: "string"
+ # description: ""
+ # foreign-key-id: "macro-id"
+
+ # - name: "macro_title"
+ # type: "string"
+ # description:
+
+ # - name: "macro_deleted"
+ # type: "boolean"
+ # description:
+
+ - name: "body"
+ type: "string"
+ description: |
+ - For `VoiceComment` events - The comment added to the ticket.
+ - For `Notification` events - The message sent to the recipients.
+ - For `Cc` events - The message sent to the recipients.
+ - For `SatisfactionRating` events - The user's comment posted during the rating.
+ - For `OrganizationActivity` events - The message sent to the recipients.
+ - For `Tweet` events - The body of the tweet.
+ - For `FacebookEvent` events - The message posted to Facebook.
+ - For `FacebookComment` events - The comment made by the author.
+ - For `External` events - The trigger message for the target event.
+ - For `LogMeInTranscript` events - The audit of the transcript.
+
+ - name: "plain_body"
+ type: "string"
+ description: |
+ - For `VoiceComment` events - The comment in plaintext format.
+ - For `FacebookComment` events - The comment in plaintext format.
+
+ - name: "value"
+ type: "string"
+ description: |
+ - For `Create` events - The value of the field that was set.
+ - For `Change` events - The value of the field that was changed.
+
+ - name: "author_id"
+ type: "integer"
+ description: |
+ - For `VoiceComment` events - The comment author, typically the agent assigned to the ticket.
+ - For `FacebookComment` events - The ID of the comment author.
+
+ - name: "html_body"
+ type: "string"
+ description: |
+ - For `VoiceComment` events - The comment in HTML format.
+ - For `FacebookComment` events - The comment in HTML format.
+
+ - name: "subject"
+ type: "string"
+ description: |
+ - For `Notification` events - The subject of the message sent to recipients.
+ - For `OrganizationActivity` events - The subject of the message sent to recipients.
+
+ - name: "field_name"
+ type: "string"
+ description: |
+ - For `Create` events - The name of the field that was set.
+ - For `Change` events - The name of the field that was changed.
+ - For `Push` events - The data being pushed out of Zendesk.
+
+ - name: "public"
+ type: "boolean"
+ description: |
+ - For `VoiceComment` events - If `true`, the ticket requester can see the comment. Otherwise, only agents can see it.
+ - For `CommentPrivacyChange` events - If `true`, the comment was public.
+ - For `FacebookComment` events - If `true`, the comment was public. Otherwise, only agents can see it.
+
+ - name: "previous_value"
+ type: "string"
+ description: |
+ Applicable to `Change` events. The previous value of the field that was changed.
+
+ **Note**: This field may occasionally be an `array`, which will create a subtable in your destination if nested structures are unsupported. This occurs when the `field_name` value is `tags`. [Refer to {{ integration.display_name }}'s documentation for more info](https://developer.zendesk.com/rest_api/docs/support/ticket_audits#change-event){:target="new"}.
+
+ # START RECIPIENTS
+ - name: "recipients"
+ type: "array"
+ description: |
+ For `Notification`, `Cc`, `OrganizationActivity`, and `Tweet` events, the IDs of the recipients.
+ subattributes:
+ - name: "value"
+ type: "integer"
+ description: "The ID of the recipient."
+ # END RECIPIENTS
+
+ # START ATTACHMENTS OBJECT
+ - name: "attachments"
+ type: "object"
+ description: |
+ Details about the attachments associated with the event, if any.
+ subattributes:
+ - name: "id"
+ type: "integer"
+ description: "The attachment ID."
+
+ - name: "size"
+ type: "integer"
+ description: "The size of the attachment in bytes."
+
+ - name: "url"
+ type: "string"
+ description: "The API URL associated with the attachment."
+
+ - name: "inline"
+ type: "boolean"
+ description: "If `true`, the attachment is excluded from the attachment list. Additionally, the attachment's URL can be referenced within the comment of a ticket."
+
+ - name: "height"
+ type: "integer"
+ description: "The height of the attachment, if applicable."
+
+ - name: "width"
+ type: "integer"
+ description: "The width of the attachment, if applicable."
+
+ - name: "content_url"
+ type: "string"
+ description: "The full URL where the attachment image file may be downloaded."
+
+ - name: "mapped_content_url"
+ type: "string"
+ description: "The URL where the attachment image file may be downloaded."
+
+ - name: "content_type"
+ type: "string"
+ description: "The content type of the image. For example: `image/png`"
+
+ - name: "file_name"
+ type: "string"
+ description: "The name of the image file."
+
+ # And here.
+ # - name: "html_body"
+ # type: "string"
+ # description:
+
+ # - name: "subject"
+ # type: "string"
+ # description:
+
+ - name: "file_name"
+ type: "string"
+ description: "The name of the image file."
+
+ # START THUMBNAILS OBJECT
+ - name: "thumbnails"
+ type: "object"
+ description: "Details about the thumbnails associated with image attachments."
+ subattributes:
+ - name: "id"
+ type: "integer"
+ description:
+
+ - name: "size"
+ type: "integer"
+ description:
+
+ - name: "url"
+ type: "string"
+ description:
+
+ - name: "inline"
+ type: "boolean"
+ description:
+
+ - name: "height"
+ type: "integer"
+ description:
+
+ - name: "width"
+ type: "integer"
+ description:
+
+ - name: "content_url"
+ type: "string"
+ description:
+
+ - name: "mapped_content_url"
+ type: "string"
+ description:
+
+ - name: "content_type"
+ type: "string"
+ description:
+
+ - name: "file_name"
+ type: "string"
+ description:
+ # END THUMBNAILS
+
+ # END ATTACHMENTS
+
+ # START VIA OBJECT
+ - name: "via"
+ type: "object"
+ description: "Details about how the event was created."
+ subattributes:
+ - name: "channel"
+ type: "string"
+ description: "The channel used to create the event. For example: `web`, `mobile`"
+
+ - name: "source"
+ type: "object"
+ description: "Additional details about how the event was created. Only available for some channels."
+ subattributes:
+
+ # START TO OBJECT
+ - name: "to"
+ type: "object"
+ description: "If the source was an email, Twitter message/mention, phone call, etc., details about the recipient."
+ subattributes:
+ - name: "address"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description:
+ # END TO
+
+ # START FROM OBJECT
+ - name: "from"
+ type: "object"
+ description: "Details about the source that created the event."
+ subattributes:
+ - name: "id"
+ type: "integer"
+ description:
+
+ - name: "ticket_id"
+ type: "integer"
+ description:
+ foreign-key-id: "ticket-id"
+
+ - name: "revision_id"
+ type: "string"
+ description:
+
+ - name: "title"
+ type: "string"
+ description:
+
+ - name: "address"
+ type: "string"
+ description:
+
+ - name: "subject"
+ type: "string"
+ description:
+
+ - name: "deleted"
+ type: "boolean"
+ description:
+
+ - name: "name"
+ type: "string"
+ description:
+
+ - name: "original_recipients"
+ type: "array"
+ description:
+ subattributes:
+ - name: "value"
+ type: "string"
+ description:
+ # END FROM
+ - name: "rel"
+ type: "string"
+ description: "The type of relation that created the event. For example: For an event submitted through a {{ integration.display_name }} widget, this field would have a value of `zendesk_widget`."
+
+ # END VIA
+
+ - name: "via"
+ type: "object"
+ description: "Details about how the audit record was created."
+ subattributes:
+ - name: "channel"
+ type: "string"
+ description: "The channel used to create the audit record. For example: `web`, `mobile`"
+
+ - name: "source"
+ type: "object"
+ description: "Additional details about how the audit record was created. Only available for some channels."
+ subattributes:
+
+ # START TO OBJECT
+ - name: "to"
+ type: "object"
+ description: "If the source was an email, Twitter message/mention, phone call, etc., details about the recipient."
+ subattributes:
+ - name: "address"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description:
+ # END TO
+
+ # START FROM OBJECT
+ - name: "from"
+ type: "object"
+ description: "Details about the source that created the audit record."
+ subattributes:
+ - name: "id"
+ type: "integer"
+ description:
+
+ - name: "ticket_id"
+ type: "integer"
+ description:
+ foreign-key: true
+
+ - name: "revision_id"
+ type: "string"
+ description:
+
+ - name: "title"
+ type: "string"
+ description:
+
+ - name: "address"
+ type: "string"
+ description:
+
+ - name: "subject"
+ type: "string"
+ description:
+
+ - name: "deleted"
+ type: "boolean"
+ description:
+
+ - name: "name"
+ type: "string"
+ description:
+
+ - name: "original_recipients"
+ type: "array"
+ description:
+ subattributes:
+ - name: "value"
+ type: "string"
+ description:
+ # END FROM
+ - name: "rel"
+ type: "string"
+ description: "The type of relation that created the audit record. For example: For an event submitted through a {{ integration.display_name }} widget, this field would have a value of `zendesk_widget`."
+---
\ No newline at end of file
diff --git a/_integration-schemas/zendesk/v1/ticket_comments.md b/archive/_integration-schemas/zendesk/v1/ticket_comments.md
similarity index 100%
rename from _integration-schemas/zendesk/v1/ticket_comments.md
rename to archive/_integration-schemas/zendesk/v1/ticket_comments.md
diff --git a/_integration-schemas/zendesk/v1/ticket_fields.md b/archive/_integration-schemas/zendesk/v1/ticket_fields.md
similarity index 100%
rename from _integration-schemas/zendesk/v1/ticket_fields.md
rename to archive/_integration-schemas/zendesk/v1/ticket_fields.md
diff --git a/_integration-schemas/zendesk/v1/ticket_forms.md b/archive/_integration-schemas/zendesk/v1/ticket_forms.md
similarity index 100%
rename from _integration-schemas/zendesk/v1/ticket_forms.md
rename to archive/_integration-schemas/zendesk/v1/ticket_forms.md
diff --git a/archive/_integration-schemas/zendesk/v1/ticket_metrics.md b/archive/_integration-schemas/zendesk/v1/ticket_metrics.md
new file mode 100644
index 000000000..f17c98865
--- /dev/null
+++ b/archive/_integration-schemas/zendesk/v1/ticket_metrics.md
@@ -0,0 +1,203 @@
+---
+tap: "zendesk"
+version: "1"
+
+name: "ticket_metrics"
+doc-link: https://developer.zendesk.com/rest_api/docs/support/ticket_metrics
+singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/ticket_metrics.json
+description: |
+ The `{{ table.name }}` table contains info about the metrics associated with {{ integration.display_name }} tickets. **This table will not include records for deleted tickets.**
+
+ **Note**: Retrieving ticket metric data requires {{ integration.display_name }} Admin permissions.
+
+ #### Deleted ticket metrics
+
+ As {{ integration.display_name }}'s API doesn't currently support returning metrics for deleted tickets, this table will not contain any metrics for deleted tickets.
+
+ If you believe you're missing records, check in your {{ integration.display_name }} account to see if the missing records are for deleted tickets.
+
+ For more info on how {{ integration.display_name }} handles deleting tickets, [refer to their documentation](https://support.zendesk.com/hc/en-us/articles/203690936){:target="new"}.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: List ticket metrics
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/ticket_metrics#list-ticket-metrics
+
+attributes:
+ - name: "id"
+ type: "integer"
+ primary-key: true
+ description: "The ticket metric ID."
+ # foreign-key-id: "ticket-metric"
+
+ - name: "updated_at"
+ type: "date-time"
+ replication-key: true
+ description: "The last time the ticket metric was updated."
+
+ # - name: "metric"
+ # type: "string"
+ # description: ""
+
+ # - name: "time"
+ # type: "string"
+ # description: ""
+
+ # - name: "instance_id"
+ # type: "integer"
+ # description: ""
+
+ - name: "ticket_id"
+ type: "integer"
+ description: "The ID of the associated ticket."
+ foreign-key-id: "ticket-id"
+
+ # - name: "status"
+ # type: "object"
+ # description: "The number of minutes inside and outside of business hours."
+ # subattributes:
+ # - name: "calendar"
+ # type: "integer"
+ # description:
+
+ # - name: "business"
+ # type: "integer"
+ # description: "The
+
+ # - name: "type"
+ # type: "string"
+ # description: ""
+
+ - name: "agent_wait_time_in_minutes"
+ type: "object"
+ description: "The number of minutes the agent spent waiting inside and outside of business hours."
+ subattributes:
+ - name: "calendar"
+ type: "integer"
+ description: "The number of minutes the agent spent waiting outside of business hours."
+
+ - name: "business"
+ type: "integer"
+ description: "The number of minutes the agent spent waiting inside of business hours."
+
+ - name: "assignee_stations"
+ type: "integer"
+ description: "The number of assignees the ticket had."
+
+ - name: "created_at"
+ type: "date-time"
+ description: "The time the ticket metric was created."
+
+ - name: "first_resolution_time_in_minutes"
+ type: "object"
+ description: "The number of minutes to the first resolution time inside and outside of business hours."
+ subattributes:
+ - name: "calendar"
+ type: "integer"
+ description: "The number of minutes to the first resolution time outside of business hours."
+
+ - name: "business"
+ type: "integer"
+ description: "The number of minutes to the first resolution time inside of business hours."
+
+ - name: "full_resolution_time_in_minutes"
+ type: "object"
+ description: "The number of minutes to the full resolution inside and outside of business hours."
+
+ - name: "group_stations"
+ type: "integer"
+ description: "The number of groups the ticket passed through."
+
+ - name: "latest_comment_added_at"
+ type: "date-time"
+ description: "The time the last comment was added to the ticket."
+
+ - name: "on_hold_time_in_minutes"
+ type: "object"
+ description: "The number of minutes the ticket was on hold inside and outside of business hours."
+ subattributes:
+ - name: "calendar"
+ type: "integer"
+ description: "The number of minutes the ticket was on hold outside of business hours."
+
+ - name: "business"
+ type: "integer"
+ description: "The number of minutes the ticket was on hold inside of business hours."
+
+ - name: "reopens"
+ type: "integer"
+ description: "The total number of times the ticket was reopened."
+
+ - name: "replies"
+ type: "integer"
+ description: "The total number of times the ticket was replied to."
+
+ - name: "reply_time_in_minutes"
+ type: "object"
+ description: "The number of minutes to the first reply inside and outside of business hours."
+
+ - name: "requester_updated_at"
+ type: "date-time"
+ description: "The time the requester last updated the ticket."
+
+ - name: "requester_wait_time_in_minutes"
+ type: "object"
+ description: "The number of minutes the requester spent waiting inside and outside of business hours."
+ subattributes:
+ - name: "calendar"
+ type: "integer"
+ description: "The number of minutes the requester spent waiting outside of business hours."
+
+ - name: "business"
+ type: "integer"
+ description: "The number of minutes the requester spent waiting inside of business hours."
+
+ - name: "reply_time_in_minutes"
+ type: "object"
+ description: "Number of minutes to the first reply inside and out of business hours."
+ subattributes:
+ - name: "calendar"
+ type: "integer"
+ description: "The number of minutes to the first reply outside of business hours."
+
+ - name: "business"
+ type: "integer"
+ description: "The number of minutes to the first reply inside of business hours."
+
+ - name: "full_resolution_time_in_minutes"
+ type: "object"
+ description: "Number of minutes to the full resolution inside and out of business hours."
+ subattributes:
+ - name: "calendar"
+ type: "integer"
+ description: "The number of minutes to the full resolution outside of business hours."
+
+ - name: "business"
+ type: "integer"
+ description: "The number of minutes to the full resolution inside of business hours."
+
+ - name: "status_updated_at"
+ type: "date-time"
+ description: "The time the ticket's status was last updated."
+
+ - name: "url"
+ type: "string"
+ description: "The API URL of the ticket metric."
+
+ - name: "initially_assigned_at"
+ type: "date-time"
+ description: "The time the ticket was initially assigned."
+
+ - name: "assigned_at"
+ type: "date-time"
+ description: "The time the ticket was last assigned."
+
+ - name: "solved_at"
+ type: "date-time"
+ description: "The time the ticket was solved."
+
+ - name: "assignee_updated_at"
+ type: "date-time"
+ description: "The time the assignee last updated the ticket."
+---
\ No newline at end of file
diff --git a/_integration-schemas/zendesk/v1/tickets.md b/archive/_integration-schemas/zendesk/v1/tickets.md
similarity index 100%
rename from _integration-schemas/zendesk/v1/tickets.md
rename to archive/_integration-schemas/zendesk/v1/tickets.md
diff --git a/_integration-schemas/zendesk/v1/users.md b/archive/_integration-schemas/zendesk/v1/users.md
similarity index 100%
rename from _integration-schemas/zendesk/v1/users.md
rename to archive/_integration-schemas/zendesk/v1/users.md
diff --git a/_integration-schemas/zendesk/v2/foreign-keys.md b/archive/_integration-schemas/zendesk/v2/foreign-keys.md
similarity index 100%
rename from _integration-schemas/zendesk/v2/foreign-keys.md
rename to archive/_integration-schemas/zendesk/v2/foreign-keys.md
diff --git a/_integration-schemas/zendesk/v2/group_memberships.md b/archive/_integration-schemas/zendesk/v2/group_memberships.md
similarity index 100%
rename from _integration-schemas/zendesk/v2/group_memberships.md
rename to archive/_integration-schemas/zendesk/v2/group_memberships.md
diff --git a/_integration-schemas/zendesk/v2/groups.md b/archive/_integration-schemas/zendesk/v2/groups.md
similarity index 100%
rename from _integration-schemas/zendesk/v2/groups.md
rename to archive/_integration-schemas/zendesk/v2/groups.md
diff --git a/_integration-schemas/zendesk/v2/macros.md b/archive/_integration-schemas/zendesk/v2/macros.md
similarity index 100%
rename from _integration-schemas/zendesk/v2/macros.md
rename to archive/_integration-schemas/zendesk/v2/macros.md
diff --git a/_integration-schemas/zendesk/v2/organizations.md b/archive/_integration-schemas/zendesk/v2/organizations.md
similarity index 100%
rename from _integration-schemas/zendesk/v2/organizations.md
rename to archive/_integration-schemas/zendesk/v2/organizations.md
diff --git a/_integration-schemas/zendesk/v2/satisfaction_ratings.md b/archive/_integration-schemas/zendesk/v2/satisfaction_ratings.md
similarity index 100%
rename from _integration-schemas/zendesk/v2/satisfaction_ratings.md
rename to archive/_integration-schemas/zendesk/v2/satisfaction_ratings.md
diff --git a/_integration-schemas/zendesk/v2/sla_policies.md b/archive/_integration-schemas/zendesk/v2/sla_policies.md
similarity index 100%
rename from _integration-schemas/zendesk/v2/sla_policies.md
rename to archive/_integration-schemas/zendesk/v2/sla_policies.md
diff --git a/_integration-schemas/zendesk/v2/tags.md b/archive/_integration-schemas/zendesk/v2/tags.md
similarity index 100%
rename from _integration-schemas/zendesk/v2/tags.md
rename to archive/_integration-schemas/zendesk/v2/tags.md
diff --git a/_integration-schemas/zendesk/v2/talk_phone_numbers.md b/archive/_integration-schemas/zendesk/v2/talk_phone_numbers.md
similarity index 99%
rename from _integration-schemas/zendesk/v2/talk_phone_numbers.md
rename to archive/_integration-schemas/zendesk/v2/talk_phone_numbers.md
index 660c41e95..1f9cbbc10 100644
--- a/_integration-schemas/zendesk/v2/talk_phone_numbers.md
+++ b/archive/_integration-schemas/zendesk/v2/talk_phone_numbers.md
@@ -42,12 +42,10 @@ attributes:
- name: "categorised_greetings"
type: "object"
description: "Greeting category ids and names."
- subattributes:
- name: "categorised_greetings_with_sub_settings"
type: "object"
description: "The id and any settings associated with each greeting category. If the category has no settings, it defaults to the category name."
- subattributes:
- name: "country_code"
type: "string"
diff --git a/archive/_integration-schemas/zendesk/v2/ticket_audits.md b/archive/_integration-schemas/zendesk/v2/ticket_audits.md
new file mode 100644
index 000000000..fd41ffb51
--- /dev/null
+++ b/archive/_integration-schemas/zendesk/v2/ticket_audits.md
@@ -0,0 +1,504 @@
+---
+tap: "zendesk"
+version: "2"
+
+name: "ticket_audits"
+doc-link: https://developer.zendesk.com/rest_api/docs/support/ticket_audits
+singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/ticket_audits.json
+description: |
+ The `{{ table.name }}` table contains info about the activity associated with a ticket. An audit is a history of all updates to a given ticket. When a ticket is updated in {{ integration.display_name }}, an audit record is created. Each audit represents a single update to a ticket.
+
+ A single audit record may include multiple event types. For example: A ticket comment, satisfaction rating, and a change event. For a full list of {{ integration.display_name }} audit event types, [refer to {{ integration.display_name }}'s documentation](https://developer.zendesk.com/rest_api/docs/support/ticket_audits#audit-events){:target="new"}.
+
+ #### Replication {#ticket-audit-replication}
+
+ This table uses Append-Only Incremental Replication. This means that new audit records, or updates made to existing audits, are appended as new rows to the end of the table.
+
+replication-method: "Append-Only Incremental"
+
+api-method:
+ name: List all ticket audits
+ doc-link: https://developer.zendesk.com/rest_api/support/core/ticket_audits#list-all-ticket-audits
+
+attributes:
+ - name: "id"
+ type: "integer"
+ primary-key: true
+ description: "The ticket audit ID."
+ foreign-key-id: "ticket-audit-id"
+
+ - name: "created_at"
+ type: "date-time"
+ replication-key: true
+ description: "The time the audit was created."
+
+ - name: "author_id"
+ type: "integer"
+ description: "The ID of the user who created the audit."
+ foreign-key-id: "user-id"
+
+ - name: "ticket_id"
+ type: "integer"
+ description: "The ID of the ticket associated with the audit."
+ foreign-key-id: "ticket-id"
+
+# START METADATA OBJECT
+ - name: "metadata"
+ type: "object"
+ description: "Metadata for the audit, custom, and system data."
+ subattributes:
+ # Commenting out these fields - they're not documented by Zendesk.
+ # - name: "custom"
+ # type:
+ # description: ""
+
+ # - name: "trusted"
+ # type: "boolean"
+ # description: ""
+
+ # - name: "notifications_suppressed_for"
+ # type: "array"
+ # description: "[TODO]"
+ # subattributes:
+ # - name: "value"
+ # type: "integer"
+ # description: "[TODO]"
+
+ - name: "flags"
+ type: "array"
+ description: "For `Comment` and `VoiceComment` events, the comment flags applied to the comment."
+ subattributes:
+ - name: "value"
+ type: "integer"
+ description: |
+ The value of the flag applied to the comment. [Refer to {{ integration.display_name }}'s documentation for more info](https://developer.zendesk.com/rest_api/docs/support/ticket_comments#comment-flags){:target="new"}.
+
+ Possible values are:
+
+ - `0` - {{ integration.display_name }} is unsure the comment should be trusted.
+ - `2` - The comment author was not part of the conversation.
+ - `3` - The comment author wasn't signed in when the comment was submitted.
+ - `4` - The comment was automatically generated.
+ - `5` - The attached file was rejected because it's too big.
+ - `11` - The comment was submitted by the user on behalf of the author.
+
+ - name: "flags_options"
+ type: "object"
+ description: "For `Comment` and `VoiceComment` events, additional information about the comment flags."
+
+ # START METADATA > SYSTEM OBJECT
+ - name: "system"
+ type: "object"
+ description: "Metadata about the system of the user who created the audit."
+ subattributes:
+ - name: "location"
+ type: "string"
+ description: "The user's location. For example: `Philadelphia, PA, United States`"
+
+ - name: "longitude"
+ type: "number"
+ description: "The user's longitude."
+
+ # Commenting out these fields - they're not documented by Zendesk.
+
+ # - name: "message_id"
+ # type: "string"
+ # description:
+
+ # - name: "raw_email_identifier"
+ # type: "string"
+ # description:
+
+ # - name: "json_email_identifier"
+ # type: "string"
+ # description:
+
+ - name: "ip_address"
+ type: "string"
+ description: "The user's IP address."
+
+ - name: "client"
+ type: "string"
+ description: "The user's client, or web browser."
+
+ - name: "latitude"
+ type: "number"
+ description: "The user's latitude."
+ # END METADATA > SYSTEM OBJECT
+
+# END METADATA OBJECT
+
+# START EVENTS ARRAY
+ - name: "events"
+ type: "array"
+ description: "The events that happened in the audit."
+ subattributes:
+ - name: "id"
+ type: "integer"
+ description: "The audit event ID."
+
+ - name: "audit_id"
+ type: "integer"
+ description: "The ticket audit ID."
+ foreign-key-id: "ticket-audit-id"
+
+ - name: "type"
+ type: "string"
+ description: |
+ The event type. Refer to [{{ integration.display_name }}'s documentation](https://developer.zendesk.com/rest_api/docs/support/ticket_audits#audit-events){:target="new"} for a full list of event types.
+ doc-link: "https://developer.zendesk.com/rest_api/docs/support/ticket_audits#audit-events"
+
+ # Same here.
+ # - name: "macro_id"
+ # type: "string"
+ # description: ""
+ # foreign-key-id: "macro-id"
+
+ # - name: "macro_title"
+ # type: "string"
+ # description:
+
+ # - name: "macro_deleted"
+ # type: "boolean"
+ # description:
+
+ - name: "body"
+ type: "string"
+ description: |
+ - For `VoiceComment` events - The comment added to the ticket.
+ - For `Notification` events - The message sent to the recipients.
+ - For `Cc` events - The message sent to the recipients.
+ - For `SatisfactionRating` events - The user's comment posted during the rating.
+ - For `OrganizationActivity` events - The message sent to the recipients.
+ - For `Tweet` events - The body of the tweet.
+ - For `FacebookEvent` events - The message posted to Facebook.
+ - For `FacebookComment` events - The comment made by the author.
+ - For `External` events - The trigger message for the target event.
+ - For `LogMeInTranscript` events - The audit of the transcript.
+
+ - name: "plain_body"
+ type: "string"
+ description: |
+ - For `VoiceComment` events - The comment in plaintext format.
+ - For `FacebookComment` events - The comment in plaintext format.
+
+ - name: "value"
+ type: "string"
+ description: |
+ - For `Create` events - The value of the field that was set.
+ - For `Change` events - The value of the field that was changed.
+
+ - name: "author_id"
+ type: "integer"
+ description: |
+ - For `VoiceComment` events - The comment author, typically the agent assigned to the ticket.
+ - For `FacebookComment` events - The ID of the comment author.
+
+ - name: "html_body"
+ type: "string"
+ description: |
+ - For `VoiceComment` events - The comment in HTML format.
+ - For `FacebookComment` events - The comment in HTML format.
+
+ - name: "subject"
+ type: "string"
+ description: |
+ - For `Notification` events - The subject of the message sent to recipients.
+ - For `OrganizationActivity` events - The subject of the message sent to recipients.
+
+ - name: "field_name"
+ type: "string"
+ description: |
+ - For `Create` events - The name of the field that was set.
+ - For `Change` events - The name of the field that was changed.
+ - For `Push` events - The data being pushed out of Zendesk.
+
+ - name: "public"
+ type: "boolean"
+ description: |
+ - For `VoiceComment` events - If `true`, the ticket requester can see the comment. Otherwise, only agents can see it.
+ - For `CommentPrivacyChange` events - If `true`, the comment was public.
+ - For `FacebookComment` events - If `true`, the comment was public. Otherwise, only agents can see it.
+
+ - name: "previous_value"
+ type: "string"
+ description: |
+ Applicable to `Change` events. The previous value of the field that was changed.
+
+ **Note**: This field may occasionally be an `array`, which will create a subtable in your destination if nested structures are unsupported. This occurs when the `field_name` value is `tags`. [Refer to {{ integration.display_name }}'s documentation for more info](https://developer.zendesk.com/rest_api/docs/support/ticket_audits#change-event){:target="new"}.
+
+ # START RECIPIENTS
+ - name: "recipients"
+ type: "array"
+ description: |
+ For `Notification`, `Cc`, `OrganizationActivity`, and `Tweet` events, the IDs of the recipients.
+ subattributes:
+ - name: "value"
+ type: "integer"
+ description: "The ID of the recipient."
+ # END RECIPIENTS
+
+ # START ATTACHMENTS OBJECT
+ - name: "attachments"
+ type: "object"
+ description: |
+ Details about the attachments associated with the event, if any.
+ subattributes:
+ - name: "id"
+ type: "integer"
+ description: "The attachment ID."
+
+ - name: "size"
+ type: "integer"
+ description: "The size of the attachment in bytes."
+
+ - name: "url"
+ type: "string"
+ description: "The API URL associated with the attachment."
+
+ - name: "inline"
+ type: "boolean"
+ description: "If `true`, the attachment is excluded from the attachment list. Additionally, the attachment's URL can be referenced within the comment of a ticket."
+
+ - name: "height"
+ type: "integer"
+ description: "The height of the attachment, if applicable."
+
+ - name: "width"
+ type: "integer"
+ description: "The width of the attachment, if applicable."
+
+ - name: "content_url"
+ type: "string"
+ description: "The full URL where the attachment image file may be downloaded."
+
+ - name: "mapped_content_url"
+ type: "string"
+ description: "The URL where the attachment image file may be downloaded."
+
+ - name: "content_type"
+ type: "string"
+ description: "The content type of the image. For example: `image/png`"
+
+ - name: "file_name"
+ type: "string"
+ description: "The name of the image file."
+
+ # And here.
+ # - name: "html_body"
+ # type: "string"
+ # description:
+
+ # - name: "subject"
+ # type: "string"
+ # description:
+
+ - name: "file_name"
+ type: "string"
+ description: "The name of the image file."
+
+ # START THUMBNAILS OBJECT
+ - name: "thumbnails"
+ type: "object"
+ description: "Details about the thumbnails associated with image attachments."
+ subattributes:
+ - name: "id"
+ type: "integer"
+ description:
+
+ - name: "size"
+ type: "integer"
+ description:
+
+ - name: "url"
+ type: "string"
+ description:
+
+ - name: "inline"
+ type: "boolean"
+ description:
+
+ - name: "height"
+ type: "integer"
+ description:
+
+ - name: "width"
+ type: "integer"
+ description:
+
+ - name: "content_url"
+ type: "string"
+ description:
+
+ - name: "mapped_content_url"
+ type: "string"
+ description:
+
+ - name: "content_type"
+ type: "string"
+ description:
+
+ - name: "file_name"
+ type: "string"
+ description:
+ # END THUMBNAILS
+
+ # END ATTACHMENTS
+
+ # START VIA OBJECT
+ - name: "via"
+ type: "object"
+ description: "Details about how the event was created."
+ subattributes:
+ - name: "channel"
+ type: "string"
+ description: "The channel used to create the event. For example: `web`, `mobile`"
+
+ - name: "source"
+ type: "object"
+ description: "Additional details about how the event was created. Only available for some channels."
+ subattributes:
+
+ # START TO OBJECT
+ - name: "to"
+ type: "object"
+ description: "If the source was an email, Twitter message/mention, phone call, etc., details about the recipient."
+ subattributes:
+ - name: "address"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description:
+ # END TO
+
+ # START FROM OBJECT
+ - name: "from"
+ type: "object"
+ description: "Details about the source that created the event."
+ subattributes:
+ - name: "id"
+ type: "integer"
+ description:
+
+ - name: "ticket_id"
+ type: "integer"
+ description:
+ foreign-key-id: "ticket-id"
+
+ - name: "revision_id"
+ type: "string"
+ description:
+
+ - name: "title"
+ type: "string"
+ description:
+
+ - name: "address"
+ type: "string"
+ description:
+
+ - name: "subject"
+ type: "string"
+ description:
+
+ - name: "deleted"
+ type: "boolean"
+ description:
+
+ - name: "name"
+ type: "string"
+ description:
+
+ - name: "original_recipients"
+ type: "array"
+ description:
+ subattributes:
+ - name: "value"
+ type: "string"
+ description:
+ # END FROM
+ - name: "rel"
+ type: "string"
+ description: "The type of relation that created the event. For example: For an event submitted through a {{ integration.display_name }} widget, this field would have a value of `zendesk_widget`."
+
+ # END VIA
+
+ - name: "via"
+ type: "object"
+ description: "Details about how the audit record was created."
+ subattributes:
+ - name: "channel"
+ type: "string"
+ description: "The channel used to create the audit record. For example: `web`, `mobile`"
+
+ - name: "source"
+ type: "object"
+ description: "Additional details about how the audit record was created. Only available for some channels."
+ subattributes:
+
+ # START TO OBJECT
+ - name: "to"
+ type: "object"
+ description: "If the source was an email, Twitter message/mention, phone call, etc., details about the recipient."
+ subattributes:
+ - name: "address"
+ type: "string"
+ description: ""
+
+ - name: "name"
+ type: "string"
+ description:
+ # END TO
+
+ # START FROM OBJECT
+ - name: "from"
+ type: "object"
+ description: "Details about the source that created the audit record."
+ subattributes:
+ - name: "id"
+ type: "integer"
+ description:
+
+ - name: "ticket_id"
+ type: "integer"
+ description:
+ foreign-key: true
+
+ - name: "revision_id"
+ type: "string"
+ description:
+
+ - name: "title"
+ type: "string"
+ description:
+
+ - name: "address"
+ type: "string"
+ description:
+
+ - name: "subject"
+ type: "string"
+ description:
+
+ - name: "deleted"
+ type: "boolean"
+ description:
+
+ - name: "name"
+ type: "string"
+ description:
+
+ - name: "original_recipients"
+ type: "array"
+ description:
+ subattributes:
+ - name: "value"
+ type: "string"
+ description:
+ # END FROM
+ - name: "rel"
+ type: "string"
+ description: "The type of relation that created the audit record. For example: For an event submitted through a {{ integration.display_name }} widget, this field would have a value of `zendesk_widget`."
+---
\ No newline at end of file
diff --git a/_integration-schemas/zendesk/v2/ticket_comments.md b/archive/_integration-schemas/zendesk/v2/ticket_comments.md
similarity index 100%
rename from _integration-schemas/zendesk/v2/ticket_comments.md
rename to archive/_integration-schemas/zendesk/v2/ticket_comments.md
diff --git a/_integration-schemas/zendesk/v2/ticket_fields.md b/archive/_integration-schemas/zendesk/v2/ticket_fields.md
similarity index 100%
rename from _integration-schemas/zendesk/v2/ticket_fields.md
rename to archive/_integration-schemas/zendesk/v2/ticket_fields.md
diff --git a/_integration-schemas/zendesk/v2/ticket_forms.md b/archive/_integration-schemas/zendesk/v2/ticket_forms.md
similarity index 100%
rename from _integration-schemas/zendesk/v2/ticket_forms.md
rename to archive/_integration-schemas/zendesk/v2/ticket_forms.md
diff --git a/_integration-schemas/zendesk/v2/ticket_metric_events.md b/archive/_integration-schemas/zendesk/v2/ticket_metric_events.md
similarity index 100%
rename from _integration-schemas/zendesk/v2/ticket_metric_events.md
rename to archive/_integration-schemas/zendesk/v2/ticket_metric_events.md
diff --git a/archive/_integration-schemas/zendesk/v2/ticket_metrics.md b/archive/_integration-schemas/zendesk/v2/ticket_metrics.md
new file mode 100644
index 000000000..23da74b0f
--- /dev/null
+++ b/archive/_integration-schemas/zendesk/v2/ticket_metrics.md
@@ -0,0 +1,203 @@
+---
+tap: "zendesk"
+version: "2"
+
+name: "ticket_metrics"
+doc-link: https://developer.zendesk.com/rest_api/docs/support/ticket_metrics
+singer-schema: https://github.com/singer-io/tap-zendesk/blob/master/tap_zendesk/schemas/ticket_metrics.json
+description: |
+ The `{{ table.name }}` table contains info about the metrics associated with {{ integration.display_name }} tickets. **This table will not include records for deleted tickets.**
+
+ **Note**: Retrieving ticket metric data requires {{ integration.display_name }} Admin permissions.
+
+ #### Deleted ticket metrics
+
+ As {{ integration.display_name }}'s API doesn't currently support returning metrics for deleted tickets, this table will not contain any metrics for deleted tickets.
+
+ If you believe you're missing records, check in your {{ integration.display_name }} account to see if the missing records are for deleted tickets.
+
+ For more info on how {{ integration.display_name }} handles deleting tickets, [refer to their documentation](https://support.zendesk.com/hc/en-us/articles/203690936){:target="new"}.
+
+replication-method: "Key-based Incremental"
+
+api-method:
+ name: List ticket metrics
+ doc-link: https://developer.zendesk.com/rest_api/docs/support/ticket_metrics#list-ticket-metrics
+
+attributes:
+ - name: "id"
+ type: "integer"
+ primary-key: true
+ description: "The ticket metric ID."
+ # foreign-key-id: "ticket-metric"
+
+ - name: "updated_at"
+ type: "date-time"
+ replication-key: true
+ description: "The last time the ticket metric was updated."
+
+ # - name: "metric"
+ # type: "string"
+ # description: ""
+
+ # - name: "time"
+ # type: "string"
+ # description: ""
+
+ # - name: "instance_id"
+ # type: "integer"
+ # description: ""
+
+ - name: "ticket_id"
+ type: "integer"
+ description: "The ID of the associated ticket."
+ foreign-key-id: "ticket-id"
+
+ # - name: "status"
+ # type: "object"
+ # description: "The number of minutes inside and outside of business hours."
+ # subattributes:
+ # - name: "calendar"
+ # type: "integer"
+ # description:
+
+ # - name: "business"
+ # type: "integer"
+ # description: "The
+
+ # - name: "type"
+ # type: "string"
+ # description: ""
+
+ - name: "agent_wait_time_in_minutes"
+ type: "object"
+ description: "The number of minutes the agent spent waiting inside and outside of business hours."
+ subattributes:
+ - name: "calendar"
+ type: "integer"
+ description: "The number of minutes the agent spent waiting outside of business hours."
+
+ - name: "business"
+ type: "integer"
+ description: "The number of minutes the agent spent waiting inside of business hours."
+
+ - name: "assignee_stations"
+ type: "integer"
+ description: "The number of assignees the ticket had."
+
+ - name: "created_at"
+ type: "date-time"
+ description: "The time the ticket metric was created."
+
+ - name: "first_resolution_time_in_minutes"
+ type: "object"
+ description: "The number of minutes to the first resolution time inside and outside of business hours."
+ subattributes:
+ - name: "calendar"
+ type: "integer"
+ description: "The number of minutes to the first resolution time outside of business hours."
+
+ - name: "business"
+ type: "integer"
+ description: "The number of minutes to the first resolution time inside of business hours."
+
+ - name: "full_resolution_time_in_minutes"
+ type: "object"
+ description: "The number of minutes to the full resolution inside and outside of business hours."
+
+ - name: "group_stations"
+ type: "integer"
+ description: "The number of groups the ticket passed through."
+
+ - name: "latest_comment_added_at"
+ type: "date-time"
+ description: "The time the last comment was added to the ticket."
+
+ - name: "on_hold_time_in_minutes"
+ type: "object"
+ description: "The number of minutes the ticket was on hold inside and outside of business hours."
+ subattributes:
+ - name: "calendar"
+ type: "integer"
+ description: "The number of minutes the ticket was on hold outside of business hours."
+
+ - name: "business"
+ type: "integer"
+ description: "The number of minutes the ticket was on hold inside of business hours."
+
+ - name: "reopens"
+ type: "integer"
+ description: "The total number of times the ticket was reopened."
+
+ - name: "replies"
+ type: "integer"
+ description: "The total number of times the ticket was replied to."
+
+ - name: "reply_time_in_minutes"
+ type: "object"
+ description: "The number of minutes to the first reply inside and outside of business hours."
+
+ - name: "requester_updated_at"
+ type: "date-time"
+ description: "The time the requester last updated the ticket."
+
+ - name: "requester_wait_time_in_minutes"
+ type: "object"
+ description: "The number of minutes the requester spent waiting inside and outside of business hours."
+ subattributes:
+ - name: "calendar"
+ type: "integer"
+ description: "The number of minutes the requester spent waiting outside of business hours."
+
+ - name: "business"
+ type: "integer"
+ description: "The number of minutes the requester spent waiting inside of business hours."
+
+ - name: "reply_time_in_minutes"
+ type: "object"
+ description: "Number of minutes to the first reply inside and out of business hours."
+ subattributes:
+ - name: "calendar"
+ type: "integer"
+ description: "The number of minutes to the first reply outside of business hours."
+
+ - name: "business"
+ type: "integer"
+ description: "The number of minutes to the first reply inside of business hours."
+
+ - name: "full_resolution_time_in_minutes"
+ type: "object"
+ description: "Number of minutes to the full resolution inside and out of business hours."
+ subattributes:
+ - name: "calendar"
+ type: "integer"
+ description: "The number of minutes to the full resolution outside of business hours."
+
+ - name: "business"
+ type: "integer"
+ description: "The number of minutes to the full resolution inside of business hours."
+
+ - name: "status_updated_at"
+ type: "date-time"
+ description: "The time the ticket's status was last updated."
+
+ - name: "url"
+ type: "string"
+ description: "The API URL of the ticket metric."
+
+ - name: "initially_assigned_at"
+ type: "date-time"
+ description: "The time the ticket was initially assigned."
+
+ - name: "assigned_at"
+ type: "date-time"
+ description: "The time the ticket was last assigned."
+
+ - name: "solved_at"
+ type: "date-time"
+ description: "The time the ticket was solved."
+
+ - name: "assignee_updated_at"
+ type: "date-time"
+ description: "The time the assignee last updated the ticket."
+---
\ No newline at end of file
diff --git a/_integration-schemas/zendesk/v2/tickets.md b/archive/_integration-schemas/zendesk/v2/tickets.md
similarity index 100%
rename from _integration-schemas/zendesk/v2/tickets.md
rename to archive/_integration-schemas/zendesk/v2/tickets.md
diff --git a/_integration-schemas/zendesk/v2/users.md b/archive/_integration-schemas/zendesk/v2/users.md
similarity index 100%
rename from _integration-schemas/zendesk/v2/users.md
rename to archive/_integration-schemas/zendesk/v2/users.md
diff --git a/archive/_integration-schemas/zoom/v1/foreign-keys.md b/archive/_integration-schemas/zoom/v1/foreign-keys.md
new file mode 100644
index 000000000..501836422
--- /dev/null
+++ b/archive/_integration-schemas/zoom/v1/foreign-keys.md
@@ -0,0 +1,134 @@
+---
+# -------------------------- #
+# USING THIS TEMPLATE #
+# -------------------------- #
+
+## NEED HELP USING THIS TEMPLATE? SEE:
+## https://docs-about-stitch-docs.netlify.com/reference/integration-templates/saas-foreign-keys/
+## FOR INSTRUCTIONS & REFERENCE INFO
+
+tap-reference: "zoom"
+
+version: "1"
+
+foreign-keys:
+ - id: "meeting-uuid"
+ table: "meetings"
+ attribute: "uuid"
+ all-foreign-keys:
+ - table: "meeting_poll_results"
+ join-on: "meeting_uuid"
+ - table: "meeting_files"
+ join-on: "meeting_uuid"
+ - table: "meetings"
+ join-on: "uuid"
+
+ - id: "meeting-id"
+ table: "meeting_registrants"
+ attribute: "meeting_id"
+ all-foreign-keys:
+ - table: "meeting_polls"
+ - table: "meeting_questions"
+ - table: "meeting_registrants"
+ - table: "meetings"
+ - table: "report_meeting_participants"
+ - table: "report_meetings"
+
+ # - id: "poll-id"
+ # table: "meeting_polls"
+ # attribute: "id"
+ # all-foreign-keys:
+ # - table: "meeting_polls"
+ # join-on: "id"
+
+ - id: "user-id"
+ table: "users"
+ attribute: "user_id"
+ all-foreign-keys:
+ - table: "users"
+ join-on: "id"
+ - table: "report_meeting_participants"
+ - table: "report_webinar_participants"
+
+ - id: "webinar-id"
+ table: "webinar_panelists"
+ attribute: "webinar_id"
+ all-foreign-keys:
+ - table: "report_webinar_participants"
+ - table: "report_webinars"
+ - table: "webinar_panelists"
+ - table: "webinar_registrants"
+ - table: "webinar_polls"
+ - table: "webinar_questions"
+ - table: "webinar_registrants"
+ - table: "webinar_tracking_sources"
+
+ - id: "webinar-uuid"
+ table: "webinars"
+ attribute: "webinar_uuid"
+ all-foreign-keys:
+ - table: "report_webinars"
+ join-on: "uuid"
+ - table: "webinar_absentees"
+ - table: "webinar_files"
+ - table: "webinar_poll_results"
+ - table: "webinar_qna_results"
+ - table: "webinars"
+ join-on: "uuid"
+
+ # - id: "absentee-id"
+ # table: "webinar_absentees"
+ # attribute: "id"
+ # all-foreign-keys:
+ # - table: "webinar_absentees"
+ # join-on: "id"
+
+ # - id: "participant-id"
+ # table: "report_meeting_participants"
+ # attribute: "id"
+ # all-foreign-keys:
+ # - table: "report_meeting_participants"
+ # join-on: "id"
+
+ # - id: "registrant-id"
+ # table: "meeting_registrants"
+ # attribute: "id"
+ # all-foreign-keys:
+ # - table: "meeting_registrants"
+ # join-on: "id"
+
+ # - id: "panelist-id"
+ # table: "webinar_panelists"
+ # attribute: "id"
+ # all-foreign-keys:
+ # - table: "webinar_panelists"
+ # join-on: "id"
+
+ # - id: "webinar-registrant-id"
+ # table: "webinar_registrants"
+ # attribute: "id"
+ # all-foreign-keys:
+ # - table: "webinar_registrants"
+ # join-on: "id"
+
+ # - id: "webinar-poll-id"
+ # table: "webinar_polls"
+ # attribute: "id"
+ # all-foreign-keys:
+ # - table: "webinar_polls"
+ # join-on: "id"
+
+ # - id: "tracking-source-id"
+ # table: "webinar_tracking_sources"
+ # attribute: "id"
+ # all-foreign-keys:
+ # - table: "webinar_tracking_sources"
+ # join-on: "id"
+
+ # - id: "webinar-participant-id"
+ # table: "report_webinar_participants"
+ # attribute: "id"
+ # all-foreign-keys:
+ # - table: "report_webinar_participants"
+ # join-on: "id"
+---
\ No newline at end of file
diff --git a/_integration-schemas/zoom/v1/meeting_files.md b/archive/_integration-schemas/zoom/v1/meeting_files.md
similarity index 100%
rename from _integration-schemas/zoom/v1/meeting_files.md
rename to archive/_integration-schemas/zoom/v1/meeting_files.md
diff --git a/_integration-schemas/zoom/v1/meeting_poll_results.md b/archive/_integration-schemas/zoom/v1/meeting_poll_results.md
similarity index 100%
rename from _integration-schemas/zoom/v1/meeting_poll_results.md
rename to archive/_integration-schemas/zoom/v1/meeting_poll_results.md
diff --git a/_integration-schemas/zoom/v1/meeting_polls.md b/archive/_integration-schemas/zoom/v1/meeting_polls.md
similarity index 100%
rename from _integration-schemas/zoom/v1/meeting_polls.md
rename to archive/_integration-schemas/zoom/v1/meeting_polls.md
diff --git a/_integration-schemas/zoom/v1/meeting_questions.md b/archive/_integration-schemas/zoom/v1/meeting_questions.md
similarity index 100%
rename from _integration-schemas/zoom/v1/meeting_questions.md
rename to archive/_integration-schemas/zoom/v1/meeting_questions.md
diff --git a/_integration-schemas/zoom/v1/meeting_registrants.md b/archive/_integration-schemas/zoom/v1/meeting_registrants.md
similarity index 100%
rename from _integration-schemas/zoom/v1/meeting_registrants.md
rename to archive/_integration-schemas/zoom/v1/meeting_registrants.md
diff --git a/_integration-schemas/zoom/v1/meetings.md b/archive/_integration-schemas/zoom/v1/meetings.md
similarity index 100%
rename from _integration-schemas/zoom/v1/meetings.md
rename to archive/_integration-schemas/zoom/v1/meetings.md
diff --git a/_integration-schemas/zoom/v1/report_meeting_participants.md b/archive/_integration-schemas/zoom/v1/report_meeting_participants.md
similarity index 100%
rename from _integration-schemas/zoom/v1/report_meeting_participants.md
rename to archive/_integration-schemas/zoom/v1/report_meeting_participants.md
diff --git a/_integration-schemas/zoom/v1/report_meetings.md b/archive/_integration-schemas/zoom/v1/report_meetings.md
similarity index 100%
rename from _integration-schemas/zoom/v1/report_meetings.md
rename to archive/_integration-schemas/zoom/v1/report_meetings.md
diff --git a/_integration-schemas/zoom/v1/report_webinar_participants.md b/archive/_integration-schemas/zoom/v1/report_webinar_participants.md
similarity index 100%
rename from _integration-schemas/zoom/v1/report_webinar_participants.md
rename to archive/_integration-schemas/zoom/v1/report_webinar_participants.md
diff --git a/_integration-schemas/zoom/v1/report_webinars.md b/archive/_integration-schemas/zoom/v1/report_webinars.md
similarity index 100%
rename from _integration-schemas/zoom/v1/report_webinars.md
rename to archive/_integration-schemas/zoom/v1/report_webinars.md
diff --git a/_integration-schemas/zoom/v1/users.md b/archive/_integration-schemas/zoom/v1/users.md
similarity index 100%
rename from _integration-schemas/zoom/v1/users.md
rename to archive/_integration-schemas/zoom/v1/users.md
diff --git a/_integration-schemas/zoom/v1/webinar_absentees.md b/archive/_integration-schemas/zoom/v1/webinar_absentees.md
similarity index 100%
rename from _integration-schemas/zoom/v1/webinar_absentees.md
rename to archive/_integration-schemas/zoom/v1/webinar_absentees.md
diff --git a/_integration-schemas/zoom/v1/webinar_files.md b/archive/_integration-schemas/zoom/v1/webinar_files.md
similarity index 100%
rename from _integration-schemas/zoom/v1/webinar_files.md
rename to archive/_integration-schemas/zoom/v1/webinar_files.md
diff --git a/_integration-schemas/zoom/v1/webinar_panelists.md b/archive/_integration-schemas/zoom/v1/webinar_panelists.md
similarity index 100%
rename from _integration-schemas/zoom/v1/webinar_panelists.md
rename to archive/_integration-schemas/zoom/v1/webinar_panelists.md
diff --git a/_integration-schemas/zoom/v1/webinar_poll_results.md b/archive/_integration-schemas/zoom/v1/webinar_poll_results.md
similarity index 100%
rename from _integration-schemas/zoom/v1/webinar_poll_results.md
rename to archive/_integration-schemas/zoom/v1/webinar_poll_results.md
diff --git a/_integration-schemas/zoom/v1/webinar_polls.md b/archive/_integration-schemas/zoom/v1/webinar_polls.md
similarity index 100%
rename from _integration-schemas/zoom/v1/webinar_polls.md
rename to archive/_integration-schemas/zoom/v1/webinar_polls.md
diff --git a/_integration-schemas/zoom/v1/webinar_qna_results.md b/archive/_integration-schemas/zoom/v1/webinar_qna_results.md
similarity index 100%
rename from _integration-schemas/zoom/v1/webinar_qna_results.md
rename to archive/_integration-schemas/zoom/v1/webinar_qna_results.md
diff --git a/_integration-schemas/zoom/v1/webinar_questions.md b/archive/_integration-schemas/zoom/v1/webinar_questions.md
similarity index 100%
rename from _integration-schemas/zoom/v1/webinar_questions.md
rename to archive/_integration-schemas/zoom/v1/webinar_questions.md
diff --git a/_integration-schemas/zoom/v1/webinar_registrants.md b/archive/_integration-schemas/zoom/v1/webinar_registrants.md
similarity index 100%
rename from _integration-schemas/zoom/v1/webinar_registrants.md
rename to archive/_integration-schemas/zoom/v1/webinar_registrants.md
diff --git a/_integration-schemas/zoom/v1/webinar_tracking_sources.md b/archive/_integration-schemas/zoom/v1/webinar_tracking_sources.md
similarity index 100%
rename from _integration-schemas/zoom/v1/webinar_tracking_sources.md
rename to archive/_integration-schemas/zoom/v1/webinar_tracking_sources.md
diff --git a/_integration-schemas/zoom/v1/webinars.md b/archive/_integration-schemas/zoom/v1/webinars.md
similarity index 100%
rename from _integration-schemas/zoom/v1/webinars.md
rename to archive/_integration-schemas/zoom/v1/webinars.md
diff --git a/_integration-schemas/zoom/v2/foreign-keys.md b/archive/_integration-schemas/zoom/v2/foreign-keys.md
similarity index 100%
rename from _integration-schemas/zoom/v2/foreign-keys.md
rename to archive/_integration-schemas/zoom/v2/foreign-keys.md
diff --git a/_integration-schemas/zoom/v2/meeting_poll_results.md b/archive/_integration-schemas/zoom/v2/meeting_poll_results.md
similarity index 100%
rename from _integration-schemas/zoom/v2/meeting_poll_results.md
rename to archive/_integration-schemas/zoom/v2/meeting_poll_results.md
diff --git a/_integration-schemas/zoom/v2/meeting_polls.md b/archive/_integration-schemas/zoom/v2/meeting_polls.md
similarity index 100%
rename from _integration-schemas/zoom/v2/meeting_polls.md
rename to archive/_integration-schemas/zoom/v2/meeting_polls.md
diff --git a/_integration-schemas/zoom/v2/meeting_questions.md b/archive/_integration-schemas/zoom/v2/meeting_questions.md
similarity index 100%
rename from _integration-schemas/zoom/v2/meeting_questions.md
rename to archive/_integration-schemas/zoom/v2/meeting_questions.md
diff --git a/_integration-schemas/zoom/v2/meeting_registrants.md b/archive/_integration-schemas/zoom/v2/meeting_registrants.md
similarity index 100%
rename from _integration-schemas/zoom/v2/meeting_registrants.md
rename to archive/_integration-schemas/zoom/v2/meeting_registrants.md
diff --git a/_integration-schemas/zoom/v2/meetings.md b/archive/_integration-schemas/zoom/v2/meetings.md
similarity index 100%
rename from _integration-schemas/zoom/v2/meetings.md
rename to archive/_integration-schemas/zoom/v2/meetings.md
diff --git a/_integration-schemas/zoom/v2/report_meeting_participants.md b/archive/_integration-schemas/zoom/v2/report_meeting_participants.md
similarity index 100%
rename from _integration-schemas/zoom/v2/report_meeting_participants.md
rename to archive/_integration-schemas/zoom/v2/report_meeting_participants.md
diff --git a/_integration-schemas/zoom/v2/report_meetings.md b/archive/_integration-schemas/zoom/v2/report_meetings.md
similarity index 100%
rename from _integration-schemas/zoom/v2/report_meetings.md
rename to archive/_integration-schemas/zoom/v2/report_meetings.md
diff --git a/_integration-schemas/zoom/v2/report_webinar_participants.md b/archive/_integration-schemas/zoom/v2/report_webinar_participants.md
similarity index 100%
rename from _integration-schemas/zoom/v2/report_webinar_participants.md
rename to archive/_integration-schemas/zoom/v2/report_webinar_participants.md
diff --git a/_integration-schemas/zoom/v2/report_webinars.md b/archive/_integration-schemas/zoom/v2/report_webinars.md
similarity index 100%
rename from _integration-schemas/zoom/v2/report_webinars.md
rename to archive/_integration-schemas/zoom/v2/report_webinars.md
diff --git a/_integration-schemas/zoom/v2/users.md b/archive/_integration-schemas/zoom/v2/users.md
similarity index 100%
rename from _integration-schemas/zoom/v2/users.md
rename to archive/_integration-schemas/zoom/v2/users.md
diff --git a/_integration-schemas/zoom/v2/webinar_absentees.md b/archive/_integration-schemas/zoom/v2/webinar_absentees.md
similarity index 100%
rename from _integration-schemas/zoom/v2/webinar_absentees.md
rename to archive/_integration-schemas/zoom/v2/webinar_absentees.md
diff --git a/_integration-schemas/zoom/v2/webinar_panelists.md b/archive/_integration-schemas/zoom/v2/webinar_panelists.md
similarity index 100%
rename from _integration-schemas/zoom/v2/webinar_panelists.md
rename to archive/_integration-schemas/zoom/v2/webinar_panelists.md
diff --git a/_integration-schemas/zoom/v2/webinar_poll_results.md b/archive/_integration-schemas/zoom/v2/webinar_poll_results.md
similarity index 100%
rename from _integration-schemas/zoom/v2/webinar_poll_results.md
rename to archive/_integration-schemas/zoom/v2/webinar_poll_results.md
diff --git a/_integration-schemas/zoom/v2/webinar_polls.md b/archive/_integration-schemas/zoom/v2/webinar_polls.md
similarity index 100%
rename from _integration-schemas/zoom/v2/webinar_polls.md
rename to archive/_integration-schemas/zoom/v2/webinar_polls.md
diff --git a/_integration-schemas/zoom/v2/webinar_qna_results.md b/archive/_integration-schemas/zoom/v2/webinar_qna_results.md
similarity index 100%
rename from _integration-schemas/zoom/v2/webinar_qna_results.md
rename to archive/_integration-schemas/zoom/v2/webinar_qna_results.md
diff --git a/_integration-schemas/zoom/v2/webinar_questions.md b/archive/_integration-schemas/zoom/v2/webinar_questions.md
similarity index 100%
rename from _integration-schemas/zoom/v2/webinar_questions.md
rename to archive/_integration-schemas/zoom/v2/webinar_questions.md
diff --git a/_integration-schemas/zoom/v2/webinar_registrants.md b/archive/_integration-schemas/zoom/v2/webinar_registrants.md
similarity index 100%
rename from _integration-schemas/zoom/v2/webinar_registrants.md
rename to archive/_integration-schemas/zoom/v2/webinar_registrants.md
diff --git a/_integration-schemas/zoom/v2/webinar_tracking_sources.md b/archive/_integration-schemas/zoom/v2/webinar_tracking_sources.md
similarity index 100%
rename from _integration-schemas/zoom/v2/webinar_tracking_sources.md
rename to archive/_integration-schemas/zoom/v2/webinar_tracking_sources.md
diff --git a/_integration-schemas/zoom/v2/webinars.md b/archive/_integration-schemas/zoom/v2/webinars.md
similarity index 100%
rename from _integration-schemas/zoom/v2/webinars.md
rename to archive/_integration-schemas/zoom/v2/webinars.md
diff --git a/archive/_integration-schemas/zuora/account.md b/archive/_integration-schemas/zuora/account.md
new file mode 100644
index 000000000..9f614577a
--- /dev/null
+++ b/archive/_integration-schemas/zuora/account.md
@@ -0,0 +1,201 @@
+---
+tap: "zuora"
+version: "1"
+
+name: "account"
+doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Accounts
+#
+description: |
+ The `{{ table.name }}` table contains information about the customer accounts in your {{ integration.display_name }} instance.
+
+replication-method: "Key-based Incremental"
+
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The account ID."
+ foreign-key-id: "account-id"
+
+ - name: "updatedDate"
+ type: "date-time"
+ replication-key: true
+ description: "The date when the account was last updated."
+
+ - name: "accountNumber"
+ type: "string"
+ description: "The unique account number assigned to the account."
+
+ - name: "additionalEmailAddresses"
+ type: "string"
+ description: "A list of additional email addresses to receive emailed invoices."
+
+ - name: "allowInvoiceEdit"
+ type: "boolean"
+ description: "If `true`, the account's associated invoices may be edited."
+
+ - name: "autoPay"
+ type: "boolean"
+ description: "If `true`, future payments for the account are automatically collected when they're due during a Payment Run."
+
+ - name: "balance"
+ type: "decimal"
+ description: "The current outstanding balance for the account."
+
+ - name: "batch"
+ type: "string"
+ description: "The batch group the account is a part of."
+
+ - name: "bcdSettingOption"
+ type: "string"
+ description: "The billing cycle day setting option for the account."
+
+ - name: "billCycleDay"
+ type: "integer"
+ description: "The billing cycle day (BCD) on which bill runs generate invoices for the account."
+
+ - name: "billToContactId"
+ type: "string"
+ description: "The ID of the person to bill for the account."
+ foreign-key-id: "bill-to-contact-id"
+
+ - name: "communicationProfileId"
+ type: "string"
+ description: "The ID of the communication profile associated with the account."
+ foreign-key-id: "communication-profile-id"
+
+ - name: "createdById"
+ type: "string"
+ description: "The ID of the {{ integration.display_name }} user who created the account."
+
+ - name: "createdDate"
+ type: "date-time"
+ description: "The date when the account was created."
+
+ - name: "creditBalance"
+ type: "decimal"
+ description: "The total credit balance for the account."
+
+ - name: "crmId"
+ type: "string"
+ description: "The CRM account ID for the account. Used when Salesforce is integrated with your {{ integration.display_name }} instance."
+
+ - name: "currency"
+ type: "string"
+ description: "The currency that the customer is billed in."
+
+ - name: "customerServiceRepName"
+ type: "string"
+ description: "The name of the account's customer service representative, if applicable."
+
+ - name: "defaultPaymentMethodId"
+ type: "string"
+ description: "The ID of the default payment method for the account."
+ foreign-key-id: "default-payment-method-id"
+
+ - name: "deleted"
+ type: "boolean"
+ description: |
+ **Only supported for the AQuA API.** If `true`, this record was deleted in {{ integration.display_name }}.
+
+ - name: "invoiceDeliveryPrefsEmail"
+ type: "boolean"
+ description: "If `true`, the customer wants to receive invoices through email."
+
+ - name: "invoiceDeliveryPrefsPrint"
+ type: "boolean"
+ description: "If `true`, the customer wants to receive printed invoices."
+
+ - name: "invoiceTemplateId"
+ type: "string"
+ description: "The ID of the invoice template used for the account."
+
+ - name: "lastInvoiceDate"
+ type: "date-time"
+ description: "The date when the previous invoice was generated for the account. This field will be `NULL` if no invoice has ever been generated for the account."
+
+ - name: "name"
+ type: "string"
+ description: "The name of the account as displayed in the {{ integration.display_name }} UI."
+
+ - name: "notes"
+ type: "string"
+ description: "Any comments about the account."
+
+ - name: "parentAccountId"
+ type: "string"
+ description: "The ID of the parent customer account for this account. This field is used when customer hierarchy is enabled in {{ integration.display_name }}."
+ foreign-key-id: "parent-account-id"
+
+ - name: "paymentGateway"
+ type: "string"
+ description: "The gateway used for processing electronic payments and refunds."
+
+ - name: "paymentTerm"
+ type: "string"
+ description: "Indicates when the customer pays for subscriptions."
+
+ - name: "purchaseOrderNumber"
+ type: "string"
+ description: "The number of the purchase order associated with this account."
+
+ - name: "salesRepName"
+ type: "string"
+ description: "The name of the sales representative associated with the account, if applicable."
+
+ - name: "soldToContactId"
+ type: "string"
+ description: "The ID of the person who bought the subscription associated with the account."
+ foreign-key-id: "sold-to-contact-id"
+
+ - name: "status"
+ type: "string"
+ description: |
+ The status of the account in the system. Possible values are:
+
+ - `Draft`
+ - `Active`
+ - `Canceled`
+
+ - name: "taxExemptCertificateId"
+ type: "string"
+ description: "The ID of the customer's tax exemption certificate."
+
+ - name: "taxExemptCertificateType"
+ type: "string"
+ description: "The type of tax exemption certificate that the customer holds."
+
+ - name: "taxExemptDescription"
+ type: "string"
+ description: "The description of the tax exemption certificate that the customer holds."
+
+ - name: "taxExemptEffectiveDate"
+ type: "date-time"
+ description: "The date when the customer's tax exemption starts."
+
+ - name: "taxExemptExpirationDate"
+ type: "date-time"
+ description: "The date when the customer's tax exemption expires."
+
+ - name: "taxExemptIssuingJurisdiction"
+ type: "string"
+ description: "The jurisdiction in which the customer's tax exemption certificate was issued."
+
+ - name: "taxExemptStatus"
+ type: "string"
+ description: |
+ The status of the account's tax exemption. Possible values are:
+
+ - `Yes`
+ - `No`
+ - `PendingVerification`
+
+ - name: "totalInvoiceBalance"
+ type: "decimal"
+ description: "The total balance of the account's invoices."
+
+ - name: "updatedById"
+ type: "string"
+ description: "The ID of the {{ integration.display_name }} user who last updated the account."
+---
\ No newline at end of file
diff --git a/_integration-schemas/zuora/accounting_code.md b/archive/_integration-schemas/zuora/accounting_code.md
similarity index 98%
rename from _integration-schemas/zuora/accounting_code.md
rename to archive/_integration-schemas/zuora/accounting_code.md
index 796be08d3..82411e820 100644
--- a/_integration-schemas/zuora/accounting_code.md
+++ b/archive/_integration-schemas/zuora/accounting_code.md
@@ -4,16 +4,14 @@ version: "1"
name: "accountingCode"
doc-link: https://live-www.zuora.com/developer/api-reference/#operation/GET_AllAccountingCodes
-#singer-schema:
+#
description: |
The `{{ table.name }}` table contains information about the accounting codes in your {{ integration.display_name }} instance. Accounting codes are used to categorize transactions for accounting purposes.
**Note**: To replicate this table, you must have {{ integration.display_name }} Finance enabled.
replication-method: "Key-based Incremental"
-api-method:
- name:
- doc-link:
+
attributes:
- name: "id"
diff --git a/_integration-schemas/zuora/accounting_period.md b/archive/_integration-schemas/zuora/accounting_period.md
similarity index 98%
rename from _integration-schemas/zuora/accounting_period.md
rename to archive/_integration-schemas/zuora/accounting_period.md
index 56951c078..696af88dd 100644
--- a/_integration-schemas/zuora/accounting_period.md
+++ b/archive/_integration-schemas/zuora/accounting_period.md
@@ -4,16 +4,14 @@ version: "1"
name: "accountingPeriod"
doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Accounting-Periods
-#singer-schema:
+#
description: |
The `{{ table.name }}` table contains information about the [accounting periods](https://knowledgecenter.zuora.com/CC_Finance/E_Accounting_Periods){:target="new"} in your {{ integration.display_name }} account.
**Note**: To replicate this table, you must have {{ integration.display_name }} Finance enabled.
replication-method: "Key-based Incremental"
-api-method:
- name:
- doc-link:
+
attributes:
- name: "id"
diff --git a/_integration-schemas/zuora/amendment.md b/archive/_integration-schemas/zuora/amendment.md
similarity index 98%
rename from _integration-schemas/zuora/amendment.md
rename to archive/_integration-schemas/zuora/amendment.md
index c59026d65..ecf641fde 100644
--- a/_integration-schemas/zuora/amendment.md
+++ b/archive/_integration-schemas/zuora/amendment.md
@@ -4,14 +4,12 @@ version: "1"
name: "amendment"
doc-link: https://live-www.zuora.com/developer/api-reference/#operation/Object_GETAmendment
-#singer-schema:
+#
description: |
The `{{ table.name }}` table contains information about subscription amendments, which are changes to customer subscriptions. For example: Changing the terms of a contract, adding/removing a product, canceling a subscription, etc.
replication-method: "Key-based Incremental"
-api-method:
- name:
- doc-link:
+
attributes:
- name: "id"
diff --git a/_integration-schemas/zuora/billing_run.md b/archive/_integration-schemas/zuora/billing_run.md
similarity index 98%
rename from _integration-schemas/zuora/billing_run.md
rename to archive/_integration-schemas/zuora/billing_run.md
index 783b3239b..9410a7137 100644
--- a/_integration-schemas/zuora/billing_run.md
+++ b/archive/_integration-schemas/zuora/billing_run.md
@@ -4,14 +4,12 @@ version: "1"
name: "billingRun"
doc-link: https://live-www.zuora.com/developer/api-reference/#tag/billing-Run
-#singer-schema:
+#
description: |
The `{{ table.name }}` table contains information about billing runs.
replication-method: "Key-based Incremental"
-api-method:
- name:
- doc-link:
+
attributes:
- name: "id"
diff --git a/_integration-schemas/zuora/communication_profile.md b/archive/_integration-schemas/zuora/communication_profile.md
similarity index 96%
rename from _integration-schemas/zuora/communication_profile.md
rename to archive/_integration-schemas/zuora/communication_profile.md
index bfd3776d6..c023cdf14 100644
--- a/_integration-schemas/zuora/communication_profile.md
+++ b/archive/_integration-schemas/zuora/communication_profile.md
@@ -4,14 +4,12 @@ version: "1"
name: "communicationProfile"
doc-link: https://live-www.zuora.com/developer/api-reference/#operation/Object_GETCommunicationProfile
-#singer-schema:
+#
description: |
The `{{ table.name }}` table contains information about communication profiles, which are sets of policies that determine how to communicate with the contacts associated with a specific customer account.
replication-method: "Key-based Incremental"
-api-method:
- name:
- doc-link:
+
attributes:
- name: "id"
diff --git a/_integration-schemas/zuora/contact.md b/archive/_integration-schemas/zuora/contact.md
similarity index 100%
rename from _integration-schemas/zuora/contact.md
rename to archive/_integration-schemas/zuora/contact.md
diff --git a/_integration-schemas/zuora/contact_snapshot.md b/archive/_integration-schemas/zuora/contact_snapshot.md
similarity index 100%
rename from _integration-schemas/zuora/contact_snapshot.md
rename to archive/_integration-schemas/zuora/contact_snapshot.md
diff --git a/_integration-schemas/zuora/credit_balance_adjustment.md b/archive/_integration-schemas/zuora/credit_balance_adjustment.md
similarity index 99%
rename from _integration-schemas/zuora/credit_balance_adjustment.md
rename to archive/_integration-schemas/zuora/credit_balance_adjustment.md
index c95a5ebb1..6949a4bcb 100644
--- a/_integration-schemas/zuora/credit_balance_adjustment.md
+++ b/archive/_integration-schemas/zuora/credit_balance_adjustment.md
@@ -4,14 +4,12 @@ version: "1"
name: "creditBalanceAdjustment"
doc-link: https://live-www.zuora.com/developer/api-reference/#tag/credit balance adjustments
-#singer-schema:
+#
description: |
The `{{ table.name }}` table contains information about [credit balance adjustments](https://knowledgecenter.zuora.com/CB_Billing/G_Credit_Balances){:target="new"}, or the application of credit balances to invoices, payments, and refunds.
replication-method: "Key-based Incremental"
-api-method:
- name:
- doc-link:
+
attributes:
- name: "id"
diff --git a/_integration-schemas/zuora/discount_applied_metrics.md b/archive/_integration-schemas/zuora/discount_applied_metrics.md
similarity index 98%
rename from _integration-schemas/zuora/discount_applied_metrics.md
rename to archive/_integration-schemas/zuora/discount_applied_metrics.md
index 1f7ea0406..ce172fa19 100644
--- a/_integration-schemas/zuora/discount_applied_metrics.md
+++ b/archive/_integration-schemas/zuora/discount_applied_metrics.md
@@ -4,14 +4,12 @@ version: "1"
name: "discountAppliedMetrics"
doc-link: https://knowledgecenter.zuora.com/CD_Reporting/D_Data_Sources_and_Exports/C_Data_Source_Reference/Discount_Applied_Metrics_Data_Sourceadjustments
-#singer-schema:
+#
description: |
The `{{ table.name }}` table contains information about rate plan charges that use either a discount-fixed amount or discount-percentage charge model.
replication-method: "Key-based Incremental"
-api-method:
- name:
- doc-link:
+
attributes:
- name: "id"
diff --git a/archive/_integration-schemas/zuora/export.md b/archive/_integration-schemas/zuora/export.md
new file mode 100644
index 000000000..1b4a5741f
--- /dev/null
+++ b/archive/_integration-schemas/zuora/export.md
@@ -0,0 +1,94 @@
+---
+tap: "zuora"
+version: "1"
+
+name: "export"
+doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Exports
+#
+description: |
+ The `{{ table.name }}` table contains information about export jobs and files.
+
+replication-method: "Key-based Incremental"
+
+
+attributes:
+ - name: "id"
+ type: "string"
+ primary-key: true
+ description: "The export ID."
+
+ - name: "updatedDate"
+ type: "date-time"
+ replication-key: true
+ description: "The date when the export was last updated."
+
+ - name: "convertToCurrencies"
+ type: "string"
+ description: "The currencies that transaction amounts will be converted into."
+
+ - name: "createdById"
+ type: "string"
+ description: "The ID of the {{ integration.display_name }} user who created the export."
+
+ - name: "createdDate"
+ type: "date-time"
+ description: "The date when the export was created."
+
+ - name: "deleted"
+ type: "boolean"
+ description: |
+ **Only supported for the AQuA API.** If `true`, this record was deleted in {{ integration.display_name }}.
+
+ - name: "encrypted"
+ type: "boolean"
+ description: "Indicates if encrypted data source fields (ex: `paymentMethod.achAccountNumber`) have had a secure version exported."
+
+ - name: "fileId"
+ type: "string"
+ description: "The ID of the file generated by the export query."
+
+ - name: "format"
+ type: "string"
+ description: |
+ The format that the export file used. Possible values are:
+
+ - `csv`
+ - `html`
+ - `Excel`
+
+ - name: "name"
+ type: "string"
+ description: "The name of the export."
+
+ - name: "query"
+ type: "string"
+ description: |
+ **Currently unsupported by the {{ integration.display_name }} API.**
+
+ - name: "size"
+ type: "integer"
+ description: "The number of records or rows exported."
+
+ - name: "status"
+ type: "string"
+ description: |
+ The status of the export. Possible values are:
+
+ - `Pending`
+ - `Processing`
+ - `Completed`
+ - `Canceled`
+ - `Failed`
+
+ - name: "statusReason"
+ type: "string"
+ description: "The reason for the given status. Useful for troubleshooting export failures."
+
+ - name: "zip"
+ type: "boolean"
+ description: "If `true`, the export file will be compressed into a zip file."
+
+ - name: "updatedById"
+ type: "string"
+ description: "The ID of the {{ integration.display_name }} user who last updated the export."
+---
\ No newline at end of file
diff --git a/archive/_integration-schemas/zuora/foreign-keys.md b/archive/_integration-schemas/zuora/foreign-keys.md
new file mode 100644
index 000000000..81455e9fe
--- /dev/null
+++ b/archive/_integration-schemas/zuora/foreign-keys.md
@@ -0,0 +1,601 @@
+---
+tap-reference: "zuora"
+
+version: "1"
+
+foreign-keys:
+ - id: "account-id"
+ attribute: "accountId"
+ table: "account"
+ all-foreign-keys:
+ - table: "account"
+ join-on: "id"
+ - table: "contactSnapshot"
+ - table: "invoice"
+ - table: "payment"
+ - table: "refund"
+ - table: "subscription"
+
+ - id: "accounting-code-id"
+ attribute: "accountingCode"
+ table: "accountingCode"
+ all-foreign-keys:
+ - table: "accountingCode"
+ join-on: "id"
+ - table: "creditBalanceAdjustment"
+ - table: "invoiceItem"
+ - table: "invoiceItemAdjustment"
+ - table: "productRatePlanCharge"
+
+ - id: "accounting-period-id"
+ attribute: "accountingPeriodId"
+ table: "accountingPeriod"
+ all-foreign-keys:
+ - table: "accountingPeriod"
+ join-on: "id"
+ - table: "creditBalanceAdjustment"
+ - table: "invoiceItemAdjustment"
+ - table: "journalEntry"
+ - table: "revenueChargeSummaryItem"
+ - table: "revenueEventItemInvoiceItem"
+ - table: "revenueEventItemInvoiceItemAdjustment"
+ - table: "revenueScheduleItem"
+ - table: "revenueScheduleItemInvoiceItem"
+ - table: "revenueScheduleItemInvoiceItemAdjustment"
+
+ - id: "account-receivable-accounting-code-id"
+ attribute: "accountReceivableAccountingCodeId"
+ table: "accountingCode"
+ all-foreign-keys:
+ - table: "accountingCode"
+ join-on: "id"
+ - table: "creditBalanceAdjustment"
+ - table: "invoiceItemAdjustment"
+
+ - id: "amendment-id"
+ attribute: "amendmentId"
+ table: "amendment"
+ all-foreign-keys:
+ - table: "amendment"
+ join-on: "id"
+ - table: "discountAppliedMetrics"
+ - table: "invoiceItemAdjustment"
+ - table: "processedUsage"
+ - table: "ratePlan"
+ - table: "ratePlanChargeTier"
+ - table: "revenueChargeSummaryItem"
+ - table: "revenueEventItem"
+ - table: "revenueEventItemInvoiceItem"
+ - table: "revenueEventItemInvoiceItemAdjustment"
+ - table: "revenueScheduleItem"
+ - table: "revenueScheduleItemInvoiceItem"
+ - table: "revenueScheduleItemInvoiceItemAdjustment"
+
+ - id: "billing-run-id"
+ attribute: "billingRunId"
+ table: "billingRun"
+ all-foreign-keys:
+ - table: "billingRun"
+ join-on: "id"
+ - table: "paymentRun"
+
+ - id: "bill-to-contact-id"
+ attribute: "billToContactId"
+ table: "contact"
+ all-foreign-keys:
+ - table: "account"
+ - table: "contact"
+ join-on: "id"
+ - table: "contactSnapshot"
+ join-on: "contactId"
+ - table: "creditBalanceAdjustment"
+ - table: "discountAppliedMetrics"
+ - table: "invoice"
+ - table: "invoiceItemAdjustment"
+ - table: "processedUsage"
+ - table: "ratePlan"
+ - table: "refund"
+ - table: "revenueChargeSummaryItem"
+ - table: "revenueEventItem"
+ - table: "revenueEventItemInvoiceItem"
+ - table: "revenueEventItemInvoiceItemAdjustment"
+ - table: "revenueScheduleItem"
+ - table: "revenueScheduleItemInvoiceItem"
+ - table: "revenueScheduleItemInvoiceItemAdjustment"
+
+ - id: "bill-to-contact-snapshot-id"
+ attribute: "billToContactSnapshotId"
+ table: "contactSnapshot"
+ all-foreign-keys:
+ - table: "contactSnapshot"
+ join-on: "contactId"
+ - table: "invoice"
+
+ - id: "cash-on-account-accounting-code-id"
+ attribute: "cashOnAccountAccountingCodeId"
+ table: "accountingCode"
+ all-foreign-keys:
+ - table: "accountingCode"
+ join-on: "id"
+ - table: "creditBalanceAdjustment"
+
+ - id: "contact-id"
+ attribute: "contactId"
+ table: "contact"
+ all-foreign-keys:
+ - table: "account"
+ join-on: "billToContactId"
+ - table: "account"
+ join-on: "soldToContactId"
+ - table: "contact"
+ join-on: "id"
+ - table: "contactSnapshot"
+ join-on: "contactId"
+ - table: "creditBalanceAdjustment"
+ join-on: "billToContactId"
+ - table: "creditBalanceAdjustment"
+ join-on: "soldToContactId"
+ - table: "discountAppliedMetrics"
+ join-on: "billToContactId"
+ - table: "discountAppliedMetrics"
+ join-on: "soldToContactId"
+ - table: "invoice"
+ join-on: "billToContactId"
+ - table: "invoice"
+ join-on: "soldToContactId"
+ - table: "invoiceItemAdjustment"
+ join-on: "billToContactId"
+ - table: "invoiceItemAdjustment"
+ join-on: "soldToContactId"
+ - table: "processedUsage"
+ join-on: "billToContactId"
+ - table: "processedUsage"
+ join-on: "soldToContactId"
+ - table: "ratePlan"
+ join-on: "billToContactId"
+ - table: "ratePlan"
+ join-on: "soldToContactId"
+ - table: "refund"
+ join-on: "billToContactId"
+ - table: "refund"
+ join-on: "soldToContactId"
+ - table: "revenueChargeSummaryItem"
+ join-on: "billToContactId"
+ - table: "revenueChargeSummaryItem"
+ join-on: "soldToContactId"
+ - table: "revenueEventItem"
+ join-on: "billToContactId"
+ - table: "revenueEventItem"
+ join-on: "soldToContactId"
+ - table: "revenueEventItemInvoiceItem"
+ join-on: "billToContactId"
+ - table: "revenueEventItemInvoiceItem"
+ join-on: "soldToContactId"
+ - table: "revenueEventItemInvoiceItemAdjustment"
+ join-on: "billToContactId"
+ - table: "revenueEventItemInvoiceItemAdjustment"
+ join-on: "soldToContactId"
+ - table: "revenueScheduleItem"
+ join-on: "billToContactId"
+ - table: "revenueScheduleItem"
+ join-on: "soldToContactId"
+ - table: "revenueScheduleItemInvoiceItem"
+ join-on: "billToContactId"
+ - table: "revenueScheduleItemInvoiceItem"
+ join-on: "soldToContactId"
+ - table: "revenueScheduleItemInvoiceItemAdjustment"
+ join-on: "billToContactId"
+ - table: "revenueScheduleItemInvoiceItemAdjustment"
+ join-on: "soldToContactId"
+
+ - id: "contact-snapshot-id"
+ attribute: "contactSnapshotId"
+ table: "contactSnapshot"
+ all-foreign-keys:
+ - table: "contactSnapshot"
+ join-on: "contactId"
+ - table: "invoice"
+ join-on: "billToContactSnapshotId"
+ - table: "invoice"
+ join-on: "soldToContactSnapshotId"
+
+ - id: "communication-profile-id"
+ attribute: "communicationProfileId"
+ table: "communicationProfile"
+ all-foreign-keys:
+ - table: "communicationProfile"
+ join-on: "id"
+ - table: "account"
+
+ - attribute: "creatorInvoiceOwnerId"
+ table: "account"
+ all-foreign-keys:
+ - table: "account"
+
+ - id: "default-payment-method-id"
+ attribute: "defaultPaymentMethodId"
+ table: "paymentMethod"
+ all-foreign-keys:
+ - table: "paymentMethod"
+ join-on: "id"
+ - table: "account"
+ - table: "invoice"
+
+ - id: "deferred-revenue-accounting-code-id"
+ attribute: "deferredRevenueAccountingCodeId"
+ table: "accountingCode"
+ all-foreign-keys:
+ - table: "account"
+ join-on: "id"
+ - table: "revenueEventItem"
+ - table: "revenueEventItemInvoiceItem"
+ - table: "revenueEventItemInvoiceItemAdjustment"
+ - table: "revenueScheduleItem"
+ - table: "revenueScheduleItemInvoiceItem"
+ - table: "revenueScheduleItemInvoiceItemAdjustment"
+
+ - id: "discount-rate-plan-charge-id"
+ attribute: "discountRatePlanChargeId"
+ table: "ratePlanCharge"
+ all-foreign-keys:
+ - table: "ratePlanCharge"
+ join-on: "id"
+ - table: "discountAppliedMetrics"
+
+ - id: "invoice-id"
+ attribute: "invoiceId"
+ table: "invoice"
+ all-foreign-keys:
+ - table: "invoice"
+ join-on: "id"
+ - table: "creditBalanceAdjustment"
+ join-on: "invoiceId"
+ - table: "creditBalanceAdjustment"
+ join-on: "sourceTransactionId"
+
+ - id: "invoice-item-adjustment"
+ attribute: "invoiceItemAdjustmentId"
+ table: "invoiceItemAdjustment"
+ all-foreign-keys:
+ - table: "invoiceItemAdjustment"
+ join-on: "id"
+ - table: "revenueEventItemInvoiceItemAdjustment"
+ - table: "revenueScheduleItemInvoiceItemAdjustment"
+
+ - id: "invoice-number"
+ attribute: "invoiceNumber"
+ table: "invoice"
+ all-foreign-keys:
+ - table: "invoice"
+ - table: "creditBalanceAdjustment"
+ - table: "creditBalanceAdjustment"
+ join-on: "sourceTransactionNumber"
+
+ - id: "invoice-owner-id"
+ attribute: "invoiceOwnerId"
+ table: "account"
+ all-foreign-keys:
+ - table: "account"
+
+ - id: "invoice-item-id"
+ attribute: "invoiceItemId"
+ table: "invoiceItem"
+ all-foreign-keys:
+ - table: "invoiceItem"
+ join-on: "id"
+ - table: "processedUsage"
+ - table: "revenueEventItemInvoiceItem"
+ - table: "revenueEventItemInvoiceItemAdjustment"
+ - table: "revenueScheduleItemInvoiceItem"
+ - table: "revenueScheduleItemInvoiceItemAdjustment"
+
+ - id: "journal-entry-id"
+ attribute: "journalEntryId"
+ table: "journalEntry"
+ all-foreign-keys:
+ - table: "journalEntry"
+ join-on: "id"
+ - table: "creditBalanceAdjustment"
+ - table: "invoiceItemAdjustment"
+ - table: "journalEntryItem"
+ - table: "revenueEventItem"
+ - table: "revenueEventItemInvoiceItem"
+ - table: "revenueEventItemInvoiceItemAdjustment"
+
+ - id: "journal-run-id"
+ attribute: "journalRunId"
+ table: "journalRun"
+ all-foreign-keys:
+ - table: "journalRun"
+ join-on: "id"
+ - table: "creditBalanceAdjustment"
+ - table: "invoiceItemAdjustment"
+ - table: "journalEntryItem"
+ - table: "revenueEventItem"
+ - table: "revenueEventItemInvoiceItem"
+ - table: "revenueEventItemInvoiceItemAdjustment"
+
+ - id: "parent-account-id"
+ attribute: "parentAccountId"
+ table: "account"
+ all-foreign-keys:
+ - table: "account"
+ - table: "creditBalanceAdjustment"
+ - table: "discountAppliedMetrics"
+ - table: "invoice"
+ - table: "invoiceItemAdjustment"
+ - table: "processedUsage"
+ - table: "refund"
+ - table: "revenueChargeSummaryItem"
+ - table: "revenueEventItem"
+ - table: "revenueEventItemInvoiceItem"
+ - table: "revenueEventItemInvoiceItemAdjustment"
+ - table: "revenueScheduleItem"
+ - table: "revenueScheduleItemInvoiceItem"
+ - table: "revenueScheduleItemInvoiceItemAdjustment"
+
+ - id: "payment-id"
+ attribute: "paymentId"
+ table: "payment"
+ all-foreign-keys:
+ - table: "payment"
+ join-on: "id"
+ - table: "creditBalanceAdjustment"
+ - table: "creditBalanceAdjustment"
+ join-on: "sourceTransactionId"
+
+ - id: "payment-method-id"
+ attribute: "paymentMethodId"
+ table: "paymentMethod"
+ all-foreign-keys:
+ - table: "paymentMethod"
+ join-on: "id"
+ - table: "creditBalanceAdjustment"
+ - table: "payment"
+ - table: "refund"
+
+ - id: "payment-run-id"
+ attribute: "paymentRunId"
+ table: "paymentRun"
+ all-foreign-keys:
+ - table: "paymentRun"
+
+ - id: "payment-method-snapshot-id"
+ attribute: "paymentMethodSnapshotId"
+ table: "paymentMethodSnapshot"
+ all-foreign-keys:
+ - table: "paymentMethodSnapshot"
+ join-on: "id"
+ - table: "creditBalanceAdjustment"
+ - table: "payment"
+ - table: "refund"
+
+ - id: "product-id"
+ attribute: "productId"
+ table: "product"
+ all-foreign-keys:
+ - table: "product"
+ join-on: "id"
+ - table: "discountAppliedMetrics"
+ - table: "invoiceItem"
+ - table: "invoiceItemAdjustment"
+ - table: "processedUsage"
+ - table: "productRatePlan"
+ - table: "revenueChargeSummaryItem"
+ - table: "revenueEventItem"
+ - table: "revenueEventItemInvoiceItem"
+ - table: "revenueEventItemInvoiceItemAdjustment"
+ - table: "revenueScheduleItem"
+ - table: "revenueScheduleItemInvoiceItem"
+ - table: "revenueScheduleItemInvoiceItemAdjustment"
+
+ - id: "product-rate-plan-charge-id"
+ attribute: "productRatePlanChargeId"
+ table: "productRatePlanCharge"
+ all-foreign-keys:
+ - table: "productRatePlanCharge"
+ join-on: "id"
+ - table: "discountAppliedMetrics"
+ - table: "invoiceItem"
+ - table: "invoiceItemAdjustment"
+ - table: "processedUsage"
+ - table: "productRatePlanChargeTier"
+ - table: "revenueChargeSummaryItem"
+ - table: "revenueEventItem"
+ - table: "revenueEventItemInvoiceItem"
+ - table: "revenueEventItemInvoiceItemAdjustment"
+ - table: "revenueScheduleItem"
+ - table: "revenueScheduleItemInvoiceItem"
+ - table: "revenueScheduleItemInvoiceItemAdjustment"
+
+ - id: "product-rate-plan-id"
+ attribute: "productRatePlanId"
+ table: "productRatePlan"
+ all-foreign-keys:
+ - table: "productRatePlan"
+ join-on: "id"
+ - table: "discountAppliedMetrics"
+ - table: "processedUsage"
+ - table: "productRatePlanCharge"
+ - table: "productRatePlanChargeTier"
+ - table: "ratePlan"
+ - table: "ratePlanChargeTier"
+ - table: "revenueChargeSummaryItem"
+ - table: "revenueEventItem"
+ - table: "revenueEventItemInvoiceItem"
+ - table: "revenueEventItemInvoiceItemAdjustment"
+ - table: "revenueScheduleItem"
+ - table: "revenueScheduleItemInvoiceItem"
+ - table: "revenueScheduleItemInvoiceItemAdjustment"
+
+ - id: "rate-plan-charge-id"
+ attribute: "ratePlanChargeId"
+ table: "ratePlanCharge"
+ all-foreign-keys:
+ - table: "ratePlanCharge"
+ join-on: "id"
+ - table: "discountAppliedMetrics"
+ - table: "invoiceItem"
+ - table: "invoiceItemAdjustment"
+ - table: "processedUsage"
+ - table: "productRatePlanChargeTier"
+ - table: "ratePlanChargeTier"
+ - table: "revenueChargeSummaryItem"
+ - table: "revenueEventItem"
+ - table: "revenueEventItemInvoiceItem"
+ - table: "revenueEventItemInvoiceItemAdjustment"
+ - table: "revenueScheduleItem"
+ - table: "revenueScheduleItemInvoiceItem"
+ - table: "revenueScheduleItemInvoiceItemAdjustment"
+
+ - id: "rate-plan-id"
+ attribute: "ratePlanId"
+ table: "ratePlan"
+ all-foreign-keys:
+ - table: "ratePlan"
+ join-on: "id"
+ - table: "discountAppliedMetrics"
+ - table: "invoiceItem"
+ - table: "invoiceItemAdjustment"
+ - table: "processedUsage"
+ - table: "productRatePlanChargeTier"
+ - table: "ratePlanChargeTier"
+ - table: "revenueChargeSummaryItem"
+ - table: "revenueEventItem"
+ - table: "revenueEventItemInvoiceItem"
+ - table: "revenueEventItemInvoiceItemAdjustment"
+ - table: "revenueScheduleItem"
+ - table: "revenueScheduleItemInvoiceItem"
+ - table: "revenueScheduleItemInvoiceItemAdjustment"
+
+ - id: "recognized-revenue-accounting-code-id"
+ attribute: "recognizedRevenueAccountingCodeId"
+ table: "accountingCode"
+ all-foreign-keys:
+ - table: "accountingCode"
+ join-on: "id"
+ - table: "invoiceItemAdjustment"
+ - table: "revenueEventItem"
+ - table: "revenueEventItemInvoiceItem"
+ - table: "revenueEventItemInvoiceItemAdjustment"
+ - table: "revenueScheduleItem"
+ - table: "revenueScheduleItemInvoiceItem"
+ - table: "revenueScheduleItemInvoiceItemAdjustment"
+
+ - id: "refund-id"
+ attribute: "refundId"
+ table: "refund"
+ all-foreign-keys:
+ - table: "refund"
+ join-on: "id"
+ - table: "creditBalanceAdjustment"
+ - table: "creditBalanceAdjustment"
+ join-on: "sourceTransactionId"
+
+ - id: "revenue-charge-summary-id"
+ attribute: "revenueChargeSummaryId"
+ table: "revenueChargeSummary"
+ all-foreign-keys:
+ - table: "revenueChargeSummaryItem"
+ - table: "revenueEventItem"
+ - table: "RevenutEventItemInvoiceItem"
+ - table: "revenueEventItemInvoiceItemAdjustment"
+ - table: "revenueScheduleItem"
+ - table: "revenueScheduleItemInvoiceItem"
+ - table: "revenueScheduleItemInvoiceItemAdjustment"
+
+ - id: "revenue-event-type-id"
+ attribute: "revenueEventTypeId"
+ table: "revenueEventType"
+ all-foreign-keys:
+ - table: "revenueEventType"
+ join-on: "id"
+
+ - id: "revenue-schedule-invoice-item-id"
+ attribute: "revenueScheduleInvoiceItemId"
+ table: "revenueScheduleInvoiceItem"
+ all-foreign-keys:
+ - table: "revenueScheduleInvoiceItem"
+ join-on: "id"
+
+ - id: "sales-tax-payable-accounting-code-id"
+ attribute: "salesTaxPayableAccountingCodeId"
+ table: "accountingCode"
+ all-foreign-keys:
+ - table: "accountingCode"
+ join-on: "id"
+ - table: "invoiceItemAdjustment"
+
+ - id: "sold-to-contact-id"
+ attribute: "soldToContactId"
+ table: "contact"
+ all-foreign-keys:
+ - table: "account"
+ - table: "contact"
+ join-on: "id"
+ - table: "contactSnapshot"
+ join-on: "contactId"
+ - table: "creditBalanceAdjustment"
+ - table: "discountAppliedMetrics"
+ - table: "invoice"
+ - table: "invoiceItemAdjustment"
+ - table: "processedUsage"
+ - table: "ratePlan"
+ - table: "refund"
+ - table: "revenueChargeSummaryItem"
+ - table: "revenueEventItem"
+ - table: "revenueEventItemInvoiceItem"
+ - table: "revenueEventItemInvoiceItemAdjustment"
+ - table: "revenueScheduleItem"
+ - table: "revenueScheduleItemInvoiceItem"
+ - table: "revenueScheduleItemInvoiceItemAdjustment"
+
+ - id: "sold-to-contact-snapshot-id"
+ attribute: "soldToContactSnapshotId"
+ table: "contactSnapshot"
+ all-foreign-keys:
+ - table: "contactSnapshot"
+ join-on: "contactId"
+ - table: "invoice"
+
+ - id: "source-transaction-id"
+ attribute: "sourceTransactionId"
+ table: "creditBalanceAdjustment"
+ all-foreign-keys:
+ - table: "invoice"
+ join-on: "id"
+ - table: "payment"
+ join-on: "id"
+ - table: "refund"
+ join-on: "id"
+
+ - id: "source-transaction-number"
+ attribute: "sourceTransactionNumber"
+ table: "creditBalanceAdjustment"
+ all-foreign-keys:
+ - table: "invoice"
+ join-on: "invoiceNumber"
+ - table: "payment"
+ join-on: "number"
+ - table: "refund"
+ join-on: "number"
+
+ - id: "subscription-id"
+ attribute: "subscriptionId"
+ table: "subscription"
+ all-foreign-keys:
+ - table: "subscription"
+ join-on: "id"
+ - table: "amendment"
+ - table: "discountAppliedMetrics"
+ - table: "invoiceItem"
+ - table: "invoiceItemAdjustment"
+ - table: "ratePlan"
+ - table: "ratePlanChargeTier"
+ - table: "revenueChargeSummaryItem"
+ - table: "revenueEventItem"
+ - table: "revenueEventItemInvoiceItem"
+ - table: "revenueEventItemInvoiceItemAdjustment"
+ - table: "revenueScheduleItemInvoiceItemAdjustment"
+
+---
\ No newline at end of file
diff --git a/_integration-schemas/zuora/import.md b/archive/_integration-schemas/zuora/import.md
similarity index 97%
rename from _integration-schemas/zuora/import.md
rename to archive/_integration-schemas/zuora/import.md
index 097cba71f..c88feb7cc 100644
--- a/_integration-schemas/zuora/import.md
+++ b/archive/_integration-schemas/zuora/import.md
@@ -4,14 +4,12 @@ version: "1"
name: "import"
doc-link: https://live-www.zuora.com/developer/api-reference/#tag/imports
-#singer-schema:
+#
description: |
The `{{ table.name }}` table contains information about content uploads.
replication-method: "Key-based Incremental"
-api-method:
- name:
- doc-link:
+
attributes:
- name: "id"
diff --git a/_integration-schemas/zuora/invoice.md b/archive/_integration-schemas/zuora/invoice.md
similarity index 100%
rename from _integration-schemas/zuora/invoice.md
rename to archive/_integration-schemas/zuora/invoice.md
diff --git a/_integration-schemas/zuora/invoice_item.md b/archive/_integration-schemas/zuora/invoice_item.md
similarity index 100%
rename from _integration-schemas/zuora/invoice_item.md
rename to archive/_integration-schemas/zuora/invoice_item.md
diff --git a/_integration-schemas/zuora/invoice_item_adjustment.md b/archive/_integration-schemas/zuora/invoice_item_adjustment.md
similarity index 100%
rename from _integration-schemas/zuora/invoice_item_adjustment.md
rename to archive/_integration-schemas/zuora/invoice_item_adjustment.md
diff --git a/_integration-schemas/zuora/journal_entry.md b/archive/_integration-schemas/zuora/journal_entry.md
similarity index 97%
rename from _integration-schemas/zuora/journal_entry.md
rename to archive/_integration-schemas/zuora/journal_entry.md
index 44dbd887a..fd8a57dd5 100644
--- a/_integration-schemas/zuora/journal_entry.md
+++ b/archive/_integration-schemas/zuora/journal_entry.md
@@ -4,14 +4,12 @@ version: "1"
name: "journalEntry"
doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Accounts
-#singer-schema:
+#
description: |
The `{{ table.name }}` table contains information about
replication-method: "Key-based Incremental"
-api-method:
- name:
- doc-link:
+
attributes:
- name: "id"
diff --git a/_integration-schemas/zuora/journal_entry_item.md b/archive/_integration-schemas/zuora/journal_entry_item.md
similarity index 98%
rename from _integration-schemas/zuora/journal_entry_item.md
rename to archive/_integration-schemas/zuora/journal_entry_item.md
index 0fd723ff0..ea7ac54b6 100644
--- a/_integration-schemas/zuora/journal_entry_item.md
+++ b/archive/_integration-schemas/zuora/journal_entry_item.md
@@ -4,14 +4,12 @@ version: "1"
name: "journalEntryItem"
doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Summary-Journal-Entries
-#singer-schema:
+#
description: |
The `{{ table.name }}` table contains information about journal entry items.
replication-method: "Key-based Incremental"
-api-method:
- name:
- doc-link:
+
attributes:
- name: "id"
diff --git a/_integration-schemas/zuora/journal_run.md b/archive/_integration-schemas/zuora/journal_run.md
similarity index 97%
rename from _integration-schemas/zuora/journal_run.md
rename to archive/_integration-schemas/zuora/journal_run.md
index 1886a7fff..ca5c9760e 100644
--- a/_integration-schemas/zuora/journal_run.md
+++ b/archive/_integration-schemas/zuora/journal_run.md
@@ -4,14 +4,12 @@ version: "1"
name: "journalRun"
doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Journal-Runs
-#singer-schema:
+#
description: |
The `{{ table.name }}` table contains information about journal runs.
replication-method: "Key-based Incremental"
-api-method:
- name:
- doc-link:
+
attributes:
- name: "id"
diff --git a/_integration-schemas/zuora/payment.md b/archive/_integration-schemas/zuora/payment.md
similarity index 100%
rename from _integration-schemas/zuora/payment.md
rename to archive/_integration-schemas/zuora/payment.md
diff --git a/_integration-schemas/zuora/payment_run.md b/archive/_integration-schemas/zuora/payment_run.md
similarity index 98%
rename from _integration-schemas/zuora/payment_run.md
rename to archive/_integration-schemas/zuora/payment_run.md
index d80afc288..2ddfed4b3 100644
--- a/_integration-schemas/zuora/payment_run.md
+++ b/archive/_integration-schemas/zuora/payment_run.md
@@ -4,14 +4,12 @@ version: "1"
name: "paymentRun"
doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Payment-Runs
-#singer-schema:
+#
description: |
The `{{ table.name }}` table contains information about payment runs.
replication-method: "Key-based Incremental"
-api-method:
- name:
- doc-link:
+
attributes:
- name: "id"
diff --git a/_integration-schemas/zuora/processed_usage.md b/archive/_integration-schemas/zuora/processed_usage.md
similarity index 98%
rename from _integration-schemas/zuora/processed_usage.md
rename to archive/_integration-schemas/zuora/processed_usage.md
index fd821da49..34f1ce9b8 100644
--- a/_integration-schemas/zuora/processed_usage.md
+++ b/archive/_integration-schemas/zuora/processed_usage.md
@@ -4,14 +4,12 @@ version: "1"
name: "processedUsage"
doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Accounts
-#singer-schema:
+#
description: |
The `{{ table.name }}` table contains information about usage.
replication-method: "Key-based Incremental"
-api-method:
- name:
- doc-link:
+
attributes:
- name: "id"
diff --git a/_integration-schemas/zuora/product.md b/archive/_integration-schemas/zuora/product.md
similarity index 100%
rename from _integration-schemas/zuora/product.md
rename to archive/_integration-schemas/zuora/product.md
diff --git a/_integration-schemas/zuora/product_rate_plan.md b/archive/_integration-schemas/zuora/product_rate_plan.md
similarity index 100%
rename from _integration-schemas/zuora/product_rate_plan.md
rename to archive/_integration-schemas/zuora/product_rate_plan.md
diff --git a/_integration-schemas/zuora/product_rate_plan_charge.md b/archive/_integration-schemas/zuora/product_rate_plan_charge.md
similarity index 100%
rename from _integration-schemas/zuora/product_rate_plan_charge.md
rename to archive/_integration-schemas/zuora/product_rate_plan_charge.md
diff --git a/_integration-schemas/zuora/product_rate_plan_charge_tier.md b/archive/_integration-schemas/zuora/product_rate_plan_charge_tier.md
similarity index 100%
rename from _integration-schemas/zuora/product_rate_plan_charge_tier.md
rename to archive/_integration-schemas/zuora/product_rate_plan_charge_tier.md
diff --git a/_integration-schemas/zuora/rate_plan.md b/archive/_integration-schemas/zuora/rate_plan.md
similarity index 100%
rename from _integration-schemas/zuora/rate_plan.md
rename to archive/_integration-schemas/zuora/rate_plan.md
diff --git a/_integration-schemas/zuora/rate_plan_charge_tier.md b/archive/_integration-schemas/zuora/rate_plan_charge_tier.md
similarity index 100%
rename from _integration-schemas/zuora/rate_plan_charge_tier.md
rename to archive/_integration-schemas/zuora/rate_plan_charge_tier.md
diff --git a/_integration-schemas/zuora/refund.md b/archive/_integration-schemas/zuora/refund.md
similarity index 100%
rename from _integration-schemas/zuora/refund.md
rename to archive/_integration-schemas/zuora/refund.md
diff --git a/_integration-schemas/zuora/revenue_charge_summary_item.md b/archive/_integration-schemas/zuora/revenue_charge_summary_item.md
similarity index 98%
rename from _integration-schemas/zuora/revenue_charge_summary_item.md
rename to archive/_integration-schemas/zuora/revenue_charge_summary_item.md
index d586de725..ab65074f9 100644
--- a/_integration-schemas/zuora/revenue_charge_summary_item.md
+++ b/archive/_integration-schemas/zuora/revenue_charge_summary_item.md
@@ -4,14 +4,12 @@ version: "1"
name: "revenueChargeSummaryItem"
doc-link: https://live-www.zuora.com/developer/api-reference/#operation/GET_CRSByCRSNumber
-#singer-schema:
+#
description: |
The `{{ table.name }}` table contains information about [charge revenue summaries](https://knowledgecenter.zuora.com/CC_Finance/Revenue_Recognition/G_Revenue_Schedules/M_Charge_Revenue_Summary){:target="new"}, which are summaries of all revenue distributions associated with a subscription charge.
replication-method: "Key-based Incremental"
-api-method:
- name:
- doc-link:
+
attributes:
- name: "id"
diff --git a/_integration-schemas/zuora/revenue_event_item.md b/archive/_integration-schemas/zuora/revenue_event_item.md
similarity index 99%
rename from _integration-schemas/zuora/revenue_event_item.md
rename to archive/_integration-schemas/zuora/revenue_event_item.md
index b5238f624..822d151ad 100644
--- a/_integration-schemas/zuora/revenue_event_item.md
+++ b/archive/_integration-schemas/zuora/revenue_event_item.md
@@ -4,14 +4,12 @@ version: "1"
name: "revenueEventItem"
doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Revenue-Events
-#singer-schema:
+#
description: |
The `{{ table.name }}` table contains information about revenue events. A revenue event is a change to a revenue schedule, such as creating the initial schedule, canceling an invoice, or recognizing an undistributed amount.
replication-method: "Key-based Incremental"
-api-method:
- name:
- doc-link:
+
attributes:
- name: "id"
diff --git a/_integration-schemas/zuora/revenue_event_item_invoice_item.md b/archive/_integration-schemas/zuora/revenue_event_item_invoice_item.md
similarity index 99%
rename from _integration-schemas/zuora/revenue_event_item_invoice_item.md
rename to archive/_integration-schemas/zuora/revenue_event_item_invoice_item.md
index 09ef9094d..43f994513 100644
--- a/_integration-schemas/zuora/revenue_event_item_invoice_item.md
+++ b/archive/_integration-schemas/zuora/revenue_event_item_invoice_item.md
@@ -4,14 +4,12 @@ version: "1"
name: "revenueEventItemInvoiceItem"
doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Revenue-Events
-#singer-schema:
+#
description: |
The `{{ table.name }}` table contains information about revenue event items that are associated with invoice items.
replication-method: "Key-based Incremental"
-api-method:
- name:
- doc-link:
+
attributes:
- name: "id"
diff --git a/_integration-schemas/zuora/revenue_event_item_invoice_item_adjustment.md b/archive/_integration-schemas/zuora/revenue_event_item_invoice_item_adjustment.md
similarity index 99%
rename from _integration-schemas/zuora/revenue_event_item_invoice_item_adjustment.md
rename to archive/_integration-schemas/zuora/revenue_event_item_invoice_item_adjustment.md
index 1ada0d547..8cc88f2a7 100644
--- a/_integration-schemas/zuora/revenue_event_item_invoice_item_adjustment.md
+++ b/archive/_integration-schemas/zuora/revenue_event_item_invoice_item_adjustment.md
@@ -4,14 +4,12 @@ version: "1"
name: "revenueEventItemInvoiceItemAdjustment"
doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Revenue-Events
-#singer-schema:
+#
description: |
The `{{ table.name }}` table contains information about revenue event items that are associated with invoice item adjustments.
replication-method: "Key-based Incremental"
-api-method:
- name:
- doc-link:
+
attributes:
- name: "id"
diff --git a/_integration-schemas/zuora/revenue_schedule_item.md b/archive/_integration-schemas/zuora/revenue_schedule_item.md
similarity index 99%
rename from _integration-schemas/zuora/revenue_schedule_item.md
rename to archive/_integration-schemas/zuora/revenue_schedule_item.md
index af0cad91a..911641ef3 100644
--- a/_integration-schemas/zuora/revenue_schedule_item.md
+++ b/archive/_integration-schemas/zuora/revenue_schedule_item.md
@@ -4,14 +4,12 @@ version: "1"
name: "revenueScheduleItem"
doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Revenue-Items
-#singer-schema:
+#
description: |
The `{{ table.name }}` table contains information about revenue schedules. A [revenue schedule](https://knowledgecenter.zuora.com/CC_Finance/Revenue_Recognition/G_Revenue_Schedules){:target="new"} represents how revenue amounts from single charges are distributed over time and recognized in accounting periods.
replication-method: "Key-based Incremental"
-api-method:
- name:
- doc-link:
+
attributes:
- name: "id"
diff --git a/_integration-schemas/zuora/revenue_schedule_item_invoice_item.md b/archive/_integration-schemas/zuora/revenue_schedule_item_invoice_item.md
similarity index 99%
rename from _integration-schemas/zuora/revenue_schedule_item_invoice_item.md
rename to archive/_integration-schemas/zuora/revenue_schedule_item_invoice_item.md
index 00d9e1e82..849a6ba7f 100644
--- a/_integration-schemas/zuora/revenue_schedule_item_invoice_item.md
+++ b/archive/_integration-schemas/zuora/revenue_schedule_item_invoice_item.md
@@ -4,14 +4,12 @@ version: "1"
name: "revenueScheduleItemInvoiceItem"
doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Revenue-Items
-#singer-schema:
+#
description: |
The `{{ table.name }}` table contains information about revenue schedule item - invoice items.
replication-method: "Key-based Incremental"
-api-method:
- name:
- doc-link:
+
attributes:
- name: "id"
diff --git a/_integration-schemas/zuora/revenue_schedule_item_invoice_item_adjustment.md b/archive/_integration-schemas/zuora/revenue_schedule_item_invoice_item_adjustment.md
similarity index 99%
rename from _integration-schemas/zuora/revenue_schedule_item_invoice_item_adjustment.md
rename to archive/_integration-schemas/zuora/revenue_schedule_item_invoice_item_adjustment.md
index 464830646..28d2cbc45 100644
--- a/_integration-schemas/zuora/revenue_schedule_item_invoice_item_adjustment.md
+++ b/archive/_integration-schemas/zuora/revenue_schedule_item_invoice_item_adjustment.md
@@ -4,14 +4,12 @@ version: "1"
name: "revenueScheduleItemInvoiceItemAdjustment"
doc-link: https://live-www.zuora.com/developer/api-reference/#tag/Revenue-Items
-#singer-schema:
+#
description: |
The `{{ table.name }}` table contains information about revenue schedule item - invoice items.
replication-method: "Key-based Incremental"
-api-method:
- name:
- doc-link:
+
attributes:
- name: "id"
diff --git a/_integration-schemas/zuora/subscription.md b/archive/_integration-schemas/zuora/subscription.md
similarity index 99%
rename from _integration-schemas/zuora/subscription.md
rename to archive/_integration-schemas/zuora/subscription.md
index 296dbc7cb..914f5583f 100644
--- a/_integration-schemas/zuora/subscription.md
+++ b/archive/_integration-schemas/zuora/subscription.md
@@ -12,9 +12,7 @@ description: |
If your {{ integration.display_name }} subscription records contain custom attributes, Stitch will replicate them.
replication-method: "Key-based Incremental"
-api-method:
- name:
- doc-link:
+
attributes:
- name: "id"
diff --git a/scripts/json/README.md b/scripts/json/README.md
new file mode 100644
index 000000000..f29044eb4
--- /dev/null
+++ b/scripts/json/README.md
@@ -0,0 +1,56 @@
+# JSON schema automation
+
+## Import from singer repository
+If a tap repository has a schemas folder containing JSON schemas, you can use the [Import JSON schemas](https://github.com/stitchdata/docs/actions/workflows/import_json_schemas.yml) GitHub Action to get these files, format them, and push them to the docs repository. All you need is write access to the repository in order to run the GitHub Action.
+
+1. Go to [Import JSON schemas](https://github.com/stitchdata/docs/actions/workflows/import_json_schemas.yml) and click **Run workflow**.
+2. Enter the name of the Singer repository, `tap-pendo` for example.
+3. Enter the name of the branch to use if needed. If no branch is specified, the default branch will be used.
+4. Click **Run workflow**
+
+The workflow runs and performs the following actions:
+- Creates a new branch on the docs repository.
+- Retrieves the JSON files from the specified tap repository.
+- Formats the JSON files to make them compatible with the HTML templates used to display them. For more details, see [Formatting details](#formatting-details).
+- Updates the YAML file containing table details (adds new tables, marks missing tables as not found).
+- Checks that the primary keys, replication keys, and foreign keys listed are still found in the schema. If any issues are found, a text file with the list of errors will be added to the integration version folder.
+- Commits and pushes the changes.
+- Creates a pull request from the new branch to the master branch on the docs repository.
+
+Once the workflow is done, a member of the documentation team will review the pull request and make any updates needed in the YAML files.
+
+## Generate from catalog file
+For integration that don't have their JSON schemas in their repositories, you can use the [Get JSON schemas from catalog JSON file](https://github.com/stitchdata/docs/actions/workflows/get_json_schema_from_catalog.yml) GitHUb Action to add the schema files from a file generated from the tap's discovery mode.
+
+1. Run the discovery mode and get the catalog JSON file.
+2. Create a new branch on the docs repository, add the catalog file in the `scripts/json` folder and push your changes.
+3. Go to [Get JSON schemas from catalog JSON file](https://github.com/stitchdata/docs/actions/workflows/get_json_schema_from_catalog.yml) and click **Run workflow**.
+4. Enter the name of the tap.
+5. Enter the major version of the tap.
+6. Enter the name of the docs repository branch where you added the JSON file.
+7. Enter the name of the JSON file that you added.
+8. If you want a pull request to be automatically created by the workflow, select the corresponding check box.
+9. Click **Run workflow**.
+
+The workflow runs and performs the following actions:
+- Splits the catalog file into separate JSON files for each stream and adds them in the correct folder
+- Formats the JSON files to make them compatible with the HTML templates used to display them. For more details, see [Formatting details](#formatting-details).
+- Updates the YAML file containing table details (adds new tables, marks missing tables as not found).
+- Checks that the primary keys, replication keys, and foreign keys listed are still found in the schema. If any issues are found, a text file with the list of errors will be added to the integration version folder.
+- Deletes the catalog file.
+- Commits and pushes the changes.
+- If the check box is selected, creates a pull request from the your branch to the master branch on the docs repository. Otherwise, you can create your own pull request.
+
+Once the pull request is created, a member of the documentation team will review the pull request and make any updates needed in the YAML files.
+
+## Formatting details
+The workflows format JSON files to fix some issues that would prevent the correct display of the schema tables in the documentation. Here are the changes made:
+
+- References to other JSON content, using `$ref` are replaced with the actual referenced content.
+- Elements with a `format` element, `"format": "date-time"` for example, are updated so that the format appears as in the `type` element instead.
+- Object elements that don't have a `properties` child element as a container for the object's properties are updated to add this `properties` container, because it is needed to display the elements in the object.
+
+## Foreign keys automation
+The [Generate foreign keys](https://github.com/stitchdata/docs/actions/workflows/generate_foreign_keys.yml) GitHUb Action runs every time a change to a `*-foreign-keys.yml` file is push on any branch other than `master`.
+
+It takes the content of the `keys` element in the file and uses it to create the `tables` element, which contains the same content, but organized by table. Each table has a list of all other tables that can be joined to it, and all elements that can be used to perform the join. This is used to create to foreign keys table displayed in the table reference documentation.
\ No newline at end of file
diff --git a/scripts/json/archive/convert-foreign-keys.py b/scripts/json/archive/convert-foreign-keys.py
new file mode 100644
index 000000000..53062b900
--- /dev/null
+++ b/scripts/json/archive/convert-foreign-keys.py
@@ -0,0 +1,102 @@
+import os, frontmatter, yaml, pandas
+
+issues = []
+
+def convertForeignKeys(file):
+
+ parse = frontmatter.load(file)
+ data = parse.metadata
+
+ integration = data['tap-reference']
+ version = data['version']
+
+ key_list = data['foreign-keys']
+
+ output_data = {
+ 'tap': integration,
+ 'version': version,
+ 'keys': {}
+ }
+
+ for key in key_list:
+
+ source_key = key['attribute']
+
+ try:
+ table = key['table']
+
+ id = table + '_' + source_key
+ except:
+ id = source_key
+
+ output_data['keys'][id] = []
+
+ foreign_keys_list = []
+ target_tables = []
+
+ foreign_keys = key['all-foreign-keys']
+
+ for join in foreign_keys:
+ target_table = join['table']
+
+ if target_table not in target_tables:
+ target_tables.append(target_table)
+ try:
+ path = join['subattribute']
+ try:
+ element = join['join-on']
+ except:
+ element = source_key
+
+ foreign_key = path + '.' + element
+ except:
+ try:
+ path = join['subtable']
+ path = path.replace('__', '.')
+ try:
+ element = join['join-on']
+ except:
+ element = source_key
+
+ foreign_key = path + '.' + element
+ except:
+ try:
+ foreign_key = join['join-on']
+ except:
+ foreign_key = source_key
+
+ foreign_keys_list.append([target_table, foreign_key])
+
+ df = pandas.DataFrame(foreign_keys_list)
+
+ for target_table in target_tables:
+ keys = []
+ targets = df.loc[df[0] == target_table]
+ for index, row in targets.iterrows():
+ target_key = row[1]
+ keys.append(target_key)
+
+ target_table_data = {
+ 'table': target_table,
+ 'keys': keys
+ }
+
+ if target_table_data not in output_data['keys'][id]:
+
+ output_data['keys'][id].append(target_table_data)
+
+ with open ('../../../_data/taps/schemas/{0}/v{1}/{0}-v{1}-foreign-keys.yml'.format(integration, version), 'w', encoding='utf-8') as out:
+
+ y = yaml.safe_dump(output_data, out, default_flow_style=False, sort_keys=False)
+
+
+for root, dirs, files in os.walk('../../../_integration-schemas'):
+ for file in files:
+ if file == 'foreign-keys.md':
+ file = os.path.join(root, file)
+ try:
+ convertForeignKeys(file)
+ except:
+ issues.append(file.replace('../../../_integration-schemas\\', '').replace('\\', '-').replace('-foreign-keys.md', ''))
+
+print(*issues, sep='\n')
\ No newline at end of file
diff --git a/scripts/json/archive/convert_md_schemas.py b/scripts/json/archive/convert_md_schemas.py
new file mode 100644
index 000000000..8fed7cbaf
--- /dev/null
+++ b/scripts/json/archive/convert_md_schemas.py
@@ -0,0 +1,94 @@
+import os, frontmatter, json, yaml, sys
+
+integrations_file = '../../../_data/taps/integrations.yml'
+schema_folder = '../../../_integration-schemas/'
+
+try:
+ integration = sys.argv[1]
+except:
+ integration = ''
+
+
+def formatProperties(properties):
+ json_out = {}
+ for prop in properties:
+ name = prop['name']
+ if 'type' in prop:
+ type = prop['type']
+ if type != None:
+ if ',' in type:
+ type = type.split(',')
+ else:
+ type = [type]
+
+ json_out[name] = {
+ 'type': type
+ }
+ if 'subattributes' in prop:
+ attributes = prop['subattributes']
+ json_out[name]['properties'] = formatProperties(attributes)
+ return json_out
+
+with open(integrations_file, 'r') as f:
+ data = yaml.safe_load(f)
+
+ integrations = data['integrations']
+ for i in integrations:
+ if integration != '':
+ if i == integration:
+ tap = integrations[i]['tap']
+ integration_id = integrations[i]['id']
+ for root, dirs, files in os.walk(schema_folder + integration_id):
+ for file in files:
+ if file.endswith('.md') and file != 'foreign-keys.md':
+ filepath = os.path.join(root, file)
+ print(filepath)
+ # try:
+ parse = frontmatter.load(filepath)
+ data = parse.metadata
+ if 'version' in data:
+ tap_version = data['version']
+ table_name = data['name']
+
+ filename = file.replace('.md', '.json')
+
+ output_dir = '../../../_data/taps/schemas/{0}/v{1}/json'.format(integration_id, tap_version)
+
+ if os.path.exists(output_dir):
+ pass
+ else:
+ os.makedirs(output_dir)
+
+ output_file_path = '{0}/{1}'.format(output_dir, filename)
+
+ properties = data['attributes']
+
+ json_out = {
+ 'properties': {}
+ }
+
+ for prop in properties:
+ name = prop['name']
+
+ if 'type' in prop:
+ type = prop['type']
+ if type != None and type != '':
+
+
+ if ',' in type:
+ type = type.split(',')
+ else:
+ type = [type]
+
+ json_out['properties'][name] = {
+ 'type': type
+ }
+
+ if 'subattributes' in prop:
+ attributes = prop['subattributes']
+ json_out['properties'][name]['properties'] = formatProperties(attributes)
+
+ with open(output_file_path, 'w') as out:
+ json.dump(json_out, out, indent=2, sort_keys=True)
+ # except:
+ # print(filepath)
\ No newline at end of file
diff --git a/scripts/json/archive/get_empty_folders.py b/scripts/json/archive/get_empty_folders.py
new file mode 100644
index 000000000..ab49c2af8
--- /dev/null
+++ b/scripts/json/archive/get_empty_folders.py
@@ -0,0 +1,23 @@
+import os
+
+integrations_folder = '../../../_data/taps/schemas'
+integrations = os.listdir(integrations_folder)
+
+empty = []
+
+for integration in integrations:
+ integration_folder = integrations_folder + '/' + integration
+
+ versions = os.listdir(integration_folder)
+ for version in versions:
+ version_json_folder = integration_folder + '/' + version + '/json'
+ try:
+ json_files = os.listdir(version_json_folder)
+ except:
+ json_files = []
+
+ if len(json_files) == 0:
+ empty.append(integration + ' - ' + version)
+
+print(*empty, sep='\n')
+
diff --git a/scripts/json/archive/get_integration_data_from_md.py b/scripts/json/archive/get_integration_data_from_md.py
new file mode 100644
index 000000000..72fe1b2ea
--- /dev/null
+++ b/scripts/json/archive/get_integration_data_from_md.py
@@ -0,0 +1,68 @@
+import yaml, os, frontmatter, re, pandas
+
+folders = [['_database-integrations', 'database'], ['_saas-integrations', 'saas']]
+schemas_with_tap = []
+schemas_no_tap = []
+
+def getSchemaData(file, type):
+
+ parse = frontmatter.load(file)
+ data = parse.metadata
+
+
+ try:
+ name = data['display_name']
+ id = data['name']
+
+ try:
+ url = data['repo-url']
+ tap = re.search('singer-io/([^/]+)', url).group(1)
+ schemas_with_tap.append([name, id, type, tap, url])
+ except:
+ url = ''
+ tap = ''
+ schemas_no_tap.append([name, id, type, tap, url])
+
+ except:
+ pass
+
+
+for folder in folders:
+ dir = folder[0]
+ type = folder[1]
+ for root, dirs, files in os.walk('../../../' + dir):
+ for file in files:
+ if file.endswith('.md'):
+ file = os.path.join(root, file)
+ getSchemaData(file, type)
+
+
+df_tap = pandas.DataFrame(schemas_with_tap)
+df_no_tap = pandas.DataFrame(schemas_no_tap)
+
+new = pandas.concat([df_tap,df_no_tap]).drop_duplicates(subset=[0,1,2]).reset_index(drop=True)
+
+integration_data = {
+ 'integrations': {}
+}
+
+for index, row in new.iterrows():
+ name = row[0]
+ id = row[1]
+ type = row[2]
+ tap = row[3]
+ url = row[4]
+
+ data = {
+ 'id': id,
+ 'display_name': name,
+ 'type': type,
+ 'tap': tap
+ }
+
+
+ integration_data['integrations'][id] = data
+
+with open ('../../../_data/taps/integrations.yml', 'w', encoding='utf-8') as out:
+ yaml.dump(integration_data, out, default_flow_style=False)
+
diff --git a/scripts/json/archive/get_other_table_data.py b/scripts/json/archive/get_other_table_data.py
new file mode 100644
index 000000000..b06437dee
--- /dev/null
+++ b/scripts/json/archive/get_other_table_data.py
@@ -0,0 +1,28 @@
+import os, frontmatter, pandas, yaml
+
+errors = []
+file_count = 0
+
+elements = []
+issues = []
+
+def getSchemaData(file):
+ parse = frontmatter.load(file)
+ data = parse.metadata
+ for i in data:
+ if i not in elements:
+ elements.append(i)
+
+for root, dirs, files in os.walk('../../../_integration-schemas'):
+ for file in files:
+ if file.endswith('.md') and file != 'foreign-keys.md':
+ file_count += 1
+ file = os.path.join(root, file)
+ try:
+ getSchemaData(file)
+ except:
+ issues.append(file)
+ pass
+
+print(issues)
+print(*elements, sep='\n')
\ No newline at end of file
diff --git a/scripts/json/archive/get_table_data_from_md.py b/scripts/json/archive/get_table_data_from_md.py
new file mode 100644
index 000000000..2c1f6748c
--- /dev/null
+++ b/scripts/json/archive/get_table_data_from_md.py
@@ -0,0 +1,160 @@
+import os, frontmatter, pandas, yaml, sys
+
+errors = []
+file_count = 0
+
+taps = []
+tables = []
+
+folder = '../../../_integration-schemas'
+
+try:
+ integration = sys.argv[1]
+ folder = folder + '/' + integration
+except:
+ pass
+
+def getSchemaData(file):
+ try:
+ parse = frontmatter.load(file)
+ data = parse.metadata
+
+ try:
+ tap = data['tap']
+ version = data['version']
+
+ tap_version = [tap, version]
+
+ if tap_version not in taps:
+ taps.append(tap_version)
+
+ name = data['name']
+
+ description = data['description']
+ replication = data['replication-method']
+
+ parents = []
+
+ try:
+ parent = data['dependent-on']
+ parent_list = parent.split('|')
+ for p in parent_list:
+ parents.append(p)
+
+ except:
+ try:
+ parent = data['dependent-table-key']
+ parents.append(parent)
+ except:
+ pass
+
+ primary_keys = []
+ replication_keys = []
+
+ attributes = data['attributes']
+ for attribute in attributes:
+ attribute_name = attribute['name']
+ if 'primary-key' in attribute:
+ primary_keys.append(attribute_name)
+ if 'replication-key' in attribute:
+ replication_keys.append(attribute_name)
+
+
+ output_data = {
+ 'tap': tap,
+ 'version': version,
+ 'name': name,
+ 'description': description,
+ 'links': {
+ },
+ 'table-details': {
+ 'replication-method': replication
+ }
+ }
+
+ try:
+ doc = data['doc-link']
+ output_data['links']['doc-link'] = doc
+ except:
+ pass
+ try:
+ singer = data['singer-schema']
+ output_data['links']['singer-schema'] = singer
+ except:
+ pass
+
+ try:
+ api = data['api-method']
+ api_link = api['doc-link']
+ output_data['links']['api-method'] = api_link
+ except:
+ pass
+
+ try:
+ loading = data['loading-behavior']
+ output_data['table-details']['loading-behavior'] = loading
+ except:
+ pass
+
+ if (len(primary_keys)) == 1:
+ output_data['table-details']['primary-key'] = primary_keys[0]
+ elif (len(primary_keys)) > 1:
+ output_data['table-details']['primary-keys'] = sorted(primary_keys)
+
+ if (len(replication_keys)) == 1:
+ output_data['table-details']['replication-key'] = replication_keys[0]
+ elif (len(replication_keys)) > 1:
+ output_data['table-details']['replication-keys'] = sorted(replication_keys)
+
+ if (len(parents)) == 1:
+ output_data['table-details']['parent-table'] = parents[0]
+ elif (len(parents)) > 1:
+ output_data['table-details']['parent-tables'] = sorted(parents)
+
+ tables.append(output_data)
+
+
+
+ except:
+ pass
+ except:
+ errors.append(file)
+
+
+
+ return errors
+
+for root, dirs, files in os.walk(folder):
+ for file in files:
+ if file.endswith('.md') and file != 'foreign-keys.md':
+ file_count += 1
+ file = os.path.join(root, file)
+ getSchemaData(file)
+
+tables_df = pandas.DataFrame(tables)
+
+for tap in taps:
+ tap_name = tap[0]
+ tap_version = tap[1]
+ tap_tables = tables_df.loc[(tables_df['tap'] == tap_name) & (tables_df['version'] == tap_version)]
+
+ tap_tables = tap_tables.drop(columns=['tap', 'version'])
+
+ tables_dict = tap_tables.to_dict(orient='records')
+
+ tap_dict = {
+ 'tap': tap_name,
+ 'version': tap_version,
+ 'tables': tables_dict
+ }
+
+
+ path = '../../../_data/taps/schemas/{0}/v{1}'.format(tap_name, tap_version)
+ if os.path.exists(path):
+ pass
+ else:
+ os.makedirs(path)
+
+ with open ('{2}/{0}-v{1}-tables.yml'.format(tap_name, tap_version, path), 'w', encoding='utf-8') as out:
+
+ y = yaml.safe_dump(tap_dict, out, default_flow_style=False, sort_keys=False)
diff --git a/scripts/json/archive/replace_anyof.py b/scripts/json/archive/replace_anyof.py
new file mode 100644
index 000000000..833cfb7c8
--- /dev/null
+++ b/scripts/json/archive/replace_anyof.py
@@ -0,0 +1,48 @@
+import json
+from jsonpath_ng import parse
+
+def replaceAnyof(json_content):
+ json_data = json.loads(json_content)
+ content = json.dumps(json_data)
+ jsonpath_expression = parse('$..anyOf.`parent`')
+ match = jsonpath_expression.find(json_data)
+ i = 0
+ while i < len(match):
+ value = match[i].value
+ new_value = {}
+ types = []
+ anyof_values = value['anyOf']
+ for v in anyof_values:
+ v_types = v['type']
+ if type(v_types) == list:
+ for t in v_types:
+ if t not in types:
+ types.append(t)
+ elif type(v_types) == str:
+ types.append(v_types)
+
+ if 'items' in v:
+ items = v['items']
+ if bool(items) == True:
+ new_value['items'] = items
+
+ if 'properties' in v:
+ items = v['properties']
+ if bool(items) == True:
+ new_value['properties'] = items
+
+
+ new_value['type'] = types
+
+ old_json = json.dumps(value)
+ new_json = json.dumps(new_value)
+
+ find = content.find(old_json)
+
+ if find != -1:
+ content = content.replace(old_json, new_json)
+ else:
+ content = content
+ i += 1
+
+ return content
\ No newline at end of file
diff --git a/scripts/json/check_json_issues.py b/scripts/json/check_json_issues.py
new file mode 100644
index 000000000..4b3cbbdbc
--- /dev/null
+++ b/scripts/json/check_json_issues.py
@@ -0,0 +1,73 @@
+def fixProperty(property):
+ # Adds a `properties` element to that contains the child elements in objects that don't have it
+
+ # List elements that are expected to be present directly in an object
+ expected_properties = ['multipleOf','additionalProperties', 'type', 'additional_properties', 'description', 'patternProperties', 'enum', 'title', 'required', 'exclusiveMaximum', 'exclusiveMinimum', 'maximum', 'minimum', 'x-looker-deprecated', 'default', 'format', 'selected']
+
+ # List elements that contain child elements
+ nested = ['anyOf', 'properties', 'items']
+
+ # Get the content of the current property and check if is an object
+ for prop in property:
+ issues = 0
+ new_content = {}
+ content = property[prop]
+ if type(content) == dict:
+
+ # If it contains a 'properties' element, repeat the same function on that element
+ if 'properties' in content and content['properties'] != None:
+ properties = content['properties']
+ properties = fixProperty(properties)
+
+ # If the element contains 'anyOf', check each the 'properties' in the 'items' element, or just 'items' if there is no 'properties' element
+ elif 'anyOf' in content:
+ for item in content['anyOf']:
+ if len(item) == 1 and 'type' in item:
+ pass
+ elif 'items' in item:
+ item_list = item['items']
+ if len(item_list) > 0:
+ if 'properties' in item_list:
+ p = item_list['properties']
+ p = fixProperty(p)
+ else:
+ fixProperty(item)
+
+ # If the element contains 'items', check each the 'properties' in the 'items' element, or just 'items' if there is no 'properties' element
+ elif 'items' in content:
+ item_list = content['items']
+ if len(item_list) > 0:
+ if 'items' in item_list and 'type' in item_list and len(item_list) == 2:
+ content['items'] = content['items']['items']
+ item_list = content['items']
+ if 'properties' in item_list:
+ p = item_list['properties']
+ p = fixProperty(p)
+ else:
+ fixProperty(content)
+
+ # If the current property contains it child elements directly, get all elements and add them in a 'properties' element, and add the 'object' type to the parent
+ else:
+ for item in content:
+ if item not in expected_properties and item not in nested:
+ issues += 1
+
+ if issues > 0:
+ for item in content:
+ new_content[item] = content[item]
+ for item in new_content:
+ content.pop(item)
+ new_content = fixProperty(new_content)
+ content['properties'] = new_content
+ content['type'] = ['object']
+
+ return property
+
+
+def checkJSONIssues(json_content):
+ # Run the checks on the input JSON content and return the fixed JSON
+
+ props = json_content['properties']
+ props = fixProperty(props)
+
+ return json_content
\ No newline at end of file
diff --git a/scripts/json/check_table_data.py b/scripts/json/check_table_data.py
new file mode 100644
index 000000000..fcc410233
--- /dev/null
+++ b/scripts/json/check_table_data.py
@@ -0,0 +1,157 @@
+import yaml, json, os
+
+def checkTableData(integration, version):
+ # Check the tables file and the foreign keys file (if it exists) to see if all keys mentioned exist in the JSON files
+
+ issue_list = []
+ folder = '../../_data/taps/schemas/{0}/v{1}'.format(integration, version)
+ tables_file = '{0}/{1}-v{2}-tables.yml'.format(folder, integration, version)
+ foreign_keys_file = '{0}/{1}-v{2}-foreign-keys.yml'.format(folder, integration, version)
+ json_folder = '{0}/json'.format(folder)
+
+ issue_list = checkPrimaryReplicationKeys(tables_file, json_folder, issue_list)
+
+ if os.path.exists(foreign_keys_file):
+ issue_list = checkForeignKeys(foreign_keys_file, json_folder, issue_list)
+
+ return issue_list
+
+def checkPrimaryReplicationKeys(file, json_folder, issue_list):
+ # Check that the primary keys and replication keys exist
+
+ with open(file, 'r') as f:
+ data = yaml.safe_load(f)
+
+ # Iterate on each table in the tables file
+ tables = data['tables']
+ for table in tables:
+ table_name = table['name']
+ try:
+ r = table['report']
+ print('Table data for {} not checked'.format(table_name))
+ except:
+
+ # Get the corresponding JSON schema
+ json_file = '{0}/{1}.json'.format(json_folder, table_name)
+
+ # Get the primary key(s) and replication key(s) if they exist
+ details = table['table-details']
+ try:
+ primary_keys = [details['primary-key']]
+ except:
+ try:
+ primary_keys = details['primary-keys']
+ except:
+ primary_keys = []
+ try:
+ replication_keys = [details['replication-key']]
+ except:
+ try:
+ replication_keys = details['replication-keys']
+ except:
+ replication_keys = []
+
+ # Find properties in the JSON file
+ if os.path.exists(json_file):
+ with open(json_file, 'r', encoding='utf-8') as j:
+ json_content = json.load(j)
+ properties = json_content['properties']
+
+ # Look for all primary keys in the JSON file, if some are not found, append the list of issues
+ if len(primary_keys) > 0:
+ for primary_key in primary_keys:
+ try:
+ element = properties[primary_key]
+ except:
+ report = 'Primary Key {0} not found in {1}'.format(primary_key, json_file.replace('../../', ''))
+ issue_list.append(report)
+
+ # Look for all replication keys in the JSON file, if some are not found, append the list of issues
+ if len(replication_keys) > 0:
+ for replication_key in replication_keys:
+
+ try:
+ element = properties[replication_key]
+ except:
+ report = 'Replication Key {0} not found in {1}'.format(replication_key, json_file.replace('../../', ''))
+ issue_list.append(report)
+ else:
+ report = 'JSON file {} not found'.format(json_file.replace('../../', ''))
+ if report not in issue_list:
+ issue_list.append(report)
+
+ return issue_list
+
+def checkForeignKeys(file, json_folder, issue_list):
+ # Check that the foreign keys exist
+
+ with open(file, 'r') as f:
+ data = yaml.safe_load(f)
+
+ # Iterate on each table in the foreign keys file
+ tables = data['tables']
+ for table in tables:
+ table_name = table['table-name']
+
+ # Get the corresponding JSON schema
+ json_file = '{0}/{1}.json'.format(json_folder, table_name)
+
+ # Find properties in the JSON file
+ if os.path.exists(json_file):
+ with open(json_file, 'r', encoding='utf-8') as j:
+ json_content = json.load(j)
+ properties = json_content['properties']
+
+ # Get each table that can be joined to the current table
+ targets = table['join']
+ for target in targets:
+
+ # Get each pair of keys that can be used to join the tables
+ keys = target['keys']
+ for key in keys:
+ source_key = key['key']
+
+ # Get the path to the current table's key
+ steps = source_key.split('.')
+ steps_count = len(steps)
+
+ # Look for the element with the key's path
+ step = 1
+ try:
+ path = properties[steps[0]]
+ if steps_count == 1:
+ pass
+ else:
+
+ # Iterate on the number of levels in the path
+ while step < steps_count :
+ try:
+ path = path[steps[step]]
+ except:
+ try:
+
+ # If the element is not found, try looking in a 'properties' element
+ path = path['properties'][steps[step]]
+
+ except:
+ try:
+
+ # If the path element is not found in 'properties', try looking in an 'items' element
+ path = path['items']['properties'][steps[step]]
+
+ except:
+
+ # If the path element is not found in 'properties' or 'items', check for an 'anyOf' element
+ path = path['anyOf'][0]['items']['properties'][steps[step]]
+ step +=1
+ except:
+
+ # If the path is still not found, add the key to the list of errors
+ report = 'Key {0} not found in {1}'.format(source_key, json_file.replace('../../', ''))
+ issue_list.append(report)
+ else:
+ report = 'JSON file {} not found'.format(json_file.replace('../../', ''))
+ if report not in issue_list:
+ issue_list.append(report)
+
+ return issue_list
\ No newline at end of file
diff --git a/scripts/json/file_exceptions.json b/scripts/json/file_exceptions.json
new file mode 100644
index 000000000..72dc14720
--- /dev/null
+++ b/scripts/json/file_exceptions.json
@@ -0,0 +1,89 @@
+{
+ "tap-chargebee": {
+ "1": {
+ "ignore": [
+ "cards.json"
+ ]
+ }
+ },
+ "tap-codat": {
+ "0": {
+ "ignore": [
+ "payment_allocations.json"
+ ]
+ }
+ },
+ "tap-facebook": {
+ "1": {
+ "ignore": [
+ "leads.json"
+ ]
+ }
+ },
+ "tap-freshdesk": {
+ "0": {
+ "ignore": [
+ "contacts.json"
+ ]
+ }
+ },
+ "tap-harvest": {
+ "2": {
+ "ignore": [
+ "external_reference.json"
+ ]
+ }
+ },
+ "tap-hubspot": {
+ "1": {
+ "ignore": [
+ "hubspot_contacts_by_company.json"
+ ]
+ },
+ "2": {
+ "keep": [
+ "custom_objects.json"
+ ]
+ }
+ },
+ "tap-ms-teams": {
+ "0": {
+ "ignore": [
+ "channel.json"
+ ]
+ }
+ },
+ "tap-xero": {
+ "1": {
+ "ignore": [
+ "addresses.json",
+ "allocations.json",
+ "line_items.json",
+ "nested_invoice.json",
+ "payment_terms.json",
+ "phones.json"
+ ]
+ },
+ "2": {
+ "ignore": [
+ "addresses.json",
+ "allocations.json",
+ "line_items.json",
+ "nested_invoice.json",
+ "payment_terms.json",
+ "phones.json"
+ ]
+ }
+ },
+ "tap-zendesk-chat": {
+ "0": {
+ "ignore": [
+ "chat_conversion.json",
+ "chat_count.json",
+ "chat_history.json",
+ "chat_response_time.json",
+ "chat_visitor.json"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/scripts/json/format_json.py b/scripts/json/format_json.py
new file mode 100644
index 000000000..fe4ddcb0e
--- /dev/null
+++ b/scripts/json/format_json.py
@@ -0,0 +1,355 @@
+import json, re, os, sys
+from check_json_issues import checkJSONIssues
+
+def getType(format):
+ # Get the data type to used based on the value of the format element
+
+ # Formats that should be used as type
+ type_formats = ['date-time', 'date', 'time', 'any']
+
+ # Formats that should have the types number, string, or integer
+ number_formats = ['singer.decimal', 'singer-decimal', 'float']
+ string_formats = ['uri', '']
+ int_formats = ['int64']
+
+ if format == 'datetime':
+ format = 'date-time'
+
+ if format in type_formats:
+ type = format
+ elif format in number_formats:
+ type = 'number'
+ elif format in int_formats:
+ type = 'integer'
+ elif format in string_formats:
+ type = 'string'
+ else:
+ print('Format {} not found in format list'.format(format))
+
+ return type
+
+def replaceFormat(json_content):
+ # For elements that have a type and a format, the type should be updated and the format should be removed
+
+ # Find the format and type (can be formatted differently in different JSON files, so multiple patterns are needed)
+ pattern_single_type = re.compile('("type":\s*"(string|integer)",\s*"format":\s*"([^\"]+)")')
+ pattern_multi_types_v1 = re.compile('(("type":\s*\[[^\]]*")(string|integer)("[^\]]*\]),\s*"format":\s*"([^\"]+)")')
+ pattern_multi_types_v2 = re.compile('("format":\s*"([^\"]+)",\s*("type":\s*\[[^\]]*")(string|integer)("[^\]]*\]))')
+
+ single_dt = re.findall(pattern_single_type, json_content)
+ multi_dt_v1 = re.findall(pattern_multi_types_v1, json_content)
+ multi_dt_v2 = re.findall(pattern_multi_types_v2, json_content)
+
+ # Find the patterns in the JSON files
+ if re.search(pattern_single_type, json_content) or re.search(pattern_multi_types_v1, json_content) or re.search(pattern_multi_types_v2, json_content):
+
+ # If the element has only one data type: get the full string, isolate the format, and get the corresponding data type
+ for i in single_dt:
+ full = i[0]
+ format = i[2]
+ type = getType(format)
+
+ # Replace the string with a new string with the correct data type
+ new_single_type = '"type": "{}"'.format(type)
+ json_content = json_content.replace(full, new_single_type)
+
+ # If the element has multiple data types, get the full string:
+ # - isolate the format and the parts that come before and after the data type to replace
+ # - find the correct data type
+ # - recreate the string with the new data type
+
+ for j in multi_dt_v1:
+ format = j[4]
+ full = j[0]
+ p1 = j[1]
+ p2 = getType(format)
+ p3 = j[3]
+
+ new_multi_type = p1 + p2 + p3
+
+ json_content = json_content.replace(full, new_multi_type)
+
+ for k in multi_dt_v2:
+ format = k[1]
+ full = k[0]
+ p1 = k[2]
+ p2 = getType(format)
+ p3 = k[4]
+
+ new_multi_type = p1 + p2 + p3
+
+ json_content = json_content.replace(full, new_multi_type)
+
+ else:
+ print('Format pattern not found')
+
+ return json_content
+
+def sameFileRef(ref, filepath, folder, type):
+ # Replace a $ref that points to an element in the same file
+
+ # Get the path to the element and the length of the path
+ split_ref = split_ref = ref.split('/')
+ steps = len(split_ref)
+
+ if steps > 1:
+ ref_index = 1
+ else:
+ ref_index = 0
+
+ # Open the file and find the element referenced
+ with open(filepath) as f:
+ file_content = json.load(f)
+ try:
+ path = file_content[split_ref[ref_index]]
+ status = 'found'
+ if '$ref' in path:
+ raise Exception()
+ except:
+
+ # If the path is not found as is, check in 'properties' and 'definitions' elements
+ try:
+ path = file_content['properties'][split_ref[ref_index]]
+ status = 'found'
+ if '$ref' in path:
+ raise Exception()
+
+ except:
+ try:
+ path = file_content['definitions'][split_ref[ref_index]]
+ status = 'found'
+ if '$ref' in path:
+ raise Exception()
+ except:
+
+ # If the element is still not found, the path may be a reference to another file.
+ # In that case, check is a file exists
+ split_ref[ref_index] = split_ref[ref_index] + '.json'
+ out_ref = '/'.join(split_ref)
+ for root, dirs, files in os.walk(folder):
+ for file in files:
+ if file == split_ref[ref_index]:
+ status = 'external_file'
+
+ # If the external file is found, use the other functions to replace the reference
+ if steps == 1:
+ content = fullFileRef(split_ref[ref_index], folder, type)
+ else:
+ content = partialRef(out_ref, folder, type)
+
+ if status == 'external_file':
+ pass
+ elif status == 'found':
+
+ # If the path has multiple elements, iterate on each step to find the element, then replace the reference with the referenced content
+ step = ref_index + 1
+ while step < steps :
+ path = path[split_ref[step]]
+ step +=1
+
+ content = json.dumps(path, indent=2)
+
+ return content
+
+def fullFileRef(path, folder, type):
+ # Replace a $ref that points to a full JSON file
+
+ # Find the file in the tap folder and get the content
+ for root, dirs, files in os.walk(folder):
+ for file in files:
+ filepath = os.path.join(root, file)
+ if file in path:
+ with open(filepath) as f:
+ content = f.read()
+ json_content = json.loads(content)
+ try:
+
+ # If the target file has a 'properties' element, get the content of 'properties', otherwise use the full file
+ props = json_content['properties']
+
+ # For the rare case where a reference is 'inline' (i.e.: not in a separate object):
+ # Get each element from the referenced content and replace the ref with those elements
+ if type == 'inline':
+ new_content = ''
+ for prop in props:
+ new_content = new_content + '"{}": '.format(prop) + json.dumps(props[prop]) + ','
+ content = new_content
+ elif type == 'object':
+ content = json.dumps(props)
+ elif type == 'empty file':
+ content = content
+ except:
+ pass
+
+ return content
+
+def partialRef(ref, folder, type):
+ # Replace a $ref that points to part of a JSON file
+
+ # Get the path to the element and the length of the path
+ split_ref = ref.split('/')
+ path = split_ref[0].replace('#', '')
+ steps = len(split_ref)
+
+ # Open the file and find the element referenced
+ for root, dirs, files in os.walk(folder):
+ for file in files:
+ filepath = os.path.join(root, file)
+ if file in path:
+ with open(filepath) as f:
+ file_content = json.load(f)
+ try:
+ path = file_content[split_ref[1]]
+ except:
+
+ # If the element is not found using the path in the $ref, try looking in the 'properties' in case if was omitted
+ path = file_content['properties'][split_ref[1]]
+
+ # Iterate on the steps to get the element referenced
+ step = 2
+ while step < steps :
+ path = path[split_ref[step]]
+ step +=1
+
+ # Replace the reference with the content
+ content = json.dumps(path, indent=2)
+
+ return content
+
+def replaceRefs(json_content, folder, filepath):
+ # Resolve references to JSON content
+
+ try:
+
+ # Find $ref elements
+ pattern = re.compile('(\{\s*\"\$ref\"\:\s*\"([^\"]+)\"\s*\})', re.MULTILINE)
+ refs = re.findall(pattern, json_content)
+ refs_count = len(refs)
+ type = 'object'
+
+ if refs_count == 0:
+ raise Exception()
+ else:
+ for ref in refs:
+
+ # Get the path to the element referenced and determine the type of reference
+ element = ref[0]
+ path = ref[1]
+
+ if json_content.strip() == element:
+ type = 'empty file'
+
+ # Use the function matching the reference type
+ if path.endswith('.json') or path.endswith('.json#/'):
+ content = fullFileRef(path, folder, type)
+ json_content = json_content.replace(element, content)
+ elif '.json' in path:
+ content = partialRef(path, folder, type)
+ json_content = json_content.replace(element, content)
+ else:
+ content = sameFileRef(path, filepath, folder, type)
+ json_content = json_content.replace(element, content)
+ except:
+ try:
+
+ # Find inline $ref elements, get the path and type, and use the corresponding function
+ pattern = re.compile('(\"\$ref\"\:\s*\"([^\"]+)\"\s*,)', re.MULTILINE)
+ refs = re.findall(pattern, json_content)
+ refs_count = len(refs)
+ type = 'inline'
+ if refs_count == 0:
+ raise Exception()
+ else:
+ for ref in refs:
+ element = ref[0]
+ path = ref[1]
+
+ if path.endswith('.json') or path.endswith('.json#/'):
+ content = fullFileRef(path, folder, type)
+ json_content = json_content.replace(element, content)
+ elif '.json' in path:
+ content = partialRef(path, folder, type)
+ json_content = json_content.replace(element, content)
+ else:
+ content = sameFileRef(path, filepath, folder, type)
+ json_content = json_content.replace(element, content)
+ except:
+ sys.exit('Reference pattern not found')
+
+ # Return the content with the references resolved
+ j = json.loads(json_content)
+ return j
+
+def formatJSON(folder, json_output_folder, keep):
+ # Format JSON files to fit the format supported by the HTML template
+
+ table_list = []
+
+ # Get JSON files in the tap folder
+ for root, dirs, files in os.walk(folder, topdown=False):
+ for file in files:
+ filepath = os.path.join(root, file)
+ if filepath.endswith('.json'):
+ with open(filepath, 'r') as f:
+ json_content = f.read()
+ output_file = json_output_folder + '/' + file
+
+ # Ignore files in 'shared' and 'archive' folders, they are either old schemas or files containing content referenced in schemas
+ if file not in keep and ('{0}shared{0}'.format(os.sep) in filepath or '{0}archive{0}'.format(os.sep) in filepath):
+ print('JSON file {} ignored'.format(file))
+
+ else:
+
+ # Find '$ref' elements and resolve the references
+ # This uses 'while' to deal with nested references
+ while '$ref' in json_content:
+ json_content = json.dumps(replaceRefs(json_content, folder, filepath))
+
+ # Read JSON content as a dict for the next steps
+ content = json.loads(json_content)
+
+ try:
+
+ # Check if there is a properties element and if so, add the file to the list of tables
+ props = content['properties']
+ table_list.append(file.replace('.json', ''))
+
+ # Find and replace elements with formats
+ format_pattern = re.compile('"format":\s*"[^\"]+"')
+ while re.search(format_pattern, json_content):
+ json_content = replaceFormat(json_content)
+
+ # Run function from check_json_issues.py to check for missing 'properties' elements
+ content = json.loads(json_content)
+ content = checkJSONIssues(content)
+
+ # Write updated content to file in the _data/taps/schemas folder
+ with open(output_file, 'w') as j:
+ json.dump(content, j, indent=2, sort_keys=True)
+
+ except:
+ try:
+
+ # If the 'properties' element is not found at the root of the file, check for a 'schema' element and if it is found, add the file to the list of tables
+ props = content['schema']['properties']
+ json_content = json.dumps(content['schema'])
+ table_list.append(file.replace('.json', ''))
+
+ # Find and replace elements with formats
+ while re.search(format_pattern, json_content):
+ json_content = replaceFormat(json_content)
+
+ # Run function from check_json_issues.py to check for missing 'properties' elements
+ content = json.loads(json_content)
+ content = checkJSONIssues(content)
+
+ # Write updated content to file in the _data/taps/schemas folder
+ with open(output_file, 'w') as j:
+ json.dump(content, j, indent=2, sort_keys=True)
+ except:
+
+ # Ignore files that don't have 'properties' or 'schema'
+ print('JSON file {} ignored'.format(file))
+
+
+ return table_list
\ No newline at end of file
diff --git a/scripts/json/generate_foreign_keys.py b/scripts/json/generate_foreign_keys.py
new file mode 100644
index 000000000..d0d8a07ac
--- /dev/null
+++ b/scripts/json/generate_foreign_keys.py
@@ -0,0 +1,116 @@
+import yaml, pandas, os
+
+issues = []
+
+def getFKByTable(file):
+ # Takes all foreign keys listed and generates a list of join options by table
+
+ tables = []
+ table_names = []
+ key_data = []
+
+ # Get the key IDs in the foreign keys file
+ with open(file, 'r') as f:
+ content = yaml.safe_load(f)
+ keys = content['keys']
+
+ # For each key ID, get the tables that use it
+ for key in keys:
+ key_tables = keys[key]
+
+ # For each table, get the actual name of the keys in the table, and add the table name, key ID and key in a list
+ for table in key_tables:
+ name = table['table']
+ k = table['keys']
+ for i in k:
+ data = [name, key, i]
+ if data not in key_data:
+ key_data.append(data)
+
+ # Append the list of all tables mentioned in the file
+ if name not in table_names:
+ table_names.append(name)
+
+ # Create a DataFrame with all the keys mentioned
+ key_df = pandas.DataFrame(key_data, columns=['table_name', 'key_id', 'table_key'])
+
+ # Create a DataFrame with all keys in each table
+ for table in table_names:
+ table_keys = key_df.loc[key_df['table_name'] == table]
+
+ # Get the list of key IDs in the table
+ table_ids = []
+ for index, row in table_keys.iterrows():
+ id = row['key_id']
+ table_ids.append(id)
+
+ # Get the list of tables that can be joined with the current table
+ targets = key_df.loc[(key_df['table_name'] != table) & (key_df['key_id'].isin(table_ids))]
+ target_tables = []
+ for index, row in targets.iterrows():
+ target_table = row['table_name']
+ target_tables.append(target_table)
+
+ # Create a dict with all the foreign key data for the current table
+ table_data = {
+ 'table-name': table,
+ 'join': []
+ }
+
+ # For each table to join with the current table, get the keys to join them with
+ for target_table in target_tables:
+
+ target_table_data = {
+ 'table-name': target_table,
+ 'keys': []
+ }
+
+ # Get all key IDs in the table_ids for the current target table
+ target_keys = key_df.loc[(key_df['table_name'] == target_table) & (key_df['key_id'].isin(table_ids))]
+
+ # For each key ID, get the list of keys
+ for index, row in target_keys.iterrows():
+ key_id = row['key_id']
+ target_key = row['table_key']
+
+ # Get the keys that match the current key ID
+ matching_keys = table_keys.loc[key_df['key_id'] == key_id]
+ for i, r in matching_keys.iterrows():
+ source_key = r['table_key']
+
+ key_data = {
+ 'key': source_key,
+ 'foreign-key': target_key
+ }
+
+ # Add the keys to the target table
+ if key_data not in target_table_data['keys']:
+ target_table_data['keys'].append(key_data)
+
+ # Add the target table data to the list of tables to join
+ if target_table_data not in table_data['join']:
+ table_data['join'].append(target_table_data)
+
+ # Add the list of tables to join to the table data
+ if len(table_data['join']) > 0:
+ tables.append(table_data)
+
+ # Create the 'tables' element in the YAML content
+ content['tables'] = tables
+
+ # Write the output to the foreign-keys file
+ with open(file, 'w', encoding='utf-8') as f:
+ yaml.safe_dump(content, f, default_flow_style=False, sort_keys=False)
+
+# Get and update all foreign key files, and return a list of issues
+for root, dirs, files in os.walk('../../_data/taps/schemas'):
+ for file in files:
+ if file.endswith('-foreign-keys.yml'):
+ file = os.path.join(root, file)
+ try:
+ getFKByTable(file)
+ except:
+ issues.append(file)
+
+if len(issues) > 0:
+ print(*issues, sep='\n')
\ No newline at end of file
diff --git a/scripts/json/get_integration_data.py b/scripts/json/get_integration_data.py
new file mode 100644
index 000000000..c7686671f
--- /dev/null
+++ b/scripts/json/get_integration_data.py
@@ -0,0 +1,23 @@
+import yaml
+
+def getIntegrationData(repo):
+ # From a tap repo name, get the integration ID and type
+
+ file = '../../_data/taps/integrations.yml'
+ with open(file, 'r') as f:
+ data = yaml.safe_load(f)
+
+ # Get the list of integrations from the file
+ integrations = data['integrations']
+
+ # Get and return the ID and type
+ for i in integrations:
+ tap = integrations[i]['tap']
+ id = integrations[i]['id']
+ type = integrations[i]['type']
+
+ if tap == repo:
+ integration_id = id
+ integration_type = type
+
+ return [integration_id, integration_type]
\ No newline at end of file
diff --git a/scripts/json/get_json_files.py b/scripts/json/get_json_files.py
new file mode 100644
index 000000000..0219e8007
--- /dev/null
+++ b/scripts/json/get_json_files.py
@@ -0,0 +1,260 @@
+import requests, re, json, os, sys, zipfile, yaml, shutil
+from format_json import formatJSON
+from check_table_data import checkTableData
+from get_integration_data import getIntegrationData
+from get_table_data import getTableData
+
+# GitHub info
+github_token = sys.argv[1]
+host = 'https://api.github.com'
+github_headers = {'Authorization': github_token}
+
+# Get repository name
+repo = sys.argv[2]
+
+# Get branch if specified
+try:
+ branch = sys.argv[3]
+except:
+ branch = ''
+
+def getTags(repo):
+ # To be removed
+
+ major_versions = []
+ version_tags = []
+
+ tags_api = host + '/repos/singer-io/' + repo + '/tags'
+ tags = json.loads(requests.get(tags_api, headers=github_headers).content)
+
+ for tag in tags:
+ name = tag['name']
+ version = name.replace('v', '')
+ major_version = version[0]
+
+ if major_version not in major_versions:
+ if major_version == '0' and len(major_versions) > 0:
+ pass
+ else:
+ major_versions.append(major_version)
+ version_tags.append(name)
+
+ return version_tags
+
+def getTapData(setup_file):
+ # Get the name of the tap and the current version from the setup file
+
+ name_pattern = re.compile(r'name=(\"|\')([^\'\"]+)(\'|\")')
+ version_pattern = re.compile(r'version=(\"|\')([^\'\"]+)(\'|\")')
+
+ tap_name = re.search(name_pattern, setup_file).group(2)
+ tap_version = re.search(version_pattern, setup_file).group(2)
+
+ # Extract the major version
+ tap_major_version = tap_version[0]
+ if tap_major_version == '0':
+ tap_major_version = '1'
+
+ return [tap_name, tap_major_version]
+
+def getTapExceptions(tap, version):
+ keep = []
+ ignore = []
+
+ file = 'file_exceptions.json'
+ with open(file, 'r') as f:
+ data = json.load(f)
+ if tap in data:
+ if version in data[tap]:
+ exceptions = data[tap][version]
+ if 'keep' in exceptions:
+ keep = exceptions['keep']
+
+ if 'ignore' in exceptions:
+ ignore = exceptions['ignore']
+
+ return keep, ignore
+
+def getFiles(repo, branch):
+ # Get all files from the selected tap
+
+ # Download zip file with contents of the repo (from specific branch if specified)
+ contents_api = host + '/repos/singer-io/' + repo + '/zipball'
+ if branch != '' and branch != 'all':
+ contents_api = contents_api + '/' + branch
+ repo_contents = requests.get(contents_api, headers=github_headers)
+
+ # Stop process in case of API issue
+ status_code = repo_contents.status_code
+ if status_code != 200:
+ sys.exit('API issue\n Status: {}\nMessage:'.format(status_code, repo_contents.content))
+ else:
+ # Save, unzip, and delete file
+ output_dir = '../../../'
+ output_file = '{0}{1}.zip'.format(output_dir, repo)
+ zip_output = output_dir + repo
+ with open(output_file, 'wb') as f:
+ f.write(repo_contents.content)
+ with zipfile.ZipFile(output_file, 'r') as zip_file:
+ zip_file.extractall(zip_output)
+ os.remove(output_file)
+
+ # Open tap folder, find setup file and extract tap name and version
+ tap_folder = zip_output + '/' + os.listdir(zip_output)[0]
+ setup_file = open(tap_folder + '/setup.py').read()
+ tap_data = getTapData(setup_file)
+ tap_name = tap_data[0]
+ tap_version = tap_data[1]
+
+ # Get integration ID and type from '_data/taps/integrations.yml'
+ integration_data = getIntegrationData(tap_name)
+ integration_id = integration_data[0]
+ integration_type = integration_data[1]
+
+ # Get integration version folder
+ folder = '../../_data/taps/schemas/{0}/v{1}'.format(integration_id, tap_version)
+ json_output_folder = '{}/json'.format(folder)
+
+ # Ignore integrations with type 'database' since they don't have pre-defined schemas
+ if integration_type != 'database':
+
+ # Get list of files with exceptions (if any)
+ exceptions = getTapExceptions(tap_name, tap_version)
+ keep = exceptions[0]
+ ignore = exceptions[1]
+
+ # Create JSON folder if it doesn't exist
+ if os.path.exists(json_output_folder):
+ pass
+ else:
+ os.makedirs(json_output_folder)
+
+ # Get schema folder and use the function in format_json.py to format the files and get the list of schemas
+ for item in os.listdir(tap_folder):
+ item_path = tap_folder + '/' + item
+
+ if item.startswith('tap') and os.path.isdir(item_path):
+ if tap_name == 'tap-mambu':
+ schemas = item_path + '/helpers/schemas'
+ else:
+ schemas = item_path + '/schemas'
+
+ schema_list = formatJSON(schemas, json_output_folder, keep)
+ issue_list = []
+ updated_schema_list = []
+
+ # Remove files for schemas to ignore
+ for schema in schema_list:
+ schema_file = schema + '.json'
+ if schema_file in ignore:
+ os.remove('{0}/{1}'.format(json_output_folder, schema_file))
+ print('JSON file {} ignored'.format(schema_file))
+ else:
+ updated_schema_list.append(schema)
+
+ # Use function from 'get_table_data.py' to get and update the yaml file with table details
+ getTableData(integration_id, tap_version, updated_schema_list, 'tap')
+
+ # Use function from 'check_table_data.py' to check that the primary keys, replication keys and foreign keys listed are found in the schemas
+ table_issues = checkTableData(integration_id, tap_version)
+ if len(table_issues) > 0:
+ for issue in table_issues:
+ if issue not in issue_list:
+ issue_list.append(issue)
+
+ # Write all issues found to a text file
+ issues_file = '{0}/{1}-v{2}-issues.txt'.format(folder, integration_id, tap_version)
+ issues_count = len(issue_list)
+
+ if issues_count > 0:
+ with open(issues_file, 'w', encoding='utf-8') as f:
+ f.writelines([string + '\n' for string in issue_list])
+
+ print('{0} issues found, check {1} for details.'.format(issues_count, issues_file.replace('../../', '')))
+
+ # If no issues found but issues file exists, remove issues file
+ else:
+ if os.path.exists(issues_file):
+ os.remove(issues_file)
+ print('No issues found')
+
+
+
+ else:
+ print('Ignoring database integration {}'.format(integration_id))
+
+ # Delete tap folder
+ shutil.rmtree(zip_output)
+
+
+def getIntegrationVersions(integration):
+
+ # To remove before going to prod
+
+ integration_path = '../../_integration-schemas/' + integration
+ integration_versions = []
+
+ if os.path.exists(integration_path):
+
+ for item in os.listdir(integration_path):
+ item_path = integration_path + '/' + item
+ if os.path.isdir(item_path):
+ integration_versions.append(item)
+
+ else:
+ print('{} not found'.format(integration_path))
+ return len(integration_versions)
+
+def getAllTaps(branch):
+ # To remove
+ issues = []
+
+ file = '../../_data/taps/integrations.yml'
+
+ with open(file, 'r') as f:
+ data = yaml.safe_load(f)
+
+ integrations = data['integrations']
+ for i in integrations:
+ tap = integrations[i]['tap']
+ id = integrations[i]['id']
+
+ version_count = getIntegrationVersions(id)
+
+ if tap != '':
+ try:
+ if branch == 'all' and version_count > 1:
+ tags = getTags(tap)
+ for tag in tags:
+ getFiles(tap, tag)
+ elif branch == 'all' and version_count <= 1:
+ getFiles(tap, '')
+ else:
+ getFiles(tap, branch)
+ except:
+ issues.append(tap)
+
+ print('Issues were found in the following repositories:')
+ print(*issues, sep='\n')
+
+if repo == 'all':
+ if branch == '':
+ print('Fetching schemas from the main/master branch of all tap repositories listed in _data/taps/integrations.yml')
+ elif branch == 'all':
+ print('Fetching schemas from each major version of all tap repositories listed in _data/taps/integrations.yml')
+
+ getAllTaps(branch)
+
+else:
+ if branch == 'all':
+ print('Fetching schemas from each major version of the {} repository'.format(repo))
+ tags = getTags(repo)
+ for tag in tags:
+ getFiles(repo, tag)
+ else:
+ if branch == '':
+ print('Fetching schemas from the main/master branch of the {} repository'.format(repo))
+ else:
+ print('Fetching schemas from the {0} branch of the {1} repository'.format(branch, repo))
+
+ getFiles(repo, branch)
\ No newline at end of file
diff --git a/scripts/json/get_table_data.py b/scripts/json/get_table_data.py
new file mode 100644
index 000000000..c2a4cc500
--- /dev/null
+++ b/scripts/json/get_table_data.py
@@ -0,0 +1,188 @@
+import os, yaml
+
+def compareTableData(existing, new):
+ # Compare and merge existing table details with table details from the catalog file
+
+ updated = existing
+ existing_details = existing['table-details']
+ new_details = new['table-details']
+ updated_details = updated['table-details']
+
+ if existing_details == new_details:
+ pass
+ else:
+
+ # If the existing and new details are different check each element
+ for element in new_details:
+ if element in existing_details:
+
+ # Check if the element in the new details is already in the existing details
+ existing_element = existing_details[element]
+ new_element = new_details[element]
+
+ # If the value of the element is different, keep the newest value
+ if existing_element == new_element:
+ pass
+ else:
+ updated_details[element] = new_element
+ else:
+
+ # If the element isn't in the existing details:
+ # - deduplicate replication-key(s) and primary-key(s) elements
+ # - add the element to the table details
+ if element == 'replication-key' and 'replication-keys' in existing_details:
+ updated_details['replication-key'] = new_details['replication-key']
+ updated_details.pop('replication-keys')
+ elif element == 'replication-keys' and 'replication-key' in existing_details:
+ updated_details['replication-keys'] = new_details['replication-keys']
+ updated_details.pop('replication-key')
+ elif element == 'primary-key' and 'primary-keys' in existing_details:
+ updated_details['primary-key'] = new_details['primary-key']
+ updated_details.pop('primary-keys')
+ elif element == 'primary-keys' and 'primary-key' in existing_details:
+ updated_details['primary-keys'] = new_details['primary-keys']
+ updated_details.pop('primary-key')
+ else:
+ updated_details[element] = new_details[element]
+
+ return updated
+
+def updateTableData(integration, version, name, data):
+ # Update table details from catalog file
+
+ # Get current table data
+ folder = '../../_data/taps/schemas/{0}/v{1}'.format(integration, version)
+ file = '{2}/{0}-v{1}-tables.yml'.format(integration, version, folder)
+ existing_tables = []
+
+ if os.path.exists(file):
+ with open(file, 'r') as f:
+
+ # Get list of existing tables
+ existing_data = yaml.safe_load(f)
+ tables = existing_data['tables']
+
+ # Look for the current table in the existing tables and compare the existing and new table details
+ for table in tables:
+ table_name = table['name']
+ existing_tables.append(table_name)
+ if table_name == name:
+ table = compareTableData(table, data)
+
+ # Add data for new tables
+ if name not in existing_tables:
+ table = {
+ 'name': name,
+ 'table-details': {}
+ }
+ table = compareTableData(table, data)
+ tables.append(table)
+
+ # Write the updated table data to the YAML file
+ with open (file, 'w', encoding='utf-8') as out:
+ yaml.dump(existing_data, out, default_flow_style=False, sort_keys=False)
+
+
+def getTableData(integration, version, schema_list, import_type):
+ # Get table data for JSON schemas
+
+ table_list = []
+ not_found = []
+ new = []
+
+ folder = '../../_data/taps/schemas/{0}/v{1}'.format(integration, version)
+ file = '{2}/{0}-v{1}-tables.yml'.format(integration, version, folder)
+
+ # Get the list of existing tables
+ if os.path.exists(file):
+ with open(file, 'r') as f:
+ data = yaml.safe_load(f)
+
+ # Check if the integration has a tap-repo-schema value, otherwise set it to true by default
+ if 'tap-repo-schemas' in data:
+ pass
+ else:
+ data['tap-repo-schemas'] = True
+
+ tap_schemas = data['tap-repo-schemas']
+
+ tables = data['tables']
+
+ for table in tables:
+ table_name = table['name']
+ table_list.append(table_name)
+
+ # If the tables YAML file doesn't exist, create it
+ else:
+ if os.path.exists(folder):
+ pass
+ else:
+ os.makedirs(folder)
+
+ data = {
+ 'tap': integration,
+ 'version': version,
+ 'tap-repo-schemas': True,
+ 'tables': []
+ }
+
+ # For JSON schema found, check if the table is in the list of existing tables
+ for table in schema_list:
+
+ # Add the table if it doesn't exist
+ if table not in table_list:
+ new.append(table)
+ table_data = {
+ 'name': table,
+ 'description': '',
+ 'links': {
+ 'doc-link': '',
+ 'singer-schema': '',
+ 'api-method': ''
+ },
+ 'table-details': {
+ 'replication-method': '',
+ 'primary-key': '',
+ 'replication-key': ''
+ }
+ }
+ data['tables'].append(table_data)
+
+ # For each table in the list of existing tables, check if the JSON schema exists
+ for table in table_list:
+
+ # If the schema doesn't exist, mark the table as 'not found', it will hide it from the docs but the table data will still exist in the YAML file
+ if table not in schema_list and tap_schemas != False and import_type == 'tap':
+ status = 'not_found'
+ for t in data['tables']:
+ if t['name'] == table:
+ try:
+ r = t['report']
+ except:
+ try:
+ s = t['tap-repo-schema']
+ except:
+ t['status'] = status
+ not_found.append(table)
+ else:
+
+ # If the schema exists and the table has the 'not found' status, remove it the status
+ for t in data['tables']:
+ if t['name'] == table:
+ try:
+ t.pop('status')
+ except:
+ pass
+
+ # Write the updated data to the YAML file
+ with open (file, 'w', encoding='utf-8') as out:
+ yaml.dump(data, out, default_flow_style=False, sort_keys=False)
+
+ # Report new tables and schemas not found
+ if len(new) > 0:
+ print('The following tables have been added to {}:'.format(file.replace('../../', '')))
+ print(*new, sep='\n')
+
+ if len(not_found) > 0:
+ print('The following tables exist in {} but were not found in the repository:'.format(file.replace('../../', '')))
+ print(*not_found, sep='\n')
\ No newline at end of file
diff --git a/scripts/json/manual_json_import.py b/scripts/json/manual_json_import.py
new file mode 100644
index 000000000..daa6dbebd
--- /dev/null
+++ b/scripts/json/manual_json_import.py
@@ -0,0 +1,109 @@
+import sys, json, re, os
+from format_json import replaceFormat
+from get_integration_data import getIntegrationData
+from get_table_data import getTableData, updateTableData
+from check_table_data import checkTableData
+
+# Get tap name, tap version, and discovery file path
+tap = sys.argv[1]
+tap_version = str(sys.argv[2])
+if tap_version == '0':
+ tap_version = '1'
+discovery_file = sys.argv[3]
+
+# Get integration ID and type from '_data/taps/integrations.yml'
+integration_id = getIntegrationData(tap)[0]
+
+# Get integration version folder
+folder = '../../_data/taps/schemas/{0}/v{1}'.format(integration_id, tap_version)
+json_output_folder = '{}/json'.format(folder)
+
+schema_list = []
+issue_list = []
+
+# Open discovery file and get schemas
+with open(discovery_file, 'r', encoding='utf-8') as f:
+ content = json.load(f)
+ streams = content['streams']
+ for stream in streams:
+
+ # Get schema name, replication method, replication keys and primary keys
+ name = stream['tap_stream_id']
+ schema_list.append(name)
+ schema = stream['discovered_schema']
+ metadata = stream['metadata'][0]['metadata']
+ replication_method = metadata['forced-replication-method']
+
+ # Format name of replication method
+ if replication_method == 'INCREMENTAL':
+ replication_method = 'Key-based Incremental'
+ elif replication_method == 'FULL_TABLE':
+ replication_method = 'Full Table'
+
+ # Find replication keys and primary keys if there are any
+ try:
+ replication_keys = metadata['valid-replication-keys']
+ except:
+ replication_keys = []
+ try:
+ primary_keys = metadata['table-key-properties']
+ except:
+ primary_keys = []
+
+ # Create dict with schema data
+ data = {
+ 'name': name,
+ 'table-details': {
+ 'replication-method': replication_method
+ }
+ }
+
+ # Add primary-key(s) and replication-key(s) elements if needed
+ if len(primary_keys) == 1:
+ data['table-details']['primary-key'] = primary_keys[0]
+ elif len(primary_keys) > 1:
+ data['table-details']['primary-keys'] = sorted(primary_keys)
+ if len(replication_keys) == 1:
+ data['table-details']['replication-key'] = replication_keys[0]
+ elif len(replication_keys) > 1:
+ data['table-details']['replication-keys'] = sorted(replication_keys)
+
+ # Use function in 'get_table_data.py' to find and update table data
+ updateTableData(integration_id, tap_version, name, data)
+
+ # Use function un 'format_json.py' to replace format elements
+ json_content = json.dumps(schema)
+ format_pattern = re.compile('"format":\s*"[^\"]+"')
+ while re.search(format_pattern, json_content):
+ json_content = replaceFormat(json_content)
+
+ # Write the JSON output to the schema file
+ json_output = json.loads(json_content)
+ filepath = '{0}/{1}.json'.format(json_output_folder, name)
+ with open(filepath, 'w') as j:
+ json.dump(json_output, j, indent=2, sort_keys=True)
+
+# Use function in 'get_table_data.py' to add entry for new tables
+getTableData(integration_id, tap_version, schema_list, 'catalog')
+
+# Use function from 'check_table_data.py' to check that the primary keys, replication keys and foreign keys listed are found in the schemas
+table_issues = checkTableData(integration_id, tap_version)
+
+if len(table_issues) > 0:
+ for issue in table_issues:
+ if issue not in issue_list:
+ issue_list.append(issue)
+
+# Write all issues found to a text file
+issues_file = '{0}/{1}-v{2}-issues.txt'.format(folder, integration_id, tap_version)
+issues_count = len(issue_list)
+
+if issues_count > 0:
+ with open(issues_file, 'w', encoding='utf-8') as f:
+ f.writelines([string + '\n' for string in issue_list])
+
+ print('{0} issues found, check {1} for details.'.format(issues_count, issues_file.replace('../../', '')))
+
+# Delete discovery file
+os.remove(discovery_file)
+